如何看待谷歌公開tensorflow專用處理器TPU?

我們找到了一些資料,希望能夠解答為什么TPU運(yùn)算速度比普通的GPU、CPU組合快15-30倍。同時(shí),我們認(rèn)為Google在TPU研發(fā)上的這些創(chuàng)新極有可能將成為Inter、AMD跟進(jìn)同類硬件開發(fā)的標(biāo)桿,并最終成為一種趨勢(shì)。


一、針對(duì)深度學(xué)習(xí)的定制化研發(fā)

TPU是谷歌專門為加速深層神經(jīng)網(wǎng)絡(luò)運(yùn)算能力而研發(fā)的一款芯片,其實(shí)也是一款A(yù)SIC。


ASIC,指依照產(chǎn)品需求不同而定制化的特殊規(guī)格集成電路,由特定使用者要求和特定電子系統(tǒng)的需要而設(shè)計(jì)、制造。一般來說,ASIC在特定功能上進(jìn)行了專項(xiàng)強(qiáng)化,可以根據(jù)需要進(jìn)行復(fù)雜的設(shè)計(jì),但相對(duì)來說,實(shí)現(xiàn)更高處理速度和更低能耗。相對(duì)應(yīng)的,ASIC的生產(chǎn)成本也非常高。


一般公司很難承擔(dān)為深度學(xué)習(xí)開發(fā)專門處理器ASIC芯片的成本和風(fēng)險(xiǎn)。首先為了性能必須使用最好的半導(dǎo)體制造工藝,而現(xiàn)在用最新的工藝制造芯片一次性成本就要幾百萬美元,非常貴。就算有錢,還需要拉一支隊(duì)伍從頭開始設(shè)計(jì),設(shè)計(jì)時(shí)間往往要到一年以上,time to market時(shí)間太長(zhǎng),風(fēng)險(xiǎn)很大。如果無法實(shí)現(xiàn)規(guī)?;膽?yīng)用,就算開發(fā)成功也缺少實(shí)際使用價(jià)值。所以,企業(yè)一般傾向于采用通用性的芯片(如CPU、GPU),或者半定制化芯片(FPGA)。


谷歌之所以敢自己做定制化研發(fā),一方面自然是有錢任性,另一方面也由于谷歌提供的很多服務(wù),包括谷歌圖像搜索(Google ImageSearch)、谷歌照片(Google Photo)、谷歌云視覺 API(Google Cloud Vision API)、谷歌翻譯等產(chǎn)品和服務(wù)都需要用到深度神經(jīng)網(wǎng)絡(luò)?;诠雀枳陨睚嫶蟮捏w量,開發(fā)一種專門的芯片開始具備規(guī)?;瘧?yīng)用(大量分?jǐn)傃邪l(fā)成本)的可能。

假如存在這樣一個(gè)場(chǎng)景,其中人們?cè)?1 天中使用谷歌語音進(jìn)行 3 分鐘搜索,并且我們要在正使用的處理器中為語音識(shí)別系統(tǒng)運(yùn)行深度神經(jīng)網(wǎng)絡(luò),那么我們就不得不翻倍谷歌數(shù)據(jù)中心的數(shù)量。


我們的負(fù)載是用高級(jí)的 TensorFlow 框架編寫的,并是用了生產(chǎn)級(jí)的神經(jīng)網(wǎng)絡(luò)應(yīng)用(多層感知器、卷積神經(jīng)網(wǎng)絡(luò)和 LSTM),這些應(yīng)用占到了我們的數(shù)據(jù)中心的神經(jīng)網(wǎng)絡(luò)推理計(jì)算需求的 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)用普及程度。?


相對(duì)于 CPU 和 GPU 的隨時(shí)間變化的優(yōu)化方法(高速緩存、無序執(zhí)行、多線程、多處理、預(yù)取……),這種 TPU 的確定性的執(zhí)行模型(deterministic execution model)能更好地匹配我們的神經(jīng)網(wǎng)絡(luò)應(yīng)用的 99% 的響應(yīng)時(shí)間需求,因?yàn)?CPU 和 GPU 更多的是幫助對(duì)吞吐量(throughout)進(jìn)行平均,而非確保延遲性能。這些特性的缺失有助于解釋為什么盡管 TPU 有極大的 MAC 和大內(nèi)存,但卻相對(duì)小和低功耗。

