50b185b9ac
* Adding tool pc sampling support Fixing merge issue tool support on SDKupdates link amd-comgr Sanitizer failure fix fix format Addressing review comments misc fix Adding dispatch id to the CSV output AddingCHANGELOG [ROCProfV3][PC Sampling] Initial ROCProfV3 PC sampling tests for JSON and CSV formats (#17) ROCProfV3 initial tests for JSON and CSV output. Simple kernels that simplify the verification of samples to instruction decoding has been introduced. removing option to enable pc sampling explicitly Adding documentation no pc-sampling option in tests anymore Addressing review comments Updating docs an option for choosing whether all units must be sampled try ignoring PC sampling tests (#36) * run pc-sampling tests on MI2xx runners * use v_fmac_f32 instead of s_nop 0 in tests * fixing docs
151 regels
5.7 KiB
CMake
151 regels
5.7 KiB
CMake
#
|
|
# rocprofv3 tool test
|
|
#
|
|
cmake_minimum_required(VERSION 3.21.0 FATAL_ERROR)
|
|
|
|
project(
|
|
rocprofiler-tests-pc-sampling
|
|
LANGUAGES CXX
|
|
VERSION 0.0.0)
|
|
|
|
find_package(rocprofiler-sdk REQUIRED)
|
|
|
|
rocprofiler_configure_pytest_files(CONFIG pytest.ini COPY validate.py conftest.py
|
|
input.json input.yml)
|
|
|
|
add_test(
|
|
NAME rocprofv3-test-cc-pc-sampling-exec-mask-manipulation-input-cmd-execute
|
|
COMMAND
|
|
$<TARGET_FILE:rocprofiler-sdk::rocprofv3> --pc-sampling-unit time
|
|
--pc-sampling-method host_trap --pc-sampling-interval 1 -d
|
|
${CMAKE_CURRENT_BINARY_DIR}/pc_sampling_cmd_input -o out --output-format csv json
|
|
-- $<TARGET_FILE:exec-mask-manipulation>)
|
|
|
|
string(REPLACE "LD_PRELOAD=" "ROCPROF_PRELOAD=" PRELOAD_ENV
|
|
"${ROCPROFILER_MEMCHECK_PRELOAD_ENV}")
|
|
|
|
set(cc-env-pc-sampling "${PRELOAD_ENV}")
|
|
|
|
set_tests_properties(
|
|
rocprofv3-test-cc-pc-sampling-exec-mask-manipulation-input-cmd-execute
|
|
PROPERTIES TIMEOUT
|
|
45
|
|
LABELS
|
|
"integration-tests;pc-sampling"
|
|
ENVIRONMENT
|
|
"${cc-env-pc-sampling}"
|
|
FAIL_REGULAR_EXPRESSION
|
|
"${ROCPROFILER_DEFAULT_FAIL_REGEX}"
|
|
SKIP_REGULAR_EXPRESSION
|
|
"PC sampling unavailable")
|
|
|
|
add_test(
|
|
NAME rocprofv3-test-cc-pc-sampling-exec-mask-manipulation-input-json-execute
|
|
COMMAND
|
|
$<TARGET_FILE:rocprofiler-sdk::rocprofv3> -i
|
|
${CMAKE_CURRENT_BINARY_DIR}/input.json -d
|
|
${CMAKE_CURRENT_BINARY_DIR}/pc_sampling_json_input --
|
|
$<TARGET_FILE:exec-mask-manipulation>)
|
|
|
|
set_tests_properties(
|
|
rocprofv3-test-cc-pc-sampling-exec-mask-manipulation-input-json-execute
|
|
PROPERTIES TIMEOUT
|
|
45
|
|
LABELS
|
|
"integration-tests;pc-sampling"
|
|
ENVIRONMENT
|
|
"${cc-env-pc-sampling}"
|
|
FAIL_REGULAR_EXPRESSION
|
|
"${ROCPROFILER_DEFAULT_FAIL_REGEX}"
|
|
SKIP_REGULAR_EXPRESSION
|
|
"PC sampling unavailable")
|
|
|
|
add_test(
|
|
NAME rocprofv3-test-cc-pc-sampling-exec-mask-manipulation-input-yaml-execute
|
|
COMMAND
|
|
$<TARGET_FILE:rocprofiler-sdk::rocprofv3> -i
|
|
${CMAKE_CURRENT_BINARY_DIR}/input.yml -d
|
|
${CMAKE_CURRENT_BINARY_DIR}/pc_sampling_yaml_input -o out --output-format csv
|
|
json -- $<TARGET_FILE:exec-mask-manipulation>)
|
|
|
|
set_tests_properties(
|
|
rocprofv3-test-cc-pc-sampling-exec-mask-manipulation-input-yaml-execute
|
|
PROPERTIES TIMEOUT
|
|
45
|
|
LABELS
|
|
"integration-tests;pc-sampling"
|
|
ENVIRONMENT
|
|
"${cc-env-pc-sampling}"
|
|
FAIL_REGULAR_EXPRESSION
|
|
"${ROCPROFILER_DEFAULT_FAIL_REGEX}"
|
|
SKIP_REGULAR_EXPRESSION
|
|
"PC sampling unavailable")
|
|
|
|
# ========================= Validation tests
|
|
|
|
add_test(
|
|
NAME rocprofv3-test-cc-pc-sampling-exec-mask-manipulation-input-cmd-validate
|
|
COMMAND
|
|
${Python3_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/validate.py -k
|
|
test_validate_pc_sampling_exec_mask_manipulation_ --input-csv
|
|
${CMAKE_CURRENT_BINARY_DIR}/pc_sampling_cmd_input/out_pc_sampling_host_trap.csv
|
|
--input-json ${CMAKE_CURRENT_BINARY_DIR}/pc_sampling_cmd_input/out_results.json
|
|
--all-sampled False)
|
|
|
|
set_tests_properties(
|
|
rocprofv3-test-cc-pc-sampling-exec-mask-manipulation-input-cmd-validate
|
|
PROPERTIES TIMEOUT
|
|
60
|
|
LABELS
|
|
"integration-tests;pc-sampling"
|
|
DEPENDS
|
|
"rocprofv3-test-cc-pc-sampling-exec-mask-manipulation-input-cmd-execute"
|
|
FAIL_REGULAR_EXPRESSION
|
|
"${ROCPROFILER_DEFAULT_FAIL_REGEX}"
|
|
SKIP_REGULAR_EXPRESSION
|
|
"PC sampling unavailable")
|
|
|
|
add_test(
|
|
NAME rocprofv3-test-cc-pc-sampling-exec-mask-manipulation-input-json-validate
|
|
COMMAND
|
|
${Python3_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/validate.py -k
|
|
test_validate_pc_sampling_exec_mask_manipulation_ --input-csv
|
|
${CMAKE_CURRENT_BINARY_DIR}/pc_sampling_json_input/out_pc_sampling_host_trap.csv
|
|
--input-json ${CMAKE_CURRENT_BINARY_DIR}/pc_sampling_json_input/out_results.json
|
|
--all-sampled False)
|
|
|
|
set_tests_properties(
|
|
rocprofv3-test-cc-pc-sampling-exec-mask-manipulation-input-json-validate
|
|
PROPERTIES TIMEOUT
|
|
60
|
|
LABELS
|
|
"integration-tests;pc-sampling"
|
|
DEPENDS
|
|
"rocprofv3-test-cc-pc-sampling-exec-mask-manipulation-input-json-execute"
|
|
FAIL_REGULAR_EXPRESSION
|
|
"${ROCPROFILER_DEFAULT_FAIL_REGEX}"
|
|
SKIP_REGULAR_EXPRESSION
|
|
"PC sampling unavailable")
|
|
|
|
add_test(
|
|
NAME rocprofv3-test-cc-pc-sampling-exec-mask-manipulation-input-yaml-validate
|
|
COMMAND
|
|
${Python3_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/validate.py -k
|
|
test_validate_pc_sampling_exec_mask_manipulation_ --input-csv
|
|
${CMAKE_CURRENT_BINARY_DIR}/pc_sampling_yaml_input/out_pc_sampling_host_trap.csv
|
|
--input-json ${CMAKE_CURRENT_BINARY_DIR}/pc_sampling_yaml_input/out_results.json
|
|
--all-sampled False)
|
|
|
|
set_tests_properties(
|
|
rocprofv3-test-cc-pc-sampling-exec-mask-manipulation-input-yaml-validate
|
|
PROPERTIES TIMEOUT
|
|
60
|
|
LABELS
|
|
"integration-tests;pc-sampling"
|
|
DEPENDS
|
|
"rocprofv3-test-cc-pc-sampling-exec-mask-manipulation-input-yaml-execute"
|
|
FAIL_REGULAR_EXPRESSION
|
|
"${ROCPROFILER_DEFAULT_FAIL_REGEX}"
|
|
SKIP_REGULAR_EXPRESSION
|
|
"PC sampling unavailable")
|