Cerebras晶圆级芯片90万核跑大模型 比H100快200倍

摘要:芯片有90万核,每核只有48KB内存,代码数据全挤一块。编程得像寄信,靠消息激活任务。跑大模型比H100快上百倍,OpenAI刚砸了100亿美金。

芯片长在圆片上

普通芯片是从大圆硅片上切下来的,一小块一小块,像切饼干。Cerebras不切,整张圆片直接做成一颗芯片。这张圆片上有90万个核心,排成二维网格,密密麻麻像城市街区。

每个核心叫PE,处理单元。每个PE有自己的48KB小仓库,存代码也存数据。还有自己的小路由器,五端口,连上下左右四个邻居,再加自己。没有大仓库,没有共享内存,整颗芯片没有DRAM,没有HBM,没有缓存层级。48KB就是全部家当。

这设计太怪了。GPU有几千个核心,共享80GB显存,像几千人共用一个巨型仓库。Cerebras是90万人,每人只有一个小抽屉,想拿别人的东西?不行,得靠传纸条。

编程像寄信

GPU编程是写一个线程的视角,然后发射几百万个线程同时跑。每个线程知道自己编号,从显存取数,算完写回去。CUDA就这样,大家都习惯了。

Cerebras没有线程这个词,没有warp,没有shared memory,也没有内核启动。你写的代码是给单个PE用的。每个PE独立跑自己的程序,有自己的指令计数器。

通信靠消息:消息是32位的数据,叫wavelet,小波。
消息走虚拟通道,通道叫颜色。
每个PE有五种颜色?实际上颜色是编译时定义的路径,像不同颜色的快递线。

当一个wavelet到达某个PE的某个颜色上,就触发一个任务。这个任务是一段代码,编译时就绑定了这个颜色。任务跑完就停,硬件再挑下一个激活的任务。

任务之间不能互相调用;不能A函数调用B函数;只能靠消息激活。

所以你的思考方式要彻底翻转:不在想启动N个线程,而是把代码放好,把路由定义好,然后让数据流起来。

内存小得吓人

H100有80GB HBM显存,所有SM共享。像几千人用一个大仓库,拿什么都方便,但路可能堵。

Cerebras每个PE只有48KB,但90万个加起来是44GB。这44GB全是SRAM,片上,总带宽21PB每秒。H100的带宽是3TB每秒。21PB是21000TB,差了七千倍。

每个存取都是单周期。不用合并访问,没有bank冲突,没有缓存缺失。但也不能访问邻居PE的内存。想给邻居数据?只能走显式路由,发wavelet。

举个例子。你要做GEMV,矩阵乘向量。数据分布在很多PE上。一个PE算完部分结果,得传给下一个PE汇总。你得写布局文件,定义wavelet怎么在网格里走。两个PE挨着,左边算完往东发,右边从西边收,收到后累加。

路由编译时就定好了。两边异步跑,左边发完继续,右边收到才干活。数据真的在硅片上物理移动,每一跳一个时钟周期。这比GPU通过显存交换数据快太多了。

代码和数据必须挤在一起

48KB要塞代码和数据。这太极限了。一个现代深度学习算子,光参数就不止48KB。怎么办?把算子拆碎,分到不同PE上。

每个PE只干一小块活。比如一个卷积,切成很多小方块,每个PE负责一个小方块。数据从左边流进来,算完从右边流出去。像流水线,每个工位只做一件事。

但这要求你重写所有算法。不能用PyTorch直接跑。得用CSL,Cerebras专用语言。CSL是受Zig启发的领域专用语言,语法像Rust和Zig混合体。

CSL给直接控制权。你指定哪个PE跑哪段代码,数据怎么路由,颜色怎么分配。编译完,布局固定,数据流固定。没有动态调度,没有运行时决策。一切提前算好。

这让人想起FPGA,但比FPGA更极端。FPGA可重构逻辑,Cerebras是软件配置路由和代码。PE本身是固定的,只是通过编程决定它干什么。

数据流编程是个老概念

数据流编程不是新东西。上世纪七十年代就有数据流计算机。但都失败了,因为硬件太贵,编译器太难。

Cerebras把数据流做到了晶圆级。每个PE独立触发,独立运行。没有全局锁,没有同步屏障。数据到了就干活,干完就等下一个数据。

这天然适合稀疏计算。很多大模型参数是稀疏的,不用全算。数据流能跳过不激活的PE,只让有数据的PE干活。GPU不行,GPU要发射线程束,即使有的线程不干活也得占着位置。

也适合图神经网络。图就是节点和边,节点可以映射到PE上,边就是路由路径。消息在图结构里传播,和Cerebras的wavelet完美契合。

