diff --git a/hipamd/include/hip/nvidia_detail/hip_runtime_api.h b/hipamd/include/hip/nvidia_detail/hip_runtime_api.h index 29b26489f8..558bfe5195 100644 --- a/hipamd/include/hip/nvidia_detail/hip_runtime_api.h +++ b/hipamd/include/hip/nvidia_detail/hip_runtime_api.h @@ -1561,6 +1561,9 @@ inline static hipError_t hipDeviceGetAttribute(int* pi, hipDeviceAttribute_t att case hipDeviceAttributeCooperativeMultiDeviceLaunch: cdattr = cudaDevAttrCooperativeMultiDeviceLaunch; break; + case hipDeviceAttributeConcurrentManagedAccess: + cdattr = cudaDevAttrConcurrentManagedAccess; + break; default: return hipCUDAErrorTohipError(cudaErrorInvalidValue); } diff --git a/hipamd/tests/src/runtimeApi/memory/hipMallocManaged.cpp b/hipamd/tests/src/runtimeApi/memory/hipMallocManaged.cpp index f57bca9cda..5fcf1462c6 100644 --- a/hipamd/tests/src/runtimeApi/memory/hipMallocManaged.cpp +++ b/hipamd/tests/src/runtimeApi/memory/hipMallocManaged.cpp @@ -20,6 +20,15 @@ void add(int n, float *x, float *y) int main(int argc, char *argv[]) { HipTest::parseStandardArguments(argc, argv, true); + int concurrentManagedAccess = 0; + HIPCHECK(hipDeviceGetAttribute(&concurrentManagedAccess, + hipDeviceAttributeConcurrentManagedAccess, + p_gpuDevice)); + if(!concurrentManagedAccess) { + printf("info: concurrent managed access not supported on device %d\n Skipped\n", + p_gpuDevice); + passed(); + } printf("info: set device to %d\n", p_gpuDevice); HIPCHECK(hipSetDevice(p_gpuDevice));