ROCm Profiling
See the Quick Start guide on how to install Graphsignal.
Graphsignal profiles AMD ROCm workloads via AMD’s rocprofiler-sdk — no code instrumentation required. Attach the profiler to any HIP/ROCm program (PyTorch, vLLM, SGLang, raw HIP, custom Triton kernels) and the GPU side comes through automatically.
What’s captured
Section titled “What’s captured”Everything lands in the local /signals endpoint as profile metrics — cumulative counters per named frame, sorted by value descending — plus counters:
rocm_kernels_nanoseconds— cumulative execution time per kernel, frames are the raw kernel symbols.rocm_memcpy_nanoseconds— cumulative time per transfer kind, withrocm_memcpy_bytes{kind}counters carrying the volumes.rocm_sync_nanoseconds— cumulative host-blocking time per HIP synchronization API (hipDeviceSynchronize,hipStreamSynchronize,hipEventSynchronize, …).
Host-side GPU probes work on ROCm too; device-storage probes recorded from HIP kernels are registered but not read by the ROCm activity library.
How it works
Section titled “How it works”graphsignal-run loads a small activity library into the workload process via ROCP_TOOL_LIBRARIES; it collects rocprofiler-sdk activity records with low overhead and publishes cumulative state once per second. Everything else — analysis, statistics, the HTTP endpoint — runs in the sidecar profiler process, never inside the workload.
Integration
Section titled “Integration”Wrap your launch command with graphsignal-run:
graphsignal-run <my-app>Collection starts automatically once the workload begins using the GPU. Requires ROCm 7+; if ROCm isn’t found, Graphsignal skips ROCm profiling without affecting the workload. While the workload runs, read everything at http://127.0.0.1:18259/signals. See the Profiler CLI reference for options.