diff --git a/projects/clr/hipamd/include/hip/hip_runtime_api.h b/projects/clr/hipamd/include/hip/hip_runtime_api.h index 6b67843d37..4412bbd7da 100644 --- a/projects/clr/hipamd/include/hip/hip_runtime_api.h +++ b/projects/clr/hipamd/include/hip/hip_runtime_api.h @@ -138,6 +138,7 @@ typedef struct hipDeviceProp_t { int cooperativeMultiDeviceUnmatchedSharedMem; ///< HIP device supports cooperative launch on multiple ///devices with unmatched shared memories int isLargeBar; ///< 1: if it is a large PCI bar device, else 0 + int asicRevision; ///< Revision of the GPU in this device. } hipDeviceProp_t; @@ -345,8 +346,9 @@ typedef enum hipDeviceAttribute_t { ///devices with unmatched grid dimensions hipDeviceAttributeCooperativeMultiDeviceUnmatchedBlockDim, ///< Supports cooperative launch on multiple ///devices with unmatched block dimensions - hipDeviceAttributeCooperativeMultiDeviceUnmatchedSharedMem ///< Supports cooperative launch on multiple + hipDeviceAttributeCooperativeMultiDeviceUnmatchedSharedMem, ///< Supports cooperative launch on multiple ///devices with unmatched shared memories + hipDeviceAttributeAsicRevision ///< Revision of the GPU in this device } hipDeviceAttribute_t; enum hipComputeMode { diff --git a/projects/clr/hipamd/rocclr/hip_device.cpp b/projects/clr/hipamd/rocclr/hip_device.cpp index 9491ee800f..2d8900cded 100644 --- a/projects/clr/hipamd/rocclr/hip_device.cpp +++ b/projects/clr/hipamd/rocclr/hip_device.cpp @@ -233,6 +233,7 @@ hipError_t hipGetDeviceProperties ( hipDeviceProp_t* props, hipDevice_t device ) deviceProps.kernelExecTimeoutEnabled = 0; deviceProps.ECCEnabled = info.errorCorrectionSupport_? 1:0; deviceProps.isLargeBar = info.largeBar_ ? 1 : 0; + deviceProps.asicRevision = info.asicRevision_; *props = deviceProps; HIP_RETURN(hipSuccess); diff --git a/projects/clr/hipamd/rocclr/hip_device_runtime.cpp b/projects/clr/hipamd/rocclr/hip_device_runtime.cpp index 414d51f513..be979dab9e 100644 --- a/projects/clr/hipamd/rocclr/hip_device_runtime.cpp +++ b/projects/clr/hipamd/rocclr/hip_device_runtime.cpp @@ -296,6 +296,9 @@ hipError_t hipDeviceGetAttribute(int* pi, hipDeviceAttribute_t attr, int device) case hipDeviceAttributeCooperativeMultiDeviceUnmatchedSharedMem: *pi = prop.cooperativeMultiDeviceUnmatchedSharedMem; break; + case hipDeviceAttributeAsicRevision: + *pi = prop.asicRevision; + break; default: HIP_RETURN(hipErrorInvalidValue); } diff --git a/projects/clr/hipamd/samples/1_Utils/hipInfo/hipInfo.cpp b/projects/clr/hipamd/samples/1_Utils/hipInfo/hipInfo.cpp index 5c6cdeabb5..e5998bfb64 100644 --- a/projects/clr/hipamd/samples/1_Utils/hipInfo/hipInfo.cpp +++ b/projects/clr/hipamd/samples/1_Utils/hipInfo/hipInfo.cpp @@ -147,6 +147,7 @@ void printDeviceProp(int deviceId) { cout << setw(w1) << "maxTexture3D.height: " << props.maxTexture3D[1] << endl; cout << setw(w1) << "maxTexture3D.depth: " << props.maxTexture3D[2] << endl; cout << setw(w1) << "isLargeBar: " << props.isLargeBar << endl; + cout << setw(w1) << "asicRevision: " << props.asicRevision << endl; int deviceCnt; hipGetDeviceCount(&deviceCnt); diff --git a/projects/clr/hipamd/tests/src/runtimeApi/device/hipGetDeviceAttribute.cpp b/projects/clr/hipamd/tests/src/runtimeApi/device/hipGetDeviceAttribute.cpp index 3c2bf567d0..9463e9e918 100644 --- a/projects/clr/hipamd/tests/src/runtimeApi/device/hipGetDeviceAttribute.cpp +++ b/projects/clr/hipamd/tests/src/runtimeApi/device/hipGetDeviceAttribute.cpp @@ -145,5 +145,6 @@ int main(int argc, char* argv[]) { CHECK(test_hipDeviceGetAttribute(deviceId, hipDeviceAttributeKernelExecTimeout, props.kernelExecTimeoutEnabled)); CHECK(test_hipDeviceGetAttribute(deviceId, hipDeviceAttributeCanMapHostMemory, props.canMapHostMemory)); CHECK(test_hipDeviceGetAttribute(deviceId, hipDeviceAttributeEccEnabled, props.ECCEnabled)); + CHECK(test_hipDeviceGetAttribute(deviceId, hipDeviceAttributeAsicRevision, props.asicRevision)); passed(); };