一直以來,谷歌都被冠以最為成功的互聯(lián)網(wǎng)公司的美名,但在這些絕佳的贊譽背后,殊不知是何等龐大的服務(wù)器網(wǎng)絡(luò)在小心翼翼地支撐著這個科技巨頭每一天的穩(wěn)定運行。
但為了適應(yīng)在智能時代的游戲規(guī)則,谷歌也不得不做出改變,停止在服務(wù)器規(guī)模上的無限擴張,轉(zhuǎn)移到開發(fā)機器學(xué)習(xí)專用處理器TPU的軌道上來。
據(jù)悉,谷歌目前共在全球四大洲建有15個倉庫般大小的數(shù)據(jù)中心,這在以前是不敢想象的。六年前,谷歌開始為安卓操作系統(tǒng)添加語音識別功能之后,原來相對充裕的計算能力突然間顯得捉襟見肘,根據(jù)當(dāng)時谷歌工程師的推算——如果世界上每一臺安卓手機每天都使用3分鐘的語音搜索功能,那么谷歌的數(shù)???????中心的規(guī)模就起碼要翻倍。
更為“雪上加霜”的是,當(dāng)時谷歌也剛剛開始利用深度神經(jīng)網(wǎng)絡(luò)來加速語音識別的研發(fā),在這一過程中,研究人員通過調(diào)用復(fù)雜的算法和數(shù)學(xué)模型來對大量的數(shù)據(jù)進行分析,并以此解決特定的復(fù)雜任務(wù)。
可喜的是,隨著技術(shù)的成熟,語音識別的錯誤率下降了25%,谷歌當(dāng)即就決定要迅速將之進行商業(yè)應(yīng)用,但這無疑又加重了對硬件設(shè)備的要求。
但在這種雙重壓力下,谷歌并沒有直接將數(shù)據(jù)中心的規(guī)模簡單的加倍,深思熟慮之后,他們找到了一種更為高效穩(wěn)妥的解決方案——開發(fā)專屬的機器學(xué)習(xí)處理器“張量處理單元”(Tensor Processing Unit, TPU)。
這款處理器的開發(fā)者之一的 Norm Jouppi 評價說:“這確信無疑可以顯著提高工作的效率?!?/span>
TPU同傳統(tǒng)處理器在能耗效率上的表現(xiàn)對比
事實也的確如此,在TOPS / Watt(每瓦特性能)功耗效率測試中,TPU的性能要優(yōu)于常規(guī)的處理器 30 到 80 倍;而同傳統(tǒng)的GPU/ CPU的計算組合相比 ,TPU的處理速度也要快上15 到 30 倍;最為關(guān)鍵的是,由于TPU的運用,就連深度神經(jīng)網(wǎng)絡(luò)所需要的代碼數(shù)量也大幅的減少,僅需要100到1500行代碼就可以順暢運行。
在 2016 年 5 月份,谷歌首次證實了“TPU”的存在,但并沒有披露相關(guān)的技術(shù)細節(jié),外界只知道在谷歌街景、AlphaGo等應(yīng)用中用到了TPU。谷歌自己就稱,在AlphaGo戰(zhàn)勝李世石的比賽中,AlphaGo能夠做出更快更準(zhǔn)的判斷,大部分功勞要歸于TPU。
搭載TPU的電路板
今天,谷歌首次發(fā)表論文深度剖析了TPU的詳細架構(gòu)及相關(guān)技術(shù)細節(jié),并將TPU在性能和效率上的表現(xiàn)與Haswell CPU和Nvidia Tesla K80 GPU做了詳盡的比較,也向外界揭開了這款處理器的神秘面紗。
論文的作者Jouppi表示,在谷歌決定開發(fā)定制的ASIC(專用集成電路,即日后的TPU)之前,該硬件團隊曾寄希望于用FPGA(現(xiàn)場可編程門陣列)實現(xiàn)廉價、高效、高性能的推理系統(tǒng)。
人們最初想到利用FPGA,主要在于看重其靈活性,但是相比于ASIC,其受到可編程性和一些其它因素的限制,導(dǎo)致最終這些設(shè)備在性能和功耗上的表現(xiàn)與人們的預(yù)期有很大差距。
該論文作者之一Norm Jouppi
TPU 像 CPU 和 GPU 一樣,可以進行編程操作。它的設(shè)計也不僅僅是針對某種神經(jīng)網(wǎng)絡(luò)模型,而是能夠在多種神經(jīng)網(wǎng)絡(luò)(CNN、LSTM,以及大型全連接網(wǎng)絡(luò)模型等)中執(zhí)行CISC(復(fù)雜指令計算機)的指令。所不同的是,它將矩陣而不是矢量和標(biāo)量作為原語。
原語是機器指令的延伸,往往是為了完成某些特定的功能而編制的一段系統(tǒng)程序。
TPU整體框架,但不包括外接DDR3內(nèi)存。
左側(cè)是主機接口,指令序列從主機發(fā)出(沒有循環(huán))。
這些指令用于激活控制邏輯,控制邏輯可以基于指令
(由于指令從主機傳到芯片存在延遲,因此指令數(shù)量受到了限制)
并反復(fù)運行該指令
不過,這并不意味著TPU有多復(fù)雜,它看起來更像雷達的信號處理引擎,而不是標(biāo)準(zhǔn)X86架構(gòu)。此外“它與浮點單元協(xié)處理器更為神似,而跟GPU不太一樣,”Jouppi表示,盡管TPU有較多矩陣乘法單元,它卻沒有任何儲存程序,它僅僅執(zhí)行主機下發(fā)的指令。
由于需要向矩陣乘法單元供給大量數(shù)據(jù)(通量在64000的數(shù)量級上),TPU上的動態(tài)隨機存取存儲器(DRAM)是作為一個獨立單元并行運行的。Jouppi 說眼下還不知道TPU的擴展上限在哪里,只要你使用任何帶有主機軟件的加速器,就一定會有瓶頸。
很難解釋它們是如何進行捆綁工作,也不太清楚哪里會是天花板在哪里,但鑒于在支持大規(guī)模運行推理芯片方面對既穩(wěn)定又低成本的硬件的需求,我們可以想象它應(yīng)該不是那種外部的RDMA/NVlink方式,或任何其他類似的方式。
TPU有兩個存儲器,一個外部DRAM用來存儲模型內(nèi)參數(shù)。進來的數(shù)據(jù)會被載入到矩陣乘法單元頂層,同時激活數(shù)據(jù)(或者說“神經(jīng)元”的輸出數(shù)據(jù))還可以從左側(cè)載入。數(shù)據(jù)以脈動陣列形式進入矩陣單元進而生成矩陣乘法運算,每周期內(nèi)可以執(zhí)行64000次這樣的累計。
TPU中的收縮數(shù)據(jù)流引擎,它是256×256陣列
也許,你很容易想到,谷歌本可以采用一些新技術(shù)來為TPU加速。一個顯而易見的選項就是使用高頻寬存儲器(HBM)或混合內(nèi)存立方體(HMC)。然而,像谷歌這種巨大的業(yè)務(wù)規(guī)模導(dǎo)致的一大問題就是如何保持分布式硬件的穩(wěn)定運行。
“如果你在新加坡用你的手機做了一次語音搜索,那么搜索就需要在當(dāng)?shù)財?shù)據(jù)中心執(zhí)行,它必須是分布式的,因此,我們需要低成本、低功率的硬件。為了運行推理芯片去采用HBM也許有一點太極端,但是用于訓(xùn)練神經(jīng)網(wǎng)絡(luò)就是另一回事兒了?!?/span>
雖然谷歌已經(jīng)完成了對TPU全方位的測試,開始底氣十足地叫板CPU和GPU,但鑒于機器學(xué)習(xí)客戶群中的大部分(不過Facebook是個引人注目的異類)都用CPU來處理推理,與英特爾Haswell Xeon E5 v3處理器相比較才無疑是最合適的。
而且,這個對比證明了在推理工作的多個層面上,TPU都甩出Xeon芯片十條街。這也正解釋了,為什么本可以舒舒服服在自己的大型X86服務(wù)器群上繼續(xù)運行機器學(xué)習(xí)推理的谷歌,還要花大力氣特意開發(fā)TPU芯片了。
在谷歌的測試中,一個運行速度為2.3GHz并搭載64位浮點數(shù)學(xué)單元的十八核Haswell Xeon E5-2699 v3處理器能夠處理每秒1.3T操作(1.3 TOPS)并實現(xiàn)51GB每秒的存儲帶寬。Haswell芯片的功率為145w,整個系統(tǒng)(存儲空間256GB)高速運轉(zhuǎn)時功率達455w。
相比之下,TPU采用 8 位整數(shù)數(shù)學(xué)單元,可讀取256GB的主機存儲,外加32GB的本地存儲。它能夠?qū)崿F(xiàn)34GB每秒的存儲帶寬,處理能力達92TOPS——推理運算通量比Haswell多出71倍,而搭載TPU的服務(wù)器功耗為384w。
TPU與CPU和GPU的性能對比,GM 和 WM 分別代表幾何學(xué)圖形與加權(quán)平均值
此外,谷歌還測試了 CPU、GPU 和 TPU 在 7 微秒內(nèi)處理不同批量大小的推理工作時的每秒推理通量:
當(dāng) Haswell CPU 處理批量大小為 16 的小批量工作,并在約 7 微秒內(nèi)處理完99%的情況下,它可以實現(xiàn)每秒 5482 次推理(5482 IPS),為最高通量(13194 IPS,批量大小64)的42%。這里最高通量的實現(xiàn)條件為反應(yīng)速度不受限制、且前 99%的處理任務(wù)允許拖到 21.3 微秒。
與之相比,TPU能夠以 7 微秒的極限速度做 200 批量大小的推理,在運行推理基準(zhǔn)測試時實現(xiàn) 225000 IPS,這個速度為其巔峰表現(xiàn)的 80%,這里巔峰表現(xiàn)的實現(xiàn)條件為 250 批量大小,以及完成前 99%處理任務(wù)的反應(yīng)速度為 10 微秒。
谷歌測試的是版本相對較早的Haswell Xeon。如果用Broadwell Xeon E5 v4處理器的話,架構(gòu)變化可以為內(nèi)核的每時鐘周期指令數(shù)(IPC)帶來5%的提高;如果用今夏即將發(fā)布的Skylake Xeon E5 v5處理器,IPC或許會上升 9-10%。如果把內(nèi)核數(shù)從Haswell的 18 提升到Skylake的 28,Xeon的推理總通量或許能提升80%,但這還是遠遠追不上與TPU的差距。
TPU中各功能占比布局。
藍色的數(shù)據(jù)緩存占37%;黃色的計算占30%;
綠色的I/O占10%;紅色的控制只有2%。
而在傳統(tǒng)的CPU或GPU中的控制部分則要大很多且不易設(shè)計
需要強調(diào)的是,這是推理芯片,所以我們看到的與 GPU 的對比結(jié)果并不能一概而論。GPU和CPU協(xié)同運算在谷歌的模型訓(xùn)練上依舊表現(xiàn)優(yōu)秀。對于CPU制造商來說(好吧,其實就是英特爾),真正的挑戰(zhàn)在于提供性能優(yōu)越的推理芯片,并且在成本和能效上至少要接近定制類 ASIC 產(chǎn)品。
無論如何,Jouppi 表示:“我們完成了一次很匆忙的芯片開發(fā),但干得非常漂亮。我們發(fā)布第一批硅芯片的時候,沒有漏洞修復(fù)也沒有掩碼變化。我們一邊招募團隊一邊開發(fā)芯片,然后再去雇傭RTL人員,再跑去找設(shè)計鑒定測試人員。這真是個????人興奮的過程”。
本論文的另一位作者也是計算領(lǐng)域的另一位大師、RAID磁盤保護的發(fā)明者以及RISC之父——David Patterson(如上圖)。不得承認,這的確是一個超一流的團隊。

