本地大模型的显存:为什么内存带宽决定你的每秒 token 数
来源:dev.to — 2026-09-30
📋 概述
文章认为「需要多少显存」是错误的第一问,真正该问的是这块显存有多快。本地模型每生成一个 token 都要把整套权重从显存里读一遍,于是带宽(GB/s)才是决定你的编码代理是打字还是爬行的数字。粗略上限是带宽除以模型在内存中的大小:10 GB 的模型放在 936 GB/s 的 RTX 3090 上,理论上限约 90 token/s。当模型或上下文放不下时,运行时会自动把层溢出到 DDR5(约 50 GB/s)并经由 PCIe 4.0(31.5 GB/s),形成带宽落差约 20 倍的「悬崖」:Llama 8B 全部放显存是 42.5 token/s,只要 20% 溢出到 DDR5 就掉到 3.8 token/s,降幅 91%。4 位量化下权重大约是 8B 需要 5 GB、14B 10 GB、32B 20 GB、70B 40 GB,还不含 KV 缓存,而 32k token 的代理上下文还要再加几个 GB。每美元显存仍是二手 RTX 3090 24GB 最划算。
🔑 核心要点
- 第一问应该是带宽而非容量:自回归解码每生成一个 token 都要完整读一遍权重,所以模型是被显存带宽限制的。
- 粗略估算公式是带宽 ÷ 模型占用大小:10 GB 模型在 936 GB/s 的 3090 上,上限约 90 token/s。
- 显存档次由显存类型与位宽决定,而不是「16GB」这种营销标签:同样 16GB,带宽可以是 288 也可以是 672 GB/s。
- 溢出会带来约 20 倍 的带宽落差:层落到 DDR5 约 50 GB/s,还要经过 31.5 GB/s 的 PCIe 4.0。
- 实测悬崖很陡:Llama 8B 全放显存 42.5 tok/s,20% 溢出即掉到 3.8 tok/s(-91%),全放 CPU 只剩 1.6 tok/s。
- 结论是 「差不多能装下」这种东西并不存在:要么模型和上下文都进显存,要么就是以 DDR5 速度多绕几步;每美元显存仍以二手 RTX 3090 24GB 最优。
💡 金句
每个 token 都要等最慢的那条管道,所以「差不多能装下」这种东西并不存在。
👍 0
👎 0
← 返回 dev.to 首页