diff --git a/projects/clr/hipamd/src/hip_memory.cpp b/projects/clr/hipamd/src/hip_memory.cpp index 6721b86d81..6ff0939b2c 100644 --- a/projects/clr/hipamd/src/hip_memory.cpp +++ b/projects/clr/hipamd/src/hip_memory.cpp @@ -344,11 +344,11 @@ hipError_t ihipMalloc(void** ptr, size_t sizeBytes, unsigned int flags) const auto& dev_info = amdContext->devices()[0]->info(); hip::getCurrentDevice()->SetActiveStatus(); - if (dev_info.maxPhysicalMemAllocSize_ < sizeBytes) { - return hipErrorOutOfMemory; - } - // PAL allocates from system memory if needed - if (IS_LINUX && !useHostDevice && (dev_info.maxMemAllocSize_ < sizeBytes)) { + size_t max_device_size = IS_LINUX ? dev_info.maxMemAllocSize_ : + (dev_info.maxMemAllocSize_ + dev_info.maxPhysicalMemAllocSize_); + + if ((useHostDevice && dev_info.maxPhysicalMemAllocSize_ < sizeBytes) || + (!useHostDevice && max_device_size < sizeBytes)) { return hipErrorOutOfMemory; }