|
cuda-api-wrappers
Thin C++-flavored wrappers for the CUDA Runtime API
|
wrappers for the CUDA profiler API functions, and convenience RAII classes for profiler-output-marked time range and points. More...
#include "../api/types.hpp"#include "../api/error.hpp"#include "../api/current_context.hpp"#include "../api/stream.hpp"#include "../api/event.hpp"#include "../api/device.hpp"#include "../api/multi_wrapper_impls/context.hpp"#include <cudaProfiler.h>#include <nvToolsExt.h>#include <nvToolsExtCuda.h>#include <mutex>#include <cstdint>#include <string>#include <thread>

Go to the source code of this file.
Classes | |
| struct | cuda::profiling::color_t |
| An RGB colorspace color value, with potential transparency, which may be used to color elements in timelines or other graphical displays of profiling information. More... | |
| class | cuda::profiling::scoped_range_marker |
| A RAII/CADRe class whose scope of existence is reflected as a range in the profiler. More... | |
| class | cuda::profiling::scope |
| A class to instantiate in the part of your application which does any work you intend to use the CUDA profiler to profile. More... | |
Namespaces | |
| cuda | |
| Definitions and functionality wrapping CUDA APIs. | |
| cuda::profiling | |
| Interaction with NVIDIA's profiler, particularly tagging, marking and indications of entities it will pick up and register/display. | |
| cuda::profiling::range | |
| definitions related to profiled ranges and the range_t class | |
| cuda::profiling::mark | |
| definitions related to marking individual time points in the profiler timeline | |
Macros | |
| #define | CUDA_API_WRAPPERS_PROFILING_HPP_ |
| #define | profile_this_scope() ::cuda::profiling::scope cuda_profiling_scope_{}; |
Typedefs | |
| using | cuda::profiling::range::handle_t = nvtxRangeId_t |
| The raw handle of a CUDA profiling range. | |
Enumerations | |
| enum | cuda::profiling::range::type_t { unspecified, kernel, pci_express_transfer } |
| Types of profiled ranges we recognize. More... | |
Functions | |
| template<typename CharT > | |
| void | cuda::profiling::mark::point (const CharT *description, color_t color=color_t::Black()) |
| Mark a single point on the profiler timeline, giving it also a color and some descriptive text. | |
| template<typename CharT > | |
| range::handle_t | cuda::profiling::mark::range_start (const CharT *description, range::type_t type=range::type_t::unspecified, color_t color=color_t::LightRed()) |
| Mark the beginning of a range on the profiler timeline, giving it also a color and some descriptive text. More... | |
| void | cuda::profiling::mark::range_end (range::handle_t range_handle) |
| Mark the end of a range, using the handle obtained when previously marking its beginning. More... | |
| void | cuda::profiling::start () |
| Start CUDA profiling for the current process. | |
| void | cuda::profiling::stop () |
| Stop CUDA profiling for the current process. | |
| template<typename CharT > | |
| void | cuda::profiling::name (const ::std::thread &host_thread, const CharT *name) |
| Have the profiler refer to a given host thread, using a specified string identifier (rather than its numeric ID). More... | |
| template<typename CharT > | |
| void | cuda::profiling::name_this_thread (const CharT *name) |
| Have the profiler refer to the current thread using a specified string identifier (rather than its numeric ID). More... | |
| template<typename CharT > | |
| void | cuda::profiling::name (const stream_t &stream, const CharT *name) |
| Have the profile assign a name to a certain stream. | |
| template<typename CharT > | |
| void | cuda::profiling::name (const event_t &event, const CharT *name) |
| Have the profile assign a name to a certain event. | |
| template<typename CharT > | |
| void | cuda::profiling::name (const device_t &device, const CharT *name) |
| Have the profile assign a name to a certain CUDA device. | |
wrappers for the CUDA profiler API functions, and convenience RAII classes for profiler-output-marked time range and points.