mirror of
https://github.com/intel/compute-runtime.git
synced 2025-12-20 00:24:58 +08:00
fix: usm reuse cleaning unused allocations
mechanism for freeing allocations saved for reuse that have not been used in a given time Related-To: NEO-13425 Signed-off-by: Dominik Dabek <dominik.dabek@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
b2f8da5109
commit
3f646839ca
@@ -20,6 +20,7 @@
|
||||
#include "shared/source/helpers/string_helpers.h"
|
||||
#include "shared/source/memory_manager/memory_manager.h"
|
||||
#include "shared/source/memory_manager/os_agnostic_memory_manager.h"
|
||||
#include "shared/source/memory_manager/unified_memory_reuse_cleaner.h"
|
||||
#include "shared/source/os_interface/debug_env_reader.h"
|
||||
#include "shared/source/os_interface/driver_info.h"
|
||||
#include "shared/source/os_interface/os_environment.h"
|
||||
@@ -50,6 +51,9 @@ ExecutionEnvironment::~ExecutionEnvironment() {
|
||||
if (directSubmissionController) {
|
||||
directSubmissionController->stopThread();
|
||||
}
|
||||
if (unifiedMemoryReuseCleaner) {
|
||||
unifiedMemoryReuseCleaner->stopThread();
|
||||
}
|
||||
if (memoryManager) {
|
||||
memoryManager->commonCleanup();
|
||||
for (const auto &rootDeviceEnvironment : this->rootDeviceEnvironments) {
|
||||
@@ -143,6 +147,20 @@ DirectSubmissionController *ExecutionEnvironment::initializeDirectSubmissionCont
|
||||
return directSubmissionController.get();
|
||||
}
|
||||
|
||||
void ExecutionEnvironment::initializeUnifiedMemoryReuseCleaner() {
|
||||
std::lock_guard<std::mutex> lock(initializeUnifiedMemoryReuseCleanerMutex);
|
||||
auto initializeUnifiedMemoryReuseCleaner = UnifiedMemoryReuseCleaner::isSupported();
|
||||
|
||||
if (debugManager.flags.ExperimentalUSMAllocationReuseCleaner.get() != -1) {
|
||||
initializeUnifiedMemoryReuseCleaner = debugManager.flags.ExperimentalUSMAllocationReuseCleaner.get() == 1;
|
||||
}
|
||||
|
||||
if (initializeUnifiedMemoryReuseCleaner && nullptr == this->unifiedMemoryReuseCleaner) {
|
||||
this->unifiedMemoryReuseCleaner = std::make_unique<UnifiedMemoryReuseCleaner>();
|
||||
this->unifiedMemoryReuseCleaner->startThread();
|
||||
}
|
||||
}
|
||||
|
||||
void ExecutionEnvironment::prepareRootDeviceEnvironments(uint32_t numRootDevices) {
|
||||
if (rootDeviceEnvironments.size() < numRootDevices) {
|
||||
rootDeviceEnvironments.resize(numRootDevices);
|
||||
|
||||
Reference in New Issue
Block a user