* Fix dimension mismatch for multi-GPU systems with identical architectures This change addresses an issue where counter dimensions were incorrectly shared across all GPU agents with the same architecture name, even when those agents had different hardware configurations (e.g., different CU counts). Changes: - Updated getBlockDimensions() to accept agent ID instead of architecture name - Made dimension cache agent-specific instead of architecture-specific - Updated set_dimensions() in AST evaluation to use specific agent ID - Modified all API functions to handle agent-specific dimension lookups - Updated tests to work with agent-specific dimensions This fix ensures that dimensions accurately reflect the actual hardware configuration of each individual GPU agent, preventing dimension mismatches in multi-GPU systems where GPUs share the same architecture but have different physical configurations. Counter ID Representation Changes: - Modified counter_id encoding to include agent information in bits 37-32 - Agent logical_node_id is encoded as (value + 1) to ensure agent 0 is detectable - Counter records internally store only 16-bit base metric IDs (bits 15-0) - Tool reconstructs agent-encoded counter IDs from base metric ID & agent info - Instance record counter_id field uses bitwise AND mask to extract base metric ID (counter_id.handle & 0xFFFF) to fit in 16-bit storage - Output generators (CSV, JSON, Perfetto) use agent-encoded IDs for consistency - Updated counter_config.cpp and metrics.cpp to extract base metric ID when needed - All counter lookups now properly handle agent-encoded vs base metric IDs This ensures counter IDs are consistent between metadata and output records while maintaining compact storage in instance records.
ROCProfiler Tool Library
This is a tool that gets registered with the rocprofiler to obtain its services. The tool is built as a shared library and is named as rocprofiler-sdk-tool. The library can be preloaded using LD_PRELOAD to facilitate its registration as a tool with the rocprofiler.
The user through rocprofv3 script can select the
options to obtain tracing and counter collection
services from the rocprofiler. rocprofv3 supports both
launching new applications and attaching to existing
processes using the --attach/--pid/-p options.
Currently, this tool supports kernel trace and the hsa-api trace. The tool uses the following environment variables to read the user choices.
ROCPROF_KERNEL_TRACE=1to obtain kernel traceROCPROF_HSA_API_TRACE=1to obtain hsa api trace
The user can also specify the output filename and output file path to which the traces are written to.
ROCPROF_OUTPUT_PATH=<directory>to set the output directory pathROCPROF_OUTPUT_FILE_NAME=<filename-without-extension>to set the output file name
CHANGELOG
The tool design is similar to its earlier versions. However, not all features that the earlier versions supported are supported by this tool.