mirror of
https://github.com/intel/compute-runtime.git
synced 2025-12-20 00:24:58 +08:00
performance: Pass RootDeviceIndicesContainer by reference
Additionally pass std::map by reference in UsmMemAllocPoolsManager c-tor. Signed-off-by: Filip Hazubski <filip.hazubski@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
474005de7d
commit
a0cc124b2e
@@ -201,10 +201,10 @@ class MemoryManagerIpcMock : public NEO::MemoryManager {
|
|||||||
uint64_t getSystemSharedMemory(uint32_t rootDeviceIndex) override { return 0; };
|
uint64_t getSystemSharedMemory(uint32_t rootDeviceIndex) override { return 0; };
|
||||||
uint64_t getLocalMemorySize(uint32_t rootDeviceIndex, uint32_t deviceBitfield) override { return 0; };
|
uint64_t getLocalMemorySize(uint32_t rootDeviceIndex, uint32_t deviceBitfield) override { return 0; };
|
||||||
double getPercentOfGlobalMemoryAvailable(uint32_t rootDeviceIndex) override { return 0; }
|
double getPercentOfGlobalMemoryAvailable(uint32_t rootDeviceIndex) override { return 0; }
|
||||||
AddressRange reserveGpuAddress(const uint64_t requiredStartAddress, size_t size, RootDeviceIndicesContainer rootDeviceIndices, uint32_t *reservedOnRootDeviceIndex) override {
|
AddressRange reserveGpuAddress(const uint64_t requiredStartAddress, size_t size, const RootDeviceIndicesContainer &rootDeviceIndices, uint32_t *reservedOnRootDeviceIndex) override {
|
||||||
return {};
|
return {};
|
||||||
}
|
}
|
||||||
AddressRange reserveGpuAddressOnHeap(const uint64_t requiredStartAddress, size_t size, RootDeviceIndicesContainer rootDeviceIndices, uint32_t *reservedOnRootDeviceIndex, HeapIndex heap, size_t alignment) override {
|
AddressRange reserveGpuAddressOnHeap(const uint64_t requiredStartAddress, size_t size, const RootDeviceIndicesContainer &rootDeviceIndices, uint32_t *reservedOnRootDeviceIndex, HeapIndex heap, size_t alignment) override {
|
||||||
return {};
|
return {};
|
||||||
}
|
}
|
||||||
size_t selectAlignmentAndHeap(size_t size, HeapIndex *heap) override {
|
size_t selectAlignmentAndHeap(size_t size, HeapIndex *heap) override {
|
||||||
@@ -332,10 +332,10 @@ class MemoryManagerIpcImplicitScalingMock : public NEO::MemoryManager {
|
|||||||
uint64_t getSystemSharedMemory(uint32_t rootDeviceIndex) override { return 0; };
|
uint64_t getSystemSharedMemory(uint32_t rootDeviceIndex) override { return 0; };
|
||||||
uint64_t getLocalMemorySize(uint32_t rootDeviceIndex, uint32_t deviceBitfield) override { return 0; };
|
uint64_t getLocalMemorySize(uint32_t rootDeviceIndex, uint32_t deviceBitfield) override { return 0; };
|
||||||
double getPercentOfGlobalMemoryAvailable(uint32_t rootDeviceIndex) override { return 0; }
|
double getPercentOfGlobalMemoryAvailable(uint32_t rootDeviceIndex) override { return 0; }
|
||||||
AddressRange reserveGpuAddress(const uint64_t requiredStartAddress, size_t size, RootDeviceIndicesContainer rootDeviceIndices, uint32_t *reservedOnRootDeviceIndex) override {
|
AddressRange reserveGpuAddress(const uint64_t requiredStartAddress, size_t size, const RootDeviceIndicesContainer &rootDeviceIndices, uint32_t *reservedOnRootDeviceIndex) override {
|
||||||
return {};
|
return {};
|
||||||
}
|
}
|
||||||
AddressRange reserveGpuAddressOnHeap(const uint64_t requiredStartAddress, size_t size, RootDeviceIndicesContainer rootDeviceIndices, uint32_t *reservedOnRootDeviceIndex, HeapIndex heap, size_t alignment) override {
|
AddressRange reserveGpuAddressOnHeap(const uint64_t requiredStartAddress, size_t size, const RootDeviceIndicesContainer &rootDeviceIndices, uint32_t *reservedOnRootDeviceIndex, HeapIndex heap, size_t alignment) override {
|
||||||
return {};
|
return {};
|
||||||
}
|
}
|
||||||
size_t selectAlignmentAndHeap(size_t size, HeapIndex *heap) override {
|
size_t selectAlignmentAndHeap(size_t size, HeapIndex *heap) override {
|
||||||
|
|||||||
@@ -1480,13 +1480,13 @@ class ReserveMemoryManagerMock : public NEO::MemoryManager {
|
|||||||
uint64_t getSystemSharedMemory(uint32_t rootDeviceIndex) override { return 0; };
|
uint64_t getSystemSharedMemory(uint32_t rootDeviceIndex) override { return 0; };
|
||||||
uint64_t getLocalMemorySize(uint32_t rootDeviceIndex, uint32_t deviceBitfield) override { return 0; };
|
uint64_t getLocalMemorySize(uint32_t rootDeviceIndex, uint32_t deviceBitfield) override { return 0; };
|
||||||
double getPercentOfGlobalMemoryAvailable(uint32_t rootDeviceIndex) override { return 0; }
|
double getPercentOfGlobalMemoryAvailable(uint32_t rootDeviceIndex) override { return 0; }
|
||||||
AddressRange reserveGpuAddress(const uint64_t requiredStartAddress, size_t size, RootDeviceIndicesContainer rootDeviceIndices, uint32_t *reservedOnRootDeviceIndex) override {
|
AddressRange reserveGpuAddress(const uint64_t requiredStartAddress, size_t size, const RootDeviceIndicesContainer &rootDeviceIndices, uint32_t *reservedOnRootDeviceIndex) override {
|
||||||
if (failReserveGpuAddress) {
|
if (failReserveGpuAddress) {
|
||||||
return {};
|
return {};
|
||||||
}
|
}
|
||||||
return AddressRange{requiredStartAddress, size};
|
return AddressRange{requiredStartAddress, size};
|
||||||
}
|
}
|
||||||
AddressRange reserveGpuAddressOnHeap(const uint64_t requiredStartAddress, size_t size, RootDeviceIndicesContainer rootDeviceIndices, uint32_t *reservedOnRootDeviceIndex, HeapIndex heap, size_t alignment) override {
|
AddressRange reserveGpuAddressOnHeap(const uint64_t requiredStartAddress, size_t size, const RootDeviceIndicesContainer &rootDeviceIndices, uint32_t *reservedOnRootDeviceIndex, HeapIndex heap, size_t alignment) override {
|
||||||
if (failReserveGpuAddress) {
|
if (failReserveGpuAddress) {
|
||||||
return {};
|
return {};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -77,10 +77,10 @@ class MemoryManagerEventPoolFailMock : public NEO::MemoryManager {
|
|||||||
uint64_t getSystemSharedMemory(uint32_t rootDeviceIndex) override { return 0; };
|
uint64_t getSystemSharedMemory(uint32_t rootDeviceIndex) override { return 0; };
|
||||||
uint64_t getLocalMemorySize(uint32_t rootDeviceIndex, uint32_t deviceBitfield) override { return 0; };
|
uint64_t getLocalMemorySize(uint32_t rootDeviceIndex, uint32_t deviceBitfield) override { return 0; };
|
||||||
double getPercentOfGlobalMemoryAvailable(uint32_t rootDeviceIndex) override { return 0; }
|
double getPercentOfGlobalMemoryAvailable(uint32_t rootDeviceIndex) override { return 0; }
|
||||||
AddressRange reserveGpuAddress(const uint64_t requiredStartAddress, size_t size, RootDeviceIndicesContainer rootDeviceIndices, uint32_t *reservedOnRootDeviceIndex) override {
|
AddressRange reserveGpuAddress(const uint64_t requiredStartAddress, size_t size, const RootDeviceIndicesContainer &rootDeviceIndices, uint32_t *reservedOnRootDeviceIndex) override {
|
||||||
return {};
|
return {};
|
||||||
}
|
}
|
||||||
AddressRange reserveGpuAddressOnHeap(const uint64_t requiredStartAddress, size_t size, RootDeviceIndicesContainer rootDeviceIndices, uint32_t *reservedOnRootDeviceIndex, HeapIndex heap, size_t alignment) override {
|
AddressRange reserveGpuAddressOnHeap(const uint64_t requiredStartAddress, size_t size, const RootDeviceIndicesContainer &rootDeviceIndices, uint32_t *reservedOnRootDeviceIndex, HeapIndex heap, size_t alignment) override {
|
||||||
return {};
|
return {};
|
||||||
}
|
}
|
||||||
size_t selectAlignmentAndHeap(size_t size, HeapIndex *heap) override {
|
size_t selectAlignmentAndHeap(size_t size, HeapIndex *heap) override {
|
||||||
|
|||||||
@@ -74,10 +74,10 @@ class MemoryManagerIpcImplicitScalingObtainFdMock : public NEO::DrmMemoryManager
|
|||||||
uint64_t getSystemSharedMemory(uint32_t rootDeviceIndex) override { return 0; };
|
uint64_t getSystemSharedMemory(uint32_t rootDeviceIndex) override { return 0; };
|
||||||
uint64_t getLocalMemorySize(uint32_t rootDeviceIndex, uint32_t deviceBitfield) override { return 0; };
|
uint64_t getLocalMemorySize(uint32_t rootDeviceIndex, uint32_t deviceBitfield) override { return 0; };
|
||||||
double getPercentOfGlobalMemoryAvailable(uint32_t rootDeviceIndex) override { return 0; }
|
double getPercentOfGlobalMemoryAvailable(uint32_t rootDeviceIndex) override { return 0; }
|
||||||
AddressRange reserveGpuAddress(const uint64_t requiredStartAddress, size_t size, RootDeviceIndicesContainer rootDeviceIndices, uint32_t *reservedOnRootDeviceIndex) override {
|
AddressRange reserveGpuAddress(const uint64_t requiredStartAddress, size_t size, const RootDeviceIndicesContainer &rootDeviceIndices, uint32_t *reservedOnRootDeviceIndex) override {
|
||||||
return {};
|
return {};
|
||||||
}
|
}
|
||||||
AddressRange reserveGpuAddressOnHeap(const uint64_t requiredStartAddress, size_t size, RootDeviceIndicesContainer rootDeviceIndices, uint32_t *reservedOnRootDeviceIndex, HeapIndex heap, size_t alignment) override {
|
AddressRange reserveGpuAddressOnHeap(const uint64_t requiredStartAddress, size_t size, const RootDeviceIndicesContainer &rootDeviceIndices, uint32_t *reservedOnRootDeviceIndex, HeapIndex heap, size_t alignment) override {
|
||||||
return {};
|
return {};
|
||||||
}
|
}
|
||||||
size_t selectAlignmentAndHeap(size_t size, HeapIndex *heap) override {
|
size_t selectAlignmentAndHeap(size_t size, HeapIndex *heap) override {
|
||||||
@@ -490,10 +490,10 @@ class MemoryManagerIpcObtainFdMock : public NEO::DrmMemoryManager {
|
|||||||
uint64_t getSystemSharedMemory(uint32_t rootDeviceIndex) override { return 0; };
|
uint64_t getSystemSharedMemory(uint32_t rootDeviceIndex) override { return 0; };
|
||||||
uint64_t getLocalMemorySize(uint32_t rootDeviceIndex, uint32_t deviceBitfield) override { return 0; };
|
uint64_t getLocalMemorySize(uint32_t rootDeviceIndex, uint32_t deviceBitfield) override { return 0; };
|
||||||
double getPercentOfGlobalMemoryAvailable(uint32_t rootDeviceIndex) override { return 0; }
|
double getPercentOfGlobalMemoryAvailable(uint32_t rootDeviceIndex) override { return 0; }
|
||||||
AddressRange reserveGpuAddress(const uint64_t requiredStartAddress, size_t size, RootDeviceIndicesContainer rootDeviceIndices, uint32_t *reservedOnRootDeviceIndex) override {
|
AddressRange reserveGpuAddress(const uint64_t requiredStartAddress, size_t size, const RootDeviceIndicesContainer &rootDeviceIndices, uint32_t *reservedOnRootDeviceIndex) override {
|
||||||
return {};
|
return {};
|
||||||
}
|
}
|
||||||
AddressRange reserveGpuAddressOnHeap(const uint64_t requiredStartAddress, size_t size, RootDeviceIndicesContainer rootDeviceIndices, uint32_t *reservedOnRootDeviceIndex, HeapIndex heap, size_t alignment) override {
|
AddressRange reserveGpuAddressOnHeap(const uint64_t requiredStartAddress, size_t size, const RootDeviceIndicesContainer &rootDeviceIndices, uint32_t *reservedOnRootDeviceIndex, HeapIndex heap, size_t alignment) override {
|
||||||
return {};
|
return {};
|
||||||
}
|
}
|
||||||
size_t selectAlignmentAndHeap(size_t size, HeapIndex *heap) override {
|
size_t selectAlignmentAndHeap(size_t size, HeapIndex *heap) override {
|
||||||
|
|||||||
@@ -671,7 +671,7 @@ class CommandStreamReceiverMock : public CommandStreamReceiver {
|
|||||||
using BaseClass::CommandStreamReceiver;
|
using BaseClass::CommandStreamReceiver;
|
||||||
|
|
||||||
TagAllocatorBase *getTimestampPacketAllocator() override { return nullptr; }
|
TagAllocatorBase *getTimestampPacketAllocator() override { return nullptr; }
|
||||||
std::unique_ptr<TagAllocatorBase> createMultiRootDeviceTimestampPacketAllocator(const RootDeviceIndicesContainer rootDeviceIndices) override { return std::unique_ptr<TagAllocatorBase>(nullptr); }
|
std::unique_ptr<TagAllocatorBase> createMultiRootDeviceTimestampPacketAllocator(const RootDeviceIndicesContainer &rootDeviceIndices) override { return std::unique_ptr<TagAllocatorBase>(nullptr); }
|
||||||
|
|
||||||
SubmissionStatus flushTagUpdate() override { return SubmissionStatus::success; };
|
SubmissionStatus flushTagUpdate() override { return SubmissionStatus::success; };
|
||||||
void updateTagFromWait() override{};
|
void updateTagFromWait() override{};
|
||||||
|
|||||||
@@ -288,7 +288,7 @@ class CommandStreamReceiver {
|
|||||||
TagAllocatorBase *getEventTsAllocator();
|
TagAllocatorBase *getEventTsAllocator();
|
||||||
TagAllocatorBase *getEventPerfCountAllocator(const uint32_t tagSize);
|
TagAllocatorBase *getEventPerfCountAllocator(const uint32_t tagSize);
|
||||||
virtual TagAllocatorBase *getTimestampPacketAllocator() = 0;
|
virtual TagAllocatorBase *getTimestampPacketAllocator() = 0;
|
||||||
virtual std::unique_ptr<TagAllocatorBase> createMultiRootDeviceTimestampPacketAllocator(const RootDeviceIndicesContainer rootDeviceIndices) = 0;
|
virtual std::unique_ptr<TagAllocatorBase> createMultiRootDeviceTimestampPacketAllocator(const RootDeviceIndicesContainer &rootDeviceIndices) = 0;
|
||||||
|
|
||||||
virtual bool expectMemory(const void *gfxAddress, const void *srcAddress, size_t length, uint32_t compareOperation);
|
virtual bool expectMemory(const void *gfxAddress, const void *srcAddress, size_t length, uint32_t compareOperation);
|
||||||
MOCKABLE_VIRTUAL bool writeMemory(GraphicsAllocation &gfxAllocation) { return writeMemory(gfxAllocation, false, 0, 0); }
|
MOCKABLE_VIRTUAL bool writeMemory(GraphicsAllocation &gfxAllocation) { return writeMemory(gfxAllocation, false, 0, 0); }
|
||||||
|
|||||||
@@ -168,7 +168,7 @@ class CommandStreamReceiverHw : public CommandStreamReceiver {
|
|||||||
GraphicsAllocation *getClearColorAllocation() override;
|
GraphicsAllocation *getClearColorAllocation() override;
|
||||||
|
|
||||||
TagAllocatorBase *getTimestampPacketAllocator() override;
|
TagAllocatorBase *getTimestampPacketAllocator() override;
|
||||||
std::unique_ptr<TagAllocatorBase> createMultiRootDeviceTimestampPacketAllocator(const RootDeviceIndicesContainer rootDeviceIndices) override;
|
std::unique_ptr<TagAllocatorBase> createMultiRootDeviceTimestampPacketAllocator(const RootDeviceIndicesContainer &rootDeviceIndices) override;
|
||||||
|
|
||||||
void postInitFlagsSetup() override;
|
void postInitFlagsSetup() override;
|
||||||
void programActivePartitionConfig(LinearStream &csr);
|
void programActivePartitionConfig(LinearStream &csr);
|
||||||
|
|||||||
@@ -1428,7 +1428,7 @@ TagAllocatorBase *CommandStreamReceiverHw<GfxFamily>::getTimestampPacketAllocato
|
|||||||
}
|
}
|
||||||
|
|
||||||
template <typename GfxFamily>
|
template <typename GfxFamily>
|
||||||
std::unique_ptr<TagAllocatorBase> CommandStreamReceiverHw<GfxFamily>::createMultiRootDeviceTimestampPacketAllocator(const RootDeviceIndicesContainer rootDeviceIndices) {
|
std::unique_ptr<TagAllocatorBase> CommandStreamReceiverHw<GfxFamily>::createMultiRootDeviceTimestampPacketAllocator(const RootDeviceIndicesContainer &rootDeviceIndices) {
|
||||||
auto &gfxCoreHelper = getGfxCoreHelper();
|
auto &gfxCoreHelper = getGfxCoreHelper();
|
||||||
return gfxCoreHelper.createTimestampPacketAllocator(rootDeviceIndices, getMemoryManager(), getPreferredTagPoolSize(), getType(), osContext->getDeviceBitfield());
|
return gfxCoreHelper.createTimestampPacketAllocator(rootDeviceIndices, getMemoryManager(), getPreferredTagPoolSize(), getType(), osContext->getDeviceBitfield());
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -254,8 +254,8 @@ class MemoryManager {
|
|||||||
void *getReservedMemory(size_t size, size_t alignment);
|
void *getReservedMemory(size_t size, size_t alignment);
|
||||||
GfxPartition *getGfxPartition(uint32_t rootDeviceIndex) { return gfxPartitions.at(rootDeviceIndex).get(); }
|
GfxPartition *getGfxPartition(uint32_t rootDeviceIndex) { return gfxPartitions.at(rootDeviceIndex).get(); }
|
||||||
GmmHelper *getGmmHelper(uint32_t rootDeviceIndex);
|
GmmHelper *getGmmHelper(uint32_t rootDeviceIndex);
|
||||||
virtual AddressRange reserveGpuAddress(const uint64_t requiredStartAddress, size_t size, RootDeviceIndicesContainer rootDeviceIndices, uint32_t *reservedOnRootDeviceIndex) = 0;
|
virtual AddressRange reserveGpuAddress(const uint64_t requiredStartAddress, size_t size, const RootDeviceIndicesContainer &rootDeviceIndices, uint32_t *reservedOnRootDeviceIndex) = 0;
|
||||||
virtual AddressRange reserveGpuAddressOnHeap(const uint64_t requiredStartAddress, size_t size, RootDeviceIndicesContainer rootDeviceIndices, uint32_t *reservedOnRootDeviceIndex, HeapIndex heap, size_t alignment) = 0;
|
virtual AddressRange reserveGpuAddressOnHeap(const uint64_t requiredStartAddress, size_t size, const RootDeviceIndicesContainer &rootDeviceIndices, uint32_t *reservedOnRootDeviceIndex, HeapIndex heap, size_t alignment) = 0;
|
||||||
virtual size_t selectAlignmentAndHeap(size_t size, HeapIndex *heap) = 0;
|
virtual size_t selectAlignmentAndHeap(size_t size, HeapIndex *heap) = 0;
|
||||||
virtual void freeGpuAddress(AddressRange addressRange, uint32_t rootDeviceIndex) = 0;
|
virtual void freeGpuAddress(AddressRange addressRange, uint32_t rootDeviceIndex) = 0;
|
||||||
virtual AddressRange reserveCpuAddress(const uint64_t requiredStartAddress, size_t size) = 0;
|
virtual AddressRange reserveCpuAddress(const uint64_t requiredStartAddress, size_t size) = 0;
|
||||||
|
|||||||
@@ -645,11 +645,11 @@ size_t OsAgnosticMemoryManager::selectAlignmentAndHeap(size_t size, HeapIndex *h
|
|||||||
return MemoryConstants::pageSize64k;
|
return MemoryConstants::pageSize64k;
|
||||||
}
|
}
|
||||||
|
|
||||||
AddressRange OsAgnosticMemoryManager::reserveGpuAddress(const uint64_t requiredStartAddress, size_t size, RootDeviceIndicesContainer rootDeviceIndices, uint32_t *reservedOnRootDeviceIndex) {
|
AddressRange OsAgnosticMemoryManager::reserveGpuAddress(const uint64_t requiredStartAddress, size_t size, const RootDeviceIndicesContainer &rootDeviceIndices, uint32_t *reservedOnRootDeviceIndex) {
|
||||||
return reserveGpuAddressOnHeap(requiredStartAddress, size, rootDeviceIndices, reservedOnRootDeviceIndex, HeapIndex::heapStandard, MemoryConstants::pageSize64k);
|
return reserveGpuAddressOnHeap(requiredStartAddress, size, rootDeviceIndices, reservedOnRootDeviceIndex, HeapIndex::heapStandard, MemoryConstants::pageSize64k);
|
||||||
}
|
}
|
||||||
|
|
||||||
AddressRange OsAgnosticMemoryManager::reserveGpuAddressOnHeap(const uint64_t requiredStartAddress, size_t size, RootDeviceIndicesContainer rootDeviceIndices, uint32_t *reservedOnRootDeviceIndex, HeapIndex heap, size_t alignment) {
|
AddressRange OsAgnosticMemoryManager::reserveGpuAddressOnHeap(const uint64_t requiredStartAddress, size_t size, const RootDeviceIndicesContainer &rootDeviceIndices, uint32_t *reservedOnRootDeviceIndex, HeapIndex heap, size_t alignment) {
|
||||||
uint64_t gpuVa = 0u;
|
uint64_t gpuVa = 0u;
|
||||||
*reservedOnRootDeviceIndex = 0;
|
*reservedOnRootDeviceIndex = 0;
|
||||||
for (auto rootDeviceIndex : rootDeviceIndices) {
|
for (auto rootDeviceIndex : rootDeviceIndices) {
|
||||||
|
|||||||
@@ -44,8 +44,8 @@ class OsAgnosticMemoryManager : public MemoryManager {
|
|||||||
void *reserveCpuAddressRange(size_t size, uint32_t rootDeviceIndex) override;
|
void *reserveCpuAddressRange(size_t size, uint32_t rootDeviceIndex) override;
|
||||||
void releaseReservedCpuAddressRange(void *reserved, size_t size, uint32_t rootDeviceIndex) override;
|
void releaseReservedCpuAddressRange(void *reserved, size_t size, uint32_t rootDeviceIndex) override;
|
||||||
|
|
||||||
AddressRange reserveGpuAddress(const uint64_t requiredStartAddress, size_t size, RootDeviceIndicesContainer rootDeviceIndices, uint32_t *reservedOnRootDeviceIndex) override;
|
AddressRange reserveGpuAddress(const uint64_t requiredStartAddress, size_t size, const RootDeviceIndicesContainer &rootDeviceIndices, uint32_t *reservedOnRootDeviceIndex) override;
|
||||||
AddressRange reserveGpuAddressOnHeap(const uint64_t requiredStartAddress, size_t size, RootDeviceIndicesContainer rootDeviceIndices, uint32_t *reservedOnRootDeviceIndex, HeapIndex heap, size_t alignment) override;
|
AddressRange reserveGpuAddressOnHeap(const uint64_t requiredStartAddress, size_t size, const RootDeviceIndicesContainer &rootDeviceIndices, uint32_t *reservedOnRootDeviceIndex, HeapIndex heap, size_t alignment) override;
|
||||||
size_t selectAlignmentAndHeap(size_t size, HeapIndex *heap) override;
|
size_t selectAlignmentAndHeap(size_t size, HeapIndex *heap) override;
|
||||||
void freeGpuAddress(AddressRange addressRange, uint32_t rootDeviceIndex) override;
|
void freeGpuAddress(AddressRange addressRange, uint32_t rootDeviceIndex) override;
|
||||||
AddressRange reserveCpuAddress(const uint64_t requiredStartAddress, size_t size) override;
|
AddressRange reserveCpuAddress(const uint64_t requiredStartAddress, size_t size) override;
|
||||||
|
|||||||
@@ -86,8 +86,8 @@ class UsmMemAllocPoolsManager {
|
|||||||
static constexpr uint64_t MB = MemoryConstants::megaByte; // NOLINT(readability-identifier-naming)
|
static constexpr uint64_t MB = MemoryConstants::megaByte; // NOLINT(readability-identifier-naming)
|
||||||
static constexpr uint64_t maxPoolableSize = 256 * MB;
|
static constexpr uint64_t maxPoolableSize = 256 * MB;
|
||||||
UsmMemAllocPoolsManager(MemoryManager *memoryManager,
|
UsmMemAllocPoolsManager(MemoryManager *memoryManager,
|
||||||
RootDeviceIndicesContainer rootDeviceIndices,
|
const RootDeviceIndicesContainer &rootDeviceIndices,
|
||||||
std::map<uint32_t, NEO::DeviceBitfield> deviceBitFields,
|
const std::map<uint32_t, NEO::DeviceBitfield> &deviceBitFields,
|
||||||
Device *device,
|
Device *device,
|
||||||
InternalMemoryType poolMemoryType) : memoryManager(memoryManager), rootDeviceIndices(rootDeviceIndices), deviceBitFields(deviceBitFields), device(device), poolMemoryType(poolMemoryType){};
|
InternalMemoryType poolMemoryType) : memoryManager(memoryManager), rootDeviceIndices(rootDeviceIndices), deviceBitFields(deviceBitFields), device(device), poolMemoryType(poolMemoryType){};
|
||||||
MOCKABLE_VIRTUAL ~UsmMemAllocPoolsManager() = default;
|
MOCKABLE_VIRTUAL ~UsmMemAllocPoolsManager() = default;
|
||||||
@@ -127,4 +127,4 @@ class UsmMemAllocPoolsManager {
|
|||||||
std::map<PoolInfo, std::vector<std::unique_ptr<UsmMemAllocPool>>> pools;
|
std::map<PoolInfo, std::vector<std::unique_ptr<UsmMemAllocPool>>> pools;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace NEO
|
} // namespace NEO
|
||||||
|
|||||||
@@ -1607,11 +1607,11 @@ size_t DrmMemoryManager::selectAlignmentAndHeap(size_t size, HeapIndex *heap) {
|
|||||||
return pageSizeAlignment;
|
return pageSizeAlignment;
|
||||||
}
|
}
|
||||||
|
|
||||||
AddressRange DrmMemoryManager::reserveGpuAddress(const uint64_t requiredStartAddress, size_t size, RootDeviceIndicesContainer rootDeviceIndices, uint32_t *reservedOnRootDeviceIndex) {
|
AddressRange DrmMemoryManager::reserveGpuAddress(const uint64_t requiredStartAddress, size_t size, const RootDeviceIndicesContainer &rootDeviceIndices, uint32_t *reservedOnRootDeviceIndex) {
|
||||||
return reserveGpuAddressOnHeap(requiredStartAddress, size, rootDeviceIndices, reservedOnRootDeviceIndex, HeapIndex::heapStandard, MemoryConstants::pageSize64k);
|
return reserveGpuAddressOnHeap(requiredStartAddress, size, rootDeviceIndices, reservedOnRootDeviceIndex, HeapIndex::heapStandard, MemoryConstants::pageSize64k);
|
||||||
}
|
}
|
||||||
|
|
||||||
AddressRange DrmMemoryManager::reserveGpuAddressOnHeap(const uint64_t requiredStartAddress, size_t size, RootDeviceIndicesContainer rootDeviceIndices, uint32_t *reservedOnRootDeviceIndex, HeapIndex heap, size_t alignment) {
|
AddressRange DrmMemoryManager::reserveGpuAddressOnHeap(const uint64_t requiredStartAddress, size_t size, const RootDeviceIndicesContainer &rootDeviceIndices, uint32_t *reservedOnRootDeviceIndex, HeapIndex heap, size_t alignment) {
|
||||||
uint64_t gpuVa = 0u;
|
uint64_t gpuVa = 0u;
|
||||||
*reservedOnRootDeviceIndex = 0;
|
*reservedOnRootDeviceIndex = 0;
|
||||||
for (auto rootDeviceIndex : rootDeviceIndices) {
|
for (auto rootDeviceIndex : rootDeviceIndices) {
|
||||||
|
|||||||
@@ -73,8 +73,8 @@ class DrmMemoryManager : public MemoryManager {
|
|||||||
bool copyMemoryToAllocationBanks(GraphicsAllocation *graphicsAllocation, size_t destinationOffset, const void *memoryToCopy, size_t sizeToCopy, DeviceBitfield handleMask) override;
|
bool copyMemoryToAllocationBanks(GraphicsAllocation *graphicsAllocation, size_t destinationOffset, const void *memoryToCopy, size_t sizeToCopy, DeviceBitfield handleMask) override;
|
||||||
|
|
||||||
MOCKABLE_VIRTUAL int obtainFdFromHandle(int boHandle, uint32_t rootDeviceindex);
|
MOCKABLE_VIRTUAL int obtainFdFromHandle(int boHandle, uint32_t rootDeviceindex);
|
||||||
AddressRange reserveGpuAddress(const uint64_t requiredStartAddress, size_t size, RootDeviceIndicesContainer rootDeviceIndices, uint32_t *reservedOnRootDeviceIndex) override;
|
AddressRange reserveGpuAddress(const uint64_t requiredStartAddress, size_t size, const RootDeviceIndicesContainer &rootDeviceIndices, uint32_t *reservedOnRootDeviceIndex) override;
|
||||||
AddressRange reserveGpuAddressOnHeap(const uint64_t requiredStartAddress, size_t size, RootDeviceIndicesContainer rootDeviceIndices, uint32_t *reservedOnRootDeviceIndex, HeapIndex heap, size_t alignment) override;
|
AddressRange reserveGpuAddressOnHeap(const uint64_t requiredStartAddress, size_t size, const RootDeviceIndicesContainer &rootDeviceIndices, uint32_t *reservedOnRootDeviceIndex, HeapIndex heap, size_t alignment) override;
|
||||||
size_t selectAlignmentAndHeap(size_t size, HeapIndex *heap) override;
|
size_t selectAlignmentAndHeap(size_t size, HeapIndex *heap) override;
|
||||||
void freeGpuAddress(AddressRange addressRange, uint32_t rootDeviceIndex) override;
|
void freeGpuAddress(AddressRange addressRange, uint32_t rootDeviceIndex) override;
|
||||||
AddressRange reserveCpuAddress(const uint64_t requiredStartAddress, size_t size) override;
|
AddressRange reserveCpuAddress(const uint64_t requiredStartAddress, size_t size) override;
|
||||||
|
|||||||
@@ -993,11 +993,11 @@ size_t WddmMemoryManager::selectAlignmentAndHeap(size_t size, HeapIndex *heap) {
|
|||||||
return alignment.alignment;
|
return alignment.alignment;
|
||||||
}
|
}
|
||||||
|
|
||||||
AddressRange WddmMemoryManager::reserveGpuAddress(const uint64_t requiredStartAddress, size_t size, RootDeviceIndicesContainer rootDeviceIndices, uint32_t *reservedOnRootDeviceIndex) {
|
AddressRange WddmMemoryManager::reserveGpuAddress(const uint64_t requiredStartAddress, size_t size, const RootDeviceIndicesContainer &rootDeviceIndices, uint32_t *reservedOnRootDeviceIndex) {
|
||||||
return reserveGpuAddressOnHeap(requiredStartAddress, size, rootDeviceIndices, reservedOnRootDeviceIndex, HeapIndex::heapStandard64KB, MemoryConstants::pageSize64k);
|
return reserveGpuAddressOnHeap(requiredStartAddress, size, rootDeviceIndices, reservedOnRootDeviceIndex, HeapIndex::heapStandard64KB, MemoryConstants::pageSize64k);
|
||||||
}
|
}
|
||||||
|
|
||||||
AddressRange WddmMemoryManager::reserveGpuAddressOnHeap(const uint64_t requiredStartAddress, size_t size, RootDeviceIndicesContainer rootDeviceIndices, uint32_t *reservedOnRootDeviceIndex, HeapIndex heap, size_t alignment) {
|
AddressRange WddmMemoryManager::reserveGpuAddressOnHeap(const uint64_t requiredStartAddress, size_t size, const RootDeviceIndicesContainer &rootDeviceIndices, uint32_t *reservedOnRootDeviceIndex, HeapIndex heap, size_t alignment) {
|
||||||
uint64_t gpuVa = 0u;
|
uint64_t gpuVa = 0u;
|
||||||
*reservedOnRootDeviceIndex = 0;
|
*reservedOnRootDeviceIndex = 0;
|
||||||
size_t reservedSize = 0;
|
size_t reservedSize = 0;
|
||||||
|
|||||||
@@ -64,8 +64,8 @@ class WddmMemoryManager : public MemoryManager {
|
|||||||
bool isCpuCopyRequired(const void *ptr) override;
|
bool isCpuCopyRequired(const void *ptr) override;
|
||||||
bool isWCMemory(const void *ptr) override;
|
bool isWCMemory(const void *ptr) override;
|
||||||
|
|
||||||
AddressRange reserveGpuAddress(const uint64_t requiredStartAddress, size_t size, RootDeviceIndicesContainer rootDeviceIndices, uint32_t *reservedOnRootDeviceIndex) override;
|
AddressRange reserveGpuAddress(const uint64_t requiredStartAddress, size_t size, const RootDeviceIndicesContainer &rootDeviceIndices, uint32_t *reservedOnRootDeviceIndex) override;
|
||||||
AddressRange reserveGpuAddressOnHeap(const uint64_t requiredStartAddress, size_t size, RootDeviceIndicesContainer rootDeviceIndices, uint32_t *reservedOnRootDeviceIndex, HeapIndex heap, size_t alignment) override;
|
AddressRange reserveGpuAddressOnHeap(const uint64_t requiredStartAddress, size_t size, const RootDeviceIndicesContainer &rootDeviceIndices, uint32_t *reservedOnRootDeviceIndex, HeapIndex heap, size_t alignment) override;
|
||||||
size_t selectAlignmentAndHeap(size_t size, HeapIndex *heap) override;
|
size_t selectAlignmentAndHeap(size_t size, HeapIndex *heap) override;
|
||||||
void freeGpuAddress(AddressRange addressRange, uint32_t rootDeviceIndex) override;
|
void freeGpuAddress(AddressRange addressRange, uint32_t rootDeviceIndex) override;
|
||||||
AddressRange reserveCpuAddress(const uint64_t requiredStartAddress, size_t size) override;
|
AddressRange reserveCpuAddress(const uint64_t requiredStartAddress, size_t size) override;
|
||||||
|
|||||||
@@ -119,7 +119,7 @@ class MockCommandStreamReceiver : public CommandStreamReceiver {
|
|||||||
};
|
};
|
||||||
|
|
||||||
TagAllocatorBase *getTimestampPacketAllocator() override { return nullptr; }
|
TagAllocatorBase *getTimestampPacketAllocator() override { return nullptr; }
|
||||||
std::unique_ptr<TagAllocatorBase> createMultiRootDeviceTimestampPacketAllocator(const RootDeviceIndicesContainer rootDeviceIndices) override { return std::unique_ptr<TagAllocatorBase>(nullptr); }
|
std::unique_ptr<TagAllocatorBase> createMultiRootDeviceTimestampPacketAllocator(const RootDeviceIndicesContainer &rootDeviceIndices) override { return std::unique_ptr<TagAllocatorBase>(nullptr); }
|
||||||
|
|
||||||
CompletionStamp flushTask(
|
CompletionStamp flushTask(
|
||||||
LinearStream &commandStream,
|
LinearStream &commandStream,
|
||||||
|
|||||||
@@ -102,7 +102,7 @@ class MockMemoryManager : public MemoryManagerCreate<OsAgnosticMemoryManager> {
|
|||||||
OsAgnosticMemoryManager::freeGraphicsMemoryImpl(gfxAllocation);
|
OsAgnosticMemoryManager::freeGraphicsMemoryImpl(gfxAllocation);
|
||||||
};
|
};
|
||||||
|
|
||||||
AddressRange reserveGpuAddressOnHeap(const uint64_t requiredStartAddress, size_t size, RootDeviceIndicesContainer rootDeviceIndices, uint32_t *reservedOnRootDeviceIndex, HeapIndex heap, size_t alignment) override {
|
AddressRange reserveGpuAddressOnHeap(const uint64_t requiredStartAddress, size_t size, const RootDeviceIndicesContainer &rootDeviceIndices, uint32_t *reservedOnRootDeviceIndex, HeapIndex heap, size_t alignment) override {
|
||||||
reserveGpuAddressOnHeapCalled++;
|
reserveGpuAddressOnHeapCalled++;
|
||||||
reserveGpuAddressOnHeapParamsPassed.push_back({requiredStartAddress, size, rootDeviceIndices, reservedOnRootDeviceIndex, heap, alignment});
|
reserveGpuAddressOnHeapParamsPassed.push_back({requiredStartAddress, size, rootDeviceIndices, reservedOnRootDeviceIndex, heap, alignment});
|
||||||
|
|
||||||
|
|||||||
@@ -545,10 +545,10 @@ TEST_F(DeviceGetCapsTest, givenFlagEnabled64kbPagesWhenCallConstructorMemoryMana
|
|||||||
};
|
};
|
||||||
uint64_t getLocalMemorySize(uint32_t rootDeviceIndex, uint32_t deviceBitfield) override { return 0; };
|
uint64_t getLocalMemorySize(uint32_t rootDeviceIndex, uint32_t deviceBitfield) override { return 0; };
|
||||||
double getPercentOfGlobalMemoryAvailable(uint32_t rootDeviceIndex) override { return 0; }
|
double getPercentOfGlobalMemoryAvailable(uint32_t rootDeviceIndex) override { return 0; }
|
||||||
AddressRange reserveGpuAddress(const uint64_t requiredStartAddress, size_t size, RootDeviceIndicesContainer rootDeviceIndices, uint32_t *reservedOnRootDeviceIndex) override {
|
AddressRange reserveGpuAddress(const uint64_t requiredStartAddress, size_t size, const RootDeviceIndicesContainer &rootDeviceIndices, uint32_t *reservedOnRootDeviceIndex) override {
|
||||||
return {};
|
return {};
|
||||||
}
|
}
|
||||||
AddressRange reserveGpuAddressOnHeap(const uint64_t requiredStartAddress, size_t size, RootDeviceIndicesContainer rootDeviceIndices, uint32_t *reservedOnRootDeviceIndex, HeapIndex heap, size_t alignment) override {
|
AddressRange reserveGpuAddressOnHeap(const uint64_t requiredStartAddress, size_t size, const RootDeviceIndicesContainer &rootDeviceIndices, uint32_t *reservedOnRootDeviceIndex, HeapIndex heap, size_t alignment) override {
|
||||||
return {};
|
return {};
|
||||||
}
|
}
|
||||||
size_t selectAlignmentAndHeap(size_t size, HeapIndex *heap) override {
|
size_t selectAlignmentAndHeap(size_t size, HeapIndex *heap) override {
|
||||||
|
|||||||
Reference in New Issue
Block a user