Put cached perfetto traces as default one (#2138)
* Put cached perfetto traces as default one * Improve cached data and perfetto traces in order to be more aligned with E2E tests * Addressing PR comments and findings * Force early instrumentation bundle instantiation * Sync-up insturumented containers with thread growth data * Revert ompvv number of host threads to default 8 * Fixed counter track namings for amd-smi * AIPROFSYST-34 [rocprof-sys] Update documentation describing newly introduced changes to default tracing mechanism
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
7da3275b42
Коммит
ba1380a75d
+9
-9
@@ -60,24 +60,24 @@
|
||||
},
|
||||
{
|
||||
"comparison": "equals",
|
||||
"description": "Verify that 'roctxMarkA' appears at 5 times in table 'regions'",
|
||||
"error_message": "Expected 5 'roctxMarkA' entries in `regions` table",
|
||||
"description": "Verify that roctxMark markers appear 5 times in table 'regions'",
|
||||
"error_message": "Expected 5 roctxMark marker entries in `regions` table",
|
||||
"expected_result": 5,
|
||||
"query": "SELECT COUNT(*) FROM regions WHERE category = 'rocm_marker_api' AND name = 'roctxMarkA';"
|
||||
"query": "SELECT COUNT(*) FROM regions WHERE category = 'rocm_marker_api' AND name LIKE 'roctxMark_%';"
|
||||
},
|
||||
{
|
||||
"comparison": "equals",
|
||||
"description": "Verify that 'roctxRangePop' appears at 3 times in table 'regions'",
|
||||
"error_message": "Expected 3 'roctxRangePop' entries in `regions` table",
|
||||
"description": "Verify that roctxRangePush markers appear 3 times in table 'regions'",
|
||||
"error_message": "Expected 3 roctxRangePush marker entries in `regions` table",
|
||||
"expected_result": 3,
|
||||
"query": "SELECT COUNT(*) FROM regions WHERE category = 'rocm_marker_api' AND name = 'roctxRangePop';"
|
||||
"query": "SELECT COUNT(*) FROM regions WHERE category = 'rocm_marker_api' AND name LIKE 'roctxRangePush_%';"
|
||||
},
|
||||
{
|
||||
"comparison": "equals",
|
||||
"description": "Verify that 'roctxRangeStop' appears at 2 times in table 'regions'",
|
||||
"error_message": "Expected 2 'roctxRangeStop' entries in `regions` table",
|
||||
"description": "Verify that roctxRangeStart markers appear 2 times in table 'regions'",
|
||||
"error_message": "Expected 2 roctxRangeStart marker entries in `regions` table",
|
||||
"expected_result": 2,
|
||||
"query": "SELECT COUNT(*) FROM regions WHERE category = 'rocm_marker_api' AND name = 'roctxRangeStop';"
|
||||
"query": "SELECT COUNT(*) FROM regions WHERE category = 'rocm_marker_api' AND name LIKE 'roctxRangeStart_%';"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
@@ -36,6 +36,8 @@ if(
|
||||
)
|
||||
set(_annotate_environment
|
||||
"${_base_environment}"
|
||||
"ROCPROFSYS_TRACE_CACHED=OFF"
|
||||
"ROCPROFSYS_TRACE_LEGACY=ON"
|
||||
"ROCPROFSYS_TIMEMORY_COMPONENTS=thread_cpu_clock papi_array"
|
||||
"ROCPROFSYS_PAPI_EVENTS=perf::PERF_COUNT_SW_CPU_CLOCK"
|
||||
"ROCPROFSYS_USE_SAMPLING=OFF"
|
||||
@@ -82,6 +84,8 @@ if(
|
||||
else()
|
||||
set(_annotate_environment
|
||||
"${_base_environment}"
|
||||
"ROCPROFSYS_TRACE_CACHED=OFF"
|
||||
"ROCPROFSYS_TRACE_LEGACY=ON"
|
||||
"ROCPROFSYS_TIMEMORY_COMPONENTS=thread_cpu_clock"
|
||||
"ROCPROFSYS_USE_SAMPLING=OFF"
|
||||
)
|
||||
|
||||
@@ -233,7 +233,7 @@ rocprofiler_systems_add_bin_test(
|
||||
TIMEOUT 45
|
||||
PASS_REGEX
|
||||
"ENVIRONMENT VARIABLE,[ \n]+ROCPROFSYS_CI_SKIP_PUSH_POP_CHECK,[ \n]+ROCPROFSYS_THREAD_POOL_SIZE,[ \n]+ROCPROFSYS_USE_PID,[ \n]+"
|
||||
FAIL_REGEX "ROCPROFSYS_TRACE|ROCPROFSYS_ABORT_FAIL_REGEX"
|
||||
FAIL_REGEX "ROCPROFSYS_TRACE_LEGACY|ROCPROFSYS_TRACE_CACHED|ROCPROFSYS_ABORT_FAIL_REGEX"
|
||||
)
|
||||
|
||||
string(
|
||||
@@ -270,7 +270,7 @@ rocprofiler_systems_add_bin_test(
|
||||
txt json xml --force
|
||||
TIMEOUT 45
|
||||
LABELS "rocprofiler-systems-avail"
|
||||
ENVIRONMENT "ROCPROFSYS_TRACE=OFF;ROCPROFSYS_PROFILE=ON"
|
||||
ENVIRONMENT "ROCPROFSYS_TRACE_LEGACY=OFF;ROCPROFSYS_TRACE_CACHED=OFF;ROCPROFSYS_PROFILE=ON"
|
||||
PASS_REGEX
|
||||
"Outputting JSON configuration file '${_AVAIL_CFG_PATH}tweak\\\.json'(.*)Outputting XML configuration file '${_AVAIL_CFG_PATH}tweak\\\.xml'(.*)Outputting text configuration file '${_AVAIL_CFG_PATH}tweak\\\.cfg'(.*)"
|
||||
)
|
||||
|
||||
@@ -26,7 +26,10 @@
|
||||
#
|
||||
# -------------------------------------------------------------------------------------- #
|
||||
|
||||
# Use legacy trace mode for AMD SMI counters - cached mode doesn't support real-time counter tracking
|
||||
set(_gpu_connect_environment
|
||||
"ROCPROFSYS_TRACE_CACHED=OFF"
|
||||
"ROCPROFSYS_TRACE_LEGACY=ON"
|
||||
"ROCPROFSYS_ROCM_DOMAINS=hip_runtime_api"
|
||||
"ROCPROFSYS_AMD_SMI_METRICS=busy,temp,power,xgmi,pcie"
|
||||
"ROCPROFSYS_SAMPLING_CPUS=none"
|
||||
|
||||
@@ -74,5 +74,5 @@ rocprofiler_systems_add_test(
|
||||
REWRITE_ARGS -e -v 2 --min-instructions=8
|
||||
RUN_ARGS 10 4 1000
|
||||
ENVIRONMENT
|
||||
"${_lock_environment};ROCPROFSYS_FLAT_PROFILE=ON;ROCPROFSYS_PROFILE=OFF;ROCPROFSYS_TRACE=ON;ROCPROFSYS_SAMPLING_KEEP_INTERNAL=OFF"
|
||||
"${_lock_environment};ROCPROFSYS_FLAT_PROFILE=ON;ROCPROFSYS_PROFILE=OFF;ROCPROFSYS_TRACE_LEGACY=OFF;ROCPROFSYS_TRACE_CACHED=ON;ROCPROFSYS_SAMPLING_KEEP_INTERNAL=OFF"
|
||||
)
|
||||
|
||||
@@ -51,9 +51,11 @@ rocprofiler_systems_add_test(
|
||||
REWRITE_RUN_PASS_REGEX
|
||||
"(/[A-Za-z-]+/perfetto-trace-0.proto).*(/[A-Za-z-]+/wall_clock-0.txt')"
|
||||
REWRITE_RUN_FAIL_REGEX
|
||||
"(perfetto-trace|trip_count|sampling_percent|sampling_cpu_clock|sampling_wall_clock|wall_clock)-[0-9][0-9]+.(json|txt|proto)|ROCPROFSYS_ABORT_FAIL_REGEX"
|
||||
"Outputting.*(perfetto-trace|trip_count|sampling_percent|sampling_cpu_clock|sampling_wall_clock|wall_clock)-[0-9][0-9]+.(json|txt|proto)|ROCPROFSYS_ABORT_FAIL_REGEX"
|
||||
)
|
||||
|
||||
# mpi-perfetto-merge requires legacy trace mode because MPI trace combining
|
||||
# uses MPI communication (mpi_get) which is only implemented in the legacy path
|
||||
rocprofiler_systems_add_test(
|
||||
SKIP_RUNTIME
|
||||
NAME "mpi-perfetto-merge"
|
||||
@@ -70,7 +72,8 @@ rocprofiler_systems_add_test(
|
||||
line
|
||||
--min-instructions
|
||||
0
|
||||
ENVIRONMENT "${_base_environment};ROCPROFSYS_VERBOSE=1"
|
||||
ENVIRONMENT
|
||||
"${_base_environment};ROCPROFSYS_VERBOSE=1;ROCPROFSYS_TRACE_CACHED=OFF;ROCPROFSYS_TRACE_LEGACY=ON;ROCPROFSYS_PERFETTO_COMBINE_TRACES=ON"
|
||||
REWRITE_RUN_PASS_REGEX
|
||||
"Successfully executed: .+rocprof-sys-merge-output.sh.*"
|
||||
REWRITE_RUN_FAIL_REGEX
|
||||
@@ -123,7 +126,8 @@ rocprofiler_systems_add_test(
|
||||
)
|
||||
|
||||
set(_mpip_environment
|
||||
"ROCPROFSYS_TRACE=ON"
|
||||
"ROCPROFSYS_TRACE_LEGACY=OFF"
|
||||
"ROCPROFSYS_TRACE_CACHED=ON"
|
||||
"ROCPROFSYS_PROFILE=ON"
|
||||
"ROCPROFSYS_USE_SAMPLING=OFF"
|
||||
"ROCPROFSYS_USE_PROCESS_SAMPLING=OFF"
|
||||
@@ -138,7 +142,8 @@ set(_mpip_environment
|
||||
)
|
||||
|
||||
set(_mpip_all2all_environment
|
||||
"ROCPROFSYS_TRACE=ON"
|
||||
"ROCPROFSYS_TRACE_LEGACY=OFF"
|
||||
"ROCPROFSYS_TRACE_CACHED=ON"
|
||||
"ROCPROFSYS_PROFILE=ON"
|
||||
"ROCPROFSYS_USE_SAMPLING=OFF"
|
||||
"ROCPROFSYS_USE_PROCESS_SAMPLING=OFF"
|
||||
|
||||
@@ -25,8 +25,11 @@ execute_process(
|
||||
|
||||
message(STATUS "The list of all PAPI network events is ${_event_list}")
|
||||
|
||||
# Use legacy trace mode for network stats - cached mode doesn't support real-time counter tracking
|
||||
set(_nic_perf_environment
|
||||
"${_base_environment}"
|
||||
"ROCPROFSYS_TRACE_CACHED=OFF"
|
||||
"ROCPROFSYS_TRACE_LEGACY=ON"
|
||||
"ROCPROFSYS_OUTPUT_PATH=${PROJECT_BINARY_DIR}/rocprof-sys-tests-output/nic-performance"
|
||||
"ROCPROFSYS_USE_PID=OFF"
|
||||
"ROCPROFSYS_VERBOSE=1"
|
||||
|
||||
@@ -22,7 +22,8 @@ if(NOT EXISTS "${ROCM_LLVM_LIB_PATH}/libomptarget.so" AND ROCPROFSYS_USE_ROCM)
|
||||
endif()
|
||||
|
||||
set(_ompt_environment
|
||||
"ROCPROFSYS_TRACE=ON"
|
||||
"ROCPROFSYS_TRACE_LEGACY=OFF"
|
||||
"ROCPROFSYS_TRACE_CACHED=ON"
|
||||
"ROCPROFSYS_PROFILE=ON"
|
||||
"ROCPROFSYS_TIME_OUTPUT=OFF"
|
||||
"ROCPROFSYS_USE_OMPT=ON"
|
||||
@@ -126,6 +127,7 @@ if(ROCPROFSYS_OMPVV_HOST_TESTS)
|
||||
-e -v 1 --label return args
|
||||
SAMPLING_TIMEOUT 300
|
||||
REWRITE_TIMEOUT 300
|
||||
RUNTIME_TIMEOUT 600
|
||||
ENVIRONMENT
|
||||
"${_ompt_environment};ROCPROFSYS_COUT_OUTPUT=ON;ROCPROFSYS_CI_SKIP_PUSH_POP_CHECK=ON"
|
||||
REWRITE_RUN_PASS_REGEX "${_OMPT_PASS_REGEX}"
|
||||
|
||||
@@ -34,7 +34,7 @@ rocprofiler_systems_add_test(
|
||||
RUNTIME_ARGS -e -i 256
|
||||
RUN_ARGS 30 4 1000
|
||||
ENVIRONMENT
|
||||
"${_lock_environment};ROCPROFSYS_PROFILE=ON;ROCPROFSYS_TRACE=ON;ROCPROFSYS_COLLAPSE_THREADS=OFF;ROCPROFSYS_SAMPLING_REALTIME=ON;ROCPROFSYS_SAMPLING_REALTIME_FREQ=10;ROCPROFSYS_SAMPLING_REALTIME_TIDS=0;ROCPROFSYS_SAMPLING_KEEP_INTERNAL=OFF"
|
||||
"${_lock_environment};ROCPROFSYS_PROFILE=ON;ROCPROFSYS_TRACE_LEGACY=OFF;ROCPROFSYS_TRACE_CACHED=ON;ROCPROFSYS_COLLAPSE_THREADS=OFF;ROCPROFSYS_SAMPLING_REALTIME=ON;ROCPROFSYS_SAMPLING_REALTIME_FREQ=10;ROCPROFSYS_SAMPLING_REALTIME_TIDS=0;ROCPROFSYS_SAMPLING_KEEP_INTERNAL=OFF"
|
||||
REWRITE_RUN_PASS_REGEX
|
||||
"wall_clock .*\\|_pthread_create .* 4 .*\\|_pthread_mutex_lock .* 1000 .*\\|_pthread_mutex_unlock .* 1000 .*\\|_pthread_mutex_lock .* 1000 .*\\|_pthread_mutex_unlock .* 1000 .*\\|_pthread_mutex_lock .* 1000 .*\\|_pthread_mutex_unlock .* 1000 .*\\|_pthread_mutex_lock .* 1000 .*\\|_pthread_mutex_unlock .* 1000"
|
||||
RUNTIME_PASS_REGEX
|
||||
@@ -50,7 +50,7 @@ rocprofiler_systems_add_test(
|
||||
TrampRecursive
|
||||
RUN_ARGS 10 4 1000
|
||||
ENVIRONMENT
|
||||
"${_lock_environment};ROCPROFSYS_FLAT_PROFILE=ON;ROCPROFSYS_PROFILE=ON;ROCPROFSYS_TRACE=OFF;ROCPROFSYS_SAMPLING_KEEP_INTERNAL=OFF"
|
||||
"${_lock_environment};ROCPROFSYS_FLAT_PROFILE=ON;ROCPROFSYS_PROFILE=ON;ROCPROFSYS_TRACE_LEGACY=OFF;ROCPROFSYS_SAMPLING_KEEP_INTERNAL=OFF"
|
||||
REWRITE_RUN_PASS_REGEX
|
||||
"start_thread (.*) 4 (.*) pthread_mutex_lock (.*) 4000 (.*) pthread_mutex_unlock (.*) 4000"
|
||||
)
|
||||
|
||||
@@ -164,15 +164,28 @@ foreach(_VERSION ${ROCPROFSYS_PYTHON_VERSIONS})
|
||||
TEST
|
||||
""
|
||||
"NAME;TIMEMORY_METRIC;TIMEMORY_FILE;PERFETTO_FILE"
|
||||
"ARGS;PERFETTO_METRIC;ROCPD_FILE;ROCPD_RULES"
|
||||
"ARGS;TIMEMORY_ARGS;PERFETTO_ARGS;PERFETTO_METRIC;ROCPD_FILE;ROCPD_RULES"
|
||||
${ARGN}
|
||||
)
|
||||
|
||||
# Use specific args if provided, otherwise fall back to common ARGS
|
||||
if(TEST_TIMEMORY_ARGS)
|
||||
set(_TIMEMORY_VALIDATION_ARGS ${TEST_TIMEMORY_ARGS})
|
||||
else()
|
||||
set(_TIMEMORY_VALIDATION_ARGS ${TEST_ARGS})
|
||||
endif()
|
||||
|
||||
if(TEST_PERFETTO_ARGS)
|
||||
set(_PERFETTO_VALIDATION_ARGS ${TEST_PERFETTO_ARGS})
|
||||
else()
|
||||
set(_PERFETTO_VALIDATION_ARGS ${TEST_ARGS})
|
||||
endif()
|
||||
|
||||
rocprofiler_systems_add_python_test(
|
||||
NAME ${TEST_NAME}-validate-timemory
|
||||
COMMAND
|
||||
${_PYTHON_EXECUTABLE} ${CMAKE_CURRENT_LIST_DIR}/validate-timemory-json.py
|
||||
-m ${TEST_TIMEMORY_METRIC} ${TEST_ARGS} -i
|
||||
-m ${TEST_TIMEMORY_METRIC} ${_TIMEMORY_VALIDATION_ARGS} -i
|
||||
PYTHON_VERSION ${_VERSION}
|
||||
FILE rocprof-sys-tests-output/${TEST_NAME}/${_VERSION}/${TEST_TIMEMORY_FILE}
|
||||
DEPENDS ${TEST_NAME}-${_VERSION}
|
||||
@@ -185,7 +198,7 @@ foreach(_VERSION ${ROCPROFSYS_PYTHON_VERSIONS})
|
||||
NAME ${TEST_NAME}-validate-perfetto
|
||||
COMMAND
|
||||
${_PYTHON_EXECUTABLE} ${CMAKE_CURRENT_LIST_DIR}/validate-perfetto-proto.py
|
||||
-m ${TEST_PERFETTO_METRIC} ${TEST_ARGS} -p -t
|
||||
-m ${TEST_PERFETTO_METRIC} ${_PERFETTO_VALIDATION_ARGS} -p -t
|
||||
/opt/trace_processor/bin/trace_processor_shell -i
|
||||
PYTHON_VERSION ${_VERSION}
|
||||
FILE rocprof-sys-tests-output/${TEST_NAME}/${_VERSION}/${TEST_PERFETTO_FILE}
|
||||
@@ -217,7 +230,8 @@ foreach(_VERSION ${ROCPROFSYS_PYTHON_VERSIONS})
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
set(python_source_labels
|
||||
# Timemory validation uses hierarchical output with multiple entries at different depths
|
||||
set(python_source_timemory_labels
|
||||
main_loop
|
||||
run
|
||||
fib
|
||||
@@ -228,7 +242,7 @@ foreach(_VERSION ${ROCPROFSYS_PYTHON_VERSIONS})
|
||||
inefficient
|
||||
_sum
|
||||
)
|
||||
set(python_source_count
|
||||
set(python_source_timemory_count
|
||||
5
|
||||
3
|
||||
3
|
||||
@@ -239,7 +253,7 @@ foreach(_VERSION ${ROCPROFSYS_PYTHON_VERSIONS})
|
||||
3
|
||||
3
|
||||
)
|
||||
set(python_source_depth
|
||||
set(python_source_timemory_depth
|
||||
0
|
||||
1
|
||||
2
|
||||
@@ -251,6 +265,29 @@ foreach(_VERSION ${ROCPROFSYS_PYTHON_VERSIONS})
|
||||
3
|
||||
)
|
||||
|
||||
# Perfetto (cached mode) aggregates entries by name
|
||||
set(python_source_perfetto_labels
|
||||
main_loop
|
||||
run
|
||||
fib
|
||||
inefficient
|
||||
_sum
|
||||
)
|
||||
set(python_source_perfetto_count
|
||||
5
|
||||
3
|
||||
24
|
||||
3
|
||||
3
|
||||
)
|
||||
set(python_source_perfetto_depth
|
||||
0
|
||||
1
|
||||
2
|
||||
2
|
||||
3
|
||||
)
|
||||
|
||||
set(python_source_categories python user)
|
||||
|
||||
rocprofiler_systems_add_python_validation_test(
|
||||
@@ -259,14 +296,17 @@ foreach(_VERSION ${ROCPROFSYS_PYTHON_VERSIONS})
|
||||
TIMEMORY_FILE "trip_count.json"
|
||||
PERFETTO_FILE "perfetto-trace.proto"
|
||||
PERFETTO_METRIC ${python_source_categories}
|
||||
ARGS -l ${python_source_labels} -c ${python_source_count} -d
|
||||
${python_source_depth}
|
||||
TIMEMORY_ARGS -l ${python_source_timemory_labels} -c ${python_source_timemory_count} -d
|
||||
${python_source_timemory_depth}
|
||||
PERFETTO_ARGS -l ${python_source_perfetto_labels} -c ${python_source_perfetto_count} -d
|
||||
${python_source_perfetto_depth}
|
||||
ROCPD_FILE "rocpd.db"
|
||||
ROCPD_RULES
|
||||
"${CMAKE_CURRENT_LIST_DIR}/rocpd-validation-rules/python/python-source-rules.json"
|
||||
)
|
||||
|
||||
set(python_builtin_labels
|
||||
# Timemory validation uses hierarchical output with multiple entries at different depths
|
||||
set(python_builtin_timemory_labels
|
||||
[run][builtin.py:31]
|
||||
[fib][builtin.py:13]
|
||||
[fib][builtin.py:13]
|
||||
@@ -280,7 +320,7 @@ foreach(_VERSION ${ROCPROFSYS_PYTHON_VERSIONS})
|
||||
[fib][builtin.py:13]
|
||||
[inefficient][builtin.py:17]
|
||||
)
|
||||
set(python_builtin_count
|
||||
set(python_builtin_timemory_count
|
||||
5
|
||||
5
|
||||
10
|
||||
@@ -294,7 +334,7 @@ foreach(_VERSION ${ROCPROFSYS_PYTHON_VERSIONS})
|
||||
10
|
||||
5
|
||||
)
|
||||
set(python_builtin_depth
|
||||
set(python_builtin_timemory_depth
|
||||
0
|
||||
1
|
||||
2
|
||||
@@ -309,14 +349,26 @@ foreach(_VERSION ${ROCPROFSYS_PYTHON_VERSIONS})
|
||||
1
|
||||
)
|
||||
|
||||
# Perfetto validation with trace caching aggregates all calls to the same function,
|
||||
# so we only expect one entry per unique label rather than hierarchical entries.
|
||||
set(python_builtin_perfetto_labels
|
||||
[run][builtin.py:31]
|
||||
[fib][builtin.py:13]
|
||||
[inefficient][builtin.py:17]
|
||||
)
|
||||
set(python_builtin_perfetto_count 5 445 5)
|
||||
set(python_builtin_perfetto_depth 0 1 1)
|
||||
|
||||
rocprofiler_systems_add_python_validation_test(
|
||||
NAME python-builtin
|
||||
TIMEMORY_METRIC "trip_count"
|
||||
TIMEMORY_FILE "trip_count.json"
|
||||
PERFETTO_METRIC "python"
|
||||
PERFETTO_FILE "perfetto-trace.proto"
|
||||
ARGS -l ${python_builtin_labels} -c ${python_builtin_count} -d
|
||||
${python_builtin_depth}
|
||||
TIMEMORY_ARGS -l ${python_builtin_timemory_labels} -c ${python_builtin_timemory_count} -d
|
||||
${python_builtin_timemory_depth}
|
||||
PERFETTO_ARGS -l ${python_builtin_perfetto_labels} -c ${python_builtin_perfetto_count} -d
|
||||
${python_builtin_perfetto_depth}
|
||||
ROCPD_FILE "rocpd.db"
|
||||
ROCPD_RULES
|
||||
"${CMAKE_CURRENT_LIST_DIR}/rocpd-validation-rules/python/python-builtin-rules.json"
|
||||
|
||||
@@ -37,8 +37,11 @@ endif()
|
||||
# -------------------------------------------------------------------------------------- #
|
||||
|
||||
# Ensure ROCPROFSYS_ROCM_DOMAINS is defined
|
||||
# Use legacy trace mode for roctx tests to preserve depth information
|
||||
set(_roctx_environment
|
||||
"${_base_environment}"
|
||||
"ROCPROFSYS_TRACE_LEGACY=ON"
|
||||
"ROCPROFSYS_TRACE_CACHED=OFF"
|
||||
"ROCPROFSYS_ROCM_DOMAINS=hip_runtime_api,marker_api,kernel_dispatch"
|
||||
)
|
||||
|
||||
@@ -56,7 +59,8 @@ rocprofiler_systems_add_test(
|
||||
ENVIRONMENT "${_roctx_environment}"
|
||||
)
|
||||
|
||||
set(ROCTX_LABEL
|
||||
# Legacy mode preserves individual entries with their original depths
|
||||
set(ROCTX_LEGACY_LABEL
|
||||
roctxMark_GPU_workload
|
||||
roctxRangePush_run_profiling
|
||||
roctxRangeStart_GPU_Compute
|
||||
@@ -70,7 +74,7 @@ set(ROCTX_LABEL
|
||||
roctxMark_Finished_GPU
|
||||
)
|
||||
|
||||
set(ROCTX_COUNT
|
||||
set(ROCTX_LEGACY_COUNT
|
||||
1
|
||||
1
|
||||
1
|
||||
@@ -84,7 +88,7 @@ set(ROCTX_COUNT
|
||||
1
|
||||
)
|
||||
|
||||
set(ROCTX_DEPTH
|
||||
set(ROCTX_LEGACY_DEPTH
|
||||
1
|
||||
1
|
||||
2
|
||||
@@ -98,6 +102,57 @@ set(ROCTX_DEPTH
|
||||
1
|
||||
)
|
||||
|
||||
# Cached mode aggregates entries by name, so counts reflect total occurrences
|
||||
set(ROCTX_CACHED_LABEL
|
||||
roctxMark_GPU_workload
|
||||
roctxRangePush_HIP_Kernel
|
||||
roctxRangeStart_GPU_Compute
|
||||
roctxGetThreadId
|
||||
roctxMark_RoctxProfilerPause_End
|
||||
roctxMark_Thread_Start
|
||||
roctxMark_End
|
||||
roctxRangePush_run_profiling
|
||||
roctxMark_Finished_GPU
|
||||
)
|
||||
|
||||
set(ROCTX_CACHED_COUNT
|
||||
1
|
||||
2
|
||||
2
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
)
|
||||
|
||||
set(ROCTX_CACHED_DEPTH
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
2
|
||||
1
|
||||
1
|
||||
1
|
||||
)
|
||||
|
||||
# Determine which expectations to use based on trace mode in environment
|
||||
set(ROCTX_LABEL ${ROCTX_CACHED_LABEL})
|
||||
set(ROCTX_COUNT ${ROCTX_CACHED_COUNT})
|
||||
set(ROCTX_DEPTH ${ROCTX_CACHED_DEPTH})
|
||||
|
||||
# Check if ROCPROFSYS_TRACE_LEGACY=ON is set in the test environment
|
||||
list(FIND _roctx_environment "ROCPROFSYS_TRACE_LEGACY=ON" _legacy_idx)
|
||||
if(_legacy_idx GREATER -1)
|
||||
# Legacy mode is enabled, use legacy expectations
|
||||
set(ROCTX_LABEL ${ROCTX_LEGACY_LABEL})
|
||||
set(ROCTX_COUNT ${ROCTX_LEGACY_COUNT})
|
||||
set(ROCTX_DEPTH ${ROCTX_LEGACY_DEPTH})
|
||||
endif()
|
||||
|
||||
rocprofiler_systems_add_validation_test(
|
||||
NAME roctx-api-sampling
|
||||
PERFETTO_METRIC "rocm_marker_api"
|
||||
|
||||
@@ -103,7 +103,8 @@ endif()
|
||||
set(_test_openmp_env "OMP_PROC_BIND=spread" "OMP_PLACES=threads" "OMP_NUM_THREADS=2")
|
||||
|
||||
set(_base_environment
|
||||
"ROCPROFSYS_TRACE=ON"
|
||||
"ROCPROFSYS_TRACE_LEGACY=OFF"
|
||||
"ROCPROFSYS_TRACE_CACHED=ON"
|
||||
"ROCPROFSYS_PROFILE=ON"
|
||||
"ROCPROFSYS_USE_SAMPLING=ON"
|
||||
"ROCPROFSYS_USE_PROCESS_SAMPLING=ON"
|
||||
@@ -114,7 +115,8 @@ set(_base_environment
|
||||
)
|
||||
|
||||
set(_flat_environment
|
||||
"ROCPROFSYS_TRACE=ON"
|
||||
"ROCPROFSYS_TRACE_LEGACY=OFF"
|
||||
"ROCPROFSYS_TRACE_CACHED=ON"
|
||||
"ROCPROFSYS_PROFILE=ON"
|
||||
"ROCPROFSYS_TIME_OUTPUT=OFF"
|
||||
"ROCPROFSYS_COUT_OUTPUT=ON"
|
||||
@@ -144,7 +146,8 @@ set(_lock_environment
|
||||
)
|
||||
|
||||
set(_perfetto_environment
|
||||
"ROCPROFSYS_TRACE=ON"
|
||||
"ROCPROFSYS_TRACE_LEGACY=OFF"
|
||||
"ROCPROFSYS_TRACE_CACHED=ON"
|
||||
"ROCPROFSYS_PROFILE=OFF"
|
||||
"ROCPROFSYS_USE_SAMPLING=ON"
|
||||
"ROCPROFSYS_USE_PROCESS_SAMPLING=ON"
|
||||
@@ -156,7 +159,8 @@ set(_perfetto_environment
|
||||
)
|
||||
|
||||
set(_timemory_environment
|
||||
"ROCPROFSYS_TRACE=OFF"
|
||||
"ROCPROFSYS_TRACE_LEGACY=OFF"
|
||||
"ROCPROFSYS_TRACE_CACHED=OFF"
|
||||
"ROCPROFSYS_PROFILE=ON"
|
||||
"ROCPROFSYS_USE_SAMPLING=ON"
|
||||
"ROCPROFSYS_USE_PROCESS_SAMPLING=ON"
|
||||
@@ -177,7 +181,8 @@ set(_causal_environment
|
||||
)
|
||||
|
||||
set(_python_environment
|
||||
"ROCPROFSYS_TRACE=ON"
|
||||
"ROCPROFSYS_TRACE_LEGACY=OFF"
|
||||
"ROCPROFSYS_TRACE_CACHED=ON"
|
||||
"ROCPROFSYS_PROFILE=ON"
|
||||
"ROCPROFSYS_USE_SAMPLING=OFF"
|
||||
"ROCPROFSYS_USE_PROCESS_SAMPLING=ON"
|
||||
@@ -190,7 +195,8 @@ set(_python_environment
|
||||
)
|
||||
|
||||
set(_attach_environment
|
||||
"ROCPROFSYS_TRACE=ON"
|
||||
"ROCPROFSYS_TRACE_LEGACY=OFF"
|
||||
"ROCPROFSYS_TRACE_CACHED=ON"
|
||||
"ROCPROFSYS_PROFILE=ON"
|
||||
"ROCPROFSYS_USE_SAMPLING=OFF"
|
||||
"ROCPROFSYS_USE_PROCESS_SAMPLING=ON"
|
||||
@@ -204,7 +210,8 @@ set(_attach_environment
|
||||
)
|
||||
|
||||
set(_rccl_environment
|
||||
"ROCPROFSYS_TRACE=ON"
|
||||
"ROCPROFSYS_TRACE_LEGACY=OFF"
|
||||
"ROCPROFSYS_TRACE_CACHED=ON"
|
||||
"ROCPROFSYS_PROFILE=ON"
|
||||
"ROCPROFSYS_USE_SAMPLING=OFF"
|
||||
"ROCPROFSYS_USE_PROCESS_SAMPLING=ON"
|
||||
@@ -217,7 +224,8 @@ set(_rccl_environment
|
||||
)
|
||||
|
||||
set(_window_environment
|
||||
"ROCPROFSYS_TRACE=ON"
|
||||
"ROCPROFSYS_TRACE_LEGACY=OFF"
|
||||
"ROCPROFSYS_TRACE_CACHED=ON"
|
||||
"ROCPROFSYS_PROFILE=ON"
|
||||
"ROCPROFSYS_USE_SAMPLING=OFF"
|
||||
"ROCPROFSYS_USE_PROCESS_SAMPLING=OFF"
|
||||
@@ -1329,6 +1337,7 @@ function(ROCPROFILER_SYSTEMS_ADD_VALIDATION_TEST)
|
||||
)
|
||||
endif()
|
||||
|
||||
set(_EXIST_FILES_TESTS "")
|
||||
foreach(_FILE ${TEST_EXIST_FILES})
|
||||
add_test(
|
||||
NAME validate-${TEST_NAME}-${_FILE}-exists
|
||||
@@ -1337,6 +1346,7 @@ function(ROCPROFILER_SYSTEMS_ADD_VALIDATION_TEST)
|
||||
${PROJECT_BINARY_DIR}/rocprof-sys-tests-output/${TEST_NAME}/${_FILE}
|
||||
WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
|
||||
)
|
||||
list(APPEND _EXIST_FILES_TESTS "validate-${TEST_NAME}-${_FILE}-exists")
|
||||
endforeach()
|
||||
|
||||
if(TEST_TIMEMORY_FILE)
|
||||
@@ -1432,6 +1442,18 @@ function(ROCPROFILER_SYSTEMS_ADD_VALIDATION_TEST)
|
||||
${TEST_PROPERTIES}
|
||||
)
|
||||
endforeach()
|
||||
|
||||
# Set properties for file existence validation tests
|
||||
foreach(_TEST ${_EXIST_FILES_TESTS})
|
||||
set_tests_properties(
|
||||
${_TEST}
|
||||
PROPERTIES
|
||||
TIMEOUT ${TEST_TIMEOUT}
|
||||
LABELS "${TEST_LABELS}"
|
||||
DEPENDS "${TEST_DEPENDS};${TEST_NAME}"
|
||||
FIXTURES_REQUIRED "${_VALIDATION_FIXTURES}"
|
||||
)
|
||||
endforeach()
|
||||
endfunction()
|
||||
|
||||
# -------------------------------------------------------------------------------------- #
|
||||
@@ -1456,7 +1478,8 @@ function(ROCPROFILER_SYSTEMS_ADD_BIN_TEST)
|
||||
|
||||
if(NOT TEST_ENVIRONMENT)
|
||||
set(TEST_ENVIRONMENT
|
||||
"ROCPROFSYS_TRACE=ON"
|
||||
"ROCPROFSYS_TRACE_LEGACY=OFF"
|
||||
"ROCPROFSYS_TRACE_CACHED=ON"
|
||||
"ROCPROFSYS_PROFILE=ON"
|
||||
"ROCPROFSYS_USE_SAMPLING=ON"
|
||||
"ROCPROFSYS_TIME_OUTPUT=OFF"
|
||||
|
||||
@@ -32,7 +32,8 @@ endif()
|
||||
|
||||
set(_thread_limit_environment
|
||||
"${_base_environment}"
|
||||
"ROCPROFSYS_TRACE=ON"
|
||||
"ROCPROFSYS_TRACE_LEGACY=OFF"
|
||||
"ROCPROFSYS_TRACE_CACHED=ON"
|
||||
"ROCPROFSYS_PROFILE=ON"
|
||||
"ROCPROFSYS_COUT_OUTPUT=ON"
|
||||
"ROCPROFSYS_USE_SAMPLING=ON"
|
||||
|
||||
Ссылка в новой задаче
Block a user