Published on

Qwen3-Coder auf DGX Spark: 73 tok/s NVFP4

Authors

Qwen3-Coder auf DGX Spark: 73 tok/s NVFP4

TL;DR

Das dichte 27B-Rezept auf dem Spark kennen Sie: Qwen3.8-27B NVFP4. Für Coding-Agenten ist die Schwesterkarte ein MoE: Qwen3-Coder-30B-A3B in NVFP4. Gemessen auf einem einzelnen GB10, Single-Stream-Decode: 72,9 tok/s ohne Speculation, 138,7 tok/s beim Code-Edit mit EAGLE3 und int4-lm_head. Dieselbe Speculation macht freien Text langsamer. Schalten Sie sie nur für Agent-Coding ein.

Hardware: NVIDIA DGX Spark. Claude Code auf demselben Gerät: DGX Spark Claude Code.

Warum Coder, nicht noch ein 27B

Qwen3-Coder-30B-A3B ist Mixture-of-Experts: rund 30 Milliarden Parameter gesamt, 3 Milliarden aktiv pro Token. Der Speicher sieht trotzdem fast das ganze Modell. MoE spart Rechenzeit, nicht GB: MoE und VRAM.

Auf dem Spark zählt Bandbreite. Der GB10 hat grob 273 GB/s. Jedes Token liest Gewichte. NVFP4 verkleinert den Transfer. Deshalb dieselben 4-Bit wie beim 27B-Chat-Rezept — anderes Modell, gleiche Physik.

Die gemessenen Zahlen (ein Spark, ein Stream)

Die Werte kommen aus einem öffentlichen Checkpoint plus Benchmark-Harness. Prefill ist nicht in der Decode-Zahl. Läufe mit zweitem Prozess auf derselben Karte wurden verworfen (der Spark zeigt zwei zeitgeteilte GPU-Replicas).

SetupCode-EditFreier TextLanger Kontext (52K)
NVFP4, keine Speculation72,971,442,3
+ EAGLE3 (k=3)131,2 (1,80×)52,8 (0,74×)55,0
+ EAGLE3 + int4-lm_head138,7 (1,90×)

Ohne Last-Gate misst dasselbe Setup laut Autor 27 bis 139 tok/s. Eine nackte Peak-Zahl ohne Workload ist unbrauchbar.

EAGLE3-Akzeptanz im selben Lauf: Code-Edit 96 Prozent, langer Kontext 33 Prozent, freier Text 15 Prozent. Der Draft-Head ist auf Code trainiert. Deshalb die Regel: Coding-CLI ja, allgemeiner Chat-Endpoint nein.

Ngram-/Prompt-Lookup war in dem Test eine Falle: 80 Prozent Akzeptanz, trotzdem 45 Prozent langsamer (72,9 → 39,9), weil die Suche auf einer CPU-Thread läuft. EAGLE3 drafted auf der GPU.

Was Sie an vLLM tatsächlich setzen

Container laut Repo: vLLM-Nightly arm64/sm121. Kein --quantization-Flag, vLLM erkennt compressed-tensors. Kontext nativ 262.144, ohne YaRN-Override.

vllm serve /models/qwen3-coder-30b-nvfp4 \
  --served-model-name qwen3-coder \
  --max-model-len 262144 \
  --kv-cache-dtype fp8 \
  --enable-prefix-caching \
  --enable-chunked-prefill \
  --enable-auto-tool-choice \
  --tool-call-parser qwen3_coder \
  --max-num-seqs 4 \
  --gpu-memory-utilization 0.42 \
  --attention-backend flashinfer \
  --port 8888 --host 0.0.0.0

Speculation nur, wenn der Traffic Code ist. Dann den EAGLE3-Head aus dem selben Repo und num_speculative_tokens: 3. Der Head braucht etwas mehr KV-Cache als das Zielmodell allein.

--gpu-memory-utilization 0.42 klingt niedrig. Auf Unified Memory ist das Absicht: OS, Runtime und transienter Cache teilen sich 128 GB. Volle 0,9 friert den Kasten ein, analog zum 27B-SGLang-Freeze.

Runtime-Schnitt allgemein: llama.cpp vs. vLLM.

Was das für den Kauf heißt

Ein Spark (Listen grob 3.000–3.500 Euro) trägt den Coder plus Kontext, den eine 32-GB-Karte nicht hält. Tokenrate beim interaktiven Tippen bleibt hinter einer RTX 5090. Für Agent-Loops über Nacht und Tool-Calls im Haus ist 73 tok/s ohne Cloud-Abo die relevante Schwelle, nicht 200 tok/s in einem Blog-Chart.

Im MoE-Vergleich auf derselben Karte war der Coder laut dem Datensatz der einzige der getesteten 30B-Klasse, der unter einem echten Agent-Prompt zuverlässig Tool-Calls ausgab (11 von 14 Tasks). Schnellere MoEs ohne Tools helfen einem Coding-Agenten nicht.

Nächster Schritt im Stufenweg: ein Gerät, ein Modell, messen. Erst dann zwei Sparks oder ein klassischer GPU-Server: KI-Server kaufen, 2 GPUs für 70B.

Häufige Fragen

Ist 139 tok/s der Alltag?

Nein. Das ist Code-Edit plus EAGLE3 plus int4-Kopf, Single-Stream, keine Nachbarlast. Chat ohne Speculation liegt bei etwa 71 tok/s. Langer Prompt bei 42 tok/s.

Brauche ich NVFP4 oder reicht Q4 in Ollama?

Ollama/GGUF ist der kürzere Start. NVFP4 plus vLLM ist der Spark-Pfad, wenn Sie Blackwell-4-Bit und Tool-Parser wollen. Mischen Sie die Zahlen nicht: GGUF auf 24 GB ist eine andere Karte.

Kann Claude Code dagegen sprechen?

Ja, OpenAI-kompatibler Port. Im 27B-Rezept sind drei Integrationsfallen schon dokumentiert. Dasselbe Muster, anderes Gewicht.

Fazit

Qwen3-Coder auf dem Spark ist das Coding-Gegenstück zum 27B-Chat-Rezept: NVFP4, Bandbreite, Container. 73 tok/s ist die ehrliche Basis. 139 tok/s nur, wenn der Draft-Head zur Last passt. Speculation pauschal einschalten ist ein Durchsatzverlust.

📖 Verwandte Artikel

Weitere interessante Beiträge zu ähnlichen Themen