深度解讀特斯拉自研芯片架構
對于一家自動駕駛電動汽車制造商來說,花費數(shù)億美元從頭開始創(chuàng)建自己的人工智能超級計算機,超大規(guī)模人工智能訓練的成本和難度有多大?公司創(chuàng)始人必須多么自負和肯定才能組建一支能夠做到這一點的團隊?
像許多問題一樣,當您準確地提出這些問題時,他們往往會自己回答。很明顯,SpaceX和特斯拉的創(chuàng)始人兼OpenAI聯(lián)盟的聯(lián)合創(chuàng)始人埃隆馬斯克沒有時間或金錢浪費在科學項目上。
就像世界上的超級大國低估了完全模擬核導彈及其爆炸所需的計算能力一樣,也許自動駕駛汽車的制造商開始意識到,在復雜的世界中教汽車自動駕駛這種情況總是在變化,這將需要更多的超級計算。一旦你接受了這一點,你就可以從頭開始,建造合適的機器來完成這項特定的工作。
簡而言之,這就是特斯拉的ProjectDojo芯片、互連和超級計算機工作的全部內(nèi)容。
在HotChips34大會上,曾在Dojo超級計算機上工作的芯片、系統(tǒng)和軟件工程師首次公開了該機器的許多架構特性,并承諾將在特斯拉AI日上談論Dojo系統(tǒng)的性能。
EmilTalpes在AMD工作了近17年,研究各種Opteron處理器以及命運多舛的“K12”Arm服務器芯片,他介紹了他的團隊創(chuàng)建的Dojo處理器。DebjitDasSarma則同期在AMD擔任CPU架構師,他在演講中受到贊譽,目前是特斯拉的自動駕駛硬件架構師,DouglasWilliams也是如此,我們對他一無所知。這家汽車制造商的首席系統(tǒng)工程師BillChang在IBMMicroelectronics工作了15年,設計IP模塊并致力于制造工藝,然后幫助Apple將X86處理器轉移到自己的Arm芯片上,而RajivKurian一開始在特斯拉工作,然后在Waymo工作。據(jù)我們所知,在去年8月的TeslaAIDay1上發(fā)言特斯拉自動駕駛硬件高級總監(jiān)GaneshVenkataramanan負責Dojo項目。過去十五年里,Venkataramanan還是AMDCPU設計團隊的領導者。
所以以一種奇怪的方式,Dojo代表了一個可替代的人工智能未來,如果特斯拉來幫助從頭開始設計定制的人工智能超級計算機,從全新核心內(nèi)核中的向量和整數(shù)單元一直到一個完整的exascale系統(tǒng),專為AI訓練用例的規(guī);鸵子诰幊潭O計。
與來自AI初創(chuàng)公司的許多其他相對較新的平臺一樣,Dojo設計優(yōu)雅而徹底。最引人注目的是特斯拉工程師在關注規(guī)模時拋出的東西。
“我們應用定義的目標是可擴展性,”Talpes在演講結束時解釋道!拔覀儾辉購娬{典型CPU中的幾種機制,例如一致性、虛擬內(nèi)存和全局查找目錄,因為當我們擴展到非常大的系統(tǒng)時,這些機制不能很好地擴展。相反,我們依賴于整個網(wǎng)格中非常快速且非常分布式的SRAM存儲。與典型分布式系統(tǒng)相比,互連速度高出一個數(shù)量級!
基于此,讓我們深入了解Dojo架構。
根據(jù)Talpes的說法,Dojo核心有一個整數(shù)單元,它從RISC-V架構中借用了一些指令,并且有一大堆特斯拉自己創(chuàng)建的附加指令。矢量數(shù)學單元“主要由特斯拉從頭開始實現(xiàn)”,Talpes沒有詳細說明這意味著什么。他確實補充說,這個自定義指令集針對運行機器學習內(nèi)核進行了優(yōu)化,我們認為這意味著它不會很好地運行孤島危機。
Dojo指令集支持64位標量指令和64BSIMD指令,它包括處理從本地內(nèi)存到遠程內(nèi)存?zhèn)鬏敂?shù)據(jù)的原語(primitives),并支持信號量(semaphore)和屏障約束(barrierconstraints),這是使內(nèi)存操作符合指令不僅在D1內(nèi)核中運行,而且在D1內(nèi)核的集合中運行。至于特定于ML的指令,有一組通常在軟件中完成的shuffle、transpose和convert指令,現(xiàn)在蝕刻在晶體管中,核心還進行隨機舍入(stochasticrounding),可以進行隱式2D填充(implicit2Dpadding),即通常通過在一條數(shù)據(jù)的兩側添加零來調整張量來完成。
Talpes明確表示,D1處理器是我們推測的Dojo芯片和系統(tǒng)系列中的第一個,是“高吞吐量、通用CPU”,它本身并不是加速器;蛘吒鼫蚀_地說,Dojo的架構旨在加速自身,而不需要一些外部設備來完成。
每個Dojo節(jié)點都有一個內(nèi)核,是一臺具有CPU專用內(nèi)存和I/O接口的成熟計算機。這是一個重要的區(qū)別,因為每個內(nèi)核都可以做自己的事情,而不依賴于共享緩存或寄存器文件或任何東西。
D1是一個超標量(superscalar)內(nèi)核,這意味著它在其內(nèi)核中支持指令級并行性,就像當今大多數(shù)芯片一樣,它甚至具有多線程設計來驅動更多指令通過該內(nèi)核。但是多線程更多的是每時鐘做更多的工作,而不是擁有可以將獨立的Linux實例作為虛擬機運行的獨立線程,因此同步多線程(SMT)的Dojo實現(xiàn)沒有虛擬內(nèi)存,保護機制有限,并且Dojo軟件堆棧和應用程序管理芯片資源的分配。