MCPcopy Create free account
hub / github.com/arrayfire/arrayfire / setMemoryManager

Method setMemoryManager

src/backend/cuda/device_manager.cpp:394–409  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

392}
393
394void DeviceManager::setMemoryManager(
395 std::unique_ptr<MemoryManagerBase> newMgr) {
396 std::lock_guard<std::mutex> l(mutex);
397 // It's possible we're setting a memory manager and the default memory
398 // manager still hasn't been initialized, so initialize it anyways so we
399 // don't inadvertently reset to it when we first call memoryManager()
400 memoryManager();
401 // Calls shutdown() on the existing memory manager.
402 if (memManager) { memManager->shutdownAllocator(); }
403 memManager = std::move(newMgr);
404 // Set the backend memory manager for this new manager to register native
405 // functions correctly.
406 std::unique_ptr<cuda::Allocator> deviceMemoryManager(new Allocator());
407 memManager->setAllocator(std::move(deviceMemoryManager));
408 memManager->initialize();
409}
410
411void DeviceManager::resetMemoryManager() {
412 // Replace with default memory manager

Callers 1

setMemoryManagerFunction · 0.45

Calls 3

shutdownAllocatorMethod · 0.80
setAllocatorMethod · 0.80
initializeMethod · 0.45

Tested by

no test coverage detected