From eb62fe9f6276b91947c9b02faaa9fe75da192290 Mon Sep 17 00:00:00 2001 From: "Jiang, Julia" Date: Tue, 29 Apr 2025 11:29:47 -0400 Subject: [PATCH] SWDEV-522634 - Fix device properties in hipInfo (#203) --- hipamd/src/hip_device.cpp | 4 ++-- rocclr/device/pal/paldevice.cpp | 2 +- rocclr/device/rocm/rocdevice.cpp | 10 ++-------- 3 files changed, 5 insertions(+), 11 deletions(-) diff --git a/hipamd/src/hip_device.cpp b/hipamd/src/hip_device.cpp index 1647f4b735..5ceab58676 100644 --- a/hipamd/src/hip_device.cpp +++ b/hipamd/src/hip_device.cpp @@ -489,7 +489,7 @@ hipError_t ihipGetDeviceProperties(hipDeviceProp_tR0600* props, int device) { deviceProps.maxGridSize[2] = uint16_max; deviceProps.clockRate = info.maxEngineClockFrequency_ * 1000; deviceProps.memoryClockRate = info.maxMemoryClockFrequency_ * 1000; - deviceProps.memoryBusWidth = info.globalMemChannels_; + deviceProps.memoryBusWidth = info.vramBusBitWidth_; deviceProps.totalConstMem = std::min(info.maxConstantBufferSize_, int32_max); deviceProps.major = isa.versionMajor(); deviceProps.minor = isa.versionMinor(); @@ -690,7 +690,7 @@ hipError_t hipGetDevicePropertiesR0000(hipDeviceProp_tR0000* prop, int device) { deviceProps.maxGridSize[2] = uint16_max; deviceProps.clockRate = info.maxEngineClockFrequency_ * 1000; deviceProps.memoryClockRate = info.maxMemoryClockFrequency_ * 1000; - deviceProps.memoryBusWidth = info.globalMemChannels_; + deviceProps.memoryBusWidth = info.vramBusBitWidth_; deviceProps.totalConstMem = std::min(info.maxConstantBufferSize_, int32_max); deviceProps.major = isa.versionMajor(); deviceProps.minor = isa.versionMinor(); diff --git a/rocclr/device/pal/paldevice.cpp b/rocclr/device/pal/paldevice.cpp index 1f979d6754..6530ce37d6 100644 --- a/rocclr/device/pal/paldevice.cpp +++ b/rocclr/device/pal/paldevice.cpp @@ -667,7 +667,7 @@ void NullDevice::fillDeviceInfo(const Pal::DeviceProperties& palProp, info_.vgprAllocGranularity_ = palProp.gfxipProperties.shaderCore.vgprAllocGranularity; info_.vgprsPerSimd_ = palProp.gfxipProperties.shaderCore.vgprsPerSimd; info_.sgprsPerSimd_ = palProp.gfxipProperties.shaderCore.sgprsPerSimd; - + info_.availableRegistersPerCU_ = info_.vgprsPerSimd_ * info_.simdPerCU_ * 32; info_.luidLowPart_ = palProp.osProperties.luidLowPart; info_.luidHighPart_ = palProp.osProperties.luidHighPart; // Setup the node mask for MGPU only case from the original PAL list of all devices diff --git a/rocclr/device/rocm/rocdevice.cpp b/rocclr/device/rocm/rocdevice.cpp index 82e1b00438..1cf7d96464 100644 --- a/rocclr/device/rocm/rocdevice.cpp +++ b/rocclr/device/rocm/rocdevice.cpp @@ -1138,14 +1138,6 @@ bool Device::populateOCLDeviceConstants() { } info_.wallClockFrequency_ = static_cast(wallClockFrequency / 1000); // in KHz - if (HSA_STATUS_SUCCESS != - hsa_agent_get_info(bkendDevice_, - static_cast(HSA_AMD_AGENT_INFO_MEMORY_WIDTH), - &info_.globalMemChannels_)) { - return false; - } - assert(info_.globalMemChannels_ > 0); - if (HSA_STATUS_SUCCESS != hsa_agent_get_info(bkendDevice_, static_cast(HSA_AMD_AGENT_INFO_DRIVER_NODE_ID), @@ -1566,6 +1558,8 @@ bool Device::populateOCLDeviceConstants() { return false; } + info_.globalMemChannels_ = info_.vramBusBitWidth_ / 32; + if (HSA_STATUS_SUCCESS != hsa_agent_get_info(bkendDevice_, static_cast(HSA_AMD_AGENT_INFO_NUM_SIMDS_PER_CU),