performance: improve pool handling

Signed-off-by: Mrozek, Michal <michal.mrozek@intel.com>
Resolves: NEO-11731
This commit is contained in:
Mrozek, Michal
2024-06-13 14:23:07 +00:00
committed by Compute-Runtime-Automation
parent aa3b13ce66
commit 5f0b9efd2b
8 changed files with 22 additions and 10 deletions

View File

@@ -1,11 +1,12 @@
/*
* Copyright (C) 2019-2021 Intel Corporation
* Copyright (C) 2019-2024 Intel Corporation
*
* SPDX-License-Identifier: MIT
*
*/
#include <cstdint>
#include <stddef.h>
namespace NEO {
// AUB file folder location
@@ -13,4 +14,7 @@ const char *folderAUB = ".";
// Initial value for HW tag
uint32_t initialHardwareTag = 0;
size_t defaultPoolSize = 16777216u;
} // namespace NEO

View File

@@ -7,6 +7,7 @@
#pragma once
#include <cstdint>
#include <stddef.h>
namespace NEO {
enum class CommandStreamReceiverType {
@@ -38,4 +39,7 @@ extern const char *folderAUB;
// Initial value for HW tag
// Set to 0 if using HW or simulator, otherwise 0xFFFFFF00, needs to be lower then CompletionStamp::notReady.
extern uint32_t initialHardwareTag;
// default size of memory pools
extern size_t defaultPoolSize;
} // namespace NEO

View File

@@ -24,7 +24,7 @@ bool UsmMemAllocPool::initialize(SVMAllocsManager *svmMemoryManager, const Unifi
this->chunkAllocator.reset(new HeapAllocator(castToUint64(this->pool),
poolSize,
chunkAlignment,
allocationThreshold / 2));
2 * MemoryConstants::megaByte));
this->poolSize = poolSize;
this->poolMemoryType = memoryProperties.memoryType;
return true;

View File

@@ -35,9 +35,9 @@ class UsmMemAllocPool {
void *getPooledAllocationBasePtr(const void *ptr);
size_t getOffsetInPool(const void *ptr);
static constexpr auto allocationThreshold = 1 * MemoryConstants::megaByte;
static constexpr auto allocationThreshold = 2 * MemoryConstants::megaByte;
static constexpr auto chunkAlignment = 512u;
static constexpr auto startingOffset = 2 * allocationThreshold;
static constexpr auto startingOffset = chunkAlignment;
protected:
size_t poolSize{};