SWDEV-497841 - Add virtual memory heap

Add initial implementation of virtual memory heap with
dynamic virtual memory mapping support for memory pools.
DEBUG_HIP_MEM_POOL_VMHEAP controls the new method.

Change-Id: I8dc5be2e0f34ab472f1800f43bb6243639a5e500
This commit is contained in:
German Andryeyev
2025-01-24 19:26:39 -05:00
parent 63cf3057ba
commit 296dce5570
11 changed files with 670 additions and 39 deletions
+3 -2
View File
@@ -82,7 +82,8 @@ GpuMemoryReference* GpuMemoryReference::Create(const Device& dev,
return nullptr;
}
}
if (!createInfo.flags.sdiExternal) {
memRef->va_range_ = createInfo.flags.virtualAlloc;
if (!createInfo.flags.sdiExternal && !createInfo.flags.virtualAlloc) {
// Update free memory size counters
dev.updateAllocedMemory(memRef->gpuMem_->Desc().heaps[0], memRef->gpuMem_->Desc().size, false);
}
@@ -280,7 +281,7 @@ GpuMemoryReference::~GpuMemoryReference() {
iMem()->Unmap();
}
if (!(iMem()->Desc().flags.isShared || iMem()->Desc().flags.isExternal ||
iMem()->Desc().flags.isExternPhys)) {
iMem()->Desc().flags.isExternPhys || va_range_)) {
// Update free memory size counters
device_.updateAllocedMemory(iMem()->Desc().heaps[0], iMem()->Desc().size, true);
}