feature: add pooling of USM global/constant surface

Related-To: NEO-12287
Signed-off-by: Fabian Zwoliński <fabian.zwolinski@intel.com>
This commit is contained in:
Fabian Zwoliński
2025-09-12 13:52:33 +00:00
committed by Compute-Runtime-Automation
parent ca2b26e87b
commit 68698c9a74
15 changed files with 601 additions and 38 deletions

View File

@@ -100,9 +100,24 @@ void ModuleTranslationUnit::freeGlobalBufferAllocation(const std::unique_ptr<NEO
return;
}
auto svmAllocsManager = device->getDriverHandle()->getSvmAllocsManager();
auto gpuAddress = reinterpret_cast<void *>(globalBuffer->getGpuAddress());
if (auto usmPool = device->getNEODevice()->getUsmConstantSurfaceAllocPool();
usmPool && usmPool->isInPool(gpuAddress)) {
[[maybe_unused]] auto ret = usmPool->freeSVMAlloc(gpuAddress, false);
DEBUG_BREAK_IF(!ret);
return;
}
if (auto usmPool = device->getNEODevice()->getUsmGlobalSurfaceAllocPool();
usmPool && usmPool->isInPool(gpuAddress)) {
[[maybe_unused]] auto ret = usmPool->freeSVMAlloc(gpuAddress, false);
DEBUG_BREAK_IF(!ret);
return;
}
auto svmAllocsManager = device->getDriverHandle()->getSvmAllocsManager();
if (svmAllocsManager->getSVMAlloc(gpuAddress)) {
svmAllocsManager->freeSVMAlloc(gpuAddress);
} else {