對于一家自動(dòng)駕駛電動(dòng)汽車制造商來說,,花費(fèi)數(shù)億美元從頭開始創(chuàng)建自己的人工智能超級計(jì)算機(jī),,超大規(guī)模人工智能訓(xùn)練的成本和難度有多大,?公司創(chuàng)始人必須多么自負(fù)和肯定才能組建一支能夠做到這一點(diǎn)的團(tuán)隊(duì),?
像許多問題一樣,當(dāng)您準(zhǔn)確地提出這些問題時(shí),他們往往會(huì)自己回答,。很明顯,,SpaceX 和特斯拉的創(chuàng)始人兼 OpenAI 聯(lián)盟的聯(lián)合創(chuàng)始人埃隆馬斯克沒有時(shí)間或金錢浪費(fèi)在科學(xué)項(xiàng)目上。
就像世界上的超級大國低估了完全模擬核導(dǎo)彈及其爆炸所需的計(jì)算能力一樣,,也許自動(dòng)駕駛汽車的制造商開始意識到,,在復(fù)雜的世界中教汽車自動(dòng)駕駛這種情況總是在變化,這將需要更多的超級計(jì)算,。一旦你接受了這一點(diǎn),,你就可以從頭開始,建造合適的機(jī)器來完成這項(xiàng)特定的工作,。
簡而言之,,這就是特斯拉的 Project Dojo 芯片、互連和超級計(jì)算機(jī)工作的全部內(nèi)容,。
在Hot Chips 34大會(huì)上,,曾在Dojo超級計(jì)算機(jī)上工作的芯片、系統(tǒng)和軟件工程師首次公開了該機(jī)器的許多架構(gòu)特性,,并承諾將在特斯拉AI日上談?wù)揇ojo系統(tǒng)的性能,。
Emil Talpes 在 AMD 工作了近 17 年,研究各種 Opteron 處理器以及命運(yùn)多舛的“K12”Arm 服務(wù)器芯片,,他介紹了他的團(tuán)隊(duì)創(chuàng)建的 Dojo 處理器,。Debjit Das Sarma 則同期在 AMD 擔(dān)任 CPU 架構(gòu)師,他在演講中受到贊譽(yù),,目前是特斯拉的自動(dòng)駕駛硬件架構(gòu)師,,Douglas Williams 也是如此,我們對他一無所知,。這家汽車制造商的首席系統(tǒng)工程師 Bill Chang 在 IBM Microelectronics 工作了 15 年,,設(shè)計(jì) IP 模塊并致力于制造工藝,然后幫助 Apple 將 X86 處理器轉(zhuǎn)移到自己的 Arm 芯片上,,而Rajiv Kurian一開始在特斯拉工作,,然后在Waymo工作。據(jù)我們所知,,在去年 8 月的 Tesla AI Day 1 上發(fā)言特斯拉自動(dòng)駕駛硬件高級總監(jiān)Ganesh Venkataramanan負(fù)責(zé)Dojo項(xiàng)目,。過去十五年里,Venkataramanan 還是 AMD CPU 設(shè)計(jì)團(tuán)隊(duì)的領(lǐng)導(dǎo)者,。
所以以一種奇怪的方式,,Dojo 代表了一個(gè)可替代的人工智能未來,如果特斯拉來幫助從頭開始設(shè)計(jì)定制的人工智能超級計(jì)算機(jī),,從全新核心內(nèi)核中的向量和整數(shù)單元一直到一個(gè)完整的 exascale 系統(tǒng),,專為 AI 訓(xùn)練用例的規(guī)?;鸵子诰幊潭O(shè)計(jì)。
與來自 AI 初創(chuàng)公司的許多其他相對較新的平臺一樣,,Dojo 設(shè)計(jì)優(yōu)雅而徹底,。最引人注目的是特斯拉工程師在關(guān)注規(guī)模時(shí)拋出的東西。
“我們應(yīng)用定義的目標(biāo)是可擴(kuò)展性,,”Talpes 在演講結(jié)束時(shí)解釋道?!拔覀儾辉購?qiáng)調(diào)典型 CPU 中的幾種機(jī)制,,例如一致性、虛擬內(nèi)存和全局查找目錄,,因?yàn)楫?dāng)我們擴(kuò)展到非常大的系統(tǒng)時(shí),,這些機(jī)制不能很好地?cái)U(kuò)展。相反,,我們依賴于整個(gè)網(wǎng)格中非??焖偾曳浅7植际降?SRAM 存儲。與典型分布式系統(tǒng)相比,,互連速度高出一個(gè)數(shù)量級,。”
基于此,,讓我們深入了解 Dojo 架構(gòu),。
根據(jù) Talpes 的說法,Dojo 核心有一個(gè)整數(shù)單元,,它從 RISC-V 架構(gòu)中借用了一些指令,,并且有一大堆特斯拉自己創(chuàng)建的附加指令。矢量數(shù)學(xué)單元“主要由特斯拉從頭開始實(shí)現(xiàn)”,,Talpes 沒有詳細(xì)說明這意味著什么,。他確實(shí)補(bǔ)充說,這個(gè)自定義指令集針對運(yùn)行機(jī)器學(xué)習(xí)內(nèi)核進(jìn)行了優(yōu)化,,我們認(rèn)為這意味著它不會(huì)很好地運(yùn)行孤島危機(jī),。
Dojo 指令集支持 64 位標(biāo)量指令和 64 B SIMD 指令,它包括處理從本地內(nèi)存到遠(yuǎn)程內(nèi)存?zhèn)鬏敂?shù)據(jù)的原語(primitives),,并支持信號量(semaphore)和屏障約束( barrier constraints),,這是使內(nèi)存操作符合指令不僅在 D1 內(nèi)核中運(yùn)行,而且在 D1 內(nèi)核的集合中運(yùn)行,。至于特定于 ML 的指令,,有一組通常在軟件中完成的 shuffle、transpose 和 convert 指令,,現(xiàn)在蝕刻在晶體管中,,核心還進(jìn)行隨機(jī)舍入( stochastic rounding ),,可以進(jìn)行隱式 2D 填充(implicit 2D padding),即通常通過在一條數(shù)據(jù)的兩側(cè)添加零來調(diào)整張量來完成,。
Talpes 明確表示,,D1 處理器是我們推測的 Dojo 芯片和系統(tǒng)系列中的第一個(gè),是“高吞吐量,、通用 CPU”,,它本身并不是加速器?;蛘吒鼫?zhǔn)確地說,,Dojo 的架構(gòu)旨在加速自身,而不需要一些外部設(shè)備來完成,。
每個(gè) Dojo 節(jié)點(diǎn)都有一個(gè)內(nèi)核,,是一臺具有 CPU 專用內(nèi)存和 I/O 接口的成熟計(jì)算機(jī)。這是一個(gè)重要的區(qū)別,,因?yàn)槊總€(gè)內(nèi)核都可以做自己的事情,,而不依賴于共享緩存或寄存器文件或任何東西。
D1 是一個(gè)超標(biāo)量(superscalar)內(nèi)核,,這意味著它在其內(nèi)核中支持指令級并行性,,就像當(dāng)今大多數(shù)芯片一樣,它甚至具有多線程設(shè)計(jì)來驅(qū)動(dòng)更多指令通過該內(nèi)核,。但是多線程更多的是每時(shí)鐘做更多的工作,,而不是擁有可以將獨(dú)立的 Linux 實(shí)例作為虛擬機(jī)運(yùn)行的獨(dú)立線程,因此同步多線程 (SMT) 的 Dojo 實(shí)現(xiàn)沒有虛擬內(nèi)存,,保護(hù)機(jī)制有限,,并且Dojo 軟件堆棧和應(yīng)用程序管理芯片資源的分配。
D1 內(nèi)核是一個(gè) 64 位處理器,,具有 32 B 的取指窗口( fetch window),,最多可容納 8 條指令;一個(gè)八寬解碼器每個(gè)周期可以處理兩個(gè)線程,。這個(gè)前端饋入( front end feeds into)一個(gè)四寬標(biāo)量調(diào)度器(four-wide scalar schedule),,該調(diào)度器具有四路 SMT,它有兩個(gè)整數(shù)單元,、兩個(gè)地址單元和一個(gè)用于每個(gè)線程的寄存器文件,。還有一個(gè)帶有四路 SMT 的兩側(cè)向量調(diào)度器,它饋送到一個(gè) 64 B 寬的 SIMD 單元或四個(gè) 8x8x4 矩陣乘法單元,。
每個(gè) D1 內(nèi)核都有一個(gè) 1.25 MB 的 SRAM,,這是它的主存儲器。它不是緩存,,如果有的話,,掛在更大的 Dojo 網(wǎng)絡(luò)上的 DDR4 內(nèi)存被視為比其他任何東西都更像大容量存儲,。該 SRAM 可以以 400 GB/秒的速度加載并以 270 GB/秒的速度存儲,并且該芯片具有明確的指令,,可以將數(shù)據(jù)移入或移出 Dojo 機(jī)器中其他內(nèi)核的外部 SRAM 存儲器,。嵌入在該 SRAM 中的是一個(gè)列表解析器引擎(list parser engine),該引擎饋入解碼器對和一個(gè)收集引擎(gather engine),,饋入向量寄存器文件,,它們一起可以將信息發(fā)送到其他節(jié)點(diǎn)或從其他節(jié)點(diǎn)獲取信息,而無需像與其他 CPU 架構(gòu),。
這個(gè)列表解析功能是 Dojo 芯片設(shè)計(jì)獨(dú)有的關(guān)鍵特性之一:
這本質(zhì)上是一種封裝不同數(shù)據(jù)位的方法,,以便可以在系統(tǒng)中的 D1 內(nèi)核之間高效傳輸。
D1 內(nèi)核支持多種數(shù)據(jù)格式,。標(biāo)量單元支持 8,、16,、32 或 64 位的整數(shù),,而向量單元及其關(guān)聯(lián)的矩陣單元支持多種數(shù)據(jù)格式,具有精度和數(shù)值范圍的混合,,其中不少是動(dòng)態(tài)的可由 Dojo 編譯器組合,。
Talpes 指出,F(xiàn)P32 格式比 AI 訓(xùn)練應(yīng)用的許多部分所需的精度和范圍更廣,,IEEE 指定的 FP16 格式?jīng)]有足夠的范圍覆蓋神經(jīng)網(wǎng)絡(luò)中的所有處理層,;相反,Google Brain 團(tuán)隊(duì)創(chuàng)建的 Bfloat 格式范圍更廣,,但精度更低,。因此,Tesla 不僅提出了用于較低精度和更高吞吐量矢量處理的 8 位 FP8 格式,,而且還提出了一組可配置的 8 位和 16 位格式,,Dojo 編譯器可以在尾數(shù)的精度附近滑動(dòng)和上圖所示的指數(shù),以涵蓋更廣泛的范圍和精度,。在任何給定時(shí)間,,最多可以使用 16 種不同的矢量格式,但每個(gè) 64 B 數(shù)據(jù)包必須屬于同一類型,。
在圖的右上角,,您將看到片上網(wǎng)絡(luò)路由器( network on chip router),它將多個(gè)核心連接在一起形成一個(gè) 2D 網(wǎng)格,。NOC 可以處理跨節(jié)點(diǎn)邊界的 8 個(gè)數(shù)據(jù)包(boundary),,每個(gè)方向 64 B,每個(gè)時(shí)鐘周期,,即在所有四個(gè)方向上一個(gè)數(shù)據(jù)包輸入和一個(gè)數(shù)據(jù)包輸出到網(wǎng)格中每個(gè)核心最近的鄰居,。該路由器還可以在每個(gè)周期對本地 SRAM 進(jìn)行一次 64 B 讀取和一次 64 B 寫入,,因此可以在內(nèi)核之間移動(dòng)數(shù)據(jù)。
這些都在在D1 核心上完成所有蝕刻,,是由其代工合作伙伴臺積電以 7 納米工藝完成的,。之后,特斯拉開始復(fù)制 D1 核心并將它們互連網(wǎng)格,,像這樣:
十幾個(gè) D1 核心排列成一個(gè)本地塊,,創(chuàng)建了一個(gè) 18 核心乘 20 核心的二維陣列,但由于某種原因,,只有 354 個(gè) D1 核心可用,。D1 芯片以 2 GHz 運(yùn)行,在這些內(nèi)核上共有 440 MB 的 SRAM,,在 BF16 或 CFP8 上提供 376 teraflops,,在 FP32 上提供 22 teraflops。向量單元中沒有 FP64 支持,。如此多的 HPC 工作負(fù)載無法在此 D1 芯片上運(yùn)行,,一些使用 64 位矢量數(shù)學(xué)的 AI 應(yīng)用也不會(huì)。特斯拉不需要關(guān)心——它只需要運(yùn)行自己的人工智能應(yīng)用程序,,如果它想在 D2 或 D3 芯片上添加 FP64 支持來運(yùn)行其 HPC 模擬和建模工作負(fù)載,,以便馬斯克的公司可以設(shè)計(jì)宇宙飛船和汽車,好吧,,在完成所有這些工作之后,,這相當(dāng)容易。
D1 die 有 576 個(gè)雙向 SerDes 通道,,圍繞在 die 周圍以鏈接到其他 D1 die,,并且 D1 die 的所有四個(gè)邊緣的帶寬為 8 TB/秒。這些芯片重達(dá) 645 平方毫米,,可通過這些 SerDes 無縫連接到特斯拉所謂的 Dojo 訓(xùn)練模塊中,。像這樣:
訓(xùn)練tile采用 25 個(gè)已知良好的 D1 裸片,并將它們打包成一個(gè) 5×5 陣列,,相互連接,。訓(xùn)練tile的外部邊緣在 40 個(gè) I/O 芯片上實(shí)現(xiàn)了 36 TB/秒的聚合帶寬;這是 2D 網(wǎng)格的網(wǎng)格的二分帶寬的一半,,它跨越了 tile 內(nèi)的 D1 芯片,。該tile具有 10 TB/秒的塊上二分帶寬,以及跨內(nèi)核的 11 GB SRAM 內(nèi)存,。每個(gè) tile 提供 9 petaflops 的 BF16/CFP8 魅力,。
那些Dojo訓(xùn)練tile消耗15千瓦,顯然是水冷的,,它們的設(shè)計(jì)使得多個(gè)訓(xùn)練tile可以與相鄰tile互連,。目前尚不清楚這是如何發(fā)生的,,但很明顯,您需要一排相互連接的tile,,水平或垂直方向,,而不是帶有幾個(gè)設(shè)備托盤的單獨(dú)機(jī)架,然后需要某種巨大比例的光纜或電纜,,圍繞在tile之間承載數(shù)據(jù),。垂直工作,如下所示:
您將在上圖中注意到,,在 D1 網(wǎng)格的邊緣有所謂的 Dojo 接口處理器或 DIP,,它們連接到 D1 網(wǎng)格以及為 DIP 供電并執(zhí)行各種系統(tǒng)管理的主機(jī)系統(tǒng)功能。每個(gè)訓(xùn)練tile總共有 11 GB 的私有 SRAM 主內(nèi)存,,但系統(tǒng)需要某種更大的內(nèi)存,,該內(nèi)存合理地靠近網(wǎng)格。在這種情況下,,Tesla 選擇創(chuàng)建一個(gè) DIP 內(nèi)存和 I/O 協(xié)處理器,,其中包含 32 GB 共享 HBM 內(nèi)存——我們還不知道是哪種,但它是 HBM2e 或 HBM3——以及以太網(wǎng)接口到外部世界以及在tile和核心之間進(jìn)行比通過這個(gè)巨大的網(wǎng)格更直接的跳躍,。圖片顯示一對主機(jī)安裝了十個(gè)這樣的 DIP,,每組三個(gè) Dojo 訓(xùn)練圖塊總共有 320 GB 的 HBM 內(nèi)存,。但圖表上的措辭表明,,每個(gè) tile 分配了 160 GB,這意味著每個(gè) tile 一個(gè)主機(jī),,而不是此處顯示的三個(gè) tile 兩個(gè)主機(jī),。
該 DIP 卡有兩個(gè) I/O 處理器,每個(gè)處理器帶有兩個(gè) HBM 內(nèi)存組,,該卡提供 32 GB 的 HBM 內(nèi)存和 800 GB/秒的帶寬,。對我們來說,這看起來像是稍微降低了 HBM2e 內(nèi)存,。該卡通過 PCI-Express 實(shí)現(xiàn)了 Tesla 傳輸協(xié)議 (TTP:Tesla Transport Protocol ),,這是一種專有互連,對我們來說這有點(diǎn)像 CXL 或 OpenCAPI,,以將完整的 DRAM 內(nèi)存帶寬提供給 Dojo 訓(xùn)練塊,。在卡的另一端,有一個(gè) 50 GB/秒的 TTP 協(xié)議鏈路在以太網(wǎng) NIC 上運(yùn)行,,它連接到現(xiàn)有的以太網(wǎng)交換機(jī),,該交換機(jī)可以是單個(gè) 400 Gb/秒端口或成對的 200 Gb/秒端口。DIP 插入 PCI-Express 4.0 x16 插槽,,每張卡提供 32 GB/秒的帶寬,。每個(gè)磁貼邊緣有 5 個(gè)卡,,有 160 GB/秒的帶寬進(jìn)入主機(jī)服務(wù)器和 4 個(gè)。
正如我們已經(jīng)指出的那樣,,DIP 不僅將 DRAM 實(shí)現(xiàn)為fat本地存儲,,而且還提供了另一種網(wǎng)絡(luò)維度,可用于繞過 2D 網(wǎng)格,,而需要大量躍點(diǎn)才能跨越所有這些核心和tile,。像這樣:
Chang 表示,在整個(gè)系統(tǒng)中通過 2D 網(wǎng)格實(shí)現(xiàn)端到端可能需要 30 hops,,但使用 TTO over Ethernet 協(xié)議和fat tree Ethernet 交換機(jī)網(wǎng)絡(luò),,只需要 4 hops。顯然,,帶寬要低得多,,但在網(wǎng)絡(luò)的第三維(因此是 Z 平面)上的延遲要低得多。
Dojo V1 訓(xùn)練矩陣是 Tesla 正在構(gòu)建的基礎(chǔ)系統(tǒng),,它有 6 個(gè)訓(xùn)練tile,、4 個(gè)主機(jī)服務(wù)器上的 20 個(gè) DIP,以及一組連接到以太網(wǎng)交換結(jié)構(gòu)的輔助服務(wù)器,,如下所示:
基礎(chǔ) Dojo V1 系統(tǒng)有 53,100 個(gè) D1 內(nèi)核,,在 BF16 和 CFP8 格式下的額定速度為 1 exaflops,在 Tile 上有 1.3 TB 的 SRAM 內(nèi)存,,在 DIP 上有 13 TB 的 HBM2e 內(nèi)存,。完整的 Dojo ExaPod 系統(tǒng)共有 120 個(gè)tile,將有 1,062,000 個(gè)可用的 D1 內(nèi)核,,重量為 20 exaflops,。
順便說一句,這個(gè)東西運(yùn)行 PyTorch,。沒有像 C 或 C++ 那樣低級的東西,,也沒有像 CUDA 這樣的遠(yuǎn)程。Dojo 機(jī)器的另一個(gè)巧妙之處在于 SRAM 將自身呈現(xiàn)為單個(gè)地址空間,。它是一個(gè)平坦的內(nèi)存區(qū)域,,本地計(jì)算懸掛在其內(nèi)存塊上。
我們期待看到 Dojo 在 AI 基準(zhǔn)測試中的表現(xiàn),。
更多信息可以來這里獲取==>>電子技術(shù)應(yīng)用-AET<<