Resource that adapts Upstream memory resource adaptor to be thread safe.
More...
#include <thread_safe_resource_adaptor.hpp>


Public Types | |
| using | lock_t = std::lock_guard< std::mutex > |
| Type of lock used to synchronize access. | |
Public Member Functions | |
| thread_safe_resource_adaptor (device_async_resource_ref upstream) | |
Construct a new thread safe resource adaptor using upstream to satisfy allocation requests. More... | |
| thread_safe_resource_adaptor (Upstream *upstream) | |
Construct a new thread safe resource adaptor using upstream to satisfy allocation requests. More... | |
| thread_safe_resource_adaptor (thread_safe_resource_adaptor const &)=delete | |
| thread_safe_resource_adaptor (thread_safe_resource_adaptor &&)=delete | |
| thread_safe_resource_adaptor & | operator= (thread_safe_resource_adaptor const &)=delete |
| thread_safe_resource_adaptor & | operator= (thread_safe_resource_adaptor &&)=delete |
| rmm::device_async_resource_ref | get_upstream_resource () const noexcept |
| rmm::device_async_resource_ref to the upstream resource 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_sync (std::size_t bytes, std::size_t alignment=rmm::CUDA_ALLOCATION_ALIGNMENT) |
Allocates memory of size at least bytes. More... | |
| void | deallocate_sync (void *ptr, std::size_t bytes, [[maybe_unused]] std::size_t alignment=rmm::CUDA_ALLOCATION_ALIGNMENT) noexcept |
Deallocate memory pointed to by p. More... | |
| void * | allocate (cuda_stream_view stream, std::size_t bytes, std::size_t alignment=rmm::CUDA_ALLOCATION_ALIGNMENT) |
Allocates memory of size at least bytes on the specified stream. More... | |
| void | deallocate (cuda_stream_view stream, void *ptr, std::size_t bytes, [[maybe_unused]] std::size_t alignment=rmm::CUDA_ALLOCATION_ALIGNMENT) noexcept |
Deallocate memory pointed to by ptr on the specified stream. More... | |
| bool | is_equal (device_memory_resource const &other) const noexcept |
| Compare this resource to another. 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... | |
Resource that adapts Upstream memory resource adaptor to be thread safe.
An instance of this resource can be constructured with an existing, upstream resource in order to satisfy allocation requests. This adaptor wraps allocations and deallocations from Upstream in a mutex lock.
| Upstream | Type of the upstream resource used for allocation/deallocation. |
|
inline |
Construct a new thread safe resource adaptor using upstream to satisfy allocation requests.
All allocations and frees are protected by a mutex lock
| upstream | The resource used for allocating/deallocating device memory. |
|
inline |
Construct a new thread safe resource adaptor using upstream to satisfy allocation requests.
All allocations and frees are protected by a mutex lock
| rmm::logic_error | if upstream == nullptr |
| upstream | The resource used for allocating/deallocating device memory. |
|
inlinenoexcept |
rmm::device_async_resource_ref to the upstream resource