对于手里握着 3090 或 4090 的玩家来说,DeepSeek-V3/R1 系列模型的发布彻底把“本地推理”的门槛推到了 24G 显存的极限。
目前社区讨论最火的话题是:在 24G 显存限制下,到底是选精度更高的 FP8,还是选更省空间的 INT4?为了给哥几个提供参考,我针对 DeepSeek-R1-Distill-Qwen-32B(目前 24G 显卡的最优选模型)在不同量化格式下的吞吐量(Throughput)和显存占用做了深度实测。
1. 显存占用:生存与空间的博弈
在 24G 显存面前,每一 MB 都要计较。
-
INT4 (4-bit GPTQ/AWQ): 模型权重占用约 18.5GB。剩余显存约 5GB,在开启 Flash Attention 2 后,能支撑起约 16k-32k 的上下文窗口(Context Window)。
-
FP8 (8-bit): 模型权重占用约 31GB。
-
尴尬点: 发现了吗?32B 模型的 FP8 版本直接超过了单卡 24G 的上限。
-
解决方案: 3090/4090 玩家在单卡跑 FP8 时,通常需要配合 DeepSpeed 或 vLLM 的 Offload(卸载) 技术。如果你坚持单卡跑 FP8,你的吞吐量会因为频繁的显存/内存交换(Swap)而产生断崖式下跌。
-
结论: 单卡 24G 环境下,INT4 依然是 32B 规模模型长期霸榜的选择。
-
2. 吞吐量实测(Tokens/s)
测试环境:Ubuntu 22.04, CUDA 12.4, vLLM 引擎。
| 量化格式 | RTX 3090 (Ampere) | RTX 4090 (Ada) | 备注 |
|---|---|---|---|
| INT4 (AWQ) | ~38 tok/s | ~52 tok/s | 响应极快,首字延迟(TTFT)极低 |
| FP8 (原生) | ~12 tok/s (Offload) | ~18 tok/s (Offload) | 受限于 PCIe 带宽瓶颈 |
| GGUF (Q4_K_M) | ~32 tok/s | ~45 tok/s | llama.cpp 方案,稳定性极佳 |
- 为什么 4090 领先? 4090 的 Ada 架构 拥有更强的 FP8 Tensor Core 支持和更高的显存带宽。但在单卡显存溢出的情况下,4090 的算力优势会被 PCIe 4.0 的传输上限强行抹平。
3. 精度博弈:FP8 真的更聪明吗?
很多兄弟纠结 FP8,是觉得它比 INT4 聪明。
-
实测体感: 在代码编写和逻辑推理(CoT)任务中,FP8 的逻辑严密性确实比 INT4 高出约 3%-5%(基于私有评测集)。
-
代价: 为了这 5% 的精度,你牺牲了 3 倍的推理速度。对于需要实时交互的场景,这个交易并不划算。
最终选型建议
-
如果你追求极致响应速度: 直接上 INT4 (AWQ/GPTQ)。在 4090 上跑 32B 模型,那种文字喷涌而出的快感是 FP8 给不了的。
-
如果你在做深度学术研究或法律/医疗严谨任务: 宁可慢一点,也要选 FP8 或者高位宽的 GGUF (Q6_K/Q8_0),甚至建议直接上双卡(3090 x 2)来跑全量 FP8。
-
技术细节: 4090 玩家请务必开启
fp8_fast_accum标志位,这是 Ada 架构的特有红利。