谷歌最強晶元升級,二代TPU是深度學習的未來?|半導體行業觀察

來源:由半導體行業觀察翻譯整理自thenextplatform ,謝謝。

在Google I/O 2016的主題演講進入尾聲時,谷歌的CEO皮采提到了一項他們這段時間在AI和機器學習上取得的成果,一款叫做Tensor Processing Unit(張量處理單元)的處理器,簡稱TPU。在這個月看來,第一代的TPU處理器已經過時。

在今天凌晨舉行的谷歌I/O 2017大會上,谷歌除了宣傳了安卓8.0之外,更為重要的是著重談到了人工智慧,於是第二代TPU也就應運而生。TPU是谷歌自主研發的一種轉為AI運算服務的高性能處理器,其第一代產品已經在AlphaGo這樣的人工智慧當中使用,主攻運算性能。

第二代TPU相比較於初代主要是加深了人工智慧在學習和推理方面的能力,至於性能的話,全新的谷歌TPU可以達到180TFLOPs的浮點性能,和傳統的GPU相比提升15倍,更是CPU浮點性能的30倍。

另外谷歌還推出了一款叫做TPU pod的運算陣列,最多可以包含64顆二代TPU,也就是說浮點性能可以達到驚人的11.5PFLOPS。

從名字上我們可以看出,TPU的靈感來源於Google開源深度學習框架TensorFlow,所以目前TPU還是只在Google內部使用的一種晶元。

TPU 誕生

2011年,Google 意識到他們遇到了問題。他們開始認真考慮使用深度學習網路了,這些網路運算需求高,令他們的計算資源變得緊張。Google 做了一筆計算,如果每位用戶每天使用3分鐘他們提供的基於深度學習語音識別模型的語音搜索服務,他們就必須把現有的數據中心擴大兩倍。他們需要更強大、更高效的處理晶元。

他們需要什麼樣的晶元呢?中央處理器(CPU)能夠非常高效地處理各種計算任務。但 CPU 的局限是一次只能處理相對來說很少量的任務。另一方面,圖像處理單元(GPU) 在執行單個任務時效率較低,而且所能處理的任務範圍更小。不過,GPU 的強大之處在於它們能夠同時執行許多任務。例如,如果你需要乘3個浮點數,CPU 會強過 GPU;但如果你需要做100萬次3個浮點數的乘法,那麼 GPU 會碾壓 CPU。

GPU 是理想的深度學習晶元,因為複雜的深度學習網路需要同時進行數百萬次計算。Google 使用 Nvidia GPU,但這還不夠,他們想要更快的速度。他們需要更高效的晶元。單個 GPU 耗能不會很大,但是如果 Google 的數百萬台伺服器日夜不停地運行,那麼耗能會變成一個嚴重問題。

谷歌決定自己造更高效的晶元。

2016年5月,谷歌在I/O大會上首次公布了TPU(張量處理單元),並且稱這款晶元已經在谷歌數據中心使用了一年之久,李世石大戰 AlphaGo 時,TPU 也在應用之中,並且谷歌將 TPU 稱之為 AlphaGo 擊敗李世石的「秘密武器」。

第一代TPU內部架構

該圖顯示了TPU上的內部結構,除了外掛的DDR3內存,左側是主機界面。指令從主機發送到隊列中(沒有循環)。這些激活控制邏輯可以根據指令多次運行相同的指令。

TPU並非一款複雜的硬體,它看起來像是雷達應用的信號處理引擎,而不是標準的X86衍生架構。Jouppi說,儘管它有眾多的矩陣乘法單元,但是它GPU更精於浮點單元的協處理。另外,需要注意的是,TPU沒有任何存儲的程序,它可以直接從主機發送指令。

TPU上的DRAM作為一個單元並行運行,因為需要獲取更多的權重以饋送到矩陣乘法單元(算下來,吞吐量達到了64,000)。Jouppi並沒有提到是他們是如何縮放(systolic)數據流的,但他表示,使用主機軟體加速器都將成為瓶頸。

256×256陣列縮放數據流引擎,經過矩陣乘法積累後實現非線性輸出

