Public Member Functions | List of all members
rmm::mr::cuda_async_managed_memory_resource Class Referencefinal

device_memory_resource derived class that uses cudaMallocFromPoolAsync/cudaFreeFromPoolAsync with a managed memory pool for allocation/deallocation. More...

#include <cuda_async_managed_memory_resource.hpp>

Inheritance diagram for rmm::mr::cuda_async_managed_memory_resource:
Inheritance graph
[legend]
Collaboration diagram for rmm::mr::cuda_async_managed_memory_resource:
Collaboration graph
[legend]

Public Member Functions

 cuda_async_managed_memory_resource ()
 Constructs a cuda_async_managed_memory_resource with the default managed memory pool for the current device. More...
 
cudaMemPool_t pool_handle () const noexcept
 Returns the underlying native handle to the CUDA pool. More...
 
 cuda_async_managed_memory_resource (cuda_async_managed_memory_resource const &)=delete
 
 cuda_async_managed_memory_resource (cuda_async_managed_memory_resource &&)=delete
 
cuda_async_managed_memory_resourceoperator= (cuda_async_managed_memory_resource const &)=delete
 
cuda_async_managed_memory_resourceoperator= (cuda_async_managed_memory_resource &&)=delete
 
- Public Member Functions inherited from rmm::mr::device_memory_resource
 device_memory_resource (device_memory_resource const &)=default
 Default copy constructor.
 
 device_memory_resource (device_memory_resource &&) noexcept=default
 Default move constructor.
 
device_memory_resourceoperator= (device_memory_resource const &)=default
 Default copy assignment operator. More...
 
device_memory_resourceoperator= (device_memory_resource &&) noexcept=default
 Default move assignment operator. More...
 
void * allocate_sync (std::size_t bytes, std::size_t alignment=rmm::CUDA_ALLOCATION_ALIGNMENT)
 Allocates memory of size at least bytes. More...
 
void deallocate_sync (void *ptr, std::size_t bytes, [[maybe_unused]] std::size_t alignment=rmm::CUDA_ALLOCATION_ALIGNMENT) noexcept
 Deallocate memory pointed to by p. More...
 
void * allocate (cuda_stream_view stream, std::size_t bytes, std::size_t alignment=rmm::CUDA_ALLOCATION_ALIGNMENT)
 Allocates memory of size at least bytes on the specified stream. More...
 
void deallocate (cuda_stream_view stream, void *ptr, std::size_t bytes, [[maybe_unused]] std::size_t alignment=rmm::CUDA_ALLOCATION_ALIGNMENT) noexcept
 Deallocate memory pointed to by ptr on the specified stream. More...
 
bool is_equal (device_memory_resource const &other) const noexcept
 Compare this resource to another. More...
 
bool operator== (device_memory_resource const &other) const noexcept
 Comparison operator with another device_memory_resource. More...
 
bool operator!= (device_memory_resource const &other) const noexcept
 Comparison operator with another device_memory_resource. More...
 

Detailed Description

device_memory_resource derived class that uses cudaMallocFromPoolAsync/cudaFreeFromPoolAsync with a managed memory pool for allocation/deallocation.

Constructor & Destructor Documentation

◆ cuda_async_managed_memory_resource()

rmm::mr::cuda_async_managed_memory_resource::cuda_async_managed_memory_resource ( )
inline

Constructs a cuda_async_managed_memory_resource with the default managed memory pool for the current device.

The default managed memory pool is the pool that is created when the device is created. Pool properties such as the release threshold are not modified.

Exceptions
rmm::logic_errorif the CUDA version does not support cudaMallocFromPoolAsync with managed memory pool

Member Function Documentation

◆ pool_handle()

cudaMemPool_t rmm::mr::cuda_async_managed_memory_resource::pool_handle ( ) const
inlinenoexcept

Returns the underlying native handle to the CUDA pool.

Returns
cudaMemPool_t Handle to the underlying CUDA pool

The documentation for this class was generated from the following file: