最近跟几个做推理加速的同行聊大家不约而同提到了同一个趋势模型开始“想”得越来越久。以前的大模型回答问题是“张嘴就来”现在的模型会在内部生成大量推理片段反复校验、回溯、多步推导之后再给出答案。这个转变在算法侧叫“慢思考”说白了就是让模型在解码之前先进行长链路的内部推理用更多的计算换取更高的正确率。但慢思考带来的直接后果是单次请求的token消耗量暴增有些场景下甚至是原来的几十倍。这时候再回头看整个AI计算栈会发现一个很尴尬的事实计算单元其实没那么紧张真正的瓶颈已经变成了数据搬运——也就是存储墙。这个墙以前被大batch、高并发掩盖了慢思考等于把这层窗户纸直接捅破。这篇文章我想把慢思考如何从算法底层“引爆”存储墙以及为什么这会强制重构整个AI计算栈这件事讲透。内容会比较硬会涉及KV Cache、带宽计算、PagedAttention、数据流调度这些底层细节但也尽量兼顾刚入门的读者。如果你在做大模型推理服务、算子优化或者准备设计下一代推理硬件这篇文章应该对你有参考价值。1. 先搞清楚存储墙到底“墙”在哪里1.1 计算和存储之间的“剪刀差”存储墙不是一个新概念计算机体系结构课里早就讲过。核心矛盾就一句话处理器性能每年增长百分之几十而内存带宽和延迟的改善每年只有几个百分点。几十年下来两者之间拉开了一个数量级的差距。CPU要等内存GPU也要等显存AI加速器同样逃不过这个规律。在大模型推理场景里这个矛盾被进一步放大了。一个LLM的权重参数动不动就是百亿、千亿级别每次生成一个token理论上需要把所有权重至少读一遍。以7B模型为例单次decoding的权重读取量大约是14GB权重复制两份算而单张A100的HBM带宽是2TB/s左右。这样一算单次token生成的理论时间下限大约是7毫秒这还没算激活值、KV Cache和其他开销。换句话说就算计算单元完全空闲光是把权重从显存里搬出来就够吃满整个memory带宽。有人可能觉得A100不行H100总行了吧H100的HBM带宽是3.35TB/s比A100提升了近70%但H100的FP16算力也从312TFLOPS涨到了989TFLOPS涨幅是217%。算力涨得比带宽快得多计算带宽比进一步恶化存储墙只会越来越厚。1.2 快思考时代为什么“墙”不明显在快思考范式下模型生成token的路径很短模型直接给出答案所有注意力和计算都集中在解码当前token上。这时候通过加大batch size把多个请求的token解码叠加在一起就能让权重读取的“固定开销”被多个请求分摊计算利用率可以拉得很高。推理引擎只要能把batch堆上去存储墙的影响就被压在了后台。这也是为什么之前大家优化推理性能时重心都放在算子融合、显存复用、量化这些方向上很少有人觉得存储系统本身是个致命问题。因为只要batch大计算流水线就是饱和的带宽的问题被掩盖了。慢思考把这个逻辑彻底推翻了。它要求模型在回答前先生成一连串的“隐藏推理片段”这些片段不直接面向用户但对最终答案质量至关重要。直观上看慢思考像是把一道问答题变成了应用题模型要先列式、计算、验证好几步再给出最终答案。每一步都是一次完整的模型前向传播都需要读取全部权重生成新的token还要更新KV Cache。2. 慢思考如何精准引爆存储墙2.1 KV Cache的显存黑洞慢思考对KV Cache的影响是最直接、最致命的。KV Cache是Transformer解码过程中保存的Key和Value矩阵缓存用于避免重复计算历史token的注意力。它的显存占用和序列长度成正比和层数、注意力头数、隐藏维度成正比。慢思考会让序列长度显著增加KV Cache也就跟着线性膨胀。可以做一道计算题感受一下。假设一个65B参数的模型隐藏维度8192层数80。每个token的KV Cache大小是2K和V乘层数乘隐藏维度乘以精度字节数。以FP16为例大概是2乘以80乘以8192乘以2字节等于每个token约2.6MB。如果推理上下文长度撑到8K单条请求的KV Cache就需要约20.3GB。一条请求就干掉了A100 80GB版近四分之一的显存。如果算上慢思考带来的几千token内部推理序列再加用户上下文的几千token随便一条请求的KV Cache冲到30GB以上是轻轻松松的。快思考时代一条请求几千token上下文的场景不算多而且可以通过提前截断来避开。慢思考等于把长上下文变成了常态模型内部推理产生的token动辄几百上千KV Cache的膨胀速度是几何级的。这直接挤压了batch size的可行性batch一旦缩水计算利用率断崖式下跌存储墙自然浮出水面。2.2 权重读取从“分摊”变“独吞”慢思考不仅增加KV Cache还改变了权重读取的节奏。快思考时多请求共享同一份权重只要batch大权重相当于被并行复用。慢思考时每个请求生成的推理token数量暴增但请求之间是独立的无法像同步batch那样整齐划一。推理服务要维持高batch利用率要么用连续批处理把不同阶段的请求拼到一起要么就得忍受单请求长时间占用计算单元导致权重读取的摊薄效应变差。打个比方快思考像是公交车所有乘客挤在一辆车上司机跑一趟能送几十个人慢思考像是每人都要打的士虽然路线更自由但每公里油耗却是成倍上升。最终算力利用率、带宽利用率都会显著下降存储墙的问题被直接放大到了系统层面。2.3 显存带宽的硬性天花板再回到能力侧。显存带宽不是无限制扩张的。目前HBM的制造工艺、堆叠层数、功耗都接近物理极限单颗HBM3E的带宽密度提升已经放缓。相对地算力依然在通过制程微缩和架构优化高速增长。一旦双方的发展曲线不再匹配计算过程就会被动变成“等数据”的过程。慢思考正好把这个“等”字放大得无比明显。情况就是这么个情况慢思考把单请求的计算量推高了几十倍但这些计算里绝大多数是串行依赖的无法并行。GPU的算力是并行出来的串行任务天然无法吃满并行算力。结果就是计算单元在干等而存储系统在拼命往外吐数据。哪怕存储吞吐跑满算力利用率也只有可怜的个位数百分比。3. 存储墙如何重构AI计算全栈3.1 算子与推理引擎层的重构先看最贴近硬件的算子层。传统FlashAttention等优化重点在减少显存读写和提升计算密度它们针对的是快思考场景。慢思考时代注意力计算的特征变成了“极长的序列、极大的KV Cache、高比例的读操作”。对应的优化思路就要调整。一个主流方向是重写KV Cache的存储布局。原来KV Cache是一段连续内存按token顺序排列慢思考的长序列会让分配碎片化严重利用率暴跌。这里可以借鉴vLLM提出的PagedAttention思路把KV Cache切成固定大小的“页面”按需分配像操作系统管理内存页一样管理KV Cache。好处是显存利用率能压到90%以上但代价是注意力计算时需要处理跨页引用对访存局部性不友好。实践中需要对KV Cache的页表做分层按头和层粒度优化索引才能在“防碎片”和“快读取”之间取得平衡。另一个方向是面向稀疏性的结构设计。慢思考的推理序列里不是每个token都值得保留和参与注意力计算的。很多中间推理token的作用只是“过渡”对最终答案影响很小。业界正在探索用可学习的方式识别“关键token”定期做序列精简压缩KV Cache。这本质是一种模型侧的剪枝策略需要在精度和效率之间做权衡。关键观察是与其让硬件被动扛存储墙不如直接从算法源头减少要存储的数据。3.2 运行时调度与内存管理的重构算子层改了还不够真正决定存储墙能否被软化的是运行时调度这一层。当前主流的continuous batching策略核心逻辑是让batch动态增减GPU空闲就立即填充新请求。慢思考打破了连续批处理的假设——请求轻重差异巨大短请求一个token就结束长请求要内部推理几百步。这会让调度器面临严重的“木桶效应”一个慢请求能拖住整批计算。解决思路之一是引入类似分时系统的“时间片”调度把慢请求的推理切分成可抢占的阶段让快请求插空执行。这里需要解决的是状态保存恢复问题KV Cache的中间状态要怎么安全地暂存和恢复涉及显存分配和数据拷贝稍微处理不好收益就被开销吃掉了。内存管理这边核心命题是“显存不够怎么凑”。慢思考的KV Cache已经大到单卡放不下的程度。主流做法是把KV Cache做分层热数据留在HBM冷数据卸载到DRAM甚至SSD。这听起来简单实际做起来很考验工程能力CPU和GPU之间的传输瓶颈、卸载的触发时机、预取的准确性任何一环做不好都会造成卡顿。3.3 硬件架构与系统设计的重构当软件层的优化已经无法完全弥合缺口硬件的底层逻辑就必须变。当前GPU在体系结构上更偏重“计算”存储层级是为高吞吐并行计算设计的而慢思考这种“访存密集、低并行度、长串行依赖”的工作负载和GPU的架构哲学是有错配的。有意思的是业界已经在为这类负载设计专门的硬件。一种思路是“数据流优先”架构把注意力计算和KV Cache的读取拆解到独立硬件模块上和主计算流水线解耦。Context推理引擎、推测解码模块本质上都是想让“想”的过程不占用主执行流缩短存储墙对计算单元的阻塞时间。我自己体会这个方向短期内的核心不是做出多大的算力而是做好“精准预取”和“多级缓存”的协同让需要的数据在计算单元发出请求前就绪。互联层面超节点、舱级互联成为热议方向本质也是想把带宽瓶颈从HBM扩展出去。但前提是存储系统配合重构否则带宽再大数据要从远端的存储或另一颗芯片搬过来延迟依然可怕。存储协议上业界也在探索共享内存语义、RDMA式的KV Cache交换机制让多卡共享显存池而不是各持私地互不相通。3.4 算法侧与模型侧的“反向重构”存储墙不只是工程层要解决的问题算法侧也需要配合改变。最直接的是模型结构的重新设计减小KV Cache的占用比如Multi-Query Attention、Grouped-Query Attention让多个头共享K和V直接砍掉KV Cache的体积。现在很多新模型的GQA设置已经成了标配就是为了给推理阶段的存储减负。还有更激进的“线性注意力”路线尝试让注意力计算不随序列长度增长。原理是用核函数或状态空间模拟全局依赖把注意力矩阵近似化。这类方法在效率测试中表现亮眼但在复杂推理任务上和标准Transformer的精度差距还不小。慢思考恰恰需要长程推理能力所以线性注意力能否胜任慢思考场景目前还没有定论值得关注。算法侧的另一个变化是投机采样和思维路径压缩。投机采样用一个小模型快速生成“草稿”大模型批量验证本质上是在算法层面减少大模型的串行前向次数降低权重读取量。思维路径压缩则是在不牺牲回答质量的前提下让模型少生成冗余的推理中间步。两者都是在“让存储墙无压力”的角度间接解决瓶颈。4. 从工程实践看全栈重构的可行性路径4.1 推理引擎改造的优先级排序讲完原理落到实际工程改造推理引擎时应该怎么排优先级我的经验是先从“省显存”开始再优化“带宽利用”最后才碰“调度策略”。省显存是基础。KV Cache量化是个高性价比选择——FP16降到FP8显存占用直接减半。INT4的KV Cache量化虽然激进但在部分模型上已经能控制精度损失。优先做KV Cache量化能快速缓解显存压力让batch保持在合理水平给后续优化留出空间。然后是带宽优化。这里最值得做的是FlashAttention类的内核优化把KV Cache的读取优化到极致同时配合算子融合减少中间结果的往返搬移。内核层面的优化对最终吞吐影响最大也最考验工程能力需要对着profile反复调优。调优过程中会发现存储读取的模式比想象中复杂不是单纯调大缓存就能解决的必须有针对性地调整数据布局。最后才是调度策略。在省显存和带宽优化做完之后调度的复杂度会低很多。调度层的改造要解决的核心是“如何让慢请求和快请求共存”不要让一个“想得久”的请求把整个GPU占到天荒地老。正确做法是给请求设置推理时间预估值预测它会消耗的资源量再决定要不要让它占据计算单元以及有没有必要为它预留Ray级别的长任务配额。4.2 存储系统与计算集群的配套改造单节点改造解决不了所有问题。慢思考一旦和长上下文结合KV Cache的总量可能超过单机显存总量这时集群层面的存储协同就变得很关键。我的建议是先从KV Cache的分层存储开始把HBM、DRAM、NVMe SSD按照访问延迟和容量做成三级结构靠智能缓存算法让不同访问频率的数据待在最合适的层级。HBM保留最近活跃的tokenDRAM放整个上下文的基底数据SSD保存超长的历史状态。层间淘汰策略可以参考CPUcache的LRU思想但必须结合注意力访问的“位置敏感”特性来微调——因为某些中间token在随后某一步会被重点访问纯LRU可能导致重要token被过早淘汰。集群层面最重要的是存储状态的可迁移性。推理任务一旦发生排队或迁移KV Cache不能跟着计算任务“粘”在一起否则迁移成本极高。我这里坚持KV Cache的存储和推理执行必须解耦存储层做成独立的可挂载资源执行节点随用随取。这跟数据库里的存储计算分离是一个思路但换成了推理场景。4.3 量化掉“存储墙”好奇心之后的一线实践体会聊点我个人的踩坑经验。改造过程中最容易出的问题是所有优化都在推理引擎里做忽略了对模型本身的适配。慢思考模型为了在长序列上表现好本身对KV Cache的空间和精度就很敏感。简单粗暴地做KV Cache量化经常导致推理链断裂中间token被压缩后丢失关键信息最终答案质量大幅下滑。KV Cache量化必须和模型联合调参不能只量化不看效果。另一个实践教训是监控指标的选择。很多团队优化时只看TFLOPS和吞吐量这两个指标在慢思考场景下非常容易造假。吞吐量高不代表用户体验好因为慢思考请求的前置等待时间可能非常长。我后来更看重“首token延迟”和“总算力成本/有效回答质量”的比值。算法的“慢思考”本质是用计算换质量如果这种交换效率太低就需要重新评估到底值不值得在推理链上跑这么久。4.4 存储墙问题的行业界再思考存储墙重构AI计算全栈本质上不是一场“计划内”的技术演进而是被慢思考硬生生逼出来的。慢思考用最朴素直接的方式展示了AI性能的下一步天花板不在芯片里有多少晶体管而在数据能不能及时送到该去的地方。边缘侧也是同样的故事。端侧设备跑慢思考模型时要面对比数据中心更严苛的带宽和内存限制存储墙问题只会更尖锐。未来会有越来越多协同调度框架出场一部分推理“想”的动作由中心化的高性能服务完成一部分“说”的动作返还给端侧小模型云端与终端共同分担存储墙压力。我判断接下来一段时间的AI计算创新方向上围绕存储墙的软硬协同设计会成为新的热土。PIM计算、近存计算、存内计算这些老概念会被重新翻出来大量慢思考驱动的工程结构会在新一代系统中落地。任何无法绕过存储墙的架构最终都会在慢思考模型面前现出原形——这已经不只是一个硬件话题而是整个AI技术栈必须认真面对的核心命题。说到底存储墙一直都在那里是慢思考让它从一个“被忽略的底层现实”变成了“决定整个系统设计的第一性原则”。谁会坐稳下一个时代的AI基础架构就看能否与这堵墙共舞了。