timemory 3.3.0
Modular C++ Toolkit for Performance Analysis and Logging. Profiling API and Tools for C, C++, CUDA, Fortran, and Python. The C++ template API is essentially a framework to creating tools: it is designed to provide a unifying interface for recording various performance measurements alongside data logging and interfaces to other tools.
api.hpp File Reference
#include "timemory/api/macros.hpp"
#include "timemory/defines.h"
#include "timemory/macros/os.hpp"
#include "timemory/mpl/concepts.hpp"
#include <type_traits>
+ Include dependency graph for api.hpp:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  tim
 
namespace  tim::cereal
 

Macros

#define TIMEMORY_DEFAULT_API   ::tim::project::timemory
 
#define TIMEMORY_API   TIMEMORY_DEFAULT_API
 
#define TIMEMORY_DEFAULT_AVAILABLE   true_type
 
#define TIMEMORY_DEFAULT_STATISTICS_TYPE   false_type
 
#define TIMEMORY_DEFAULT_PLOTTING   false
 
#define TIMEMORY_DEFAULT_ENABLED   true
 
#define TIMEMORY_PYTHON_PLOTTER   "python"
 
#define TIMEMORY_DEFAULT_INPUT_ARCHIVE   cereal::JSONInputArchive
 
#define TIMEMORY_DEFAULT_OUTPUT_ARCHIVE   ::tim::type_list<>
 
#define TIMEMORY_INPUT_ARCHIVE   TIMEMORY_DEFAULT_INPUT_ARCHIVE
 
#define TIMEMORY_OUTPUT_ARCHIVE   TIMEMORY_DEFAULT_OUTPUT_ARCHIVE
 