TPU 各模塊的框圖。主要計(jì)算部分是右上方的黃色矩陣乘法單元。其輸入是藍(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的局部?jī)?nèi)存,6MB的累加器內(nèi)存以及用于與主控處理器進(jìn)行對(duì)接的內(nèi)存,總共占芯片面積的37%(圖中藍(lán)色部分)。


這表示Google充分意識(shí)到片外內(nèi)存訪問是GPU能效比低的罪魁禍?zhǔn)?,因此不惜成本在芯片上放了巨大的?nèi)存。相比之下,Nvidia同時(shí)期的K80只有8MB的片上內(nèi)存,因此需要不斷地去訪問片外DRAM。?

TPU 芯片布局圖。藍(lán)色的數(shù)據(jù)緩存占芯片的 37%。黃色的計(jì)算是 30%。綠色的I/O 是 10%。紅色的控制只有 2%。CPU 或 GPU 中的控制部分則要大很多(并且非常難以設(shè)計(jì))。


三、低精度(8-bit)計(jì)算

TPU的高性能還來源于對(duì)于低運(yùn)算精度的容忍。

研究結(jié)果表明低精度運(yùn)算帶來的算法準(zhǔn)確率損失很小,但是在硬件實(shí)現(xiàn)上卻可以帶來巨大的便利,包括功耗更低速度更快占芯片面積更小的運(yùn)算單元,更小的內(nèi)存帶寬需求等。


這次公布的信息顯示,TPU采用了8-bit的低精度運(yùn)算。也就是說每一步操作TPU將會(huì)需要更少的晶體管。在晶體管總?cè)萘坎蛔兊那闆r下,每單位時(shí)間可以在這些晶體管上運(yùn)行更多的操作,這樣就能夠以更快的速度通過使用更加復(fù)雜與強(qiáng)大的機(jī)器學(xué)習(xí)算法得到更加智能的結(jié)果。


在Google的測(cè)試中,使用64位浮點(diǎn)數(shù)學(xué)運(yùn)算器的18核心運(yùn)行在2.3 GHz的Haswell XeonE5-2699 v3處理器能夠處理每秒1.3 TOPS的運(yùn)算,并提供51GB/秒的內(nèi)存帶寬;Haswell芯片功耗為145瓦,其系統(tǒng)(擁有256 GB內(nèi)存)滿載時(shí)消耗455瓦特。相比之下,TPU使用8位整數(shù)數(shù)學(xué)運(yùn)算器,擁有256GB的主機(jī)內(nèi)存以及32GB的內(nèi)存,能夠?qū)崿F(xiàn)34GB/秒的內(nèi)存帶寬,處理速度高達(dá)92 TOPS ,這比Haswell提升了71倍,此外,TPU服務(wù)器的熱功率只有384瓦。


四、脈動(dòng)式數(shù)據(jù)流

對(duì)于GPU,從存儲(chǔ)器中取指令與數(shù)據(jù)將耗費(fèi)大量的時(shí)間。TPU甚至沒有取命令的動(dòng)作,而是主處理器提供給它當(dāng)前的指令,而TPU根據(jù)目前的指令做相應(yīng)操作,這使得TPU能夠?qū)崿F(xiàn)更高的計(jì)算效率。


在矩陣乘法和卷積運(yùn)算中,許多數(shù)據(jù)是可以復(fù)用的,同一個(gè)數(shù)據(jù)需要和許多不同的權(quán)重相乘并累加以獲得最后結(jié)果。因此,在不同的時(shí)刻,數(shù)據(jù)輸入中往往只有一兩個(gè)新數(shù)據(jù)需要從外面取,其他的數(shù)據(jù)只是上一個(gè)時(shí)刻數(shù)據(jù)的移位。


在這種情況下,把片上內(nèi)存的數(shù)據(jù)全部Flush再去取新的數(shù)據(jù)無疑是非常低效的。根據(jù)這個(gè)計(jì)算特性,TPU加入了脈動(dòng)式數(shù)據(jù)流的支持,每個(gè)時(shí)鐘周期數(shù)據(jù)移位,并取回一個(gè)新數(shù)據(jù)。這樣做可以最大化數(shù)據(jù)復(fù)用,并減小內(nèi)存訪問次數(shù),在降低內(nèi)存帶寬壓力的同時(shí)也減小了內(nèi)存訪問的能量消耗。



