From 8ddf97e6346e30279a587b6318a83919b49aeeb8 Mon Sep 17 00:00:00 2001
From: foreman
Date: Mon, 18 Sep 2017 12:28:52 -0400
Subject: [PATCH] P4 to Git Change 1459984 by wchau@wchau_OCL_boltzmann on
2017/09/18 12:13:12
SWDEV-120036 - Supporting the cl_amd_device_attribute_query on the ROC device
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocdevice.cpp#62 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocsettings.cpp#25 edit
[ROCm/clr commit: d540aab99d60c3fc9cc35eaa9e88d34aa15118f1]
---
.../rocclr/runtime/device/rocm/rocdevice.cpp | 39 ++++++++++++-------
.../runtime/device/rocm/rocsettings.cpp | 2 +
2 files changed, 26 insertions(+), 15 deletions(-)
diff --git a/projects/clr/rocclr/runtime/device/rocm/rocdevice.cpp b/projects/clr/rocclr/runtime/device/rocm/rocdevice.cpp
index 315343dcb6..648f9e3804 100644
--- a/projects/clr/rocclr/runtime/device/rocm/rocdevice.cpp
+++ b/projects/clr/rocclr/runtime/device/rocm/rocdevice.cpp
@@ -1093,26 +1093,35 @@ bool Device::populateOCLDeviceConstants() {
#endif // !defined(WITH_LIGHTNING_COMPILER)
}
- //if (settings().checkExtension(ClAmdDeviceAttributeQuery)) {
- //info_.simdPerCU_ = deviceInfo_.simdPerCU_;
- //info_.simdWidth_ = deviceInfo_.simdWidth_;
- //info_.simdInstructionWidth_ = deviceInfo_.simdInstructionWidth_;
+ if (settings().checkExtension(ClAmdDeviceAttributeQuery)) {
+ info_.simdPerCU_ = deviceInfo_.simdPerCU_;
+ info_.simdWidth_ = deviceInfo_.simdWidth_;
+ info_.simdInstructionWidth_ = deviceInfo_.simdInstructionWidth_;
if (HSA_STATUS_SUCCESS !=
hsa_agent_get_info(_bkendDevice, HSA_AGENT_INFO_WAVEFRONT_SIZE, &info_.wavefrontWidth_)) {
return false;
}
- //info_.globalMemChannels_ = palProp.gpuMemoryProperties.performance.vramBusBitWidth / 32;
- //info_.globalMemChannelBanks_ = 4;
- //info_.globalMemChannelBankWidth_ = deviceInfo_.memChannelBankWidth_;
- //info_.localMemSizePerCU_ = deviceInfo_.localMemSizePerCU_;
- //info_.localMemBanks_ = deviceInfo_.localMemBanks_;
+ if (HSA_STATUS_SUCCESS !=
+ hsa_agent_get_info(_bkendDevice, (hsa_agent_info_t)HSA_AMD_AGENT_INFO_MEMORY_WIDTH, &info_.globalMemChannels_)) {
+ return false;
+ }
+ info_.globalMemChannelBanks_ = 4;
+ info_.globalMemChannelBankWidth_ = deviceInfo_.memChannelBankWidth_;
+ info_.localMemSizePerCU_ = deviceInfo_.localMemSizePerCU_;
+ info_.localMemBanks_ = deviceInfo_.localMemBanks_;
info_.gfxipVersion_ = deviceInfo_.gfxipVersion_;
- //info_.numAsyncQueues_ = numComputeRings;
- //info_.numRTQueues_ = numExclusiveComputeRings;
- //info_.numRTCUs_ = palProp.engineProperties[Pal::EngineTypeExclusiveCompute].maxNumDedicatedCu;
- //info_.threadTraceEnable_ = settings().threadTraceEnable_;
- //}
-
+ if (HSA_STATUS_SUCCESS !=
+ hsa_agent_get_info(_bkendDevice, HSA_AGENT_INFO_QUEUES_MAX, &info_.numAsyncQueues_)) {
+ return false;
+ }
+ info_.numRTQueues_ = info_.numAsyncQueues_;
+ if (HSA_STATUS_SUCCESS !=
+ hsa_agent_get_info(_bkendDevice, (hsa_agent_info_t)HSA_AMD_AGENT_INFO_COMPUTE_UNIT_COUNT, &info_.numRTCUs_)) {
+ return false;
+ }
+ //TODO: set to true once thread trace support is available
+ info_.threadTraceEnable_ = false;
+ }
return true;
}
diff --git a/projects/clr/rocclr/runtime/device/rocm/rocsettings.cpp b/projects/clr/rocclr/runtime/device/rocm/rocsettings.cpp
index 94e1e4f666..dfab1f256f 100644
--- a/projects/clr/rocclr/runtime/device/rocm/rocsettings.cpp
+++ b/projects/clr/rocclr/runtime/device/rocm/rocsettings.cpp
@@ -101,6 +101,8 @@ bool Settings::create(bool fullProfile, int gfxipVersion) {
if (MesaInterop::Supported()) {
enableExtension(ClKhrGlSharing);
}
+ // Enable platform extension
+ enableExtension(ClAmdDeviceAttributeQuery);
// Enable KHR double precision extension
enableExtension(ClKhrFp64);