device_memory_resource derived class that uses malloc/free for allocation/deallocation.
More...
#include <system_memory_resource.hpp>


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_resource & | operator= (system_memory_resource const &)=default |
| Default copy assignment operator. More... | |
| system_memory_resource & | operator= (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_resource & | operator= (device_memory_resource const &)=default |
| Default copy assignment operator. More... | |
| device_memory_resource & | operator= (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... | |
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/.
|
default |
Default move assignment operator.
|
default |
Default copy assignment operator.
|
friend |
Enables the cuda::mr::device_accessible property.
This property declares that a system_memory_resource provides device-accessible memory
|
friend |
Enables the cuda::mr::host_accessible property.
This property declares that a system_memory_resource provides host-accessible memory