一个 device_memory_resource 派生类,使用 malloc/free 进行分配/释放。 更多...
#include <system_memory_resource.hpp>
公有成员函数 | |
system_memory_resource (system_memory_resource const &)=default | |
默认拷贝构造函数。 | |
system_memory_resource (system_memory_resource &&)=default | |
默认拷贝构造函数。 | |
system_memory_resource & | operator= (system_memory_resource const &)=default |
默认拷贝赋值运算符。 更多... | |
system_memory_resource & | operator= (system_memory_resource &&)=default |
默认移动赋值运算符。 更多... | |
![]() | |
device_memory_resource (device_memory_resource const &)=default | |
默认拷贝构造函数。 | |
device_memory_resource (device_memory_resource &&) noexcept=default | |
默认移动构造函数。 | |
device_memory_resource & | operator= (device_memory_resource const &)=default |
默认拷贝赋值运算符。 更多... | |
device_memory_resource & | operator= (device_memory_resource &&) noexcept=default |
默认移动赋值运算符。 更多... | |
void * | allocate (std::size_t bytes, cuda_stream_view stream=cuda_stream_view{}) |
分配至少 bytes 大小的内存。 更多... | |
void | deallocate (void *ptr, std::size_t bytes, cuda_stream_view stream=cuda_stream_view{}) |
释放 p 指向的内存。 更多... | |
bool | is_equal (device_memory_resource const &other) const noexcept |
将此资源与另一个资源进行比较。 更多... | |
void * | allocate (std::size_t bytes, std::size_t alignment) |
分配至少 bytes 大小的内存。 更多... | |
void | deallocate (void *ptr, std::size_t bytes, std::size_t alignment) |
释放 p 指向的内存。 更多... | |
void * | allocate_async (std::size_t bytes, std::size_t alignment, cuda_stream_view stream) |
分配至少 bytes 大小的内存。 更多... | |
void * | allocate_async (std::size_t bytes, cuda_stream_view stream) |
分配至少 bytes 大小的内存。 更多... | |
void | deallocate_async (void *ptr, std::size_t bytes, std::size_t alignment, cuda_stream_view stream) |
释放 p 指向的内存。 更多... | |
void | deallocate_async (void *ptr, std::size_t bytes, cuda_stream_view stream) |
释放 p 指向的内存。 更多... | |
bool | operator== (device_memory_resource const &other) const noexcept |
与另一个 device_memory_resource 的比较运算符。 更多... | |
bool | operator!= (device_memory_resource const &other) const noexcept |
与另一个 device_memory_resource 的比较运算符。 更多... | |
友元 | |
void | get_property (system_memory_resource const &, cuda::mr::device_accessible) noexcept |
启用 cuda::mr::device_accessible 属性。 | |
void | get_property (system_memory_resource const &, cuda::mr::host_accessible) noexcept |
启用 cuda::mr::host_accessible 属性。 | |
一个 device_memory_resource 派生类,使用 malloc/free 进行分配/释放。
有两种硬件/软件环境支持从 GPU 访问系统分配的内存 (SAM):HMM 和 ATS。
异构内存管理 (HMM) 是一种基于软件的解决方案,适用于 x86 系统上通过 PCIe 连接的 GPU。要求
地址转换服务 (ATS) 是一种针对 Grace Hopper Superchip 的硬件/软件解决方案,使用 NVLink 芯片到芯片 (C2C) 互连来提供一致性内存。更多信息请参见 https://developer.nvidia.com/blog/nvidia-grace-hopper-superchip-architecture-in-depth/。
|
默认 |
默认移动赋值运算符。
|
默认 |
默认拷贝赋值运算符。
|
友元 |
启用 cuda::mr::device_accessible
属性。
此属性声明 system_memory_resource
提供可设备访问的内存
|
友元 |
启用 cuda::mr::host_accessible
属性。
此属性声明 system_memory_resource
提供可主机访问的内存