五、散熱功能強(qiáng)化

對(duì)于性能來說,限制處理器速度的最大兩個(gè)因素是發(fā)熱與邏輯門的延遲,其中發(fā)熱是限制速度最主要的因素?,F(xiàn)在的處理器大部分使用的是CMOS技術(shù),每一個(gè)時(shí)鐘周期都會(huì)產(chǎn)生能量耗散,所以速度越快,熱量就越大。下面是一張CPU時(shí)鐘頻率與能量消耗的關(guān)系,可以看到,芯片能耗隨運(yùn)算速度變化呈現(xiàn)指數(shù)級(jí)增長(zhǎng)。

TPU在降低功耗的同時(shí),對(duì)于散熱能力也做了進(jìn)一步的優(yōu)化。從TPU的外觀圖可以看出,其中間突出一塊很大的金屬片,這便是為了可以很好地對(duì)TPU高速運(yùn)算是產(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的運(yùn)行速度比普通CPU高出70多倍!



版權(quán)申明:本文由智慧思特編輯整理,如需轉(zhuǎn)載,可申請(qǐng)授權(quán)。部分圖片來自網(wǎng)絡(luò),侵刪。文章內(nèi)容僅為作者個(gè)人觀點(diǎn),不代表公司立場(chǎng)。


》》》更多精彩文章

·?智慧思特與騰訊達(dá)成合作,共同推進(jìn)智慧城市建設(shè)

·?微軟、百度兩大人工智能首次對(duì)話曝光,亮瞎你雙眼!

·?戰(zhàn)無不勝的人工智能被曝存在漏洞

·?23439個(gè)菜譜,數(shù)據(jù)分析師這樣學(xué)做飯??

·?厲害了word哥,大數(shù)據(jù)扒出來重慶有9640家火鍋??

·?大數(shù)據(jù)分析:藍(lán)瘦香菇突然這么火,炒作?炒作!?

·?大數(shù)據(jù)分析:中國(guó)人都喜歡這樣設(shè)密碼,你呢??

·?零基礎(chǔ)入門,資深吃貨帶你搞懂大數(shù)據(jù)?

·?假如中國(guó)代替英國(guó)進(jìn)行脫歐公投,結(jié)果會(huì)...?

·?驚!機(jī)器學(xué)習(xí)終結(jié)紅學(xué)研究百年?duì)幎耍?/span>?

·?人臉識(shí)別可以主動(dòng)防御嗎?能,但方法略Low

·?這項(xiàng)新技術(shù),為人工智能和外星人交流提供了可能


閱讀原文:http://mp.weixin.qq.com/s?__biz=MzI4MTA4ODQ0MQ==&mid=2650362150&idx=1&sn=cba67f5e17f99f05fb34be59ac80dc51&scene=0#wechat_redirect
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 老公駕照下來了,想買臺(tái)轎車。就想起前同事小戰(zhàn)辭職后去了省城4S店工作,聽說發(fā)展的還挺好。于是上微信找他的名字竟然怎...
    千帆過盡z閱讀 215評(píng)論 0 0
  • 一、 地球第一頂尖錢王畢生的追求,就是搞清楚自己到底有多少錢?一百條街?一百座城?還是一百個(gè)國(guó)?等他算好,也許要到...
    奇八閱讀 273評(píng)論 0 1
  • 二八法則和人脈,今天學(xué)習(xí)了兩遍好好學(xué)習(xí)之二八法則,第一遍,看到的是弱關(guān)系的管理,第二遍發(fā)覺,人脈的發(fā)展重要的而是給...
    咸魚也要有夢(mèng)想閱讀 271評(píng)論 0 0
  • (1)關(guān)閉Xcode,打開終端; (2)打開你的項(xiàng)目,在終端中輸入‘cd’ 加空格然后吧上圖中你自己的文件夾拖到終...
    京哥閱讀 174評(píng)論 0 0
  • 2015年7月29日,我決定開始寫東西了。目前以簡(jiǎn)書陳榆 - 簡(jiǎn)書和博客夏至_新浪博客作為平臺(tái)。 這本是一件微...
    會(huì)飛的魚19閱讀 289評(píng)論 0 1

友情鏈接更多精彩內(nèi)容