|
UMPIRE
Umpire: resource management and provision
|
Concrete MemoryResource object that uses the template _allocator to allocate and deallocate memory. More...
#include </home/docs/checkouts/readthedocs.org/user_builds/umpire/checkouts/develop/src/umpire/resource/HipUnifiedMemoryResource.hpp>

Public Member Functions | |
| HipUnifiedMemoryResource (Platform platform, const std::string &name, int id, MemoryResourceTraits traits) | |
| void * | allocate (std::size_t bytes) |
| Allocate bytes of memory. More... | |
| void | deallocate (void *ptr, std::size_t size) |
| Free the memory at ptr. More... | |
| bool | isAccessibleFrom (Platform p) noexcept |
| Platform | getPlatform () noexcept |
| Get the Platform assocatiated with this MemoryResource. More... | |
| MemoryResourceTraits | getTraits () const noexcept override |
| void * | allocate_internal (std::size_t bytes) |
| void * | allocate_named_internal (const std::string &name, std::size_t bytes) |
| void | deallocate_internal (void *ptr, std::size_t size=0) |
| virtual void | release () |
| Release any and all unused memory held by this AllocationStrategy. More... | |
| virtual std::size_t | getCurrentSize () const noexcept |
| Get current (total) size of the allocated memory. More... | |
| virtual std::size_t | getHighWatermark () const noexcept |
| Get the high watermark of the total allocated size. More... | |
| virtual std::size_t | getActualSize () const noexcept |
| Get the current amount of memory allocated by this allocator. More... | |
| virtual std::size_t | getAllocationCount () const noexcept |
| Get the total number of active allocations by this allocator. More... | |
| const std::string & | getName () noexcept |
| Get the name of this AllocationStrategy. More... | |
| const std::string & | getStrategyName () const noexcept |
| int | getId () noexcept |
| Get the id of this AllocationStrategy. More... | |
| virtual AllocationStrategy * | getParent () const noexcept |
| Traces where the allocator came from. More... | |
| virtual bool | tracksMemoryUse () const noexcept |
| bool | isTracked () const noexcept |
Public Attributes | |
| std::size_t | m_current_size {0} |
| std::size_t | m_high_watermark {0} |
| std::size_t | m_allocation_count {0} |
Protected Member Functions | |
| void | setTracking (bool) noexcept |
Protected Attributes | |
| alloc::HipMallocManagedAllocator | m_allocator |
| Platform | m_platform |
| MemoryResourceTraits | m_traits |
| std::string | m_name |
| std::string | m_strategy_name |
| int | m_id |
| bool | m_tracked {true} |
| AllocationStrategy * | m_parent |
Concrete MemoryResource object that uses the template _allocator to allocate and deallocate memory.
| umpire::resource::HipUnifiedMemoryResource::HipUnifiedMemoryResource | ( | Platform | platform, |
| const std::string & | name, | ||
| int | id, | ||
| MemoryResourceTraits | traits | ||
| ) |
|
virtual |
Allocate bytes of memory.
This function is pure virtual and must be implemented by the inheriting class.
| bytes | Number of bytes to allocate. |
Implements umpire::resource::MemoryResource.
References umpire::alloc::HipMallocManagedAllocator::allocate(), umpire::util::message::Debug, m_allocator, and UMPIRE_LOG.
|
virtual |
Free the memory at ptr.
This function is pure virtual and must be implemented by the inheriting class.
| ptr | Pointer to free. |
Implements umpire::resource::MemoryResource.
References umpire::alloc::HipMallocManagedAllocator::deallocate(), umpire::util::message::Debug, m_allocator, and UMPIRE_LOG.
|
virtualnoexcept |
Implements umpire::resource::MemoryResource.
|
virtualnoexcept |
Get the Platform assocatiated with this MemoryResource.
This function is pure virtual and must be implemented by the inheriting class.
Implements umpire::resource::MemoryResource.
References m_platform.
|
overridevirtualnoexceptinherited |
Reimplemented from umpire::strategy::AllocationStrategy.
References umpire::resource::MemoryResource::m_traits.
|
inherited |
References umpire::strategy::AllocationStrategy::m_allocation_count, umpire::strategy::AllocationStrategy::m_current_size, and umpire::strategy::AllocationStrategy::m_high_watermark.
Referenced by umpire::strategy::mixins::AlignedAllocation::aligned_allocate(), umpire::strategy::AlignedAllocator::allocate(), umpire::strategy::AllocationAdvisor::allocate(), umpire::strategy::AllocationPrefetcher::allocate(), umpire::strategy::MixedPool::allocate(), umpire::strategy::NamedAllocationStrategy::allocate(), umpire::strategy::NumaPolicy::allocate(), umpire::strategy::SizeLimiter::allocate(), umpire::strategy::SlotPool::allocate(), umpire::strategy::ThreadSafeAllocator::allocate(), and umpire::strategy::MonotonicAllocationStrategy::MonotonicAllocationStrategy().
|
inherited |
References umpire::strategy::AllocationStrategy::m_allocation_count, umpire::strategy::AllocationStrategy::m_current_size, and umpire::strategy::AllocationStrategy::m_high_watermark.
Referenced by umpire::strategy::NamingShim::allocate(), and umpire::strategy::NamedAllocationStrategy::allocate_named().
|
inherited |
References umpire::strategy::AllocationStrategy::m_allocation_count, and umpire::strategy::AllocationStrategy::m_current_size.
Referenced by umpire::strategy::mixins::AlignedAllocation::aligned_deallocate(), umpire::strategy::AlignedAllocator::deallocate(), umpire::strategy::AllocationAdvisor::deallocate(), umpire::strategy::AllocationPrefetcher::deallocate(), umpire::strategy::MixedPool::deallocate(), umpire::strategy::NamedAllocationStrategy::deallocate(), umpire::strategy::NamingShim::deallocate(), umpire::strategy::NumaPolicy::deallocate(), umpire::strategy::SizeLimiter::deallocate(), umpire::strategy::ThreadSafeAllocator::deallocate(), umpire::strategy::DeviceIpcAllocator::deallocate(), umpire::strategy::DeviceIpcAllocator::~DeviceIpcAllocator(), umpire::strategy::MonotonicAllocationStrategy::~MonotonicAllocationStrategy(), and umpire::strategy::SlotPool::~SlotPool().
|
virtualinherited |
Release any and all unused memory held by this AllocationStrategy.
Reimplemented in umpire::strategy::FixedPool, umpire::strategy::ResourceAwarePool, umpire::strategy::QuickPool, umpire::strategy::MixedPool, and umpire::strategy::DynamicPoolList.
References umpire::util::message::Info, and UMPIRE_LOG.
Referenced by umpire::Allocator::release().
|
virtualnoexceptinherited |
Get current (total) size of the allocated memory.
This is the total size of all allocation currently 'live' that have been made by this AllocationStrategy object.
Reimplemented in umpire::strategy::FixedPool, umpire::strategy::MonotonicAllocationStrategy, umpire::resource::SyclDeviceMemoryResource< _allocator >, umpire::resource::NullMemoryResource, umpire::resource::NoOpMemoryResource, and umpire::resource::FileMemoryResource.
References umpire::strategy::AllocationStrategy::m_current_size.
Referenced by umpire::strategy::AllocationStrategy::getActualSize(), and umpire::Allocator::getCurrentSize().
|
virtualnoexceptinherited |
Get the high watermark of the total allocated size.
This is equivalent to the highest observed value of getCurrentSize.
Reimplemented in umpire::strategy::FixedPool, umpire::strategy::MonotonicAllocationStrategy, umpire::resource::SyclDeviceMemoryResource< _allocator >, umpire::resource::NullMemoryResource, umpire::resource::NoOpMemoryResource, and umpire::resource::FileMemoryResource.
References umpire::strategy::AllocationStrategy::m_high_watermark.
Referenced by umpire::Allocator::getHighWatermark().
|
virtualnoexceptinherited |
Get the current amount of memory allocated by this allocator.
Note that this can be larger than getCurrentSize(), particularly if the AllocationStrategy implements some kind of pooling.
Reimplemented in umpire::strategy::FixedPool, umpire::strategy::ResourceAwarePool, umpire::strategy::QuickPool, umpire::strategy::MixedPool, umpire::strategy::DynamicPoolList, and umpire::resource::HostSharedMemoryResource.
References umpire::strategy::AllocationStrategy::getCurrentSize().
Referenced by umpire::Allocator::getActualSize().
|
virtualnoexceptinherited |
Get the total number of active allocations by this allocator.
References umpire::strategy::AllocationStrategy::m_allocation_count.
Referenced by umpire::Allocator::getAllocationCount().
|
noexceptinherited |
Get the name of this AllocationStrategy.
References umpire::strategy::AllocationStrategy::m_name.
Referenced by umpire::strategy::DynamicPoolList::coalesce(), umpire::strategy::QuickPool::coalesce(), umpire::strategy::ResourceAwarePool::coalesce(), umpire::strategy::mixins::Inspector::deregisterAllocation(), umpire::ResourceManager::destroyAllocator(), DynamicSizePool< IA >::DynamicSizePool(), umpire::Allocator::getName(), and umpire::util::unwrap_allocation_strategy().
|
noexceptinherited |
References umpire::strategy::AllocationStrategy::m_strategy_name.
Referenced by umpire::Allocator::getStrategyName().
|
noexceptinherited |
Get the id of this AllocationStrategy.
References umpire::strategy::AllocationStrategy::m_id.
Referenced by umpire::ResourceManager::destroyAllocator(), and umpire::Allocator::getId().
|
virtualnoexceptinherited |
Traces where the allocator came from.
References umpire::strategy::AllocationStrategy::m_parent.
Referenced by umpire::ResourceManager::destroyAllocator(), umpire::Allocator::getParent(), and umpire::is_accessible().
|
virtualnoexceptinherited |
Reimplemented in umpire::strategy::ResourceAwarePool, umpire::strategy::QuickPool, and umpire::strategy::DynamicPoolList.
|
noexceptinherited |
References umpire::strategy::AllocationStrategy::m_tracked.
Referenced by umpire::Allocator::isTracked().
|
protectednoexceptinherited |
|
protected |
Referenced by allocate(), and deallocate().
|
protected |
Referenced by getPlatform().
|
protectedinherited |
|
inherited |
Referenced by umpire::strategy::AllocationStrategy::allocate_internal(), umpire::strategy::AllocationStrategy::allocate_named_internal(), umpire::strategy::AllocationStrategy::deallocate_internal(), umpire::strategy::mixins::Inspector::deregisterAllocation(), umpire::strategy::AllocationStrategy::getCurrentSize(), and umpire::strategy::mixins::Inspector::registerAllocation().
|
inherited |
|
inherited |
Referenced by umpire::strategy::AllocationStrategy::allocate_internal(), umpire::strategy::AllocationStrategy::allocate_named_internal(), umpire::strategy::AllocationStrategy::deallocate_internal(), umpire::strategy::mixins::Inspector::deregisterAllocation(), umpire::strategy::AllocationStrategy::getAllocationCount(), and umpire::strategy::mixins::Inspector::registerAllocation().
|
protectedinherited |
|
protectedinherited |
Referenced by umpire::strategy::AllocationStrategy::getStrategyName().
|
protectedinherited |
Referenced by umpire::strategy::AllocationStrategy::getId().
|
protectedinherited |
Referenced by umpire::strategy::AllocationStrategy::isTracked().
|
protectedinherited |
Referenced by umpire::strategy::AllocationStrategy::getParent().