cuda::experimental::managed_memory_pool#

struct managed_memory_pool : public cuda::experimental::managed_memory_resource#

Stream ordered memory resource#

managed_memory_pool allocates managed memory using cudaMallocFromPoolAsync / cudaFreeAsync for allocation/deallocation. A When constructed it creates an underlying c cudaMemPool_t with the allocation type set to c cudaMemAllocationTypeManaged and owns it.

Public Types

using reference_type = managed_memory_resource#
using default_queries = ::cuda::mr::properties_list<::cuda::mr::device_accessible, ::cuda::mr::host_accessible>#

Public Functions

inline managed_memory_pool(memory_pool_properties __properties = {})#

Constructs a managed_memory_pool with optional properties.

Properties include the initial pool size and the release threshold. If the pool size grows beyond the release threshold, unused memory held by the pool will be released at the next synchronization event.

Parameters:

__properties – Optional, additional properties of the pool to be created.

inline ~managed_memory_pool() noexcept#
managed_memory_pool(const managed_memory_pool&) = delete#
managed_memory_pool &operator=(const managed_memory_pool&) = delete#

Public Static Functions

static inline managed_memory_pool from_native_handle(
::cudaMemPool_t __pool,
) noexcept#