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.
macros.hpp File Reference
+ Include dependency graph for macros.hpp:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define TIMEMORY_ESC(...)   __VA_ARGS__
 
#define TIMEMORY_STRINGIZE(X)   TIMEMORY_STRINGIZE2(X)
 
#define TIMEMORY_STRINGIZE2(X)   # X
 
#define TIMEMORY_STATIC_ACCESSOR(RETURN_TYPE, FUNC_NAME, ...)
 Simple way to define a static variable which avoids the static initialization fiasco. More...
 
#define TIMEMORY_STATIC_THREAD_LOCAL_ACCESSOR(RETURN_TYPE, FUNC_NAME, ...)
 Simple way to define a static thread-local variable which avoids the static initialization fiasco. More...
 
#define TIMEMORY_FORWARD_DECLARE_COMPONENT(NAME)
 use this macro for forward declarations. Using TIMEMORY_DECLARE_COMPONENT on a pre-existing type will fail because of is_component specialization More...
 
#define TIMEMORY_DEFINE_CONCRETE_TRAIT(TRAIT, COMPONENT, VALUE)
 
#define TIMEMORY_DEFINE_TEMPLATE_TRAIT(TRAIT, COMPONENT, VALUE, TYPE)
 
#define TIMEMORY_DEFINE_VARIADIC_TRAIT(TRAIT, COMPONENT, VALUE, TYPE)
 
#define TIMEMORY_TRAIT_TYPE(TRAIT, COMPONENT, ...)
 
#define TIMEMORY_TEMPLATE_TRAIT_TYPE(TRAIT, COMPONENT, TEMPLATE_PARAM, TEMPLATE_ARG, ...)
 
#define TIMEMORY_VARIADIC_TRAIT_TYPE(TRAIT, COMPONENT, TEMPLATE_PARAM, TEMPLATE_ARG, ...)
 
#define TIMEMORY_STATISTICS_TYPE(COMPONENT, TYPE)    TIMEMORY_TRAIT_TYPE(statistics, TIMEMORY_ESC(COMPONENT), TIMEMORY_ESC(TYPE))
 
#define TIMEMORY_TEMPLATE_STATISTICS_TYPE(COMPONENT, TYPE, TEMPLATE_TYPE)
 
#define TIMEMORY_VARIADIC_STATISTICS_TYPE(COMPONENT, TYPE, TEMPLATE_TYPE)
 
#define TIMEMORY_C_GOTCHA(...)
 
#define TIMEMORY_C_GOTCHA_TOOL(...)
 
#define TIMEMORY_CXX_GOTCHA(...)
 
#define TIMEMORY_CXX_GOTCHA_TOOL(...)
 
#define TIMEMORY_CXX_GOTCHA_MEMFUN(...)
 
#define TIMEMORY_DERIVED_GOTCHA(...)
 
#define TIMEMORY_CXX_MEMFUN_GOTCHA(...)   TIMEMORY_CXX_GOTCHA_MEMFUN(__VA_ARGS__)
 
#define TIMEMORY_CUDA_DRIVER_API_CALL(...)
 
#define TIMEMORY_CUPTI_CALL(...)
 
#define TIMEMORY_CUPTI_BUFFER_SIZE   (32 * 1024)
 
#define TIMEMORY_CUPTI_ALIGN_SIZE   (8)
 
#define TIMEMORY_CUPTI_ALIGN_BUFFER(buffer, align)
 
#define TIMEMORY_CUPTI_PROFILER_NAME_SHORT   128
 
#define TIMEMORY_CUPTI_PROFILER_NAME_LONG   512
 
#define TIMEMORY_CUDA_RUNTIME_API_CALL(...)
 
#define TIMEMORY_CUDA_RUNTIME_API_CALL_THROW(...)
 
#define TIMEMORY_CUDA_RUNTIME_CHECK_ERROR(...)
 
#define TIMEMORY_NVML_RUNTIME_CHECK_ERROR(...)
 
