《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 人工智能 > 業(yè)界動(dòng)態(tài) > 深度解讀特斯拉自研芯片架構(gòu)

深度解讀特斯拉自研芯片架構(gòu)

2022-08-25
來(lái)源:半導(dǎo)體行業(yè)觀察

  對(duì)于一家自動(dòng)駕駛電動(dòng)汽車(chē)制造商來(lái)說(shuō),花費(fèi)數(shù)億美元從頭開(kāi)始創(chuàng)建自己的人工智能超級(jí)計(jì)算機(jī),超大規(guī)模人工智能訓(xùn)練的成本和難度有多大?公司創(chuàng)始人必須多么自負(fù)和肯定才能組建一支能夠做到這一點(diǎn)的團(tuán)隊(duì)?

  像許多問(wèn)題一樣,當(dāng)您準(zhǔn)確地提出這些問(wèn)題時(shí),他們往往會(huì)自己回答。很明顯,SpaceX 和特斯拉的創(chuàng)始人兼 OpenAI 聯(lián)盟的聯(lián)合創(chuàng)始人埃隆馬斯克沒(méi)有時(shí)間或金錢(qián)浪費(fèi)在科學(xué)項(xiàng)目上。

  就像世界上的超級(jí)大國(guó)低估了完全模擬核導(dǎo)彈及其爆炸所需的計(jì)算能力一樣,也許自動(dòng)駕駛汽車(chē)的制造商開(kāi)始意識(shí)到,在復(fù)雜的世界中教汽車(chē)自動(dòng)駕駛這種情況總是在變化,這將需要更多的超級(jí)計(jì)算。一旦你接受了這一點(diǎn),你就可以從頭開(kāi)始,建造合適的機(jī)器來(lái)完成這項(xiàng)特定的工作。

 微信圖片_20220825091956.jpg

  簡(jiǎn)而言之,這就是特斯拉的 Project Dojo 芯片、互連和超級(jí)計(jì)算機(jī)工作的全部?jī)?nèi)容。

  在Hot Chips 34大會(huì)上,曾在Dojo超級(jí)計(jì)算機(jī)上工作的芯片、系統(tǒng)和軟件工程師首次公開(kāi)了該機(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 也是如此,我們對(duì)他一無(wú)所知。這家汽車(chē)制造商的首席系統(tǒng)工程師 Bill Chang 在 IBM Microelectronics 工作了 15 年,設(shè)計(jì) IP 模塊并致力于制造工藝,然后幫助 Apple 將 X86 處理器轉(zhuǎn)移到自己的 Arm 芯片上,而Rajiv Kurian一開(kāi)始在特斯拉工作,然后在Waymo工作。據(jù)我們所知,在去年 8 月的 Tesla AI Day 1 上發(fā)言特斯拉自動(dòng)駕駛硬件高級(jí)總監(jiān)Ganesh Venkataramanan負(fù)責(zé)Dojo項(xiàng)目。過(guò)去十五年里,Venkataramanan 還是 AMD CPU 設(shè)計(jì)團(tuán)隊(duì)的領(lǐng)導(dǎo)者。

  所以以一種奇怪的方式,Dojo 代表了一個(gè)可替代的人工智能未來(lái),如果特斯拉來(lái)幫助從頭開(kāi)始設(shè)計(jì)定制的人工智能超級(jí)計(jì)算機(jī),從全新核心內(nèi)核中的向量和整數(shù)單元一直到一個(gè)完整的 exascale 系統(tǒng),專(zhuān)為 AI 訓(xùn)練用例的規(guī)?;鸵子诰幊潭O(shè)計(jì)。

  與來(lái)自 AI 初創(chuàng)公司的許多其他相對(duì)較新的平臺(tái)一樣,Dojo 設(shè)計(jì)優(yōu)雅而徹底。最引人注目的是特斯拉工程師在關(guān)注規(guī)模時(shí)拋出的東西。

  “我們應(yīng)用定義的目標(biāo)是可擴(kuò)展性,”Talpes 在演講結(jié)束時(shí)解釋道?!拔覀儾辉?gòu)?qiáng)調(diào)典型 CPU 中的幾種機(jī)制,例如一致性、虛擬內(nèi)存和全局查找目錄,因?yàn)楫?dāng)我們擴(kuò)展到非常大的系統(tǒng)時(shí),這些機(jī)制不能很好地?cái)U(kuò)展。相反,我們依賴(lài)于整個(gè)網(wǎng)格中非??焖偾曳浅7植际降?SRAM 存儲(chǔ)。與典型分布式系統(tǒng)相比,互連速度高出一個(gè)數(shù)量級(jí)?!?/p>

  基于此,讓我們深入了解 Dojo 架構(gòu)。

  根據(jù) Talpes 的說(shuō)法,Dojo 核心有一個(gè)整數(shù)單元,它從 RISC-V 架構(gòu)中借用了一些指令,并且有一大堆特斯拉自己創(chuàng)建的附加指令。矢量數(shù)學(xué)單元“主要由特斯拉從頭開(kāi)始實(shí)現(xiàn)”,Talpes 沒(méi)有詳細(xì)說(shuō)明這意味著什么。他確實(shí)補(bǔ)充說(shuō),這個(gè)自定義指令集針對(duì)運(yùn)行機(jī)器學(xué)習(xí)內(nèi)核進(jìn)行了優(yōu)化,我們認(rèn)為這意味著它不會(huì)很好地運(yùn)行孤島危機(jī)。

  微信圖片_20220825092014.jpg

  Dojo 指令集支持 64 位標(biāo)量指令和 64 B SIMD 指令,它包括處理從本地內(nèi)存到遠(yuǎn)程內(nèi)存?zhèn)鬏敂?shù)據(jù)的原語(yǔ)(primitives),并支持信號(hào)量(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),即通常通過(guò)在一條數(shù)據(jù)的兩側(cè)添加零來(lái)調(diào)整張量來(lái)完成。

  Talpes 明確表示,D1 處理器是我們推測(cè)的 Dojo 芯片和系統(tǒng)系列中的第一個(gè),是“高吞吐量、通用 CPU”,它本身并不是加速器?;蛘吒鼫?zhǔn)確地說(shuō),Dojo 的架構(gòu)旨在加速自身,而不需要一些外部設(shè)備來(lái)完成。

  每個(gè) Dojo 節(jié)點(diǎn)都有一個(gè)內(nèi)核,是一臺(tái)具有 CPU 專(zhuān)用內(nèi)存和 I/O 接口的成熟計(jì)算機(jī)。這是一個(gè)重要的區(qū)別,因?yàn)槊總€(gè)內(nèi)核都可以做自己的事情,而不依賴(lài)于共享緩存或寄存器文件或任何東西。

  D1 是一個(gè)超標(biāo)量(superscalar)內(nèi)核,這意味著它在其內(nèi)核中支持指令級(jí)并行性,就像當(dāng)今大多數(shù)芯片一樣,它甚至具有多線程設(shè)計(jì)來(lái)驅(qū)動(dòng)更多指令通過(guò)該內(nèi)核。但是多線程更多的是每時(shí)鐘做更多的工作,而不是擁有可以將獨(dú)立的 Linux 實(shí)例作為虛擬機(jī)運(yùn)行的獨(dú)立線程,因此同步多線程 (SMT) 的 Dojo 實(shí)現(xiàn)沒(méi)有虛擬內(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,這是它的主存儲(chǔ)器。它不是緩存,如果有的話,掛在更大的 Dojo 網(wǎng)絡(luò)上的 DDR4 內(nèi)存被視為比其他任何東西都更像大容量存儲(chǔ)。該 SRAM 可以以 400 GB/秒的速度加載并以 270 GB/秒的速度存儲(chǔ),并且該芯片具有明確的指令,可以將數(shù)據(jù)移入或移出 Dojo 機(jī)器中其他內(nèi)核的外部 SRAM 存儲(chǔ)器。嵌入在該 SRAM 中的是一個(gè)列表解析器引擎(list parser engine),該引擎饋入解碼器對(duì)和一個(gè)收集引擎(gather engine),饋入向量寄存器文件,它們一起可以將信息發(fā)送到其他節(jié)點(diǎn)或從其他節(jié)點(diǎn)獲取信息,而無(wú)需像與其他 CPU 架構(gòu)。

  這個(gè)列表解析功能是 Dojo 芯片設(shè)計(jì)獨(dú)有的關(guān)鍵特性之一:

  微信圖片_20220825092032.jpg

  這本質(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 編譯器組合。

  微信圖片_20220825092051.jpg

  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ù)包必須屬于同一類(lèi)型。

  在圖的右上角,您將看到片上網(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è)周期對(duì)本地 SRAM 進(jìn)行一次 64 B 讀取和一次 64 B 寫(xiě)入,因此可以在內(nèi)核之間移動(dòng)數(shù)據(jù)。

  這些都在在D1 核心上完成所有蝕刻,是由其代工合作伙伴臺(tái)積電以 7 納米工藝完成的。之后,特斯拉開(kāi)始復(fù)制 D1 核心并將它們互連網(wǎng)格,像這樣:

  微信圖片_20220825092108.jpg

  十幾個(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。向量單元中沒(méi)有 FP64 支持。如此多的 HPC 工作負(fù)載無(wú)法在此 D1 芯片上運(yùn)行,一些使用 64 位矢量數(shù)學(xué)的 AI 應(yīng)用也不會(huì)。特斯拉不需要關(guān)心——它只需要運(yùn)行自己的人工智能應(yīng)用程序,如果它想在 D2 或 D3 芯片上添加 FP64 支持來(lái)運(yùn)行其 HPC 模擬和建模工作負(fù)載,以便馬斯克的公司可以設(shè)計(jì)宇宙飛船和汽車(chē),好吧,在完成所有這些工作之后,這相當(dāng)容易。

  D1 die 有 576 個(gè)雙向 SerDes 通道,圍繞在 die 周?chē)枣溄拥狡渌?D1 die,并且 D1 die 的所有四個(gè)邊緣的帶寬為 8 TB/秒。這些芯片重達(dá) 645 平方毫米,可通過(guò)這些 SerDes 無(wú)縫連接到特斯拉所謂的 Dojo 訓(xùn)練模塊中。像這樣:

  微信圖片_20220825092138.jpg

  訓(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è)備托盤(pán)的單獨(dú)機(jī)架,然后需要某種巨大比例的光纜或電纜,圍繞在tile之間承載數(shù)據(jù)。垂直工作,如下所示:

  微信圖片_20220825092200.jpg

  您將在上圖中注意到,在 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)行比通過(guò)這個(gè)巨大的網(wǎng)格更直接的跳躍。圖片顯示一對(duì)主機(jī)安裝了十個(gè)這樣的 DIP,每組三個(gè) Dojo 訓(xùn)練圖塊總共有 320 GB 的 HBM 內(nèi)存。但圖表上的措辭表明,每個(gè) tile 分配了 160 GB,這意味著每個(gè) tile 一個(gè)主機(jī),而不是此處顯示的三個(gè) tile 兩個(gè)主機(jī)。

  微信圖片_20220825092213.jpg

  該 DIP 卡有兩個(gè) I/O 處理器,每個(gè)處理器帶有兩個(gè) HBM 內(nèi)存組,該卡提供 32 GB 的 HBM 內(nèi)存和 800 GB/秒的帶寬。對(duì)我們來(lái)說(shuō),這看起來(lái)像是稍微降低了 HBM2e 內(nèi)存。該卡通過(guò) PCI-Express 實(shí)現(xiàn)了 Tesla 傳輸協(xié)議 (TTP:Tesla Transport Protocol ),這是一種專(zhuān)有互連,對(duì)我們來(lái)說(shuō)這有點(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/秒端口或成對(duì)的 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本地存儲(chǔ),而且還提供了另一種網(wǎng)絡(luò)維度,可用于繞過(guò) 2D 網(wǎng)格,而需要大量躍點(diǎn)才能跨越所有這些核心和tile。像這樣:

  微信圖片_20220825092230.jpg

  Chang 表示,在整個(gè)系統(tǒng)中通過(guò) 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ù)器,如下所示:

  微信圖片_20220825092242.jpg

  基礎(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。

  順便說(shuō)一句,這個(gè)東西運(yùn)行 PyTorch。沒(méi)有像 C 或 C++ 那樣低級(jí)的東西,也沒(méi)有像 CUDA 這樣的遠(yuǎn)程。Dojo 機(jī)器的另一個(gè)巧妙之處在于 SRAM 將自身呈現(xiàn)為單個(gè)地址空間。它是一個(gè)平坦的內(nèi)存區(qū)域,本地計(jì)算懸掛在其內(nèi)存塊上。

  我們期待看到 Dojo 在 AI 基準(zhǔn)測(cè)試中的表現(xiàn)。

  

  更多信息可以來(lái)這里獲取==>>電子技術(shù)應(yīng)用-AET<<

微信圖片_20210517164139.jpg


本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,請(qǐng)及時(shí)通過(guò)電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。