Files
rocm-systems/tests/omnitrace-annotate-tests.cmake
T
Jonathan R. Madsen 1aca8c177b Perfetto annotation from timemory components (#289)
* Annotate perfetto with timemory component data

- support perfetto annotations via timemory component data, e.g. use PAPI component for exact HW counter annotations

* Tests for perfetto annotation via timemory data

* Update omnitrace-instrument

- remove --default-components argument as this overrides any components set in configuration file
- required by perfetto annotation via timemory data tests

* filter unavailable timemory components

- filter out unavailable timemory components before attempting to invoke the annotate operation on the bundle

* update annotate tests

- account for no PAPI support

* update lulesh-timemory test

- replace '-d wall_clock peak_rss' with '--env OMNITRACE_TIMEMORY_COMPONENTS="wall_clock peak_rss"'

* annotate tests update

- fix misnamed test

* annotate tests update

- restrict binary rewrite to run function to force instrumentation despite heuristics

* annotate tests update

- print {available,overlapping,excluded,instrumented} functions during binary rewrite

* annotate tests update

- add allow-overlapping flag

* Support PAPI with CAP_SYS_ADMIN

- do not disable PAPI if perf_event_paranoid > 2 but has CAP_SYS_ADMIN capability
2023-06-19 19:18:04 -05:00

93 righe
2.7 KiB
CMake

# -------------------------------------------------------------------------------------- #
#
# papi tests
#
# -------------------------------------------------------------------------------------- #
if(OMNITRACE_USE_PAPI
AND (omnitrace_perf_event_paranoid LESS_EQUAL 3
OR omnitrace_cap_sys_admin EQUAL 0
OR omnitrace_cap_perfmon EQUAL 0))
set(_annotate_environment
"${_base_environment}"
"OMNITRACE_TIMEMORY_COMPONENTS=thread_cpu_clock papi_array"
"OMNITRACE_PAPI_EVENTS=perf::PERF_COUNT_SW_CPU_CLOCK"
"OMNITRACE_USE_SAMPLING=OFF")
omnitrace_add_test(
SKIP_BASELINE SKIP_RUNTIME
NAME annotate
TARGET parallel-overhead
RUN_ARGS 30 2 200
REWRITE_ARGS
-e
-v
2
-R
run
--allow-overlapping
--print-available
functions
--print-overlapping
functions
--print-excluded
functions
--print-instrumented
functions
--print-instructions
ENVIRONMENT "${_annotate_environment}"
LABELS "annotate;papi")
omnitrace_add_validation_test(
NAME annotate-binary-rewrite
PERFETTO_FILE "perfetto-trace.proto"
LABELS "annotate;papi"
ARGS --key-names perf::PERF_COUNT_SW_CPU_CLOCK thread_cpu_clock --key-counts 8 8)
omnitrace_add_validation_test(
NAME annotate-sampling
PERFETTO_FILE "perfetto-trace.proto"
LABELS "papi"
ARGS --key-names thread_cpu_clock --key-counts 6)
else()
set(_annotate_environment
"${_base_environment}" "OMNITRACE_TIMEMORY_COMPONENTS=thread_cpu_clock"
"OMNITRACE_USE_SAMPLING=OFF")
omnitrace_add_test(
SKIP_BASELINE SKIP_RUNTIME
NAME annotate
TARGET parallel-overhead
RUN_ARGS 30 2 200
REWRITE_ARGS
-e
-v
2
-R
run
--allow-overlapping
--print-available
functions
--print-overlapping
functions
--print-excluded
functions
--print-instrumented
functions
--print-instructions
ENVIRONMENT "${_annotate_environment}"
LABELS "annotate")
omnitrace_add_validation_test(
NAME annotate-binary-rewrite
PERFETTO_FILE "perfetto-trace.proto"
LABELS "annotate"
ARGS --key-names thread_cpu_clock --key-counts 8)
omnitrace_add_validation_test(
NAME annotate-sampling
PERFETTO_FILE "perfetto-trace.proto"
LABELS "annotate"
ARGS --key-names thread_cpu_clock --key-counts 6)
endif()