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... | |
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... | |
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_adaptors 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_adaptors 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.