All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
Public Member Functions | Friends | List of all members
rmm::mr::system_memory_resource Class Referencefinal

device_memory_resource derived class that uses malloc/free for allocation/deallocation. More...

#include <system_memory_resource.hpp>

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

Public Member Functions

 system_memory_resource (system_memory_resource const &)=default
 Default copy constructor.
 
 system_memory_resource (system_memory_resource &&)=default
 Default copy constructor.
 
system_memory_resourceoperator= (system_memory_resource const &)=default
 Default copy assignment operator. More...
 
system_memory_resourceoperator= (system_memory_resource &&)=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...
 

Friends

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

Detailed Description

device_memory_resource derived class that uses malloc/free for allocation/deallocation.

There are two flavors of hardware/software environments that support accessing system allocated memory (SAM) from the GPU: HMM and ATS.

Heterogeneous Memory Management (HMM) is a software-based solution for PCIe-connected GPUs on x86 systems. Requirements:

For more information, see https://developer.nvidia.com/blog/simplifying-gpu-application-development-with-heterogeneous-memory-management/.

Address Translation Services (ATS) is a hardware/software solution for the Grace Hopper Superchip that uses the NVLink Chip-2-Chip (C2C) interconnect to provide coherent memory. For more information, see https://developer.nvidia.com/blog/nvidia-grace-hopper-superchip-architecture-in-depth/.

Member Function Documentation

◆ operator=() [1/2]

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

Default move assignment operator.

Returns
system_memory_resource& Reference to the assigned object

◆ operator=() [2/2]

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

Default copy assignment operator.

Returns
system_memory_resource& Reference to the assigned object

Friends And Related Function Documentation

◆ get_property [1/2]

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

Enables the cuda::mr::device_accessible property.

This property declares that a system_memory_resource provides device-accessible memory

◆ get_property [2/2]

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

Enables the cuda::mr::host_accessible property.

This property declares that a system_memory_resource provides host-accessible memory


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