Functions

 TIMEMORY_DEFINE_NS_API (project, none) TIMEMORY_DEFINE_NS_API(project
 
timemory TIMEMORY_DEFINE_NS_API (project, python) TIMEMORY_DEFINE_NS_API(project
 
timemory kokkosp TIMEMORY_DECLARE_NS_API (device, cpu) TIMEMORY_DECLARE_NS_API(device
 
timemory kokkosp gpu TIMEMORY_DEFINE_NS_API (category, debugger) TIMEMORY_DEFINE_NS_API(category
 
timemory kokkosp gpu decorator TIMEMORY_DEFINE_NS_API (category, external) TIMEMORY_DEFINE_NS_API(category
 
timemory kokkosp gpu decorator io TIMEMORY_DEFINE_NS_API (category, logger) TIMEMORY_DEFINE_NS_API(category
 
timemory kokkosp gpu decorator io hardware_counter TIMEMORY_DEFINE_NS_API (category, memory) TIMEMORY_DEFINE_NS_API(category
 
timemory kokkosp gpu decorator io hardware_counter resource_usage TIMEMORY_DEFINE_NS_API (category, timing) TIMEMORY_DEFINE_NS_API(category
 
timemory kokkosp gpu decorator io hardware_counter resource_usage visualization TIMEMORY_DEFINE_NS_API (tpls, allinea) TIMEMORY_DEFINE_NS_API(tpls
 
timemory kokkosp gpu decorator io hardware_counter resource_usage visualization caliper TIMEMORY_DEFINE_NS_API (tpls, craypat) TIMEMORY_DEFINE_NS_API(tpls
 
timemory kokkosp gpu decorator io hardware_counter resource_usage visualization caliper gotcha TIMEMORY_DEFINE_NS_API (tpls, gperftools) TIMEMORY_DEFINE_NS_API(tpls
 
timemory kokkosp gpu decorator io hardware_counter resource_usage visualization caliper gotcha intel TIMEMORY_DEFINE_NS_API (tpls, likwid) TIMEMORY_DEFINE_NS_API(tpls
 
timemory kokkosp gpu decorator io hardware_counter resource_usage visualization caliper gotcha intel nvidia TIMEMORY_DEFINE_NS_API (tpls, openmp) TIMEMORY_DEFINE_NS_API(tpls
 
timemory kokkosp gpu decorator io hardware_counter resource_usage visualization caliper gotcha intel nvidia rocm TIMEMORY_DEFINE_NS_API (tpls, papi) TIMEMORY_DEFINE_NS_API(tpls
 
timemory kokkosp gpu decorator io hardware_counter resource_usage visualization caliper gotcha intel nvidia rocm tau TIMEMORY_DEFINE_NS_API (os, agnostic) TIMEMORY_DEFINE_NS_API(os
 
timemory kokkosp gpu decorator io hardware_counter resource_usage visualization caliper gotcha intel nvidia rocm tau supports_unix TIMEMORY_DEFINE_NS_API (os, supports_linux) TIMEMORY_DEFINE_NS_API(os
 
timemory kokkosp gpu decorator io hardware_counter resource_usage visualization caliper gotcha intel nvidia rocm tau supports_unix supports_darwin TIMEMORY_DEFINE_NS_API (os, supports_windows) TIMEMORY_DEFINE_CONCRETE_CONCEPT(is_runtime_configurable
 
timemory kokkosp gpu decorator io hardware_counter resource_usage visualization caliper gotcha intel nvidia rocm tau supports_unix supports_darwin true_type TIMEMORY_DEFINE_CONCRETE_CONCEPT (is_runtime_configurable, project::python, true_type) TIMEMORY_DEFINE_CONCRETE_CONCEPT(is_runtime_configurable
 
timemory kokkosp gpu decorator io hardware_counter resource_usage visualization caliper gotcha intel nvidia rocm tau supports_unix supports_darwin true_type true_type TIMEMORY_DEFINE_CONCRETE_CONCEPT (is_runtime_configurable, category::decorator, true_type) TIMEMORY_DEFINE_CONCRETE_CONCEPT(is_runtime_configurable
 
timemory kokkosp gpu decorator io hardware_counter resource_usage visualization caliper gotcha intel nvidia rocm tau supports_unix supports_darwin true_type true_type true_type TIMEMORY_DEFINE_CONCRETE_CONCEPT (is_runtime_configurable, category::io, true_type) TIMEMORY_DEFINE_CONCRETE_CONCEPT(is_runtime_configurable
 
timemory kokkosp gpu decorator io hardware_counter resource_usage visualization caliper gotcha intel nvidia rocm tau supports_unix supports_darwin true_type true_type true_type true_type TIMEMORY_DEFINE_CONCRETE_CONCEPT (is_runtime_configurable, category::hardware_counter, true_type) TIMEMORY_DEFINE_CONCRETE_CONCEPT(is_runtime_configurable
 
timemory kokkosp gpu decorator io hardware_counter resource_usage visualization caliper gotcha intel nvidia rocm tau supports_unix supports_darwin true_type true_type true_type true_type true_type TIMEMORY_DEFINE_CONCRETE_CONCEPT (is_runtime_configurable, category::timing, true_type) TIMEMORY_DEFINE_CONCRETE_CONCEPT(is_runtime_configurable
 
timemory kokkosp gpu decorator io hardware_counter resource_usage visualization caliper gotcha intel nvidia rocm tau supports_unix supports_darwin true_type true_type true_type true_type true_type true_type TIMEMORY_DEFINE_CONCRETE_CONCEPT (is_runtime_configurable, tpls::allinea, true_type) TIMEMORY_DEFINE_CONCRETE_CONCEPT(is_runtime_configurable
 
timemory kokkosp gpu decorator io hardware_counter resource_usage visualization caliper gotcha intel nvidia rocm tau supports_unix supports_darwin true_type true_type true_type true_type true_type true_type true_type TIMEMORY_DEFINE_CONCRETE_CONCEPT (is_runtime_configurable, tpls::craypat, true_type) TIMEMORY_DEFINE_CONCRETE_CONCEPT(is_runtime_configurable
 
timemory kokkosp gpu decorator io hardware_counter resource_usage visualization caliper gotcha intel nvidia rocm tau supports_unix supports_darwin true_type true_type true_type true_type true_type true_type true_type true_type TIMEMORY_DEFINE_CONCRETE_CONCEPT (is_runtime_configurable, tpls::gperftools, true_type) TIMEMORY_DEFINE_CONCRETE_CONCEPT(is_runtime_configurable
 
timemory kokkosp gpu decorator io hardware_counter resource_usage visualization caliper gotcha intel nvidia rocm tau supports_unix supports_darwin true_type true_type true_type true_type true_type true_type true_type true_type true_type TIMEMORY_DEFINE_CONCRETE_CONCEPT (is_runtime_configurable, tpls::likwid, true_type) TIMEMORY_DEFINE_CONCRETE_CONCEPT(is_runtime_configurable
 
timemory kokkosp gpu decorator io hardware_counter resource_usage visualization caliper gotcha intel nvidia rocm tau supports_unix supports_darwin true_type true_type true_type true_type true_type true_type true_type true_type true_type true_type TIMEMORY_DEFINE_CONCRETE_CONCEPT (is_runtime_configurable, tpls::openmp, true_type) TIMEMORY_DEFINE_CONCRETE_CONCEPT(is_runtime_configurable
 
timemory kokkosp gpu decorator io hardware_counter resource_usage visualization caliper gotcha intel nvidia rocm tau supports_unix supports_darwin true_type true_type true_type true_type true_type true_type true_type true_type true_type true_type true_type TIMEMORY_DEFINE_CONCRETE_CONCEPT (is_runtime_configurable, tpls::tau, true_type) namespace tim
 

Macro Definition Documentation

◆ TIMEMORY_API

#define TIMEMORY_API   TIMEMORY_DEFAULT_API

Definition at line 175 of file api.hpp.

◆ TIMEMORY_DEFAULT_API

#define TIMEMORY_DEFAULT_API   ::tim::project::timemory

Definition at line 171 of file api.hpp.

◆ TIMEMORY_DEFAULT_AVAILABLE

#define TIMEMORY_DEFAULT_AVAILABLE   true_type

Definition at line 184 of file api.hpp.

◆ TIMEMORY_DEFAULT_ENABLED

#define TIMEMORY_DEFAULT_ENABLED   true

Definition at line 201 of file api.hpp.

◆ TIMEMORY_DEFAULT_INPUT_ARCHIVE

#define TIMEMORY_DEFAULT_INPUT_ARCHIVE   cereal::JSONInputArchive

Definition at line 209 of file api.hpp.

◆ TIMEMORY_DEFAULT_OUTPUT_ARCHIVE

#define TIMEMORY_DEFAULT_OUTPUT_ARCHIVE   ::tim::type_list<>

Definition at line 213 of file api.hpp.

◆ TIMEMORY_DEFAULT_PLOTTING

#define TIMEMORY_DEFAULT_PLOTTING   false

Definition at line 197 of file api.hpp.

◆ TIMEMORY_DEFAULT_STATISTICS_TYPE

#define TIMEMORY_DEFAULT_STATISTICS_TYPE   false_type

Definition at line 192 of file api.hpp.

◆ TIMEMORY_INPUT_ARCHIVE

#define TIMEMORY_INPUT_ARCHIVE   TIMEMORY_DEFAULT_INPUT_ARCHIVE

Definition at line 217 of file api.hpp.

◆ TIMEMORY_OUTPUT_ARCHIVE

#define TIMEMORY_OUTPUT_ARCHIVE   TIMEMORY_DEFAULT_OUTPUT_ARCHIVE

Definition at line 221 of file api.hpp.

◆ TIMEMORY_PYTHON_PLOTTER

#define TIMEMORY_PYTHON_PLOTTER   "python"

Definition at line 205 of file api.hpp.

Function Documentation

◆ TIMEMORY_DECLARE_NS_API()

timemory kokkosp TIMEMORY_DECLARE_NS_API ( device  ,
cpu   
)

◆ TIMEMORY_DEFINE_CONCRETE_CONCEPT() [1/11]

timemory kokkosp gpu decorator io hardware_counter resource_usage visualization caliper gotcha intel nvidia rocm tau supports_unix supports_darwin true_type true_type TIMEMORY_DEFINE_CONCRETE_CONCEPT ( is_runtime_configurable  ,
category::decorator  ,
true_type   
)

◆ TIMEMORY_DEFINE_CONCRETE_CONCEPT() [2/11]

timemory kokkosp gpu decorator io hardware_counter resource_usage visualization caliper gotcha intel nvidia rocm tau supports_unix supports_darwin true_type true_type true_type true_type TIMEMORY_DEFINE_CONCRETE_CONCEPT ( is_runtime_configurable  ,
category::hardware_counter  ,
true_type   
)

◆ TIMEMORY_DEFINE_CONCRETE_CONCEPT() [3/11]

timemory kokkosp gpu decorator io hardware_counter resource_usage visualization caliper gotcha intel nvidia rocm tau supports_unix supports_darwin true_type true_type true_type TIMEMORY_DEFINE_CONCRETE_CONCEPT ( is_runtime_configurable  ,
category::io  ,
true_type   
)

◆ TIMEMORY_DEFINE_CONCRETE_CONCEPT() [4/11]

timemory kokkosp gpu decorator io hardware_counter resource_usage visualization caliper gotcha intel nvidia rocm tau supports_unix supports_darwin true_type true_type true_type true_type true_type TIMEMORY_DEFINE_CONCRETE_CONCEPT ( is_runtime_configurable  ,
category::timing  ,
true_type   
)

◆ TIMEMORY_DEFINE_CONCRETE_CONCEPT() [5/11]

timemory kokkosp gpu decorator io hardware_counter resource_usage visualization caliper gotcha intel nvidia rocm tau supports_unix supports_darwin true_type TIMEMORY_DEFINE_CONCRETE_CONCEPT ( is_runtime_configurable  ,
project::python  ,
true_type   
)

◆ TIMEMORY_DEFINE_CONCRETE_CONCEPT() [6/11]

timemory kokkosp gpu decorator io hardware_counter resource_usage visualization caliper gotcha intel nvidia rocm tau supports_unix supports_darwin true_type true_type true_type true_type true_type true_type TIMEMORY_DEFINE_CONCRETE_CONCEPT ( is_runtime_configurable  ,
tpls::allinea  ,
true_type   
)

◆ TIMEMORY_DEFINE_CONCRETE_CONCEPT() [7/11]

timemory kokkosp gpu decorator io hardware_counter resource_usage visualization caliper gotcha intel nvidia rocm tau supports_unix supports_darwin true_type true_type true_type true_type true_type true_type true_type TIMEMORY_DEFINE_CONCRETE_CONCEPT ( is_runtime_configurable  ,
tpls::craypat  ,
true_type   
)

◆ TIMEMORY_DEFINE_CONCRETE_CONCEPT() [8/11]

timemory kokkosp gpu decorator io hardware_counter resource_usage visualization caliper gotcha intel nvidia rocm tau supports_unix supports_darwin true_type true_type true_type true_type true_type true_type true_type true_type TIMEMORY_DEFINE_CONCRETE_CONCEPT ( is_runtime_configurable  ,
tpls::gperftools  ,
true_type   
)

◆ TIMEMORY_DEFINE_CONCRETE_CONCEPT() [9/11]

timemory kokkosp gpu decorator io hardware_counter resource_usage visualization caliper gotcha intel nvidia rocm tau supports_unix supports_darwin true_type true_type true_type true_type true_type true_type true_type true_type true_type TIMEMORY_DEFINE_CONCRETE_CONCEPT ( is_runtime_configurable  ,
tpls::likwid  ,
true_type   
)

◆ TIMEMORY_DEFINE_CONCRETE_CONCEPT() [10/11]

timemory kokkosp gpu decorator io hardware_counter resource_usage visualization caliper gotcha intel nvidia rocm tau supports_unix supports_darwin true_type true_type true_type true_type true_type true_type true_type true_type true_type true_type TIMEMORY_DEFINE_CONCRETE_CONCEPT ( is_runtime_configurable  ,
tpls::openmp  ,
true_type   
)

◆ TIMEMORY_DEFINE_CONCRETE_CONCEPT() [11/11]

timemory kokkosp gpu decorator io hardware_counter resource_usage visualization caliper gotcha intel nvidia rocm tau supports_unix supports_darwin true_type true_type true_type true_type true_type true_type true_type true_type true_type true_type true_type TIMEMORY_DEFINE_CONCRETE_CONCEPT ( is_runtime_configurable  ,
tpls::tau  ,
true_type   
)

Definition at line 111 of file api.hpp.

114{
115namespace api
116{
117using native_tag = project::timemory;
118}
119//
120namespace trait
121{
122//
123#if !defined(TIMEMORY_UNIX)
124template <>
125struct is_available<os::supports_unix> : false_type
126{};
127#endif
128//
129#if !defined(TIMEMORY_LINUX)
130template <>
131struct is_available<os::supports_linux> : false_type
132{};
133#endif
134//
135#if !defined(TIMEMORY_MACOS)
136template <>
137struct is_available<os::supports_darwin> : false_type
138{};
139#endif
140//
141#if !defined(TIMEMORY_WINDOWS)
142template <>
143struct is_available<os::supports_windows> : false_type
144{};
145#endif
146//
147} // namespace trait
148//
149} // namespace tim
const std::string std::ostream * os

◆ TIMEMORY_DEFINE_NS_API() [1/16]

timemory kokkosp gpu TIMEMORY_DEFINE_NS_API ( category  ,
debugger   
)

◆ TIMEMORY_DEFINE_NS_API() [2/16]

timemory kokkosp gpu decorator TIMEMORY_DEFINE_NS_API ( category  ,
external   
)

◆ TIMEMORY_DEFINE_NS_API() [3/16]

timemory kokkosp gpu decorator io TIMEMORY_DEFINE_NS_API ( category  ,
logger   
)

◆ TIMEMORY_DEFINE_NS_API() [4/16]

timemory kokkosp gpu decorator io hardware_counter TIMEMORY_DEFINE_NS_API ( category  ,
memory   
)

◆ TIMEMORY_DEFINE_NS_API() [5/16]

timemory kokkosp gpu decorator io hardware_counter resource_usage TIMEMORY_DEFINE_NS_API ( category  ,
timing   
)

◆ TIMEMORY_DEFINE_NS_API() [6/16]

timemory kokkosp gpu decorator io hardware_counter resource_usage visualization caliper gotcha intel nvidia rocm tau TIMEMORY_DEFINE_NS_API ( os  ,
agnostic   
)

◆ TIMEMORY_DEFINE_NS_API() [7/16]

timemory kokkosp gpu decorator io hardware_counter resource_usage visualization caliper gotcha intel nvidia rocm tau supports_unix TIMEMORY_DEFINE_NS_API ( os  ,
supports_linux   
)

◆ TIMEMORY_DEFINE_NS_API() [8/16]

timemory kokkosp gpu decorator io hardware_counter resource_usage visualization caliper gotcha intel nvidia rocm tau supports_unix supports_darwin TIMEMORY_DEFINE_NS_API ( os  ,
supports_windows   
)

◆ TIMEMORY_DEFINE_NS_API() [9/16]

TIMEMORY_DEFINE_NS_API ( project  ,
none   
)

◆ TIMEMORY_DEFINE_NS_API() [10/16]

timemory TIMEMORY_DEFINE_NS_API ( project  ,
python   
)

◆ TIMEMORY_DEFINE_NS_API() [11/16]

timemory kokkosp gpu decorator io hardware_counter resource_usage visualization TIMEMORY_DEFINE_NS_API ( tpls  ,
allinea   
)

◆ TIMEMORY_DEFINE_NS_API() [12/16]

timemory kokkosp gpu decorator io hardware_counter resource_usage visualization caliper TIMEMORY_DEFINE_NS_API ( tpls  ,
craypat   
)

◆ TIMEMORY_DEFINE_NS_API() [13/16]

timemory kokkosp gpu decorator io hardware_counter resource_usage visualization caliper gotcha TIMEMORY_DEFINE_NS_API ( tpls  ,
gperftools   
)

◆ TIMEMORY_DEFINE_NS_API() [14/16]

timemory kokkosp gpu decorator io hardware_counter resource_usage visualization caliper gotcha intel TIMEMORY_DEFINE_NS_API ( tpls  ,
likwid   
)

◆ TIMEMORY_DEFINE_NS_API() [15/16]

timemory kokkosp gpu decorator io hardware_counter resource_usage visualization caliper gotcha intel nvidia TIMEMORY_DEFINE_NS_API ( tpls  ,
openmp   
)

◆ TIMEMORY_DEFINE_NS_API() [16/16]

timemory kokkosp gpu decorator io hardware_counter resource_usage visualization caliper gotcha intel nvidia rocm TIMEMORY_DEFINE_NS_API ( tpls  ,
papi   
)