feature: support SVM heap in reserveVirtualMem

Related-To: NEO-11981

Signed-off-by: Wenbin Lu <wenbin.lu@intel.com>
This commit is contained in:
Wenbin Lu
2024-08-28 23:04:40 +00:00
committed by Compute-Runtime-Automation
parent d79889c3b2
commit 93cde3ee12
16 changed files with 388 additions and 17 deletions

View File

@@ -70,7 +70,10 @@ struct VirtualMemoryReservation {
MemoryFlags flags;
std::map<void *, MemoryMappedRange *> mappedAllocations;
uint32_t rootDeviceIndex;
bool isSvmReservation;
size_t reservationSize;
uint64_t reservationBase;
size_t reservationTotalSize;
};
struct PhysicalMemoryAllocation {
@@ -248,6 +251,8 @@ class MemoryManager {
virtual AddressRange reserveGpuAddressOnHeap(const uint64_t requiredStartAddress, size_t size, RootDeviceIndicesContainer rootDeviceIndices, uint32_t *reservedOnRootDeviceIndex, HeapIndex heap, size_t alignment) = 0;
virtual size_t selectAlignmentAndHeap(size_t size, HeapIndex *heap) = 0;
virtual void freeGpuAddress(AddressRange addressRange, uint32_t rootDeviceIndex) = 0;
virtual AddressRange reserveCpuAddress(const uint64_t requiredStartAddress, size_t size) = 0;
virtual void freeCpuAddress(AddressRange addressRange) = 0;
static HeapIndex selectInternalHeap(bool useLocalMemory);
static HeapIndex selectExternalHeap(bool useLocalMemory);