跳到导航

Nemotron 3.5 Super VL

Serve Nemotron 3.5 Super VL with Dynamo on VR200, GB300, B300, GB200, B200, H200 or H100.
以 Markdown 格式查看

Each target below is a Dynamo + vLLM or TensorRT-LLM deployment of NVIDIA Nemotron 3.5 Super VL, a multimodal MoE model serving up to 1M-token context. Pick your framework, GPU architecture, and serving topology. Every command on this page updates to match.

Choose your deployment target

Framework
GPU
GPU
Topology
GPUs 4x H100 (2 workers)Parallelism TP2 per workerSpeculative decoding MTP5
GPUs 4x H100 (1P1D)Parallelism TP2 per workerSpeculative decoding MTP5
GPUs 2x H200 (2 workers)Parallelism TP1 per workerSpeculative decoding MTP5
GPUs 2x H200 (1P1D)Parallelism TP1 per workerSpeculative decoding MTP5
GPUs 4x B200 (4 workers)Parallelism TP1 per workerSpeculative decoding MTP5
GPUs 5x B200 (3P2D)Parallelism TP1 per workerSpeculative decoding MTP5
GPUs 4x GB200 (4 workers)Parallelism TP1 per workerSpeculative decoding MTP5
GPUs 5x GB200 (3P2D)Parallelism TP1 per workerSpeculative decoding MTP3
GPUs 4x B300 (4 workers)Parallelism TP1 per workerSpeculative decoding MTP5
GPUs 4x GB300 (4 workers)Parallelism TP1 per workerSpeculative decoding MTP5
GPUs 5x B300 (3P2D)Parallelism TP1 per workerSpeculative decoding MTP3
GPUs 5x GB300 (3P2D)Parallelism TP1 per workerSpeculative decoding MTP3
GPUs 11x VR200 (11 workers)Parallelism TP1 per workerSpeculative decoding MTP5
GPUs 11x VR200 (7P4D)Parallelism TP1 per workerSpeculative decoding MTP5
GPUs 4x B200 (4 workers)Parallelism TP1 per workerSpeculative decoding MTP3
GPUs 4x B200 (2P2D)Parallelism TP1 per workerSpeculative decoding MTP3

