Tesla在上月的AI Day推出了用于機器學(xué)習(xí)和神經(jīng)網(wǎng)絡(luò)訓(xùn)練的芯片、系統(tǒng)和軟件。它們將共同推進(jìn)用于自動駕駛汽車模型的訓(xùn)練。
Elon Musk和他的芯片與系統(tǒng)設(shè)計團(tuán)隊在超過三小時的演講中提供了大量的技術(shù)細(xì)節(jié),以下是其中的一些亮點。
神經(jīng)網(wǎng)絡(luò)
Tesla設(shè)計了一個靈活、可擴展的分布式計算機架構(gòu),專門用于神經(jīng)網(wǎng)絡(luò)訓(xùn)練。Tesla的架構(gòu)從D1芯片開始,該芯片有354個訓(xùn)練節(jié)點,每個節(jié)點有一個強大的CPU。這些訓(xùn)練節(jié)點CPU是為高性能的NN和ML任務(wù)設(shè)計的,32位浮點運算的最大性能為64GFLOPs。
對于擁有354個CPU的D1芯片,32位浮點運算的最大性能是22.6TFLOPs。對于16位浮點計算,D1的最大性能躍升至362TFLOPs。
Tesla推出了兩個用于神經(jīng)網(wǎng)絡(luò)訓(xùn)練的系統(tǒng):Training Tile和ExaPOD。一個Training Tile在一個封裝中擁有25個連接的D1芯片。一個由25個D1芯片構(gòu)成的Training Tile有8850個訓(xùn)練節(jié)點,每個節(jié)點都有上面提及到的高性能CPU。一個Training Tile的32位浮點運算最大性能是565TFLOPs。
ExaPOD將120個Training Tile連接成一個系統(tǒng),即3000個D1芯片、106.2萬個訓(xùn)練節(jié)點。一個ExaPOD的32位浮點運算最大性能是67.8PFLOPs。
Tesla對神經(jīng)網(wǎng)絡(luò)介紹的細(xì)節(jié)D1芯片和Dojo神經(jīng)網(wǎng)絡(luò)訓(xùn)練系統(tǒng)的推出顯示出了Tesla的發(fā)展方向。這些產(chǎn)品投入使用的研發(fā)投資無疑是非常高的。Tesla很可能與其他公司分享這項技術(shù),創(chuàng)造另一個收入來源,類似于賣給其他OEM的電動車積分。
下表列出了Tesla的神經(jīng)網(wǎng)絡(luò)的特點。這些數(shù)據(jù)是從當(dāng)天視頻中提取的。筆者在一些地方加入了對芯片和系統(tǒng)架構(gòu)的理解。
Tesla的設(shè)計目標(biāo)是在其芯片和系統(tǒng)中擴展三個系統(tǒng)特性:計算性能、高帶寬和計算節(jié)點之間的低延遲通信。高帶寬和低延遲一直以來都很難擴展到數(shù)百或數(shù)千的計算節(jié)點??雌饋鞹esla已經(jīng)成功地將所有三個參數(shù)組織在一個連接的二維網(wǎng)格格式中。
訓(xùn)練節(jié)點
訓(xùn)練節(jié)點是D1芯片上最小的訓(xùn)練單元。它有一個64位處理器,具有4寬標(biāo)量和4路多線程的程序執(zhí)行。該CPU還具有8*8向量乘法的2寬向量數(shù)據(jù)路徑。
該CPU的指令集架構(gòu)(ISA)是為機器學(xué)習(xí)和神經(jīng)網(wǎng)絡(luò)訓(xùn)練任務(wù)量身定制的。該CPU支持多種浮點格式,32位、16位和8位。FP32、BFP16,以及一種新的格式CFP8或可配置的FP8。
該處理器有1.25MB的高速SRAM用于程序和數(shù)據(jù)存儲。該存儲器使用ECC或糾錯代碼以提高可靠性。
為了降低訓(xùn)練節(jié)點之間的延遲,Tesla挑選了信號在2GHz+時鐘頻率的一個周期內(nèi)可傳播的最遠(yuǎn)距離。這定義了訓(xùn)練節(jié)點的距離,以及CPU及其支持電子設(shè)備的復(fù)雜程度。這些參數(shù)還允許一個CPU以每秒512G比特的速度與四個相鄰的訓(xùn)練節(jié)點通信。
訓(xùn)練節(jié)點的最大性能取決于使用的算法,常以浮點性能來比較。Training Tile的32位浮點性能(FP32)的最大性能是64GFLOPs。BFP16或CFP8算術(shù)的最大性能是1,024GFLOPs。
D1芯片
令人印象深刻的D1芯片是一種專用于神經(jīng)網(wǎng)絡(luò)訓(xùn)練的設(shè)計。D1采用7nm工藝制造,在一個面積為645平方毫米的裸片中封裝了500億個晶體管。該芯片電線長度超過11英里,功耗為400W左右。
D1芯片有一個帶有高速、低功耗SerDes的I/O環(huán),總共有576條通道環(huán)繞著芯片。每條通道的傳輸速率為112Gbps。D1的最大片上傳輸速率為10Tbps(每秒10兆位)。芯片每側(cè)的最大片外傳輸速率為4Tbps。
由于D1芯片上的354個CPU中的每一個都有1.25MB的SRAM,加起來就有超過442MB的SRAM。D1芯片的最大性能也是基于354個訓(xùn)練節(jié)點的CPU陣列。
D1的32位浮點計算的最大性能達(dá)到22.6TFLOPs。16位浮點計算的最大性能為362TFLOPs。
Training Tile
Tesla的Training Tile是擴展AI訓(xùn)練系統(tǒng)的基石。一個Training Tile將25個D1芯片集成到一個晶圓上,并被封裝成多芯片模塊(MCM)。Tesla認(rèn)為這可能是芯片行業(yè)中最大的MCM。Training Tile被封裝成一個大芯片,可以通過一個高帶寬連接器與其他Training Tile連接,保留了Training Tile的帶寬。
Training Tile的封裝包括多層電源和控制、電流分配、計算平面(25個D1芯片)和冷卻系統(tǒng)。Training Tile用于IT中心,而不是自動駕駛汽車。
Training Tile提供單個D1芯片的25倍性能,或16位浮點計算的9Peta FLOPs,32位浮點計算則高達(dá)565TFLOPs。
12塊232配置的Training Tile可以裝在一個柜子里,Tesla稱它為Training Matrix。
ExaPOD
Tesla描述的最大系統(tǒng)是ExaPOD。它是由120個Training Tile構(gòu)成的。加起來有3000個D1芯片和106.2萬個訓(xùn)練節(jié)點。它裝在10個機柜中,顯然是為IT中心使用的。
ExaPOD的最大性能是16位浮點計算的1.09Exa FLOPs,32位浮點計算的67.8Peta FLOPs。
Dojo軟件和DPU
Dojo軟件旨在支持大型和小型神經(jīng)網(wǎng)絡(luò)的訓(xùn)練。特斯拉有一個編譯器來創(chuàng)建軟件代碼,利用訓(xùn)練節(jié)點、D1芯片、Training Tile和ExaPOD系統(tǒng)的結(jié)構(gòu)和能力。它使用的是PyTorch開源機器學(xué)習(xí)庫,并進(jìn)行了擴展來利用D1芯片和Dojo系統(tǒng)架構(gòu)。
這些能力允許大型神經(jīng)網(wǎng)絡(luò)被分割和映射,以提取不同的并行性、模型、圖形、數(shù)據(jù)的并行度,從而加速大型神經(jīng)網(wǎng)絡(luò)的訓(xùn)練。編譯器使用多種技術(shù)來提取并行性。它可以利用數(shù)據(jù)模型圖并行技術(shù)對網(wǎng)絡(luò)進(jìn)行轉(zhuǎn)換以實現(xiàn)細(xì)粒度并行,并可以優(yōu)化以減少內(nèi)存占用。
Dojo接口處理器用于與IT和數(shù)據(jù)中心的主機通信。它用PCIe 4.0連接到主機,并通過上述的高帶寬連接到基于D1的系統(tǒng)。接口處理器還為D1系統(tǒng)提供高帶寬的DRAM共享內(nèi)存。
基于D1的系統(tǒng)可以被細(xì)分和劃分為稱為Dojo Processing Unit的單元。DPU由一個或多個D1芯片、一個接口處理器和一個或多個計算機主機組成。DPU虛擬系統(tǒng)可以根據(jù)在其上運行的神經(jīng)網(wǎng)絡(luò)的需要,擴大或縮小規(guī)模。
總結(jié)
Tesla的神經(jīng)網(wǎng)絡(luò)訓(xùn)練芯片、系統(tǒng)和軟件都非常令人印象深刻。有很多創(chuàng)新,比如保留了巨大的帶寬和從芯片到系統(tǒng)的低延遲。Training Tile的電源和冷卻的封裝看起來很創(chuàng)新。
神經(jīng)網(wǎng)絡(luò)訓(xùn)練系統(tǒng)是用于數(shù)據(jù)中心的,肯定會被用于改進(jìn)Tesla的AV軟件。其他公司很可能也會使用這些Tesla神經(jīng)網(wǎng)絡(luò)訓(xùn)練系統(tǒng)。
看起來Tesla希望或依賴這種神經(jīng)網(wǎng)絡(luò)訓(xùn)練創(chuàng)新,繼續(xù)使其基于純視覺的自動駕駛系統(tǒng)持續(xù)改進(jìn)。這是正確的方向嗎?時間會告訴我們,到目前為止,Elon Musk的大部分賭注盡管都有一些時間上的推遲,但都是正確的。
[參考文章]
Tesla AI Day Perspectives — Egil Juliussen