华为谷歌都在搞的内存池化CXL到底是什么?

内存池化CXL这东西,说白了就是让AI显卡不用再眼巴巴等着从硬盘捞数据。

华为搞了个叫CloudMatrix 384的大家伙,把192个CPU的内存给串成了一片,专治AI推理时的“内存饥渴”。关键是这项技术对延迟不敏感,但对带宽要求极高,而华为的UB平面正好就是干这个的,相当于他们自己搞的NVLink。这玩意儿能把远端CPU的内存像本地一样用,AI算token的时候就不用再傻等着了。

内存池化到底在解决啥问题

AI跑大模型的时候,最烦的就是内存不够用。你想想,一个模型几百个G,显卡自己那点HBM显存根本塞不下,那就得把一部分数据先放到CPU的内存里。但问题来了,从CPU内存往显卡显存里搬数据,这速度要是跟不上,显卡就得干等着,这叫“内存墙”。

NVLink这种东西就是为了让显卡之间能快速倒数据,但它管不到CPU那边的内存。所以就有了CXL,这玩意儿像个万能转接头,能让CPU内存、显卡显存甚至固态硬盘都能在同一个池子里互相倒腾数据。华为那个UB平面,就是他们自己山寨版的NVLink加PCIe加CXL的混合体,但人家还真就给做成了。

为什么说KV缓存用CXL特别合适?因为这活儿对延迟不敏感。延迟就是你点一下鼠标到屏幕反应的时间,KV缓存读取没那么急,晚个几微秒也感觉不出来。但它要带宽,带宽就是单位时间能传多少数据,好比高速公路车道多,车就能跑得多。UB平面正好就是条超宽高速路,能同时让384个NPU和192个CPU一起狂飙数据。

华为到底干了件啥事

CloudMatrix 384这名字听着唬人,其实就是把384块AI芯片和192颗CPU给绑一块了。关键是它们之间怎么连的?华为搞了个叫UB平面的东西,全称是Unified Bus,就相当于他们自己家的NVLink。NVIDIA的NVLink是让显卡之间高速通信的,华为这个UB平面不光连AI芯片,连CPU也一起连了。

最绝的是他们用了光互联技术,什么LPO、SR8,听着像密码,其实就是用光纤代替铜线。光纤传数据比铜线快多了,还省电。所以华为能把这384个NPU和192个CPU串成一个大池子,靠的就是光通信拉满了带宽。

但别高兴太早,KV缓存虽然能从远端CPU内存里拿,可真正算token的时候,数据还是得先搬到NPU自带的HBM显存里才行。流程是这样:数据在远端CPU的DRAM里待着,然后通过UB平面高速搬到本地的HBM,最后喂给NPU去算。UB平面只管从DRAM到HBM这段,后面的计算还得靠NPU自己。

西部生态为啥还在用CXL

你再看NVIDIA那边,他们没搞这种CPU和GPU的大池子。因为NVIDIA有NVLink,但那是显卡之间的事,跟CPU内存没关系。要让CPU内存给显卡用,目前最好的办法就是CXL。CXL是PCIe的升级版,能直接把内存给串成池,谁需要谁去捞。

所以Google为啥突然对CXL感兴趣?因为Google这种云厂商,手里攥着海量的CPU服务器和GPU服务器,要是能让它们的内存都通着用,那资源利用率能翻好几倍。比如一台服务器闲着128G内存,另一台显卡正缺内存,CXL就能把闲着的借给缺的。这比再买新显卡划算多了。

Marvell这家公司为啥被看好?因为他们就是做CXL相关芯片的。Google要是大规模上CXL,Marvell的芯片就卖爆了。预测说2027年Marvell能从Google拿到28亿美元CXL生意,2028年能到130亿。这数字听着跟闹着玩似的,但你看Google这态度转变,从爱搭不理到真金白银往里砸,说明CXL这事儿终于要落地了。

资源浪费到底有多夸张

现在NVIDIA生态里做KV缓存,那叫一个复杂。因为显存不够用,就得把KV缓存切碎了到处塞,有的放显存,有的放CPU内存,甚至放固态硬盘。然后算的时候再东拼西凑往回搬,这中间各种调度开销,导致显卡很多时间都在等数据,算力利用率能有百分之六七十就不错了。

