一种设备内存资源,当分配抛出指定的异常类型时会调用回调函数。 更多...
#include <failure_callback_resource_adaptor.hpp>
公共类型 | |
using | exception_type = ExceptionType |
此对象捕获/抛出的异常类型。 | |
公共成员函数 | |
failure_callback_resource_adaptor (device_async_resource_ref upstream, failure_callback_t callback, void *callback_arg) | |
使用 upstream 构造新的 failure_callback_resource_adaptor 以满足分配请求。 更多... | |
failure_callback_resource_adaptor (Upstream *upstream, failure_callback_t callback, void *callback_arg) | |
使用 upstream 构造新的 failure_callback_resource_adaptor 以满足分配请求。 更多... | |
failure_callback_resource_adaptor (failure_callback_resource_adaptor const &)=delete | |
failure_callback_resource_adaptor & | operator= (failure_callback_resource_adaptor const &)=delete |
failure_callback_resource_adaptor (failure_callback_resource_adaptor &&) noexcept=default | |
默认移动构造函数。 | |
failure_callback_resource_adaptor & | operator= (failure_callback_resource_adaptor &&) noexcept=default |
默认移动赋值运算符。 更多... | |
rmm::device_async_resource_ref | get_upstream_resource () const noexcept |
指向 upstream 资源的 rmm::device_async_resource_ref。 更多... | |
![]() | |
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 的比较运算符。 更多... | |
一种设备内存资源,当分配抛出指定的异常类型时会调用回调函数。
此资源实例必须使用现有的 upstream 资源构造,以满足分配请求。
回调函数接受分配大小和回调参数,并返回一个 bool 值,表示是否重试分配 (true) 或重新抛出捕获的异常 (false)。
在实现分配重试的回调函数时,必须小心以避免无限循环。以下示例确保只重试分配一次
Upstream | 用于分配/释放的 upstream 资源的类型。 |
ExceptionType | 此适配器应响应的异常类型 |
|
inline |
使用 upstream
构造新的 failure_callback_resource_adaptor
以满足分配请求。
upstream | 用于分配/释放设备内存的资源 |
callback | 回调函数 |
callback_arg | 传递给 callback 的额外参数 |
|
inline |
使用 upstream
构造新的 failure_callback_resource_adaptor
以满足分配请求。
rmm::logic_error | 如果 upstream == nullptr |
upstream | 用于分配/释放设备内存的资源 |
callback | 回调函数 |
callback_arg | 传递给 callback 的额外参数 |
|
inlinenoexcept |
指向 upstream 资源的 rmm::device_async_resource_ref
|
defaultnoexcept |
默认移动赋值运算符。