谷歌TPU叫板Nvidia GPU,誰才是人工智慧晶元的未來?

來源:內容來自數位時代 ,謝謝。

為了讓機器學習演算效率提高、因應更大量的運算需求,Google自行開發了專用的伺服器晶元「TPU」(Tensor Processing Unit),自2015年起在內部使用。去年五月,Google曾在I/O開發者大會提及TPU,今天首度公開更多細節及效能評估報告,發表在一篇論文中。

過去幾年來,處理機器學習演算較為經濟實惠的標準配備主要是像AMD和Nvidia等品牌的GPU。不過,Google從2006年就開始研究如何在數據中心使用GPU、FPGA與客制化特殊規格的ASIC(其實就是TPU)。

據Google表示,當時這種特殊硬體並沒有太大用處,就算是負荷較大的運算,只要利用數據中心原先多餘的硬體就夠了。不過到了2013年,情況改變,Google預期深度神經網路的使用會變得非常普遍,可能會使數據中心計算需求倍增,要是使用傳統CPU就會非常昂貴。因此,Google優先進行相關研發計畫,目標將性能提高至GPU的10倍以上。

Google開發的Tensor Processing Unit是針對自家的「TensorFlow」機器學習框架最佳化的晶元,主要用於機器學習演算的後半階段。以大量數據對神經網路進行訓練時,通常是在GPU加速的伺服器上進行。之後對新數據進行推測的階段,Google則開始使用TPU,處理效率更高。

據論文中Google對自家晶元的測試,TPU在執行Google常規的機器學習運算時,速度比現行標準的GPU/CPU組合(Intel Haswell處理器與Nvidia K80 GPU)平均快上15-30倍。考量數據中心的功耗,使用TPU的效能功耗比也高了30-80倍(將來使用更快的記憶體,或許還會更高)。

但正是這個GPU對你,讓Nvidia的創始人黃仁勛不爽了,他撰文表示:Nvidia P40 比TPU 速度快2 倍、頻寬是10 倍。

Nvidia認為GPU是人工智慧的更好選擇

他指出,以Google 為例。Google 在深度學習里突破性的工作引發全球關註:Google Now 語音互動系統令人吃驚的精確性、AlphaGo 在圍棋領域歷史性的勝利、Google 翻譯應用於100 種語言。

深度學習已經達到不可思議的效果。但是深度學習的方法,要求電腦在摩爾定律放緩的時代背景下,精確處理海量資料。深度學習是一種全新的計算模型,也需要一種全新計算架構的誕生。

一段時間以來,這種AI計算模型都是在Nvidia晶元上執行。2010年,研究員Dan Ciresan當時在瑞士Juergen Schmidhuber教授的AI實驗室工作,他發現NvidiaGPU晶元可用來訓練深度神經網路,比CPU的速度快50倍。一年之後,Schmidhuber教授的實驗室又使用GPU開發了世界上首個純深度神經網路,一舉贏得國際手寫辨識和電腦視覺比賽的冠軍。接著2012年,多倫多大學的碩士生Alex Krizhevsky使用了兩個GPU,贏得如今蜚聲國際的ImageNet影像辨識競賽。(Schmidhuber教授曾經寫過一篇文章,全面梳理了於GPU上執行的深度學習對於當代電腦視覺的影響。 )

全球AI 研究員都發現了,Nvidia為電腦圖形和超級計算應用設計的GPU 加速計算模型,是深度學習的理想之選。深度學習應用,比如3D 圖形、醫療成像、分子動力學、量子化學和氣象模擬等,都是一種線性代數演演算法,需要進行大規模並列張量或多維向量計算。誕生於2009 年的NvidiaKepler GPU 架構,雖然幫助喚醒了世界在深度學習中使用GPU 加速計算,但其誕生之初並非為深度學習量身訂做。

所以,我們必須開發出新一代GPU 架構,首先是Maxwell,接著是Pascal,這兩種架構都對深度學習進行特定最佳化。在Kepler Tesla K80 之後 4 年,基於Pascal 架構的Tesla P40 推理加速器誕生了,它的推理效能是前者的26 倍,遠遠超過摩爾定律的預期。

在這時期,Google 也設計了一款自訂化的加速器晶元,名為「張量處理單元」,即TPU。具體針對資料推理,於2015 年部署。

