The Hidden Race in Computing Is Not FLOPS, It’s Moving the Cache

Kevin Di

Hatched by Kevin Di

Jul 06, 2026

1 min read

88%

0

当算力不再稀缺,真正稀缺的是“把数据放到能被立刻用到的地方”

如果一台机器能有上百 TFLOPS 的算力,为什么它仍然会因为一次数据访问而“卡死”?更反常的是,为什么有些系统不是被计算拖慢,而是被缓存一致性拖慢,甚至被它拯救?

这背后有一个越来越重要的事实:现代计算的瓶颈,早已从“有没有足够快的核心”转向“核心、加速器、内存之间能否像一个整体那样思考和行动”。换句话说,今天最值钱的不是更大的算力,而是更低摩擦的数据路径

这也是为什么看似分属不同世界的两个现象,其实指向同一个问题。一个是,CPU 直接访问 PCIe 设备上的内存,启动一个 Linux 都能慢到离谱,慢到 600 倍。另一个是,大模型推理里,KV Cache 的复用和压缩,能把可生成的长度从 1119 个字符拉到至少 8192 个字符。它们讲的是同一件事:一旦数据离“被使用”很远,系统就会被搬运成本吞掉。

第一性问题:计算机到底在忙什么

我们习惯把计算机理解成“做计算”的机器,但更准确地说,它是一台管理数据流动的机器。计算本身往往很便宜,真正昂贵的是数据从一个地方移动到另一个地方,尤其是当这个移动跨越了不同层级的语义边界时。

比如在传统 RDMA 里,一次发送并不是简单地“把一个值发出去”。软件先写 WQE,再敲 doorbell,网卡去内存里取任务,按地址 DMA 数据,封装网络报文,远端网卡再写回内存,最后还要生成 CQE,应用轮询完成队列。这是一套高度工程化的远程内存搬运流程。它很强大,因为它绕开了 CPU 的同步开销,但它也暴露出一个根本事实:只要设备和主机之间没有共享的缓存语义,每一步都要显式协调。

于是就出现了更进一步的思路:如果 CPU 或 GPU 能像访问本地寄存器一样访问远端内存,系统是不是会更简单?这就是 CXL、NVLink 这类支持 Load/Store 语义的价值所在。它们把“发起一次访问”变成一条同步指令,把复杂的协议栈压缩成更像人类直觉的动作:读,就读;写,就写。

真正昂贵的不是读写本身,而是你必须先证明给系统看,你有资格读写。

这句话解释了为什么缓存一致性如此关键。它不是一个抽象的硬件爱好,而是让计算资源之间从“彼此质询”走向“共享现实”的机制。

缓存一致性不是性能细节,而是系统协作方式的升级

很多人把 cache coherency 理解成一种“会不会更快”的优化,但它更深层的意义,是把多个计算单元纳入同一个认知世界。如果 CPU 看到的是一份数据,设备看到的是另一份副本,系统就必须不断处理谁先更新、谁最后写回、谁应该失效这些问题。没有一致性,就没有真正的共享状态,只有代价高昂的同步和猜测。

这就是为什么 PCIe 上的设备内存,哪怕真的被挂成了可寻址空间,也不等于它能像内存一样自然工作。CPU 如果把它当成 uncacheable 区域访问,每一次访问都像派人去仓库门口取一张纸,再回来说“我拿到了”。这不是慢一点的问题,而是访问范式变了。一个本来可被编译器和缓存层层优化的动作,变成了每次都要跨系统边界的往返。

你可以把这件事想成办公室协作。没有一致性时,每个同事都拿着一份独立表格,任何修改都要通过邮件确认,避免冲突。效率低吗?当然低。但更致命的是,大家会开始围绕这种低效建立新的流程、审批、缓冲和妥协,最后整个组织都被拖进“同步地狱”。

有缓存一致性后,事情变成另一种模式:大家不再复制整份表格,而是共享同一份工作区,修改会自动广播失效或更新。于是,协作成本从“每次都要人工对账”降为“系统自动维护事实的一致性”。这不是小优化,而是协作模型的变化。

大模型推理的核心,不只是算注意力,而是管理记忆

把这个视角放到大模型上,KV Cache 立刻不再只是一个实现细节,而成了推理系统的命门。注意力机制之所以昂贵,不仅因为要做矩阵运算,更因为它需要在每个新 token 到来时,持续回看历史上下文。如果每轮都重新计算全部历史,代价会像滚雪球一样增长。

Multi Query Attention 和 KV Cache 复用的意义,就在于把“历史记忆”从一次性消费品变成可持续资产。前面轮次的键和值被保留下来,后续生成时直接复用,显存压力大幅下降,于是原本只能生成千字左右的模型,突然可以在同样显存下走到数千甚至上万字符。

