Cerebras CTO演讲

新闻资讯2024-03-30 03:56:45橙橘网

Cerebras CTO演讲

芯东西(公众号:aichip001)
编译 王傲翔
编辑 程茜

芯东西3月28日消息,

开篇

一、

好的,大家好,我是Sean Lie。我非常高兴能够带大家深入了解CS3硬件架构,即Cerebras CS3系统,这是我们的第三代晶圆级系统。


▲Sean Lie介绍CS3(图源:Cerebras AI Day 2024)

它是AI计算领域的一次飞跃,因为它的性能相比上一代CS2系统高出两倍,但功耗和价格维持不变。

让我来向大家展示我们是如何做到这一点的。

首先是基础,即计算内核,在这里,我们在久经考验的上一代WSE-2内核基础上进行构建。该内核具有48KB内存和4路16位(4-way 16bit)数据路径。


▲Sean Lie介绍WSE-3内核(图源:Cerebras AI Day 2024)

在此基础上,我们大幅提高了AI计算的性能,首先为16bit AI计算数据路径改进为8-way SIMD,同时还为8bit AI计算提供了全新的16-way SIMD数据路径。


▲Sean Lie介绍WSE-3 AI性能的提升(图源:Cerebras AI Day 2024)

现在,这些改进将加速神经网络的矩阵乘法。但众所周知的是,神经网络不仅仅是矩阵乘法。因此,我们还添加了新的指令来加速非线性函数。总之,我们的这代产品能提供比上一代高出两倍的实际性能。

现在,在内存方面,我们将本地缓存改进为512字节,使其能够提供更宽的数据路径和更高的性能。结合本地内存,我们能够获得完整的内存带宽,以实现完整的SIMD性能。这是GPU内存架构根本无法实现的。

接下来,我们要做的就是把这个小的内核堆叠1万次,将其变成一个晶粒。你可以将一个晶粒想象成传统的芯片,然后我们在整个硅晶圆片上分切出84个这一的晶粒。在一块硅片、一块大型芯片上,总共可切出90万个内核。


▲Sean Lie介绍内核、晶粒以及硅晶圆片的构成(图源:Cerebras AI Day 2024)

现在,我们在晶圆级集成方面拥有独一无二的能力,因为我们在第一代晶圆级处理器(WSE-1)中发明了这一工艺。现在,我们对其进行了改进,并与台积电合作将该工艺扩展到5纳米。

之所以能做到这一点,是因为我们从一开始就共同设计了统一的Tile层级和Fabric架构,使我们能够用Fabric架构填充整个晶圆,将Fabric架构从单个晶粒扩展到多个晶粒。这些就是图中的小蓝线。最终,整个晶片就像一个巨大的芯片。

现在,这些小蓝线是一个大问题。原因在于,与传统的芯片到芯片的互连方式相比,例如H100GPU在DGX服务器中的互联方式,两者之间的差别是巨大的。

在晶圆上,我们可以连接10倍以上的晶粒或芯片,使其具有33倍的IO带宽,并且所有这一切的能效提高了100倍。我甚至都没有把NVLink交换机计算在内。

我们能做到这一点的原因其实很简单,当你在比较传统互连中如何在芯片之间驱动比特(bits)时,你需要通过连接器、印刷电路板,有时甚至通过长距离电缆来驱动。

这比在晶圆上驱动比特的难度和功耗要大得多,而且也要消耗更多电能。因此,我们才能把整个晶圆当作一个巨大的芯片来处理。

因此,我们所做的就是利用这块巨大的芯片,并围绕它建立一个系统。我们称之为CS3系统,它是专为晶圆级规模设计的。

现在,与GPU相比,CS3的性能数字简直令人难以置信。有了这样的性能水平,我们就能在单个芯片上实现大规模训练。

例如,只需一天时间,你就能在单个芯片上对开源CheckPoint的popular Llama 700亿参数模型进行微调,以获得10亿个指令牌(token)。即一天之内,在单芯片上对700亿参数模型进行微调。

现在,我们并未止步于此。我们建立了一个CS3集群,并将整个集群设计成单个ML加速器。现在我们之所以能做到这一点,是因为WSE-3足够大,甚至可以在单个芯片上运行最大的模型。

这也是我们能够分解计算机计算和内存的原因。而且,我们可以用数据并行缩放来进行训练。你可以视其为集群级内存和集群级计算,我们对其进行了架构设计,因此整个集群在本质上就像台单一设备。

