特斯拉備受關注的 Dojo 超算指令集結構細節史上首次大公開!而且還大秀了一把 Dojo 的數據格式、系統網絡,以及軟件系統繞行死節點的能力。
關于特斯拉自研的 AI 芯片 D1,更多細節也被披露。一切來自剛剛舉辦的硅谷芯片技術研討會 HOT CHIPS,聽特斯拉硬件工程師 Emil Talpes 怎么說。
特斯拉 Dojo 超算
所謂 Dojo,是特斯拉自研的超級計算機,能夠利用海量的視頻數據,做“無人監管”的標注和訓練。它有高度可擴展且完全靈活的分布式系統,能夠訓練神經網絡,還能適應新的算法和應用。
不僅如此,還能從頭開始構建大系統,而不是從現有的小系統演變而來。每個 Dojo ExaPod 集成了 120 個訓練模塊,內置 3000 個 D1 芯片,擁有超過 100 萬個訓練節點,算力達到 1.1EFLOP*(每秒千萬億次浮點運算)。
微架構方面,每個 Dojo 節點都有一個內核,是一臺具有 CPU 專用內存和 I / O 接口的成熟計算機。
這很重要,因為每個內核都可以做到獨立處理,而不依賴于共享緩存或寄存器文件。每個內核擁有一個 1.25MB 的 SRAM,這是主存儲器。這種 SRAM 能以 400GB / 秒的速度加載,并以 270GB / 秒的速度存儲。
芯片有明確的指令,可以將數據移入或移出 Dojo 超算中其他內核的外部 SRAM 存儲器。
嵌入 SRAM 中的是列表解析器引擎(list parser engine),諸如此類的引擎可以將信息一起發送到其他節點或從其他節點獲取信息,無需像其他 CPU 架構一樣。
至于通信接口,每個節點都與 2D 網格相連,在節點邊界處每周期有八個數據包。而且每個節點都有獨立的網絡連接,能與相鄰節點進行無縫連接。
關于 Dojo 的指令集,它支持 64 位標量指令和 64B SIMD 指令,能夠處理從本地到遠程內存傳輸數據的原語(primitives),并支持信號量(semaphore)和屏障約束( barrier constraints)。
特斯拉自研 AI 芯片新進展
數據格式對 AI 來說至關重要,特別是芯片所支持的數據格式。特斯拉借助 Dojo 超算來研究業界常見的芯片,例如 FP32、FP16 和 BFP16。
FP32 格式比 AI 訓練應用的許多部分所需的精度和范圍更廣,IEEE 指定的 FP16 格式沒有覆蓋神經網絡中的所有處理層。相反,谷歌 Brain 團隊創建的 Bfloat 格式應用范圍更廣,但精度更低。
特斯拉不僅提出了用于較低精度和更高矢量處理的 8 位 FP8 格式,還提出了一組可配置的 8 位和 16 位格式,Dojo 超算可以在尾數的精度附近滑動,以涵蓋更廣泛的范圍和精度。
在給定時間內,特斯拉最多可以使用 16 種不同的矢量格式,但每個 64B 數據包必須屬于同一類型。
特斯拉自研的 D1 芯片,是 Dojo ExaPod 的核心。由臺積電制造,采用 7 納米制造工藝,擁有 500 億個晶體管,芯片面積為 645mm²,小于英偉達的 A100(826 mm²)和 AMD Arcturus(750 mm²)。
每個芯片有 354 個 Dojo 處理節點和 440MB 的靜態隨機存儲器。D1 芯片測試完成后,隨即被封裝到 5×5 的 Dojo 訓練瓦片(Tile)上。
這些瓦片每邊有 4.5TB / s 的帶寬,每個模組還有 15kW 的散熱能力的封蓋,減掉給 40 個 I / O 的散熱,也就是說每個芯片的散熱能力接近 600W。瓦片也包含了所有的液冷散熱和機械封裝,這和 Cerebras 公司推出的 WES-2 芯片的封裝理念類似。
演講最后結束時,特斯拉工程師 Emil Talpes 表達了如下觀點:
我們最終的目標是追求可擴展性。我們已經不再強調 CPU 中常見的幾種機制,像是一致性、虛擬內存、全局查找目錄。只因為當我們擴展到非常大的系統時,這些機制并不能很好地隨之擴展。
相反,在整個網格中我們依靠的是那種快速、分散的 SRAM 存儲,這樣能夠得到更高數量級的互連速度支持。