Prerequisites

  • A Kubernetes cluster with the Dynamo platform installed and 4 H100 GPUs available. See the Kubernetes Deployment Guide.
  • A Hugging Face token with access to the checkpoint nvidia/NVIDIA-Nemotron-3.5-Super-VL-120B-A12B-NVFP4.
  • A Kubernetes cluster with the Dynamo platform installed and 4 H100 GPUs available. See the Kubernetes Deployment Guide.
  • A Hugging Face token with access to the checkpoint nvidia/NVIDIA-Nemotron-3.5-Super-VL-120B-A12B-NVFP4.
  • A Kubernetes cluster with the Dynamo platform installed and 2 H200 GPUs available. See the Kubernetes Deployment Guide.
  • A Hugging Face token with access to the checkpoint nvidia/NVIDIA-Nemotron-3.5-Super-VL-120B-A12B-NVFP4.
  • A Kubernetes cluster with the Dynamo platform installed and 2 H200 GPUs available. See the Kubernetes Deployment Guide.
  • A Hugging Face token with access to the checkpoint nvidia/NVIDIA-Nemotron-3.5-Super-VL-120B-A12B-NVFP4.
  • A Kubernetes cluster with the Dynamo platform installed and 4 B200 GPUs available. See the Kubernetes Deployment Guide.
  • A Hugging Face token with access to the checkpoint nvidia/NVIDIA-Nemotron-3.5-Super-VL-120B-A12B-NVFP4.
  • A Kubernetes cluster with the Dynamo platform installed and 5 B200 GPUs available. See the Kubernetes Deployment Guide.
  • A Hugging Face token with access to the checkpoint nvidia/NVIDIA-Nemotron-3.5-Super-VL-120B-A12B-NVFP4.
  • A Kubernetes cluster with the Dynamo platform installed and 4 GB200 GPUs available. See the Kubernetes Deployment Guide.
  • A Hugging Face token with access to the checkpoint nvidia/NVIDIA-Nemotron-3.5-Super-VL-120B-A12B-NVFP4.
  • A Kubernetes cluster with the Dynamo platform installed and 5 GB200 GPUs available. See the Kubernetes Deployment Guide.
  • The NVIDIA DRA driver with ComputeDomain support installed (required for multi-node NVLink).
  • A Hugging Face token with access to the checkpoint nvidia/NVIDIA-Nemotron-3.5-Super-VL-120B-A12B-NVFP4.
  • A Kubernetes cluster with the Dynamo platform installed and 4 B300 GPUs available. See the Kubernetes Deployment Guide.
  • A Hugging Face token with access to the checkpoint nvidia/NVIDIA-Nemotron-3.5-Super-VL-120B-A12B-NVFP4.
  • A Kubernetes cluster with the Dynamo platform installed and 4 GB300 GPUs available. See the Kubernetes Deployment Guide.
  • A Hugging Face token with access to the checkpoint nvidia/NVIDIA-Nemotron-3.5-Super-VL-120B-A12B-NVFP4.
  • A Kubernetes cluster with the Dynamo platform installed and 5 B300 GPUs available. See the Kubernetes Deployment Guide.
  • A Hugging Face token with access to the checkpoint nvidia/NVIDIA-Nemotron-3.5-Super-VL-120B-A12B-NVFP4.
  • A Kubernetes cluster with the Dynamo platform installed and 5 GB300 GPUs available. See the Kubernetes Deployment Guide.
  • The NVIDIA DRA driver with ComputeDomain support installed (required for multi-node NVLink).
  • A Hugging Face token with access to the checkpoint nvidia/NVIDIA-Nemotron-3.5-Super-VL-120B-A12B-NVFP4.
  • A Kubernetes cluster with the Dynamo platform installed and 11 VR200 GPUs available. See the Kubernetes Deployment Guide.
  • A Hugging Face token with access to the checkpoint nvidia/NVIDIA-Nemotron-3.5-Super-VL-120B-A12B-NVFP4.
  • A Kubernetes cluster with the Dynamo platform installed and 11 VR200 GPUs available. See the Kubernetes Deployment Guide.
  • The NVIDIA DRA driver with ComputeDomain support installed (required for multi-node NVLink).
  • A Hugging Face token with access to the checkpoint nvidia/NVIDIA-Nemotron-3.5-Super-VL-120B-A12B-NVFP4.
  • A Kubernetes cluster with the Dynamo platform installed and 4 B200 GPUs available. See the Kubernetes Deployment Guide.
  • A Hugging Face token with access to the checkpoint nvidia/NVIDIA-Nemotron-3.5-Super-VL-120B-A12B-NVFP4.
  • A Kubernetes cluster with the Dynamo platform installed and 4 B200 GPUs available. See the Kubernetes Deployment Guide.
  • A Hugging Face token with access to the checkpoint nvidia/NVIDIA-Nemotron-3.5-Super-VL-120B-A12B-NVFP4.

Create the namespace and token secret:

export NAMESPACE=your-namespace
kubectl create namespace ${NAMESPACE}
kubectl create secret generic hf-token-secret \
--from-literal=HF_TOKEN="your-token" \
-n ${NAMESPACE}

The recipes require the shared-model-cache PVC. Edit storageClassName in model-cache/model-cache.yaml to a ReadWriteMany storage class on your cluster (kubectl get storageclass) before applying it. Review namespace, image tags, and resource claims in the manifests as well.

Deploy

Create the shared-model-cache PVC and download the checkpoint:

# Edit storageClassName in model-cache/model-cache.yaml first.
kubectl apply -f recipes/nemotron-3.5-super-vl-120b-a12b/model-cache/model-cache.yaml -n ${NAMESPACE}
kubectl apply -f recipes/nemotron-3.5-super-vl-120b-a12b/model-cache/model-download.yaml -n ${NAMESPACE}
kubectl wait --for=condition=Complete job/model-download -n ${NAMESPACE} --timeout=14400s

The workers mount the PVC at /shared-model-cache and resolve the checkpoint from the local Hugging Face cache with HF_HUB_OFFLINE=1.

Deploy the selected DynamoGraphDeployment (DGD):

