diff --git a/rocclr/device/pal/palresource.cpp b/rocclr/device/pal/palresource.cpp index 0af7035abe..ab931a99fd 100644 --- a/rocclr/device/pal/palresource.cpp +++ b/rocclr/device/pal/palresource.cpp @@ -2204,7 +2204,7 @@ bool MemorySubAllocator::Free(amd::Monitor* monitor, GpuMemoryReference* ref, Pa it->second->Free(offset); // If this suballocator empty, then release memory chunk // while keeping at least one chunk available, if retain_final_chunk is true - if (it->second->IsEmpty() && !(retain_final_chunk_ && heaps_.size() == 1)) { + if (it->second->IsEmpty() && (!(retain_final_chunk_ && heaps_.size() == 1) || !amd::IS_HIP)) { delete it->second; heaps_.erase(it); release_mem = true;