From 4bde42f56b597098cdf9efc39356d28bf4d5991e Mon Sep 17 00:00:00 2001
From: foreman
Date: Tue, 3 Feb 2015 10:13:23 -0500
Subject: [PATCH] P4 to Git Change 1117979 by jatang@jatang-opencl-hsa-stg1 on
2015/02/03 10:05:21
EPR #412821 - Add CL_DEVICE_AVAILABLE_ASYNC_QUEUES_AMD to cl_amd_device_attribute_query.
Affected files ...
... //depot/stg/opencl/drivers/opencl/api/opencl/amdocl/cl_device.cpp#56 edit
... //depot/stg/opencl/drivers/opencl/api/opencl/khronos/headers/opencl1.2/CL/cl_ext.h#8 edit
... //depot/stg/opencl/drivers/opencl/api/opencl/khronos/headers/opencl2.0/CL/cl_ext.h#15 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/device.hpp#239 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpudevice.cpp#493 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gslbe/src/rt/GSLDevice.cpp#105 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gslbe/src/rt/GSLDevice.h#43 edit
[ROCm/clr commit: 8eb38c986fd6edc16dbc1b40aa54f265d04577f3]
---
projects/clr/rocclr/runtime/device/device.hpp | 5 ++++-
projects/clr/rocclr/runtime/device/gpu/gpudevice.cpp | 9 +++++----
.../runtime/device/gpu/gslbe/src/rt/GSLDevice.cpp | 10 ++--------
.../rocclr/runtime/device/gpu/gslbe/src/rt/GSLDevice.h | 4 +++-
4 files changed, 14 insertions(+), 14 deletions(-)
diff --git a/projects/clr/rocclr/runtime/device/device.hpp b/projects/clr/rocclr/runtime/device/device.hpp
index 9d2e67cae7..2e699dcb0c 100644
--- a/projects/clr/rocclr/runtime/device/device.hpp
+++ b/projects/clr/rocclr/runtime/device/device.hpp
@@ -535,7 +535,10 @@ struct Info : public amd::EmbeddedObject
cl_uint localMemSizePerCU_;
//! Number of banks of local memory
cl_uint localMemBanks_;
- cl_uint gfxipVersion_; //!< The core engine GFXIP version
+ //! The core engine GFXIP version
+ cl_uint gfxipVersion_;
+ //! Number of available async queues
+ cl_uint numAsyncQueues_;
//! Thread trace enable
cl_bool threadTraceEnable_;
diff --git a/projects/clr/rocclr/runtime/device/gpu/gpudevice.cpp b/projects/clr/rocclr/runtime/device/gpu/gpudevice.cpp
index bab422332d..107a284c60 100644
--- a/projects/clr/rocclr/runtime/device/gpu/gpudevice.cpp
+++ b/projects/clr/rocclr/runtime/device/gpu/gpudevice.cpp
@@ -787,6 +787,7 @@ void Device::fillDeviceInfo(
info_.localMemSizePerCU_ = hwInfo()->localMemSizePerCU_;
info_.localMemBanks_ = hwInfo()->localMemBanks_;
info_.gfxipVersion_ = hwInfo()->gfxipVersion_;
+ info_.numAsyncQueues_ = engines().numComputeRings();
info_.threadTraceEnable_ = settings().threadTraceEnable_;
}
}
@@ -820,6 +821,8 @@ Device::create(CALuint ordinal, CALuint numOfDevices)
return false;
}
+ engines_.create(m_nEngines, m_engines, settings().numComputeRings_);
+
amd::Context::Info info = {0};
std::vector devices;
devices.push_back(this);
@@ -975,10 +978,8 @@ Device::initializeHeapResources()
amd::ScopedLock k(lockAsyncOpsForInitHeap_);
if (!heapInitComplete_) {
heapInitComplete_ = true;
- uint nEngines;
- gslEngineDescriptor engines[GSL_ENGINEID_MAX];
- queryDeviceEngines(&nEngines, engines);
- engines_.create(nEngines, engines, settings().numComputeRings_);
+
+ PerformFullInitialization();
uint numComputeRings = engines_.numComputeRings();
scratch_.resize((settings().useSingleScratch_) ? 1 : (numComputeRings ? numComputeRings : 1));
diff --git a/projects/clr/rocclr/runtime/device/gpu/gslbe/src/rt/GSLDevice.cpp b/projects/clr/rocclr/runtime/device/gpu/gslbe/src/rt/GSLDevice.cpp
index b6ee6444dc..f159d4beb7 100644
--- a/projects/clr/rocclr/runtime/device/gpu/gslbe/src/rt/GSLDevice.cpp
+++ b/projects/clr/rocclr/runtime/device/gpu/gslbe/src/rt/GSLDevice.cpp
@@ -308,6 +308,8 @@ CALGSLDevice::open(uint32 gpuIndex, bool enableHighPerformanceState, bool report
return false;
}
+ m_adp->queryAvailableEngines(&m_nEngines, m_engines);
+
if (m_PerformLazyDeviceInit)
{
// close the adaptor
@@ -1405,14 +1407,6 @@ CALGSLDevice::resCopy(gslMemObject srcRes, gslMemObject dstRes, uint32 flags) co
}
}
-void
-CALGSLDevice::queryDeviceEngines(uint32 *nEngines, gslEngineDescriptor *engines)
-{
- PerformFullInitialization();
-
- m_adp->queryAvailableEngines(nEngines, engines);
-}
-
#define CPDMA_THRESHOLD 131072
CopyType
diff --git a/projects/clr/rocclr/runtime/device/gpu/gslbe/src/rt/GSLDevice.h b/projects/clr/rocclr/runtime/device/gpu/gslbe/src/rt/GSLDevice.h
index 819094576a..9ab0f91ec8 100644
--- a/projects/clr/rocclr/runtime/device/gpu/gslbe/src/rt/GSLDevice.h
+++ b/projects/clr/rocclr/runtime/device/gpu/gslbe/src/rt/GSLDevice.h
@@ -115,7 +115,6 @@ public:
void PerformAdapterInitialization() const;
void PerformFullInitialization() const;
- void queryDeviceEngines(uint32* nEngines, gslEngineDescriptor* engines);
CopyType GetCopyType(gslMemObject srcMem, gslMemObject destMem, size_t* srcOffset,
size_t* destOffset, bool allowDMA, uint32 flags, uint64& surfaceSize,
@@ -160,6 +159,9 @@ protected:
channelSwizzleMode a : 8; ///< Alpha channel of texture
} channelSwizzle;
+ uint m_nEngines;
+ gslEngineDescriptor m_engines[GSL_ENGINEID_MAX];
+
private:
gsl::gsAdaptor* m_adp;
gsl::gsCtx* m_cs;