The AI Infra Optimization Platform

Your whole AI stack, fully optimized

Squeeze more FLOPs from the hardware you already own. Profile-guided, agentic optimization for training and inference workloads.

Start free trial
  • Cluster-wide
  • Multi-silicon
  • Self-hosted
Zymtrace dashboard
Maximize throughput per chip, per watt, per dollar

Unified optimization layer for multi-silicon fleets

Silicon-aware and always-on, whether your fleet is all NVIDIA or a mix. Zymtrace sits between your AI workloads and the accelerators beneath them, turning execution data into hardware-aware optimization.

Distributed Training
Disaggregated Inference
Supervised Fine-tuning

zymtrace

Silicon-aware · Always-on · Agentic optimization

CPU x86 · arm64
NVIDIA CUDA · NVLink
ROCm · Instinct
AWS Neuron Trainium · Inferentia
Google TPU Cerebras coming soon · contact us for early access →
Beneath the profiler

GPU topology health

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.

NVLink health CRC, replay, and recovery per link
ECC and XID Memory and driver errors, fleet-wide
NUMA affinity Catch non-affine CPU placement
Actionable recommendations Not just an alert
interconnect_matrix · GB300 · 4 GPUs
GPU0 GPU1 GPU2 GPU3 GPU0 SELF NV14 NV18 NV18 GPU1 NV14 SELF NV14 SYS GPU2 NV18 NV14 SELF NV18 GPU3 NV18 SYS NV18 SELF
python3 pretrain_gpt.py · GPU 2 NUMA

Ran on CPUs 16-19, which are on NUMA 0 and not affine with this GPU.

fix: numactl --cpunodebind=1 --membind=1

Profiling depth

Tracing starts where execution starts: the CPU

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.

Application code
Python · C++ · JAX · PyTorch
CPU execution attaches here
Host thread · scheduling · memory copy
Runtime layer
CUDA · XLA · ROCm · OFI
Accelerator to instruction level
NVIDIA · TPU · AMD · Inferentia

↑ observe from silicon up

Coverage

Inference, training, and everything underneath

Use Zymtrace to debug and optimize inference and training on the engines you already use, from vLLM and SGLang to distributed training, so you maximize throughput per GPU, per watt.

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.

vLLM vLLM
SGLang SGLang
llm-d llm-d
NVIDIA TensorRT-LLM and Dynamo-Triton TensorRT-LLM · Dynamo
prefill TTFT 84 ms healthy
decode ITL 11 ms bottleneck

Training and distributed runs

One execution flow across the CPU/GPU boundary, from Python down to the exact GPU instruction.

execution flow · one stack self time
Python model.forward(tokens) 100%
Native aten::scaled_dot_product 93%
Launch cudaLaunchKernel(...) 85%
Kernel flash_attn_fwd_kernel 78%
SASS HMMA.16816.F32 62%
Stall stall_memory_dependency 41%

41% of GPU time waiting on memory, attributed to one instruction

Whole-system profiling, every language

Continuous profiles of every process on the box, compiled and interpreted alike, with automatic symbolization of native and CUDA frames.

CUDA
ROCm
PyTorch
JAX Light Stroke
100% Code coverage
0 Code changes
0 Restarts

Recommendations built on top

Everything above feeds one ranked list: what to change, why it matters, and where to apply it.

HIGH SEVERITY recommendation · 1 of 16

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.

cost $2,530/mo CO₂ 232 kg
1 vllm serve $MODEL --kv-cache-dtype fp8 2 add --calculate-kv-scales if uncalibrated
Autonomous optimization

Profile-guided agentic optimization

We enrich coding agents with perf data context from Zymtrace over MCP, so they find the bottleneck and open a pull request.