#define TIMEMORY_HIP_RUNTIME_API_CALL(...)
 
#define TIMEMORY_HIP_RUNTIME_API_CALL_THROW(...)
 
#define TIMEMORY_HIP_RUNTIME_CHECK_ERROR(...)
 
#define TIMEMORY_GPU_RUNTIME_API_CALL(...)
 
#define TIMEMORY_GPU_RUNTIME_API_CALL_THROW(...)
 
#define TIMEMORY_GPU_RUNTIME_CHECK_ERROR(...)
 
#define LIKWID_MARKER_INIT
 
#define LIKWID_MARKER_THREADINIT
 
#define LIKWID_MARKER_SWITCH
 
#define LIKWID_MARKER_REGISTER(...)
 
#define LIKWID_MARKER_CLOSE
 
#define LIKWID_MARKER_GET(...)
 
#define LIKWID_MARKER_RESET(...)
 
#define LIKWID_NVMARKER_INIT
 
#define LIKWID_NVMARKER_THREADINIT
 
#define LIKWID_NVMARKER_SWITCH
 
#define LIKWID_NVMARKER_REGISTER(...)
 
#define LIKWID_NVMARKER_CLOSE
 
#define LIKWID_NVMARKER_GET(...)
 
#define LIKWID_NVMARKER_RESET(...)
 
#define TIMEMORY_OMPT_API_TAG   TIMEMORY_API
 
#define TIMEMORY_OMPT_CBDECL(...)
 

Macro Definition Documentation

◆ LIKWID_MARKER_CLOSE

#define LIKWID_MARKER_CLOSE

Definition at line 706 of file macros.hpp.

◆ LIKWID_MARKER_GET

#define LIKWID_MARKER_GET (   ...)

Definition at line 712 of file macros.hpp.

◆ LIKWID_MARKER_INIT

#define LIKWID_MARKER_INIT

Definition at line 682 of file macros.hpp.

◆ LIKWID_MARKER_REGISTER

#define LIKWID_MARKER_REGISTER (   ...)

Definition at line 700 of file macros.hpp.

◆ LIKWID_MARKER_RESET

#define LIKWID_MARKER_RESET (   ...)

Definition at line 718 of file macros.hpp.

◆ LIKWID_MARKER_SWITCH

#define LIKWID_MARKER_SWITCH

Definition at line 694 of file macros.hpp.

◆ LIKWID_MARKER_THREADINIT

#define LIKWID_MARKER_THREADINIT

Definition at line 688 of file macros.hpp.

◆ LIKWID_NVMARKER_CLOSE

#define LIKWID_NVMARKER_CLOSE

Definition at line 748 of file macros.hpp.

◆ LIKWID_NVMARKER_GET

#define LIKWID_NVMARKER_GET (   ...)

Definition at line 754 of file macros.hpp.

◆ LIKWID_NVMARKER_INIT

#define LIKWID_NVMARKER_INIT

Definition at line 724 of file macros.hpp.

◆ LIKWID_NVMARKER_REGISTER

#define LIKWID_NVMARKER_REGISTER (   ...)

Definition at line 742 of file macros.hpp.

◆ LIKWID_NVMARKER_RESET

#define LIKWID_NVMARKER_RESET (   ...)

Definition at line 760 of file macros.hpp.

◆ LIKWID_NVMARKER_SWITCH

#define LIKWID_NVMARKER_SWITCH

Definition at line 736 of file macros.hpp.

◆ LIKWID_NVMARKER_THREADINIT

#define LIKWID_NVMARKER_THREADINIT

Definition at line 730 of file macros.hpp.

◆ TIMEMORY_C_GOTCHA

#define TIMEMORY_C_GOTCHA (   ...)

Definition at line 323 of file macros.hpp.

◆ TIMEMORY_C_GOTCHA_TOOL

#define TIMEMORY_C_GOTCHA_TOOL (   ...)

Definition at line 326 of file macros.hpp.

◆ TIMEMORY_CUDA_DRIVER_API_CALL