從第二張圖片可以看出,TPU有兩個內存單元,以及一個用於模型中參數的外部DDR3 DRAM。參數進來後,可從頂部載入到矩陣乘法單元中。同時,可以從左邊載入激活(或從「神經元」輸出)。那些以收縮的方式進入矩陣單元以產生矩陣乘法,它可以在每個周期中進行64,000次累加。

毋庸置疑,谷歌可能使用了一些新的技巧和技術來加快TPU的性能和效率。例如,使用高帶寬內存或混合3D內存。然而,谷歌的問題在於保持分散式硬體的一致性。

能夠進行數據 推理的第二代TPU

第一代的TPU只能用於深度學習的第一階段,而新版則能讓神經網路對數據做出推論。谷歌大腦研究團隊主管Jeff Dean表示:「我預計我們將更多的使用這些TPU來進行人工智慧培訓,讓我們的實驗周期變得更加快速。」

「在設計第一代TPU產品的時候,我們已經建立了一個相對完善和出色的研發團隊進行晶元的設計研發,這些研發人員也基本上都參與到了第二代TPU的研發工程中去。從研發的角度來看,第二代TPU相對於第一代來說,主要是從整體系統的角度,提升單晶元的性能,這比從無到有的設計第一代TPU晶元來說要簡單許多。所以我們才能有更多的精力去思考如何提升晶元的性能,如何將晶元更好的整合到系統中去,使晶元發揮更大的作用。」Dean在演講中表示。

未來,我們將繼續跟進谷歌的進度,以進一步了解這一網路架構。但是在此之前,我們應當了解新一代TPU的架構、性能以及工作方式,明白TPU是如何進行超高性能計算的。在此次發布會上,谷歌並沒有展示新一代TPU的晶元樣片或者是更加詳細的技術規格,但是我們依舊能夠從目前所知的信息中對新一代TPU做出一些推測。

從此次公布的TPU圖片來看,第二代TPU看上去有點像Cray XT或者是XC開發板。從圖片上,我們不難發現,相互連接的幾個晶元被焊接到了開發板上,同時保持了晶元之間以及晶元與外部的連接功能。整個板子上共有四個TPU晶元,正如我們之前所說,每一個單獨的晶元都可以達到180TFLOPs的浮點性能。

在開發板的左右兩側各有四個對外的介面,但是在板子的左側額外增加了兩個介面,這一形式使得整個板子看上去略顯突兀。。如果未來每一個TPU晶元都能夠直接連接到存儲器上,就如同AMD即將推出的「Vega」處理器可以直接連接GPU一樣,這一布局就顯得非常有趣。左側多出的這兩個介面在未來可以允許TPU晶元直接連接存儲器,或者是直接連接到上行的高速網路上以進行更加複雜的運算。

以上這些都是我們基於圖片的猜測,除非谷歌能夠透露更多的晶元信息。每一個TPU晶元都有兩個介面可以與外部的設備進行連接,左側有兩個額外的介面對外開發,可以允許開發者在此基礎上設計更多的功能,添加更多的擴展,無論是連接本地存儲設備還是連接網路,這些功能在理論上都是可行的。(實現這些功能,谷歌只需要在這些介面之間建立相對鬆散可行的內存共享協議即可。)

下圖展示了多個TPU板一種可能的連接形式,谷歌表示,這一模型可以實現高達11.5千萬億次的機器學習計算能力。

這一結果是如何得出的呢。上面這種連接方式,從外形上來看,非常像開放的計算機架構,或者是其他的一些東西。縱向上來看,疊加了8個TPU板,橫向上看,並列了4個TPU板。目前我們無法斷定每一個開發板都是完整的TPU板或者是半個開發板,我們只能看到板子的一側有6個介面,另一側有2個介面。

值得注意的是,板子的中間採用了4個介面,而左右兩側採用了2個介面,並且在左右兩側也沒有見到與TPU開發板類似的外殼。對此,一個比較合理的解釋就是,左右兩側連接的是本地存儲器介面,而不是TPU晶元介面。