我们的方法是,将所有模型权重放入一个名为MemoryX的外部存储器中。然后,我们将这些权重参数导入CS3系统进行运算。

我们之所以能做到这一点,是因为我们在晶圆上安装了专门的硬件机制,可以在权重参数流入晶圆时触发计算。

权重从不存储在晶圆上,甚至不会临时存储,因此它们不会占用晶圆的任何容量。你可以将其视为一个专门的存储器层次结构,能够在单个设备上建立大量模型。

接下来,我们使用一种名为SwarmX 的特殊结构将其扩展。它专为数据并行扩展而设计。它内置了broadcast和reduce机制。

由于我们只是进行多系统复制,因此其扩展与在单系统上运行是相同的。相同的架构,相同的执行流程,相同的软件界面。你可以获得集群级的计算能力,但其运行方式与单个设备无异,因为这数据只能并行处理。

在我们的上一代CS2集群中,单个集群最多可支持192个CS2系统。这已经是很大的数字了。但现在有了CS3集群,我们在单个集群中支持2048个CS3系统。这相当于256 EFLOPS的fp16 AI计算能力。而且所有程序都像单个设备一样。它超越了超级计算机的性能,但却能给用户带来单一设备的体验。

实现这一目标的原因是,我们已经大幅升级了我们的物理互连,以便其进行扩展。我们将物理链路从上一代的100Gb/s升级到400Gb/s和800Gb/s。所有这些都是基于标准的以太网。因为它性能高、灵活性强、成本效益高,所以没有NVLink或InfiniBand等定制专有互连的任何挑战。

我们还使用规范空间RDMA,以实现低开销和低延迟。如果将所有这一切汇总到2000个CS3系统上,我们的集群总带宽将达到10Pb/s,是上一代产品的10倍。有了这样的计算能力,你只需数小时或数天就能训练出当今最先进的模型。

例如,由Meta在大型GPU集群上训练的流行Llama 700亿参数模型,以CS3集群的原始计算量,大约需要一个月才能训练完成。而我们只需一天就能训练出该模型。更重要的是,整个集群就像一台设备一样运行。

在内存方面,在我们的上一代CS2集群中,MemoryX单元支持高达12TB的内存,支持2400亿个参数模型。同样,这已经是一个很大的数字。但现在。在CS3集群中,我们支持PB级内存,高达1.2PB的内存可支持24万亿个参数模型,是上一代产品的100倍。

之所以能做到这一点,是因为我们使用混合存储来存储权重。在这里,所有权重都存储在DDR5 DRAM和闪存中。因为它性能高、功耗小、成本低。在CS3集群中,MemoryX设备可支持高达36TB的DDR5 DRAM,可支持7200亿参数模型,而升级到1.2PB的闪存,可支持24万亿参数模型。

此外,MemoryX单元还具有计算功能,可以运行重量优化器,以及模型中的其他杂项功能。在这里,我们还将MemoryX单元的计算能力提高了2倍,以跟上并能够为性能更高的CS3提供支持。这种级别的内存比当今一些最大的GPU或TPU集群还要大。而这一切都可以从一个系统中访问。

有了这种级别的内存,再加上计算能力,我们就能在短短几天或几周内训练出未来的万亿参数模型。试想一下,在数千个GPU上训练一个1万亿参数的Llama-style model,可能需要一年多的时间,这几乎是不可能的。而在CS3集群上,你可以在三周内完成训练,整个集群就像一台设备一样运行。

作为用户,无论集群大小如何,无论是一台CS3、4台CS3还是2000台CS3,整个集群看起来都像一台设备。它始终看起来像一个单一的大设备。

你的模型总是符合的,不管它是十亿参数模型,还是一百亿、一千亿、几万亿参数。你的模型总是符合的。它始终看起来像一个单一的大设。这是一个真实世界的例子。这是G42,在Condor Galaxy-1上训练他们最先进的300亿参数模型。

正如你所看到的,无论是在1个系统还是在64个系统上进行训练,它都能在任何规模上进行线性扩展,同时像单个设备一样运行。它就是这样工作的。不需要复杂的分布式软件,不需要更改并行模型,不需要更改参数。它就是能够运行。我们非常自豪,晶圆级架构能够实现这一独特功能,因为它使我们的用户和客户每天都能训练出最先进的模型。

