公有成员函数 | 所有成员列表
rmm::mr::sam_headroom_memory_resource 类参考最终

使用系统内存资源分配带预留空间的内存的资源。 更多...

#include <sam_headroom_memory_resource.hpp>

rmm::mr::sam_headroom_memory_resource 继承图
Inheritance graph
[图例]
rmm::mr::sam_headroom_memory_resource 协作图
Collaboration graph
[图例]

公有成员函数

 sam_headroom_memory_resource (std::size_t headroom)
 构造一个带预留空间的内存资源。 更多...
 
 sam_headroom_memory_resource (sam_headroom_memory_resource const &)=delete
 
 sam_headroom_memory_resource (sam_headroom_memory_resource &&)=delete
 
sam_headroom_memory_resourceoperator= (sam_headroom_memory_resource const &)=delete
 
sam_headroom_memory_resourceoperator= (sam_headroom_memory_resource &&)=delete
 
- 继承自 rmm::mr::device_memory_resource 的公有成员函数
 device_memory_resource (device_memory_resource const &)=default
 默认拷贝构造函数。
 
 device_memory_resource (device_memory_resource &&) noexcept=default
 默认移动构造函数。
 
device_memory_resourceoperator= (device_memory_resource const &)=default
 默认拷贝赋值运算符。 更多...
 
device_memory_resourceoperator= (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 的比较运算符。 更多...
 

详细描述

使用系统内存资源分配带预留空间的内存的资源。

系统分配的内存(SAM)可以迁移到 GPU,但绝不会迁移回主机。如果 GPU 内存被超额订阅,这可能导致其他 CUDA 调用因内存不足错误而失败。为了解决此问题,在使用系统内存资源时,我们会预留一些 GPU 内存作为其他 CUDA 调用的预留空间 (headroom),并且只有在分配不会占用这部分预留空间时,才会条件性地将其首选位置设置为 GPU。

由于在每次分配时进行此检查可能开销很大,调用者可以选择对小额分配使用其他分配器(例如 binning_memory_resource),而仅对大额分配使用此分配器。

构造函数与析构函数文档

◆ sam_headroom_memory_resource()

rmm::mr::sam_headroom_memory_resource::sam_headroom_memory_resource ( std::size_t  headroom)
内联显式

构造一个带预留空间的内存资源。

参数
headroom预留的 GPU 内存作为预留空间 (headroom) 的大小

此类的文档生成自以下文件