文件 | | 类型定义 | 函数
设备内存资源
设备内存资源的协作图

文件

文件  arena_memory_resource.hpp
 
文件  binning_memory_resource.hpp
 
文件  callback_memory_resource.hpp
 
文件  cuda_async_memory_resource.hpp
 
文件  cuda_async_view_memory_resource.hpp
 
文件  cuda_memory_resource.hpp
 
文件  device_memory_resource.hpp
 
文件  fixed_size_memory_resource.hpp
 
文件  managed_memory_resource.hpp
 
文件  polymorphic_allocator.hpp
 
文件  pool_memory_resource.hpp
 
文件  sam_headroom_memory_resource.hpp
 
文件  system_memory_resource.hpp
 

类  rmm::mr::arena_memory_resource< Upstream >
 一种强调避免内存碎片和支持可伸缩并发的子分配器。 更多...
 
类  rmm::mr::binning_memory_resource< Upstream >
 从与 bin 大小相关的上游资源分配内存。 更多...
 
类  rmm::mr::callback_memory_resource
 一种使用提供的回调函数进行内存分配和释放的设备内存资源。 更多...
 
类  rmm::mr::cuda_async_memory_resource
 使用 cudaMallocAsync/cudaFreeAsync 进行分配/释放的 device_memory_resource派生类。 更多...
 
类  rmm::mr::cuda_async_view_memory_resource
 使用 cudaMallocAsync/cudaFreeAsync 进行分配/释放的 device_memory_resource派生类。 更多...
 
类  rmm::mr::cuda_memory_resource
 使用 cudaMalloc/Free 进行分配/释放的 device_memory_resource派生类。 更多...
 
类  rmm::mr::device_memory_resource
 所有 librmm 设备内存分配的基类。 更多...
 
类  rmm::mr::fixed_size_memory_resource< Upstream >
 一种分配单个固定大小内存块的 device_memory_resource更多...
 
类  rmm::mr::managed_memory_resource
 使用 cudaMallocManaged/Free 进行分配/释放的 device_memory_resource派生类。 更多...
 
类  rmm::mr::polymorphic_allocator< T >
 一种流有序分配器,使用 rmm::mr::device_memory_resource 来满足(解除)分配。 更多...
 
类  rmm::mr::stream_allocator_adaptor< Allocator >
 适配流有序分配器以提供标准的 Allocator 接口。 更多...
 
类  rmm::mr::pool_memory_resource< Upstream >
 一种合并式最佳匹配子分配器,使用从上游 memory_resource 分配的内存池。 更多...
 
类  rmm::mr::sam_headroom_memory_resource
 使用系统内存资源分配具有预留空间的内存的资源。 更多...
 
类  rmm::mr::system_memory_resource
 使用 malloc/free 进行分配/释放的 device_memory_resource派生类。 更多...
 

类型定义

using rmm::mr::allocate_callback_t = std::function< void *(std::size_t, cuda_stream_view, void *)>
 由回调内存资源用于分配的回调函数类型。 更多...
 
using rmm::mr::deallocate_callback_t = std::function< void(void *, std::size_t, cuda_stream_view, void *)>
 callback_memory_resource 用于释放的回调函数类型。 更多...
 

函数

template<typename T , typename U >
bool rmm::mr::operator== (polymorphic_allocator< T > const &lhs, polymorphic_allocator< U > const &rhs)
 比较两个 polymorphic_allocator 的相等性。 更多...
 
template<typename T , typename U >
bool rmm::mr::operator!= (polymorphic_allocator< T > const &lhs, polymorphic_allocator< U > const &rhs)
 比较两个 polymorphic_allocator 的不等性。 更多...
 
template<typename A , typename O >
bool rmm::mr::operator== (stream_allocator_adaptor< A > const &lhs, stream_allocator_adaptor< O > const &rhs)
 比较两个 stream_allocator_adaptor 的相等性。 更多...
 
