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

Memory resource class for allocating pinned host memory. More...

#include <pinned_host_memory_resource.hpp>

Public Member Functions

 pinned_host_memory_resource (pinned_host_memory_resource const &)=default
 Default copy constructor.
 
 pinned_host_memory_resource (pinned_host_memory_resource &&)=default
 Default move constructor.
 
pinned_host_memory_resourceoperator= (pinned_host_memory_resource const &)=default
 Default copy assignment operator. More...
 
pinned_host_memory_resourceoperator= (pinned_host_memory_resource &&)=default
 Default move assignment operator. More...
 
void * allocate ([[maybe_unused]] cuda::stream_ref stream, std::size_t bytes, [[maybe_unused]] std::size_t alignment=rmm::CUDA_ALLOCATION_ALIGNMENT)
 Allocates pinned host memory of size at least bytes bytes. More...
 
void deallocate ([[maybe_unused]] cuda::stream_ref stream, void *ptr, std::size_t bytes, [[maybe_unused]] std::size_t alignment=rmm::CUDA_ALLOCATION_ALIGNMENT) noexcept
 Deallocate memory pointed to by ptr. More...
 
void * allocate_sync (std::size_t bytes, std::size_t alignment=rmm::CUDA_ALLOCATION_ALIGNMENT)
 Allocates pinned host memory of size at least bytes bytes synchronously. More...
 
void deallocate_sync (void *ptr, std::size_t bytes, std::size_t alignment=rmm::CUDA_ALLOCATION_ALIGNMENT) noexcept
 Deallocate memory pointed to by ptr synchronously. More...
 
bool operator== (pinned_host_memory_resource const &) const noexcept
 Compare this resource to another. More...
 
bool operator!= (pinned_host_memory_resource const &) const noexcept
 Compare this resource to another. More...
 

Friends

void get_property (pinned_host_memory_resource const &, cuda::mr::device_accessible) noexcept
 Enables the cuda::mr::device_accessible property. More...
 
void get_property (pinned_host_memory_resource const &, cuda::mr::host_accessible) noexcept
 Enables the cuda::mr::host_accessible property. More...
 

Detailed Description

Memory resource class for allocating pinned host memory.

This class uses CUDA's cudaHostAlloc to allocate pinned host memory. It satisfies the cuda::mr::resource and cuda::mr::synchronous_resource concepts, and the cuda::mr::host_accessible and cuda::mr::device_accessible properties.

Member Function Documentation

◆ allocate()

void* rmm::mr::pinned_host_memory_resource::allocate ( [[maybe_unused] ] cuda::stream_ref  stream,
std::size_t  bytes,
[[maybe_unused] ] std::size_t  alignment = rmm::CUDA_ALLOCATION_ALIGNMENT 
)
inline

Allocates pinned host memory of size at least bytes bytes.

Exceptions
rmm::out_of_memoryif the requested allocation could not be fulfilled due to a CUDA out of memory error.
rmm::bad_allocif the requested allocation could not be fulfilled due to any other reason.

The stream argument is ignored.

Parameters
streamCUDA stream on which to perform the allocation (ignored).
bytesThe size, in bytes, of the allocation.
alignmentThe alignment of the allocation
Returns
Pointer to the newly allocated memory.

◆ allocate_sync()

void* rmm::mr::pinned_host_memory_resource::allocate_sync ( std::size_t  bytes,
std::size_t  alignment = rmm::CUDA_ALLOCATION_ALIGNMENT 
)
inline

Allocates pinned host memory of size at least bytes bytes synchronously.

Parameters
bytesThe size, in bytes, of the allocation.
alignmentThe alignment of the allocation
Returns
Pointer to the newly allocated memory.

◆ deallocate()

void rmm::mr::pinned_host_memory_resource::deallocate ( [[maybe_unused] ] cuda::stream_ref  stream,
void *  ptr,
std::size_t  bytes,
[[maybe_unused] ] std::size_t  alignment = rmm::CUDA_ALLOCATION_ALIGNMENT 
)
inlinenoexcept

Deallocate memory pointed to by ptr.

The stream argument is ignored.

Parameters
streamThis argument is ignored.
ptrPointer to be deallocated
bytesThe size in bytes of the allocation. This must be equal to the value of bytes that was passed to the allocate call that returned ptr.
alignmentThe alignment that was passed to the allocate call that returned ptr

◆ deallocate_sync()

void rmm::mr::pinned_host_memory_resource::deallocate_sync ( void *  ptr,
std::size_t  bytes,
std::size_t  alignment = rmm::CUDA_ALLOCATION_ALIGNMENT 
)
inlinenoexcept

Deallocate memory pointed to by ptr synchronously.

Parameters
ptrPointer to be deallocated
bytesThe size in bytes of the allocation
alignmentThe alignment that was passed to the allocate call that returned ptr

◆ operator!=()

bool rmm::mr::pinned_host_memory_resource::operator!= ( pinned_host_memory_resource const &  ) const
inlinenoexcept

Compare this resource to another.

All instances of pinned_host_memory_resource are equivalent.

Returns
true Always

◆ operator=() [1/2]

pinned_host_memory_resource& rmm::mr::pinned_host_memory_resource::operator= ( pinned_host_memory_resource &&  )
default

Default move assignment operator.

Returns
pinned_host_memory_resource& Reference to the assigned object

◆ operator=() [2/2]

pinned_host_memory_resource& rmm::mr::pinned_host_memory_resource::operator= ( pinned_host_memory_resource const &  )
default

Default copy assignment operator.

Returns
pinned_host_memory_resource& Reference to the assigned object

◆ operator==()

bool rmm::mr::pinned_host_memory_resource::operator== ( pinned_host_memory_resource const &  ) const
inlinenoexcept

Compare this resource to another.

All instances of pinned_host_memory_resource are equivalent.

Returns
true Always

Friends And Related Function Documentation

◆ get_property [1/2]

void get_property ( pinned_host_memory_resource const &  ,
cuda::mr::device_accessible   
)
friend

Enables the cuda::mr::device_accessible property.

This property declares that a pinned_host_memory_resource provides device accessible memory

◆ get_property [2/2]

void get_property ( pinned_host_memory_resource const &  ,
cuda::mr::host_accessible   
)
friend

Enables the cuda::mr::host_accessible property.

This property declares that a pinned_host_memory_resource provides host accessible memory


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