你是不是也听过这句话——“大模型推理受内存带宽限制”?我在各种场合撞见它无数次,可直到拆开 GPU 真正在想什么,才明白这句话背后藏着的不是一行 PyTorch 代码,而是一整块硅片的物理事实。

我们总习惯盯着模型参数量、层数甚至 prompt 长度,觉得慢就是因为模型太大。但真正让 token 生成像挤牙膏的,往往是数据在芯片里搬运的速度,而不是运算本身。以下几条硬件真相,可能会让你重新看待每一次前向传播。

打开网易新闻 查看精彩图片

1. GPU 的存在,本来就不是为了“快”
CPU 的设计思路是低延迟:少数几个大核,什么活都能干,切换上下文飞快。可 AI 推理偏偏不是多变的任务,它只是把同一组矩阵乘法重复上亿次。于是 GPU 反着来——它牺牲单核性能,塞进去几千个小执行单元,让它们同时做同一件事。你的模型每算出一行结果,背后是成千上万个线程在并肩搬砖,而不是一个壮汉在孤独冲刺。

2. 两个数字,提前宣判了推理速度
任何 GPU 都只有两样可调度的资源:计算能力与内存带宽。前者告诉你一秒能完成多少浮点运算,后者告诉你一秒能把多少数据从显存搬到计算单元。问题出在这里:大模型推理时,参数和 KV 缓存动辄几十 GB,可每次生成一个 token 只用到其中一小块。于是真正耗时的不是乘加运算,而是把那一小块数据从 HBM 拖到寄存器这一路上的等待。

3. 搬运工比数学家还累
你也许以为 GPU 在疯狂计算,实际上它经常在发呆等数据。一个典型的自回归解码场景里,计算延时远低于访存延时,内存带宽成了天花板。这就是为什么压缩模型大小不一定直接提速——哪怕模型砍掉一半参数,只要访存模式还是碎片化的,数据搬运的堵点依旧纹丝不动。

4. 那些如雷贯耳的优化,其实都在伺候硬件
你听过的连续批处理、量化、PagedAttention、FlashAttention,单独看像是各显神通的算法技巧,但它们瞄准的是同一套硬件约束:要么试图让一次搬运的数据更少(量化),要么让搬运的数据被更多请求复用(连续批处理),要么调整算子让数据尽量待在快速缓存里(FlashAttention)。这些技术没有改变模型能力,只是想办法让芯片的搬运队少跑几趟冤枉路。

5. 建立这套硬件思维模型,比调参管用
一旦你开始用“计算 vs. 访存”的标尺打量每一轮推理,很多优化决策就不再是玄学。要不要换一个量化级别?先算算带宽利用率。该扩大批处理还是降低序列长度?看你当前的瓶颈在计算侧还是存储侧。看懂 GPU 内部的物理分工,远比背几个加速框架的配置参数更能让你对推理吞吐提前心里有数。

说到底,我们不是在驯服一个算法,而是在跟一块严格遵守物理定律的硅基搭档讨价还价。下次模型变慢时,不妨先问问那个只认带宽和算力的搭档,它是不是正卡在某条挤满数据的传送带上。