Summary
inference-perf cannot produce a meaningful GB300 measurement with the currently pinned Dynamo worker image, because that image is CUDA 12 and GB300 (Blackwell Ultra) is sm_103. The check is deferred on gb300-eks-ubuntu-inference-dynamo until an sm_103-capable (CUDA 13) vLLM / Dynamo runtime ships.
Evidence
Measured 2026-08-25 on nhensley-gb300 (2× p6e-gb300r.36xlarge, Qwen/Qwen3-8B, 4 GPU workers, concurrency 1024, 8192 requests) — the same configuration as the GB200 baseline:
| Metric |
GB200 reference |
GB300 measured |
Gate |
| throughput |
~65,952 tok/s |
20,769 tok/s |
>= 50000 |
| TTFT p99 |
~1,240 ms |
33,320 ms |
<= 2000 |
GB300 should exceed GB200. A 3× throughput drop paired with a 27× latency blowup is not a hardware characteristic — it is the signature of serving from JIT-compiled kernels.
Confirmed from the image config of nvcr.io/nvidia/ai-dynamo/vllm-runtime:1.2.1 (linux/arm64):
CUDA_VERSION=12.9.1
NV_LIBNCCL_PACKAGE=libnccl2=2.27.3-1+cuda12.9
Mechanism
Plain CUDA kernels forward-compat onto a newer arch via PTX JIT, but runtime kernel compilers (Triton/LLVM) need explicit arch support. Without sm_103 codegen the workers still serve — they just compile kernels on demand, which is what destroys first-token latency while leaving throughput merely degraded.
This is the same class of gap already documented for VR200 / sm_107a, where the toolchain does not recognize the arch at all and the decode workers crash-loop outright rather than degrade. GB300 is the milder variant because CUDA 12.9 partially handles sm_103.
Why the thresholds were not simply retuned
Setting floors from 20,769 tok/s / 33,320 ms would encode a degraded configuration as the GB300 baseline. It would turn the PR green while permanently masking this gap, and a correct CUDA 13 image would then exceed the floor by ~3×, leaving the gate unable to detect a regression in either direction.
Done when
- An
sm_103-capable (CUDA 13) vLLM / Dynamo runtime image is available and pinned.
inference-perf is re-enabled on gb300-eks-ubuntu-inference-dynamo.
- Throughput and TTFT floors are measured on GB300 and set from that run.
Notes
- Deployment (4/4) and conformance (10/10) pass on this leaf and continue to gate it; only the performance phase is deferred.
cacheWorkerImage in validators/performance/model_cache.go is pinned to the same image and is kept in sync with testdata/inference/dynamo-deployment.yaml, so both move together when the runtime is bumped.
Related: #2381 (GB300 EKS overlays), #2382 (the PR that deferred the check).
Summary
inference-perfcannot produce a meaningful GB300 measurement with the currently pinned Dynamo worker image, because that image is CUDA 12 and GB300 (Blackwell Ultra) issm_103. The check is deferred ongb300-eks-ubuntu-inference-dynamountil ansm_103-capable (CUDA 13) vLLM / Dynamo runtime ships.Evidence
Measured 2026-08-25 on
nhensley-gb300(2×p6e-gb300r.36xlarge,Qwen/Qwen3-8B, 4 GPU workers, concurrency 1024, 8192 requests) — the same configuration as the GB200 baseline:>= 50000<= 2000GB300 should exceed GB200. A 3× throughput drop paired with a 27× latency blowup is not a hardware characteristic — it is the signature of serving from JIT-compiled kernels.
Confirmed from the image config of
nvcr.io/nvidia/ai-dynamo/vllm-runtime:1.2.1(linux/arm64):Mechanism
Plain CUDA kernels forward-compat onto a newer arch via PTX JIT, but runtime kernel compilers (Triton/LLVM) need explicit arch support. Without
sm_103codegen the workers still serve — they just compile kernels on demand, which is what destroys first-token latency while leaving throughput merely degraded.This is the same class of gap already documented for VR200 /
sm_107a, where the toolchain does not recognize the arch at all and the decode workers crash-loop outright rather than degrade. GB300 is the milder variant because CUDA 12.9 partially handlessm_103.Why the thresholds were not simply retuned
Setting floors from 20,769 tok/s / 33,320 ms would encode a degraded configuration as the GB300 baseline. It would turn the PR green while permanently masking this gap, and a correct CUDA 13 image would then exceed the floor by ~3×, leaving the gate unable to detect a regression in either direction.
Done when
sm_103-capable (CUDA 13) vLLM / Dynamo runtime image is available and pinned.inference-perfis re-enabled ongb300-eks-ubuntu-inference-dynamo.Notes
cacheWorkerImageinvalidators/performance/model_cache.gois pinned to the same image and is kept in sync withtestdata/inference/dynamo-deployment.yaml, so both move together when the runtime is bumped.Related: #2381 (GB300 EKS overlays), #2382 (the PR that deferred the check).