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, std::initializer_list< rapids_logger::sink_ptr > 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 (device_async_resource_ref 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 (device_async_resource_ref 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 (device_async_resource_ref upstream, std::initializer_list< rapids_logger::sink_ptr > 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... | |
rmm::device_async_resource_ref | get_upstream_resource () const noexcept |
rmm::device_async_resource_ref to the upstream resource 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... | |
void * | allocate (std::size_t bytes, std::size_t alignment) |
Allocates memory of size at least bytes . More... | |
void | deallocate (void *ptr, std::size_t bytes, std::size_t alignment) |
Deallocate memory pointed to by p . More... | |
void * | allocate_async (std::size_t bytes, std::size_t alignment, cuda_stream_view stream) |
Allocates memory of size at least bytes . More... | |
void * | allocate_async (std::size_t bytes, cuda_stream_view stream) |
Allocates memory of size at least bytes . More... | |
void | deallocate_async (void *ptr, std::size_t bytes, std::size_t alignment, cuda_stream_view stream) |
Deallocate memory pointed to by p . More... | |
void | deallocate_async (void *ptr, std::size_t bytes, cuda_stream_view stream) |
Deallocate memory pointed to by p . 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... | |
Static Public Member Functions | |
static std::string | get_default_filename () |
Return the value of the environment variable RMM_LOG_FILE. More... | |
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.
rmm::logic_error | if upstream == nullptr |
spdlog::spdlog_ex | 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.
rmm::logic_error | 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.
rmm::logic_error | 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. |
|
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.
spdlog::spdlog_ex | if opening filename failed |
upstream | The resource_ref 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.
upstream | The resource_ref 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.
upstream | The resource_ref 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. |
|
inlinestatic |
Return the value of the environment variable RMM_LOG_FILE.
rmm::logic_error | if RMM_LOG_FILE is not set. |
std::string
.
|
inlinenoexcept |
rmm::device_async_resource_ref to the upstream resource
|
inline |
Return the CSV header string.
|
defaultnoexcept |
Default move assignment operator.