即便如此,我們依舊能看到至少32個TPU二代母板在運行,這也意味著,有128個TPU晶元在同時運行。經過粗略的計算,整套系統的計算能力大概在11.5千萬億次。

舉個例子來說,如果這一運算能力在未來能夠運用到商業領域,谷歌現在進行的大規模翻譯工作所採用的32個目前最先進的GPU,在未來就可以縮減為4個TPU板,並能夠極大的縮減翻譯所需要的時間。

值得注意的是,上文所提到的TPU晶元不僅僅適用於浮點運算,也同樣適用於高性能計算。

TPU的訓練與學習

與第一代TPU相比,第二代TPU除了提高了計算能力之外,增加的最大的功能就是數據推理能力,不過這一推理模型必須先在GPU上進行訓練才可以。這一訓練模式使得谷歌等開發廠商必須降低實驗的速度,重塑訓練模型,這將耗費更長的時間,才能使機器獲得一定的數據推理能力。

正是因為如此,在相對簡單和單一的設備上先進行訓練,然後將結果帶入帶更為複雜的環境中去,從而獲得更高層次的數據推理能力,這一迭代工程是必不可少的。未來,英特爾推出的用於人工智慧的GPU也將會採用這一迭代模式。英偉達的Volta GPU也是如此。

擁有「tensor core」的英偉達Volta GPU擁有超高速的機器學習與訓練能力,未來可能達到120萬億次的單設備計算能力,這一運算能力與去年上市的Pascal GPU相比,在計算能力上提升了大約40%。但是像谷歌推出的TPU這種超高速的計算能力所帶來的影響,我們即便很難在生活中切身的體會到,但是GPU越來越快的計算能力依舊令人印象深刻,也離我們更近。

Dean表示,英偉達Volta所採用的架構是非常有趣的,這一架構使得通過核心矩陣來加速應用的目的成為可能。從一定程度上來說,谷歌推出的第一代TPU也採用了類似的想法,實際上,這些技術現在依然在機器學習的流程中被採用。「能夠加快線性計算能力總是非常有用的。」Dean強調。

姑且不考慮硬體方面的影響,依然存在著許多能夠吸引用戶的地方。與那些始終保持機密的項目不同,未來,谷歌將會將TPU技術運用到谷歌雲平台。谷歌的高級研究員Jeff Dean表示,他們不希望通過各種手段來限制競爭,希望能夠為TPU提供更多的可能與空間,這樣在未來才能夠與Volta GPU以及Skylake Xeons競爭。

Dean認為,平台也應當為開發者提供更多能夠建立和執行各自特有模型的機會,而不是限制開發者的思維。未來,谷歌將會在雲平台上為那些對開放的科研項目感興趣並不斷推進機器學習的研究團隊提供超過1000個TPU,

Dean表示,現在在谷歌內部,在進行機器訓練和學習的時候,也會同時採用GPU和CPU,在同一設備上也是如此,這樣能夠更好的保證平衡。但是對於新一代的TPU晶元,目前來說,訓練和學習時候的功率還不能夠準確的估計,但是值得肯定的是,功能肯定是地獄Volta GPU。由於系統在功能上能夠滿足高性能計算和64位高性能計算,這就使得工作負載的計算異常複雜。英偉達的GPU在使用過程中也會遇到類似的問題。未來,想要更好的解決這一問題,需要我們跟工程師繼續努力。

在這一點上,Dean也承認:「與第一代TPU晶元整數計算的方式不同,第二代晶元能夠進行浮點運算。所以在晶元進行學習訓練的過程中,只需要採用固定的模型即可,不需要變動演算法。工程師可以採用相同的浮點運算方式,這在很大程度上降低了工作量。」

除了英偉達和英特爾之外,谷歌將其定製的硬體產品推向市場,對於企業來說未嘗不是一件好事。因為TPU來說對於市場來說還是相當邊緣化的技術。當第二代TPU產品應用到谷歌雲平台之後,谷歌將會向大量的用戶推送培訓,這將會更好的推動這一技術的發展。

