ROCm Trace Decoder Makes AMD GPU Profiling More Inspectable

· March 6, 2026|Last updated on May 17, 2026|2 min read
Cover

AMD GPU performance problems need evidence at the instruction and wavefront level. A local inference system can look healthy at the service layer while kernels stall, memory access patterns drift, or a runtime update quietly changes occupancy. Hermes can report that a model is slow. Explaining why takes profiling data.

What the decoder is

ROCm exposes rocprof-trace-decoder as the analysis side of thread tracing. AMD's ROCprofiler-SDK documentation describes a trace decoder API and setup path where raw thread trace data is decoded through a library, usually installed under /opt/rocm/lib, and the companion usage docs cover the collection and decoding workflow.

That makes the decoder part of a measurable pipeline rather than an opaque GUI-only tool.

Where OtherU would use it

Kernel regression work comes first. When a ROCm update changes throughput for embeddings, vision, or model-serving kernels, trace data says something more precise than wall-clock latency.

Second is tuning custom compute paths, where occupancy, memory traffic, and instruction mix decide the outcome. Third is incident response, when GPU behavior changes after a driver, kernel, or container update.

The agent's role is context, not profiling

Hermes should not run profilers freely. It should help collect the right context around an operator-approved profiling session: workload version, GPU model, ROCm version, container image, command line, and recent deployment changes.

That turns raw trace output into an audit trail a human can review and compare across runs.

Thread tracing is a sharp tool

It adds overhead, produces large outputs, and needs hardware and runtime support that varies by GPU generation.

Keep profiling workflows separate from normal production inference, document when traces are allowed, and do not let an autonomous agent run intrusive diagnostics without approval.

Standardize the capture

A profiling run should name the model, prompt size, batch behavior, ROCm version, kernel version, container image, and GPU clocks. Hermes can assemble that metadata and attach it to the decoded output.

That turns profiling into a comparable record instead of a one-off debugging session. When an inference update slows down, operators can compare traces from the old and new stack rather than guessing between kernel launch overhead, memory movement, attention shape, and a driver change.

Inspectability is the point. It is also a prerequisite for local infrastructure that an agent can safely assist, because it gives the human reviewer enough detail to decide whether a fix belongs in code, configuration, or the serving environment.