#define TIMEMORY_CUDA_DRIVER_API_CALL (   ...)

Definition at line 394 of file macros.hpp.

◆ TIMEMORY_CUDA_RUNTIME_API_CALL

#define TIMEMORY_CUDA_RUNTIME_API_CALL (   ...)

Definition at line 499 of file macros.hpp.

◆ TIMEMORY_CUDA_RUNTIME_API_CALL_THROW

#define TIMEMORY_CUDA_RUNTIME_API_CALL_THROW (   ...)

Definition at line 505 of file macros.hpp.

◆ TIMEMORY_CUDA_RUNTIME_CHECK_ERROR

#define TIMEMORY_CUDA_RUNTIME_CHECK_ERROR (   ...)

Definition at line 511 of file macros.hpp.

◆ TIMEMORY_CUPTI_ALIGN_BUFFER

#define TIMEMORY_CUPTI_ALIGN_BUFFER (   buffer,
  align 
)
Value:
(((uintptr_t)(buffer) & ((align) -1)) \
? ((buffer) + (align) - ((uintptr_t)(buffer) & ((align) -1))) \
: (buffer))

Definition at line 418 of file macros.hpp.

◆ TIMEMORY_CUPTI_ALIGN_SIZE

#define TIMEMORY_CUPTI_ALIGN_SIZE   (8)

Definition at line 412 of file macros.hpp.

◆ TIMEMORY_CUPTI_BUFFER_SIZE

#define TIMEMORY_CUPTI_BUFFER_SIZE   (32 * 1024)

Definition at line 406 of file macros.hpp.

◆ TIMEMORY_CUPTI_CALL

#define TIMEMORY_CUPTI_CALL (   ...)

Definition at line 398 of file macros.hpp.

◆ TIMEMORY_CUPTI_PROFILER_NAME_LONG

#define TIMEMORY_CUPTI_PROFILER_NAME_LONG   512

Definition at line 433 of file macros.hpp.

◆ TIMEMORY_CUPTI_PROFILER_NAME_SHORT

#define TIMEMORY_CUPTI_PROFILER_NAME_SHORT   128

Definition at line 427 of file macros.hpp.

◆ TIMEMORY_CXX_GOTCHA

#define TIMEMORY_CXX_GOTCHA (   ...)

Definition at line 329 of file macros.hpp.

◆ TIMEMORY_CXX_GOTCHA_MEMFUN

#define TIMEMORY_CXX_GOTCHA_MEMFUN (   ...)

Definition at line 335 of file macros.hpp.

◆ TIMEMORY_CXX_GOTCHA_TOOL

#define TIMEMORY_CXX_GOTCHA_TOOL (   ...)

Definition at line 332 of file macros.hpp.

◆ TIMEMORY_CXX_MEMFUN_GOTCHA

#define TIMEMORY_CXX_MEMFUN_GOTCHA (   ...)    TIMEMORY_CXX_GOTCHA_MEMFUN(__VA_ARGS__)

Definition at line 346 of file macros.hpp.

◆ TIMEMORY_DEFINE_CONCRETE_TRAIT

#define TIMEMORY_DEFINE_CONCRETE_TRAIT (   TRAIT,
  COMPONENT,
  VALUE 
)
Value:
namespace tim \
{ \
namespace trait \
{ \
template <> \
struct TRAIT<COMPONENT> : VALUE \
{}; \
} \
}
Definition: kokkosp.cpp:39

Definition at line 110 of file macros.hpp.

◆ TIMEMORY_DEFINE_TEMPLATE_TRAIT

#define TIMEMORY_DEFINE_TEMPLATE_TRAIT (   TRAIT,
  COMPONENT,
  VALUE,
  TYPE 
)
Value:
namespace tim \
{ \
namespace trait \
{ \
template <TYPE T> \
struct TRAIT<COMPONENT<T>> : VALUE \
{}; \
} \
}

Definition at line 125 of file macros.hpp.

◆ TIMEMORY_DEFINE_VARIADIC_TRAIT

