RMM  23.12
RAPIDS Memory Manager
Public Member Functions | List of all members
rmm::mr::callback_memory_resource Class Referencefinal

A device memory resource that uses the provided callbacks for memory allocation and deallocation. More...

#include <callback_memory_resource.hpp>

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

Public Member Functions

 callback_memory_resource (allocate_callback_t allocate_callback, deallocate_callback_t deallocate_callback, void *allocate_callback_arg=nullptr, void *deallocate_callback_arg=nullptr) noexcept
 Construct a new callback memory resource. More...
 
 callback_memory_resource (callback_memory_resource const &)=delete
 
callback_memory_resourceoperator= (callback_memory_resource const &)=delete
 
 callback_memory_resource (callback_memory_resource &&) noexcept=default
 Default move constructor.
 
callback_memory_resourceoperator= (callback_memory_resource &&) noexcept=default
 Default move assignment operator. More...
 
- 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 (std::size_t bytes, cuda_stream_view stream=cuda_stream_view{})
 Allocates memory of size at least bytes. More...
 
void deallocate (void *ptr, std::size_t bytes, cuda_stream_view stream=cuda_stream_view{})
 Deallocate memory pointed to by p. More...
 
bool is_equal (device_memory_resource const &other) const noexcept
 Compare this resource to another. More...
 
void * allocate (std::size_t bytes, std::size_t alignment)
 Allocates memory of size at least bytes. More...
 
void deallocate (void *ptr, std::size_t bytes, std::size_t alignment)
 Deallocate memory pointed to by p. More...
 
void * allocate_async (std::size_t bytes, std::size_t alignment, cuda_stream_view stream)
 Allocates memory of size at least bytes. More...
 
void * allocate_async (std::size_t bytes, cuda_stream_view stream)
 Allocates memory of size at least bytes. More...
 
void deallocate_async (void *ptr, std::size_t bytes, std::size_t alignment, cuda_stream_view stream)
 Deallocate memory pointed to by p. More...
 
void deallocate_async (void *ptr, std::size_t bytes, cuda_stream_view stream)
 Deallocate memory pointed to by p. 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...
 
std::pair< std::size_t, std::size_t > get_mem_info (cuda_stream_view stream) const
 Queries the amount of free and total memory for the resource. More...
 

Detailed Description

A device memory resource that uses the provided callbacks for memory allocation and deallocation.

Constructor & Destructor Documentation

◆ callback_memory_resource()

rmm::mr::callback_memory_resource::callback_memory_resource ( allocate_callback_t  allocate_callback,
deallocate_callback_t  deallocate_callback,
void *  allocate_callback_arg = nullptr,
void *  deallocate_callback_arg = nullptr 
)
inlinenoexcept

Construct a new callback memory resource.

Constructs a callback memory resource that uses the user-provided callbacks allocate_callback for allocation and deallocate_callback for deallocation.

Parameters
allocate_callbackThe callback function used for allocation
deallocate_callbackThe callback function used for deallocation
allocate_callback_argAdditional context passed to allocate_callback. It is the caller's responsibility to maintain the lifetime of the pointed-to data for the duration of the lifetime of the callback_memory_resource.
deallocate_callback_argAdditional context passed to deallocate_callback. It is the caller's responsibility to maintain the lifetime of the pointed-to data for the duration of the lifetime of the callback_memory_resource.

Member Function Documentation

◆ operator=()

callback_memory_resource& rmm::mr::callback_memory_resource::operator= ( callback_memory_resource &&  )
defaultnoexcept

Default move assignment operator.

Returns
callback_memory_resource& Reference to the assigned object

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