GPU面臨挑戰(zhàn)及應(yīng)用場(chǎng)景解析
?隨著人工智能技術(shù)的成熟,利用人工智能替代自然人腦力勞動(dòng)終將成為一個(gè)萬(wàn)億美元的廣闊市場(chǎng),甚至?xí)蔀槔^互聯(lián)網(wǎng)之后的下一個(gè)生產(chǎn)力革命。目前主流的人工智能軟件算法是在神經(jīng)網(wǎng)絡(luò)(Neural Networks)技術(shù)基礎(chǔ)上衍生的幾個(gè)子類,如CNN(卷積神經(jīng)網(wǎng)絡(luò))、RNN(循環(huán)神經(jīng)網(wǎng)絡(luò))、DNN(深度神經(jīng)網(wǎng)絡(luò))等,這些算法的共性特征是都屬于大規(guī)模并行計(jì)算任務(wù)。
在人工智能技術(shù)發(fā)展的早期,多種并行計(jì)算芯片被應(yīng)用于加速人工智能計(jì)算,如GPU/FPGA/神經(jīng)網(wǎng)絡(luò)專用芯片等。其中GPU作為一種相比其他選項(xiàng)較為成熟的產(chǎn)品,在現(xiàn)有的早期項(xiàng)目中廣泛使用。谷歌在圖像識(shí)別項(xiàng)目、特斯拉與沃爾沃在其輔助駕駛和自動(dòng)駕駛項(xiàng)目中均使用GPU加速人工智能算法。
Nvidia日前發(fā)布了2016年的一季報(bào),其在數(shù)據(jù)中心和汽車的業(yè)務(wù)雖然體量較小,和PC游戲等相差數(shù)個(gè)數(shù)量級(jí)上,卻增速非常高,達(dá)到了63%。Nvidia還針對(duì)數(shù)據(jù)中心云計(jì)算推出了Pascal運(yùn)算平臺(tái)以及Nvidia自主研發(fā)的人工智能算法??此艷PU已經(jīng)在人工智能的加速計(jì)算中占主導(dǎo)地位;那么,未來(lái)人工智能的硬件加速也一定由GPU承擔(dān)嗎?事實(shí)并非如此,業(yè)內(nèi)已經(jīng)存在各種具備競(jìng)爭(zhēng)力的替代解決方案。
一、谷歌全新人工智能專用協(xié)處理器:TPU
谷歌在2016年5月末召開(kāi)的I/O大會(huì)披露了TPU(Tensor Processing Unit)專用處理器項(xiàng)目。這種處理器針對(duì)谷歌的開(kāi)源人工智能軟件編程框架Tensor Flow進(jìn)行了優(yōu)化。
1、TPU 主要思路:針對(duì)人工智能算法需求裁剪計(jì)算精度
在機(jī)器學(xué)習(xí)算法上,TPU比傳統(tǒng)的加速方案(谷歌之前使用GPU加速方案)在能耗效率上提升一個(gè)數(shù)量級(jí),相比傳統(tǒng)解決方案領(lǐng)先7年(摩爾定律三代節(jié)點(diǎn))。
例如在GPU中,通常支持IEEE754-2008標(biāo)準(zhǔn)浮點(diǎn)數(shù)操作,這一浮點(diǎn)數(shù)字寬為32位,其中尾數(shù)字寬為23+1(使用隱藏尾數(shù)技術(shù))位。如果數(shù)據(jù)通道中使用8位字寬的低精度尾數(shù),則GPU中各個(gè)計(jì)算部件所需的晶體管和功耗均會(huì)大大減少。
例如,在GPU計(jì)算核心中,面積最大,功耗最高的計(jì)算部件是ALU,ALU中最重要的部件是浮點(diǎn)MA(乘加混合)單元,現(xiàn)有技術(shù)下這一單元的延遲與尾數(shù)的字寬log2N成大致正比,而面積/功耗/晶體管數(shù)量大體上與N2log2N成正比。如果字寬由24比特減少到8比特,那么MA的面積可降至約1/14左右,約一個(gè)數(shù)量級(jí)。由圖可知ALU占據(jù)了GPU芯片面積的很大比例,因此單單優(yōu)化ALU即可獲得足夠提高。
除了降低字寬所帶來(lái)的關(guān)鍵組件優(yōu)化,GPU原有組件中針對(duì)圖像處理的組件如光柵、材質(zhì)貼圖單元,均可以根據(jù)人工智能的計(jì)算需求選擇優(yōu)化或裁剪。對(duì)普通GPU進(jìn)行深度定制處理,削減在神經(jīng)網(wǎng)絡(luò)算法不需要的數(shù)據(jù)位寬和功能即可達(dá)到谷歌所宣稱的“能耗效率上提升一個(gè)數(shù)量級(jí)”,因此業(yè)內(nèi)有專家認(rèn)為谷歌采用了此種思路。
2、從谷歌TPU 設(shè)計(jì)思路看人工智能硬件發(fā)展趨勢(shì)
目前的GPU加速方案以及FPGA加速方案在人工智能計(jì)算領(lǐng)域都存明顯缺點(diǎn):
在計(jì)算單元上,GPU的內(nèi)置計(jì)算單元主要針對(duì)圖像處理設(shè)計(jì),計(jì)算精度過(guò)高存在浪費(fèi);FPGA的LUT功能過(guò)于弱小,沒(méi)有針對(duì)低精度浮點(diǎn)計(jì)算優(yōu)化;
在NOC架構(gòu)上,F(xiàn)PGA和GPU原始設(shè)計(jì)匹配的目標(biāo)均與神經(jīng)網(wǎng)絡(luò)計(jì)算存在很大差異性,因此用于人工智能計(jì)算加速都存在一定缺憾。
以上表現(xiàn)在計(jì)算需求雷達(dá)圖上即為圖:GPU(藍(lán)線)和FPGA(紅線)均不能較好的覆蓋住人工智能的需求(綠線)。除了進(jìn)程交互問(wèn)題外,實(shí)時(shí)性和計(jì)算延遲同樣是人工智能加速的一個(gè)重要問(wèn)題。在人工智能的一些應(yīng)用場(chǎng)景,如無(wú)人駕駛汽車中,汽車的運(yùn)行速度可能高達(dá)40m/s,在計(jì)算中額外0.1s的延遲意味著汽車多行駛4米,這就是生與死的差距。GPU的延遲和實(shí)時(shí)性較差從長(zhǎng)期來(lái)看會(huì)影響其應(yīng)用在類似無(wú)人駕駛這樣在實(shí)時(shí)性和延遲要求較高的場(chǎng)景中。
4、GPU/FPGA 用于神經(jīng)網(wǎng)絡(luò)計(jì)算的弱點(diǎn):片上網(wǎng)絡(luò)
在人工智能硬件領(lǐng)域,F(xiàn)PGA加速同樣是一條有競(jìng)爭(zhēng)力的技術(shù)路徑。早在中國(guó)搜索引擎巨頭百度就嘗試與Altera合作探索使用FPGA加速神經(jīng)網(wǎng)絡(luò)運(yùn)算用于搜索結(jié)果的優(yōu)化中,微軟也在bing搜索服務(wù)中做了相似的探索。Auviz Systems公司在2015年發(fā)布了一份研究數(shù)據(jù),在神經(jīng)網(wǎng)絡(luò)計(jì)算中,高端FPGA可處理14個(gè)或更多圖像/秒/瓦特,而同期一個(gè)高端的GPU僅能處理4個(gè)圖像/秒/瓦特。
但目前學(xué)術(shù)界已有共識(shí),不管是FPGA還是GPU,由于其最初設(shè)計(jì)匹配的計(jì)算模型與神經(jīng)網(wǎng)絡(luò)計(jì)算模型存在不同,其并行計(jì)算核心之間的通信架構(gòu)-NOC(Network on Chip,片上網(wǎng)絡(luò))應(yīng)用在神經(jīng)網(wǎng)絡(luò)運(yùn)算中均存在缺點(diǎn)。
由于FPGA/GPU針對(duì)的并行計(jì)算模型不同,其片上網(wǎng)絡(luò)的實(shí)現(xiàn)方式也就不同:
GPU最初針對(duì)圖像處理SIMT類任務(wù)優(yōu)化,各個(gè)處理核心之間的通信較少且形式簡(jiǎn)單,因此計(jì)算節(jié)點(diǎn)主要通過(guò)片上共享存儲(chǔ)通信,原理如圖: A/C計(jì)算節(jié)點(diǎn)分別向片上共享存儲(chǔ)的不同地址寫入數(shù)據(jù),然后B/D通過(guò)讀數(shù)據(jù)的方式完成A->B/C->D的通信。這種片上網(wǎng)絡(luò)每次通信涉及讀寫片上共享存儲(chǔ)各一次,不僅速度慢,當(dāng)通信量更多(原本不會(huì)發(fā)生在圖形處理任務(wù)中)的時(shí)候存儲(chǔ)的讀寫端口還會(huì)因堵塞成為系統(tǒng)性能的關(guān)鍵瓶頸。
FPGA包含大量細(xì)粒度,可編程,但功能較弱的LUT(Look up table查找表)計(jì)算節(jié)點(diǎn),各個(gè)LUT之間通過(guò)網(wǎng)格狀NOC連接,網(wǎng)格的節(jié)點(diǎn)具備Routing(路由)功能。FPGA可以提供計(jì)算單元間直接通訊功能:A節(jié)點(diǎn)可通過(guò)路由網(wǎng)絡(luò)沿著紅色箭頭將數(shù)據(jù)傳輸至芯片上任意計(jì)算節(jié)點(diǎn)B,且傳輸路徑動(dòng)態(tài)可編程。因此網(wǎng)格NOC相比共享內(nèi)存方案能提供大的多的片上通訊容量,相比之下也不易出現(xiàn)瓶頸節(jié)點(diǎn)堵塞問(wèn)題。Auviz Systems能夠得出FPGA在神經(jīng)網(wǎng)絡(luò)處理中優(yōu)于高端GPU的方案的結(jié)論,很大程度依靠FPGA的片上通信能力而不是羸弱的LUT計(jì)算能力。
神經(jīng)網(wǎng)絡(luò)作為一種并行計(jì)算程序,適配的計(jì)算節(jié)點(diǎn)通訊硬件是提升性能的關(guān)鍵要素之一。目前FPGA和GPU的片上網(wǎng)絡(luò)架構(gòu)均不完全匹配神經(jīng)網(wǎng)絡(luò)的實(shí)際需求,相比之下GPU的共享內(nèi)存連接的匹配度更差一些。學(xué)術(shù)界對(duì)于定制特殊的NOC去匹配神經(jīng)網(wǎng)絡(luò)加速需求已有一定研究,但之前因神經(jīng)網(wǎng)絡(luò)算法本身沒(méi)有商用化,因此定制NOC硬件這一思路也停留在實(shí)驗(yàn)室內(nèi)。隨著人工智能實(shí)用化和產(chǎn)業(yè)化的發(fā)展,這些技術(shù)將對(duì)現(xiàn)有的GPU/FPGA方案形成威脅和替代。
二、GPU 未來(lái)較適應(yīng)場(chǎng)景解析
GPU雖然不能處理所有大規(guī)模并行計(jì)算問(wèn)題,但在其適應(yīng)的特定計(jì)算領(lǐng)域,特別是圖形優(yōu)化處理上依然具備絕對(duì)性能優(yōu)勢(shì)。GPU未來(lái)較為適合拓展應(yīng)用場(chǎng)景應(yīng)為VR/AR(虛擬現(xiàn)實(shí)/增強(qiáng)現(xiàn)實(shí))、云計(jì)算+游戲結(jié)合、以及云計(jì)算服務(wù)器中為特定的大數(shù)據(jù)分析提供加速。在這些領(lǐng)域的增長(zhǎng)點(diǎn)有可能是獨(dú)立GPU突破現(xiàn)有增長(zhǎng)遲緩障礙的新增長(zhǎng)領(lǐng)域。
1、VR 應(yīng)用:持續(xù)增長(zhǎng)的優(yōu)勢(shì)領(lǐng)域
在VR(Virtual Reality,虛擬現(xiàn)實(shí))設(shè)備性能指標(biāo)中,圖像顯示性能是其核心競(jìng)爭(zhēng)力。在VR中降低從用戶頭部動(dòng)作到畫面改變的延遲至20毫秒以下是防止用戶眩暈的必要條件;而達(dá)到這點(diǎn)除了需要軟件和OS優(yōu)化以外,足夠的硬件圖像計(jì)算能力是基礎(chǔ)。表1舉例了VR圖形顯示的要求以及大眾級(jí)顯卡能夠提供的圖形顯示水平:
正因目前大眾顯卡無(wú)法提供VR所需的圖形處理計(jì)算能力,現(xiàn)有的兩大主流頭顯Oculus Rift和HTC VIVE均要求配套的PC配置頂級(jí)顯卡,如Nvidia GTX970或AMDR9 290級(jí)別的顯卡。從長(zhǎng)期來(lái)看,VR/AR設(shè)備將拉動(dòng)中高端GPU市場(chǎng)的持續(xù)增長(zhǎng)。
VR以及AR(增強(qiáng)現(xiàn)實(shí))更廣闊的應(yīng)用在于獨(dú)立一體機(jī)上:獨(dú)立一體機(jī)具備移動(dòng)能力,讓VR/AR超脫出了客廳應(yīng)用這一范疇,與移動(dòng)互聯(lián)網(wǎng)結(jié)合后成為每個(gè)人都需要消費(fèi)電子產(chǎn)品。但移動(dòng)一體機(jī)對(duì)計(jì)算芯片的能耗,體積乃至散熱都有著嚴(yán)格的要求。目前SoC(System on Chip, 片上系統(tǒng))上集成GPU在移動(dòng)一體機(jī)上的優(yōu)勢(shì)是獨(dú)立GPU顯卡暫時(shí)無(wú)法動(dòng)搖的。
2、云計(jì)算/大數(shù)據(jù)應(yīng)用
亞馬遜風(fēng)靡全球的計(jì)算平臺(tái)EC2中,Nvidia GPU已經(jīng)被作為一個(gè)重要的并行計(jì)算組件提供給客戶,用作大規(guī)模并行浮點(diǎn)數(shù)計(jì)算。用戶每使用一個(gè)實(shí)例可調(diào)用兩個(gè)Nvidia Tesla m2050 GPU。在EC2中調(diào)用GPU的原理是AWS的管理程序Hypervisor被直接跳過(guò),而DomU OS和應(yīng)用可以直接通過(guò)IO與GPU通信,充分發(fā)揮GPU在浮點(diǎn)數(shù)的并行計(jì)算能力。
3、GPU,云和游戲服務(wù)結(jié)合
在現(xiàn)如今互聯(lián)網(wǎng)基礎(chǔ)設(shè)施已經(jīng)完善的市場(chǎng),把GPU和云計(jì)算以及游戲結(jié)合在一起是游戲產(chǎn)業(yè)下一個(gè)具有吸引力的發(fā)展方向。
對(duì)于游戲開(kāi)發(fā)者,不需要擔(dān)心盜版問(wèn)題;對(duì)于游戲運(yùn)營(yíng)商,云服務(wù)可以獲得更精確的客戶資料,開(kāi)展新式計(jì)費(fèi);對(duì)于游戲玩家,無(wú)需購(gòu)買昂貴高端游戲主機(jī)或PC,初始投資少;對(duì)于游戲玩家,云服務(wù)游戲更具備移動(dòng)性。
目前云計(jì)算+GPU+游戲這個(gè)模式限于現(xiàn)有網(wǎng)絡(luò)基礎(chǔ)設(shè)施限制,依然沒(méi)有大規(guī)模商用,但Nvidia依然對(duì)其抱有厚望并積極推動(dòng)。從這個(gè)側(cè)面也可以看出,Nvidia自己也知道GPU未來(lái)最主要的應(yīng)用領(lǐng)域依然是游戲的圖像處理上。
GPU還有一塊市場(chǎng)是軍用GPU市場(chǎng),這一市場(chǎng)與民用GPU市場(chǎng)有著很大不同。民用GPU追求畫面性能的極致,以最好的畫面滿足消費(fèi)者,特別是游戲玩家的需求;而軍用GPU更多的要求在于高可靠性、高耐用性、抗高空輻射、能在野戰(zhàn)環(huán)境下安全使用。需求的導(dǎo)向不同導(dǎo)致GPU從工藝到芯片設(shè)計(jì)理念都截然不同。?