From 9dabdcdc3e1f1f2d31b230a93980f43560436606 Mon Sep 17 00:00:00 2001 From: Satyanvesh Dittakavi Date: Wed, 24 Nov 2021 18:56:53 +0000 Subject: [PATCH] SWDEV-309286 - save the max system mem size in device info Change-Id: I9955625aca6ceda059aef6354d909de636b610ba --- rocclr/device/device.hpp | 3 +++ rocclr/device/pal/paldevice.cpp | 3 +++ rocclr/device/rocm/rocdevice.cpp | 3 +++ 3 files changed, 9 insertions(+) diff --git a/rocclr/device/device.hpp b/rocclr/device/device.hpp index d1645e49dd..e6aae8fa74 100644 --- a/rocclr/device/device.hpp +++ b/rocclr/device/device.hpp @@ -309,6 +309,9 @@ struct Info : public amd::EmbeddedObject { //! Max size of memory object allocation in bytes. uint64_t maxMemAllocSize_; + //! Max size of system memory allocation in bytes. + size_t maxPhysicalMemAllocSize_; + //! Max width of 2D image in pixels. size_t image2DMaxWidth_; diff --git a/rocclr/device/pal/paldevice.cpp b/rocclr/device/pal/paldevice.cpp index 216011f976..2faacfdd6a 100644 --- a/rocclr/device/pal/paldevice.cpp +++ b/rocclr/device/pal/paldevice.cpp @@ -424,6 +424,9 @@ void NullDevice::fillDeviceInfo(const Pal::DeviceProperties& palProp, // reduced by default info_.maxMemAllocSize_ = std::min(info_.maxMemAllocSize_, info_.globalMemSize_); + // Maximum system memory allocation size allowed + info_.maxPhysicalMemAllocSize_ = amd::Os::getPhysicalMemSize(); + // We need to verify that we are not reporting more global memory // that 4x single alloc info_.globalMemSize_ = std::min(4 * info_.maxMemAllocSize_, info_.globalMemSize_); diff --git a/rocclr/device/rocm/rocdevice.cpp b/rocclr/device/rocm/rocdevice.cpp index 1655992786..39bc560e22 100644 --- a/rocclr/device/rocm/rocdevice.cpp +++ b/rocclr/device/rocm/rocdevice.cpp @@ -1227,6 +1227,9 @@ bool Device::populateOCLDeviceConstants() { info_.maxMemAllocSize_ = std::min(info_.maxMemAllocSize_, info_.globalMemSize_); info_.maxMemAllocSize_ = amd::alignDown(info_.maxMemAllocSize_, sizeof(uint64_t)); + // Maximum system memory allocation size allowed + info_.maxPhysicalMemAllocSize_ = amd::Os::getPhysicalMemSize(); + // make sure we don't run anything over 8 params for now info_.maxParameterSize_ = 1024;