能装下什么
NVIDIA 称单台 DGX Spark 可以用 FP4 精度对最高 2000 亿参数的模型做推理。按每个参数约半个字节算,2000 亿参数的权重大约 100GB,在 128GB 里还给 KV 缓存和操作系统留有余量。
速度可以期待多少
生成每个新 token 都要从内存里读一遍模型的活跃权重,所以解码速度受内存带宽限制,这台机器是 273 GB/s。由此得出两点:稠密模型越大解码越慢;混合专家(MoE)模型每个 token 只读一部分权重,所以比总体积相近的稠密模型快得多。
| 模型 | 精度 | 软件 | 批大小 | 解码 tokens 每秒 | 来源 |
|---|---|---|---|---|---|
| gpt-oss-20b | MXFP4 | llama.cpp | 1 | 82.74 | NVIDIA |
| gpt-oss-120b | MXFP4 | llama.cpp | 1 | 55.37 | NVIDIA |
| gpt-oss-20b | MXFP4 | Ollama | 1 | 49.7 | LMSYS |
| Llama 3.1 8B | FP8 | SGLang | 1 | 20.5 | LMSYS |
| Llama 3.1 70B | FP8 | SGLang | 未说明 | 2.7 | LMSYS |
NVIDIA 的推理测试用的是 2048 个输入 token、128 个输出 token、批大小 1。这些数字来自不同的发布者、软件和日期,而且会随软件改进而变化。两行 gpt-oss-20b 说明了软件本身的影响有多大:同一类硬件,llama.cpp 是 82.74,Ollama 是 49.7。
同一个模型,三台机器
LMSYS 在同一篇评测里,用 Ollama、批大小 1、MXFP4 精度,测了三台机器上的 gpt-oss-20b。这是唯一可以把速度并排放的地方,因为是同一个作者用同样的方法测的。
| 机器 | 预填充 tokens 每秒 | 解码 tokens 每秒 |
|---|---|---|
| DGX Spark | 2,053 | 49.7 |
| GeForce RTX 5090 | 8,519 | 205 |
| RTX Pro 6000 Blackwell | 10,108 | 215 |
这里 DGX Spark 大约慢四倍,和它较低的内存带宽相符。它换来的是容量:RTX 5090 到 32GB 就到头了。见DGX Spark 对比 RTX 5090。
自己试一试
ollama run gpt-oss:20b要测任意 GGUF 模型的解码和预填充速度,用 llama-bench。下面是 llama.cpp 项目 DGX Spark 基准讨论里用的命令,以及它的维护者公布的结果:
llama-bench -m gpt-oss-120b-mxfp4.gguf -ngl 99 -fa 1 -ub 2048 -p 2048 -n 32
model test t/s
gpt-oss 120B MXFP4 MoE pp2048 2443.91 ± 7.47
gpt-oss 120B MXFP4 MoE tg32 58.72 ± 0.20
gpt-oss 20B MXFP4 MoE pp2048 4505.82 ± 12.90
gpt-oss 20B MXFP4 MoE tg32 83.43 ± 0.59
qwen3moe 30B.A3B Q8_0 pp2048 2986.97 ± 18.87
qwen3moe 30B.A3B Q8_0 tg32 61.06 ± 0.23pp2048 是预填充 2048 个 token,tg32 是生成 32 个 token。表格是从维护者的结果里节选的,命令行也缩短成了关键参数。
批处理会改变结果
LMSYS 测得 Llama 3.1 8B(FP8,SGLang)单个请求是每秒 20.5 个 token,批大小 32 时总吞吐是每秒 368 个 token。如果你同时服务多个用户或一次跑很多提示词,总吞吐比单路速度高得多。
适合的场景
- 在投入更大的硬件之前,先试一试大的开源模型。
- 离线批处理任务:对数据集做摘要、分类或打标签。
- 长上下文工作,模型加 KV 缓存在小显卡上放不下。
- 要反复调用本地模型的智能体原型。
常见问题
为什么 70B 模型比 gpt-oss-120b 慢这么多?
稠密的 70B 模型每个 token 都要读完全部权重。gpt-oss-120b 是混合专家模型,每个 token 只读一部分权重,所以尽管总体更大,解码反而更快。