Files
Milan Radosavljevic 318d13870f [rocprofiler-systems] Update logging to use spdlog library (#2428)
## Motivation

- Structured logging with proper log levels (TRACE, DEBUG, INFO, WARNING, ERROR, CRITICAL)
- Better performance through compile-time formatting
- Consistent formatting using fmt library
- Runtime log level control via arguments and environment variables
- Easier maintenance and debugging capabilities

## Technical Details

- Added spdlog as a submodule and integrated it into CMake build system
- Created new `rocprofiler-systems-logger` library wrapping spdlog functionality
- Replaced custom logging macros (`ROCPROFSYS_VERBOSE`, `ROCPROFSYS_DEBUG`, `ROCPROFSYS_FATAL`, `ROCPROFSYS_REQUIRE`, `ROCPROFSYS_CI_THROW`, etc.) with spdlog equivalents (`LOG_DEBUG`, `LOG_WARNING`, `LOG_CRITICAL`, etc.)
- Implemented log level control through command-line arguments and environment variables
- Converted assertion macros to proper error handling with exceptions and std::abort()
2026-01-14 15:27:51 -05:00

200 lines
6.3 KiB
CMake

# Copyright (c) Advanced Micro Devices, Inc.
# SPDX-License-Identifier: MIT
# -------------------------------------------------------------------------------------- #
#
# causal profiling tests
#
# -------------------------------------------------------------------------------------- #
rocprofiler_systems_add_causal_test(
NAME cpu-rocprofsys-func
TARGET causal-cpu-rocprofsys
RUN_ARGS 70 10 432525 1000000000
CAUSAL_MODE "function"
CAUSAL_PASS_REGEX
"Starting causal experiment #1(.*)causal/experiments.json(.*)causal/experiments.coz"
)
rocprofiler_systems_add_causal_test(
SKIP_BASELINE
NAME cpu-rocprofsys-func-ndebug
TARGET causal-cpu-rocprofsys-ndebug
RUN_ARGS 70 10 432525 1000000000
CAUSAL_MODE "function"
CAUSAL_PASS_REGEX
"Starting causal experiment #1(.*)causal/experiments.json(.*)causal/experiments.coz"
)
rocprofiler_systems_add_causal_test(
SKIP_BASELINE
NAME cpu-rocprofsys-line
TARGET causal-cpu-rocprofsys
RUN_ARGS 70 10 432525 1000000000
CAUSAL_MODE "line"
CAUSAL_PASS_REGEX
"Starting causal experiment #1(.*)causal/experiments.json(.*)causal/experiments.coz"
)
rocprofiler_systems_add_causal_test(
NAME both-rocprofsys-func
TARGET causal-both-rocprofsys
RUN_ARGS 70 10 432525 400000000
CAUSAL_MODE "function"
CAUSAL_ARGS
-n
2
-w
1
-d
3
--monochrome
-g
${CMAKE_BINARY_DIR}/rocprof-sys-tests-config/causal-both-rocprofsys-func
-l
causal-both-rocprofsys
-v
3
-b
timer
ENVIRONMENT "ROCPROFSYS_STRICT_CONFIG=OFF"
CAUSAL_PASS_REGEX
"Starting causal experiment #1(.*)causal/experiments.json(.*)causal/experiments.coz"
)
rocprofiler_systems_add_causal_test(
NAME lulesh-func
TARGET lulesh-rocprofsys
RUN_ARGS -i 35 -s 50 -p
CAUSAL_MODE "function"
CAUSAL_ARGS -s 0,10,25,50,75
CAUSAL_PASS_REGEX
"Starting causal experiment #1(.*)causal/experiments.json(.*)causal/experiments.coz"
)
rocprofiler_systems_add_causal_test(
SKIP_BASELINE
NAME lulesh-func-ndebug
TARGET lulesh-rocprofsys-ndebug
RUN_ARGS -i 35 -s 50 -p
CAUSAL_MODE "function"
CAUSAL_ARGS -s 0,10,25,50,75
CAUSAL_PASS_REGEX
"Starting causal experiment #1(.*)causal/experiments.json(.*)causal/experiments.coz"
)
rocprofiler_systems_add_causal_test(
SKIP_BASELINE
NAME lulesh-line
TARGET lulesh-rocprofsys
RUN_ARGS -i 35 -s 50 -p
CAUSAL_MODE "line"
CAUSAL_ARGS -s 0,10,25,50,75 -S lulesh.cc
CAUSAL_PASS_REGEX
"Starting causal experiment #1(.*)causal/experiments.json(.*)causal/experiments.coz"
)
# set(_causal_e2e_exe_args 80 103 432525 100000000) set(_causal_e2e_exe_args 80 12 432525
# 500000000)
set(_causal_e2e_exe_args 80 50 432525 100000000)
set(_causal_common_args
"-n 5 -e -s 0 10 20 30 -B $<TARGET_FILE_BASE_NAME:causal-cpu-rocprofsys>"
)
macro(
causal_e2e_args_and_validation
_NAME
_TEST
_MODE
_EXPER
_V10 # expected value for virtual speedup of 15
_V20
_V30
_TOL # tolerance for virtual speedup
)
# arguments to rocprofiler-systems-causal
set(${_NAME}_args "${_causal_common_args} ${_MODE} ${_EXPER}")
# arguments to validate-causal-json.py
set(${_NAME}_valid
"-n 0 -i rocprof-sys-tests-output/causal-cpu-rocprofsys-${_TEST}-e2e/causal/experiments.json -v ${_EXPER} $<TARGET_FILE_BASE_NAME:causal-cpu-rocprofsys> 10 ${_V10} ${_TOL} ${_EXPER} $<TARGET_FILE_BASE_NAME:causal-cpu-rocprofsys> 20 ${_V20} ${_TOL} ${_EXPER} $<TARGET_FILE_BASE_NAME:causal-cpu-rocprofsys> 30 ${_V30} ${_TOL}"
)
# patch string for command-line
string(REPLACE " " ";" ${_NAME}_args "${${_NAME}_args}")
string(REPLACE " " ";" ${_NAME}_valid "${${_NAME}_valid}")
endmacro()
causal_e2e_args_and_validation(_causal_slow_func slow-func "-F" "cpu_slow_func" 10 20 20
5
)
causal_e2e_args_and_validation(_causal_fast_func fast-func "-F" "cpu_fast_func" 0 0 0 5)
causal_e2e_args_and_validation(_causal_line_103 line-103 "-S" "causal.cpp:103" 10 20 20 5)
causal_e2e_args_and_validation(_causal_line_113 line-113 "-S" "causal.cpp:113" 0 0 0 5)
if(ROCPROFSYS_BUILD_NUMBER GREATER 1)
set(_causal_e2e_environment)
else()
set(_causal_e2e_environment "ROCPROFSYS_VERBOSE=0;ROCPROFSYS_LOG_LEVEL=trace")
endif()
rocprofiler_systems_add_causal_test(
SKIP_BASELINE
NAME cpu-rocprofsys-slow-func-e2e
TARGET causal-cpu-rocprofsys
LABELS "causal-e2e"
RUN_ARGS ${_causal_e2e_exe_args}
CAUSAL_MODE "func"
CAUSAL_ARGS ${_causal_slow_func_args}
CAUSAL_VALIDATE_ARGS ${_causal_slow_func_valid}
CAUSAL_PASS_REGEX
"Starting causal experiment #1(.*)causal/experiments.json(.*)causal/experiments.coz"
ENVIRONMENT "${_causal_e2e_environment}"
PROPERTIES PROCESSORS 2 PROCESSOR_AFFINITY OFF
)
rocprofiler_systems_add_causal_test(
SKIP_BASELINE
NAME cpu-rocprofsys-fast-func-e2e
TARGET causal-cpu-rocprofsys
LABELS "causal-e2e"
RUN_ARGS ${_causal_e2e_exe_args}
CAUSAL_MODE "func"
CAUSAL_ARGS ${_causal_fast_func_args}
CAUSAL_VALIDATE_ARGS ${_causal_fast_func_valid}
CAUSAL_PASS_REGEX
"Starting causal experiment #1(.*)causal/experiments.json(.*)causal/experiments.coz"
ENVIRONMENT "${_causal_e2e_environment}"
PROPERTIES PROCESSORS 2 PROCESSOR_AFFINITY OFF
)
rocprofiler_systems_add_causal_test(
SKIP_BASELINE
NAME cpu-rocprofsys-line-103-e2e
TARGET causal-cpu-rocprofsys
LABELS "causal-e2e"
RUN_ARGS ${_causal_e2e_exe_args}
CAUSAL_MODE "line"
CAUSAL_ARGS ${_causal_line_103_args}
CAUSAL_VALIDATE_ARGS ${_causal_line_103_valid}
CAUSAL_PASS_REGEX
"Starting causal experiment #1(.*)causal/experiments.json(.*)causal/experiments.coz"
ENVIRONMENT "${_causal_e2e_environment}"
PROPERTIES PROCESSORS 2 PROCESSOR_AFFINITY OFF
)
rocprofiler_systems_add_causal_test(
SKIP_BASELINE
NAME cpu-rocprofsys-line-113-e2e
TARGET causal-cpu-rocprofsys
LABELS "causal-e2e"
RUN_ARGS ${_causal_e2e_exe_args}
CAUSAL_MODE "line"
CAUSAL_ARGS ${_causal_line_113_args}
CAUSAL_VALIDATE_ARGS ${_causal_line_113_valid}
CAUSAL_PASS_REGEX
"Starting causal experiment #1(.*)causal/experiments.json(.*)causal/experiments.coz"
ENVIRONMENT "${_causal_e2e_environment}"
PROPERTIES PROCESSORS 2 PROCESSOR_AFFINITY OFF
)