在今年的年度 I/O 大會上,谷歌給人留下深刻印象。它不僅推出了一系列基于 TPUv2 芯片的云計算 TPU 實例的基準(zhǔn)測試,還透露了一些有關(guān)其下一代 TPU 芯片即 TPU3.0,以及其系統(tǒng)架構(gòu)的簡單細節(jié)。TIRIAS Research 的頂尖技術(shù)專家和首席分析師 Paul Teich 近日在 nextplatform 發(fā)文,對谷歌 TPU3.0 進行了深度揭秘。
谷歌將 TPUv2 版本升級為 TPU 3.0,但諷刺的是,據(jù)我們所知的種種細節(jié)表明,從 TPUv2 到 TPU3.0(下文稱之為 TPUv3)的跨度并沒有那么大;或許稱其為 TPUv2r5 或類似的東西會更合適。
如果你對 TPUv2 還不太熟悉,可以了解一下我們?nèi)ツ晁龅年P(guān)于 TPUv2 的評測來增加這方面的知識結(jié)構(gòu)。我們使用谷歌對云 TPU(Cloud TPU)的定義,云 TPU 是一塊包含四個 TPU 芯片的主板。谷歌目前的云 TPU 測試程序只允許用戶訪問單個云 TPU。除了其內(nèi)部開發(fā)人員,其他人無法以任何方式將云 TPU 聯(lián)合使用。去年我們了解到,谷歌已經(jīng)在其 TensorFlow 深度學(xué)習(xí)(DL)框架下抽取出云 TPU。除了谷歌內(nèi)部的 TensorFlow 開發(fā)團隊和 Google Cloud 之外,沒有人可以直接訪問云 TPU 硬件,可能永遠也不能。
我們還認為,谷歌已經(jīng)資助了一項龐大的軟件工程和優(yōu)化工作,以實現(xiàn)其當(dāng)前測試云 TPU 的部署。這促使谷歌在 TPUv3 中盡可能多地保留 TPUv2 的系統(tǒng)接口和行為,即硬件抽象層和應(yīng)用程序編程接口(API)。關(guān)于何時提供 TPUv3 服務(wù)、將其置于云 TPU 或多機架 pod 配置中,谷歌沒有提供任何信息。它的確展示了基于 TPUv3 的云 TPU 板的照片和一些 pod 照片,并作出以下聲明:
TPUv3 芯片運行溫度非常高,以致谷歌首次在其數(shù)據(jù)中心引入液體冷卻技術(shù)每個 TPUv3 pod 的功率將是 TPUv2 pod 的八倍每個 TPUv3 pod 性能將為每秒鐘運算 100 多千萬億次(petaflops)不過,谷歌也重申,TPUv2 pod 的時鐘頻率為 11.5 千萬億次每秒。8 倍的改進應(yīng)該會使 TPUv3 pod 的基本頻率達到 92.2 千萬億次,但 100 千萬億次的運算意味著這幾乎是 TPUv2 的 9 倍了。谷歌的營銷人員應(yīng)該四舍五入取整了,所以這個數(shù)字可能不太準(zhǔn)確。
POD
從 TPUv3 pod 的兩張完整照片中可以明顯看出,谷歌的下一代產(chǎn)品已經(jīng)升級:
每個 pod 的機架數(shù)量是原來的兩倍。每個機架的云 TPU 數(shù)量是原來的兩倍如果沒有其他變化,光這兩點足以使 TPUv2 pod 的性能提高 4 倍。
pod:TPUv2(上)和 TPUv3(下)
機架
TPUv3 pod 機架的間隔比 TPUv2 機架的間隔更小。但是,與 TPUv2 pod 一樣,TPUv3 pod 中仍然沒有明顯的儲存組件。TPUv3 的機架也更高,以適應(yīng)添加的水冷裝置。
機架:TPUv2(左)和 TPUv3(右)
谷歌將不間斷電源從 TPUv2 機架底部移到 TPUv3 機架頂部。我們假設(shè)現(xiàn)在機架底部的大體積金屬盒中包含水泵或其他水冷相關(guān)裝置。
現(xiàn)代超大規(guī)模數(shù)據(jù)中心不使用活動地板。谷歌的機架在加水之前就很重了,所以它們被直接置于混凝土板上,水從機架頂部進出。谷歌的數(shù)據(jù)中心有很多高架空間,如 TPUv3 pod 的照片所示。然而,懸掛重水管道和確定路徑一定是額外的操作挑戰(zhàn)。
TPUv3 的水連接(左上)、水泵(左下,猜測)和機架上的數(shù)據(jù)中心基礎(chǔ)架構(gòu)(右)
注意地板上機架前的絞合線,就在機架底部的大金屬盒前面,可能是濕度傳感器。
架子和主板
谷歌不僅將計算機架密度提高了一倍,還將服務(wù)器主板與云 TPU 的比率從一對一降到了一對二。這將影響功耗估計,因為 TPUv3 pod 的服務(wù)器和云 TPU 將從同一機架電源中獲取電力。
谷歌將當(dāng)前云 TPU beta 實例所使用的服務(wù)器主板作為計算引擎 n1-standard-2 實例計入其云平臺公共云中,該云平臺公共云具有兩個虛擬 CPU 和 7.5 GB 內(nèi)存。我們認為這很可能是一款主流雙插槽 X86 服務(wù)器。
回想一下,TPUv2 pod 包含 256 個 TPUv2 芯片和 128 個服務(wù)器處理器。TPUv3 pod 將使服務(wù)器處理器增加一倍,TPU 芯片數(shù)增加三倍。
我們認為谷歌在其 TPUv2 pod 中過度調(diào)配了服務(wù)器。這對于新的芯片和系統(tǒng)架構(gòu)來說是可以理解的。在對 pod 軟件進行了至少一年的調(diào)整并對芯片進行了一次小的修訂以后,把服務(wù)器的數(shù)量減少一半對 pod 性能的影響可能微不足道。其中可能有諸多原因,或許是服務(wù)器沒有計算或帶寬限制,又或者谷歌可能部署了新一代具有更多核的 Intel Xeon 或 AMD Epyc 處理器。