DGX-spark-GB10 120GB显存的机器,为什么部署Qwen3-14B生成速率才13tokens/s
为什么只有 ~13 tokens/s?这其实是正常的
部署的模型是:Qwen3-14B-Claude-4.5-Opus-Distill.q8_0.gguf
采用llama.cpp部署
https://modelscope.cn/models/TeichAI/Qwen3-14B-Claude-4.5-Opus-High-Reasoning-Distill-GGUF
Qwen3-32B/14B “Dense” 模型在 DGX Spark 上会遇到"带宽瓶颈",速度约为 10.7 t/s。 你的 Qwen3-14B Q8_0 速度 13 t/s 实际上已经处于这个量级的合理范围内。
根本原因: GB10 的显存带宽(~273 GB/s)是瓶颈,不是算力。Dense 架构的大模型在推理(decode)阶段是严重的内存带宽受限场景,而不是算力受限。Qwen3-14B Q8_0 模型大小约 14GB,每生成一个 token 都要把权重全部读一遍,带宽决定上限。
与其模型的对比
MoE 架构是 DGX Spark 的"杀手级应用",Qwen3 30B MoE 可以达到约 89 t/s,而同规模的 Dense 模型只有约 10.7 t/s。
| 配置 | 速度 |
|---|---|
| Qwen3-14B Dense Q8_0(你的情况) | ~13 t/s ✅ 正常 |
| Qwen3-32B Dense | ~10.7 t/s |
| Qwen3-30B MoE | ~89 t/s |
如何提升速度?
方案一:换更低量化(最直接)
将 Q8_0 换成 Q4_K_M 或 Q4_K_XL,模型读取量减半,速度理论上提升近 1 倍(到约 25~30 t/s),质量损失可接受:
-m Qwen3-14B.q4_k_m.gguf
方案二:开启 Flash Attention
在启动参数中加上 -fa(Flash Attention),可以降低 KV Cache 的显存占用,在长上下文时效果明显:
-fa 1
方案三:减少 context 长度
你目前设置了 -c 40960,这会在启动时预分配 KV Cache,消耗大量显存。如果实际用不到这么长的上下文,缩短到 8192 或 16384 可以释放更多显存给模型本身:
-c 8192
方案四:调整 batch-size 和 ubatch-size
当前 --batch-size 1024 较小,可以尝试增大到 2048 甚至 4096 来提升 prefill 速度(对 decode 单流影响有限,但对并发场景有帮助):
--batch-size 4096 --ubatch-size 512
方案五:换 MoE 架构模型(根本解法)
如果追求速度,MoE 模型才是 GB10 的最优解,可以考虑 Qwen3-30B-A3B(MoE)替代 Qwen3-14B Dense,速度有望提升到 60~89 t/s。
总结建议
你的 13 t/s 并不是配置问题,是 Dense 大模型在内存带宽受限设备上的物理上限。短期优化:换 Q4_K_M 量化 + 开启 -fa,速度约可翻倍到 25 t/s 左右。长期优化:换 MoE 架构模型。
另外:DGX-SPARK 测试速率
https://github.com/DandinPower/llama.cpp_bench/blob/main/dgx_spark/report.md
3.1 Prompt Processing (Prefill)
Measured in Tokens per Second (t/s).
| Model Family | Model | Size | PP Speed (512 ctx) | PP Speed (16k ctx) |
|---|---|---|---|---|
| Qwen3 | 1.7B | 1.72 B | 11,947 t/s | 5,208 t/s |
| 8B | 8.19 B | 3,167 t/s | 1,862 t/s | |
| 30B (MoE) | 30.53 B | 2,541 t/s | 2,059 t/s | |
| 32B (Dense) | 32.76 B | 762 t/s | 481 t/s | |
| Ministral | 3B | 3.43 B | 6,961 t/s | 3,166 t/s |
| 8B | 8.49 B | 3,020 t/s | 1,868 t/s | |
| 14B | 13.51 B | 1,853 t/s | 1,284 t/s |
3.2 Decoding (Generation)
Measured in Tokens per Second (t/s). Batch size = 1. Comparisons at shallow (512) vs deep (2048) context.
| Model Family | Model | Size | Decode (512 ctx) | Decode (2048 ctx) |
|---|---|---|---|---|
| Qwen3 | 1.7B | 1.72 B | 161.4 t/s | 146.1 t/s |
| 8B | 8.19 B | 43.7 t/s | 42.0 t/s | |
| 30B (MoE) | 30.53 B | 89.3 t/s | 83.8 t/s | |
| 32B (Dense) | 32.76 B | 10.7 t/s | 10.5 t/s | |
| Ministral | 3B | 3.43 B | 91.9 t/s | 86.6 t/s |
| 8B | 8.49 B | 41.7 t/s | 40.1 t/s | |
| 14B | 13.51 B | 26.4 t/s | 25.7 t/s |