From 1d21b8cfb228cd917e4bca68d1b272700a1c1c97 Mon Sep 17 00:00:00 2001 From: foreman Date: Thu, 30 Jul 2015 16:07:40 -0400 Subject: [PATCH] P4 to Git Change 1175724 by gandryey@gera-ubuntu14 on 2015/07/30 15:50:59 ECR #304775 - Remove CALdevicestatus Affected files ... ... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpudevice.cpp#516 edit ... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpudevice.hpp#146 edit ... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gslbe/src/rt/GSLDevice.cpp#128 edit ... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gslbe/src/rt/GSLDevice.h#52 edit ... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gslbe/src/rt/backend.h#7 edit [ROCm/clr commit: 4b97729c2e4773ac802b7847ad1c26ebbc712f00] --- .../rocclr/runtime/device/gpu/gpudevice.cpp | 24 ++++++------ .../rocclr/runtime/device/gpu/gpudevice.hpp | 2 +- .../device/gpu/gslbe/src/rt/GSLDevice.cpp | 37 +------------------ .../device/gpu/gslbe/src/rt/GSLDevice.h | 6 +-- .../runtime/device/gpu/gslbe/src/rt/backend.h | 21 ----------- 5 files changed, 15 insertions(+), 75 deletions(-) diff --git a/projects/clr/rocclr/runtime/device/gpu/gpudevice.cpp b/projects/clr/rocclr/runtime/device/gpu/gpudevice.cpp index cbea2dc896..d1dd95bdf8 100644 --- a/projects/clr/rocclr/runtime/device/gpu/gpudevice.cpp +++ b/projects/clr/rocclr/runtime/device/gpu/gpudevice.cpp @@ -118,8 +118,8 @@ NullDevice::init() bool NullDevice::create(CALtarget target) { - CALdeviceattribs calAttr = {0}; - CALdevicestatus calDevStatus = {0}; + CALdeviceattribs calAttr = {0}; + gslMemInfo memInfo = {0}; online_ = false; @@ -168,13 +168,12 @@ NullDevice::create(CALtarget target) } // Report 512MB for all offline devices - calDevStatus.availVisibleHeap = 512; - calDevStatus.largestBlockVisibleHeap = 512; + memInfo.cardMemAvailableBytes = 512 * Mi; + memInfo.cardLargestFreeBlockBytes = 512 * Mi; calAttr.localRAM = 512; // Fill the device info structure - fillDeviceInfo(calAttr, calDevStatus, 4096, 1, true - ); + fillDeviceInfo(calAttr, memInfo, 4096, 1, true); if (settings().hsail_ || (settings().oclVersion_ == OpenCL20)) { // Runtime doesn't know what local size could be on the real board @@ -224,7 +223,7 @@ NullDevice::createProgram(int oclVer) void NullDevice::fillDeviceInfo( const CALdeviceattribs& calAttr, - const CALdevicestatus& calStatus, + const gslMemInfo& memInfo, size_t maxTextureSize, uint numComputeRings, bool isVirtualMode @@ -294,8 +293,7 @@ void NullDevice::fillDeviceInfo( (static_cast(std::min(GPU_MAX_HEAP_SIZE, 100u)) * // globalMemSize is the actual available size for app on Linux // Because Linux base driver doesn't support paging - static_cast(calStatus.availVisibleHeap + - calStatus.availInvisibleHeap) / 100u) * Mi; + static_cast(memInfo.cardMemAvailableBytes + memInfo.cardExtMemAvailableBytes) / 100u); #else info_.globalMemSize_ = (static_cast(std::min(GPU_MAX_HEAP_SIZE, 100u)) * @@ -312,8 +310,8 @@ void NullDevice::fillDeviceInfo( // start. Note that it may not be a guarantee still as the // application progresses. info_.maxMemAllocSize_ = std::max( - cl_ulong(calStatus.largestBlockVisibleHeap * Mi), - cl_ulong(calStatus.largestBlockInvisibleHeap * Mi)); + cl_ulong(memInfo.cardLargestFreeBlockBytes), + cl_ulong(memInfo.cardExtLargestFreeBlockBytes)); #if defined(ATI_OS_WIN) if (settings().apuSystem_) { @@ -894,7 +892,7 @@ Device::create(CALuint ordinal, CALuint numOfDevices) } // Fill the device info structure - fillDeviceInfo(getAttribs(), getStatus(), + fillDeviceInfo(getAttribs(), getMemInfo(), static_cast(getMaxTextureSize()), engines().numComputeRings(), heap()->isVirtual() ); @@ -2129,7 +2127,7 @@ Device::globalFreeMemory(size_t* freeMemory) const } if (heap()->isVirtual()) { gslMemInfo memInfo = {0}; - getMemInfo(&memInfo); + gslCtx()->getMemInfo(&memInfo, GSL_MEMINFO_BASIC); // Fill free memory info freeMemory[TotalFreeMemory] = (memInfo.cardMemAvailableBytes + diff --git a/projects/clr/rocclr/runtime/device/gpu/gpudevice.hpp b/projects/clr/rocclr/runtime/device/gpu/gpudevice.hpp index 2490642f61..dea3028fe3 100644 --- a/projects/clr/rocclr/runtime/device/gpu/gpudevice.hpp +++ b/projects/clr/rocclr/runtime/device/gpu/gpudevice.hpp @@ -123,7 +123,7 @@ protected: //! Fills OpenCL device info structure void fillDeviceInfo( const CALdeviceattribs& calAttr, //!< CAL device attributes info - const CALdevicestatus& calStatus, //!< CAL device status + const gslMemInfo& memInfo, //!< GSL mem info size_t maxTextureSize, //!< Maximum texture size supported in HW uint numComputeRings, //!< Number of compute rings bool isVirtualMode //!< Device is in virtual mode 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 cf76f97f5b..d6dfbf8fba 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 @@ -81,12 +81,6 @@ CALGSLDevice::getMaxTextureSize() const return static_cast(m_maxtexturesize); } -void -CALGSLDevice::getMemInfo(gslMemInfo* memInfo) const -{ - m_cs->getMemInfo(memInfo, GSL_MEMINFO_BASIC); -} - void CALGSLDevice::getAttribs_int(gsl::gsCtx* cs) { @@ -157,35 +151,6 @@ CALGSLDevice::getAttribs_int(gsl::gsCtx* cs) m_attribs.isSVMFineGrainSystem = m_adp->pAsicInfo->svmFineGrainSystem; } -void -CALGSLDevice::getStatus_int(gsl::gsCtx* cs) -{ - m_deviceStatus.struct_size = sizeof(CALdevicestatus); - - gslMemInfo memInfo; - cs->getMemInfo(&memInfo, GSL_MEMINFO_BASIC); - - m_deviceStatus.availLocalRAM = (uint32)((memInfo.cardMemAvailableBytes + memInfo.cardExtMemAvailableBytes) / (1024 * 1024)); - m_deviceStatus.availUncachedRemoteRAM = (uint32)(memInfo.agpMemAvailableBytes / (1024 * 1024)); - m_deviceStatus.availCachedRemoteRAM = (uint32)(memInfo.agpMemAvailableCacheableBytes / (1024 * 1024)); - m_deviceStatus.availVisibleHeap = (uint32) (memInfo.cardMemAvailableBytes / (1024 * 1024)); - m_deviceStatus.availInvisibleHeap = (uint32) (memInfo.cardExtMemAvailableBytes / (1024 * 1024)); - m_deviceStatus.availDirectHeap = (uint32) (memInfo.directAvailableBytes / (1024 * 1024)); - m_deviceStatus.availCoherentHeap = (uint32) (memInfo.coherentAvailableBytes / (1024 * 1024)); - m_deviceStatus.availRemoteSharedHeap = (uint32) (memInfo.sharedAvailableBytes / (1024 * 1024)); - m_deviceStatus.availCachedRemoteSharedHeap = (uint32) (memInfo.sharedCacheableAvailableBytes / (1024 * 1024)); - - m_deviceStatus.largestBlockVisibleHeap = (uint32) (memInfo.cardLargestFreeBlockBytes / (1024 * 1024)); - m_deviceStatus.largestBlockInvisibleHeap = (uint32) (memInfo.cardExtLargestFreeBlockBytes / (1024 * 1024)); - m_deviceStatus.largestBlockRemoteHeap = (uint32) (memInfo.agpLargestFreeBlockBytes / (1024 * 1024)); - m_deviceStatus.largestBlockCachedRemoteHeap = (uint32) (memInfo.agpCacheableLargestFreeBlockBytes / (1024 * 1024)); - m_deviceStatus.largestBlockDirectHeap = (uint32) (memInfo.directLargestFreeBlockBytes / (1024 * 1024)); - m_deviceStatus.largestBlockCoherentHeap = (uint32) (memInfo.coherentLargestFreeBlockBytes / (1024 * 1024)); - m_deviceStatus.largestBlockRemoteSharedHeap = (uint32) (memInfo.sharedLargestFreeBlockBytes / (1024 * 1024)); - m_deviceStatus.largestBlockCachedRemoteSharedHeap = (uint32) (memInfo.sharedCacheableLargestFreeBlockBytes / (1024 * 1024)); - -} - bool CALGSLDevice::open(uint32 gpuIndex, bool enableHighPerformanceState, bool reportAsOCL12Device) { @@ -578,7 +543,7 @@ CALGSLDevice::SetupContext(int32 &asic_id) //cache device details getAttribs_int(temp_cs); - getStatus_int(temp_cs); + temp_cs->getMemInfo(&m_memInfo, GSL_MEMINFO_BASIC); m_vmMode = temp_cs->getVMMode(); 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 01334fc4ed..d62b3fd9bf 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 @@ -96,8 +96,7 @@ public: uint32 getMaxTextureSize() const; const CALdeviceattribs& getAttribs() const { return m_attribs; } - const CALdevicestatus& getStatus() const {return m_deviceStatus; } - void getMemInfo(gslMemInfo* memInfo) const; + const gslMemInfo& getMemInfo() const { return m_memInfo; } bool isVmMode() const { return m_vmMode; }; @@ -203,11 +202,10 @@ private: void PerformFullInitialization_int(); void getAttribs_int(gsl::gsCtx* cs); - void getStatus_int(gsl::gsCtx* cs); bool ResolveAperture(const gslMemObjectAttribTiling tiling) const; CALdeviceattribs m_attribs; - CALdevicestatus m_deviceStatus; + gslMemInfo m_memInfo; gslTextureResourceObject m_textureResource; gslSamplerObject m_textureSampler; gslEngineID m_forcedComputeEngineID; diff --git a/projects/clr/rocclr/runtime/device/gpu/gslbe/src/rt/backend.h b/projects/clr/rocclr/runtime/device/gpu/gslbe/src/rt/backend.h index 47e03379bb..6613092cde 100644 --- a/projects/clr/rocclr/runtime/device/gpu/gslbe/src/rt/backend.h +++ b/projects/clr/rocclr/runtime/device/gpu/gslbe/src/rt/backend.h @@ -105,27 +105,6 @@ typedef struct CALdeviceattribsRec { bool isSVMFineGrainSystem; /**< check if SVM finegrainsystem */ } CALdeviceattribs; -/** CAL device status */ -typedef struct CALdevicestatusRec { - CALuint struct_size; /**< Client filled out size of CALdevicestatus struct */ - CALuint availLocalRAM; /**< Amount of available local GPU RAM in megabytes */ - CALuint availUncachedRemoteRAM; /**< Amount of available uncached remote GPU memory in megabytes */ - CALuint availCachedRemoteRAM; /**< Amount of available cached remote GPU memory in megabytes */ - CALuint availVisibleHeap; /**< Amount of available visible local GPU RAM in megabytes */ - CALuint availInvisibleHeap; /**< Amount of available invisible local GPU RAM in megabytes */ - CALuint availDirectHeap; /**< Amount of available direct GPU memory in megabytes */ - CALuint availCoherentHeap; /**< Amount of available coherent GPU memory in megabytes */ - CALuint availRemoteSharedHeap; /**< Amount of available remote Shared GPU memory in megabytes */ - CALuint availCachedRemoteSharedHeap; /**< Amount of available cached remote Shared GPU memory in megabytes */ - CALuint largestBlockVisibleHeap; /**< Largest block available visible local GPU RAM in megabytes */ - CALuint largestBlockInvisibleHeap; /**< Largest block available invisible local GPU RAM in megabytes */ - CALuint largestBlockRemoteHeap; /**< Largest block available remote GPU memory in megabytes */ - CALuint largestBlockCachedRemoteHeap; /**< Largest block available cached remote GPU memory in megabytes */ - CALuint largestBlockDirectHeap; /**< Largest block available direct GPU memory in megabytes */ - CALuint largestBlockCoherentHeap; /**< Largest block available coherent GPU memory in megabytes */ - CALuint largestBlockRemoteSharedHeap; /**< Largest block available remote Shared GPU memory in megabytes */ - CALuint largestBlockCachedRemoteSharedHeap; /**< Largest block available cached remote Shared GPU memory in megabytes */ -} CALdevicestatus; /** CAL resource allocation flags **/ typedef enum CALresallocflagsEnum {