谷歌開發(fā)TPU到底值不值?

責任編輯:editor006

作者:朱朋博

2017-04-24 16:01:47

摘自:doit網(wǎng)絡

2016年,英偉達推出了采用Pascal架構(gòu)的P4和P40,除了支持半精度的16位浮點運算外,還支持8位整數(shù)運算,這個跟谷歌的TPU是一樣的。

4月5日,谷歌的一篇博客提到TPU張量處理器, TPU最早是六年前開始出現(xiàn)的,隨著需求的增多,發(fā)現(xiàn)有些設備還是太貴了,隨著人工智能的發(fā)展,未來谷歌對人工智能的計算需求需要谷歌數(shù)據(jù)中心規(guī)模翻一番,規(guī)模翻倍不要緊,但不必要的成本壓力誰都不想承擔,為了解決這一問題,所以就有了TPU。

TPU是一種補充

張量處理器(TPU)的出現(xiàn)并不是為了取代做通用計算的CPU,或者是擅長圖形計算的GPU,而是作為一種補充。谷歌只是覺得GPU的通用性太高了,所以有了TPU,未來還會買很多CPU和GPU。

盡管如此,但由于谷歌TPU論文引起的反響太大,感應到威脅的英偉達很快做出的回應,英偉達回應說,GPU在機器學習的推理(inferencing)方面相對于TPU有一些優(yōu)勢,還能用于機器學習中神經(jīng)網(wǎng)絡的訓練。英偉達的GPU更通用一些,谷歌的TPU則比較專注于一個點。

英偉達回應對谷歌在論文中進行的對比的細節(jié)有些意見,黃仁勛表示GPU的通用性高一些, 先是肯定TPU在深度學習的張量處理領域有一些重合,隨后通過一些細節(jié)來論證GPU相對于TPU的優(yōu)勢,這也算是不大不小的撕逼吧。

谷歌說:TPU相對于CPU,GPU的性能優(yōu)勢

如今,谷歌的許多產(chǎn)品都用到了TPU,比如谷歌圖像搜索,谷歌照片,谷歌翻譯,還有AlpheGo。最引人關注是在談性能的部分,為了讓大家感受TPU性能的優(yōu)勢,拿來做對比的自然少不了CPU和GPU。

 

谷歌生產(chǎn)環(huán)境的AI負載就有許多神經(jīng)網(wǎng)絡推理(inferencing)的部分,跑這一負載的時候,TPU比GPU和CPU快15倍至30倍;TPU比傳統(tǒng)芯片能效更高,能達到30倍至80倍的提升;跑應用需要的代碼只有100到1500行,該代碼基于谷歌開源的機器學習框架TensorFlow。

與一顆18核的Haswell 至強E5-2699 v3或者一塊英偉達Kepler GK210B相比,TPU對谷歌TensorFlow框架支持的更好。

雖然Haswell至強也支持8位整數(shù)運算,64位雙精度和32位單精度浮點運算,但是在神經(jīng)網(wǎng)絡的環(huán)境下性能明顯下降,至強處理器在整數(shù)模式下的吞吐量并不高,遠不如TPU在浮點模式下的表現(xiàn)。

Kepler GK210B GPU不支持8位整數(shù)運算,只支持32位以及64位浮點模式,其在吞吐方面的表現(xiàn)與TPU對比也相形見絀:

 

上圖TOPS一欄,在TensorFlow框架運行谷歌的推理(inferencing)工作負載的時候,Haswell E5能跑出2.6 TOPS,K80能跑出2.8 TOPS,TPU能跑出92 TOPS,是前者的三十多倍。

英偉達:對比的產(chǎn)品根本沒有針對人工智能負載做優(yōu)化

一般來說基準測試都有一定說服力的,但這次測試,有人表示Keplers落后于最新的Pascal架構(gòu)CPU兩代,谷歌的這個對比有失公允。英偉達加速計算副總裁表示,Kepler是2009年推出的針對傳統(tǒng)HPC問題的GPU,K80設計的時候根本沒考慮深度學習的問題。

隨著GPU被用在機器學習領域,英偉達也在產(chǎn)品上不斷做優(yōu)化。2016年采用Pascal架構(gòu)的Tesla P40剛推出的時候,TPU在深度學習方面的性能表現(xiàn)是K80的20倍。

2016年,英偉達推出了采用Pascal架構(gòu)的P4和P40,除了支持半精度的16位浮點運算外,還支持8位整數(shù)運算,這個跟谷歌的TPU是一樣的。

P4基于GP104芯片,有2560顆CUDA處理器,在運行推理(inferencing)工作負載的時候理論峰值性能達21.8 TOPS,峰值功耗為75瓦。P40基于GP102芯片,有3840顆CUDA核心,運行推理(inferencing)工作負載時的理論峰值性能為47 TOPS,功耗為250瓦。

