Add simple rocm test program.

This commit is contained in:
Ernie Pasveer
2024-12-28 17:11:08 -06:00
parent 8d4e2a7ea5
commit 14e200cb07
2 changed files with 47 additions and 0 deletions
+13
View File
@@ -0,0 +1,13 @@
$ hipcc simple.cpp -g -O0 -o simple
$ ./simple
$ roc-obj-ls simple
$ rocm-smi --showdriverversion
$ /opt/rocm/bin/rocminfo | grep gfx
$ sudo /opt/rocm/bin/rocminfo --support
$ export HIP_ENABLE_DEFERRED_LOADING=0
$ export AMD_LOG_LEVEL=3
$ /usr/local/bin/seergdb --gdb-program=/usr/bin/rocgdb -s ./simple
+34
View File
@@ -0,0 +1,34 @@
#include "hip/hip_runtime.h"
#include <cassert>
#include <cstdio>
__global__
void do_an_addition (int a, int b, int *out) {
*out = a + b;
}
int main () {
int *result_ptr, result;
/* Allocate memory for the device to write the result to. */
hipError_t error_code = hipMalloc (&result_ptr, sizeof (int));
printf("HIP Error %d %s: %s.\n", error_code, hipGetErrorName(error_code), hipGetErrorString(error_code));
assert (error_code == hipSuccess);
/* Run `do_an_addition` on one workgroup containing one work item. */
do_an_addition<<<dim3(1), dim3(1), 0, 0>>> (1, 2, result_ptr);
/* Copy result from device to host. Note that this acts as a synchronization
point, waiting for the kernel dispatch to complete. */
error_code = hipMemcpyDtoH (&result, result_ptr, sizeof (int));
printf("HIP Error %d %s: %s.\n", error_code, hipGetErrorName(error_code), hipGetErrorString(error_code));
assert (error_code == hipSuccess);
printf ("result is %d\n", result);
assert (result == 3);
return 0;
}