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.
enum.h
Go to the documentation of this file.
1// MIT License
2//
3// Copyright (c) 2020, The Regents of the University of California,
4// through Lawrence Berkeley National Laboratory (subject to receipt of any
5// required approvals from the U.S. Dept. of Energy). All rights reserved.
6//
7// Permission is hereby granted, free of charge, to any person obtaining a copy
8// of this software and associated documentation files (the "Software"), to deal
9// in the Software without restriction, including without limitation the rights
10// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11// copies of the Software, and to permit persons to whom the Software is
12// furnished to do so, subject to the following conditions:
13//
14// The above copyright notice and this permission notice shall be included in all
15// copies or substantial portions of the Software.
16//
17// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23// SOFTWARE.
24
25/** \file timemory/enum.h
26 * \headerfile timemory/enum.h "timemory/enum.h"
27 * This provides the core enumeration for components
28 *
29 */
30
31#pragma once
32
34
35//======================================================================================//
36//
37// Enumeration
38//
39//======================================================================================//
40//
41/// \macro TIMEMORY_USER_COMPONENT_ENUM
42/// \brief Extra enumerated components provided by a downstream application. If this
43/// macro is used, be sure to end the list with a comma
44///
45/// \code{.cpp}
46/// #define TIMEMORY_USER_COMPONENT_ENUM MY_COMPONENT,
47/// \endcode
48//
49#if !defined(TIMEMORY_USER_COMPONENT_ENUM)
50# define TIMEMORY_USER_COMPONENT_ENUM
51#endif
52
53/// \enum TIMEMORY_USER_COMPONENT_ENUM_SIZE
54/// \brief Macro specifying how many user component enumerations are provided
55#if !defined(TIMEMORY_USER_COMPONENT_ENUM_SIZE)
56# define TIMEMORY_USER_COMPONENT_ENUM_SIZE 16
57#endif
58//
59/// \enum TIMEMORY_NATIVE_COMPONENT
60/// \brief Enumerated identifiers for timemory-provided components.
61//
63{
129 TIMEMORY_USER_KOKKOSP_BUNDLE_idx, // excluded from TIMEMORY_COMPONENT_TYPES
130 TIMEMORY_USER_LIST_BUNDLE_idx, // excluded from TIMEMORY_COMPONENT_TYPES
131 TIMEMORY_USER_MPIP_BUNDLE_idx, // excluded from TIMEMORY_COMPONENT_TYPES
132 TIMEMORY_USER_NCCLP_BUNDLE_idx, // excluded from TIMEMORY_COMPONENT_TYPES
133 TIMEMORY_USER_OMPT_BUNDLE_idx, // excluded from TIMEMORY_COMPONENT_TYPES
134 TIMEMORY_USER_TUPLE_BUNDLE_idx, // excluded from TIMEMORY_COMPONENT_TYPES
135 TIMEMORY_USER_PROFILER_BUNDLE_idx, // excluded from TIMEMORY_COMPONENT_TYPES
136 TIMEMORY_USER_TRACE_BUNDLE_idx, // excluded from TIMEMORY_COMPONENT_TYPES
149//
150#if !defined(TIMEMORY_NATIVE_COMPONENTS_END)
151# define TIMEMORY_NATIVE_COMPONENTS_END TIMEMORY_NATIVE_COMPONENTS_END_idx
152#endif
153//
154#if !defined(TIMEMORY_COMPONENTS_END)
155# define TIMEMORY_COMPONENTS_END TIMEMORY_COMPONENTS_END_idx
156#endif
157//
158// backwards compatibility
159//
160#if !defined(ALLINEA_MAP)
161# define ALLINEA_MAP TIMEMORY_ALLINEA_MAP_idx
162#endif
163#if !defined(CALIPER_MARKER)
164# define CALIPER_MARKER TIMEMORY_CALIPER_MARKER_idx
165#endif
166#if !defined(CALIPER_CONFIG)
167# define CALIPER_CONFIG TIMEMORY_CALIPER_CONFIG_idx
168#endif
169#if !defined(CALIPER_LOOP_MARKER)
170# define CALIPER_LOOP_MARKER TIMEMORY_CALIPER_LOOP_MARKER_idx
171#endif
172#if !defined(CPU_CLOCK)
173# define CPU_CLOCK TIMEMORY_CPU_CLOCK_idx
174#endif
175#if !defined(CPU_ROOFLINE_DP_FLOPS)
176# define CPU_ROOFLINE_DP_FLOPS TIMEMORY_CPU_ROOFLINE_DP_FLOPS_idx
177#endif
178#if !defined(CPU_ROOFLINE_FLOPS)
179# define CPU_ROOFLINE_FLOPS TIMEMORY_CPU_ROOFLINE_FLOPS_idx
180#endif
181#if !defined(CPU_ROOFLINE_SP_FLOPS)
182# define CPU_ROOFLINE_SP_FLOPS TIMEMORY_CPU_ROOFLINE_SP_FLOPS_idx
183#endif
184#if !defined(CPU_UTIL)
185# define CPU_UTIL TIMEMORY_CPU_UTIL_idx
186#endif
187#if !defined(CRAYPAT_COUNTERS)
188# define CRAYPAT_COUNTERS TIMEMORY_CRAYPAT_COUNTERS_idx
189#endif
190#if !defined(CRAYPAT_FLUSH_BUFFER)
191# define CRAYPAT_FLUSH_BUFFER TIMEMORY_CRAYPAT_FLUSH_BUFFER_idx
192#endif
193#if !defined(CRAYPAT_HEAP_STATS)
194# define CRAYPAT_HEAP_STATS TIMEMORY_CRAYPAT_HEAP_STATS_idx
195#endif
196#if !defined(CRAYPAT_RECORD)
197# define CRAYPAT_RECORD TIMEMORY_CRAYPAT_RECORD_idx
198#endif
199#if !defined(CRAYPAT_REGION)
200# define CRAYPAT_REGION TIMEMORY_CRAYPAT_REGION_idx
201#endif
202#if !defined(CUDA_EVENT)
203# define CUDA_EVENT TIMEMORY_CUDA_EVENT_idx
204#endif
205#if !defined(CUDA_PROFILER)
206# define CUDA_PROFILER TIMEMORY_CUDA_PROFILER_idx
207#endif
208#if !defined(CUPTI_ACTIVITY)
209# define CUPTI_ACTIVITY TIMEMORY_CUPTI_ACTIVITY_idx
210#endif
211#if !defined(CUPTI_COUNTERS)
212# define CUPTI_COUNTERS TIMEMORY_CUPTI_COUNTERS_idx
213#endif
214#if !defined(CUPTI_PCSAMPLING)
215# define CUPTI_PCSAMPLING TIMEMORY_CUPTI_PCSAMPLING_idx
216#endif
217#if !defined(CURRENT_PEAK_RSS)
218# define CURRENT_PEAK_RSS TIMEMORY_CURRENT_PEAK_RSS_idx
219#endif
220#if !defined(DATA_TRACKER_INTEGER)
221# define DATA_TRACKER_INTEGER TIMEMORY_DATA_TRACKER_INTEGER_idx
222#endif
223#if !defined(DATA_TRACKER_UNSIGNED)
224# define DATA_TRACKER_UNSIGNED TIMEMORY_DATA_TRACKER_UNSIGNED_idx
225#endif
226#if !defined(DATA_TRACKER_FLOATING)
227# define DATA_TRACKER_FLOATING TIMEMORY_DATA_TRACKER_FLOATING_idx
228#endif
229#if !defined(GPERFTOOLS_CPU_PROFILER)
230# define GPERFTOOLS_CPU_PROFILER TIMEMORY_GPERFTOOLS_CPU_PROFILER_idx
231#endif
232#if !defined(GPERFTOOLS_HEAP_PROFILER)
233# define GPERFTOOLS_HEAP_PROFILER TIMEMORY_GPERFTOOLS_HEAP_PROFILER_idx
234#endif
235#if !defined(GPU_ROOFLINE_DP_FLOPS)
236# define GPU_ROOFLINE_DP_FLOPS TIMEMORY_GPU_ROOFLINE_DP_FLOPS_idx
237#endif
238#if !defined(GPU_ROOFLINE_FLOPS)
239# define GPU_ROOFLINE_FLOPS TIMEMORY_GPU_ROOFLINE_FLOPS_idx
240#endif
241#if !defined(GPU_ROOFLINE_HP_FLOPS)
242# define GPU_ROOFLINE_HP_FLOPS TIMEMORY_GPU_ROOFLINE_HP_FLOPS_idx
243#endif
244#if !defined(GPU_ROOFLINE_SP_FLOPS)
245# define GPU_ROOFLINE_SP_FLOPS TIMEMORY_GPU_ROOFLINE_SP_FLOPS_idx
246#endif
247#if !defined(HIP_EVENT)
248# define HIP_EVENT TIMEMORY_HIP_EVENT_idx
249#endif
250#if !defined(KERNEL_MODE_TIME)
251# define KERNEL_MODE_TIME TIMEMORY_KERNEL_MODE_TIME_idx
252#endif
253#if !defined(LIKWID_MARKER)
254# define LIKWID_MARKER TIMEMORY_LIKWID_MARKER_idx
255#endif
256#if !defined(LIKWID_NVMARKER)
257# define LIKWID_NVMARKER TIMEMORY_LIKWID_NVMARKER_idx
258#endif
259#if !defined(MALLOC_GOTCHA)
260# define MALLOC_GOTCHA TIMEMORY_MALLOC_GOTCHA_idx
261#endif
262#if !defined(MEMORY_ALLOCATIONS)
263# define MEMORY_ALLOCATIONS TIMEMORY_MEMORY_ALLOCATIONS_idx
264#endif
265#if !defined(MONOTONIC_CLOCK)
266# define MONOTONIC_CLOCK TIMEMORY_MONOTONIC_CLOCK_idx
267#endif
268#if !defined(MONOTONIC_RAW_CLOCK)
269# define MONOTONIC_RAW_CLOCK TIMEMORY_MONOTONIC_RAW_CLOCK_idx
270#endif
271#if !defined(NETWORK_STATS)
272# define NETWORK_STATS TIMEMORY_NETWORK_STATS_idx
273#endif
274#if !defined(NUM_IO_IN)
275# define NUM_IO_IN TIMEMORY_NUM_IO_IN_idx
276#endif
277#if !defined(NUM_IO_OUT)
278# define NUM_IO_OUT TIMEMORY_NUM_IO_OUT_idx
279#endif
280#if !defined(NUM_MAJOR_PAGE_FAULTS)
281# define NUM_MAJOR_PAGE_FAULTS TIMEMORY_NUM_MAJOR_PAGE_FAULTS_idx
282#endif
283#if !defined(NUM_MINOR_PAGE_FAULTS)
284# define NUM_MINOR_PAGE_FAULTS TIMEMORY_NUM_MINOR_PAGE_FAULTS_idx
285#endif
286#if !defined(NVTX_MARKER)
287# define NVTX_MARKER TIMEMORY_NVTX_MARKER_idx
288#endif
289#if !defined(OMPT_HANDLE)
290# define OMPT_HANDLE TIMEMORY_OMPT_HANDLE_idx
291#endif
292#if !defined(PAGE_RSS)
293# define PAGE_RSS TIMEMORY_PAGE_RSS_idx
294#endif
295#if !defined(PAPI_ARRAY)
296# define PAPI_ARRAY TIMEMORY_PAPI_ARRAY_idx
297#endif
298#if !defined(PAPI_VECTOR)
299# define PAPI_VECTOR TIMEMORY_PAPI_VECTOR_idx
300#endif
301#if !defined(PEAK_RSS)
302# define PEAK_RSS TIMEMORY_PEAK_RSS_idx
303#endif
304#if !defined(PRIORITY_CONTEXT_SWITCH)
305# define PRIORITY_CONTEXT_SWITCH TIMEMORY_PRIORITY_CONTEXT_SWITCH_idx
306#endif
307#if !defined(PROCESS_CPU_CLOCK)
308# define PROCESS_CPU_CLOCK TIMEMORY_PROCESS_CPU_CLOCK_idx
309#endif
310#if !defined(PROCESS_CPU_UTIL)
311# define PROCESS_CPU_UTIL TIMEMORY_PROCESS_CPU_UTIL_idx
312#endif
313#if !defined(READ_BYTES)
314# define READ_BYTES TIMEMORY_READ_BYTES_idx
315#endif
316#if !defined(READ_CHAR)
317# define READ_CHAR TIMEMORY_READ_CHAR_idx
318#endif
319#if !defined(ROCTX_MARKER)
320# define ROCTX_MARKER TIMEMORY_ROCTX_MARKER_idx
321#endif
322#if !defined(SYS_CLOCK)
323# define SYS_CLOCK TIMEMORY_SYS_CLOCK_idx
324#endif
325#if !defined(TAU_MARKER)
326# define TAU_MARKER TIMEMORY_TAU_MARKER_idx
327#endif
328#if !defined(THREAD_CPU_CLOCK)
329# define THREAD_CPU_CLOCK TIMEMORY_THREAD_CPU_CLOCK_idx
330#endif
331#if !defined(THREAD_CPU_UTIL)
332# define THREAD_CPU_UTIL TIMEMORY_THREAD_CPU_UTIL_idx
333#endif
334#if !defined(TRIP_COUNT)
335# define TRIP_COUNT TIMEMORY_TRIP_COUNT_idx
336#endif
337#if !defined(USER_CLOCK)
338# define USER_CLOCK TIMEMORY_USER_CLOCK_idx
339#endif
340#if !defined(USER_MODE_TIME)
341# define USER_MODE_TIME TIMEMORY_USER_MODE_TIME_idx
342#endif
343#if !defined(USER_GLOBAL_BUNDLE)
344# define USER_GLOBAL_BUNDLE TIMEMORY_USER_GLOBAL_BUNDLE_idx
345#endif
346#if !defined(USER_KOKKOSP_BUNDLE)
347# define USER_KOKKOSP_BUNDLE TIMEMORY_USER_KOKKOSP_BUNDLE_idx
348#endif
349#if !defined(USER_LIST_BUNDLE)
350# define USER_LIST_BUNDLE TIMEMORY_USER_LIST_BUNDLE_idx
351#endif
352#if !defined(USER_MPIP_BUNDLE)
353# define USER_MPIP_BUNDLE TIMEMORY_USER_MPIP_BUNDLE_idx
354#endif
355#if !defined(USER_NCCLP_BUNDLE)
356# define USER_NCCLP_BUNDLE TIMEMORY_USER_NCCLP_BUNDLE_idx
357#endif
358#if !defined(USER_OMPT_BUNDLE)
359# define USER_OMPT_BUNDLE TIMEMORY_USER_OMPT_BUNDLE_idx
360#endif
361#if !defined(USER_TUPLE_BUNDLE)
362# define USER_TUPLE_BUNDLE TIMEMORY_USER_TUPLE_BUNDLE_idx
363#endif
364#if !defined(USER_PROFILER_BUNDLE)
365# define USER_PROFILER_BUNDLE TIMEMORY_USER_PROFILER_BUNDLE_idx
366#endif
367#if !defined(USER_TRACE_BUNDLE)
368# define USER_TRACE_BUNDLE TIMEMORY_USER_TRACE_BUNDLE_idx
369#endif
370#if !defined(VIRTUAL_MEMORY)
371# define VIRTUAL_MEMORY TIMEMORY_VIRTUAL_MEMORY_idx
372#endif
373#if !defined(VOLUNTARY_CONTEXT_SWITCH)
374# define VOLUNTARY_CONTEXT_SWITCH TIMEMORY_VOLUNTARY_CONTEXT_SWITCH_idx
375#endif
376#if !defined(VTUNE_EVENT)
377# define VTUNE_EVENT TIMEMORY_VTUNE_EVENT_idx
378#endif
379#if !defined(VTUNE_FRAME)
380# define VTUNE_FRAME TIMEMORY_VTUNE_FRAME_idx
381#endif
382#if !defined(VTUNE_PROFILER)
383# define VTUNE_PROFILER TIMEMORY_VTUNE_PROFILER_idx
384#endif
385#if !defined(WALL_CLOCK)
386# define WALL_CLOCK TIMEMORY_WALL_CLOCK_idx
387#endif
388#if !defined(WRITTEN_BYTES)
389# define WRITTEN_BYTES TIMEMORY_WRITTEN_BYTES_idx
390#endif
391#if !defined(WRITTEN_CHAR)
392# define WRITTEN_CHAR TIMEMORY_WRITTEN_CHAR_idx
393#endif
394//
395// timemory-prefixed variants
396//
397#if !defined(TIMEMORY_ALLINEA_MAP)
398# define TIMEMORY_ALLINEA_MAP TIMEMORY_ALLINEA_MAP_idx
399#endif
400#if !defined(TIMEMORY_CALIPER_MARKER)
401# define TIMEMORY_CALIPER_MARKER TIMEMORY_CALIPER_MARKER_idx
402#endif
403#if !defined(TIMEMORY_CALIPER_CONFIG)
404# define TIMEMORY_CALIPER_CONFIG TIMEMORY_CALIPER_CONFIG_idx
405#endif
406#if !defined(TIMEMORY_CALIPER_LOOP_MARKER)
407# define TIMEMORY_CALIPER_LOOP_MARKER TIMEMORY_CALIPER_LOOP_MARKER_idx
408#endif
409#if !defined(TIMEMORY_CPU_CLOCK)
410# define TIMEMORY_CPU_CLOCK TIMEMORY_CPU_CLOCK_idx
411#endif
412#if !defined(TIMEMORY_CPU_ROOFLINE_DP_FLOPS)
413# define TIMEMORY_CPU_ROOFLINE_DP_FLOPS TIMEMORY_CPU_ROOFLINE_DP_FLOPS_idx
414#endif
415#if !defined(TIMEMORY_CPU_ROOFLINE_FLOPS)
416# define TIMEMORY_CPU_ROOFLINE_FLOPS TIMEMORY_CPU_ROOFLINE_FLOPS_idx
417#endif
418#if !defined(TIMEMORY_CPU_ROOFLINE_SP_FLOPS)
419# define TIMEMORY_CPU_ROOFLINE_SP_FLOPS TIMEMORY_CPU_ROOFLINE_SP_FLOPS_idx
420#endif
421#if !defined(TIMEMORY_CPU_UTIL)
422# define TIMEMORY_CPU_UTIL TIMEMORY_CPU_UTIL_idx
423#endif
424#if !defined(TIMEMORY_CRAYPAT_COUNTERS)
425# define TIMEMORY_CRAYPAT_COUNTERS TIMEMORY_CRAYPAT_COUNTERS_idx
426#endif
427#if !defined(TIMEMORY_CRAYPAT_FLUSH_BUFFER)
428# define TIMEMORY_CRAYPAT_FLUSH_BUFFER TIMEMORY_CRAYPAT_FLUSH_BUFFER_idx
429#endif
430#if !defined(TIMEMORY_CRAYPAT_HEAP_STATS)
431# define TIMEMORY_CRAYPAT_HEAP_STATS TIMEMORY_CRAYPAT_HEAP_STATS_idx
432#endif
433#if !defined(TIMEMORY_CRAYPAT_RECORD)
434# define TIMEMORY_CRAYPAT_RECORD TIMEMORY_CRAYPAT_RECORD_idx
435#endif
436#if !defined(TIMEMORY_CRAYPAT_REGION)
437# define TIMEMORY_CRAYPAT_REGION TIMEMORY_CRAYPAT_REGION_idx
438#endif
439#if !defined(TIMEMORY_CUDA_EVENT)
440# define TIMEMORY_CUDA_EVENT TIMEMORY_CUDA_EVENT_idx
441#endif
442#if !defined(TIMEMORY_CUDA_PROFILER)
443# define TIMEMORY_CUDA_PROFILER TIMEMORY_CUDA_PROFILER_idx
444#endif
445#if !defined(TIMEMORY_CUPTI_ACTIVITY)
446# define TIMEMORY_CUPTI_ACTIVITY TIMEMORY_CUPTI_ACTIVITY_idx
447#endif
448#if !defined(TIMEMORY_CUPTI_COUNTERS)
449# define TIMEMORY_CUPTI_COUNTERS TIMEMORY_CUPTI_COUNTERS_idx
450#endif
451#if !defined(TIMEMORY_CUPTI_PCSAMPLING)
452# define TIMEMORY_CUPTI_PCSAMPLING TIMEMORY_CUPTI_PCSAMPLING_idx
453#endif
454#if !defined(TIMEMORY_CURRENT_PEAK_RSS)
455# define TIMEMORY_CURRENT_PEAK_RSS TIMEMORY_CURRENT_PEAK_RSS_idx
456#endif
457#if !defined(TIMEMORY_DATA_TRACKER_INTEGER)
458# define TIMEMORY_DATA_TRACKER_INTEGER TIMEMORY_DATA_TRACKER_INTEGER_idx
459#endif
460#if !defined(TIMEMORY_DATA_TRACKER_UNSIGNED)
461# define TIMEMORY_DATA_TRACKER_UNSIGNED TIMEMORY_DATA_TRACKER_UNSIGNED_idx
462#endif
463#if !defined(TIMEMORY_DATA_TRACKER_FLOATING)
464# define TIMEMORY_DATA_TRACKER_FLOATING TIMEMORY_DATA_TRACKER_FLOATING_idx
465#endif
466#if !defined(TIMEMORY_GPERFTOOLS_CPU_PROFILER)
467# define TIMEMORY_GPERFTOOLS_CPU_PROFILER TIMEMORY_GPERFTOOLS_CPU_PROFILER_idx
468#endif
469#if !defined(TIMEMORY_GPERFTOOLS_HEAP_PROFILER)
470# define TIMEMORY_GPERFTOOLS_HEAP_PROFILER TIMEMORY_GPERFTOOLS_HEAP_PROFILER_idx
471#endif
472#if !defined(TIMEMORY_GPU_ROOFLINE_DP_FLOPS)
473# define TIMEMORY_GPU_ROOFLINE_DP_FLOPS TIMEMORY_GPU_ROOFLINE_DP_FLOPS_idx
474#endif
475#if !defined(TIMEMORY_GPU_ROOFLINE_FLOPS)
476# define TIMEMORY_GPU_ROOFLINE_FLOPS TIMEMORY_GPU_ROOFLINE_FLOPS_idx
477#endif
478#if !defined(TIMEMORY_GPU_ROOFLINE_HP_FLOPS)
479# define TIMEMORY_GPU_ROOFLINE_HP_FLOPS TIMEMORY_GPU_ROOFLINE_HP_FLOPS_idx
480#endif
481#if !defined(TIMEMORY_GPU_ROOFLINE_SP_FLOPS)
482# define TIMEMORY_GPU_ROOFLINE_SP_FLOPS TIMEMORY_GPU_ROOFLINE_SP_FLOPS_idx
483#endif
484#if !defined(TIMEMORY_HIP_EVENT)
485# define TIMEMORY_HIP_EVENT TIMEMORY_HIP_EVENT_idx
486#endif
487#if !defined(TIMEMORY_KERNEL_MODE_TIME)
488# define TIMEMORY_KERNEL_MODE_TIME TIMEMORY_KERNEL_MODE_TIME_idx
489#endif
490#if !defined(TIMEMORY_LIKWID_MARKER)
491# define TIMEMORY_LIKWID_MARKER TIMEMORY_LIKWID_MARKER_idx
492#endif
493#if !defined(TIMEMORY_LIKWID_NVMARKER)
494# define TIMEMORY_LIKWID_NVMARKER TIMEMORY_LIKWID_NVMARKER_idx
495#endif
496#if !defined(TIMEMORY_MALLOC_GOTCHA)
497# define TIMEMORY_MALLOC_GOTCHA TIMEMORY_MALLOC_GOTCHA_idx
498#endif
499#if !defined(TIMEMORY_MEMORY_ALLOCATIONS)
500# define TIMEMORY_MEMORY_ALLOCATIONS TIMEMORY_MEMORY_ALLOCATIONS_idx
501#endif
502#if !defined(TIMEMORY_MONOTONIC_CLOCK)
503# define TIMEMORY_MONOTONIC_CLOCK TIMEMORY_MONOTONIC_CLOCK_idx
504#endif
505#if !defined(TIMEMORY_MONOTONIC_RAW_CLOCK)
506# define TIMEMORY_MONOTONIC_RAW_CLOCK TIMEMORY_MONOTONIC_RAW_CLOCK_idx
507#endif
508#if !defined(TIMEMORY_NETWORK_STATS)
509# define TIMEMORY_NETWORK_STATS TIMEMORY_NETWORK_STATS_idx
510#endif
511#if !defined(TIMEMORY_NUM_IO_IN)
512# define TIMEMORY_NUM_IO_IN TIMEMORY_NUM_IO_IN_idx
513#endif
514#if !defined(TIMEMORY_NUM_IO_OUT)
515# define TIMEMORY_NUM_IO_OUT TIMEMORY_NUM_IO_OUT_idx
516#endif
517#if !defined(TIMEMORY_NUM_MAJOR_PAGE_FAULTS)
518# define TIMEMORY_NUM_MAJOR_PAGE_FAULTS TIMEMORY_NUM_MAJOR_PAGE_FAULTS_idx
519#endif
520#if !defined(TIMEMORY_NUM_MINOR_PAGE_FAULTS)
521# define TIMEMORY_NUM_MINOR_PAGE_FAULTS TIMEMORY_NUM_MINOR_PAGE_FAULTS_idx
522#endif
523#if !defined(TIMEMORY_NVTX_MARKER)
524# define TIMEMORY_NVTX_MARKER TIMEMORY_NVTX_MARKER_idx
525#endif
526#if !defined(TIMEMORY_OMPT_HANDLE)
527# define TIMEMORY_OMPT_HANDLE TIMEMORY_OMPT_HANDLE_idx
528#endif
529#if !defined(TIMEMORY_PAGE_RSS)
530# define TIMEMORY_PAGE_RSS TIMEMORY_PAGE_RSS_idx
531#endif
532#if !defined(TIMEMORY_PAPI_ARRAY)
533# define TIMEMORY_PAPI_ARRAY TIMEMORY_PAPI_ARRAY_idx
534#endif
535#if !defined(TIMEMORY_PAPI_VECTOR)
536# define TIMEMORY_PAPI_VECTOR TIMEMORY_PAPI_VECTOR_idx
537#endif
538#if !defined(TIMEMORY_PEAK_RSS)
539# define TIMEMORY_PEAK_RSS TIMEMORY_PEAK_RSS_idx
540#endif
541#if !defined(TIMEMORY_PERFETTO_TRACE)
542# define TIMEMORY_PERFETTO_TRACE TIMEMORY_PERFETTO_TRACE_idx
543#endif
544#if !defined(TIMEMORY_PRINTER)
545# define TIMEMORY_PRINTER TIMEMORY_PRINTER_idx
546#endif
547#if !defined(TIMEMORY_PRIORITY_CONTEXT_SWITCH)
548# define TIMEMORY_PRIORITY_CONTEXT_SWITCH TIMEMORY_PRIORITY_CONTEXT_SWITCH_idx
549#endif
550#if !defined(TIMEMORY_PROCESS_CPU_CLOCK)
551# define TIMEMORY_PROCESS_CPU_CLOCK TIMEMORY_PROCESS_CPU_CLOCK_idx
552#endif
553#if !defined(TIMEMORY_PROCESS_CPU_UTIL)
554# define TIMEMORY_PROCESS_CPU_UTIL TIMEMORY_PROCESS_CPU_UTIL_idx
555#endif
556#if !defined(TIMEMORY_READ_BYTES)
557# define TIMEMORY_READ_BYTES TIMEMORY_READ_BYTES_idx
558#endif
559#if !defined(TIMEMORY_READ_CHAR)
560# define TIMEMORY_READ_CHAR TIMEMORY_READ_CHAR_idx
561#endif
562#if !defined(TIMEMORY_ROCTX_MARKER)
563# define TIMEMORY_ROCTX_MARKER TIMEMORY_ROCTX_MARKER_idx
564#endif
565#if !defined(TIMEMORY_SYS_CLOCK)
566# define TIMEMORY_SYS_CLOCK TIMEMORY_SYS_CLOCK_idx
567#endif
568#if !defined(TIMEMORY_TAU_MARKER)
569# define TIMEMORY_TAU_MARKER TIMEMORY_TAU_MARKER_idx
570#endif
571#if !defined(TIMEMORY_THREAD_CPU_CLOCK)
572# define TIMEMORY_THREAD_CPU_CLOCK TIMEMORY_THREAD_CPU_CLOCK_idx
573#endif
574#if !defined(TIMEMORY_THREAD_CPU_UTIL)
575# define TIMEMORY_THREAD_CPU_UTIL TIMEMORY_THREAD_CPU_UTIL_idx
576#endif
577#if !defined(TIMEMORY_TIMESTAMP)
578# define TIMEMORY_TIMESTAMP TIMEMORY_TIMESTAMP_idx
579#endif
580#if !defined(TIMEMORY_TRIP_COUNT)
581# define TIMEMORY_TRIP_COUNT TIMEMORY_TRIP_COUNT_idx
582#endif
583#if !defined(TIMEMORY_USER_CLOCK)
584# define TIMEMORY_USER_CLOCK TIMEMORY_USER_CLOCK_idx
585#endif
586#if !defined(TIMEMORY_USER_MODE_TIME)
587# define TIMEMORY_USER_MODE_TIME TIMEMORY_USER_MODE_TIME_idx
588#endif
589#if !defined(TIMEMORY_USER_GLOBAL_BUNDLE)
590# define TIMEMORY_USER_GLOBAL_BUNDLE TIMEMORY_USER_GLOBAL_BUNDLE_idx
591#endif
592#if !defined(TIMEMORY_USER_KOKKOSP_BUNDLE)
593# define TIMEMORY_USER_KOKKOSP_BUNDLE TIMEMORY_USER_KOKKOSP_BUNDLE_idx
594#endif
595#if !defined(TIMEMORY_USER_LIST_BUNDLE)
596# define TIMEMORY_USER_LIST_BUNDLE TIMEMORY_USER_LIST_BUNDLE_idx
597#endif
598#if !defined(TIMEMORY_USER_MPIP_BUNDLE)
599# define TIMEMORY_USER_MPIP_BUNDLE TIMEMORY_USER_MPIP_BUNDLE_idx
600#endif
601#if !defined(TIMEMORY_USER_NCCLP_BUNDLE)
602# define TIMEMORY_USER_NCCLP_BUNDLE TIMEMORY_USER_NCCLP_BUNDLE_idx
603#endif
604#if !defined(TIMEMORY_USER_OMPT_BUNDLE)
605# define TIMEMORY_USER_OMPT_BUNDLE TIMEMORY_USER_OMPT_BUNDLE_idx
606#endif
607#if !defined(TIMEMORY_USER_TUPLE_BUNDLE)
608# define TIMEMORY_USER_TUPLE_BUNDLE TIMEMORY_USER_TUPLE_BUNDLE_idx
609#endif
610#if !defined(TIMEMORY_USER_PROFILER_BUNDLE)
611# define TIMEMORY_USER_PROFILER_BUNDLE TIMEMORY_USER_PROFILER_BUNDLE_idx
612#endif
613#if !defined(TIMEMORY_USER_TRACE_BUNDLE)
614# define TIMEMORY_USER_TRACE_BUNDLE TIMEMORY_USER_TRACE_BUNDLE_idx
615#endif
616#if !defined(TIMEMORY_VIRTUAL_MEMORY)
617# define TIMEMORY_VIRTUAL_MEMORY TIMEMORY_VIRTUAL_MEMORY_idx
618#endif
619#if !defined(TIMEMORY_VOLUNTARY_CONTEXT_SWITCH)
620# define TIMEMORY_VOLUNTARY_CONTEXT_SWITCH TIMEMORY_VOLUNTARY_CONTEXT_SWITCH_idx
621#endif
622#if !defined(TIMEMORY_VTUNE_EVENT)
623# define TIMEMORY_VTUNE_EVENT TIMEMORY_VTUNE_EVENT_idx
624#endif
625#if !defined(TIMEMORY_VTUNE_FRAME)
626# define TIMEMORY_VTUNE_FRAME TIMEMORY_VTUNE_FRAME_idx
627#endif
628#if !defined(TIMEMORY_VTUNE_PROFILER)
629# define TIMEMORY_VTUNE_PROFILER TIMEMORY_VTUNE_PROFILER_idx
630#endif
631#if !defined(TIMEMORY_WALL_CLOCK)
632# define TIMEMORY_WALL_CLOCK TIMEMORY_WALL_CLOCK_idx
633#endif
634#if !defined(TIMEMORY_WRITTEN_BYTES)
635# define TIMEMORY_WRITTEN_BYTES TIMEMORY_WRITTEN_BYTES_idx
636#endif
637#if !defined(TIMEMORY_WRITTEN_CHAR)
638# define TIMEMORY_WRITTEN_CHAR TIMEMORY_WRITTEN_CHAR_idx
639#endif
640//
641/// \macro TIMEMORY_NATIVE_COMPONENT_ENUM_SIZE
642/// \brief The number of enumerated components natively defined by timemory
643//
644#if !defined(TIMEMORY_NATIVE_COMPONENT_ENUM_SIZE)
645# define TIMEMORY_NATIVE_COMPONENT_ENUM_SIZE TIMEMORY_NATIVE_COMPONENTS_END
646#endif
647//
648/// \macro TIMEMORY_NATIVE_COMPONENT_INTERNAL_SIZE
649/// \brief The number of enumerated components which are private to
650/// TIMEMORY_COMPONENT_TYPES. This is mainly just used by the validation checks
651/// between the number of enumerations and the types specified in TIMEMORY_COMPONENT_TYPES
652//
653#if !defined(TIMEMORY_NATIVE_COMPONENT_INTERNAL_SIZE)
654# define TIMEMORY_NATIVE_COMPONENT_INTERNAL_SIZE 8
655#endif
656//
657//--------------------------------------------------------------------------------------//
658//
660//
661#if !defined(CALIPER)
662# define CALIPER CALIPER_MARKER
663#endif
664//
665#if !defined(USER_TUPLE_BUNDLE)
666# define USER_TUPLE_BUNDLE USER_GLOBAL_BUNDLE
667#endif
668//
669#if !defined(USER_LIST_BUNDLE)
670# define USER_LIST_BUNDLE USER_GLOBAL_BUNDLE
671#endif
672//
673//--------------------------------------------------------------------------------------//
674//
675/// \enum TIMEMORY_OPERATION
676/// \brief Enumerated identifiers for subset of common operations for usage in C code
677/// and specializations of \ref tim::trait::python_args.
679{
693//
694//--------------------------------------------------------------------------------------//
695//
int TIMEMORY_COMPONENT
Definition: enum.h:659
#define TIMEMORY_USER_COMPONENT_ENUM_SIZE
Definition: enum.h:56
#define TIMEMORY_USER_COMPONENT_ENUM
\macro TIMEMORY_USER_COMPONENT_ENUM
Definition: enum.h:50
TIMEMORY_OPERATION
Enumerated identifiers for subset of common operations for usage in C code and specializations of tim...
Definition: enum.h:679
@ TIMEMORY_STORE
Definition: enum.h:685
@ TIMEMORY_AUDIT
Definition: enum.h:682
@ TIMEMORY_SAMPLE
Definition: enum.h:687
@ TIMEMORY_START
Definition: enum.h:683
@ TIMEMORY_MEASURE
Definition: enum.h:688
@ TIMEMORY_OPERATION_END
Definition: enum.h:691
@ TIMEMORY_STOP
Definition: enum.h:684
@ TIMEMORY_MARK_END
Definition: enum.h:690
@ TIMEMORY_CONSTRUCT
Definition: enum.h:680
@ TIMEMORY_MARK_BEGIN
Definition: enum.h:689
@ TIMEMORY_GET
Definition: enum.h:681
@ TIMEMORY_RECORD
Definition: enum.h:686
TIMEMORY_NATIVE_COMPONENT
Enumerated identifiers for timemory-provided components.
Definition: enum.h:63
@ TIMEMORY_USER_MODE_TIME_idx
Definition: enum.h:127
@ TIMEMORY_CUPTI_ACTIVITY_idx
Definition: enum.h:80
@ TIMEMORY_COMPONENTS_END_idx
Definition: enum.h:146
@ TIMEMORY_MEMORY_ALLOCATIONS_idx
Definition: enum.h:98
@ TIMEMORY_PEAK_RSS_idx
Definition: enum.h:111
@ TIMEMORY_THREAD_CPU_CLOCK_idx
Definition: enum.h:122
@ TIMEMORY_GPU_ROOFLINE_HP_FLOPS_idx
Definition: enum.h:91
@ TIMEMORY_CPU_ROOFLINE_DP_FLOPS_idx
Definition: enum.h:69
@ TIMEMORY_WRITTEN_BYTES_idx
Definition: enum.h:143
@ TIMEMORY_GPU_ROOFLINE_FLOPS_idx
Definition: enum.h:90
@ TIMEMORY_USER_TRACE_BUNDLE_idx
Definition: enum.h:136
@ TIMEMORY_CUDA_PROFILER_idx
Definition: enum.h:79
@ TIMEMORY_NVTX_MARKER_idx
Definition: enum.h:106
@ TIMEMORY_PROCESS_CPU_CLOCK_idx
Definition: enum.h:115
@ TIMEMORY_TAU_MARKER_idx
Definition: enum.h:121
@ TIMEMORY_NETWORK_STATS_idx
Definition: enum.h:101
@ TIMEMORY_MONOTONIC_RAW_CLOCK_idx
Definition: enum.h:100
@ TIMEMORY_USER_NCCLP_BUNDLE_idx
Definition: enum.h:132
@ TIMEMORY_TIMESTAMP_idx
Definition: enum.h:124
@ TIMEMORY_PAPI_VECTOR_idx
Definition: enum.h:110
@ TIMEMORY_GPU_ROOFLINE_SP_FLOPS_idx
Definition: enum.h:92
@ TIMEMORY_WRITTEN_CHAR_idx
Definition: enum.h:144
@ TIMEMORY_CALIPER_MARKER_idx
Definition: enum.h:65
@ TIMEMORY_OMPT_HANDLE_idx
Definition: enum.h:107
@ TIMEMORY_MALLOC_GOTCHA_idx
Definition: enum.h:97
@ TIMEMORY_VTUNE_PROFILER_idx
Definition: enum.h:141
@ TIMEMORY_KERNEL_MODE_TIME_idx
Definition: enum.h:94
@ TIMEMORY_ROCTX_MARKER_idx
Definition: enum.h:119
@ TIMEMORY_NATIVE_COMPONENTS_END_idx
Definition: enum.h:145
@ TIMEMORY_GPERFTOOLS_HEAP_PROFILER_idx
Definition: enum.h:88
@ TIMEMORY_GPU_ROOFLINE_DP_FLOPS_idx
Definition: enum.h:89
@ TIMEMORY_MONOTONIC_CLOCK_idx
Definition: enum.h:99
@ TIMEMORY_CURRENT_PEAK_RSS_idx
Definition: enum.h:83
@ TIMEMORY_NUM_MINOR_PAGE_FAULTS_idx
Definition: enum.h:105
@ TIMEMORY_CRAYPAT_COUNTERS_idx
Definition: enum.h:73
@ TIMEMORY_USER_LIST_BUNDLE_idx
Definition: enum.h:130
@ TIMEMORY_NUM_MAJOR_PAGE_FAULTS_idx
Definition: enum.h:104
@ TIMEMORY_CRAYPAT_REGION_idx
Definition: enum.h:77
@ TIMEMORY_WALL_CLOCK_idx
Definition: enum.h:142
@ TIMEMORY_DATA_TRACKER_INTEGER_idx
Definition: enum.h:84
@ TIMEMORY_USER_CLOCK_idx
Definition: enum.h:126
@ TIMEMORY_VTUNE_FRAME_idx
Definition: enum.h:140
@ TIMEMORY_USER_PROFILER_BUNDLE_idx
Definition: enum.h:135
@ TIMEMORY_USER_KOKKOSP_BUNDLE_idx
Definition: enum.h:129
@ TIMEMORY_LIKWID_MARKER_idx
Definition: enum.h:95
@ TIMEMORY_CPU_UTIL_idx
Definition: enum.h:72
@ TIMEMORY_CRAYPAT_RECORD_idx
Definition: enum.h:76
@ TIMEMORY_PRINTER_idx
Definition: enum.h:113
@ TIMEMORY_USER_TUPLE_BUNDLE_idx
Definition: enum.h:134
@ TIMEMORY_CPU_ROOFLINE_SP_FLOPS_idx
Definition: enum.h:71
@ TIMEMORY_SYS_CLOCK_idx
Definition: enum.h:120
@ TIMEMORY_USER_GLOBAL_BUNDLE_idx
Definition: enum.h:128
@ TIMEMORY_NUM_IO_OUT_idx
Definition: enum.h:103
@ TIMEMORY_CUDA_EVENT_idx
Definition: enum.h:78
@ TIMEMORY_ALLINEA_MAP_idx
Definition: enum.h:64
@ TIMEMORY_PROCESS_CPU_UTIL_idx
Definition: enum.h:116
@ TIMEMORY_LIKWID_NVMARKER_idx
Definition: enum.h:96
@ TIMEMORY_NUM_IO_IN_idx
Definition: enum.h:102
@ TIMEMORY_CUPTI_COUNTERS_idx
Definition: enum.h:81
@ TIMEMORY_READ_BYTES_idx
Definition: enum.h:117
@ TIMEMORY_CALIPER_CONFIG_idx
Definition: enum.h:66
@ TIMEMORY_USER_OMPT_BUNDLE_idx
Definition: enum.h:133
@ TIMEMORY_VTUNE_EVENT_idx
Definition: enum.h:139
@ TIMEMORY_VOLUNTARY_CONTEXT_SWITCH_idx
Definition: enum.h:138
@ TIMEMORY_CRAYPAT_HEAP_STATS_idx
Definition: enum.h:75
@ TIMEMORY_DATA_TRACKER_FLOATING_idx
Definition: enum.h:86
@ TIMEMORY_USER_MPIP_BUNDLE_idx
Definition: enum.h:131
@ TIMEMORY_READ_CHAR_idx
Definition: enum.h:118
@ TIMEMORY_HIP_EVENT_idx
Definition: enum.h:93
@ TIMEMORY_PAPI_ARRAY_idx
Definition: enum.h:109
@ TIMEMORY_CPU_ROOFLINE_FLOPS_idx
Definition: enum.h:70
@ TIMEMORY_DATA_TRACKER_UNSIGNED_idx
Definition: enum.h:85
@ TIMEMORY_PERFETTO_TRACE_idx
Definition: enum.h:112
@ TIMEMORY_GPERFTOOLS_CPU_PROFILER_idx
Definition: enum.h:87
@ TIMEMORY_CUPTI_PCSAMPLING_idx
Definition: enum.h:82
@ TIMEMORY_THREAD_CPU_UTIL_idx
Definition: enum.h:123
@ TIMEMORY_PAGE_RSS_idx
Definition: enum.h:108
@ TIMEMORY_CPU_CLOCK_idx
Definition: enum.h:68
@ TIMEMORY_TRIP_COUNT_idx
Definition: enum.h:125
@ TIMEMORY_CALIPER_LOOP_MARKER_idx
Definition: enum.h:67
@ TIMEMORY_CRAYPAT_FLUSH_BUFFER_idx
Definition: enum.h:74
@ TIMEMORY_PRIORITY_CONTEXT_SWITCH_idx
Definition: enum.h:114
@ TIMEMORY_VIRTUAL_MEMORY_idx
Definition: enum.h:137