Cerebras CTO演講
芯東西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,我們相信只有通過硬件才能加速所有形式的稀疏性,比如我提到的那些,甚至是團隊尚未發明的未來形式的稀疏性。
我們真的能解決訓練增長不可持續的問題嗎?---[芯東西公衆號:aichip001*編譯 : 王傲翔*編輯 : 程茜/來源: 智東西]