Files
mi300a-xnack/hipmallocmanaged_devaccess.cpp
Carl Pearson cf83db731c Initial commit
2024-12-03 15:36:32 -08:00

32 lines
651 B
C++

#include <iostream>
#include <hip/hip_runtime.h>
#define HIP(e) \
if (hipError_t err = (e); err != hipSuccess) { \
std::cerr << __FILE__ << ":" << __LINE__ << " " << err << "\n"; \
exit(1); \
}
__global__ void set(double* p, size_t n) {
for (size_t idx = blockIdx.x * blockDim.x + threadIdx.x; idx < n; idx += gridDim.x * blockDim.x) {
p[idx] = idx;
}
}
int main(void) {
size_t n = 1024 * 1024;
double *p;
HIP(hipMallocManaged(&p, sizeof(double) * n, hipMemAttachGlobal));
HIP(hipDeviceSynchronize());
hipLaunchKernelGGL(set, dim3(128), dim3(128), 0, 0, p, n);
HIP(hipDeviceSynchronize());
HIP(hipFree(p));
return 0;
}