export DGD=super-3-5-vllm-h100-agg-swebenchpro
kubectl apply -f recipes/nemotron-3.5-super-vl-120b-a12b/vllm/agg-h100-swebenchpro/deploy.yaml -n ${NAMESPACE}
export DGD=super-3-5-vllm-h100-disagg-swebenchpro
kubectl apply -f recipes/nemotron-3.5-super-vl-120b-a12b/vllm/disagg-h100-swebenchpro/deploy.yaml -n ${NAMESPACE}
export DGD=super-3-5-vllm-h200-agg-swebenchpro
kubectl apply -f recipes/nemotron-3.5-super-vl-120b-a12b/vllm/agg-h200-swebenchpro/deploy.yaml -n ${NAMESPACE}
export DGD=super-3-5-vllm-h200-disagg-swebenchpro
kubectl apply -f recipes/nemotron-3.5-super-vl-120b-a12b/vllm/disagg-h200-swebenchpro/deploy.yaml -n ${NAMESPACE}
export DGD=super-3-5-vllm-b200-agg-swebenchpro
kubectl apply -f recipes/nemotron-3.5-super-vl-120b-a12b/vllm/agg-b200-swebenchpro/deploy.yaml -n ${NAMESPACE}
export DGD=super-3-5-vllm-b200-disagg-swebenchpro
kubectl apply -f recipes/nemotron-3.5-super-vl-120b-a12b/vllm/disagg-b200-swebenchpro/deploy.yaml -n ${NAMESPACE}
export DGD=super-3-5-vllm-gb200-agg-swebenchpro
kubectl apply -f recipes/nemotron-3.5-super-vl-120b-a12b/vllm/agg-gb200-swebenchpro/deploy.yaml -n ${NAMESPACE}
export DGD=super-3-5-vllm-gb200-disagg-swebenchpro
kubectl apply -f recipes/nemotron-3.5-super-vl-120b-a12b/vllm/disagg-gb200-swebenchpro/deploy.yaml -n ${NAMESPACE}
export DGD=super-3-5-vllm-b300-agg-swebenchpro
kubectl apply -f recipes/nemotron-3.5-super-vl-120b-a12b/vllm/agg-b300-swebenchpro/deploy.yaml -n ${NAMESPACE}
export DGD=super-3-5-vllm-gb300-agg-swebenchpro
kubectl apply -f recipes/nemotron-3.5-super-vl-120b-a12b/vllm/agg-gb300-swebenchpro/deploy.yaml -n ${NAMESPACE}
export DGD=super-3-5-vllm-b300-disagg-swebenchpro
kubectl apply -f recipes/nemotron-3.5-super-vl-120b-a12b/vllm/disagg-b300-swebenchpro/deploy.yaml -n ${NAMESPACE}
export DGD=super-3-5-vllm-gb300-disagg-swebenchpro
kubectl apply -f recipes/nemotron-3.5-super-vl-120b-a12b/vllm/disagg-gb300-swebenchpro/deploy.yaml -n ${NAMESPACE}
export DGD=super-3-5-vllm-vr200-agg-swebenchpro
kubectl apply -f recipes/nemotron-3.5-super-vl-120b-a12b/vllm/agg-vr200-swebenchpro/deploy.yaml -n ${NAMESPACE}
export DGD=super-3-5-vllm-vr200-disagg-swebenchpro
kubectl apply -f recipes/nemotron-3.5-super-vl-120b-a12b/vllm/disagg-vr200-swebenchpro/deploy.yaml -n ${NAMESPACE}
export DGD=super-3-5-trtllm-b200-agg-swebenchpro
kubectl apply -f recipes/nemotron-3.5-super-vl-120b-a12b/trtllm/agg-b200-swebenchpro/deploy.yaml -n ${NAMESPACE}
export DGD=super-3-5-trtllm-b200-disagg-swebenchpro
kubectl apply -f recipes/nemotron-3.5-super-vl-120b-a12b/trtllm/disagg-b200-swebenchpro/deploy.yaml -n ${NAMESPACE}

The published deploy.yaml recipes are generic base recipes agnostic to cluster-specific settings. Adapt to your cluster scheduling, tolerations, and networking by using kustomizations.

Smoke Test

Send a test request to verify the selected deployment serves traffic. The deploy command sets DGD to its resource name. Forward the frontend port:

kubectl port-forward svc/${DGD}-frontend 8000:8000 -n ${NAMESPACE}

All Nemotron 3.5 Super VL recipes serve under the same model name, nvidia/nemotron-3.5-super-vl-120b-a12b:

curl http://localhost:8000/v1/chat/completions \
-H 'Content-Type: application/json' \
-d '{"model":"nvidia/nemotron-3.5-super-vl-120b-a12b","messages":[{"role":"user","content":"Write a one-sentence readiness check."}],"max_tokens":64}'

Nemotron 3.5 Super VL reasons before answering, and tool calling is supported — the deployment uses the nemotron_v3 reasoning and qwen3_coder tool-call parsers at the frontend.

Benchmark

See perf/README.md for the full benchmark workflow: staging the trace on the PVC, running the AIPerf trace-replay Job, running a concurrency sweep, and fetching artifacts.

Optimization Targets

Recipes are optimized for the following agentic workload and target user interactivity / TTFT:

