如果你这几年一直在做AI基础设施或者大模型平台,大概率已经意识到一个问题:算力这个词被讲得太窄了。一说算力就去看GPU的FLOPS、看集群规模、看高速互联,但实际把模型跑起来之后,卡住你的往往不是计算单元,而是Memory——显存容量不够、带宽不够、内存访问不规整、KV Cache爆炸。我甚至见过不少团队,机器配置拉到顶,结果训练一跑就OOM,推理一压测就掉token,最后排查下来全是内存子系统的问题。
这篇文章就想认真聊聊AI算力底座里的Memory架构,以及我对2026年趋势的一些判断。内容会比较硬核,适合三类人:一是做AI训练/推理平台和算力调度的工程师,二是在选型GPU服务器或者自研芯片的架构师,三是对分布式训练、推理引擎源码感兴趣的大模型应用开发者。我会把内存墙的数学原理、HBM/CXL等硬件方案、KV Cache和PagedAttention的工程实现、以及2026年可能的演进方向串起来讲,尽量说人话,也尽量把踩过的坑讲明白。
1. 为什么说Memory是AI算力底座最硬的瓶颈
1.1 算力堆上去之后,数据喂不进去
先讲一个很直观的类比。把GPU比作一个厨艺高超的厨师,计算核心就是他那双快手,Memory就是备菜区。菜备得不够、备得慢,手再快也只能等着。AI模型训练和推理本质上就是不断从Memory里搬权重、搬激活值、搬KV Cache到计算单元里去算。搬运速度跟不上计算速度,那FLOPS再高也是虚的。
我见过最典型的情况是:某个团队上一批国产训练卡,芯片标称的FP16算力数字很漂亮,但一跑大模型训练,实测吞吐只有同价位主流卡的一半不到。后来看性能分析,发现瓶颈不是算力,是显存带宽太低,计算单元大部分时间在等数据。这就是典型的“算算力而不算内存”的选型陷阱。
这个问题的本质是:AI芯片的计算能力和内存系统是两套独立演进的技术栈。晶体管密度还能靠先进制程硬堆,但DRAM的访问延迟和带宽过去十年只提升了几倍,而AI计算需求是几十倍上百倍地在涨。两者的增长速度一旦拉开差距,Memory就会变成整个系统里最细的那根喉管。
1.2 “内存墙”不是一个词,而是一组数学约束
做技术的人不能只停留在“内存不够用”这种直觉层面。要把Memory问题讲清楚,必须回到一组数学关系。
第一个约束是访存带宽与算力的比值。业内管这个叫“算访比”或者算术强度(Arithmetic Intensity),单位是每字节数据对应多少次浮点运算。一个GPU如果FP16稠密算力是1000 TFLOPS,HBM带宽是3.35TB/s,那它每秒能搬运3.35×10^15字节,配上10^18次浮点运算,也就是说每个字节要支撑约300次浮点运算。听起来挺充裕对吧?但实际跑Transformer的时候,很多算子的算术强度极低。
举个例子,decode阶段推理一个token,需要读取整个模型的权重,但只做一次forward。假设模型是7B参数、FP16精度,权重大小是14GB,如果逐token串行解码,那么每个token至少要搬运14GB数据。为了在这14GB上做有意义的计算,算力再高也发挥不出来,因为本质是被带宽卡死的。所以你会发现,推理引擎里常用的连续批处理(continuous batching)、PagedAttention、KV Cache量化,全部都是在想方设法减少“每token搬运数据量”。
第二个约束是容量。训练一个百亿到千亿参数的模型,不仅权重要放在显存里,梯度、优化器状态、中间激活值全都要占地方。显存容量决定了一个模型能不能塞进单卡或者单机,决定了你要不要上张量并行、流水线并行,甚至决定了整个集群的调度粒度。
第三个约束是延迟。这里说的不只是DRAM延迟,还包括跨卡通信、跨节点访问远端内存的延迟。分布式训练里,一旦参数和梯度在节点间频繁同步,通信延迟就会把计算时间吞掉。这也是为什么大家在拼命搞NVLink、RoCE、CXL这类高速互联——本质上都是在把“Memory访问距离”缩短。
把这三条约束放一起看,你就能理解为什么说Memory是“底座”而不是“配件”。算力决定了你理论的峰值能力,Memory决定了你实际能吃到多少。
1.3 2026年的核心矛盾:模型参数涨得比显存快
2026年的一个宏观判断是:基础模型的参数规模会继续上涨,但单卡显存容量的上涨速度追不上。H100是80GB,B200做到了192GB,听起来涨了不少,但模型的参数和上下文长度涨得更猛。一个万亿参数的MoE模型,就算激活参数只有10%,权重复制多副本之后占用的显存依然惊人;长上下文场景下,一个100万token序列的KV Cache可能比模型权重本身还大。
所以接下来的竞争焦点一定会从“算力跑分”转向“内存容量/带宽能效比”。谁能在一瓦功耗、一平方毫米面积里塞进更多容量和带宽,谁才能真正掌控AI基础设施的定价权。
2. 2026年前后的Memory全版图:从HBM到CXL再到显存置换
2.1 显存/HBM:容量、带宽与价格的三角博弈
先看最核心的一层,GPU显存。英伟达的H100 SXM搭载了80GB HBM3,带宽3.35TB/s;B200则升级到192GB HBM3E,带宽8TB/s左右。这里面的关键不只是容量翻倍,更重要的是带宽提升。对很多推理负载来说,带宽比容量更值钱,因为decode阶段就是典型的带宽饥饿型任务。
HBM(High Bandwidth Memory,高带宽内存)之所以能提供这么高的带宽,靠的是非常宽的位宽。普通DDR5内存的位宽是64bit,HBM通过3D堆叠和硅中介层把位宽做到1024bit以上,再用2.4Gbps以上的速率,直接把总带宽拉到一个数量级以上。代价是成本高、工艺复杂、功耗也不低。所以HBM目前只用于高端AI芯片,消费级显卡还是用GDDR。
这里要特别提一句GDDR7。RTX 50系列已经开始用GDDR7,带宽能到1.7TB/s以上,虽然比不上HBM,但性价比高。2026年会有更多推理卡、边缘算力设备选择GDDR7而非HBM,因为很多场景根本不需要那么高的带宽,容量和成本才是决定因素。
再看国产算力。以BR100系列为代表的国产训练芯片,内存子系统普遍采用与HBM类似的堆叠方案,在带宽指标上已经接近国际主流产品,但在容量、良率和软件生态上还有差距。我看过一些评测,国产卡在短序列、小batch的推理场景表现尚可,一旦上了长上下文或者大规模并行训练,显存带宽的瓶颈就会很明显。所以选型的时候不能光看规格书,要多测真实负载。
| 内存类型 | 典型位宽 | 单颗带宽 | 容量 | 适用场景 |
|---|---|---|---|---|
| HBM3/HBM3E | 1024bit以上 | 1~2TB/s | 16~64GB/栈 | 高端训练/推理 |
| GDDR7 | 64bit | 0.1~0.2TB/s | 2~4GB/颗 | 消费级推理/边缘 |
| DDR5 | 64bit | 50~100GB/s | 8~128GB | 系统内存 |
| LPDDR5X | 64bit | 50~100GB/s | 8~32GB | 移动端/低功耗 |
2.2 系统内存与CXL:把内存池化这件事真正落地
除了显存,系统内存也是AI算力底座的重要一环。传统服务器内存容量有限,扩展要靠插更多DDR5条子,但DDR5的通道数、容量密度都有物理上限。CXL(Compute Express Link)的出现改变了这个局面。
CXL是一种基于PCIe物理层的互联协议,核心价值在于让CPU、GPU、加速器能够共享同一片内存池。比如你可以用CXL内存扩展卡给一台GPU服务器增加几百GB到几TB的“远端内存”,GPU通过PCIe/CXL访问它。虽然延迟比本地HBM高很多,但容量优势明显,适合放那些不常访问、但必须常驻内存的数据,比如权重副本、特征库、Agent状态。
2026年我比较看好CXL 3.0的落地。CXL 3.0支持内存池化和多级交换,数据中心可以把内存做成一个独立资源池,按需分配给不同的计算节点。这会让“算力底座”的形态从“每台机器自带内存”变成“内存和计算分离,动态组合”。好处是资源利用率提升,坏处是调度系统会变得非常复杂。如果你在做算力调度平台,现在就应该开始关注CXL资源建模的问题。
不过要泼一盆冷水:CXL在AI场景里还不能替代显存。HBM带宽能做到8TB/s,CXL设备现在的带宽也就是几十到一两百GB/s,差了不止一个数量级。所以CXL的定位是“容量扩展”,不是“带宽加速”。千万别想着用CXL救长上下文推理的带宽饥渴,那会撞得头破血流。
2.3 不同场景该把内存选型放在什么位置
我把常见场景的内存选型逻辑梳理一下,做成一个决策框架:
- 大模型预训练:核心需求是“大容量+高带宽”。训练过程是计算密集和访存密集混合,显存带宽直接影响数据搬移效率,显存容量决定并行策略层数。优先选HBM3E容量大的卡,宁可算力峰值低一点,也不能让带宽拖后腿。
- 大模型推理(在线):核心需求是“高带宽+低延迟”。单用户低并发时主要瓶颈是权重读取,所以带宽优先;高并发时可以吃满算力,容量也要注意KV Cache膨胀。KV Cache量化在这里基本是必选项。
- Agent/多轮对话/长上下文:核心需求是“大容量+动态分配”。Agent场景会缓存大量历史对话、工具调用结果、RAG向量等,这些数据并不需要超高带宽,但对容量和内存管理要求极高。可以考虑“HBM做热数据+CXL/DDR做温数据”的混合方案。
- 端侧/边缘推理:核心需求是“低成本+低功耗”。GDDR7甚至LPDDR5X都够用,关键是做好模型量化,把权重压到4bit甚至2bit。
表格化就是:
| 场景 | 第一优先级 | 第二优先级 | 推荐方案 |
|---|---|---|---|
| 预训练 | 带宽 | 容量 | 大HBM显存 + 张量/流水并行 |
| 在线推理 | 带宽 | 容量 | HBM3E + KV量化 |
| Agent长上下文 | 容量 | 动态管理 | HBM + CXL + 调度策略 |
| 边缘推理 | 成本功耗 | 带宽 | GDDR7/LPDDR + INT4/FP8 |
3. 架构选型的核心议题:训练、推理与Token经济
3.1 训练时Memory大头:参数、优化器状态、激活值
训练大模型的时候,显存里住着三拨“房客”:参数、优化器状态、激活值。具体谁占大头,取决于模型规模和训练配置。
先给个经典估算。混合精度Adam训练下,每个模型参数大概要占16字节显存,算下来是:FP16参数2字节,FP16梯度2字节,FP32优化器状态(Adam里有m和v两个动量)8字节,FP32主权重4字节。也就是说,一个70B参数模型,光训练就要约1.1TB显存。这就是为什么单个70B模型很难在8卡H100(每卡80GB,总共640GB)里完成全参数训练,必须上ZeRO优化、混合精度、梯度检查点这些手段。
激活值才是更难算的部分。模型forward过程中间产生的激活矩阵,batch size一拉大,显存占用立刻爆炸。梯度检查点(activation checkpointing)的思路很粗暴:不保存所有中间激活,只在需要反传时重新算一遍。这能省下大量显存,代价是多算一次forward,时间上会慢20%~30%。这个trade-off在实际工程里经常要做,我的经验是:能开检查点就开,省下的显存能让你把batch size翻倍,收敛效果往往更好。
2026年的一个变化是FP8训练的普及。FP8把参数和梯度都压到1字节,同等显存能塞的参数直接翻倍。加上FP8矩阵单元在高端GPU上已经成熟,大模型预训练的显存压力会比2024年小不少。但FP8动态范围有限,loss scaling、梯度裁剪这些细节做得不好会掉精度,不是换个数据类型那么简单。
3.2 推理:KV Cache的量级与分页思想
推理阶段最值得讲的Memory问题是KV Cache。
Transformer推理时,每生成一个token,都要把之前所有token的Key和Value向量缓存下来,供注意力计算使用。这个缓存就是KV Cache。它的规模会非常夸张,计算公式是:
KV Cache大小 = 2(Key和Value两份) × 层数 × 隐藏维度 × 精度字节数 × 序列长度 × 并发请求数
以Llama 2 70B为例,隐藏维度8192,80层,如果FP16精度,每个token的KV Cache是2×80×8192×2字节,约2.6MB。一个用户生成长文到100K上下文,单请求就要约256GB KV Cache。这比模型权重本身还大。
所以业界在KV Cache上花的功夫极多,集中在两条路:
- 压缩:KV Cache量化到8bit甚至4bit,精度损失可控,容量直接砍一半到四分之一。还有GQA(分组查询注意力)、MLA(多头潜在注意力)这类架构层面的设计,从源头减少KV体积。
- 管理:抛弃“每个请求分配连续显存块”的粗放思路,改成小块分页管理。这就是vLLM里PagedAttention的核心思想。
3.3 MoE、长上下文与Memory的相互作用
再讲两个很影响Memory架构的设计。
MoE(Mixture of Experts,混合专家)模型通过稀疏激活来降低计算量,但它对Memory并不友好。因为每个专家都要常驻显存,模型总参数量极大,比如DeepSeek-V3总参数671B,虽然每个token只激活约37B参数,但推理时所有专家权重都在显存里。这就导致MoE模型的inference基础设施极其依赖显存容量和跨卡All-to-All通信。
做MoE推理平台的人会深有感触:你需要精细地做专家并行(Expert Parallelism),把不同专家分布到不同GPU上,同时接受All-to-All通信带来的延迟开销。如果网络带宽不够,通信时间会直接成为吞吐瓶颈。这其实就是“Memory分布的架构问题”——不再只看单卡显存,而是看整个集群的显存网络拓扑。
长上下文则是另一种考验。上下文窗口从128K到1M甚至10M,带来的是KV Cache线性增长。目前很多方案是“稀疏注意力”——只让每个token关注少数关键token,减少KV读取量。但稀疏注意力在实现上非常考验内存访问局部性,做不好反而会触发大量随机内存访问,性能更差。我的建议是:先优化KV Cache的数据布局和分页策略,再谈稀疏化,顺序不要反。
4. 从代码和工具层面看Memory的落地细节
4.1 用Eclipse MAT与系统工具排查内存问题
不要以为掌握硬件趋势就够了,真正出问题的时候还得靠工具。我经常跟团队说,Memory问题分两层:第一层是应用层(JVM/进程),第二层是系统层(显存/系统内存)。
Java生态里看应用层内存,Eclipse MAT(Memory Analyzer Tool)依然是利器。它可以分析heap dump,帮你找出哪个对象占了几百MB。排查思路一般是:先用jmap -dump:live,format=b,file=heap.bin 抓快照,再用MAT的Leak Suspects和Dominator Tree定位可疑对象。特别适合排查Agent框架里Context越积越多、历史消息缓存无上限这些问题。
不过AI基础设施里更多是C++/CUDA进程,这种时候MAT没用,得靠别的工具。Linux上我常用/proc//status里的VmRSS看物理内存占用,用nvidia-smi dmon看显存实时占用率;如果要定位CUDA内存泄漏,compute-sanitizer --tool=memcheck可以检查越界访问和未初始化读取。Windows上有时候会遇到进程崩溃,报错形如0xc0000005 (memory access violation),这种多半是野指针或者数组越界,可以用WinDbg打开dump文件执行!analyze -v来定位。
这里必须提醒一下:很多人一看到out of memory就慌着加内存,其实先分清是真OOM还是地址空间碎片化很重要。.\src\mem.c(776): mem_virtual_alloc0: fatal error: out of memory这种报错,有时候是虚拟地址空间耗尽,有时候是系统提交限制(commit limit)满了,处理方式完全不一样。
4.2 vLLM源码级调度:PagedAttention的工程意义
2026年看推理引擎,vLLM基本是绕不开的参考实现。它的核心贡献是PagedAttention——把KV Cache切成固定大小的块(比如16 token一块),用虚拟内存分页的思想去管理物理显存。这样做有三个直接好处:
- 显存碎片率大幅下降,不再需要为每个请求预留最大可能长度的连续显存。
- 物理块可以按需分配,多请求之间可以共享KV块(比如前缀相同的多条请求可以共用Prompt部分的Cache)。
- 调度器可以精确控制每个请求占用多少显存,做连续批处理时能塞进更多请求。
如果你要二次开发推理引擎,强烈建议通读vLLM的vllm/worker/model_runner.py和vllm/core/block_manager.py。前者是模型执行和显存申请的核心路径,后者是分页调度的逻辑所在。你能在代码里看到一个非常关键的参数gpu_memory_utilization,默认0.9,意思是把90%的显存预留给KV Cache池。调这个参数要谨慎,调太高会导致模型加载或计算时显存不足,调太低则batch size上不去。
我踩过的一个坑是:把max_num_seqs调大后,发现vLLM的显存占用暴涨,原因是我没同步修改max_num_batched_tokens,导致调度器为每个序列预留了过多token额度。这两者和gpu_memory_utilization之间必须联调,最好用官方给的vllm serve命令先跑一个基准压测,再逐步放大参数。
4.3 量化与稀疏化:用算法换Memory空间的工程实践
讲完调度,再讲怎么在算法层面把Memory“压小”。
模型量化已经是AI基础设施的默认操作了。训练完的FP16/BF16模型,推理时量化到INT8、FP8甚至INT4,权重体积缩小4倍到8倍。当前比较主流的路线是FP8(兼顾精度和速度)和INT4 AWQ/GPTQ(极致压缩)。2026年FP4和MXFP4会成为新的焦点,因为下一代GPU的Tensor Core开始原生支持FP4计算,如果精度控制得住,权重和KV Cache都能进一步瘦身。
稀疏化是另一条路。2:4结构化稀疏算是一种工程上比较实用的方案,它把每4个权重里稀疏掉2个,存储和计算量都减半。高端GPU已经内置了2:4稀疏计算加速,实际推理时可以把无效计算跳过,带宽压力也同步降低。但稀疏化对模型精度影响比量化更大,一般需要重新训练或SFT微调来恢复。
再说说KV Cache量化。这个操作在长上下文场景里性价比极高。把KV Cache从FP16降到FP8,容量直接减半,配合vLLM的--kv-cache-dtype fp8参数可以一键开启。但是要留意,KV量化的误差会随序列长度累积,超过一定上下文长度后可能出现质量突降。我建议上线之前做一段长文本生成回归测试,专门盯生成质量和注意力数值是否异常。
4.4 国产算力栈中的Memory实现差异
国产AI芯片这几年进步很明显,但从Memory系统的视角看,与头部产品仍有差距。国产训练芯片多数采用类似HBM的多层堆叠方案,带宽规格能打到接近HBM3的水平,但实际可用带宽受驱动和编译器的限制,往往只能发挥八成左右。另外国产卡的显存容量普遍偏小,遇到超大模型时需要更激进的并行切分。
软件栈的差距更明显。很多国产卡对PageTable、Host Memory和Device Memory之间的统一寻址支持还不够成熟,导致开发者在写自定义算子时,内存分配和拷贝操作要比主流卡繁琐得多。做平台的同学如果要在国产卡上跑vLLM或SGLang,建议先确认推理框架是否已针对该卡做适配,不要想当然地认为“有CUDA兼容层就能直接跑”。
5. 2026年趋势与判断:内存架构会怎么演进
5.1 HBM4与近存计算走向前台
2026年最值得关注的硬件趋势是HBM4量产。HBM4会在堆叠层数、单颗容量和I/O速率上进一步提升,单个堆栈的容量做到64GB以上,带宽突破2TB/s。配合新一代GPU,单卡显存有望冲向288GB甚至更高。这能给训练和推理都带来实实在在的正面影响。
比HBM4更激进的是近存计算(Near-Memory Computing)和存内计算(In-Memory Computing)。近存计算把一部分计算逻辑放进存储die或紧邻存储的位置,减少数据搬运距离;存内计算则直接在存储阵列里完成乘加运算,理论上可以彻底绕开带宽瓶颈。三星、SK海力士近两年不断在HBM-PIM、AXDIMM这类产品上迭代,2026年的商业化程度会比现在高不少。不过存内计算的编程模型和精度控制仍然很有挑战,短期内更多是作为辅助单元而不是主计算单元。
5.2 推理芯片的“内存优先”设计
2026年新出的AI推理芯片,我判断会普遍采用“内存优先”(Memory-First)的设计哲学。以前是“先定算力规模,再配内存”;现在反过来了,“先算清楚某个模型在目标并发下的内存需求,再定算力大小”。
这个转变会带来几个具体变化。第一,L2 Cache会变大,AMD已经在消费级CPU上用3D V-Cache证明了“大缓存提升AI推理速度”的可行性。第二,片内SRAM会变成稀缺资源,因为它的带宽远高于HBM,适合放那些高频访问的小参数。第三,CXL将在芯片间互联里扮演更重要角色,未来GPU可能不再只靠NVLink类私有协议通信,也能通过CXL直接访问其他设备的Memory。
5.3 软件与硬件联合调优的时代
硬件趋势讲完,最后必须落到软件。2026年的Memory架构演进,不可能只靠硬件堆叠,软件需要同步跟上。我看到的方向有三个:
- 统一内存寻址的普及。CUDA的Unified Memory、CXL的共享内存池,都在模糊Host和Device的边界。未来程序员可能会像写普通程序一样写GPU代码,不再手动管理H2D/D2H拷贝,但这依赖编译器能高效处理跨设备内存访问模式。
- 调度器朝“内存感知”演进。Kubernetes和自研调度器需要把显存/内存作为一等资源来调度,而不是简单看CPU和GPU数量。这个趋势已经在发生,比如vLLM决定一个节点能跑多少实例时,参考的核心指标就是“每实例KV Cache工作集+权重工作集是否小于该节点可分配的显存池”。
- Memory性能分析会常态化。以后排查AI基础设施性能问题,不会只盯着GPU利用率,而是会同步看HBM带宽利用率、L2 Cache命中率、跨设备访问流量这些内存指标。像NVIDIA DCGM、国产卡的厂商工具都会内置这些指标,关键是你得把这些指标纳入日常监控和告警体系。
我之前给一个客户做算力平台优化时,发现GPU利用率看起来很高,但整体吞吐上不去。后来一查HBM带宽利用率,很多关键算子已经打到95%以上,说明计算单元很多指令周期都在等内存。把两个指标放在一起看,问题就一目了然。这也是我一直强调的:做AI基础设施,内存指标和计算指标必须放在同一张仪表盘上。
2026年的算力底座,本质上是“以Memory为中心”的算力底座。谁能在内存架构上想得更深、布局得更早,谁就有机会在下一轮AI竞争中拿到主动权。对我的日常实践来说,最深的体会是:不要迷信任何单点指标,FLOPS再高也要看喂不喂得饱,显存再大也要看分不分得动。把算力、内存、通信三者放在一起做系统级优化,才是真正稳定可靠的AI底座。希望这篇围绕Memory架构的梳理,能帮你少走一些我当年走过的弯路。