diff --git a/rocclr/device/pal/paldevice.cpp b/rocclr/device/pal/paldevice.cpp index 49e2398f75..d88eb7c475 100644 --- a/rocclr/device/pal/paldevice.cpp +++ b/rocclr/device/pal/paldevice.cpp @@ -1852,10 +1852,11 @@ bool Device::globalFreeMemory(size_t* freeMemory) const { Pal::gpusize local = allocedMem[Pal::GpuHeapLocal]; Pal::gpusize invisible = allocedMem[Pal::GpuHeapInvisible] - resourceCache().lclCacheSize(); + Pal::gpusize total_alloced = local + invisible; // Fill free memory info - freeMemory[TotalFreeMemory] = - static_cast((info().globalMemSize_ - (local + invisible)) / Ki); + freeMemory[TotalFreeMemory] = (total_alloced > info().globalMemSize_ ) ? 0 : + static_cast((info().globalMemSize_ - total_alloced) / Ki); if (invisible >= heaps_[Pal::GpuHeapInvisible].heapSize) { invisible = 0; } else {