Qwen3.8 Flash Next NVFP4 at 109 tok/s on RTX PRO 6000 | SM120 QSA Fix
ksh3
0:00 / 0:00
Qwen3.8 Flash Next NVFP4 at 109 tok/s on RTX PRO 6000 | SM120 QSA Fix
98 просмотров · 3 дня назад
ksh3
88 подписчиков
98 просмотров · 3 дня назад
Running Qwen3.8-Flash-Next locally on two RTX PRO 6000 Blackwell 96GB GPUs using SGLang's day-0 image, the RadixArk NVFP4 checkpoint, and the SM120/SM121 QSA sparse-decode fix from SGLang PR #36556.
The original image crashed during warmup because SM120 fell through to an incompatible flash-attn CuTe varlen path. Commit dac5523 enabled FlashInfer TRTLLM sparse decode; autotuning and graph capture completed, and the agent workload reached approximately 119K tokens.
Qwen3.8-Flash-Next is a 176B-parameter, 6B-active-per-token GDN + QSA hybrid MoE preview of Qwen4. In this post-training ModelOpt checkpoint, routed experts use NVFP4 W4A4 while the other main components remain BF16. PLE tables are FP8 on disk and BF16 at load time. Runtime KV cache was BF16.
Image and runtime
Base image: lmsysorg/sglang:qwen38flashnext
Derived image: registry.home.arpa/lmsysorg/sglang:qwen38flashnext-sm120-qsa-dac5523
Patch: dac5523, qwen_sparse_attn_backend.py only
CUDA: 13.0.3
FlashInfer: 0.6.17
```step1
curl -fL \
ttps://github.com/sgl-project/sglang/commit/dac5523d1e5d2f4297fec40ef02fc76fb0f662d1.patch \
-o qsa-sm120.patch
```
```step2
docker.io/lmsysorg/sglang:qwen38flashnext (same)
FROM lmsysorg/sglang:qwen38flashnext
COPY qsa-sm120.patch /tmp/qsa-sm120.patch
RUN cd /sgl-workspace/sglang \
&& git apply --check \
--include='python/sglang/srt/layers/attention/qwen_sparse_attn_backend.py' \
/tmp/qsa-sm120.patch \
&& git apply \
--include='python/sglang/srt/layers/attention/qwen_sparse_attn_backend.py' \
/tmp/qsa-sm120.patch \
&& rm -f /tmp/qsa-sm120.patch
```
```step3
podman build \
--pull=always \
--tag registry.home.arpa/lmsysorg/sglang:qwen38flashnext-sm120-qsa-dac5523 \
--file Containerfile \
.
```
Configuration
Model: RadixArk/Qwen3.8-Flash-Next-NVFP4
CPU: AMD EPYC 9175F
GPU: 2x RTX PRO 6000 Blackwell 96GB, SM120
Maximum context: 262,144
Maximum running requests: 2
Chunked prefill: 4,096
Page size: 64
GPU static memory fraction: 0.80
Attention: FlashInfer
QSA sparse decode: FlashInfer TRTLLM
MoE / FP4 GEMM: FlashInfer CUTLASS
Linear attention: Triton prefill, FlashInfer decode
Mamba SSM: BF16 with extra_buffer radix cache
PLE embedding: CPU offload enabled
KV cache: BF16
Decode CUDA graphs: batch sizes 1 and 2
Prefill CUDA graphs: disabled for multimodal
Speculative decoding / MTP: disabled
Memory and initialization
Weight memory: 42.04 GB per GPU, 84.08 GB combined
Mamba cache per GPU: 0.59 GB convolution + 14.98 GB SSM
KV cache per GPU: 8.16 GB K + 8.16 GB V
Reported KV capacity: 1,425,152 tokens
Memory remaining after pool allocation: 18.79 GB per GPU
Weight loading: 77.38 seconds
Decode graph capture: 2.27 seconds
Scheduler startup: 114.45 seconds
Tokenizer startup: 121.19 seconds
Ready after warmup: approximately 143 seconds
Observed results
Generation throughput, 2,057 decode samples:
Median: 108.91 tok/s
Mean: 107.37 tok/s
Tukey IQR: 108.30-109.41 tok/s
At 100K+ full tokens, steady decode:
Median: 107.98 tok/s
Mean: 108.54 tok/s
Tukey IQR: 107.79-108.31 tok/s
At the final observed 118,976-token state: 107.62 tok/s
The isolated 204.53 tok/s value was a two-to-one-request transition spike. Only one concurrency-2 sample was captured, so this is not a concurrency-2 result.
Prompt processing:
Five consecutive uncached 4,096-token chunks sustained 14,412.72-14,693.17 tok/s.
Median: 14,604.64 tok/s
Short terminal chunks produced timer spikes up to 799,048.16 tok/s; those were excluded. The final request reused 118,400 cached tokens and added 320 new tokens, approximately 99.73% prefix reuse.
Agent workload artifact
The coding agent produced a substantial Django restaurant reservation system with 25 models, all 9 required service operations, 12 REST routes, 18 Admin registrations, CSV support, a migration, SQLite data, and an idempotent seed command.
It covers table allocation, service calendars, capacity, deposits, cancellations, reservation history, host-stand operations, guest preferences, and waitlists. The result is a strong, coherent generated prototype.
*The requested automated tests were not generated.
SGLang cookbook:
ttps://docs.sglang.io/cookbook/autoregressive/Qwen/Qwen3.8-Flash-Next
NVFP4 model card:
ttps://huggingface.co/RadixArk/Qwen3.8-Flash-Next-NVFP4
SM120/SM121 QSA fix:
ttps://github.com/sgl-project/sglang/pull/36556