#define TIMEMORY_DEFINE_VARIADIC_TRAIT (   TRAIT,
  COMPONENT,
  VALUE,
  TYPE 
)
Value:
namespace tim \
{ \
namespace trait \
{ \
template <TYPE... T> \
struct TRAIT<COMPONENT<T...>> : VALUE \
{}; \
} \
}

Definition at line 140 of file macros.hpp.

◆ TIMEMORY_DERIVED_GOTCHA

#define TIMEMORY_DERIVED_GOTCHA (   ...)

Definition at line 338 of file macros.hpp.

◆ TIMEMORY_ESC

#define TIMEMORY_ESC (   ...)    __VA_ARGS__

Definition at line 47 of file macros.hpp.

◆ TIMEMORY_FORWARD_DECLARE_COMPONENT

#define TIMEMORY_FORWARD_DECLARE_COMPONENT (   NAME)
Value:
namespace tim \
{ \
namespace component \
{ \
struct NAME; \
} \
}

use this macro for forward declarations. Using TIMEMORY_DECLARE_COMPONENT on a pre-existing type will fail because of is_component specialization

Definition at line 93 of file macros.hpp.

◆ TIMEMORY_GPU_RUNTIME_API_CALL

#define TIMEMORY_GPU_RUNTIME_API_CALL (   ...)

Definition at line 636 of file macros.hpp.

◆ TIMEMORY_GPU_RUNTIME_API_CALL_THROW

#define TIMEMORY_GPU_RUNTIME_API_CALL_THROW (   ...)

Definition at line 650 of file macros.hpp.

◆ TIMEMORY_GPU_RUNTIME_CHECK_ERROR

#define TIMEMORY_GPU_RUNTIME_CHECK_ERROR (   ...)

Definition at line 664 of file macros.hpp.

◆ TIMEMORY_HIP_RUNTIME_API_CALL

#define TIMEMORY_HIP_RUNTIME_API_CALL (   ...)

Definition at line 603 of file macros.hpp.

◆ TIMEMORY_HIP_RUNTIME_API_CALL_THROW

#define TIMEMORY_HIP_RUNTIME_API_CALL_THROW (   ...)

Definition at line 609 of file macros.hpp.

◆ TIMEMORY_HIP_RUNTIME_CHECK_ERROR

#define TIMEMORY_HIP_RUNTIME_CHECK_ERROR (   ...)

Definition at line 615 of file macros.hpp.

◆ TIMEMORY_NVML_RUNTIME_CHECK_ERROR

#define TIMEMORY_NVML_RUNTIME_CHECK_ERROR (   ...)

Definition at line 536 of file macros.hpp.

◆ TIMEMORY_OMPT_API_TAG

#define TIMEMORY_OMPT_API_TAG   TIMEMORY_API

Definition at line 774 of file macros.hpp.

◆ TIMEMORY_OMPT_CBDECL

#define TIMEMORY_OMPT_CBDECL (   ...)

Definition at line 782 of file macros.hpp.

◆ TIMEMORY_STATIC_ACCESSOR

#define TIMEMORY_STATIC_ACCESSOR (   RETURN_TYPE,
  FUNC_NAME,
  ... 
)
Value:
static RETURN_TYPE& FUNC_NAME() \
{ \
static RETURN_TYPE _v = __VA_ARGS__; \
return _v; \
}

Simple way to define a static variable which avoids the static initialization fiasco.

Definition at line 65 of file macros.hpp.

◆ TIMEMORY_STATIC_THREAD_LOCAL_ACCESSOR

#define TIMEMORY_STATIC_THREAD_LOCAL_ACCESSOR (   RETURN_TYPE,
  FUNC_NAME,
  ... 
)
Value:
static RETURN_TYPE& FUNC_NAME() \
{ \
static thread_local RETURN_TYPE _v = __VA_ARGS__; \
return _v; \
}

Simple way to define a static thread-local variable which avoids the static initialization fiasco.

