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

Memory resource that uses cudaMalloc/Free for allocation/deallocation. More...

#include <cuda_memory_resource.hpp>

Public Member Functions

 cuda_memory_resource (cuda_memory_resource const &)=default
 Default copy constructor.
 
 cuda_memory_resource (cuda_memory_resource &&)=default
 Default move constructor.
 
cuda_memory_resourceoperator= (cuda_memory_resource const &)=default
 Default copy assignment operator. More...
 
cuda_memory_resourceoperator= (cuda_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 memory of size at least bytes. More...
 
void deallocate ([[maybe_unused]] cuda::stream_ref stream, void *ptr, [[maybe_unused]] 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 memory of size at least 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== (cuda_memory_resource const &) const noexcept
 Compare this resource to another. More...
 
bool operator!= (cuda_memory_resource const &) const noexcept
 Compare this resource to another. More...
 

Friends

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

Detailed Description

Memory resource that uses cudaMalloc/Free for allocation/deallocation.

Member Function Documentation

◆ allocate()

void* rmm::mr::cuda_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 memory of size at least bytes.

The returned pointer will have at minimum 256 byte alignment.

The stream argument is ignored.

Parameters
streamThis argument is ignored
bytesThe size of the allocation
alignmentThe alignment of the allocation
Returns
void* Pointer to the newly allocated memory

◆ allocate_sync()

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

Allocates memory of size at least bytes synchronously.

Parameters
bytesThe size of the allocation
alignmentThe alignment of the allocation
Returns
void* Pointer to the newly allocated memory

◆ deallocate()

void rmm::mr::cuda_memory_resource::deallocate ( [[maybe_unused] ] cuda::stream_ref  stream,
void *  ptr,
[[maybe_unused] ] 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::cuda_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::cuda_memory_resource::operator!= ( cuda_memory_resource const &  ) const
inlinenoexcept

Compare this resource to another.

All instances of cuda_memory_resource are equivalent.

Returns
true Always

◆ operator=() [1/2]

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

Default move assignment operator.

Returns
cuda_memory_resource& Reference to the assigned object

◆ operator=() [2/2]

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

Default copy assignment operator.

Returns
cuda_memory_resource& Reference to the assigned object

◆ operator==()

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

Compare this resource to another.

All instances of cuda_memory_resource are equivalent.

Returns
true Always

Friends And Related Function Documentation

◆ get_property

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

Enables the cuda::mr::device_accessible property.

This property declares that a cuda_memory_resource provides device accessible memory


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