Module tree
Modules tinted by role, with repeated layers folded.
GPU kernels reveal where time is spent, but not which model operations are responsible. Zymtrace connects GPU execution to PyTorch layers and tensor shapes, so you can pinpoint costly operations and prioritize optimizations that improve model performance.
Model Layer frames sit between your Python code and the native stack, so a GEMM kernel reads as the layer that launched it.
layers.17 and layers.18 compare side by side
See the models loaded across your fleet, with their size, how they're sharded across GPUs, and the hosts and processes that run them.
Modules tinted by role, with repeated layers folded.
Each module's tensors, plus a precision breakdown for the model.
vLLM's tensor- and pipeline-parallel layout, with logical shapes per shard.
No NVTX ranges, no code changes. Read every 30 seconds by default.
Turn it on with ZYMTRACE_CUDAPROFILER__MODEL_SHAPE__ENABLED=true or the ROCm equivalent.
CUDA graphs flatten nesting, so serve vLLM with --enforce-eager for full depth.
ZYMTRACE_CUDAPROFILER__MODEL_SHAPE__ENABLED=true, or ZYMTRACE_ROCMPROFILER__MODEL_SHAPE__ENABLED=true on AMD, and turn on Models in Settings.Zymtrace is fully self-hosted. 5 minutes is all you need to get it up and running.