Disaggregated inference, end to end
Metrics and profiles collected from the inference engines themselves, across prefill and decode, on heterogeneous accelerators. Drill from a dip in token throughput straight into the stall behind it.
Profile-guided, agentic optimization. Zymtrace continuously introspects your workloads, from CPU code to GPU instructions, and turns execution data into silicon-aware fixes your agents and engineers can ship.
Silicon-aware and always-on, whether your fleet is all NVIDIA, all AMD, or a mix. Zymtrace sits between your AI workloads and the accelerators beneath them, turning execution data into hardware-aware optimization.
zymtrace
Silicon-aware · Always-on · Agentic optimization
CUDA · NVLink Zymtrace picks up execution on the CPU with eBPF and traces it down to the accelerator. An MRI for your stack: it exposes the bottlenecks hiding between the layers, with minimal overhead.
↑ observe from silicon up
When a performance problem isn't in your code, it's in your hardware. Zymtrace surfaces GPU health, topology, and interconnect issues that waste the compute you paid for.
Ran on CPUs 16-19, which are on NUMA 0 and not affine with this GPU.
fix: numactl --cpunodebind=1 --membind=1
Use Zymtrace to debug and optimize inference and training on the engines you already use, from vLLM and SGLang to distributed training.
Metrics and profiles collected from the inference engines themselves, across prefill and decode, on heterogeneous accelerators. Drill from a dip in token throughput straight into the stall behind it.
One execution flow across the CPU/GPU boundary, from Python down to the exact GPU instruction.
41% of GPU time waiting on memory, attributed to one instruction
Continuous profiles of every process on the box, compiled and interpreted alike, with automatic symbolization of native and CUDA frames.
Everything above feeds one ranked list: what to change, why it matters, and where to apply it.
Switch the KV cache to FP8
Decode is bandwidth-bound: 41% of GPU time stalls on memory dependency, not compute. An FP8 cache halves KV bytes per token and keeps more sequences resident, so batches grow instead of waiting.
We enrich coding agents with perf data context from Zymtrace over MCP, so they find the bottleneck and open a pull request.
Flamegraphs, top functions, and GPU metrics exposed as MCP tools. Any MCP-capable agent can query production directly.
Ready-made skills teach your coding agent the whole optimization workflow: rank consumers, read flamegraphs, interpret stall reasons, apply the fix.
Read about agent skills →Fan out specialized subagents to investigate many workloads in parallel. Each one returns an evidence-backed diagnosis and fix, not a guess.
No re-architecting. No code changes. The profiler drops into whatever you already run.
Slurm HPC scheduler native With Zymtrace, we're extending that same low-level engineering to GPU-bound workloads, building a scalable profiling platform purpose-built for today's distributed, heterogeneous fleets.
# zero code changes, no restarts. up in 5 minutes.
$ helm repo add zymtrace https://charts.zymtrace.com
$ helm install zymtrace zymtrace/profiler \
--set gateway.url=$ZYMTRACE_GATEWAY
✓ profiler running fleet-wide
✓ CPU + GPU profiles streaming
✓ overhead <1% CPU · <250MB RAM Engineering notes on profiling, GPUs, and efficient AI infrastructure.
Zymtrace is fully self-hosted. 5 minutes is all you need to get it up and running.