ROCm Optiq (roc-optiq) is a unified visualization and analysis tool for performance data collected by the ROCm profiling tools,
specifically ROCm Systems Profiler and
ROCm Compute Profiler.
It brings system-level traces and kernel-level analysis data together in a single desktop application, so you can identify performance
bottlenecks, understand hardware utilization, and optimize workloads across CPUs and GPUs without switching between tools.
ROCm Optiq has no dependency on the ROCm stack itself. Collect data on a ROCm machine, then open it anywhere — Windows, Linux, or macOS.
Note
The published ROCm Optiq documentation is available here in an organized, easy-to-read format, with search and a table of contents. The documentation source files reside in the docs folder of this repository. As with all ROCm projects, the documentation is open source. For more information on contributing to the documentation, see Contribute to ROCm documentation.
Inspect CPU-GPU interactions, ROCm API calls, kernel execution timelines, memory usage, and system telemetry to find stalls, memory bandwidth issues, and inefficient kernel launches.
- System Topology — explore the hardware (processors, queues, counters) and software (processes, streams, threads) hierarchies for navigating and correlating application execution with hardware resources.
- Timeline — view CPU and GPU activity, events, and performance counters in chronological order, with zoom, pan, filtering, measurement rulers, flow arrows, annotations, and bookmarks.
- Advanced details — inspect event and sample tables with grouping, expression filtering, and per-event, per-track, and top-event breakdowns.
- Summary — see the top kernels by execution time as a pie chart, bar chart, or table.
- Minimap — view a compact overview of event density and counter values across the whole trace to quickly navigate large datasets.
Explore kernel-level metrics for a profiled workload and locate bottlenecks quickly.
- Summary — a high-level overview of the selected workload, including duration and invocation statistics and a roofline chart.
- Kernel details — memory chart, System Speed-of-Light metrics, and roofline chart for the selected kernel, with a filterable kernel selection table for comparing across kernels.
- Table view — the complete list of available metrics for the selected kernel, grouped by category.
- Workload details — system information and profiling configuration for the selected workload.
- Baseline comparison — a side-by-side view of two kernel measurements to assess regressions and improvements.
| Requirement | Details |
|---|---|
| Operating system | Windows 11, Ubuntu 22.04 / 24.04, CentOS Stream 9, or macOS 14 / 15 |
| Memory | 16 GB RAM or more is recommended for large traces |
| ROCm (for data collection only) | ROCm 7.1.0 or later for ROCm Systems Profiler traces; ROCm 7.12.0 or later for ROCm Compute Profiler analysis data |
ROCm is not required on the machine running ROCm Optiq. To check the ROCm version on the machine where you collect data, run
cat /opt/rocm/.info/version.
Download the package for your platform from the Releases page:
# Ubuntu (Debian-based)
sudo apt install ./roc-optiq-*.deb
# CentOS Stream / RHEL / Rocky
sudo dnf install ./roc-optiq-*.rpmOn Windows, run the installer and launch roc-optiq.exe. On macOS, unzip the archive and drag roc-optiq.app into Applications.
For detailed steps and verification commands, see the installation guide. To build from source instead, see BUILDING.md.
Use File > Open, drag a file onto the application window, or pass it on the command line:
roc-optiq -f /path/to/my_trace.dbSupported inputs are ROCm Systems Profiler traces (.db), RPD traces (.rpd), ROCm Compute Profiler analysis databases (.db), and ROCm
Optiq project files (.rpv). A project file stores your track customizations, bookmarks, and annotations alongside a reference to
the trace, and is created with File > Save As.
For the full list of command-line options, see the command-line reference.
Refer to ROCm documentation for detailed usage instructions.
Walkthroughs for each area are in the how-to guides: view trace data, view analysis data, and customize your project.
When capturing System traces or Compute analysis data ensure that the rocpd or analysis db output formats are enabled.
Set the ROCPROFSYS_USE_ROCPD environment variable to ensure rocpd output.
ROCPROFSYS_USE_ROCPD=true rocprof-sys-run -- ./myapp
Enable .db analysis creation via the --output-format db parameter.
rocprof-compute analyse --output-format db -p workloads/nbody/MI300X_A1
Enable rocpd output by using the --output-format rocpd parameter.
rocprofv3 --output-format rocpd --hip-trace -- ./myapp
rocprofv3 --output-format rocpd --kernel-trace --hsa-trace -- ./myapp
Report bugs and request features through the GitHub issue tracker.
Contributions of any kind are welcome. See CONTRIBUTING.md for the contribution process and CODING.md for the style rules that apply to all C++ changes.
Licensing information is in LICENSE.md.

