Very Low-Overhead Continuous Profiling of GPU-Accelerated LLM Workloads
Keren Zhou
Abstract
As large language model (LLM) serving and reinforcement learning (RL)
systems increasingly rely on GPUs for acceleration, efficiently utilizing
GPU resources has become critically important. Existing monitoring tools
such as nvidia-smi provide only coarse-grained utilization metrics,
offering little insight into which GPU kernels are underperforming or how
close they operate to peak FLOPs. In contrast, traditional profilers such
as nsys and rocsys introduce non-trivial overhead (often exceeding 10%),
making them impractical for online serving environments where even a 1%
performance loss is unacceptable.
Achieving continuous, production-grade profiling poses three key
challenges: (1) runtime overhead, as kernel-level timing must be collected
without GPU synchronization, excessive CPU locking, or Python GIL
contention; (2) memory overhead, since long-running services must avoid CPU
memory leaks while profiling continuously over days or months; and
(3) storage overhead, as modern LLM workloads may invoke millions of
kernels across different call paths and input configurations in a short
time, making full trace serialization and offline analysis prohibitively
expensive.
In this talk, we present our latest progress on Proton to enable always-on
Monitoring of LLM workloads with less than 1% overhead. Proton provides
fine-grained kernel-level performance insights while remaining memory
efficient for long-running production deployments. Moreover, Proton offers
unique visibility into graph-executed LLM workloads by identifying where
kernels are captured and reporting per-kernel FLOPs utilization, enabling
practitioners to pinpoint inefficiencies that are invisible to existing
tools. We achieve this by co-designing the profiling framework and runtime,
exposing multi-layer, multi-level profiling APIs tailored to LLM services,
which allow performance data to be selectively collected, aggregated, and
interpreted with minimal overhead. Core techniques include selective
profiling, phase-based profiling and recycling, copy-on-write updates on
metadata, lock-free metrics collection, and lightweight metric kernels that
custom statistics directly on the GPU without synchronization.
kernel driver.