谷歌所謂黑科技TPU是老技術換新裝,中國30年前已經實用化

Google GPU 人工智能 機器學習 鐵流 2017-05-30

在柯潔連續兩盤負於阿法狗之後,一些文章聲稱“谷歌自主處理器TPU太猛:AlphaGo只用一顆便完虐人類”、“一個TPU相當於15-30個GPU”,言下之意就是TPU性能極強。TPU雖然性能先進,有其長處,但也有短板,而且就性能來說,“一個TPU相當於15-30個GPU”的說法也不客觀。

谷歌所謂黑科技TPU是老技術換新裝,中國30年前已經實用化

TPU

TPU並非技術革新

TPU並非技術革新,其架構也早已有之,其實是對經典技術的致敬。

人工智能是讓機器模擬人的思維方式,使電腦能以類似人腦的方式進行思考、識別語音、識別圖像、理解文章含義。而要實現這一點,硬件的性能是一大瓶頸——畢竟人腦有千億神經元,百萬億突觸構成的複雜網絡,現在主流的神經網絡算法如(AlexNet和VGG)也有百萬、千萬的神經元和突觸,而現有芯片和這個還有多個數量級的差距。

谷歌所謂黑科技TPU是老技術換新裝,中國30年前已經實用化

正是對硬件性能的需求,全球眾多科技公司紛紛開發可用於人工智能的硬件——Intel推出了用於深度學習的Xeon Phi家族新成員Knights Mill。英偉達推出了DGX-1 系統和用於深度學習的Tesla V100。阿爾特拉推出了用於人工智能的FPGA。CEVA公司、Cadence公司、Synopsys公司推出了XM4處理器、Tensilica Vision P5處理器、EV處理器等產品,也就是選擇用傳統SIMD/DSP架構適配神經網絡。中科院計算所開發了ASIC芯片寒武紀。

谷歌所謂黑科技TPU是老技術換新裝,中國30年前已經實用化

谷歌所謂黑科技TPU是老技術換新裝,中國30年前已經實用化

正是因為人工智能是一個新興市場,所以在處理器上出現百花齊放的狀況。

而谷歌的TPU其實也是一款ASIC。而且根據谷歌披露的資料,TPU採用了脈動陣列機的架構。脈動陣列架構其實是非常老的技術,同時也是非常經典的技術。早在上世紀80年代初,中科院計算所的夏培肅院士和李國傑院士就曾將脈動陣列架構用於石油勘探,計算所曾經研發過的石油勘探專用機就是採用了脈動陣列架構。

谷歌所謂黑科技TPU是老技術換新裝,中國30年前已經實用化

夏培肅院士

谷歌所謂黑科技TPU是老技術換新裝,中國30年前已經實用化

李國傑院士

因此,TPU在架構方面並沒有太多新意,在其架構公開之前,在學術界和工業界其實已經有大量類似的工作,比如MIT於2016年前後發表的Eyeriss也是類似的架構,將傳統脈動陣列機的結構用於處理深度學習並非什麼新鮮事。

谷歌做的事情是將經典的架構進行完善,並將其用在阿法狗上。誠然,谷歌做出的成果不容抹殺,但也不宜過度吹捧。

谷歌所謂黑科技TPU是老技術換新裝,中國30年前已經實用化

TPU上的內部結構

一個TPU相當於15-30個GPU並不客觀

為了在人工智能這個新興市場跑馬圈地,科技公司在宣傳上取巧已經是常態。在相關論文中,就有TPU相比類似的服務器級Intel Haswell CPU和NVIDIA K80 GPU,TPU在AI運算測試中的平均速度要快15-30倍,TPU的每瓦性能要比普通的GPU高出25-80倍的表述。

谷歌所謂黑科技TPU是老技術換新裝,中國30年前已經實用化

但其實這是進行選擇性比較的結果——谷歌的TPU和Intel CPU、英偉達GPU的對比中,選擇了相對老舊的Intel Haswell和NVIDIA K80 GPU來做對比,而不是Intel和英偉達最新的產品做對比。

谷歌所謂黑科技TPU是老技術換新裝,中國30年前已經實用化

對此,英偉達還專門反駁過谷歌的宣傳,指出谷歌是用TPU對比英偉達5年前的GPU——Tesla K80採用的是Kepler架構,發佈於2012年,谷歌其實是以TPU對比2012年的Tesla K80,然後得出TPU性能是GPU的13倍的結論。而且英偉達還拿出了2016年的Tesla P40來對比TPU,並指出P40加速卡的加速性能達到了TPU的2倍,帶寬則是TPU的10倍,還支持TPU沒有的FP32運算。

谷歌所謂黑科技TPU是老技術換新裝,中國30年前已經實用化

在不久前,谷歌發佈了第二代TPU,有媒體稱,第二代TPU的浮點運算性能可以達到180TFlops,性能優於英偉達Tesla V100的120TFlops。但這個宣傳也是非常藝術的,因為Intel的Knights Mill的雙精浮點性能為3TFlops,阿爾特拉針對深度學習開發的FPGA雙精浮點性能為1.5TFlops,Tesla V100雙精浮點運算性能為7.5TFlops。宣傳第二代TPU達到180TFlops的性能,很容易讓人產生TPU具有壓倒性優勢的嫌疑。

