doc improvements for 1.0.0 part 2 (#330)

* update installation steps

* Github Issue #50 Adding README's for samples

* Making name change to ROCprofiler-SDK for consistency

* Fix HIP trace documentation

* Fix HSA trace in docs

* Fix kernel trace in docs

* Fixing memory copy and memory allocation traces

* runtime trace and sys trace doc update

* Fix scratch memory doc

* kernel naming and filtering options

* Adding collection period in docs

* Perfetto configs update

* summary output file

* kernel trace format fix

* update CHANGELOG

* Agent index doc update

* rocm-smi output

* group by queue option

* Updated --group-by-queue description

* perfetto visualization

---------

Co-authored-by: Ian Trowbridge <Ian.Trowbridge@amd.com>

[ROCm/rocprofiler-sdk commit: ca7cce9e81]
Šī revīzija ir iekļauta:
Bhardwaj, Gopesh
2025-04-16 02:00:07 +05:30
revīziju iesūtīja GitHub
vecāks 5a5fe7f4bf
revīzija 8778237298
32 mainīti faili ar 744 papildinājumiem un 106 dzēšanām
@@ -0,0 +1,14 @@
# API Callback Tracing Sample
## Services
- Captures events like API calls using callbacks.
- HSA API (Core, AMD Ext)
- HIP API (Runtime)
- Marker API (Core, Name)
## Properties
- Handles roctxProfilerPause and roctxProfilerResume operations using a control context.
- Captures API calls and logs details like thread ID, operation type, and duration.
- Provides a detailed trace of all function calls and events for debugging.
@@ -0,0 +1,13 @@
# CodeObject tracing
## Services
- code object tracing.
## Properties
- This tool hooks into ROCProfiler's callback and buffer tracing mechanisms to:
- Decode and analyze GPU code objects.
- Three kernel variants are used in sample; simple transpose, in-place LDS swap and LDS no bank conflicts.
- Trace kernel symbols and instructions.
- Log disassembly and statistics for debugging or performance analysis.
@@ -0,0 +1,11 @@
# CodeObject Tracing
## Services
Trace and analyze the execution of GPU code objects and kernel symbols.
## Properties
- This tool is designed to capture and log information about code object loading/unloading and kernel symbol registration/un-registration events during the execution of GPU programs.
- Whenever a relevant event occurs, such as a code object being loaded/unloaded or a kernel symbol being registered/unregistered. The function processes the event data, formats it into a human-readable string, and appends it to the call stack.
@@ -0,0 +1,21 @@
# Counter collection
## Services
- Dispatch counting
- Device Counting async
- Device Counting sync
## Properties
- Initializes tool and setup for counting service.
- Create a collection profile for the counters.
- Outputs counters mentioned during profiler creation.
- Usage of enum ROCPROFILER_BUFFER_CATEGORY_COUNTERS.
- Buffered_callback
- This sample shows the usage of buffered approach when collecting counters. buffered callback is called when the buffer is full (or when the buffer is flushed). The callback is responsible for processing the records in the buffer.
- Dispatch callback
- This sample creates a profile to collect the counter SQ_WAVES for all kernel dispatch packets.
- Prints all functional counters.
@@ -0,0 +1,10 @@
# Runtime API Registration
## Services
- HIP runtime table registration
## Properties
- `api_registration_callback` function validates the type of library being intercepted, ensures there is only one instance of the HIP runtime library, and retrieves the dispatch table containing the API functions.
- Collects a "call stack" of intercepted API calls.
@@ -0,0 +1,15 @@
# OMPT tool tracing
## Services
- OMPT tracing.
- CodeObject tracing.
- Marker API (Core, Name).
## Properties
- Configures tool for callback tracing.
- Configures tool for buffer tracing.
- Sets up callstack for tracing kind names and tracing operation names.
- Create a specialized (throw-away) context for handling ROCTx profiler pause and resume.
- Demonstrates the use of the `ompt_data_t*` fields from OMPT.
@@ -0,0 +1,12 @@
# PC sampling service
## Services
- PC sampling stochastic method
## Properties
- Iterate through all gpu agents that supports PC sampling.
- Iterate through the supported configuration for that agent.
- The `configure_pc_sampling_prefer_stochastic` function is responsible for configuring PC sampling on a given GPU agent. It attempts to select a stochastic sampling configuration if available, falling back to a host-trap configuration otherwise.
- `rocprofiler_pc_sampling_callback` function processes PC sampling records delivered by the profiler. It validates the records, determines their type, and delegates the printing of their details to the appropriate print_sample function.