对我来说,作为一名计算机架构师,这真的非常令人兴奋。因为促成这一切的是我们Cerebras的核心设计理念,即合理调整问题的解决方案。

在座的各位可能有一些已经知道了,昨天我们的GPU朋友自豪地宣布,他们现在可以携手努力,直至生命最后一刻。这对他们来说是件大事。

这就是我们的芯片。事实上,这是我们的第三块芯片,我们可以在一块硅片上将84个芯片连接在一起,这是一块巨大的芯片。

现在,真正重要的是,你不能循序渐进地达到目标,你需要采取不同的方法,才能达到神奇发生的规模。你需要达到一定的规模,才能避免外部芯片互连,这是低性能、高能耗的专有芯片的开关。

在晶圆上,我们可以使用仅在芯片上运行的互联,基本上可以获得免费的高性能通信。你需要一定的规模,才能消除和避免分布软件和混合模型并行分布的复杂性。

在晶圆上,晶圆足够大,我们甚至可以在单个芯片上运行最大的模型。这样,我们就可以仅通过数据并行扩展和分解数据内存与计算来进行扩展。

当你根据问题调整解决方案时,一切都会变得更好。这就是我们打造巨型芯片来解决当今人工智能领域巨大问题的原因。

但我们相信我们能做到,而且我们需要做得比这更好。原因很简单。生成式AI正在以不可持续的速度爆炸式增长。如果你看一下从BERT到GPT-4的过去五年,训练最先进模型所需的计算量在五年内增加了40000倍。五年内训练一个模型所需的计算量增加了4万倍。显然,这是不可持续的。

因此,作为一个团队,我们必须找到更有效的方法。在Cerebras,我们认为稀疏性(Sparsity)是关键。

为什么这么说呢?因为神经网络是稀疏的。当你使用ReLU或Dropout等常用技术在计算中引入大量零时,你的网络中就会出现天然的稀疏性。

事实证明,即使是神经网络的密集层,也可以变得稀疏。这是因为模型在设计上被过度参数化了。

事实上,你可以把训练神经网络模型的行为看作是发现哪些权重是重要的,哪些是不重要的。这就是稀疏性。

因此,密集训练本身就是一种浪费,而且效率低下。但并非所有硬件都能利用所有形式的稀疏性。究其原因,稀疏性加速从根本上说是内存带宽的问题。

这意味着你可以使用本地缓存等技术,从内存中读取矩阵中的一行,将其放入本地缓存中,并在返回内存之前多次使用。密集矩阵乘法每物理FLOP只需要0.001字节的内存带宽。

而GPU拥有这种级别的内存带宽,因此可以运行密集矩阵乘法。而稀疏矩阵乘法则完全不同。数据重用率非常低,因此无法使用传统的缓存技术。

在极端情况下,你必须为每个稀疏元素从内存中读取矩阵的每一行。因此,要运行所有形式的稀疏性,每个物理FLOP需要多1000倍的内存带宽。

这种稀疏程度和内存带宽是传统技术无法实现的。只有采用晶圆级引擎架构,我们才能获得这种级别的内存带宽,这也是Cerebras CS3能够加速所有形式的稀疏性的原因。

静态或动态,结构化或非结构化?我们可以加速所有形式,并将其转化为训练速度。

下面是一些例子。我们可以加速动态激活稀疏性。去年,谷歌发表的一篇论文显示,大模型中95%以上的FFN层可以通过反弹稀疏性实现稀疏。这意味着训练FLOP整体上减少了1.7 倍。我们可以加速结构稀疏性。

例如,Mistral最近发布了一个mixture of experts(MoE)模型,该模型在FFN层中的稀疏度达到75%。这意味着整体训练FLOPs减少了约2倍。

我们还可以加速完全非结构化的稀疏性,就像我们Cerebras正在开发的那样。我们已经证明,你可以在减少2.8倍训练FLOP的情况下诱导高达75%的稀疏性。

在 Cerebras,我们相信只有通过硬件才能加速所有形式的稀疏性,比如我提到的那些,甚至是团队尚未发明的未来形式的稀疏性。

我们真的能解决训练增长不可持续的问题吗?

谢谢大家。

本文标签: 内存  芯片  演讲  gpu  存储器  固态硬盘  

相关推荐

猜你喜欢

大家正在看