01
Pull Filters the fleet, then pulls GPU flamegraphs and inference metrics over MCP.
02
Correlate Cross-checks the CPU profiles for the same run to separate dispatch from compute.
03
Diagnose Names the hot frame, why it stalls, and what it costs in tokens/sec.
04
Fix and verify ↺ LOOP Applies the change, then re-profiles to prove the win.
coding agent · Zymtrace skills

MCP server

Flamegraphs, top functions, and GPU metrics exposed as MCP tools. Any MCP-capable agent can query production directly.

Zymtrace agent skills

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 →

Subagents at fleet scale

Fan out specialized subagents to investigate many workloads in parallel. Each one returns an evidence-backed diagnosis and fix, not a guess.

In production

The bottleneck is rarely the hardware

Most GPU clusters run under 40% utilization. These teams found what was actually stalling their workloads and fixed it without provisioning a single extra GPU.

Yoseph Reuveni
Low-overhead CPU and GPU profiling

Zymtrace is one of the most remarkable pieces of technology I have ever used.

Deep visibility into application behavior, resource utilization, and performance bottlenecks is no longer a luxury. It is a foundational capability for operating at scale.

Yoseph Reuveni Sr. Director II, SRE · Walmart Read the post →
“Excited to welcome Zymtrace to the Walmart Sparkcubate program to help build the AI infrastructure observability layer.”
Vini Jolly, Walmart Global Tech →
Ben Carr
Real-time avatar inference

We spent so much time hunting down why our GPUs were being used inefficiently, and often we couldn't even reproduce the issue when we tried to profile it. … Zymtrace solved both problems: it runs continuously, so the data is always there when issues happen, and the entire team can understand it without needing specialized GPU profiling knowledge.

2.5× faster inference 90% more throughput Stalls resolved at the instruction
Ben Carr Co-founder & CTO · Anam Read the case study →
Laurence Cullen
40× faster GPU CFD solver

Oscar Holroyd and Michael Negus have done a massive refactor on the Vanellus solver over the last couple of weeks, removing some gnarly GPU memory transfer bottlenecks the Zymtrace GPU profiler helped us identify.

Laurence Cullen Founder · Vanellus Read the post →
Zero friction

Deploys into your existing stack, unchanged

No re-architecting. No code changes. The agent drops into whatever you already run.

Kubernetes Kubernetes Helm, one command
Slurm Slurm HPC scheduler native
Multi-GPU Cluster-wide correlation
MIG Per-instance profiling
NVTX Your own code annotations
CUDA Graphs Full trace capture
Open-source DNA

Built by the team that donated the eBPF profiler to OpenTelemetry

We pioneered, open-sourced, and donated the eBPF profiler to OpenTelemetry. 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.

deploy.sh
# 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

 agent running fleet-wide
 CPU + GPU profiles streaming
 overhead <1% CPU · <250MB RAM
FAQ

Frequently asked questions

Still stuck? Contact us at [email protected]

Currently, only the self-hosted version is supported. If you're interested in a SaaS version, please contact Zymtrace support.
Zymtrace is a whole-system profiler for any application, not just GPU code. While profiling, it automatically checks if the machine has an NVIDIA GPU. If one is present, it also detects CPU operations that launch GPU work and provides performance visibility into their interactions.
Zymtrace is silicon-aware across heterogeneous compute: GPUs, AI accelerators, and CPUs. Chip support is expanding quickly. Contact Zymtrace support and we'll confirm coverage for your fleet.
Zymtrace is currently limited to Linux machines. We heavily utilize eBPF, which is not yet well-supported on Windows.
Zymtrace is designed to operate within a minimal resource footprint, targeting just 1% CPU usage and less than 250MB of RAM. This efficiency allows for 24/7 operation on most workloads without noticeably impacting the profiled systems. For particularly resource-sensitive environments, Zymtrace can be configured with lower sampling rates, providing valuable insights while further reducing its performance impact. The agent profiles itself so you can clearly see the overhead.

Get started now

Zymtrace is fully self-hosted. 5 minutes is all you need to get it up and running.

Try it now