谷歌在論文提到P40可以有47 TOPS推理(inferencing)性能,但沒提到,99%的事務(transactions)平均響應時間控制在10毫秒,這一對于谷歌機器學習做推理(inferencing)負載時的重要參數(shù)。谷歌表示它的28納米工藝TPU可以以700 GHz運行,主存儲器內(nèi)存從DDR換成了GPU常用的GDDR5,所有這一切只額外增加10瓦功耗。

英偉達新品的測試表現(xiàn)

可能因為不滿英偉達對谷歌對TPU和GPU的對比結(jié)果,英偉達用開源的GoogLeNet卷積神經(jīng)網(wǎng)絡應用程序進行了一些測試,這改善了英偉達在推理(inferencing)工作負載中的表現(xiàn):

 

圖表中有一個有趣的細節(jié),英偉達在表格中只顯示了數(shù)MB的on-chip內(nèi)存,而沒顯示數(shù)GB的on-card內(nèi)存。

P40的GP102芯片有24 GB的GDDR5內(nèi)存,K80的GK210B芯片有都12 GB的GDDR5內(nèi)存,以及8 MB的on-chip內(nèi)存。TPU有28 MB on-chip內(nèi)存以及32 GB DDR3內(nèi)存。GB的內(nèi)存是用來存儲深度學習模型的地方。

英偉達測出TPU最高性能是90 TOPS,谷歌測出的是92個TOPS,谷歌測出P40顯卡在8位整數(shù)運算時候的最高性能為48 TOPS,英偉達測出的是47 TOPS。

運行GoogLeNet推理(inferencing)工作負載,一個重要的數(shù)據(jù)是,99%的事務(transactions)平均響應時間都小于10毫秒,TPU每秒可以處理280,000個推理(IPS),Pascal P40可以處理560,000。

谷歌指出,單張K80卡只能處理36,465個推理(IPS),只有TPU的1/13,10個毫秒只能完成1%事務(transactions)。我們不知道Tesla P4怎么樣,與谷歌的TPU在同一類型的熱封裝中理論上說應該更強。因為P40與Tesla P4在8位整數(shù)浮點運算時候的性能旗鼓相當,所以我們就假設P4與P40在跑GoogLeNet時候的性能一樣。

Tesla P40每秒可以處理259,750 推理(IPS),因為與谷歌TPU表現(xiàn)基本相同而做推論,也能將處理99%事務(transactions)的平均響應時間控制在10毫秒以內(nèi)。如果谷歌TPU的內(nèi)存轉(zhuǎn)向GDDR5內(nèi)存,無疑會增加成本,但是每秒可以處理的推理(IPS)能增加到840,000。私下里猜測,谷歌可能已經(jīng)這么做了。

谷歌這么開發(fā)值不值?

第一個要問的問題是,谷歌為開發(fā)和制造TPU付出了多大成本。當然因為不用依靠CPU來做推理(inferencing)所以能節(jié)省了一大截成本。算一算成本,如果一塊P4是2100美金,P40是4700美金,成本都比較高,所以谷歌必然考慮做自己的芯片,靠自研芯片節(jié)省的電費帶來經(jīng)濟性,總體成本會低下來。

如果今年五月份的GPU大會上英偉達可能會發(fā)布新的GPU Volta,如果新的GPU能讓機器學習推理的能力翻倍的話,后半年大范圍供貨后將成為很多HPC和AI用戶的選擇,此時英偉達的V4和V40就跟采用GDDR5的TPU站到同一陣營了,而且采用更高級的20納米制程。

谷歌有錢,想買啥就能買啥,當想買的東西根本就沒有的時候谷歌就會自己做,遵循的唯一原則就是降低TCO。

英偉達強調(diào),GPU貢獻性能的單位成本遠低于TPU,為了證明在開發(fā)和部署環(huán)節(jié)的成本優(yōu)勢,英偉達還表示,市場上為AI開發(fā)的定制化的ASIC無一例外都非常昂貴,并且富有挑戰(zhàn)性。英偉達明顯加快了產(chǎn)品更新的節(jié)奏,因為創(chuàng)新的節(jié)奏太快了。

真正值得注意的問題,谷歌如何在鎖定狀態(tài)下調(diào)整其TensorFlow框架及TPU,從而擠出更多的性能。如果未來不能超越摩爾定律,那么它可能轉(zhuǎn)向GPU,或者收購一家有趣的創(chuàng)業(yè)公司,這樣做的話不會感到意外。如果谷歌未來展示更多TPU和TensorFlow技巧,我們也不用感到意外。

鏈接已復制,快去分享吧

企業(yè)網(wǎng)版權(quán)所有?2010-2024 京ICP備09108050號-6京公網(wǎng)安備 11010502049343號