From 4d79e1df3088635fbb41bac517df8b8519af8ecf Mon Sep 17 00:00:00 2001 From: "Elwazir, Ammar" Date: Tue, 17 Jun 2025 08:32:54 -0500 Subject: [PATCH] [SDK] Support CMake option for using internal RCCL tracing + (temporary) enable in CI (#457) * Temp: disable RCCL tracing * Update continuous_integration.yml * Update continuous_integration.yml * Update continuous_integration.yml * Adding option to disable rccl tracing from CMake * Update codeql.yml * Misc updates - ROCPROFILER_BUILD_RCCL -> ROCPROFILER_INTERNAL_RCCL_API_TRACE - env.EXTRA_TEMP_CMAKE_OPTIONS -> env.GLOBAL_CMAKE_OPTIONS - add (advanced) option ROCPROFILER_INTERNAL_RCCL_API_TRACE * Fix rocprofiler::sdk::get_enum_label - missing enum labels for HIP_RUNTIME_API_TABLE_STEP_VERSION > 8 * Update tests/rocprofv3/advanced-thread-trace/CMakeLists.txt - improve various aspect of cmake -- particularly echoing where attdecoder_LIBRARY was found * Use CMAKE_MESSAGE_INDENT - add prefix to cmake messages to help indicate where messages are coming from - make find_package(Python3 ...) QUIET for bindings * Fix rocprofiler::sdk::get_enum_label - handle HSA_AMD_EXT_API_TABLE_MAJOR_VERSION * Fix rocprofv3 message for att library path * Fix tests/rocprofv3/advanced-thread-trace/att_input.yml config * Fix rocprofv3 check_att_capability + soversion/version library resolution - Account for ROCPROF_ATT_LIBRARY_PATH in env in check_att_capability - Add resolve_library_path - supports resolution of library names to SOVERSION and VERSION paths * Fix python linting error (unused import) --------- Co-authored-by: Ammar ELWazir Co-authored-by: Jonathan R. Madsen [ROCm/rocprofiler-sdk commit: aeb1621c2bbcad5d659947c9bf11b86a87974e4e] --- .../.github/workflows/codeql.yml | 3 +- .../workflows/continuous_integration.yml | 7 + projects/rocprofiler-sdk/CMakeLists.txt | 4 + .../rocprofiler-sdk/benchmark/CMakeLists.txt | 4 + .../Modules/rocprofiler-sdk-utilities.cmake | 32 +- .../cmake/rocprofiler_config_interfaces.cmake | 3 +- .../cmake/rocprofiler_options.cmake | 5 + .../rocprofiler-sdk/external/CMakeLists.txt | 2 + .../rocprofiler-sdk/samples/CMakeLists.txt | 4 + .../rocprofiler-sdk/source/bin/rocprofv3.py | 115 +++-- .../rocprofiler-sdk/cxx/enum_string.hpp | 402 ++++++++++++------ .../source/lib/python/CMakeLists.txt | 1 + .../source/lib/python/utilities.cmake | 14 +- projects/rocprofiler-sdk/tests/CMakeLists.txt | 2 + .../advanced-thread-trace/CMakeLists.txt | 39 +- 15 files changed, 427 insertions(+), 210 deletions(-) diff --git a/projects/rocprofiler-sdk/.github/workflows/codeql.yml b/projects/rocprofiler-sdk/.github/workflows/codeql.yml index 39298c2869..afd926943c 100644 --- a/projects/rocprofiler-sdk/.github/workflows/codeql.yml +++ b/projects/rocprofiler-sdk/.github/workflows/codeql.yml @@ -23,6 +23,7 @@ env: GPU_TARGETS: "gfx900 gfx906 gfx908 gfx90a gfx940 gfx941 gfx942 gfx1030 gfx1100 gfx1101 gfx1102" PATH: "/usr/bin:$PATH" EXCLUDED_PATHS: "external /tmp/build/external" + GLOBAL_CMAKE_OPTIONS: "-DROCPROFILER_INTERNAL_RCCL_API_TRACE=ON" jobs: analyze: @@ -80,7 +81,7 @@ jobs: timeout-minutes: 30 shell: bash run: | - cmake -B /tmp/build -DCMAKE_PREFIX_PATH=/opt/rocm -DPython3_EXECUTABLE=$(which python3) . + cmake -B /tmp/build -DCMAKE_PREFIX_PATH=/opt/rocm ${{ env.GLOBAL_CMAKE_OPTIONS }} -DPython3_EXECUTABLE=$(which python3) . cmake --build /tmp/build --target all --parallel 16 rm -rf ${EXCLUDED_PATHS} diff --git a/projects/rocprofiler-sdk/.github/workflows/continuous_integration.yml b/projects/rocprofiler-sdk/.github/workflows/continuous_integration.yml index aff0a5762b..b191454815 100644 --- a/projects/rocprofiler-sdk/.github/workflows/continuous_integration.yml +++ b/projects/rocprofiler-sdk/.github/workflows/continuous_integration.yml @@ -41,6 +41,7 @@ env: mi325_EXCLUDE_LABEL_REGEX: "^(pc-sampling)$" mi3xx_EXCLUDE_LABEL_REGEX: "^(pc-sampling)$" navi4_EXCLUDE_LABEL_REGEX: "^(pc-sampling)$" + GLOBAL_CMAKE_OPTIONS: "-DROCPROFILER_INTERNAL_RCCL_API_TRACE=ON" jobs: core-deb: @@ -110,6 +111,7 @@ jobs: -DCPACK_GENERATOR='DEB;RPM;TGZ' -DCPACK_PACKAGING_INSTALL_PREFIX="$(realpath /opt/rocm)" -DPython3_EXECUTABLE=$(which python3) + ${{ env.GLOBAL_CMAKE_OPTIONS }} -- -LE "${${{ matrix.runner }}_EXCLUDE_LABEL_REGEX}" -E "${${{ matrix.runner }}_EXCLUDE_TESTS_REGEX}" @@ -237,6 +239,7 @@ jobs: -DCPACK_GENERATOR='DEB;RPM;TGZ' -DCPACK_PACKAGING_INSTALL_PREFIX="$(realpath /opt/rocm)" -DPython3_EXECUTABLE=$(which python3) + ${{ env.GLOBAL_CMAKE_OPTIONS }} -- -LE "${${{ matrix.runner }}_EXCLUDE_LABEL_REGEX}" -E "${${{ matrix.runner }}_EXCLUDE_TESTS_REGEX}" @@ -399,6 +402,7 @@ jobs: -- -DCMAKE_BUILD_TYPE=${{ matrix.build-type }} -DPython3_EXECUTABLE=$(which python3) + ${{ env.GLOBAL_CMAKE_OPTIONS }} -- -LE "${${{ matrix.runner }}_EXCLUDE_LABEL_REGEX}" -E "${${{ matrix.runner }}_EXCLUDE_TESTS_REGEX}" @@ -418,6 +422,7 @@ jobs: -- -DCMAKE_BUILD_TYPE=${{ matrix.build-type }} -DPython3_EXECUTABLE=$(which python3) + ${{ env.GLOBAL_CMAKE_OPTIONS }} -- -LE "${${{ matrix.runner }}_EXCLUDE_LABEL_REGEX}" -E "${${{ matrix.runner }}_EXCLUDE_TESTS_REGEX}" @@ -437,6 +442,7 @@ jobs: -- -DCMAKE_BUILD_TYPE=${{ matrix.build-type }} -DPython3_EXECUTABLE=$(which python3) + ${{ env.GLOBAL_CMAKE_OPTIONS }} -- -LE "${${{ matrix.runner }}_EXCLUDE_LABEL_REGEX}" -E "${${{ matrix.runner }}_EXCLUDE_TESTS_REGEX}" @@ -648,6 +654,7 @@ jobs: -DCMAKE_BUILD_TYPE=${{ matrix.build-type }} -DCMAKE_INSTALL_PREFIX="${{ env.ROCM_PATH }}" -DPython3_EXECUTABLE=$(which python3) + ${{ env.GLOBAL_CMAKE_OPTIONS }} -- -LE "${${{ matrix.runner }}_EXCLUDE_LABEL_REGEX}" -E "${${{ matrix.runner }}_EXCLUDE_TESTS_REGEX}" diff --git a/projects/rocprofiler-sdk/CMakeLists.txt b/projects/rocprofiler-sdk/CMakeLists.txt index 65dd7f4d30..0e49bfb4f0 100644 --- a/projects/rocprofiler-sdk/CMakeLists.txt +++ b/projects/rocprofiler-sdk/CMakeLists.txt @@ -33,6 +33,10 @@ project( set(CMAKE_INSTALL_DEFAULT_COMPONENT_NAME "core") set(PACKAGE_NAME ${PROJECT_NAME}) +if(NOT PROJECT_IS_TOP_LEVEL) + set(CMAKE_MESSAGE_INDENT "[${PROJECT_NAME}] ") +endif() + find_package(Git) if(Git_FOUND AND EXISTS "${PROJECT_SOURCE_DIR}/.git") diff --git a/projects/rocprofiler-sdk/benchmark/CMakeLists.txt b/projects/rocprofiler-sdk/benchmark/CMakeLists.txt index 7b7abf59eb..c7deefa6d8 100644 --- a/projects/rocprofiler-sdk/benchmark/CMakeLists.txt +++ b/projects/rocprofiler-sdk/benchmark/CMakeLists.txt @@ -21,6 +21,10 @@ set(CMAKE_INSTALL_DEFAULT_COMPONENT_NAME "benchmark") set(ROCPROFILER_SDK_BENCHMARK_SOURCE_DIR "${PROJECT_SOURCE_DIR}") set(ROCPROFILER_SDK_BENCHMARK_BINARY_DIR "${PROJECT_BINARY_DIR}") +if(NOT PROJECT_IS_TOP_LEVEL) + set(CMAKE_MESSAGE_INDENT "[${PROJECT_NAME}] ") +endif() + if(NOT CMAKE_BUILD_TYPE) set(CMAKE_BUILD_TYPE "Release" diff --git a/projects/rocprofiler-sdk/cmake/Modules/rocprofiler-sdk-utilities.cmake b/projects/rocprofiler-sdk/cmake/Modules/rocprofiler-sdk-utilities.cmake index 3aa9884933..7496635b5f 100644 --- a/projects/rocprofiler-sdk/cmake/Modules/rocprofiler-sdk-utilities.cmake +++ b/projects/rocprofiler-sdk/cmake/Modules/rocprofiler-sdk-utilities.cmake @@ -11,9 +11,7 @@ function(rocprofiler_sdk_get_gfx_architectures _VAR) set(ARG_DELIM ", ") endif() - if(NOT DEFINED ARG_PREFIX) - set(ARG_PREFIX "[${PROJECT_NAME}] ") - endif() + set(CMAKE_MESSAGE_INDENT "[${PROJECT_NAME}]${ARG_PREFIX} ") find_program( rocminfo_EXECUTABLE @@ -55,9 +53,7 @@ endfunction() function(rocprofiler_sdk_pc_sampling_disabled _VAR) cmake_parse_arguments(ARG "ECHO" "PREFIX" "" ${ARGN}) - if(NOT DEFINED ARG_PREFIX) - set(ARG_PREFIX "[${PROJECT_NAME}] ") - endif() + set(CMAKE_MESSAGE_INDENT "[${PROJECT_NAME}]${ARG_PREFIX} ") rocprofiler_sdk_get_gfx_architectures(rocprofiler-sdk-tests-gfx-info ECHO) list(GET rocprofiler-sdk-tests-gfx-info 0 pc-sampling-gpu-0-gfx-info) @@ -70,10 +66,7 @@ function(rocprofiler_sdk_pc_sampling_disabled _VAR) FALSE PARENT_SCOPE) if(ARG_ECHO) - message( - STATUS - "${ARG_PREFIX}PC Sampling is enabled for ${pc-sampling-gpu-0-gfx-info}" - ) + message(STATUS "PC Sampling is enabled for ${pc-sampling-gpu-0-gfx-info}") endif() else() # PC sampling is disabled on this architecture. @@ -81,10 +74,7 @@ function(rocprofiler_sdk_pc_sampling_disabled _VAR) TRUE PARENT_SCOPE) if(ARG_ECHO) - message( - STATUS - "${ARG_PREFIX}PC Sampling is disabled for ${pc-sampling-gpu-0-gfx-info}" - ) + message(STATUS "PC Sampling is disabled for ${pc-sampling-gpu-0-gfx-info}") endif() endif() endfunction() @@ -94,9 +84,7 @@ endfunction() function(rocprofiler_sdk_pc_sampling_stochastic_disabled _VAR) cmake_parse_arguments(ARG "ECHO" "PREFIX" "" ${ARGN}) - if(NOT DEFINED ARG_PREFIX) - set(ARG_PREFIX "[${PROJECT_NAME}] ") - endif() + set(CMAKE_MESSAGE_INDENT "[${PROJECT_NAME}]${ARG_PREFIX} ") rocprofiler_sdk_get_gfx_architectures(rocprofiler-sdk-tests-gfx-info ECHO) list(GET rocprofiler-sdk-tests-gfx-info 0 pc-sampling-gpu-0-gfx-info) @@ -108,10 +96,7 @@ function(rocprofiler_sdk_pc_sampling_stochastic_disabled _VAR) FALSE PARENT_SCOPE) if(ARG_ECHO) - message( - STATUS - "${ARG_PREFIX}PC Sampling is enabled for ${pc-sampling-gpu-0-gfx-info}" - ) + message(STATUS "PC Sampling is enabled for ${pc-sampling-gpu-0-gfx-info}") endif() else() # PC sampling is disabled on this architecture. @@ -119,10 +104,7 @@ function(rocprofiler_sdk_pc_sampling_stochastic_disabled _VAR) TRUE PARENT_SCOPE) if(ARG_ECHO) - message( - STATUS - "${ARG_PREFIX}PC Sampling is disabled for ${pc-sampling-gpu-0-gfx-info}" - ) + message(STATUS "PC Sampling is disabled for ${pc-sampling-gpu-0-gfx-info}") endif() endif() endfunction() diff --git a/projects/rocprofiler-sdk/cmake/rocprofiler_config_interfaces.cmake b/projects/rocprofiler-sdk/cmake/rocprofiler_config_interfaces.cmake index 9c18a0cfe6..4d67246bda 100644 --- a/projects/rocprofiler-sdk/cmake/rocprofiler_config_interfaces.cmake +++ b/projects/rocprofiler-sdk/cmake/rocprofiler_config_interfaces.cmake @@ -318,7 +318,8 @@ find_package( PATH_SUFFIXES lib/cmake/rccl) -if(rccl_FOUND +if(NOT ROCPROFILER_INTERNAL_RCCL_API_TRACE + AND rccl_FOUND AND rccl_INCLUDE_DIR AND EXISTS "${rccl_INCLUDE_DIR}/rccl/amd_detail/api_trace.h") set(rccl_API_TRACE_FOUND ON) diff --git a/projects/rocprofiler-sdk/cmake/rocprofiler_options.cmake b/projects/rocprofiler-sdk/cmake/rocprofiler_options.cmake index dfcf140672..cbc17a961d 100644 --- a/projects/rocprofiler-sdk/cmake/rocprofiler_options.cmake +++ b/projects/rocprofiler-sdk/cmake/rocprofiler_options.cmake @@ -46,6 +46,11 @@ rocprofiler_add_option(ROCPROFILER_BUILD_CODECOV "Enable building for code coverage analysis" OFF) rocprofiler_add_option(ROCPROFILER_BUILD_DOCS "Enable build + install + packaging documentation" OFF) +rocprofiler_add_option( + ROCPROFILER_INTERNAL_RCCL_API_TRACE + "Use (internal) instead of RCCL-provided . Note: this should never be used in production" + OFF + ADVANCED) rocprofiler_add_option( ROCPROFILER_BUILD_GHC_FS diff --git a/projects/rocprofiler-sdk/external/CMakeLists.txt b/projects/rocprofiler-sdk/external/CMakeLists.txt index db4455b27d..4756b81774 100644 --- a/projects/rocprofiler-sdk/external/CMakeLists.txt +++ b/projects/rocprofiler-sdk/external/CMakeLists.txt @@ -8,6 +8,8 @@ include(rocprofiler_utilities) cmake_policy(PUSH) cmake_policy(SET CMP0077 NEW) # option() honors normal variables +set(CMAKE_MESSAGE_INDENT "[${PROJECT_NAME}][external] ") + set(BUILD_TESTING OFF) set(BUILD_SHARED_LIBS OFF) set(BUILD_OBJECT_LIBS OFF) # Specific to PTL diff --git a/projects/rocprofiler-sdk/samples/CMakeLists.txt b/projects/rocprofiler-sdk/samples/CMakeLists.txt index 204fc0e4fc..fcf1270e8a 100644 --- a/projects/rocprofiler-sdk/samples/CMakeLists.txt +++ b/projects/rocprofiler-sdk/samples/CMakeLists.txt @@ -12,6 +12,10 @@ if(CMAKE_BUILD_TYPE STREQUAL "") CACHE STRING "Build type" FORCE) endif() +if(NOT PROJECT_IS_TOP_LEVEL) + set(CMAKE_MESSAGE_INDENT "[${PROJECT_NAME}] ") +endif() + include(GNUInstallDirs) # always use lib instead of lib64 diff --git a/projects/rocprofiler-sdk/source/bin/rocprofv3.py b/projects/rocprofiler-sdk/source/bin/rocprofv3.py index 447b6d4fc9..0a807eb446 100755 --- a/projects/rocprofiler-sdk/source/bin/rocprofv3.py +++ b/projects/rocprofiler-sdk/source/bin/rocprofv3.py @@ -117,27 +117,84 @@ def strtobool(val): raise ValueError(f"invalid truth value {val} (type={val_type})") -def check_att_capability(args): +def resolve_library_path(val, args, is_sdk_lib=True): + from pathlib import Path + + if not isinstance(args, dotdict): + args = dotdict(args) + + ROCPROF_SDK_VERSION = ".".join(CONST_VERSION_INFO["version"].split(".")[0:3]) + ROCPROF_SDK_SOVERSION = CONST_VERSION_INFO["version"].split(".")[0] + + # set default values + for name, value in [ + ["required", True], + ["readlink", False], + ["realpath", False], + ["sdk_version", ROCPROF_SDK_VERSION], + ["sdk_soversion", ROCPROF_SDK_SOVERSION], + ]: + # set the attribute if it doesn't exist or value is set to None + if not hasattr(args, name) or ( + hasattr(args, name) and getattr(args, name) is None + ): + setattr(args, name, value) + + if is_sdk_lib: + if not os.path.exists(val) and args.sdk_soversion: + val = f"{val}.{args.sdk_soversion}" + + if not os.path.exists(val) and args.sdk_version: + val = f"{val}.{args.sdk_version}" + + if args.required and not os.path.exists(val): + fatal_error(f"Failed to resolve path. '{val}' does not exist") + + if os.path.islink(val): + if args.readlink: + lnk = Path(val).readlink() + if not lnk.is_absolute(): + val = os.path.join(Path(val).parent.absolute(), lnk) + else: + val = f"{lnk}" + if args.realpath: + val = os.path.realpath(val) + else: + if args.realpath: + val = os.path.realpath(val) + + return val + + +def check_att_capability(args, att_lib_name="librocprof-trace-decoder.so"): ROCPROFV3_DIR = os.path.dirname(os.path.realpath(__file__)) ROCM_DIR = os.path.dirname(ROCPROFV3_DIR) - ld_library_paths = [] + if args.rocm_root is not None: + ROCM_DIR = os.path.abspath(args.rocm_root) + + library_paths = [] if args.att_library_path: - ld_library_paths.extend(args.att_library_path) + library_paths.extend(args.att_library_path) else: - for itr in os.environ.get("LD_LIBRARY_PATH", "").split(":") + [f"{ROCM_DIR}/lib"]: + default_lib_path_env = os.environ.get("LD_LIBRARY_PATH", "").split(":") + [ + f"{ROCM_DIR}/lib" + ] + defined_att_path_env = os.environ.get("ROCPROF_ATT_LIBRARY_PATH", "").split(":") + att_paths = defined_att_path_env if defined_att_path_env else default_lib_path_env + for itr in att_paths: # don't add duplicates - if itr not in ld_library_paths: - ld_library_paths += [itr] + if itr not in library_paths: + library_paths += [itr] - lib_att_name = "librocprof-trace-decoder.so" - - for path in ld_library_paths: + for path in library_paths: for root, dirs, files in os.walk(path, topdown=True): for itr in files: - if lib_att_name in itr: - args.att_library_path = root + if att_lib_name in itr: + args.att_library_path = resolve_library_path( + root, args, is_sdk_lib=False + ) return True return False @@ -568,6 +625,18 @@ For MPI applications (or other job launchers such as SLURM), place rocprofv3 ins metavar="PATH", default=None, ) + advanced_options.add_argument( + "--sdk-soversion", + help="Use provided rocprofiler-sdk shared object version number when resolving library paths, e.g. `--sdk-soversion=X` for librocprofiler-sdk.so.X", + type=int, + default=None, + ) + advanced_options.add_argument( + "--sdk-version", + help="Use provided rocprofiler-sdk version number when resolving library paths, e.g. `--sdk-version=X.Y.Z` for librocprofiler-sdk.so.X.Y.Z", + type=str, + default=None, + ) add_parser_bool_argument( advanced_options, "--readlink", @@ -984,21 +1053,13 @@ def run(app_args, args, **kwargs): f"{ROCM_DIR}/libexec/rocprofiler-sdk/librocprofv3-list-avail.so" ) - def resolve_path(val): - if not os.path.exists(val): - fatal_error(f"{val} does not exist") - if os.path.islink(val): - if args.readlink: - val = os.path.abspath(os.readlink(val)) - if args.realpath: - val = os.path.realpath(val) - return val - - ROCPROF_TOOL_LIBRARY = resolve_path(ROCPROF_TOOL_LIBRARY) - ROCPROF_SDK_LIBRARY = resolve_path(ROCPROF_SDK_LIBRARY) - ROCPROF_ROCTX_LIBRARY = resolve_path(ROCPROF_ROCTX_LIBRARY) - ROCPROF_KOKKOSP_LIBRARY = resolve_path(ROCPROF_KOKKOSP_LIBRARY) - ROCPROF_LIST_AVAIL_TOOL_LIBRARY = resolve_path(ROCPROF_LIST_AVAIL_TOOL_LIBRARY) + ROCPROF_TOOL_LIBRARY = resolve_library_path(ROCPROF_TOOL_LIBRARY, args) + ROCPROF_SDK_LIBRARY = resolve_library_path(ROCPROF_SDK_LIBRARY, args) + ROCPROF_ROCTX_LIBRARY = resolve_library_path(ROCPROF_ROCTX_LIBRARY, args) + ROCPROF_KOKKOSP_LIBRARY = resolve_library_path(ROCPROF_KOKKOSP_LIBRARY, args) + ROCPROF_LIST_AVAIL_TOOL_LIBRARY = resolve_library_path( + ROCPROF_LIST_AVAIL_TOOL_LIBRARY, args + ) prepend_preload = [itr for itr in args.preload if itr] append_preload = [ @@ -1489,7 +1550,7 @@ def run(app_args, args, **kwargs): ) else: fatal_error( - "rocprof-trace-decoder library path not found in", args.att_library_path + f"rocprof-trace-decoder library path not found in {args.att_library_path}" ) if args.att_perfcounters: diff --git a/projects/rocprofiler-sdk/source/include/rocprofiler-sdk/cxx/enum_string.hpp b/projects/rocprofiler-sdk/source/include/rocprofiler-sdk/cxx/enum_string.hpp index f3fd32a2bc..bab2eba517 100644 --- a/projects/rocprofiler-sdk/source/include/rocprofiler-sdk/cxx/enum_string.hpp +++ b/projects/rocprofiler-sdk/source/include/rocprofiler-sdk/cxx/enum_string.hpp @@ -118,18 +118,19 @@ get_enum_label(EnumT val, std::index_sequence) (void) val; // suppress unused-but-set-parameter warning } -// clang-format off // Table ID ROCPROFILER_ENUM_INFO(rocprofiler_hsa_table_id_t, 0, ROCPROFILER_HSA_TABLE_ID_LAST, false) ROCPROFILER_ENUM_INFO(rocprofiler_hip_table_id_t, 0, ROCPROFILER_HIP_TABLE_ID_LAST, false) ROCPROFILER_ENUM_INFO(rocprofiler_marker_table_id_t, 0, ROCPROFILER_MARKER_TABLE_ID_LAST, false) ROCPROFILER_ENUM_INFO(rocprofiler_rccl_table_id_t, 0, ROCPROFILER_RCCL_TABLE_ID_LAST, false) -ROCPROFILER_ENUM_INFO(rocprofiler_rocdecode_table_id_t, 0, ROCPROFILER_ROCDECODE_TABLE_ID_LAST, false) +ROCPROFILER_ENUM_INFO(rocprofiler_rocdecode_table_id_t, + 0, + ROCPROFILER_ROCDECODE_TABLE_ID_LAST, + false) ROCPROFILER_ENUM_INFO(rocprofiler_rocjpeg_table_id_t, 0, ROCPROFILER_ROCJPEG_TABLE_ID_LAST, false) // table enums // rocprofiler_hsa_core_api_id_t -// ROCPROFILER_ENUM_LABEL(ROCPROFILER_HSA_CORE_API_ID_NONE); ROCPROFILER_ENUM_INFO(rocprofiler_hsa_core_api_id_t, 0, ROCPROFILER_HSA_CORE_API_ID_LAST, false) ROCPROFILER_ENUM_LABEL(ROCPROFILER_HSA_CORE_API_ID_hsa_init); ROCPROFILER_ENUM_LABEL(ROCPROFILER_HSA_CORE_API_ID_hsa_shut_down); @@ -259,15 +260,18 @@ ROCPROFILER_ENUM_LABEL(ROCPROFILER_HSA_CORE_API_ID_hsa_executable_iterate_progra static_assert(ROCPROFILER_HSA_CORE_API_ID_LAST == 125); // rocprofiler_hsa_amd_ext_api_id_t -// ROCPROFILER_ENUM_LABEL(ROCPROFILER_HSA_AMD_EXT_API_ID_NONE); -ROCPROFILER_ENUM_INFO(rocprofiler_hsa_amd_ext_api_id_t, 0, ROCPROFILER_HSA_AMD_EXT_API_ID_LAST, false) +ROCPROFILER_ENUM_INFO(rocprofiler_hsa_amd_ext_api_id_t, + 0, + ROCPROFILER_HSA_AMD_EXT_API_ID_LAST, + false) ROCPROFILER_ENUM_LABEL(ROCPROFILER_HSA_AMD_EXT_API_ID_hsa_amd_coherency_get_type); ROCPROFILER_ENUM_LABEL(ROCPROFILER_HSA_AMD_EXT_API_ID_hsa_amd_coherency_set_type); ROCPROFILER_ENUM_LABEL(ROCPROFILER_HSA_AMD_EXT_API_ID_hsa_amd_profiling_set_profiler_enabled); ROCPROFILER_ENUM_LABEL(ROCPROFILER_HSA_AMD_EXT_API_ID_hsa_amd_profiling_async_copy_enable); ROCPROFILER_ENUM_LABEL(ROCPROFILER_HSA_AMD_EXT_API_ID_hsa_amd_profiling_get_dispatch_time); ROCPROFILER_ENUM_LABEL(ROCPROFILER_HSA_AMD_EXT_API_ID_hsa_amd_profiling_get_async_copy_time); -ROCPROFILER_ENUM_LABEL(ROCPROFILER_HSA_AMD_EXT_API_ID_hsa_amd_profiling_convert_tick_to_system_domain); +ROCPROFILER_ENUM_LABEL( + ROCPROFILER_HSA_AMD_EXT_API_ID_hsa_amd_profiling_convert_tick_to_system_domain); ROCPROFILER_ENUM_LABEL(ROCPROFILER_HSA_AMD_EXT_API_ID_hsa_amd_signal_async_handler); ROCPROFILER_ENUM_LABEL(ROCPROFILER_HSA_AMD_EXT_API_ID_hsa_amd_async_function); ROCPROFILER_ENUM_LABEL(ROCPROFILER_HSA_AMD_EXT_API_ID_hsa_amd_signal_wait_any); @@ -329,50 +333,60 @@ ROCPROFILER_ENUM_LABEL(ROCPROFILER_HSA_AMD_EXT_API_ID_hsa_amd_vmem_get_access); ROCPROFILER_ENUM_LABEL(ROCPROFILER_HSA_AMD_EXT_API_ID_hsa_amd_vmem_export_shareable_handle); ROCPROFILER_ENUM_LABEL(ROCPROFILER_HSA_AMD_EXT_API_ID_hsa_amd_vmem_import_shareable_handle); ROCPROFILER_ENUM_LABEL(ROCPROFILER_HSA_AMD_EXT_API_ID_hsa_amd_vmem_retain_alloc_handle); -ROCPROFILER_ENUM_LABEL(ROCPROFILER_HSA_AMD_EXT_API_ID_hsa_amd_vmem_get_alloc_properties_from_handle); +ROCPROFILER_ENUM_LABEL( + ROCPROFILER_HSA_AMD_EXT_API_ID_hsa_amd_vmem_get_alloc_properties_from_handle); # if HSA_AMD_EXT_API_TABLE_STEP_VERSION >= 0x01 - ROCPROFILER_ENUM_LABEL(ROCPROFILER_HSA_AMD_EXT_API_ID_hsa_amd_agent_set_async_scratch_limit); +ROCPROFILER_ENUM_LABEL(ROCPROFILER_HSA_AMD_EXT_API_ID_hsa_amd_agent_set_async_scratch_limit); # endif # if HSA_AMD_EXT_API_TABLE_STEP_VERSION >= 0x02 - ROCPROFILER_ENUM_LABEL(ROCPROFILER_HSA_AMD_EXT_API_ID_hsa_amd_queue_get_info); +ROCPROFILER_ENUM_LABEL(ROCPROFILER_HSA_AMD_EXT_API_ID_hsa_amd_queue_get_info); # endif # if HSA_AMD_EXT_API_TABLE_STEP_VERSION >= 0x03 - ROCPROFILER_ENUM_LABEL(ROCPROFILER_HSA_AMD_EXT_API_ID_hsa_amd_vmem_address_reserve_align); +ROCPROFILER_ENUM_LABEL(ROCPROFILER_HSA_AMD_EXT_API_ID_hsa_amd_vmem_address_reserve_align); # endif # if HSA_AMD_EXT_API_TABLE_STEP_VERSION >= 0x04 - ROCPROFILER_ENUM_LABEL(ROCPROFILER_HSA_AMD_EXT_API_ID_hsa_amd_enable_logging); +ROCPROFILER_ENUM_LABEL(ROCPROFILER_HSA_AMD_EXT_API_ID_hsa_amd_enable_logging); # endif # if HSA_AMD_EXT_API_TABLE_STEP_VERSION >= 0x05 - ROCPROFILER_ENUM_LABEL(ROCPROFILER_HSA_AMD_EXT_API_ID_hsa_amd_signal_wait_all); +ROCPROFILER_ENUM_LABEL(ROCPROFILER_HSA_AMD_EXT_API_ID_hsa_amd_signal_wait_all); # endif #endif -#if HSA_AMD_EXT_API_TABLE_MAJOR_VERSION == 0x02 +#if HSA_AMD_EXT_API_TABLE_MAJOR_VERSION == 0x01 +static_assert(ROCPROFILER_HSA_AMD_EXT_API_ID_LAST == 55); +#elif HSA_AMD_EXT_API_TABLE_MAJOR_VERSION == 0x02 # if HSA_AMD_EXT_API_TABLE_STEP_VERSION == 0x00 - static_assert(ROCPROFILER_HSA_AMD_EXT_API_ID_LAST == 67); -# endif -# if HSA_AMD_EXT_API_TABLE_STEP_VERSION == 0x01 - static_assert(ROCPROFILER_HSA_AMD_EXT_API_ID_LAST == 68); -# endif -# if HSA_AMD_EXT_API_TABLE_STEP_VERSION == 0x02 - static_assert(ROCPROFILER_HSA_AMD_EXT_API_ID_LAST == 69); -# endif -# if HSA_AMD_EXT_API_TABLE_STEP_VERSION == 0x03 - static_assert(ROCPROFILER_HSA_AMD_EXT_API_ID_LAST == 70); -# endif -# if HSA_AMD_EXT_API_TABLE_STEP_VERSION == 0x04 - static_assert(ROCPROFILER_HSA_AMD_EXT_API_ID_LAST == 71); -# endif -# if HSA_AMD_EXT_API_TABLE_STEP_VERSION == 0x05 - static_assert(ROCPROFILER_HSA_AMD_EXT_API_ID_LAST == 72); +static_assert(ROCPROFILER_HSA_AMD_EXT_API_ID_LAST == 67); +# elif HSA_AMD_EXT_API_TABLE_STEP_VERSION == 0x01 +static_assert(ROCPROFILER_HSA_AMD_EXT_API_ID_LAST == 68); +# elif HSA_AMD_EXT_API_TABLE_STEP_VERSION == 0x02 +static_assert(ROCPROFILER_HSA_AMD_EXT_API_ID_LAST == 69); +# elif HSA_AMD_EXT_API_TABLE_STEP_VERSION == 0x03 +static_assert(ROCPROFILER_HSA_AMD_EXT_API_ID_LAST == 70); +# elif HSA_AMD_EXT_API_TABLE_STEP_VERSION == 0x04 +static_assert(ROCPROFILER_HSA_AMD_EXT_API_ID_LAST == 71); +# elif HSA_AMD_EXT_API_TABLE_STEP_VERSION == 0x05 +static_assert(ROCPROFILER_HSA_AMD_EXT_API_ID_LAST == 72); +# elif HSA_AMD_EXT_API_TABLE_STEP_VERSION == 0x06 +static_assert(ROCPROFILER_HSA_AMD_EXT_API_ID_LAST == 73); +# else +# if !defined(ROCPROFILER_UNSAFE_NO_VERSION_CHECK) && \ + (defined(ROCPROFILER_CI) && ROCPROFILER_CI > 0) +static_assert(false, "Support for new HSA_AMD_EXT_API_TABLE_STEP_VERSION enumerations is required"); +# endif # endif #else - static_assert(ROCPROFILER_HSA_AMD_EXT_API_ID_LAST == 55); +# if !defined(ROCPROFILER_UNSAFE_NO_VERSION_CHECK) && \ + (defined(ROCPROFILER_CI) && ROCPROFILER_CI > 0) +static_assert(false, "Support for HSA_AMD_EXT_API_TABLE_MAJOR_VERSION is required"); +# endif #endif // rocprofiler_hsa_image_ext_api_id_t -// ROCPROFILER_ENUM_LABEL(ROCPROFILER_HSA_IMAGE_EXT_API_ID_NONE); -ROCPROFILER_ENUM_INFO(rocprofiler_hsa_image_ext_api_id_t, 0, ROCPROFILER_HSA_IMAGE_EXT_API_ID_LAST, false) +ROCPROFILER_ENUM_INFO(rocprofiler_hsa_image_ext_api_id_t, + 0, + ROCPROFILER_HSA_IMAGE_EXT_API_ID_LAST, + false) ROCPROFILER_ENUM_LABEL(ROCPROFILER_HSA_IMAGE_EXT_API_ID_hsa_ext_image_get_capability); ROCPROFILER_ENUM_LABEL(ROCPROFILER_HSA_IMAGE_EXT_API_ID_hsa_ext_image_data_get_info); ROCPROFILER_ENUM_LABEL(ROCPROFILER_HSA_IMAGE_EXT_API_ID_hsa_ext_image_create); @@ -389,8 +403,10 @@ ROCPROFILER_ENUM_LABEL(ROCPROFILER_HSA_IMAGE_EXT_API_ID_hsa_ext_image_create_wit static_assert(ROCPROFILER_HSA_IMAGE_EXT_API_ID_LAST == 13); // rocprofiler_hsa_finalize_ext_api_id_t -// ROCPROFILER_ENUM_LABEL(ROCPROFILER_HSA_FINALIZE_EXT_API_ID_NONE); -ROCPROFILER_ENUM_INFO(rocprofiler_hsa_finalize_ext_api_id_t, 0, ROCPROFILER_HSA_FINALIZE_EXT_API_ID_LAST, false) +ROCPROFILER_ENUM_INFO(rocprofiler_hsa_finalize_ext_api_id_t, + 0, + ROCPROFILER_HSA_FINALIZE_EXT_API_ID_LAST, + false) ROCPROFILER_ENUM_LABEL(ROCPROFILER_HSA_FINALIZE_EXT_API_ID_hsa_ext_program_create); ROCPROFILER_ENUM_LABEL(ROCPROFILER_HSA_FINALIZE_EXT_API_ID_hsa_ext_program_destroy); ROCPROFILER_ENUM_LABEL(ROCPROFILER_HSA_FINALIZE_EXT_API_ID_hsa_ext_program_add_module); @@ -400,8 +416,10 @@ ROCPROFILER_ENUM_LABEL(ROCPROFILER_HSA_FINALIZE_EXT_API_ID_hsa_ext_program_final static_assert(ROCPROFILER_HSA_FINALIZE_EXT_API_ID_LAST == 6); // rocprofiler_hip_compiler_api_id_t -// ROCPROFILER_ENUM_LABEL(ROCPROFILER_HIP_COMPILER_API_ID_NONE); -ROCPROFILER_ENUM_INFO(rocprofiler_hip_compiler_api_id_t, 0, ROCPROFILER_HIP_COMPILER_API_ID_LAST, false) +ROCPROFILER_ENUM_INFO(rocprofiler_hip_compiler_api_id_t, + 0, + ROCPROFILER_HIP_COMPILER_API_ID_LAST, + false) ROCPROFILER_ENUM_LABEL(ROCPROFILER_HIP_COMPILER_API_ID___hipPopCallConfiguration); ROCPROFILER_ENUM_LABEL(ROCPROFILER_HIP_COMPILER_API_ID___hipPushCallConfiguration); ROCPROFILER_ENUM_LABEL(ROCPROFILER_HIP_COMPILER_API_ID___hipRegisterFatBinary); @@ -414,8 +432,10 @@ ROCPROFILER_ENUM_LABEL(ROCPROFILER_HIP_COMPILER_API_ID___hipUnregisterFatBinary) static_assert(ROCPROFILER_HIP_COMPILER_API_ID_LAST == 9); // rocprofiler_hip_runtime_api_id_t -// ROCPROFILER_ENUM_LABEL(ROCPROFILER_HIP_RUNTIME_API_ID_NONE); -ROCPROFILER_ENUM_INFO(rocprofiler_hip_runtime_api_id_t, 0, ROCPROFILER_HIP_RUNTIME_API_ID_LAST, false) +ROCPROFILER_ENUM_INFO(rocprofiler_hip_runtime_api_id_t, + 0, + ROCPROFILER_HIP_RUNTIME_API_ID_LAST, + false) ROCPROFILER_ENUM_LABEL(ROCPROFILER_HIP_RUNTIME_API_ID_hipApiName); ROCPROFILER_ENUM_LABEL(ROCPROFILER_HIP_RUNTIME_API_ID_hipArray3DCreate); ROCPROFILER_ENUM_LABEL(ROCPROFILER_HIP_RUNTIME_API_ID_hipArray3DGetDescriptor); @@ -728,13 +748,17 @@ ROCPROFILER_ENUM_LABEL(ROCPROFILER_HIP_RUNTIME_API_ID_hipModuleLaunchKernel); ROCPROFILER_ENUM_LABEL(ROCPROFILER_HIP_RUNTIME_API_ID_hipModuleLoad); ROCPROFILER_ENUM_LABEL(ROCPROFILER_HIP_RUNTIME_API_ID_hipModuleLoadData); ROCPROFILER_ENUM_LABEL(ROCPROFILER_HIP_RUNTIME_API_ID_hipModuleLoadDataEx); -ROCPROFILER_ENUM_LABEL(ROCPROFILER_HIP_RUNTIME_API_ID_hipModuleOccupancyMaxActiveBlocksPerMultiprocessor); -ROCPROFILER_ENUM_LABEL(ROCPROFILER_HIP_RUNTIME_API_ID_hipModuleOccupancyMaxActiveBlocksPerMultiprocessorWithFlags); +ROCPROFILER_ENUM_LABEL( + ROCPROFILER_HIP_RUNTIME_API_ID_hipModuleOccupancyMaxActiveBlocksPerMultiprocessor); +ROCPROFILER_ENUM_LABEL( + ROCPROFILER_HIP_RUNTIME_API_ID_hipModuleOccupancyMaxActiveBlocksPerMultiprocessorWithFlags); ROCPROFILER_ENUM_LABEL(ROCPROFILER_HIP_RUNTIME_API_ID_hipModuleOccupancyMaxPotentialBlockSize); -ROCPROFILER_ENUM_LABEL(ROCPROFILER_HIP_RUNTIME_API_ID_hipModuleOccupancyMaxPotentialBlockSizeWithFlags); +ROCPROFILER_ENUM_LABEL( + ROCPROFILER_HIP_RUNTIME_API_ID_hipModuleOccupancyMaxPotentialBlockSizeWithFlags); ROCPROFILER_ENUM_LABEL(ROCPROFILER_HIP_RUNTIME_API_ID_hipModuleUnload); ROCPROFILER_ENUM_LABEL(ROCPROFILER_HIP_RUNTIME_API_ID_hipOccupancyMaxActiveBlocksPerMultiprocessor); -ROCPROFILER_ENUM_LABEL(ROCPROFILER_HIP_RUNTIME_API_ID_hipOccupancyMaxActiveBlocksPerMultiprocessorWithFlags); +ROCPROFILER_ENUM_LABEL( + ROCPROFILER_HIP_RUNTIME_API_ID_hipOccupancyMaxActiveBlocksPerMultiprocessorWithFlags); ROCPROFILER_ENUM_LABEL(ROCPROFILER_HIP_RUNTIME_API_ID_hipOccupancyMaxPotentialBlockSize); ROCPROFILER_ENUM_LABEL(ROCPROFILER_HIP_RUNTIME_API_ID_hipPeekAtLastError); ROCPROFILER_ENUM_LABEL(ROCPROFILER_HIP_RUNTIME_API_ID_hipPointerGetAttribute); @@ -847,12 +871,16 @@ ROCPROFILER_ENUM_LABEL(ROCPROFILER_HIP_RUNTIME_API_ID_hipGetStreamDeviceId); ROCPROFILER_ENUM_LABEL(ROCPROFILER_HIP_RUNTIME_API_ID_hipDrvGraphAddMemsetNode); ROCPROFILER_ENUM_LABEL(ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphAddExternalSemaphoresWaitNode); ROCPROFILER_ENUM_LABEL(ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphAddExternalSemaphoresSignalNode); -ROCPROFILER_ENUM_LABEL(ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphExternalSemaphoresSignalNodeSetParams); +ROCPROFILER_ENUM_LABEL( + ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphExternalSemaphoresSignalNodeSetParams); ROCPROFILER_ENUM_LABEL(ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphExternalSemaphoresWaitNodeSetParams); -ROCPROFILER_ENUM_LABEL(ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphExternalSemaphoresSignalNodeGetParams); +ROCPROFILER_ENUM_LABEL( + ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphExternalSemaphoresSignalNodeGetParams); ROCPROFILER_ENUM_LABEL(ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphExternalSemaphoresWaitNodeGetParams); -ROCPROFILER_ENUM_LABEL(ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphExecExternalSemaphoresSignalNodeSetParams); -ROCPROFILER_ENUM_LABEL(ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphExecExternalSemaphoresWaitNodeSetParams); +ROCPROFILER_ENUM_LABEL( + ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphExecExternalSemaphoresSignalNodeSetParams); +ROCPROFILER_ENUM_LABEL( + ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphExecExternalSemaphoresWaitNodeSetParams); ROCPROFILER_ENUM_LABEL(ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphAddNode); ROCPROFILER_ENUM_LABEL(ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphInstantiateWithParams); ROCPROFILER_ENUM_LABEL(ROCPROFILER_HIP_RUNTIME_API_ID_hipExtGetLastError); @@ -892,47 +920,70 @@ ROCPROFILER_ENUM_LABEL(ROCPROFILER_HIP_RUNTIME_API_ID_hipExtHostAlloc); ROCPROFILER_ENUM_LABEL(ROCPROFILER_HIP_RUNTIME_API_ID_hipDeviceGetTexture1DLinearMaxWidth); #endif #if HIP_RUNTIME_API_TABLE_STEP_VERSION >= 7 - ROCPROFILER_ENUM_LABEL(ROCPROFILER_HIP_RUNTIME_API_ID_hipStreamBatchMemOp); +ROCPROFILER_ENUM_LABEL(ROCPROFILER_HIP_RUNTIME_API_ID_hipStreamBatchMemOp); #endif #if HIP_RUNTIME_API_TABLE_STEP_VERSION >= 8 - ROCPROFILER_ENUM_LABEL(ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphAddBatchMemOpNode); - ROCPROFILER_ENUM_LABEL(ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphBatchMemOpNodeGetParams); - ROCPROFILER_ENUM_LABEL(ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphBatchMemOpNodeSetParams); - ROCPROFILER_ENUM_LABEL(ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphExecBatchMemOpNodeSetParams); +ROCPROFILER_ENUM_LABEL(ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphAddBatchMemOpNode); +ROCPROFILER_ENUM_LABEL(ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphBatchMemOpNodeGetParams); +ROCPROFILER_ENUM_LABEL(ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphBatchMemOpNodeSetParams); +ROCPROFILER_ENUM_LABEL(ROCPROFILER_HIP_RUNTIME_API_ID_hipGraphExecBatchMemOpNodeSetParams); +#endif +#if HIP_RUNTIME_API_TABLE_STEP_VERSION >= 9 +ROCPROFILER_ENUM_LABEL(ROCPROFILER_HIP_RUNTIME_API_ID_hipLinkAddData) +ROCPROFILER_ENUM_LABEL(ROCPROFILER_HIP_RUNTIME_API_ID_hipLinkAddFile) +ROCPROFILER_ENUM_LABEL(ROCPROFILER_HIP_RUNTIME_API_ID_hipLinkComplete) +ROCPROFILER_ENUM_LABEL(ROCPROFILER_HIP_RUNTIME_API_ID_hipLinkCreate) +ROCPROFILER_ENUM_LABEL(ROCPROFILER_HIP_RUNTIME_API_ID_hipLinkDestroy) +#endif +#if HIP_RUNTIME_API_TABLE_STEP_VERSION >= 10 +ROCPROFILER_ENUM_LABEL(ROCPROFILER_HIP_RUNTIME_API_ID_hipEventRecordWithFlags) +#endif +#if HIP_RUNTIME_API_TABLE_STEP_VERSION >= 11 +ROCPROFILER_ENUM_LABEL(ROCPROFILER_HIP_RUNTIME_API_ID_hipLaunchKernelExC) +ROCPROFILER_ENUM_LABEL(ROCPROFILER_HIP_RUNTIME_API_ID_hipDrvLaunchKernelEx) +#endif +#if HIP_RUNTIME_API_TABLE_STEP_VERSION >= 12 +ROCPROFILER_ENUM_LABEL(ROCPROFILER_HIP_RUNTIME_API_ID_hipMemGetHandleForAddressRange) #endif #if HIP_RUNTIME_API_TABLE_STEP_VERSION == 0 - static_assert(ROCPROFILER_HIP_RUNTIME_API_ID_LAST == 442); +static_assert(ROCPROFILER_HIP_RUNTIME_API_ID_LAST == 442); +#elif HIP_RUNTIME_API_TABLE_STEP_VERSION == 1 +static_assert(ROCPROFILER_HIP_RUNTIME_API_ID_LAST == 443); +#elif HIP_RUNTIME_API_TABLE_STEP_VERSION == 2 +static_assert(ROCPROFILER_HIP_RUNTIME_API_ID_LAST == 444); +#elif HIP_RUNTIME_API_TABLE_STEP_VERSION == 3 +static_assert(ROCPROFILER_HIP_RUNTIME_API_ID_LAST == 452); +#elif HIP_RUNTIME_API_TABLE_STEP_VERSION == 4 +static_assert(ROCPROFILER_HIP_RUNTIME_API_ID_LAST == 461); +#elif HIP_RUNTIME_API_TABLE_STEP_VERSION == 5 +static_assert(ROCPROFILER_HIP_RUNTIME_API_ID_LAST == 462); +#elif HIP_RUNTIME_API_TABLE_STEP_VERSION == 6 +static_assert(ROCPROFILER_HIP_RUNTIME_API_ID_LAST == 463); +#elif HIP_RUNTIME_API_TABLE_STEP_VERSION == 7 +static_assert(ROCPROFILER_HIP_RUNTIME_API_ID_LAST == 464); +#elif HIP_RUNTIME_API_TABLE_STEP_VERSION == 8 +static_assert(ROCPROFILER_HIP_RUNTIME_API_ID_LAST == 468); +#elif HIP_RUNTIME_API_TABLE_STEP_VERSION == 9 +static_assert(ROCPROFILER_HIP_RUNTIME_API_ID_LAST == 473); +#elif HIP_RUNTIME_API_TABLE_STEP_VERSION == 10 +static_assert(ROCPROFILER_HIP_RUNTIME_API_ID_LAST == 474); +#elif HIP_RUNTIME_API_TABLE_STEP_VERSION == 11 +static_assert(ROCPROFILER_HIP_RUNTIME_API_ID_LAST == 476); +#elif HIP_RUNTIME_API_TABLE_STEP_VERSION == 12 +static_assert(ROCPROFILER_HIP_RUNTIME_API_ID_LAST == 477); +#else +# if !defined(ROCPROFILER_UNSAFE_NO_VERSION_CHECK) && \ + (defined(ROCPROFILER_CI) && ROCPROFILER_CI > 0) +static_assert(false, "Support for new HIP_RUNTIME_API_TABLE_STEP_VERSION enumerations is required"); +# endif #endif -#if HIP_RUNTIME_API_TABLE_STEP_VERSION == 1 - static_assert(ROCPROFILER_HIP_RUNTIME_API_ID_LAST == 443); -#endif -#if HIP_RUNTIME_API_TABLE_STEP_VERSION == 2 - static_assert(ROCPROFILER_HIP_RUNTIME_API_ID_LAST == 444); -#endif -#if HIP_RUNTIME_API_TABLE_STEP_VERSION == 3 - static_assert(ROCPROFILER_HIP_RUNTIME_API_ID_LAST == 452); -#endif -#if HIP_RUNTIME_API_TABLE_STEP_VERSION == 4 - static_assert(ROCPROFILER_HIP_RUNTIME_API_ID_LAST == 461); -#endif -#if HIP_RUNTIME_API_TABLE_STEP_VERSION == 5 - static_assert(ROCPROFILER_HIP_RUNTIME_API_ID_LAST == 462); -#endif -#if HIP_RUNTIME_API_TABLE_STEP_VERSION == 6 - static_assert(ROCPROFILER_HIP_RUNTIME_API_ID_LAST == 463); -#endif -#if HIP_RUNTIME_API_TABLE_STEP_VERSION == 7 - static_assert(ROCPROFILER_HIP_RUNTIME_API_ID_LAST == 464); -#endif -#if HIP_RUNTIME_API_TABLE_STEP_VERSION == 8 - static_assert(ROCPROFILER_HIP_RUNTIME_API_ID_LAST == 468); -#endif - // rocprofiler_marker_core_api_id_t -// ROCPROFILER_ENUM_LABEL(ROCPROFILER_MARKER_CORE_API_ID_NONE); -ROCPROFILER_ENUM_INFO(rocprofiler_marker_core_api_id_t, 0, ROCPROFILER_MARKER_CORE_API_ID_LAST, false) +ROCPROFILER_ENUM_INFO(rocprofiler_marker_core_api_id_t, + 0, + ROCPROFILER_MARKER_CORE_API_ID_LAST, + false) ROCPROFILER_ENUM_LABEL(ROCPROFILER_MARKER_CORE_API_ID_roctxMarkA); ROCPROFILER_ENUM_LABEL(ROCPROFILER_MARKER_CORE_API_ID_roctxRangePushA); ROCPROFILER_ENUM_LABEL(ROCPROFILER_MARKER_CORE_API_ID_roctxRangePop); @@ -942,15 +993,19 @@ ROCPROFILER_ENUM_LABEL(ROCPROFILER_MARKER_CORE_API_ID_roctxGetThreadId); static_assert(ROCPROFILER_MARKER_CORE_API_ID_LAST == 6); // rocprofiler_marker_control_api_id_t -// ROCPROFILER_ENUM_LABEL(ROCPROFILER_MARKER_CONTROL_API_ID_NONE); -ROCPROFILER_ENUM_INFO(rocprofiler_marker_control_api_id_t, 0, ROCPROFILER_MARKER_CONTROL_API_ID_LAST, false) +ROCPROFILER_ENUM_INFO(rocprofiler_marker_control_api_id_t, + 0, + ROCPROFILER_MARKER_CONTROL_API_ID_LAST, + false) ROCPROFILER_ENUM_LABEL(ROCPROFILER_MARKER_CONTROL_API_ID_roctxProfilerPause); ROCPROFILER_ENUM_LABEL(ROCPROFILER_MARKER_CONTROL_API_ID_roctxProfilerResume); static_assert(ROCPROFILER_MARKER_CONTROL_API_ID_LAST == 2); // rocprofiler_marker_name_api_id_t -// ROCPROFILER_ENUM_LABEL(ROCPROFILER_MARKER_NAME_API_ID_NONE); -ROCPROFILER_ENUM_INFO(rocprofiler_marker_name_api_id_t, 0, ROCPROFILER_MARKER_NAME_API_ID_LAST, false) +ROCPROFILER_ENUM_INFO(rocprofiler_marker_name_api_id_t, + 0, + ROCPROFILER_MARKER_NAME_API_ID_LAST, + false) ROCPROFILER_ENUM_LABEL(ROCPROFILER_MARKER_NAME_API_ID_roctxNameOsThread); ROCPROFILER_ENUM_LABEL(ROCPROFILER_MARKER_NAME_API_ID_roctxNameHsaAgent); ROCPROFILER_ENUM_LABEL(ROCPROFILER_MARKER_NAME_API_ID_roctxNameHipDevice); @@ -958,7 +1013,6 @@ ROCPROFILER_ENUM_LABEL(ROCPROFILER_MARKER_NAME_API_ID_roctxNameHipStream); static_assert(ROCPROFILER_MARKER_NAME_API_ID_LAST == 4); // rocprofiler_ompt_operation_t -// ROCPROFILER_ENUM_LABEL(ROCPROFILER_OMPT_ID_NONE); ROCPROFILER_ENUM_INFO(rocprofiler_ompt_operation_t, 0, ROCPROFILER_OMPT_ID_LAST, false); ROCPROFILER_ENUM_LABEL(ROCPROFILER_OMPT_ID_thread_begin); ROCPROFILER_ENUM_LABEL(ROCPROFILER_OMPT_ID_thread_end); @@ -994,7 +1048,6 @@ ROCPROFILER_ENUM_LABEL(ROCPROFILER_OMPT_ID_callback_functions); static_assert(ROCPROFILER_OMPT_ID_LAST == 31); // rocprofiler_rccl_api_id_t -// ROCPROFILER_ENUM_LABEL(ROCPROFILER_RCCL_API_ID_NONE); ROCPROFILER_ENUM_INFO(rocprofiler_rccl_api_id_t, 0, ROCPROFILER_RCCL_API_ID_LAST, false) ROCPROFILER_ENUM_LABEL(ROCPROFILER_RCCL_API_ID_ncclAllGather); ROCPROFILER_ENUM_LABEL(ROCPROFILER_RCCL_API_ID_ncclAllReduce); @@ -1036,7 +1089,6 @@ ROCPROFILER_ENUM_LABEL(ROCPROFILER_RCCL_API_ID_ncclCommDeregister); static_assert(ROCPROFILER_RCCL_API_ID_LAST == 37); // rocprofiler_rocdecode_api_id_t -// ROCPROFILER_ENUM_LABEL(ROCPROFILER_ROCDECODE_API_ID_NONE); ROCPROFILER_ENUM_INFO(rocprofiler_rocdecode_api_id_t, 0, ROCPROFILER_ROCDECODE_API_ID_LAST, false) ROCPROFILER_ENUM_LABEL(ROCPROFILER_ROCDECODE_API_ID_rocDecCreateVideoParser); ROCPROFILER_ENUM_LABEL(ROCPROFILER_ROCDECODE_API_ID_rocDecParseVideoData); @@ -1057,14 +1109,19 @@ ROCPROFILER_ENUM_LABEL(ROCPROFILER_ROCDECODE_API_ID_rocDecGetBitstreamPicData); ROCPROFILER_ENUM_LABEL(ROCPROFILER_ROCDECODE_API_ID_rocDecDestroyBitstreamReader); #endif -#if ROCDECODE_RUNTIME_API_TABLE_STEP_VERSION == 1 +#if ROCDECODE_RUNTIME_API_TABLE_STEP_VERSION == 0 +static_assert(ROCPROFILER_ROCDECODE_API_ID_LAST == 11); +#elif ROCDECODE_RUNTIME_API_TABLE_STEP_VERSION == 1 static_assert(ROCPROFILER_ROCDECODE_API_ID_LAST == 16); #else -static_assert(ROCPROFILER_ROCDECODE_API_ID_LAST == 11); +# if !defined(ROCPROFILER_UNSAFE_NO_VERSION_CHECK) && \ + (defined(ROCPROFILER_CI) && ROCPROFILER_CI > 0) +static_assert(false, + "Support for new ROCDECODE_RUNTIME_API_TABLE_STEP_VERSION enumerations is required"); +# endif #endif // rocprofiler_rocjpeg_api_id_t -// ROCPROFILER_ENUM_LABEL(ROCPROFILER_ROCJPEG_API_ID_NONE); ROCPROFILER_ENUM_INFO(rocprofiler_rocjpeg_api_id_t, 0, ROCPROFILER_ROCJPEG_API_ID_LAST, false); ROCPROFILER_ENUM_LABEL(ROCPROFILER_ROCJPEG_API_ID_rocJpegStreamCreate); ROCPROFILER_ENUM_LABEL(ROCPROFILER_ROCJPEG_API_ID_rocJpegStreamParse); @@ -1078,48 +1135,136 @@ ROCPROFILER_ENUM_LABEL(ROCPROFILER_ROCJPEG_API_ID_rocJpegGetErrorName); static_assert(ROCPROFILER_ROCJPEG_API_ID_LAST == 9); // fwd.h -ROCPROFILER_ENUM_INFO(rocprofiler_status_t, ROCPROFILER_STATUS_SUCCESS, ROCPROFILER_STATUS_LAST, false); -ROCPROFILER_ENUM_INFO(rocprofiler_buffer_category_t, ROCPROFILER_BUFFER_CATEGORY_NONE, ROCPROFILER_BUFFER_CATEGORY_LAST, false); -ROCPROFILER_ENUM_INFO(rocprofiler_agent_type_t, ROCPROFILER_AGENT_TYPE_NONE, ROCPROFILER_AGENT_TYPE_LAST, false); -ROCPROFILER_ENUM_INFO(rocprofiler_callback_phase_t, ROCPROFILER_CALLBACK_PHASE_NONE, ROCPROFILER_CALLBACK_PHASE_LAST, false); -ROCPROFILER_ENUM_INFO(rocprofiler_callback_tracing_kind_t, ROCPROFILER_CALLBACK_TRACING_NONE, ROCPROFILER_CALLBACK_TRACING_LAST, false); -ROCPROFILER_ENUM_INFO(rocprofiler_buffer_tracing_kind_t, ROCPROFILER_BUFFER_TRACING_NONE, ROCPROFILER_BUFFER_TRACING_LAST, false); -ROCPROFILER_ENUM_INFO(rocprofiler_code_object_operation_t, ROCPROFILER_CODE_OBJECT_NONE, ROCPROFILER_CODE_OBJECT_LAST, false); -ROCPROFILER_ENUM_INFO(rocprofiler_memory_copy_operation_t, ROCPROFILER_MEMORY_COPY_NONE, ROCPROFILER_MEMORY_COPY_LAST, false); -ROCPROFILER_ENUM_INFO(rocprofiler_memory_allocation_operation_t, ROCPROFILER_MEMORY_ALLOCATION_NONE, ROCPROFILER_MEMORY_ALLOCATION_LAST, false); -ROCPROFILER_ENUM_INFO(rocprofiler_kernel_dispatch_operation_t, ROCPROFILER_KERNEL_DISPATCH_NONE, ROCPROFILER_KERNEL_DISPATCH_LAST, false); -ROCPROFILER_ENUM_INFO(rocprofiler_pc_sampling_method_t, ROCPROFILER_PC_SAMPLING_METHOD_NONE, ROCPROFILER_PC_SAMPLING_METHOD_LAST, false); -ROCPROFILER_ENUM_INFO(rocprofiler_pc_sampling_unit_t, ROCPROFILER_PC_SAMPLING_UNIT_NONE, ROCPROFILER_PC_SAMPLING_UNIT_LAST, false); -ROCPROFILER_ENUM_INFO(rocprofiler_buffer_policy_t, ROCPROFILER_BUFFER_POLICY_NONE, ROCPROFILER_BUFFER_POLICY_LAST, false); -ROCPROFILER_ENUM_INFO(rocprofiler_page_migration_operation_t, ROCPROFILER_PAGE_MIGRATION_NONE, ROCPROFILER_PAGE_MIGRATION_LAST, false); -ROCPROFILER_ENUM_INFO(rocprofiler_scratch_memory_operation_t, ROCPROFILER_SCRATCH_MEMORY_NONE, ROCPROFILER_SCRATCH_MEMORY_LAST, false); -ROCPROFILER_ENUM_INFO(rocprofiler_scratch_alloc_flag_t, ROCPROFILER_SCRATCH_ALLOC_FLAG_NONE, HSA_AMD_EVENT_SCRATCH_ALLOC_FLAG_ALT+1, true); -ROCPROFILER_ENUM_INFO(rocprofiler_runtime_initialization_operation_t, ROCPROFILER_RUNTIME_INITIALIZATION_NONE, ROCPROFILER_RUNTIME_INITIALIZATION_LAST, false); -ROCPROFILER_ENUM_INFO(rocprofiler_counter_info_version_id_t, ROCPROFILER_COUNTER_INFO_VERSION_NONE, ROCPROFILER_COUNTER_INFO_VERSION_LAST, false); -ROCPROFILER_ENUM_INFO(rocprofiler_counter_record_kind_t, ROCPROFILER_COUNTER_RECORD_NONE, ROCPROFILER_COUNTER_RECORD_LAST, false); -ROCPROFILER_ENUM_INFO(rocprofiler_counter_flag_t, ROCPROFILER_COUNTER_FLAG_NONE, ROCPROFILER_COUNTER_FLAG_LAST, false); -ROCPROFILER_ENUM_INFO(rocprofiler_code_object_storage_type_t, ROCPROFILER_CODE_OBJECT_STORAGE_TYPE_NONE, ROCPROFILER_CODE_OBJECT_STORAGE_TYPE_LAST, false); +ROCPROFILER_ENUM_INFO(rocprofiler_status_t, + ROCPROFILER_STATUS_SUCCESS, + ROCPROFILER_STATUS_LAST, + false); +ROCPROFILER_ENUM_INFO(rocprofiler_buffer_category_t, + ROCPROFILER_BUFFER_CATEGORY_NONE, + ROCPROFILER_BUFFER_CATEGORY_LAST, + false); +ROCPROFILER_ENUM_INFO(rocprofiler_agent_type_t, + ROCPROFILER_AGENT_TYPE_NONE, + ROCPROFILER_AGENT_TYPE_LAST, + false); +ROCPROFILER_ENUM_INFO(rocprofiler_callback_phase_t, + ROCPROFILER_CALLBACK_PHASE_NONE, + ROCPROFILER_CALLBACK_PHASE_LAST, + false); +ROCPROFILER_ENUM_INFO(rocprofiler_callback_tracing_kind_t, + ROCPROFILER_CALLBACK_TRACING_NONE, + ROCPROFILER_CALLBACK_TRACING_LAST, + false); +ROCPROFILER_ENUM_INFO(rocprofiler_buffer_tracing_kind_t, + ROCPROFILER_BUFFER_TRACING_NONE, + ROCPROFILER_BUFFER_TRACING_LAST, + false); +ROCPROFILER_ENUM_INFO(rocprofiler_code_object_operation_t, + ROCPROFILER_CODE_OBJECT_NONE, + ROCPROFILER_CODE_OBJECT_LAST, + false); +ROCPROFILER_ENUM_INFO(rocprofiler_memory_copy_operation_t, + ROCPROFILER_MEMORY_COPY_NONE, + ROCPROFILER_MEMORY_COPY_LAST, + false); +ROCPROFILER_ENUM_INFO(rocprofiler_memory_allocation_operation_t, + ROCPROFILER_MEMORY_ALLOCATION_NONE, + ROCPROFILER_MEMORY_ALLOCATION_LAST, + false); +ROCPROFILER_ENUM_INFO(rocprofiler_kernel_dispatch_operation_t, + ROCPROFILER_KERNEL_DISPATCH_NONE, + ROCPROFILER_KERNEL_DISPATCH_LAST, + false); +ROCPROFILER_ENUM_INFO(rocprofiler_pc_sampling_method_t, + ROCPROFILER_PC_SAMPLING_METHOD_NONE, + ROCPROFILER_PC_SAMPLING_METHOD_LAST, + false); +ROCPROFILER_ENUM_INFO(rocprofiler_pc_sampling_unit_t, + ROCPROFILER_PC_SAMPLING_UNIT_NONE, + ROCPROFILER_PC_SAMPLING_UNIT_LAST, + false); +ROCPROFILER_ENUM_INFO(rocprofiler_buffer_policy_t, + ROCPROFILER_BUFFER_POLICY_NONE, + ROCPROFILER_BUFFER_POLICY_LAST, + false); +ROCPROFILER_ENUM_INFO(rocprofiler_page_migration_operation_t, + ROCPROFILER_PAGE_MIGRATION_NONE, + ROCPROFILER_PAGE_MIGRATION_LAST, + false); +ROCPROFILER_ENUM_INFO(rocprofiler_scratch_memory_operation_t, + ROCPROFILER_SCRATCH_MEMORY_NONE, + ROCPROFILER_SCRATCH_MEMORY_LAST, + false); +ROCPROFILER_ENUM_INFO(rocprofiler_scratch_alloc_flag_t, + ROCPROFILER_SCRATCH_ALLOC_FLAG_NONE, + HSA_AMD_EVENT_SCRATCH_ALLOC_FLAG_ALT + 1, + true); +ROCPROFILER_ENUM_INFO(rocprofiler_runtime_initialization_operation_t, + ROCPROFILER_RUNTIME_INITIALIZATION_NONE, + ROCPROFILER_RUNTIME_INITIALIZATION_LAST, + false); +ROCPROFILER_ENUM_INFO(rocprofiler_counter_info_version_id_t, + ROCPROFILER_COUNTER_INFO_VERSION_NONE, + ROCPROFILER_COUNTER_INFO_VERSION_LAST, + false); +ROCPROFILER_ENUM_INFO(rocprofiler_counter_record_kind_t, + ROCPROFILER_COUNTER_RECORD_NONE, + ROCPROFILER_COUNTER_RECORD_LAST, + false); +ROCPROFILER_ENUM_INFO(rocprofiler_counter_flag_t, + ROCPROFILER_COUNTER_FLAG_NONE, + ROCPROFILER_COUNTER_FLAG_LAST, + false); +ROCPROFILER_ENUM_INFO(rocprofiler_code_object_storage_type_t, + ROCPROFILER_CODE_OBJECT_STORAGE_TYPE_NONE, + ROCPROFILER_CODE_OBJECT_STORAGE_TYPE_LAST, + false); -ROCPROFILER_ENUM_INFO(rocprofiler_runtime_library_t, ROCPROFILER_LIBRARY, details::compute_bitset_sequence_range(), true); -ROCPROFILER_ENUM_INFO(rocprofiler_intercept_table_t, ROCPROFILER_HSA_TABLE, details::compute_bitset_sequence_range(), true); +ROCPROFILER_ENUM_INFO(rocprofiler_runtime_library_t, + ROCPROFILER_LIBRARY, + details::compute_bitset_sequence_range(), + true); +ROCPROFILER_ENUM_INFO(rocprofiler_intercept_table_t, + ROCPROFILER_HSA_TABLE, + details::compute_bitset_sequence_range(), + true); // callback_tracing.h -ROCPROFILER_ENUM_INFO(rocprofiler_pc_sampling_record_kind_t, ROCPROFILER_PC_SAMPLING_RECORD_NONE, ROCPROFILER_PC_SAMPLING_RECORD_LAST, false); +ROCPROFILER_ENUM_INFO(rocprofiler_pc_sampling_record_kind_t, + ROCPROFILER_PC_SAMPLING_RECORD_NONE, + ROCPROFILER_PC_SAMPLING_RECORD_LAST, + false); // page-migration -ROCPROFILER_ENUM_INFO(rocprofiler_page_migration_trigger_t, ROCPROFILER_PAGE_MIGRATION_TRIGGER_NONE, ROCPROFILER_PAGE_MIGRATION_TRIGGER_LAST, false); -ROCPROFILER_ENUM_INFO(rocprofiler_page_migration_queue_suspend_trigger_t, ROCPROFILER_PAGE_MIGRATION_QUEUE_SUSPEND_TRIGGER_NONE, ROCPROFILER_PAGE_MIGRATION_QUEUE_SUSPEND_TRIGGER_LAST, false); -ROCPROFILER_ENUM_INFO(rocprofiler_page_migration_unmap_from_gpu_trigger_t, ROCPROFILER_PAGE_MIGRATION_UNMAP_FROM_GPU_TRIGGER_NONE, ROCPROFILER_PAGE_MIGRATION_UNMAP_FROM_GPU_TRIGGER_LAST, false); -ROCPROFILER_ENUM_INFO(rocprofiler_external_correlation_id_request_kind_t, ROCPROFILER_EXTERNAL_CORRELATION_REQUEST_NONE, ROCPROFILER_EXTERNAL_CORRELATION_REQUEST_LAST, false); +ROCPROFILER_ENUM_INFO(rocprofiler_page_migration_trigger_t, + ROCPROFILER_PAGE_MIGRATION_TRIGGER_NONE, + ROCPROFILER_PAGE_MIGRATION_TRIGGER_LAST, + false); +ROCPROFILER_ENUM_INFO(rocprofiler_page_migration_queue_suspend_trigger_t, + ROCPROFILER_PAGE_MIGRATION_QUEUE_SUSPEND_TRIGGER_NONE, + ROCPROFILER_PAGE_MIGRATION_QUEUE_SUSPEND_TRIGGER_LAST, + false); +ROCPROFILER_ENUM_INFO(rocprofiler_page_migration_unmap_from_gpu_trigger_t, + ROCPROFILER_PAGE_MIGRATION_UNMAP_FROM_GPU_TRIGGER_NONE, + ROCPROFILER_PAGE_MIGRATION_UNMAP_FROM_GPU_TRIGGER_LAST, + false); +ROCPROFILER_ENUM_INFO(rocprofiler_external_correlation_id_request_kind_t, + ROCPROFILER_EXTERNAL_CORRELATION_REQUEST_NONE, + ROCPROFILER_EXTERNAL_CORRELATION_REQUEST_LAST, + false); -ROCPROFILER_ENUM_INFO(rocprofiler_thread_trace_parameter_type_t, ROCPROFILER_THREAD_TRACE_PARAMETER_TARGET_CU, ROCPROFILER_THREAD_TRACE_PARAMETER_LAST, false); -// ROCPROFILER_ENUM_INFO(rocprofiler_thread_trace_control_flags_t, ROCPROFILER_THREAD_TRACE_CONTROL_NONE, details::compute_bitset_sequence_range(), true); +ROCPROFILER_ENUM_INFO(rocprofiler_thread_trace_parameter_type_t, + ROCPROFILER_THREAD_TRACE_PARAMETER_TARGET_CU, + ROCPROFILER_THREAD_TRACE_PARAMETER_LAST, + false); -ROCPROFILER_ENUM_INFO(rocprofiler_agent_version_t, ROCPROFILER_AGENT_INFO_VERSION_NONE, ROCPROFILER_AGENT_INFO_VERSION_LAST, false); +ROCPROFILER_ENUM_INFO(rocprofiler_agent_version_t, + ROCPROFILER_AGENT_INFO_VERSION_NONE, + ROCPROFILER_AGENT_INFO_VERSION_LAST, + false); // begin fwd.h // rocprofiler_hsa_table_id_t -// ROCPROFILER_ENUM_LABEL(ROCPROFILER_HSA_TABLE_ID_NONE); ROCPROFILER_ENUM_LABEL(ROCPROFILER_HSA_TABLE_ID_Core); ROCPROFILER_ENUM_LABEL(ROCPROFILER_HSA_TABLE_ID_AmdExt); ROCPROFILER_ENUM_LABEL(ROCPROFILER_HSA_TABLE_ID_ImageExt); @@ -1129,30 +1274,25 @@ ROCPROFILER_ENUM_LABEL(ROCPROFILER_HSA_TABLE_ID_PcSamplingExt); static_assert(ROCPROFILER_HSA_TABLE_ID_LAST == 6); // rocprofiler_hip_table_id_t -// ROCPROFILER_ENUM_LABEL(ROCPROFILER_HIP_TABLE_ID_NONE); ROCPROFILER_ENUM_LABEL(ROCPROFILER_HIP_TABLE_ID_Compiler); ROCPROFILER_ENUM_LABEL(ROCPROFILER_HIP_TABLE_ID_Runtime); static_assert(ROCPROFILER_HIP_TABLE_ID_LAST == 2); // rocprofiler_marker_table_id_t -// ROCPROFILER_ENUM_LABEL(ROCPROFILER_MARKER_TABLE_ID_NONE); ROCPROFILER_ENUM_LABEL(ROCPROFILER_MARKER_TABLE_ID_RoctxCore); ROCPROFILER_ENUM_LABEL(ROCPROFILER_MARKER_TABLE_ID_RoctxControl); ROCPROFILER_ENUM_LABEL(ROCPROFILER_MARKER_TABLE_ID_RoctxName); static_assert(ROCPROFILER_MARKER_TABLE_ID_LAST == 3); // rocprofiler_rccl_table_id_t -// ROCPROFILER_ENUM_LABEL(ROCPROFILER_RCCL_TABLE_ID_NONE); ROCPROFILER_ENUM_LABEL(ROCPROFILER_RCCL_TABLE_ID); static_assert(ROCPROFILER_RCCL_TABLE_ID_LAST == 1); // rocprofiler_rocdecode_table_id_t -// ROCPROFILER_ENUM_LABEL(ROCPROFILER_ROCDECODE_TABLE_ID_NONE); ROCPROFILER_ENUM_LABEL(ROCPROFILER_ROCDECODE_TABLE_ID_CORE); static_assert(ROCPROFILER_ROCDECODE_TABLE_ID_LAST == 1); // rocprofiler_rocjpeg_table_id_t -// ROCPROFILER_ENUM_LABELROCPROFILER_ROCJPEG_TABLE_ID_NONE); ROCPROFILER_ENUM_LABEL(ROCPROFILER_ROCJPEG_TABLE_ID_CORE); static_assert(ROCPROFILER_ROCJPEG_TABLE_ID_LAST == 1); @@ -1216,9 +1356,7 @@ static_assert(ROCPROFILER_AGENT_TYPE_LAST == 3); // rocprofiler_callback_phase_t ROCPROFILER_ENUM_LABEL(ROCPROFILER_CALLBACK_PHASE_NONE); ROCPROFILER_ENUM_LABEL(ROCPROFILER_CALLBACK_PHASE_ENTER); -// ROCPROFILER_ENUM_LABEL(ROCPROFILER_CALLBACK_PHASE_LOAD); = ROCPROFILER_CALLBACK_PHASE_ENTER ROCPROFILER_ENUM_LABEL(ROCPROFILER_CALLBACK_PHASE_EXIT); -// ROCPROFILER_ENUM_LABEL(ROCPROFILER_CALLBACK_PHASE_UNLOAD); = ROCPROFILER_CALLBACK_PHASE_EXIT static_assert(ROCPROFILER_CALLBACK_PHASE_LAST == 3); // rocprofiler_callback_tracing_kind_t @@ -1351,7 +1489,7 @@ ROCPROFILER_ENUM_LABEL(ROCPROFILER_MARKER_LIBRARY) ROCPROFILER_ENUM_LABEL(ROCPROFILER_RCCL_LIBRARY) ROCPROFILER_ENUM_LABEL(ROCPROFILER_ROCDECODE_LIBRARY) ROCPROFILER_ENUM_LABEL(ROCPROFILER_ROCJPEG_LIBRARY) -static_assert(ROCPROFILER_LIBRARY_LAST == ROCPROFILER_ROCJPEG_LIBRARY); // = ROCPROFILER_ROCDECODE_LIBRARY +static_assert(ROCPROFILER_LIBRARY_LAST == ROCPROFILER_ROCJPEG_LIBRARY); // rocprofiler_intercept_table_t ROCPROFILER_ENUM_LABEL(ROCPROFILER_HSA_TABLE) @@ -1363,7 +1501,7 @@ ROCPROFILER_ENUM_LABEL(ROCPROFILER_MARKER_NAME_TABLE) ROCPROFILER_ENUM_LABEL(ROCPROFILER_RCCL_TABLE) ROCPROFILER_ENUM_LABEL(ROCPROFILER_ROCDECODE_TABLE) ROCPROFILER_ENUM_LABEL(ROCPROFILER_ROCJPEG_TABLE) -static_assert(ROCPROFILER_TABLE_LAST == ROCPROFILER_ROCJPEG_TABLE); // = ROCPROFILER_ROCDECODE_TABLE +static_assert(ROCPROFILER_TABLE_LAST == ROCPROFILER_ROCJPEG_TABLE); // rocprofiler_runtime_initialization_operation_t ROCPROFILER_ENUM_LABEL(ROCPROFILER_RUNTIME_INITIALIZATION_NONE); @@ -1401,13 +1539,11 @@ ROCPROFILER_ENUM_LABEL(ROCPROFILER_PC_SAMPLING_RECORD_STOCHASTIC_V0_SAMPLE); static_assert(ROCPROFILER_PC_SAMPLING_RECORD_LAST == 4); // page-migration -// ROCPROFILER_ENUM_LABEL(ROCPROFILER_PAGE_MIGRATION_TRIGGER_NONE); ROCPROFILER_ENUM_LABEL(ROCPROFILER_PAGE_MIGRATION_TRIGGER_PREFETCH); ROCPROFILER_ENUM_LABEL(ROCPROFILER_PAGE_MIGRATION_TRIGGER_PAGEFAULT_GPU); ROCPROFILER_ENUM_LABEL(ROCPROFILER_PAGE_MIGRATION_TRIGGER_PAGEFAULT_CPU); ROCPROFILER_ENUM_LABEL(ROCPROFILER_PAGE_MIGRATION_TRIGGER_TTM_EVICTION); static_assert(ROCPROFILER_PAGE_MIGRATION_TRIGGER_LAST == 4); -// ROCPROFILER_ENUM_LABEL(ROCPROFILER_PAGE_MIGRATION_QUEUE_SUSPEND_TRIGGER_NONE); ROCPROFILER_ENUM_LABEL(ROCPROFILER_PAGE_MIGRATION_QUEUE_SUSPEND_TRIGGER_SVM); ROCPROFILER_ENUM_LABEL(ROCPROFILER_PAGE_MIGRATION_QUEUE_SUSPEND_TRIGGER_USERPTR); ROCPROFILER_ENUM_LABEL(ROCPROFILER_PAGE_MIGRATION_QUEUE_SUSPEND_TRIGGER_TTM); @@ -1415,7 +1551,6 @@ ROCPROFILER_ENUM_LABEL(ROCPROFILER_PAGE_MIGRATION_QUEUE_SUSPEND_TRIGGER_SUSPEND) ROCPROFILER_ENUM_LABEL(ROCPROFILER_PAGE_MIGRATION_QUEUE_SUSPEND_TRIGGER_CRIU_CHECKPOINT); ROCPROFILER_ENUM_LABEL(ROCPROFILER_PAGE_MIGRATION_QUEUE_SUSPEND_TRIGGER_CRIU_RESTORE); static_assert(ROCPROFILER_PAGE_MIGRATION_QUEUE_SUSPEND_TRIGGER_LAST == 6); -// ROCPROFILER_ENUM_LABEL(ROCPROFILER_PAGE_MIGRATION_UNMAP_FROM_GPU_TRIGGER_NONE); ROCPROFILER_ENUM_LABEL(ROCPROFILER_PAGE_MIGRATION_UNMAP_FROM_GPU_TRIGGER_MMU_NOTIFY); ROCPROFILER_ENUM_LABEL(ROCPROFILER_PAGE_MIGRATION_UNMAP_FROM_GPU_TRIGGER_MMU_NOTIFY_MIGRATE); ROCPROFILER_ENUM_LABEL(ROCPROFILER_PAGE_MIGRATION_UNMAP_FROM_GPU_TRIGGER_UNMAP_FROM_CPU); @@ -1459,7 +1594,6 @@ ROCPROFILER_ENUM_LABEL(ROCPROFILER_THREAD_TRACE_CONTROL_START_AND_STOP); ROCPROFILER_ENUM_LABEL(ROCPROFILER_AGENT_INFO_VERSION_NONE); ROCPROFILER_ENUM_LABEL(ROCPROFILER_AGENT_INFO_VERSION_0); static_assert(ROCPROFILER_AGENT_INFO_VERSION_LAST == 2); -// clang-format on } // namespace details diff --git a/projects/rocprofiler-sdk/source/lib/python/CMakeLists.txt b/projects/rocprofiler-sdk/source/lib/python/CMakeLists.txt index bbf5a4fe4d..0c0d8755cc 100644 --- a/projects/rocprofiler-sdk/source/lib/python/CMakeLists.txt +++ b/projects/rocprofiler-sdk/source/lib/python/CMakeLists.txt @@ -2,6 +2,7 @@ # Python package # +set(CMAKE_MESSAGE_INDENT "[${PROJECT_NAME}][python] ") set(DEFAULT_PYTHON_RPATH "\$ORIGIN:\$ORIGIN/../../..:\$ORIGIN/../../../rocprofiler-sdk") include("${CMAKE_CURRENT_LIST_DIR}/utilities.cmake") diff --git a/projects/rocprofiler-sdk/source/lib/python/utilities.cmake b/projects/rocprofiler-sdk/source/lib/python/utilities.cmake index b0db11f318..6bae034df2 100644 --- a/projects/rocprofiler-sdk/source/lib/python/utilities.cmake +++ b/projects/rocprofiler-sdk/source/lib/python/utilities.cmake @@ -32,10 +32,10 @@ macro(rocprofiler_find_python3 _VERSION) rocprofiler_reset_python3_cache() if("${_VERSION}" MATCHES "^([0-9]+)\\.([0-9]+)\\.([0-9]+)$") - find_package(Python3 ${_VERSION} EXACT ${_ARGN} REQUIRED MODULE + find_package(Python3 ${_VERSION} EXACT ${ARGN} REQUIRED MODULE COMPONENTS Interpreter Development) elseif("${_VERSION}" MATCHES "^([0-9]+)\\.([0-9]+)$") - find_package(Python3 ${_VERSION}.0...${_VERSION}.999 ${_ARGN} REQUIRED MODULE + find_package(Python3 ${_VERSION}.0...${_VERSION}.999 ${ARGN} REQUIRED MODULE COMPONENTS Interpreter Development) else() message( @@ -56,7 +56,7 @@ function(get_default_python_versions _VAR) set(_PYTHON_FOUND_VERSIONS) foreach(_VER IN LISTS ROCPROFILER_PYTHON_VERSION_CANDIDATES) - find_package(Python3 ${_VER} EXACT COMPONENTS Interpreter Development) + find_package(Python3 ${_VER} EXACT QUIET COMPONENTS Interpreter Development) if(Python3_FOUND) list(APPEND _PYTHON_FOUND_VERSIONS "${Python3_VERSION_MAJOR}.${Python3_VERSION_MINOR}") @@ -84,9 +84,9 @@ endfunction() function(rocprofiler_roctx_python_bindings _VERSION) message( - STATUS "Creating rocprofiler-sdk roctx python bindings for python ${_VERSION}") + STATUS "Building rocprofiler-sdk roctx python bindings for python ${_VERSION}") - rocprofiler_find_python3(${_VERSION}) + rocprofiler_find_python3(${_VERSION} QUIET) set(roctx_PYTHON_INSTALL_DIRECTORY ${CMAKE_INSTALL_LIBDIR}/python${Python3_VERSION_MAJOR}.${Python3_VERSION_MINOR}/site-packages/roctx @@ -138,8 +138,8 @@ endfunction() function(rocprofiler_rocpd_python_bindings _VERSION) message( - STATUS "Creating rocprofiler-sdk rocpd python bindings for python ${_VERSION}") - rocprofiler_find_python3(${_VERSION}) + STATUS "Building rocprofiler-sdk rocpd python bindings for python ${_VERSION}") + rocprofiler_find_python3(${_VERSION} QUIET) set(rocpd_PYTHON_INSTALL_DIRECTORY ${CMAKE_INSTALL_LIBDIR}/python${Python3_VERSION_MAJOR}.${Python3_VERSION_MINOR}/site-packages/rocpd diff --git a/projects/rocprofiler-sdk/tests/CMakeLists.txt b/projects/rocprofiler-sdk/tests/CMakeLists.txt index 9a5fe52c8e..4a1b051556 100644 --- a/projects/rocprofiler-sdk/tests/CMakeLists.txt +++ b/projects/rocprofiler-sdk/tests/CMakeLists.txt @@ -37,6 +37,8 @@ set(CMAKE_INSTALL_LIBDIR "lib") if(PROJECT_IS_TOP_LEVEL) set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}") set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}") +else() + set(CMAKE_MESSAGE_INDENT "[${PROJECT_NAME}] ") endif() # needed for validation diff --git a/projects/rocprofiler-sdk/tests/rocprofv3/advanced-thread-trace/CMakeLists.txt b/projects/rocprofiler-sdk/tests/rocprofv3/advanced-thread-trace/CMakeLists.txt index da3094bcec..b06f349575 100644 --- a/projects/rocprofiler-sdk/tests/rocprofv3/advanced-thread-trace/CMakeLists.txt +++ b/projects/rocprofiler-sdk/tests/rocprofv3/advanced-thread-trace/CMakeLists.txt @@ -25,11 +25,15 @@ # cmake_minimum_required(VERSION 3.21.0 FATAL_ERROR) +include(FindPackageHandleStandardArgs) + project( rocprofiler-sdk-tests-rocprofv3-att LANGUAGES CXX VERSION 0.0.0) +set(CMAKE_MESSAGE_INDENT "[${PROJECT_NAME}] ") + string(REPLACE "LD_PRELOAD=" "--preload;" PRELOAD_ARGS "${ROCPROFILER_MEMCHECK_PRELOAD_ENV}") @@ -40,18 +44,23 @@ find_package(rocprofiler-sdk REQUIRED) set(IS_DISABLED ON) -set(LIB_PATH_LOC "${ROCM_PATH}/lib") -set(LIB_PATH_ENV "ROCPROF_ATT_LIBRARY_PATH=${LIB_PATH_LOC}") - find_library( - attdecoder - HINTS ${LIB_PATH_LOC} + attdecoder_LIBRARY + NAMES rocprof-trace-decoder + HINTS ${ROCM_PATH} PATHS ${ROCM_PATH} - PATH_SUFFIXES lib - NAMES rocprof-trace-decoder) + PATH_SUFFIXES lib) -if(attdecoder) +if(attdecoder_LIBRARY) + cmake_path(GET attdecoder_LIBRARY PARENT_PATH attdecoder_LIB_DIR) +endif() + +find_package_handle_standard_args(attdecoder REQUIRED_VARS attdecoder_LIB_DIR + attdecoder_LIBRARY) + +if(attdecoder_FOUND) set(IS_DISABLED OFF) + set(LIB_PATH_ENV "ROCPROF_ATT_LIBRARY_PATH=${attdecoder_LIB_DIR}") endif() # hsa multiqueue dependency test with lib path @@ -62,7 +71,7 @@ add_test( 1 --att-target-cu 1 --att-shader-engine-mask 0x11 --kernel-include-regex copyD --att-buffer-size 0x6000000 --att-simd-select 0x3 --att-serialize-all 1 -d ${CMAKE_CURRENT_BINARY_DIR}/%argt%-trace/cmd_input -o out --output-format json - ${PRELOAD_ARGS} --att-library-path ${LIB_PATH_LOC} --att-activity 8 -- + ${PRELOAD_ARGS} --att-library-path ${attdecoder_LIB_DIR} --att-activity 8 -- $) set_tests_properties( @@ -74,14 +83,14 @@ add_test( NAME rocprofv3-test-hsa-multiqueue-att-json-execute COMMAND $ --log-level env --att-library-path - ${LIB_PATH_LOC} -d ${CMAKE_CURRENT_BINARY_DIR}/%argt%-trace/json_input -i + ${attdecoder_LIB_DIR} -d ${CMAKE_CURRENT_BINARY_DIR}/%argt%-trace/json_input -i ${CMAKE_CURRENT_BINARY_DIR}/att_input.json ${PRELOAD_ARGS} -- $) set_tests_properties( rocprofv3-test-hsa-multiqueue-att-json-execute PROPERTIES TIMEOUT 45 LABELS "integration-tests" DISABLED ${IS_DISABLED} ENVIRONMENT - ${LIB_PATH_ENV}) + "${LIB_PATH_ENV}") # validate output add_test( @@ -139,7 +148,7 @@ function(configure_att_input _FILENAME _OUTDIR) ${CMAKE_CURRENT_BINARY_DIR}/${_FILENAME} @ONLY) endfunction() -configure_att_input(att_input.yml "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}") +configure_att_input(att_input.yml "${attdecoder_LIB_DIR}") configure_att_input(att_input_will_fail.yml "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}") # test yaml input @@ -204,7 +213,7 @@ add_test( set_tests_properties( rocprofv3-test-hsa-multiqueue-att-plus-pmc-execute PROPERTIES TIMEOUT 45 LABELS "integration-tests" DISABLED ${IS_DISABLED} ENVIRONMENT - ${LIB_PATH_ENV}) + "${LIB_PATH_ENV}") # Check for conflict PMC + activity add_test( @@ -223,7 +232,7 @@ set_tests_properties( DISABLED ${IS_DISABLED} ENVIRONMENT - ${LIB_PATH_ENV} + "${LIB_PATH_ENV}" WILL_FAIL ON) @@ -244,6 +253,6 @@ set_tests_properties( DISABLED ${IS_DISABLED} ENVIRONMENT - ${LIB_PATH_ENV} + "${LIB_PATH_ENV}" WILL_FAIL ON)