對於哪些對於谷歌為什麼不將晶元進行商業化的人來說,以上的內容大概能夠給出一個回答。隨著人工智慧和神經學習技術的不斷發展,TPU將能夠在谷歌雲上大展拳腳,成為推動技術進步的一大力量。

TPU對谷歌意味著什麼?

谷歌專門開發的應用於深度神經網路的軟體引擎。谷歌表示,按照摩爾定律的增長速度,現在的TPU的計算能力相當於未來七年才能達到的計算水平,每瓦能為機器學習提供更高的量級指令,這意味它可以用更少的晶體進行每一個操作,也就是在一秒內進行更多的操作。並且谷歌將其與Deep learning系統平台TensorFlow進行了深度綁定,可以獲得更好的支持,做更強的生態,包括搜索、無人駕駛汽車、智能語音等100多個需要使用機器學習技術的項目。

TPU 是深度學習的未來嗎?

深度學習計算中的晶元部署都不是零和博弈。現實世界的深度學習網路需要系統的 GPU 與其他 GPU 或諸如 Google TPU 之類的 ASIC 通信。GPU 是理想的工作環境,具有深度學習所需的靈活性。但是,當完全專用於某個軟體庫或平台時,則 ASIC 是最理想的。

谷歌的 TPU 顯然符合這樣的要求。TPU 的卓越性能使得 TensorFlow 和 TPU 很可能是一起升級的。雖然谷歌官方已經多次明確表示,他們不會對外銷售 TPU。不過,利用 Google 雲服務做機器學習解決方案的第三方可以得益於 TPU 卓越性能的優勢。

智能晶元市場格局一變再變,谷歌 TPU 的出現讓面向神經網路/深度學習特定領域加速的晶元趨勢更加明顯。高端 AI 應用需要強大的晶元做支撐。軟硬體缺了哪一塊中國的智能生態也發展不起來。中國處理器學術和工程都在不斷提高,我們期待中國芯早日出現在世界舞台與國際同行競技。

原文鏈接:nextplatform.com/2017/0

今天是《半導體行業觀察》為您分享的第1282期內容,歡迎關注。

推薦閱讀(點擊文章標題,直接閱讀)

模擬技術的困境

SIA重磅報告(中):半導體未來的機會

SIA重磅報告:半導體未來的機會(上)

關注微信公眾號 半導體行業觀察 ,後台回復關鍵詞獲取更多內容

回復 A股 ,看《A股知名晶元公司盤點,你更看好哪家?》

回復 CPU ,看《CPU製造全過程,一堆沙子的藝術之旅》

回復 掙錢 ,看《最會掙蘋果錢的中國半導體公司》

回復 IGBT ,看《中國IGBT真的逆襲了嗎?》

回復 禁運 ,看《對中國禁運的那些先進設備和技術》

回復 打破壟斷 ,看《中國半導體在三個領域打破了國外壟斷 》

回復 產業鏈 ,看《半導體產業鏈最全梳理,建議收藏》

回復 淚流滿面 ,看《二十個讓IC工程師淚流滿面的瞬間》

【關於轉載】:轉載僅限全文轉載並完整保留文章標題及內容,不得刪改、添加內容繞開原創保護,且文章開頭必須註明:轉自「半導體行業觀察icbank」微信公眾號。謝謝合作!

【關於徵稿】:歡迎半導體精英投稿(包括翻譯、整理),一經錄用將署名刊登,紅包重謝!簽約成為專欄專家更有千元稿費!來稿郵件請在標題標明「投稿」,並在稿件中註明姓名、電話、單位和職務。歡迎添加我的個人微信號 MooreRen001或發郵件到 jyzhang@moore.ren


推薦閱讀:

微電子製造工藝科普(1)? 晶體管
EUV光刻能夠拯救摩爾定律嗎?
高通加碼射頻器件,外圍元件供應商路在何方|半導體行業觀察
[原創] 我們為什麼需要定製化晶元|半導體行業觀察
eFPGA與FPGA SoC,誰將引領下一代可編程硬體之潮流?|半導體行業觀察

TAG:半导体 | 半导体产业 |