39#if defined(TIMEMORY_USE_EXTERN) && !defined(TIMEMORY_USE_USER_BUNDLE_EXTERN)
40# define TIMEMORY_USE_USER_BUNDLE_EXTERN
43#if !defined(TIMEMORY_USE_USER_BUNDLE_EXTERN) && \
44 !defined(TIMEMORY_USER_BUNDLE_SOURCE) && !defined(TIMEMORY_USER_BUNDLE_HEADER_MODE)
45# define TIMEMORY_USER_BUNDLE_HEADER_MODE
71using user_global_bundle = user_bundle<global_bundle_idx, project::timemory>;
74using user_tuple_bundle = user_global_bundle;
75using user_list_bundle = user_global_bundle;
83using user_ompt_bundle = user_bundle<ompt_bundle_idx, project::timemory>;
91using user_mpip_bundle = user_bundle<mpip_bundle_idx, project::timemory>;
99using user_ncclp_bundle = user_bundle<ncclp_bundle_idx, project::timemory>;
110using user_trace_bundle = user_bundle<trace_bundle_idx, project::timemory>;
118using user_profiler_bundle = user_bundle<profiler_bundle_idx, project::timemory>;
125using user_kokkosp_bundle = user_bundle<kokkosp_bundle_idx, project::kokkosp>;
131#if defined(TIMEMORY_COMPILER_INSTRUMENTATION)
138template <
size_t Idx,
typename Tag>
139struct is_available<component::user_bundle<Idx, Tag>> : std::false_type
147# if !defined(TIMEMORY_USE_OMPT)
151# if !defined(TIMEMORY_USE_MPI) || !defined(TIMEMORY_USE_GOTCHA)
155# if !defined(TIMEMORY_USE_NCCL) || !defined(TIMEMORY_USE_GOTCHA)
182template <
size_t Idx,
typename Type>
183struct is_user_bundle<component::user_bundle<Idx, Type>> : true_type
195template <
template <
typename...>
class Tuple,
typename... T>
196struct has_user_bundle<Tuple<T...>>
198 using type =
typename mpl::get_true_types<trait::is_user_bundle, Tuple<T...>>::type;
213template <
size_t Idx,
typename Type>
214struct reset<component::user_bundle<Idx, Type>>
216 using type = component::user_bundle<Idx, Type>;
220 template <
typename... Args>
233 "user_global_bundle",
"global_bundle",
234 "user_tuple_bundle",
"tuple_bundle",
"user_list_bundle",
238 "user_ompt_bundle", "ompt_bundle")
241 "user_mpip_bundle", "mpip", "mpi_tools", "mpi")
244 "user_ncclp_bundle", "ncclp", "nccl_tools", "nccl")
247 "user_trace_bundle", "trace_bundle")
250 "user_profiler_bundle", "profiler_bundle")
254 "user_kokkosp_bundle", "kokkosp_bundle")
257 user_global_bundle, "user_global_bundle",
259 "Configure via TIMEMORY_GLOBAL_COMPONENTS [environment], "
263 user_ompt_bundle, "user_ompt_bundle",
264 "Generic bundle
for inserting
components at runtime into OMPT call-back system",
265 "Configure via TIMEMORY_OMPT_COMPONENTS [environment], "
269 user_mpip_bundle, "user_mpip_bundle",
271 "Configure via TIMEMORY_MPIP_COMPONENTS [environment], "
275 user_ncclp_bundle, "user_ncclp_bundle",
276 "Generic bundle
for inserting
components at runtime around NCCL calls",
277 "Configure via TIMEMORY_NCCLP_COMPONENTS [environment], "
281 user_profiler_bundle, "user_profiler_bundle",
282 "Generic bundle
for inserting
components at runtime around calls when profiling (via "
284 "Configure via TIMEMORY_PROFILER_COMPONENTS [environment], "
288 user_trace_bundle, "user_trace_bundle",
289 "Generic bundle
for inserting
components at runtime around calls when tracing (via "
290 "Python or Dyninst)",
291 "Configure via TIMEMORY_TRACE_COMPONENTS [environment], "
295 user_kokkosp_bundle, "user_kokkosp_bundle",
296 "Generic bundle
for inserting
components into Kokkos profiling API",
297 "Configure via TIMEMORY_KOKKOS_COMPONENTS [environment], "
#define TIMEMORY_METADATA_SPECIALIZATION(TYPE, LABEL, BASIC_DESC,...)
Specialization of the property specialization.
#define TIMEMORY_PROPERTY_SPECIALIZATION(TYPE, ENUM, ID,...)
Specialization of the property specialization.
TIMEMORY_DECLARE_TEMPLATE_COMPONENT(user_bundle, size_t Idx, typename Tag=TIMEMORY_API) TIMEMORY_BUNDLE_INDEX(ompt_bundle_idx
int EventTypes int EventTypes papi_array< 16 > papi_array< 8 > TIMEMORY_SET_COMPONENT_API(component::papi_vector, tpls::papi, category::external, category::hardware_counter, os::supports_linux) TIMEMORY_SET_TEMPLATE_COMPONENT_API(TIMEMORY_ESC(size_t MaxNumEvents)
false_type TIMEMORY_DEFINE_CONCRETE_TRAIT(is_available, component::perfetto_trace, false_type) TIMEMORY_PROPERTY_SPECIALIZATION(perfetto_trace
TIMEMORY_BUNDLE_INDEX(mpip_bundle_idx, 11111) TIMEMORY_BUNDLE_INDEX(ncclp_bundle_idx
#define TIMEMORY_USER_OMPT_BUNDLE
#define TIMEMORY_USER_PROFILER_BUNDLE
#define TIMEMORY_USER_NCCLP_BUNDLE
#define TIMEMORY_USER_KOKKOSP_BUNDLE
#define TIMEMORY_USER_MPIP_BUNDLE
#define TIMEMORY_USER_GLOBAL_BUNDLE
#define TIMEMORY_USER_TRACE_BUNDLE
void reset(TupleT< Tp... > &obj, Args &&... args)
tim::component::user_kokkosp_bundle kokkos_bundle
for(const auto &ext :_exe_suffixes)
static constexpr size_t value
TIMEMORY_DELETED_OBJECT(reset) template< typename... Args > explicit reset(type &obj