这件事和 CXL、NVLink 的逻辑其实非常接近。KV Cache 本质上就是模型的“近期记忆层”,而缓存一致性和低摩擦内存访问,就是让这层记忆能够快速、可靠、少拷贝地被用到。换句话说,大模型推理优化的主战场不是纯算力,而是记忆的组织方式。

如果说训练是在“学会世界”,那么推理就是在“在正确的时间拿到正确的记忆”。谁先把记忆拿到手,谁就赢。这个结论听起来简单,但它会彻底改变我们对模型性能的判断标准。

一个统一框架:现代系统的竞争,实质上是“语义距离”竞争

把上面的两个故事放在一起,你会发现一个更统一的框架:系统的快慢,往往取决于语义距离,而不只是物理距离。

所谓语义距离,是指一个动作从“我想要它发生”到“它真的可用”之间,需要跨过多少层翻译、同步、复制和确认。这个距离越长,系统越慢,越脆弱,越难扩展。

我们可以把现代计算里的数据访问分成四种层次:

  1. 指令级访问,像寄存器读写,语义距离最短。
  2. 一致性内存访问,仍像本地内存,只是底层可能跨设备。
  3. 显式协议访问,例如 RDMA,需要软件和硬件共同完成语义转换。
  4. 离散搬运访问,比如每一步都要拷贝、轮询、确认,语义距离最长。

CXL 和 NVLink 的价值,不是简单地把带宽变大,而是把设备从“需要被管理的外部资源”,变成“可直接参与指令流的对象”。KV Cache 优化也是同一逻辑:它不是把模型变小,而是把“历史信息的访问”从昂贵路径搬到低摩擦路径。

这就是为什么优秀的系统设计,往往不是追求更多操作,而是追求更少必须显式表达的操作。当系统能够替你维护一致性、复用状态、缩短路径,复杂性就从应用代码里退出,转移到基础设施里。看似是隐藏复杂度,实则是把复杂性放到最能规模化解决它的地方。

最先进的系统,不是让你做更多事,而是让你少做那些本不该由你亲自做的事。

这对架构设计意味着什么

如果接受“语义距离”这个框架,那么很多过去看似分散的架构选择,就会被重新解释。

首先,统一内存语义比单纯提升局部速度更重要。一个设备再快,如果它和主机之间要走很多显式步骤,它就很难真正融入主系统的执行路径。相反,哪怕单次访问的物理链路并非极限,但只要语义足够统一,整体吞吐和开发复杂度都会大幅改善。

其次,缓存不是偷懒的副作用,而是系统能否协作的前提。我们经常把 cache 只当成“加速读写”的工具,但在多核、多设备、多层存储时代,缓存已经变成一种协调现实的协议。谁拥有缓存一致性,谁就拥有让不同单元共享同一世界模型的能力。

再次,模型优化与硬件架构正在收敛到同一个方向。大模型里 KV Cache 的复用,本质上是在为记忆建立局部性;硬件里的 CXL 和 NVLink,本质上是在为设备之间建立局部性。一个是软件层面的局部性,一个是系统层面的局部性,它们解决的是同一类问题。

这也是为什么未来最有价值的系统,不一定是某个单点指标最高,而是能够让“计算、记忆、通信”三者之间的边界最薄。边界越薄,延迟越低,能表达的系统行为就越接近人的直觉。

Key Takeaways

  • 不要只看算力,看数据是否能在正确的语义层被访问。 很多性能问题不是计算不够快,而是数据离使用太远。
  • 缓存一致性不是锦上添花,而是协作模型。 它决定 CPU、GPU、加速器是否能共享同一个“现实”。
  • KV Cache 是大模型推理的关键资产,不是附属优化。 谁能更高效地复用记忆,谁就能显著延长可生成上下文。
  • 优先缩短语义距离,而不只是物理距离。 少一次拷贝、少一次轮询、少一次显式同步,往往比堆带宽更有效。
  • 在架构设计中,追求“更少必须手动管理的状态”。 当系统自动维护一致性和局部性,复杂度会从应用层转移到基础设施层。

结语:未来的竞争,不是“谁更会算”,而是“谁更会让数据待在该待的地方”

我们总喜欢把进步想成更快的芯片、更大的显存、更高的带宽。但更深的进步,往往发生在更不起眼的地方:一个缓存行是否能被共享,一次访问是否需要穿越太多层协议,一段历史能否被原地复用。

当你把 CXL、NVLink、RDMA、KV Cache 放在一起看,会发现它们都在回答同一个问题:如何让计算离数据更近,让记忆离使用更近,让协作离一致更近。

所以,未来真正的赢家,未必是拥有最多 FLOPS 的系统,而是那些最懂得把“该立刻可见的数据”放在“该立刻被看到的位置”的系统。计算的极限,越来越像是组织能力的极限。

Sources

← Back to Library

Hatch New Ideas with Glasp AI 🐣

Glasp AI allows you to hatch new ideas based on your curated content. Let's curate and create with Glasp AI :)

Start Hatching 🐣