template<typename A , typename O >
bool rmm::mr::operator!= (stream_allocator_adaptor< A > const &lhs, stream_allocator_adaptor< O > const &rhs)
 比较两个 stream_allocator_adaptor 的不等性。 更多...
 

详细描述

类型定义文档

◆ allocate_callback_t

using rmm::mr::allocate_callback_t = typedef std::function<void*(std::size_t, cuda_stream_view, void*)>

由回调内存资源用于分配的回调函数类型。

回调函数的签名为: `void* allocate_callback_t(std::size_t bytes, cuda_stream_view stream, void* arg);

  • 返回一个指向至少 bytes 大小的分配的指针,该分配可在 stream 上立即使用。流有序行为要求与 device_memory_resource::allocate 完全相同。
  • 此签名与 do_allocate 兼容,但添加了额外的函数参数 argarg 提供给 callback_memory_resource 的构造函数,并将转发给每次回调函数调用。

◆ deallocate_callback_t

using rmm::mr::deallocate_callback_t = typedef std::function<void(void*, std::size_t, cuda_stream_view, void*)>

callback_memory_resource 用于释放的回调函数类型。

回调函数的签名为: `void deallocate_callback_t(void* ptr, std::size_t bytes, cuda_stream_view stream, void* arg);

  • 释放 ptr 指向的内存。bytes 指定分配的大小(字节),且必须等于传递给分配回调函数时的 bytes 值。流有序行为要求与 device_memory_resource::deallocate 完全相同。
  • 此签名与 do_deallocate 兼容,但添加了额外的函数参数 argarg 提供给 callback_memory_resource 的构造函数,并将转发给每次回调函数调用。

函数文档

◆ operator!=() [1/2]

template<typename T , typename U >
bool rmm::mr::operator!= ( polymorphic_allocator< T > const &  lhs,
polymorphic_allocator< U > const &  rhs 
)

比较两个 polymorphic_allocator 的不等性。

如果两个 polymorphic_allocator 的底层内存资源比较不等,则它们不等。

模板参数
T第一个分配器的类型
U第二个分配器的类型
参数
lhs要比较的第一个分配器
rhs要比较的第二个分配器
返回值
如果两个分配器不等则为 true,否则为 false

◆ operator!=() [2/2]

template<typename A , typename O >
bool rmm::mr::operator!= ( stream_allocator_adaptor< A > const &  lhs,
stream_allocator_adaptor< O > const &  rhs 
)

比较两个 stream_allocator_adaptor 的不等性。

如果两个 stream_allocator_adaptor 的底层分配器比较不等,则它们不等。

模板参数
A第一个分配器的类型
O第二个分配器的类型
参数
lhs要比较的第一个分配器
rhs要比较的第二个分配器
返回值
如果两个分配器不等则为 true,否则为 false

◆ operator==() [1/2]

template<typename T , typename U >
bool rmm::mr::operator== ( polymorphic_allocator< T > const &  lhs,
polymorphic_allocator< U > const &  rhs 
)

比较两个 polymorphic_allocator 的相等性。

如果两个 polymorphic_allocator 的底层内存资源比较相等,则它们相等。

模板参数
T第一个分配器的类型
U第二个分配器的类型
参数
lhs要比较的第一个分配器
rhs要比较的第二个分配器
返回值
如果两个分配器相等则为 true,否则为 false

◆ operator==() [2/2]

template<typename A , typename O >
bool rmm::mr::operator== ( stream_allocator_adaptor< A > const &  lhs,
stream_allocator_adaptor< O > const &  rhs 
)

比较两个 stream_allocator_adaptor 的相等性。

如果两个 stream_allocator_adaptor 的底层分配器比较相等,则它们相等。

模板参数
A第一个分配器的类型
O第二个分配器的类型
参数
lhs要比较的第一个分配器
rhs要比较的第二个分配器
返回值
如果两个分配器相等则为 true,否则为 false