谷歌所謂黑科技TPU是老技術換新裝,中國30年前已經實用化

第二代TPU

必須說明的是180TFlops並非是之前介紹Knights Mill、Tesla V100時的雙精浮點性能。比如英偉達官方公佈Tesla V100的單精度浮點性能15 TFlops,雙精浮點運算性能為7.5TFlops,雙精度浮點性能對科學計算意義較大,單精度和雙精度浮點性在深度學習中有意義,半精度的話,要看針對的具體神經網絡。由於目前並不瞭解二代TPU的具體細節,嚴謹來說並不能推測宣傳中第二代TPU 180TFlops到底是什麼,但十有八九不是單精度、雙精度和半精度。在報道中之所以用180TFlops這個數值,這恐怕就是宣傳的藝術吧。

TPU的優點和不足

TPU的開發成本和風險是相對偏高的。TPU是ASIC,ASIC的不足TPU兼有之。ASIC是按照特定需求定製化的特殊芯片,往往在特定功能上進行專門強化以更好服務於特定應用。不過,ASIC專用芯片的屬性,使ASIC的開發成本比較高,開發週期也比較長,而如果無法實現特定應用的規模化推廣,前期的研發投入很可能會打水漂——因為ASIC的專用屬性,這種芯片在其他方面將很難有用武之地。

谷歌所謂黑科技TPU是老技術換新裝,中國30年前已經實用化

正是因此,在局勢不明朗的情況下,企業更加傾向於通用性較好的CPU、GPU,以及更加靈活的FPGA。谷歌之所以選擇ASIC,主要是因為谷歌本身有很多深度學習方面的應用,圖像搜索、谷歌翻譯等服務都需要大量硬件的支持,依靠自產自銷的方式就可以實現TPU的規模化應用,這樣就可以平攤TPU相對較高的研發成本。

谷歌所謂黑科技TPU是老技術換新裝,中國30年前已經實用化

第一代TPU在一些情形下存在效率偏低的問題。從谷歌公佈的資料看,在實際運行中,TPU雖然做卷積神經網路(CNN)時總體效果還是不錯,但面對退化情形的卷積上也會遇到困難。做其他類型的神經網絡運算,效率也不是那麼高,比如在語音識別和自然語言理解中常用的長短期記憶網絡(LSTM)上面,TPU只有4%左右的效率。誠然這是第一代TPU的情況,對於第二代TPU到底怎麼樣,還有待谷歌進一步披露。

谷歌所謂黑科技TPU是老技術換新裝,中國30年前已經實用化

TPU的支持的編程模型少於GPU。谷歌的TPU處理器針對TensorFlow,因此無法像英偉達的Tesla V100等GPU可額外支持Caffe、Cognitive Toolkit等編程架構。相比之下,寒武紀雖然同樣是ASIC,但沒有選擇經典的脈動陣列架構,而是選擇了更加激進的技術路線,而且寒武紀支持常用的Caffe和TensorFlow等編程架構,在應用彈性上略勝一籌。

不外賣是因為缺乏市場競爭力

谷歌TPU不外賣只是因為這種芯片很難賣出去。不外賣的做法並非是因為TPU太先進,怕出售後技術外洩,因而藏著掖著。而是因為TPU的特殊性使其缺乏市場競爭力。這裡的缺乏市場競爭力,並非指其在執行特定任務時性能不夠好,而是因為應用面過於狹窄,加上成本偏高所導致的。

谷歌所謂黑科技TPU是老技術換新裝,中國30年前已經實用化

因為TPU的通用性不是很好,而且應用場景也相對單一,加上沒有規模化部署的情況下,成本是相對偏高的,如果是小公司自己選擇硬件的話,會更加青睞於GPU。因為GPU的應用範圍更廣,而且這些小公司還可以根據自己的實際需求,調整任務的安排。不過,考慮到偏高的搭建成本和維護成本,小公司更可能直接從谷歌等公司那裡購買雲服務,而非購買TPU或GPU。

谷歌所謂黑科技TPU是老技術換新裝,中國30年前已經實用化

而真正可能會採購TPU的只能是百度、阿里、臉書這一類大公司,因為這些大公司有比較大的需求,所以會考慮採購TPU。不過,對於百度、阿里、臉書這一類大公司來說,採購TPU等於把自己命脈交出去。大公司會傾向於自己開發專用硬件,或是採購國內不存在競爭關係的單位開發的硬件,比如百度就和申威有接觸,嘗試使用申威26010。

谷歌所謂黑科技TPU是老技術換新裝,中國30年前已經實用化

正是因此,TPU對於小公司而言不如GPU好用,對於大公司而言完全可以自己開發,或者聯合一些單位開發針對深度學習的硬件,TPU不外賣的根源就在於此了。

相關推薦

推薦中...