WorkloadMedian ISLMedian OSLKV cache hit rateUser output tok/sTTFT P50
SWEBench-Pro222,07618899%> 50< 5 s

The benchmark replays the Weka-format agentic trace described in perf/README.md.

Performance Results

WorkloadRecipeFrameworkSKUConcurrencySystem Output Tokens/s/GPUUser Output Tokens/s (P50)TTFT P50 (ms)
SWEBench-ProAggregated (2 workers)vLLMH10016270102.2490
SWEBench-ProDisaggregated (1P1D)vLLMH100162591061,300
SWEBench-ProAggregated (2 workers)vLLMH2001637661710
SWEBench-ProDisaggregated (1P1D)vLLMH2001636161.61,870
SWEBench-ProAggregated (4 workers)vLLMB2001281,378.968.86396
SWEBench-ProDisaggregated (3P2D)vLLMB2001281,050.4460.841,073
SWEBench-ProAggregated (4 workers)vLLMGB2001281,503.5776.15403
SWEBench-ProDisaggregated (3P2D)vLLMGB2001281,269.9382.09836
SWEBench-ProAggregated (4 workers)vLLMB3001281,53678.5438
SWEBench-ProAggregated (4 workers)vLLMGB3001601,719.5167.9381
SWEBench-ProDisaggregated (3P2D)vLLMGB3001281,356.5182.76649
SWEBench-ProAggregated (4 workers)TensorRT-LLMB2008099578.98655
SWEBench-ProDisaggregated (2P2D)TensorRT-LLMB200801,119.13144.612,366
SWEBench-ProAggregated (11 workers)vLLMVR2006162,96996.6490
SWEBench-ProDisaggregated (7P4D)vLLMVR2005283,276155.91,120
SWEBench-ProDisaggregated (3P2D)vLLMB3001601,31768.11,390

The VR200 rows replay SWE-bench Pro agentic multi-turn traces. Throughput is raw output tokens. Each VR200 row is the highest output per GPU with at least 50 output tokens/s per user (P50) and TTFT P50 under 5 s. The VR200 results used a synthetic MTP acceptance length of 4.063 with five draft tokens. The VR200 recipes default to natural acceptance; the synthetic setting is a commented line. VR200 artifacts are not published. At the same GPU count, 7P4D gives +10.3% output per GPU (observed across separate runs). The 7P4D row ran on the previous image with FlashInfer #5267 and vLLM #58231 added, plus a runtime patch for the KV split that FlashInfer #6331 and vLLM #61077 provide. The aggregated row ran on the image in the manifest.

Compare All Targets

GPU counts below use the standalone manifests. P counts prefill workers. D counts decode workers.

FrameworkGPUTopologyTotal GPUsParallelismPrecisionRoutingSpeculative DecodingContext length
vLLMH1002 workers4TP2 per workerNVFP4 weights, FP8 KVKV-awareMTP51M
vLLMH1001P1D4TP2 per workerNVFP4 weights, FP8 KVKV-awareMTP51M
vLLMH2002 workers2TP1 per workerNVFP4 weights, FP8 KVKV-awareMTP51M
vLLMH2001P1D2TP1 per workerNVFP4 weights, FP8 KVKV-awareMTP51M
vLLMB2004 workers4TP1 per workerNVFP4 weights, FP8 KVKV-awareMTP51M
vLLMB2003P2D5TP1 per workerNVFP4 weights, FP8 KVKV-awareMTP51M
vLLMGB2004 workers4TP1 per workerNVFP4 weights, FP8 KVKV-awareMTP51M
vLLMGB2003P2D5TP1 per workerNVFP4 weights, FP8 KVKV-awareMTP31M
vLLMB3004 workers4TP1 per workerNVFP4 weights, FP8 KVKV-awareMTP51M
vLLMB3003P2D5TP1 per workerNVFP4 weights, FP8 KVKV-awareMTP31M
vLLMGB3004 workers4TP1 per workerNVFP4 weights, FP8 KVKV-awareMTP51M
vLLMGB3003P2D5TP1 per workerNVFP4 weights, FP8 KVKV-awareMTP31M
vLLMVR20011 workers11TP1 per workerNVFP4 weights, FP8 KVKV-awareMTP51M
vLLMVR2007P4D11TP1 per workerNVFP4 weights, FP8 KVKV-awareMTP51M
TensorRT-LLMB2004 workers4TP1 per workerNVFP4 weights, FP8 KVLoad + session affinityMTP31M
TensorRT-LLMB2002P2D4TP1 per workerNVFP4 weights, FP8 KVLoad + session affinityMTP31M

Source