Definition at line 76 of file macros.hpp.

◆ TIMEMORY_STATISTICS_TYPE

#define TIMEMORY_STATISTICS_TYPE (   COMPONENT,
  TYPE 
)     TIMEMORY_TRAIT_TYPE(statistics, TIMEMORY_ESC(COMPONENT), TIMEMORY_ESC(TYPE))

Definition at line 207 of file macros.hpp.

◆ TIMEMORY_STRINGIZE

#define TIMEMORY_STRINGIZE (   X)    TIMEMORY_STRINGIZE2(X)

Definition at line 53 of file macros.hpp.

◆ TIMEMORY_STRINGIZE2

#define TIMEMORY_STRINGIZE2 (   X)    # X

Definition at line 58 of file macros.hpp.

◆ TIMEMORY_TEMPLATE_STATISTICS_TYPE

#define TIMEMORY_TEMPLATE_STATISTICS_TYPE (   COMPONENT,
  TYPE,
  TEMPLATE_TYPE 
)
Value:
TIMEMORY_TEMPLATE_TRAIT_TYPE(statistics, TIMEMORY_ESC(COMPONENT), \
TIMEMORY_ESC(TEMPLATE_TYPE T), TIMEMORY_ESC(T), \
TIMEMORY_ESC(TYPE))
#define TIMEMORY_ESC(...)
Definition: macros.hpp:47
#define TIMEMORY_TEMPLATE_TRAIT_TYPE(TRAIT, COMPONENT, TEMPLATE_PARAM, TEMPLATE_ARG,...)
Definition: macros.hpp:176

Definition at line 214 of file macros.hpp.

◆ TIMEMORY_TEMPLATE_TRAIT_TYPE

#define TIMEMORY_TEMPLATE_TRAIT_TYPE (   TRAIT,
  COMPONENT,
  TEMPLATE_PARAM,
  TEMPLATE_ARG,
  ... 
)
Value:
namespace tim \
{ \
namespace trait \
{ \
template <TEMPLATE_PARAM> \
struct TRAIT<COMPONENT<TEMPLATE_ARG>> \
{ \
using type = __VA_ARGS__; \
}; \
} \
}

Definition at line 176 of file macros.hpp.

◆ TIMEMORY_TRAIT_TYPE

#define TIMEMORY_TRAIT_TYPE (   TRAIT,
  COMPONENT,
  ... 
)
Value:
namespace tim \
{ \
namespace trait \
{ \
template <> \
struct TRAIT<COMPONENT> \
{ \
using type = __VA_ARGS__; \
}; \
} \
}

Definition at line 159 of file macros.hpp.

◆ TIMEMORY_VARIADIC_STATISTICS_TYPE

#define TIMEMORY_VARIADIC_STATISTICS_TYPE (   COMPONENT,
  TYPE,
  TEMPLATE_TYPE 
)
Value:
TIMEMORY_VARIADIC_TRAIT_TYPE(statistics, TIMEMORY_ESC(COMPONENT), \
TIMEMORY_ESC(TEMPLATE_TYPE... T), \
TIMEMORY_ESC(T...), TIMEMORY_ESC(TYPE))
#define TIMEMORY_VARIADIC_TRAIT_TYPE(TRAIT, COMPONENT, TEMPLATE_PARAM, TEMPLATE_ARG,...)
Definition: macros.hpp:194

Definition at line 223 of file macros.hpp.

◆ TIMEMORY_VARIADIC_TRAIT_TYPE

#define TIMEMORY_VARIADIC_TRAIT_TYPE (   TRAIT,
  COMPONENT,
  TEMPLATE_PARAM,
  TEMPLATE_ARG,
  ... 
)
Value:
TIMEMORY_TEMPLATE_TRAIT_TYPE(TRAIT, COMPONENT, TIMEMORY_ESC(TEMPLATE_PARAM), \
TIMEMORY_ESC(TEMPLATE_ARG), __VA_ARGS__)

Definition at line 194 of file macros.hpp.