Resource that uses an upstream resource to allocate memory and logs information about the requested allocation/deallocations. More...
#include <logging_resource_adaptor.hpp>


Public Member Functions | |
| logging_resource_adaptor (cuda::mr::any_resource< cuda::mr::device_accessible > 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 (cuda::mr::any_resource< cuda::mr::device_accessible > 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 (cuda::mr::any_resource< cuda::mr::device_accessible > 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 sinks specified. 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... | |
Static Public Member Functions | |
| static std::string | get_default_filename () |
| Return the value of the environment variable RMM_LOG_FILE. More... | |
Friends | |
| void | get_property (logging_resource_adaptor const &, cuda::mr::device_accessible) noexcept |
Enables the cuda::mr::device_accessible property. More... | |
Resource that uses an upstream resource 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.
This class is copyable and shares ownership of its internal state, allowing multiple instances to safely reference the same underlying resource and logger.
| rmm::mr::logging_resource_adaptor::logging_resource_adaptor | ( | cuda::mr::any_resource< cuda::mr::device_accessible > | 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.
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. |
| rmm::mr::logging_resource_adaptor::logging_resource_adaptor | ( | cuda::mr::any_resource< cuda::mr::device_accessible > | 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.
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. |
| rmm::mr::logging_resource_adaptor::logging_resource_adaptor | ( | cuda::mr::any_resource< cuda::mr::device_accessible > | 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 sinks specified.
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. |
|
static |
Return the value of the environment variable RMM_LOG_FILE.
| rmm::logic_error | if RMM_LOG_FILE is not set. |
std::string.
|
noexcept |
rmm::device_async_resource_ref to the upstream resource
| std::string rmm::mr::logging_resource_adaptor::header | ( | ) | const |
Return the CSV header string.
|
friend |
Enables the cuda::mr::device_accessible property.
This property declares that a logging_resource_adaptor provides device accessible memory