cuda::experimental::pinned_memory_pool
Defined in include/cuda/experimental/__memory_resource/pinned_memory_pool.cuh
-
class pinned_memory_pool : public cuda::experimental::__memory_pool_base
pinned_memory_pool
is an owning wrapper around a cudaMemPool_t.It handles creation and destruction of the underlying pool utilizing the provided
memory_pool_properties
.Public Functions
-
inline explicit pinned_memory_pool(int __numa_id, memory_pool_properties __properties)
Constructs a
pinned_memory_pool
with the specified NUMA node id and initial pool size and 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.Note
Memory from this pool is accessible from all devices right away, which differs from the default behavior of pinned memory pools where memory is not accessible from devices until
cudaMemPoolSetAccess
is called.- Parameters
__numa_id – The NUMA node id of the NUMA node the pool is constructed on.
__pool_properties – Optional, additional properties of the pool to be created.
-
inline explicit pinned_memory_pool(int __numa_id = 0)
Constructs a
pinned_memory_pool
on the host with the specified NUMA node id.Note
Memory from this pool is accessible from all devices right away, which differs from the default behavior of pinned memory pools where memory is not accessible from devices until
cudaMemPoolSetAccess
is called.- Parameters
__numa_id – The NUMA node id of the NUMA node the pool is constructed on.
__numa_id – The NUMA node id of the NUMA node the pool is constructed on.
-
pinned_memory_pool(::cudaMemPool_t) = delete
Disables construction from a plain
cudaMemPool_t
. We want to ensure clean ownership semantics.
-
pinned_memory_pool(pinned_memory_pool const&) = delete
-
pinned_memory_pool(pinned_memory_pool&&) = delete
-
pinned_memory_pool &operator=(pinned_memory_pool const&) = delete
-
pinned_memory_pool &operator=(pinned_memory_pool&&) = delete
Public Static Functions
-
static inline pinned_memory_pool from_native_handle(::cudaMemPool_t __handle) noexcept
Construct an
pinned_memory_pool
object from a nativecudaMemPool_t
handle.Note
The constructed
pinned_memory_pool
object takes ownership of the native handle.- Parameters
__handle – The native handle
- Returns
The constructed
pinned_memory_pool
object
-
static pinned_memory_pool from_native_handle(int) = delete
-
static pinned_memory_pool from_native_handle(cuda::std::nullptr_t) = delete
-
inline explicit pinned_memory_pool(int __numa_id, memory_pool_properties __properties)