Skip to content

Input formats ​

Every format below is resolved by the Rust core (crates/profile-core/src/import.rs, load_capture_options), which picks an adapter by path kind and extension. The GUI's file picker offers a single filter, "ROCm and RADV captures", accepting:

json  csv  att  rocprof-att  rocprof-capture  rocpd  rpd  db  sqlite  rgp  irpf

Directory mode instead selects a decoded ui_output_* directory or a raw ATT directory.

Import is read-only

No adapter writes into your input. ROCPD databases are opened read-only / query-only; the raw-ATT decoder works inside a temporary directory and never writes decoded files into the input directory.

What each adapter loads ​

ArtifactProducerWhat the adapter does
Decoded ui_output_* directory (has filenames.json)rocprofv3 / ROCprof Compute Viewer decode outputFull capture: timeline, waves, ISA, occupancy, source links.
filenames.json / code.json / occupancy.json opened directlya decoded capture manifestResolves to the parent directory and loads it as above.
rocprofv3 kernel-trace CSVrocprofv3Kernel dispatch timeline from the CSV columns.
Per-dispatch counter-collection CSVrocprofv3Counter samples associated with dispatches.
Host-trap / stochastic PC-sampling CSVrocprofiler-sdk PC samplingDetected by a Sample_Timestamp column; method is "stochastic" if Wave_Issued_Instruction is present, else "host-trap". Lands in a separate observation table.
Standalone SPM results JSONrocprofv3 / rocprofiler-sdkScalar/streaming performance-monitor series.
Host-trap / stochastic PC-sampling JSON, and combined SPM/PC JSONrocprofiler-sdkIf both host-trap and stochastic are present, the desktop shows a method chooser.
.rpd / .rocpd / .db / .sqlite (ROCPD / legacy)ROCm SDK rocpd / legacy rocmProfileDataOpens the database read-only; UUID-partitioned ROCm SDK databases are handled. Bounded per query (see Limits); ROCPD support is "Partial".
.rocprof-capturethis app's Archive capture exportA portable capture that opens without the original input directory or decoder.
.rocprof-att manifestthis app's ATT setupDecodes the described raw-ATT traces and code objects.
Raw ATT .att filerocprof-trace-decoder outputDecodes the matching process/run across SE files. Needs the decoder prerequisites.
Raw ATT directory (no filenames.json)as aboveDiscovers runs, then decodes; a directory with multiple runs opens a run chooser.
RADV .rgpMesa RADV driverVulkan compute hardware counters, thread traces and kernel names (experimental — see RADV).
HRX native .irpfHRX libhrx (HRX_PROFILE_MODE=queue|dispatch)IREE HAL IRPF v2.0 profile bundle: resolved dispatches, function names, code-object identity and clock correlations; no waves, ISA or hardware counters. Raw device ticks converted to elapsed ns; events are not placed on a host timeline (device-tick-unaligned). Also recognised by magic when the file lacks the .irpf extension. See HRX profiling.
Loom compile report (*.compile-report.json, or an iree-benchmark-loom benchmark envelope)loom-compile / iree-benchmark-loom (hrx-system)Version-zero static compile facts about a compiled kernel: identity, static and dynamic instruction mix, target resources, allocation and spill facts, wait plan, workload geometry, residency and constraints, move causes, detail rows. Validated against the strict version-zero loader and kept on a surface separate from dispatches and measured data. No cycles and no runtime counts; absent fields stay absent. Recognised by the .compile-report.json suffix or a loom.compile_report content sniff. See HRX profiling.
.rocprof-projectthis app's Save projectRestores a saved workspace; references the original capture paths (not loaded through the capture dispatcher — see Projects).

Raw ATT setup ​

For named rocprofv3 inputs (*_shader_engine_<SE>_<RUN>.att, *_code_object_id_<ID>.out), open a directory or choose an .att file with the capture-tab +; a directory with multiple runs opens a run chooser. For arbitrary filenames, or any unrecognised .att name, the app opens ATT setup, where you pick the traces and code objects and enter their recorded shader-engine / code-object IDs, then save a reusable .rocprof-att manifest. Code-object IDs are stored as decimal strings to preserve all 64 bits. Setup does not guess IDs, rename inputs, or load unrelated sibling code objects; manifests may use paths relative to their own directory.

ATT setup (desktop application)ATT setup in the desktop app: mapping raw .att traces and .out code objects to shader-engine / code-object IDs.

ATT run chooser (desktop application)When a directory holds several ATT runs, a run chooser appears.

Before you import ​

  • Decoded captures are self-contained. They need no Python, no decoder library and no ROCm disassembly tools; only raw ATT does.
  • Coverage cannot be proven from a dispatch CSV alone. A CSV that looks complete does not prove every dispatch was observed. See Limits & caveats.
  • The headless CLI opens the same inputs as the desktop, including .rocprof-att manifests: all three surfaces share one cancellable, fingerprinted import router.

Browser-testable fixtures ship with the repo: public/demo.json (the bundled synthetic example), public/demo-hidden.json, fixtures/rocpd/sdk-3.0.4.json and .db, fixtures/transpose-ui/*, and fixtures/radv-rgp/*.rgp.

This site documents rocprof-studio without changing it. Screenshots of the synthetic example are labelled as such and are not GPU measurements.