编译比运行难

因为一切要编译时确定,编译器压力山大。布局算法要决定90万个PE每个干什么,路由算法要决定wavelet怎么走不堵车。

这像芯片设计的布局布线,但发生在软件层。每个PE的48KB内存要精确分配,代码段数据段加起来不能超。超了?拆算法,分到更多PE上。

CSL程序分成两部分。一部分是PE上跑的代码,叫任务。另一部分是布局和路由配置,叫布局文件。布局文件定义了每个PE的任务映射和颜色路由。

编译器做静态调度。因为任务是非抢占的,跑完才切换,所以可以精确算时间。不会有两个任务同时写同一块内存,因为每个PE只有自己的48KB,别人写不进来。

这比CUDA难多了。CUDA你写个核函数,运行时发射就行,内存分配是动态的。Cerebras不行,得提前规划一切。

性能数字吓人

Cerebras报告在stencil计算上比H100快95到210倍。Stencil是像网格迭代那种,物理模拟常用。原因就是数据流天然适配,每个PE只算自己格子,数据从邻居流过来。

推理GPT-OSS-120B达到每秒3000个token。1200亿参数模型,跑这么快。普通GPU跑这个规模得几十块卡,延迟还高。

OpenAI刚签了100亿美金合同,买750兆瓦推理基础设施。750兆瓦是什么概念?一个大型核电机组大概1000兆瓦。相当于用一座核电站给Cerebras供电。

OpenAI为什么买?因为推理成本。ChatGPT每天推理成本几百万美元。如果Cerebras能快几十倍,同样成本能服务更多用户,或者同样用户成本降几十倍。

这玩意适合谁

不适合个人开发者。你没法在笔记本上跑CSL,也没法模拟90万PE。你得有真芯片,或者远程集群。

适合有钱的大公司,OpenAI、Google、Meta这类。他们推理量巨大,优化10%就能省几千万。Cerebras给他们一个新维度优化。

也适合科学计算。气象模拟、流体力学、分子动力学,这些stencil计算多的领域。数据流天然并行,网格天然映射到PE网格。

不适合训练大模型?训练需要反向传播,需要存中间激活值。48KB太小了,存不下。Cerebras主攻推理,推理是前向传播,不需要存中间值。

但推理市场规模巨大。所有大模型最终都要部署推理。如果推理成本能降一个数量级,商业模式都会变。现在GPT-4一次回复成本几毛钱,降到几分钱,能开更多应用。

生态是最大障碍

硬件再牛,软件跟不上就没人用。CUDA积累了二十年,几百万开发者,数不清的库。Cerebras要重新写一切。

CSL是新的,文档公开,编程模型外星人。开发者要学新思维,要重写算法。这对大多数AI工程师是门槛。

但Cerebras提供SDK和文档。如果它能像当初CUDA那样培养生态,给学术机构免费资源,搞竞赛,慢慢会有人用。问题是时间窗口。AMD和英特尔也在追,Cerebras能不能在生态起来前不被淘汰。

OpenAI的100亿合同是强心针。有巨头背书,开发者会多看两眼。如果Cerebras真能帮OpenAI省几十亿,其他公司会跟。

和Groq比

Groq也是推理加速器,也是SRAM,也是数据流。但Groq是单芯片,没做到晶圆级。Cerebras晶圆级集成度更高,但编程更复杂。

Groq支持TensorFlow和PyTorch,兼容性更好。Cerebras要写CSL,门槛更高。但Cerebras峰值性能更强,毕竟90万核摆在那。

两者都证明了SRAM比DRAM快得多。DRAM带宽是瓶颈,SRAM每周期存取,没有瓶颈。缺点是贵,SRAM比DRAM贵几十倍。但如果你能省下电费和时间,贵点也值。

最后

Cerebras这条路能不能走通,看三点。第一,编译器能不能继续优化,让写CSL不那么痛苦。第二,OpenAI能不能真的用好,产生实际收益。第三,其他芯片厂会不会抄,比如英伟达也做晶圆级SRAM。

抄也不容易。晶圆级制造良率很低,一片晶圆上不能有坏点。Cerebras能做出成品,制造工艺上有秘密。

如果推理成本真的降100倍,那AI应用会爆发。现在很多想法因为推理太贵不敢做,比如实时翻译、实时视频理解、个人AI助理。成本降了,这些都能上线。

但也要泼冷水。硬件优势在推理任务上最明显,训练不行。大部分AI公司训练成本也很大,如果训练还得用GPU,推理用Cerebras,那得维护两套代码。成本转移了,没完全消除。

一句话总结:最怪异的芯片设计反而靠最朴素的寄信逻辑跑赢了千倍带宽的GPU。