0
我們找到了一些資料,希望能夠解答為什么 TPU 運算速度比普通的 GPU、CPU 組合快 15-30 倍。同時,我們認(rèn)為 Google 在 TPU 研發(fā)上的這些創(chuàng)新極有可能將成為 Intel、AMD 跟進(jìn)同類硬件開發(fā)的標(biāo)桿,并最終成為一種趨勢。
一、針對深度學(xué)習(xí)的定制化研發(fā)
TPU 是谷歌專門為加速深層神經(jīng)網(wǎng)絡(luò)運算能力而研發(fā)的一款芯片,其實也是一款 ASIC。
ASIC,指依照產(chǎn)品需求不同而定制化的特殊規(guī)格集成電路,由特定使用者要求和特定電子系統(tǒng)的需要而設(shè)計、制造。一般來說,ASIC 在特定功能上進(jìn)行了專項強化,可以根據(jù)需要進(jìn)行復(fù)雜的設(shè)計,但相對來說,實現(xiàn)更高處理速度和更低能耗。相對應(yīng)的,ASIC 的生產(chǎn)成本也非常高。
一般公司很難承擔(dān)為深度學(xué)習(xí)開發(fā)專門處理器 ASIC 芯片的成本和風(fēng)險。首先為了性能必須使用最好的半導(dǎo)體制造工藝,而現(xiàn)在用最新的工藝制造芯片一次性成本就要幾百萬美元,非常貴。就算有錢,還需要拉一支隊伍從頭開始設(shè)計,設(shè)計時間往往要到一年以上,time to market 時間太長,風(fēng)險很大。如果無法實現(xiàn)規(guī)?;膽?yīng)用,就算開發(fā)成功也缺少實際使用價值。所以,企業(yè)一般傾向于采用通用性的芯片(如 CPU、GPU),或者半定制化芯片(FPGA)。
谷歌之所以敢自己做定制化研發(fā),一方面自然是有錢任性,另一方面也由于谷歌提供的很多服務(wù),包括谷歌圖像搜索(Google ImageSearch)、谷歌照片(Google Photo)、谷歌云視覺 API(Google Cloud Vision API)、谷歌翻譯等產(chǎn)品和服務(wù)都需要用到深度神經(jīng)網(wǎng)絡(luò)。基于谷歌自身龐大的體量,開發(fā)一種專門的芯片開始具備規(guī)模化應(yīng)用(大量分?jǐn)傃邪l(fā)成本)的可能。
假如存在這樣一個場景,其中人們在 1 天中使用谷歌語音進(jìn)行 3 分鐘搜索,并且我們要在正使用的處理器中為語音識別系統(tǒng)運行深度神經(jīng)網(wǎng)絡(luò),那么我們就不得不翻倍谷歌數(shù)據(jù)中心的數(shù)量。
我們的負(fù)載是用高級的 TensorFlow 框架編寫的,并是用了生產(chǎn)級的神經(jīng)網(wǎng)絡(luò)應(yīng)用(多層感知器、卷積神經(jīng)網(wǎng)絡(luò)和 LSTM),這些應(yīng)用占到了我們的數(shù)據(jù)中心的神經(jīng)網(wǎng)絡(luò)推理計算需求的 95%。
表 1:6 種神經(jīng)網(wǎng)絡(luò)應(yīng)用(每種神經(jīng)網(wǎng)絡(luò)類型各 2 種)占據(jù)了 TPU 負(fù)載的 95%。表中的列依次是各種神經(jīng)網(wǎng)絡(luò)、代碼的行數(shù)、神經(jīng)網(wǎng)絡(luò)中層的類型和數(shù)量(FC 是全連接層、Conv 是卷積層,Vector 是向量層,Pool 是池化層)以及 TPU 在 2016 年 7 月的應(yīng)用普及程度。
相對于 CPU 和 GPU 的隨時間變化的優(yōu)化方法(高速緩存、無序執(zhí)行、多線程、多處理、預(yù)取……),這種 TPU 的確定性的執(zhí)行模型(deterministic execution model)能更好地匹配我們的神經(jīng)網(wǎng)絡(luò)應(yīng)用的 99% 的響應(yīng)時間需求,因為 CPU 和 GPU 更多的是幫助對吞吐量(throughout)進(jìn)行平均,而非確保延遲性能。這些特性的缺失有助于解釋為什么盡管 TPU 有極大的 MAC 和大內(nèi)存,但卻相對小和低功耗。
TPU 各模塊的框圖。主要計算部分是右上方的黃色矩陣乘法單元。其輸入是藍(lán)色的「權(quán)重 FIFO」和藍(lán)色的統(tǒng)一緩存(Unified Buffer(UB));輸出是藍(lán)色的累加器(Accumulators(Acc))。黃色的激活(Activation)單元在 Acc 中執(zhí)行流向 UB 的非線性函數(shù)。
二、大規(guī)模片上內(nèi)存
TPU 在芯片上使用了高達(dá) 24MB 的局部內(nèi)存,6MB 的累加器內(nèi)存以及用于與主控處理器進(jìn)行對接的內(nèi)存,總共占芯片面積的 37%(圖中藍(lán)色部分)。
這表示 Google 充分意識到片外內(nèi)存訪問是 GPU 能效比低的罪魁禍?zhǔn)?,因此不惜成本在芯片上放了巨大的?nèi)存。相比之下,Nvidia 同時期的 K80 只有 8MB 的片上內(nèi)存,因此需要不斷地去訪問片外 DRAM。
TPU 芯片布局圖。藍(lán)色的數(shù)據(jù)緩存占芯片的 37%。黃色的計算是 30%。綠色的 I/O 是 10%。紅色的控制只有 2%。CPU 或 GPU 中的控制部分則要大很多(并且非常難以設(shè)計)。
三、低精度 (8-bit) 計算
TPU 的高性能還來源于對于低運算精度的容忍。
研究結(jié)果表明低精度運算帶來的算法準(zhǔn)確率損失很小,但是在硬件實現(xiàn)上卻可以帶來巨大的便利,包括功耗更低速度更快占芯片面積更小的運算單元,更小的內(nèi)存帶寬需求等。
這次公布的信息顯示,TPU 采用了 8-bit 的低精度運算。也就是說每一步操作 TPU 將會需要更少的晶體管。在晶體管總?cè)萘坎蛔兊那闆r下,每單位時間可以在這些晶體管上運行更多的操作,這樣就能夠以更快的速度通過使用更加復(fù)雜與強大的機(jī)器學(xué)習(xí)算法得到更加智能的結(jié)果。
在 Google 的測試中,使用 64 位浮點數(shù)學(xué)運算器的 18 核心運行在 2.3 GHz 的 Haswell XeonE5-2699 v3 處理器能夠處理每秒 1.3 TOPS 的運算,并提供 51GB / 秒的內(nèi)存帶寬;Haswell 芯片功耗為 145 瓦,其系統(tǒng)(擁有 256 GB 內(nèi)存)滿載時消耗 455 瓦特。相比之下,TPU 使用 8 位整數(shù)數(shù)學(xué)運算器,擁有 256GB 的主機(jī)內(nèi)存以及 32GB 的內(nèi)存,能夠?qū)崿F(xiàn) 34GB / 秒的內(nèi)存帶寬,處理速度高達(dá) 92 TOPS ,這比 Haswell 提升了 71 倍,此外,TPU 服務(wù)器的熱功率只有 384 瓦。
四、脈動式數(shù)據(jù)流
對于 GPU,從存儲器中取指令與數(shù)據(jù)將耗費大量的時間。TPU 甚至沒有取命令的動作,而是主處理器提供給它當(dāng)前的指令,而 TPU 根據(jù)目前的指令做相應(yīng)操作,這使得 TPU 能夠?qū)崿F(xiàn)更高的計算效率。
在矩陣乘法和卷積運算中,許多數(shù)據(jù)是可以復(fù)用的,同一個數(shù)據(jù)需要和許多不同的權(quán)重相乘并累加以獲得最后結(jié)果。因此,在不同的時刻,數(shù)據(jù)輸入中往往只有一兩個新數(shù)據(jù)需要從外面取,其他的數(shù)據(jù)只是上一個時刻數(shù)據(jù)的移位。
在這種情況下,把片上內(nèi)存的數(shù)據(jù)全部 Flush 再去取新的數(shù)據(jù)無疑是非常低效的。根據(jù)這個計算特性,TPU 加入了脈動式數(shù)據(jù)流的支持,每個時鐘周期數(shù)據(jù)移位,并取回一個新數(shù)據(jù)。這樣做可以最大化數(shù)據(jù)復(fù)用,并減小內(nèi)存訪問次數(shù),在降低內(nèi)存帶寬壓力的同時也減小了內(nèi)存訪問的能量消耗。
五、散熱功能強化
對于性能來說,限制處理器速度的最大兩個因素是發(fā)熱與邏輯門的延遲,其中發(fā)熱是限制速度最主要的因素。現(xiàn)在的處理器大部分使用的是 CMOS 技術(shù),每一個時鐘周期都會產(chǎn)生能量耗散,所以速度越快,熱量就越大。下面是一張 CPU 時鐘頻率與能量消耗的關(guān)系,可以看到,芯片能耗隨運算速度變化呈現(xiàn)指數(shù)級增長。
TPU 在降低功耗的同時,對于散熱能力也做了進(jìn)一步的優(yōu)化。從 TPU 的外觀圖可以看出,其中間突出一塊很大的金屬片,這便是為了可以很好地對 TPU 高速運算是產(chǎn)生大量的熱進(jìn)行耗散。
六、硬件、軟件持續(xù)優(yōu)化
谷歌認(rèn)為現(xiàn)在的 TPU 仍在硬件和軟件方面存在很大的優(yōu)化空間,比如假定用上了 NVIDIA K80 GPU 中的 GDDR5 內(nèi)存,那么 TPU 就可以發(fā)揮出更好的性能。
此外,谷歌工程師還為 TPU 開發(fā)了名為 CNN1 的軟件,其可以讓 TPU 的運行速度比普通 CPU 高出 70 多倍!
版權(quán)申明:本文由智慧思特大數(shù)據(jù)編輯整理,雷鋒網(wǎng)獲得授權(quán)轉(zhuǎn)載。
雷峰網(wǎng)版權(quán)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。