比A100系統(tǒng)快1.7倍,從Google TPU v4看AI芯片的未來
相比較使用英偉達 A100 所創(chuàng)建的超級計算機,使用谷歌 TPUv4 構建的超級計算機速度快 1.2-1.7 倍,功耗降低 1.3-1.9 倍。
目前在人工智能計算領域,英偉達占據主導地位,超過 90% 的人工智能項目開發(fā)都使用其芯片。而谷歌試圖在該市場上和英偉達競爭,TPU 的全稱為 Tensor Processing Units,是谷歌自研的芯片。
為了TPU的可擴展性設計專用光學芯片,谷歌也是拼了
從論文的標題可以看到,谷歌TPU v4的一個主要亮點是通過光互連實現可重配置和高可擴展性(也即標題中的“optically reconfigurable”)。而在論文的一開始,谷歌開門見山首先介紹的也并非傳統(tǒng)的MAC設計、片上內存、HBM通道等AI芯片常見的參數,而是可配置的光學互聯(lián)開關(reconfigurable optical switch)。作為論文的重中之重,這里我們也詳細分析一下為什么光學互聯(lián)在TPU v4設計中占了這么重要的位置,以至于谷歌甚至為了它自研了一款光學芯片。
TPU v4從一開始設計時,其目標就是極高的可擴展性,可以有數千個芯片同時加速,從而實現一個為了機器學習模型訓練而設計的超級計算機。在谷歌的設計中,超級計算機的拓撲結構為:將4x4x4(64)個TPU v4芯片互聯(lián)在一起形成一個立方體結構(cube),然后再把4x4x4這樣的cube用連在一起形成一個總共有4096個TPU v4的超級計算機。
在這樣的拓撲中,物理距離較近的TPU v4(即在同一個4x4x4 cube中的芯片)可以用常規(guī)的電互聯(lián)(例如銅絞線)方法連接,但是距離較遠的TPU之間(例如在cube之間的互聯(lián))就必須使用光互連,原因就在于在如此大規(guī)模的超級計算機中,芯片之間的數據互聯(lián)在很大程度上會決定整體計算的效率;如果數據互聯(lián)效率不夠高的話,很多時候芯片都在等待來自其他芯片數據到達以開始計算,這樣就形成了效率浪費。為了避免這樣“芯片等數據”的情形出現,就必須確保芯片之間互聯(lián)能擁有高帶寬,低延遲。而光互連對于物理距離較遠的芯片就成為了首選。
光互連在高性能計算中的使用也并非新聞,而谷歌在TPU v4中的主要突破是使用可重配置的光互連(即加入光路開關,optical circuit switch OCS)來快速實現不同的芯片互聯(lián)拓撲。換句話說,芯片之間的互聯(lián)并非一成不變的,而是可以現場可重配置的。這樣做可以帶來許多好處,其中最主要的就是可以根據具體機器學習模型來改變拓撲,以及改善超級計算機的可靠性。
從拓撲結構來說,不同的機器學習模型對于數據流的要求大致可以分為三類,即數據平行(每塊芯片都加載整個模型,不同的芯片處理數據集中不同的數據),模型并行(模型中有些層特別大,因此每塊芯片只負責這樣很大的層中的一部分計算),以及流水線并行(把模型中的不同層交給不同的芯片計算),而不同的數據流就對應了不同的TPU互聯(lián)拓撲。當有了可重配置光互連之后,就可以根據具體模型數據流來調整TPU之間的互聯(lián)拓撲,從而實現最優(yōu)的性能,其提升可超過2倍。
另一個優(yōu)勢就是可靠性。在這樣擁有海量芯片組成的超級計算機中,一個重要的考量就是,如果有一小部分的芯片不工作了,如何確保整體超級計算機仍然能維持較高的性能?如果使用常規(guī)的固定互聯(lián)架構,那么一個芯片出故障可能會影響整個系統(tǒng)工作。而在有了可重配置的光互連之后,需要做的只需要把出故障的芯片繞過,就不會影響整個系統(tǒng)的工作,最多會犧牲一點整體的性能。谷歌在論文中給出了一個單芯片故障率和系統(tǒng)平均性能影響的曲線圖,在使用可配置光互連(以及光路開關)時,假設芯片可靠率在99%的情況下,其整體系統(tǒng)的平均性能提升比不使OCS可高達6倍,可見光互連開關的重要性。
為了實現數據中心級的可配置光互連,需要光路開關首先能高效擴展到超高數量的互聯(lián)數(例如1000x1000),同時需要實現低開關切換延遲,低成本,以及低信號損耗。谷歌認為現有的商用方案都不夠滿意,因此谷歌的做法是自研了一款光路開關芯片Palomar,并且使用該芯片實現了全球首個數據中心級的可配置光互連,而TPU v4就是搭配了這款自研光路開關芯片從架構上實現了高性能。谷歌自研的光路開關芯片Palomar使用的是基于MEMS反射鏡陣列的技術,具體原理是使用一個2D MEMS反射鏡陣列,通過控制反射鏡的位置來調整光路,從而實現光路的切換。使用MEMS的光路開關芯片可以實現低損耗,低切換延遲(毫秒級別)以及低功耗。在經過一系列優(yōu)化之后,光路系統(tǒng)的成本也控制得很低,在整個TPU v4超級計算機成本中占5%以下。
Google自研TPU,五年更新四代
Google最早于2016年宣布首款內部定制的AI芯片,區(qū)別于訓練和部署AI模型的最常見的組合架構,即CPU和GPU組合,第一代TPU在那場世界著名的人機圍棋大戰(zhàn)助力AlphaGo打敗李世石“一戰(zhàn)成名”,宣告并不是只有GPU才能做訓練和推理。
Google第一代TPU采用28nm工藝制程,功耗大約40W,僅適用于深度學習推理,除了AlphaGo,也用在Google搜索、翻譯等機器學習模型中。
2017年5月,Google發(fā)布了能夠實現機器學習模型訓練和推理的TPU v2,達到180TFLOPs浮點運算能力,同時內存帶寬也得以提升,比同期推出的CPU AI工作負載提升30倍,比GPU AI工作負載提升15倍,被基于4塊TPU v2的AlphaGo擊敗的世界圍棋冠軍柯潔最直觀地感受了這一切。
2018年5月,Google又發(fā)布第三代TPU v3,性能是上一代TPU的兩倍,實現420TFLOPs浮點運算,以及128GB的高帶寬內存。
按照一年一次迭代更新的節(jié)奏,Google理應在2019年推出第四代TPU,不過這一年的I/O大會上,Google推出的是第二代和第三代TPU Pod,可以配置超過1000顆TPU,大大縮短了在進行復雜的模型訓練時所需耗費的時間。
在AI芯片發(fā)展史上,無論是從片上內存上,還是從可編程能力來看,Google TPU都是不可多得的技術創(chuàng)新,打破GPU的“壟斷”地位,且打開云端AI芯片的新競爭格局。
發(fā)展五年的Google TPU在今天依然保持著強勁的競爭力,未來的世界是什么樣的?Google TPU已經告訴了我們一小部分答案。
TPU v4與人工智能芯片的未來
從TPU v4的設計中,我們可以看到人工智能芯片未來的一些方向,而這些方向是我們在Nvidia的GPU等其他主流人工智能芯片的設計中也看到的:
首先就是對于高效互聯(lián)和規(guī)模化的支持。隨著人工智能模型越來越大,對于這類模型的支持主要依賴人工智能芯片的可擴展性(即如何讓多芯片可以高效并可靠地一起分工合作來加速這樣的大模型),而不是一味提高單芯片的能力來支持大模型,因為模型的演進總是要比芯片的設計迭代更快。在這個領域,不同的芯片公司會有不同的側重,例如AMD側重較為微觀層面的使用chiplet來實現封裝級別的可擴展性,Nvidia有NvLink等芯片技術來實現單機多卡之間的可擴展性和性能提升,谷歌則直接為了海量TPU互聯(lián)設計了一款光路開關芯片;但是這些公司之間的共性,即對于人工智能芯片可擴展性的支持以滿足大模型的需求,卻是相當一致的。從這個角度來看,未來可擴展性(例如數據互聯(lián)帶寬)有可能會成為與峰值算力一樣的人工智能芯片主要指標,而這也讓人工智能芯片設計更加跨界:即不僅僅是需要對于數字邏輯和計算機架構方面的資源,同時也需要在封裝、數據互聯(lián)等領域都有積累。
此外,人工智能芯片與算法之間的結合繼續(xù)保持緊密關系,算法-芯片協(xié)同設計仍然將是未來人工智能芯片繼續(xù)提升性能的主要手段之一。我們目前已經看到了谷歌、Nvidia等在算法-芯片協(xié)同設計中的大量成果:包括對于新的數制(Nvidia的FP16、FP8,谷歌的BF16等)的支持,對于計算特性的支持(Nvidia對于稀疏計算的支持),以及對于模型關鍵算法的直接專用加速器的部署(Nvidia的transformer acclerator,谷歌的SC等)。隨著摩爾定律未來越來越接近物理極限,預計未來人工智能芯片性能進一步提升會越來越倚賴算法-芯片協(xié)同設計,而另一方面,由于有算法-芯片協(xié)同設計,我們預計未來人工智能芯片的性能仍然將保持類似摩爾定律的接近指數級提升,因此人工智能芯片仍然將會是半導體行業(yè)未來幾年最為熱門的方向之一,也將會成為半導體行業(yè)未來繼續(xù)發(fā)展的重要引擎。
