performance: debug flag for usm host alloc recycle

set ExperimentalEnableHostAllocationCache=1 to recycle host usm
allocations

Related-To: GSD-7497

Signed-off-by: Dominik Dabek <dominik.dabek@intel.com>
This commit is contained in:
Dominik Dabek
2024-01-31 13:07:07 +00:00
committed by Compute-Runtime-Automation
parent 2237961deb
commit 2cad595a0d
10 changed files with 393 additions and 14 deletions

View File

@@ -205,6 +205,7 @@ class SVMAllocsManager {
MOCKABLE_VIRTUAL void freeSVMAllocImpl(void *ptr, FreePolicyType policy, SvmAllocationData *svmData);
bool freeSVMAlloc(void *ptr) { return freeSVMAlloc(ptr, false); }
void trimUSMDeviceAllocCache();
void trimUSMHostAllocCache();
void insertSVMAlloc(const SvmAllocationData &svmData);
void removeSVMAlloc(const SvmAllocationData &svmData);
size_t getNumAllocs() const { return svmAllocs.getNumAllocs(); }
@@ -242,6 +243,7 @@ class SVMAllocsManager {
void freeZeroCopySvmAllocation(SvmAllocationData *svmData);
void initUsmDeviceAllocationsCache();
void initUsmHostAllocationsCache();
void freeSVMData(SvmAllocationData *svmData);
SortedVectorBasedAllocationTracker svmAllocs;
@@ -252,6 +254,8 @@ class SVMAllocsManager {
std::mutex mtxForIndirectAccess;
bool multiOsContextSupport;
SvmAllocationCache usmDeviceAllocationsCache;
SvmAllocationCache usmHostAllocationsCache;
bool usmDeviceAllocationsCacheEnabled = false;
bool usmHostAllocationsCacheEnabled = false;
};
} // namespace NEO