Resource that uses Upstream
to allocate memory and logs information about the requested allocation/deallocations.
More...
#include <logging_resource_adaptor.hpp>
Public Member Functions | |
logging_resource_adaptor (Upstream *upstream, std::string const &filename=get_default_filename(), bool auto_flush=false) | |
Construct a new logging resource adaptor using upstream to satisfy allocation requests and logging information about each allocation/free to the file specified by filename . More... | |
logging_resource_adaptor (Upstream *upstream, std::ostream &stream, bool auto_flush=false) | |
Construct a new logging resource adaptor using upstream to satisfy allocation requests and logging information about each allocation/free to the ostream specified by stream . More... | |
logging_resource_adaptor (Upstream *upstream, spdlog::sinks_init_list sinks, bool auto_flush=false) | |
Construct a new logging resource adaptor using upstream to satisfy allocation requests and logging information about each allocation/free to the ostream specified by stream . More... | |
logging_resource_adaptor (logging_resource_adaptor const &)=delete | |
logging_resource_adaptor & | operator= (logging_resource_adaptor const &)=delete |
logging_resource_adaptor (logging_resource_adaptor &&) noexcept=default | |
Default move constructor. | |
logging_resource_adaptor & | operator= (logging_resource_adaptor &&) noexcept=default |
Default move assignment operator. More... | |
Upstream * | get_upstream () const noexcept |
Return 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... | |
void | flush () |
Flush logger contents. | |
std::string | header () const |
Return the CSV header string. 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... | |
Friends | |
template<typename T > | |
logging_resource_adaptor< T > | make_logging_adaptor (T *upstream, std::string const &filename, bool auto_flush) |
Resource that uses Upstream
to allocate memory and logs information about the requested allocation/deallocations.
An instance of this resource can be constructed with an existing, upstream resource in order to satisfy allocation requests and log allocation/deallocation activity.
Upstream | Type of the upstream resource used for allocation/deallocation. |
|
inline |
Construct a new logging resource adaptor using upstream
to satisfy allocation requests and logging information about each allocation/free to the file specified by filename
.
The logfile will be written using CSV formatting.
Clears the contents of filename
if it already exists.
Creating multiple logging_resource_adaptor
s with the same filename
will result in undefined behavior.
<tt>rmm::logic_error</tt> | if upstream == nullptr |
<tt>spdlog::spdlog_ex</tt> | if opening filename failed |
upstream | The resource used for allocating/deallocating device memory |
filename | Name of file to write log info. If not specified, retrieves the file name from the environment variable "RMM_LOG_FILE". |
auto_flush | If true, flushes the log for every (de)allocation. Warning, this will degrade performance. |
|
inline |
Construct a new logging resource adaptor using upstream
to satisfy allocation requests and logging information about each allocation/free to the ostream specified by stream
.
The logfile will be written using CSV formatting.
<tt>rmm::logic_error</tt> | if upstream == nullptr |
upstream | The resource used for allocating/deallocating device memory |
stream | The ostream to write log info. |
auto_flush | If true, flushes the log for every (de)allocation. Warning, this will degrade performance. |
|
inline |
Construct a new logging resource adaptor using upstream
to satisfy allocation requests and logging information about each allocation/free to the ostream specified by stream
.
The logfile will be written using CSV formatting.
<tt>rmm::logic_error</tt> | if upstream == nullptr |
upstream | The resource used for allocating/deallocating device memory |
sinks | A list of logging sinks to which log output will be written. |
auto_flush | If true, flushes the log for every (de)allocation. Warning, this will degrade performance. |
|
inlinenoexcept |
Return pointer to the upstream resource.
|
inline |
Return the CSV header string.
|
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.