diff --git a/hipamd/include/hcc_detail/hip_runtime_api.h b/hipamd/include/hcc_detail/hip_runtime_api.h index b3f9340ed6..6bd2e2e982 100644 --- a/hipamd/include/hcc_detail/hip_runtime_api.h +++ b/hipamd/include/hcc_detail/hip_runtime_api.h @@ -1244,6 +1244,35 @@ hipError_t hipDeviceGetFromId(hipDevice_t *device, int deviceId); */ hipError_t hipDeviceGet(hipDevice_t *device, int ordinal); +/** + * @brief Returns the compute capability of the device + * @param [out] major + * @param [out] minor + * @param [in] device + * + * @returns #hipSuccess, #hipErrorInavlidDevice + */ +hipError_t hipDeviceComputeCapability(int *major,int *minor,hipDevice_t device); + +/** + * @brief Returns an identifer string for the device. + * @param [out] name + * @param [in] len + * @param [in] device + * + * @returns #hipSuccess, #hipErrorInavlidDevice + */ +hipError_t hipDeviceGetName(char *name,int len,hipDevice_t device); + +/** + * @brief Returns a PCI Bus Id string for the device. + * @param [out] pciBusId + * @param [in] len + * @param [in] device + * + * @returns #hipSuccess, #hipErrorInavlidDevice + */ +hipError_t hipDeviceGetPCIBusId (int *pciBusId,int len,hipDevice_t device); /** * @brief Returns the approximate HIP driver version. diff --git a/hipamd/include/nvcc_detail/hip_runtime_api.h b/hipamd/include/nvcc_detail/hip_runtime_api.h index 59da96a841..6001226acf 100644 --- a/hipamd/include/nvcc_detail/hip_runtime_api.h +++ b/hipamd/include/nvcc_detail/hip_runtime_api.h @@ -630,6 +630,21 @@ inline static hipError_t hipDeviceGet(hipDevice_t *device, int ordinal) return hipCUResultTohipError(cuDeviceGet(device, ordinal)); } +inline static hipError_t hipDeviceComputeCapability(int *major, int *minor, hipDevice_t device) +{ + return hipCUResultTohipError(cuDeviceComputeCapability(major,minor,device)); +} + +inline static hipError_t hipDeviceGetName(char *name,int len,hipDevice_t device) +{ + return hipCUResultTohipError(cuDeviceGetName(name,len,device)); +} + +inline static hipError_t hipDeviceGetPCIBusId (int *pciBusId,int len,hipDevice_t device) +{ + return hipCUResultTohipError(cuDeviceGetPCIBusId((char*)pciBusId,len,device)); +} + inline static hipError_t hipModuleLoad(hipModule_t *module, const char* fname) { return hipCUResultTohipError(cuModuleLoad(module, fname)); diff --git a/hipamd/src/hip_device.cpp b/hipamd/src/hip_device.cpp index 14338c11de..d05f5bc69e 100644 --- a/hipamd/src/hip_device.cpp +++ b/hipamd/src/hip_device.cpp @@ -324,3 +324,33 @@ hipError_t hipDeviceGetFromId(hipDevice_t *device, int deviceId) return ihipLogStatus(e); } + +hipError_t hipDeviceComputeCapability(int *major, int *minor, hipDevice_t device) +{ + HIP_INIT_API(major,minor, device); + hipError_t e = hipSuccess; + int deviceId= device->_deviceId; + e = hipDeviceGetAttribute(major, hipDeviceAttributeComputeCapabilityMajor, deviceId); + e = hipDeviceGetAttribute(minor, hipDeviceAttributeComputeCapabilityMinor, deviceId); + return ihipLogStatus(e); +} + +hipError_t hipDeviceGetName(char *name,int len,hipDevice_t device) +{ + HIP_INIT_API(name,len, device); + hipError_t e = hipSuccess; + int nameLen = strlen(device->_props.name); + if(nameLen <= len) + memcpy(name,device->_props.name,nameLen); + return ihipLogStatus(e); +} + +hipError_t hipDeviceGetPCIBusId (int *pciBusId,int len,hipDevice_t device) +{ + HIP_INIT_API(pciBusId,len, device); + hipError_t e = hipSuccess; + int deviceId= device->_deviceId; + e = hipDeviceGetAttribute(pciBusId, hipDeviceAttributePciBusId, deviceId); + return ihipLogStatus(e); +} +