Resource that uses Upstream
to allocate memory and tracks statistics on memory allocations.
More...
#include <statistics_resource_adaptor.hpp>
Classes | |
struct | counter |
Utility struct for counting the current, peak, and total value of a number. More... | |
Public Types | |
using | read_lock_t = std::shared_lock< std::shared_timed_mutex > |
Type of lock used to synchronize read access. | |
using | write_lock_t = std::unique_lock< std::shared_timed_mutex > |
Type of lock used to synchronize write access. | |
Public Member Functions | |
statistics_resource_adaptor (Upstream *upstream) | |
Construct a new statistics resource adaptor using upstream to satisfy allocation requests. More... | |
statistics_resource_adaptor (statistics_resource_adaptor const &)=delete | |
statistics_resource_adaptor & | operator= (statistics_resource_adaptor const &)=delete |
statistics_resource_adaptor (statistics_resource_adaptor &&) noexcept=default | |
Default move constructor. | |
statistics_resource_adaptor & | operator= (statistics_resource_adaptor &&) noexcept=default |
Default move assignment operator. More... | |
Upstream * | get_upstream () const noexcept |
Pointer to the upstream resource. More... | |
bool | supports_streams () const noexcept override |
Checks whether the upstream resource supports streams. More... | |
bool | supports_get_mem_info () const noexcept override |
Query whether the resource supports the get_mem_info API. More... | |
counter | get_bytes_counter () const noexcept |
Returns a counter struct for this adaptor containing the current, peak, and total number of allocated bytes for this adaptor since it was created. More... | |
counter | get_allocations_counter () const noexcept |
Returns a counter struct for this adaptor containing the current, peak, and total number of allocation counts for this adaptor since it was created. More... | |
![]() | |
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 (std::size_t bytes, cuda_stream_view stream=cuda_stream_view{}) |
Allocates memory of size at least bytes . More... | |
void | deallocate (void *ptr, std::size_t bytes, cuda_stream_view stream=cuda_stream_view{}) |
Deallocate memory pointed to by p . More... | |
bool | is_equal (device_memory_resource const &other) const noexcept |
Compare this resource to another. More... | |
std::pair< std::size_t, std::size_t > | get_mem_info (cuda_stream_view stream) const |
Queries the amount of free and total memory for the resource. More... | |
Resource that uses Upstream
to allocate memory and tracks statistics on memory allocations.
An instance of this resource can be constructed with an existing, upstream resource in order to satisfy allocation requests, but any existing allocations will be untracked. Tracking statistics stores the current, peak and total memory allocations for both the number of bytes and number of calls to the memory resource. statistics_resource_adaptor
is intended as a debug adaptor and shouldn't be used in performance-sensitive code.
Upstream | Type of the upstream resource used for allocation/deallocation. |
|
inline |
Construct a new statistics resource adaptor using upstream
to satisfy allocation requests.
<tt>rmm::logic_error</tt> | if upstream == nullptr |
upstream | The resource used for allocating/deallocating device memory |
|
inlinenoexcept |
Returns a counter
struct for this adaptor containing the current, peak, and total number of allocation counts for this adaptor since it was created.
|
inlinenoexcept |
Returns a counter
struct for this adaptor containing the current, peak, and total number of allocated bytes for this adaptor since it was created.
|
inlinenoexcept |
Pointer to the upstream resource.
|
defaultnoexcept |
Default move assignment operator.
|
inlineoverridevirtualnoexcept |
Query whether the resource supports the get_mem_info API.
Implements rmm::mr::device_memory_resource.
|
inlineoverridevirtualnoexcept |
Checks whether the upstream resource supports streams.
Implements rmm::mr::device_memory_resource.