华为那个池化方案的好处是,不用切那么碎。反正CPU内存和NPU显存都在一个大池子里,KV缓存直接整块放CPU那边,算的时候整个搬过来就行。少了那些复杂的切分和调度,浪费就少了。但代价是你得有UB平面这种超高速互联,不然搬得太慢照样完蛋。

西部用CXL也是这逻辑。虽然CXL不如NVLink那么快,但胜在便宜且通用。你家服务器只要是PCIe插槽就能用CXL,不用像NVLink那样得买全套NVIDIA设备。Google那帮人精得很,能用通用标准解决的事,绝不掏钱买专用方案。

为什么对延迟不敏感这事这么关键

KV缓存这活儿,说白了就是查字典。模型生词的时候,得回头看看之前说过啥,这个过程叫Attention。查字典这事儿,慢个几纳秒没啥影响,因为查的时间本来就比算的时间短得多。所以KV缓存从远端内存搬过来,延迟高一点也能忍。

但带宽不行。如果带宽不够,查字典的人就得排队,队伍越长,整个生成速度就越慢。所以UB平面和CXL都死磕带宽。华为UB平面号称能同时喂384个NPU,带宽肯定拉满了。CXL虽然延迟比本地内存高,但带宽通过PCIe 5.0甚至6.0能顶上去。

这就像点外卖。延迟是你下单到商家接单的时间,快慢差个几秒你感觉不出来。带宽是外卖小哥一次能送多少份,要是只能送一份,那点餐的人多了就全堵死了。KV缓存就是那个外卖单,量大,但不太急。

内存池化到底动了谁的蛋糕

如果内存池化真普及了,首先倒霉的是卖内存的。因为池化之后,内存利用率高了,就不需要买那么多内存条了。原来一台服务器插1T内存,可能只用了300G,池化之后300G给A用,300G给B用,整体买的内存反而少了。

然后就是NVIDIA。他们一直卖的是全家桶方案,显卡配NVLink,你要想用NVLink就得买全套。但CXL这种通用标准要是成了,用户就可以用AMD的显卡配Intel的CPU再配Marvell的CXL芯片,NVIDIA的护城河就被挖了个口子。

但华为这波操作挺有意思,他们没走CXL,自己搞了个UB平面。因为CXL这标准虽然好,但华为被制裁用不了最新的PCIe和CXL IP,那就只能自己造轮子。结果造出来的UB平面不光能连CPU,连NPU也一起连了,反而比CXL更一体化。这叫因祸得福,还是逼上梁山,就看你咋看了。

未来会不会所有内存都串一块

终极形态肯定是这样:你打开电脑,看到的内存不是这根条那根条,而是整个机房所有设备共享的一个大池子。你的手机、笔记本、家里的NAS,甚至邻居家的游戏机,内存全通着,谁缺谁用。当然这得解决安全和延迟问题,但技术上CXL就是朝这个方向走的。

不过短期内别想太多,CXL目前最大的落地场景就是AI推理里的KV缓存。因为这活儿对延迟不敏感,对带宽要求高,正好是CXL的长处。要是换成训练大模型,那延迟就太要命了,训练时每一毫秒都贵得要死,谁敢从远端内存慢慢搬数据。

所以Google这波转向CXL,本质上是想明白了:推理和训练是两码事。训练得用NVLink那种超低延迟,推理嘛,能跑起来就行,成本低比啥都重要。Marvell赌的就是Google会把越来越多的推理负载搬到CXL内存池上,省下来的钱够再买几十万张显卡了。

总结一下到底谁在忽悠谁

CXL喊了好几年,一直雷声大雨点小,为啥现在突然火了?因为AI推理这场景,简直就是给CXL量身定做的。以前大家总拿CXL跟NVLink比延迟,那纯属关公战秦琼。现在明白了,人家CXL本来就不是干超低延迟那活的,它就是拿带宽换成本,拿通用换灵活。

华为那套UB平面,虽然名字不一样,但干的是一样的事。区别在于华为把CPU和NPU绑得更紧,因为他们从头开始设计,不用考虑兼容老设备。而西部生态这边,CXL得兼容几十年的PCIe遗产,步子没法迈太大。

说到底,内存池化这事,技术早就有了,缺的是个非用不可的场景。现在AI推理来了,KV缓存这冤大头正好撞枪口上。至于Google到底是真心拥抱CXL,还是被Marvell的销售忽悠了,那得看2027年那28亿美元到底咋花。反正Marvell的PPT上写的是13个B,这数字要是真能变现,卖CXL芯片的怕是要笑到抽筋。