diff --git a/rocclr/runtime/device/gpu/gpudevice.cpp b/rocclr/runtime/device/gpu/gpudevice.cpp index 373206607c..fe2a87214f 100644 --- a/rocclr/runtime/device/gpu/gpudevice.cpp +++ b/rocclr/runtime/device/gpu/gpudevice.cpp @@ -285,9 +285,10 @@ void NullDevice::fillDeviceInfo( (static_cast(std::min(GPU_MAX_HEAP_SIZE, 100u)) * static_cast(calAttr.localRAM) / 100u) * Mi; #endif + int uswcPercentAvailable = (calAttr.uncachedRemoteRAM > 1536) ? 75 : 50; if (settings().apuSystem_) { info_.globalMemSize_ += - (static_cast(calAttr.uncachedRemoteRAM) * Mi * 75)/100; + (static_cast(calAttr.uncachedRemoteRAM) * Mi * uswcPercentAvailable)/100; } // We try to calculate the largest available memory size from @@ -302,7 +303,7 @@ void NullDevice::fillDeviceInfo( #if defined(ATI_OS_WIN) if (settings().apuSystem_) { info_.maxMemAllocSize_ = std::max( - (static_cast(calAttr.uncachedRemoteRAM) * Mi * 75)/100, + (static_cast(calAttr.uncachedRemoteRAM) * Mi * uswcPercentAvailable)/100, info_.maxMemAllocSize_); } #endif