上周Google 團隊釋出了關於TPU 優越性的一些資訊,稱TPU 比K80 的推理效能高出13 倍。但是,Google並沒有拿TPU 與如今最新一代的Pascal P40 比較。

英偉達方面建立了如下圖表,量化K80、TPU 和P40 的效能,看看TPU 與如今Nvidia技術間的較量。

P40 在計算精度和吞吐量、片內儲存和儲存頻寬間達到良好平衡,不僅在訓練階段,也在推理階段達到前所未有的效能表現。對於訓練階段,P40 擁有10 倍於TPU 的頻寬,32 位浮點效能達到12個TFLOPS 。至於推理階段,P40 具高吞吐的8 位整數和高儲存頻寬。

雖然Google 和Nvidia選了不同的發展路徑,我們有一些共同關切的主題。具體包括:

AI 需要加速計算。在摩爾定律變慢的時代背景下,加速器滿足了深度學習大量資料處理需求。

張量處理處於深度學習訓練和推理效能的核心位置。

張量處理是一個重要的新工作負載,企業在建立現代資料中心的時候,要考慮這一問題。

加速張量處理可以顯著減少現代資料中心的建設成本。

究竟誰才是人工智慧晶元的未來?

如何比較TPU的效能呢?把TPU跟Intel的Haswell CPU及NVIDIA Tesla K80 GPU這兩款CPU與GPU的效能表現比較,數據顯示TPU的速度快他們15至30倍。

但是,NVIDIA Tesla K80 GPU是NVIDIA五年前的產品,而且Google雖說TPU能用在任何人工智慧的深度學習運算,然而,TPU不但沒對其他系統做最佳化,還設定只能做犧牲精確度的推理運算。

深度學習需要的大量運算訓練,還是需要GPU或是CPU來處理,所以Google最後還是說了,TPU需要搭配GPU或是CPU。

這次Google的說法,就好比告訴大家,我針對某種狀況特殊設計的東西,比別人的東西(NVIDIA Tesla K80 GPU)表現強15至30倍,但是,Google沒說的是,他把別人五年前的產品拿來比。

無怪乎黃仁勛立刻跳出來撰文,輔以數據說明,現在的主力產品P40比這顆TPU快達2倍,頻寬10倍。他的動作,其實是一個很不錯的公關回應:避免產品被誤解,而且是在NVIDIA現在領先業界最多的人工智慧運算晶元產品線上。

不過,也因為TPU是硬體特製,無法修改,才能做到最低耗能,這樣的晶元比起NVIDIA GPU P40自然省電很多。

TPU是專門針對TensorFlow最佳化所推出的晶元,我認為Google這個宣告主要是想告訴使用TensorFlow的開發者社群「我現在用的東西很不錯」,公關宣傳意味濃厚。再加上Google之前僱用李飛飛,並打算收購最大的資料科學家、機器學習開發者社群Kaggle,一連串動作,都在強化Google在人工智慧開發者社群的地位與認同。

其實,Google主打開發者社群,與NVIDIA主攻各種商用人工智慧(特別是無人車用的訓練)其實並不一樣,兩者各有所長。但是為了公關效果,這次雙方都出了招。

Google也強調,它不會對外販售TPU,僅供內部使用。如同《數位時代》2017年4月號所強調的,Google未來10年會強化雲端運算與人工智慧為主要策略方向。TPU,其實就是這個策略的展現。

TPU的運算效能不錯,也說明了原本專長CPU與次專長的GPU的Intel,發現自己在人工智慧落後NVIDIA後,為什麼決定改往人工智慧專用晶元方向上努力的最大原因,是為了能在人工智慧運算晶元戰場上突破現有的困境。

深度學習的訓練需要非常大量的資料,需要非常多的運算單元來做運算,不管是GPU、CPU或TPU,如何相互搭配,才能達到又快又省電的目的,會是接下來各大深度學習應用硬體架構方面的重點。從這次Google、NVIDIA及Intel在人工智慧運算晶元的態度與作法,可以預見,在物聯網前端產品晶元之外,這會是各大運算單元晶元廠的另一個戰場。


推薦閱讀:

2017最火兩話題1-人工智慧
銀行圈發生巨變,從未如此猛烈
為什麼要研究星際爭霸的AI?
阿法狗這樣的程序能否被人工智慧打敗?
AAAI和李飛飛等推出K12人工智慧教育項目,AI教育低齡化真的好嗎?

TAG:人工智慧 | 未來 | 智慧 | 谷歌 | 人工 |