人工智能之終端芯片研究報告
一、人工智能與深度學習
2016年,AlphaGo與李世石九段的圍棋對決無疑掀起了全世界對人工智能領(lǐng)域的新一輪關(guān)注。在與李世石對戰(zhàn)的5個月之前,AlphaGo因擊敗歐洲圍棋冠軍樊麾二段,圍棋等級分上升至3168分,而當時排名世界第二的李世石是3532分。按照這個等級分數(shù)對弈,AlphaGo每盤的勝算只有約11%,而結(jié)果是3個月之后它在與李世石對戰(zhàn)中以4比1大勝。AlphaGo的學習能力之快,讓人惶恐。
1.人工智能:讓機器像人一樣思考
自AlphaGo之后,“人工智能”成為2016年的熱詞,但早在1956年,幾個計算機科學家就在達特茅斯會議上首次提出了此概念。他們夢想著用當時剛剛出現(xiàn)的計算機來構(gòu)造復雜的、擁有與人類智慧同樣本質(zhì)特性的機器,也就是我們今日所說的“強人工智能”。這個無所不能的機器,它有著我們所有的感知、所有的理性,甚至可以像我們一樣思考。
人們在電影里也總是看到這樣的機器:友好的,像星球大戰(zhàn)中的C-3PO;邪惡的,如終結(jié)者。強人工智能目前還只存在于電影和科幻小說中,原因不難理解,我們還沒法實現(xiàn)它們,至少目前還不行。
我們目前能實現(xiàn)的,一般被稱為“弱人工智能”。弱人工智能是能夠與人一樣,甚至比人更好地執(zhí)行特定任務(wù)的技術(shù)。例如,Pinterest上的圖像分類,或者Facebook的人臉識別。這些人工智能技術(shù)實現(xiàn)的方法就是“機器學習”。
2.機器學習:使人工智能真實發(fā)生
人工智能的核心就是通過不斷地機器學習,而讓自己變得更加智能。機器學習最基本的做法,是使用算法來解析數(shù)據(jù)、從中學習,然后對真實世界中的事件做出決策和預(yù)測。與傳統(tǒng)的為解決特定任務(wù)、硬編碼的軟件程序不同,機器學習是用大量的數(shù)據(jù)來“訓練”,通過各種算法從數(shù)據(jù)中學習如何完成任務(wù)。
機器學習最成功的應(yīng)用領(lǐng)域是計算機視覺,雖然也還是需要大量的手工編碼來完成工作。以識別停止標志牌為例:人們需要手工編寫形狀檢測程序來判斷檢測對象是不是有八條邊;寫分類器來識別字母“S-T-O-P”。使用以上這些手工編寫的分類器與邊緣檢測濾波器,人們總算可以開發(fā)算法來識別標志牌從哪里開始、到哪里結(jié)束,從而感知圖像,判斷圖像是不是一個停止標志牌。
這個結(jié)果還算不錯,但并不是那種能讓人為之一振的成功。特別是遇到霧霾天,標志牌變得不是那么清晰可見,又或者被樹遮擋一部分,算法就難以成功了。這就是為什么很長一段時間,計算機視覺的性能一直無法接近到人的能力。它太僵化,太容易受環(huán)境條件的干擾。
3.人工神經(jīng)網(wǎng)絡(luò):賦予機器學習以深度
人工神經(jīng)網(wǎng)絡(luò)是早期機器學習中的一個重要的算法,歷經(jīng)數(shù)十年風風雨雨。神經(jīng)網(wǎng)絡(luò)的原理是受我們大腦的生理結(jié)構(gòu)——互相交叉相連的神經(jīng)元啟發(fā)。但與大腦中一個神經(jīng)元可以連接一定距離內(nèi)的任意神經(jīng)元不同,人工神經(jīng)網(wǎng)絡(luò)具有離散的層,每一次只連接符合數(shù)據(jù)傳播方向的其它層。
例如,我們可以把一幅圖像切分成圖像塊,輸入到神經(jīng)網(wǎng)絡(luò)的第一層。在第一層的每一個神經(jīng)元都把數(shù)據(jù)傳遞到第二層。第二層的神經(jīng)元也是完成類似的工作,把數(shù)據(jù)傳遞到第三層,以此類推,直到最后一層,然后生成結(jié)果。
每一個神經(jīng)元都為它的輸入分配權(quán)重,這個權(quán)重的正確與否與其執(zhí)行的任務(wù)直接相關(guān)。最終的輸出由這些權(quán)重加總來決定。
我們?nèi)砸酝V箻酥九茷槔簩⒁粋€停止標志牌圖像的所有元素都打碎,然后用神經(jīng)元進行“檢查”:八邊形的外形、救火車般的紅顏色、鮮明突出的字母、交通標志的典型尺寸和靜止不動運動特性等等。神經(jīng)網(wǎng)絡(luò)的任務(wù)就是給出結(jié)論,它到底是不是一個停止標志牌。神經(jīng)網(wǎng)絡(luò)會根據(jù)所有權(quán)重,給出一個經(jīng)過深思熟慮的猜測——“概率向量”。
這個例子里,系統(tǒng)可能會給出這樣的結(jié)果:86%可能是一個停止標志牌;7%的可能是一個限速標志牌;5%的可能是一個風箏掛在樹上等等。然后網(wǎng)絡(luò)結(jié)構(gòu)告知神經(jīng)網(wǎng)絡(luò),它的結(jié)論是否正確。
即使是這個例子,也算是比較超前了。直到前不久,神經(jīng)網(wǎng)絡(luò)也還是為人工智能圈所淡忘。其實在人工智能出現(xiàn)的早期,神經(jīng)網(wǎng)絡(luò)就已經(jīng)存在了,但神經(jīng)網(wǎng)絡(luò)對于“智能”的貢獻微乎其微。主要問題是,即使是最基本的神經(jīng)網(wǎng)絡(luò),也需要大量的運算,而這種運算需求難以得到滿足。
4.深度學習:剔除神經(jīng)網(wǎng)絡(luò)之誤差
深度學習由人工神經(jīng)網(wǎng)絡(luò)衍生而來,是一種需要訓練的具有大型神經(jīng)網(wǎng)絡(luò)的多隱層層次結(jié)構(gòu),其每層相當于一個可以解決問題不同方面的機器學習。利用這種深層非線性的網(wǎng)絡(luò)結(jié)構(gòu),深度學習可以實現(xiàn)復雜函數(shù)的逼近,將表征輸入數(shù)據(jù)分布式表示,繼而展現(xiàn)強大的從少數(shù)樣本集中學習數(shù)據(jù)集本質(zhì)特征的能力,并使概率向量更加收斂。
簡單來說,深度學習神經(jīng)網(wǎng)絡(luò)對數(shù)據(jù)的處理方式和學習方式與人類大腦的神經(jīng)元更加相似,比傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)更準確。
我們回過頭來看這個停止標志識別的例子:深度學習神經(jīng)網(wǎng)絡(luò)從成百上千甚至幾百萬張停止標志圖像中提取表征數(shù)據(jù),通過重復訓練將神經(jīng)元輸入的權(quán)重調(diào)制得更加精確,無論是否有霧,晴天還是雨天,每次都能得到正確的結(jié)果。只有這個時候,我們才可以說神經(jīng)網(wǎng)絡(luò)成功地自學習到一個停止標志的樣子。
Google的AlphaGo也是先學會了如何下圍棋,然后通過不斷地與自己下棋,訓練自己的神經(jīng)網(wǎng)絡(luò),這種訓練使得AlphaGo成功在三個月后擊敗了等級分數(shù)更高的李世石。
二、深度學習的實現(xiàn)
深度學習仿若機器學習最頂端的鉆石,賦予人工智能更璀璨的未來。其摧枯拉朽般地實現(xiàn)了各種我們曾經(jīng)想都不敢想的任務(wù),使得幾乎所有的機器輔助功能都變?yōu)榭赡?。更好的電影推薦、智能穿戴,甚至無人駕駛汽車、預(yù)防性醫(yī)療保健,都近在眼前,或者即將實現(xiàn)。人工智能就在現(xiàn)在,就在明天。你的C-3PO我拿走了,你有你的終結(jié)者就好。
但是正如前面提到的,人工神經(jīng)網(wǎng)絡(luò),即深度學習的前身,已經(jīng)存在了近三十年,但直到最近的5到10年才再次興起,這又是因為什么?
1.突破局限的學習算法
20世紀90年代,包括支撐向量機(SVM)與最大熵方法(LR)在內(nèi)的眾多淺層機器學習算法相繼提出,使得基于反向傳播算法(BP)的人工神經(jīng)網(wǎng)絡(luò)因難以彌補的劣勢漸漸淡出人們的視線。直到 2006年,加拿大多倫多大學教授、機器學習領(lǐng)域的泰斗 Geoffrey Hinton 和他的學生在《科學》上發(fā)表了一篇文章,解決了反向傳播算法存在的過擬合與難訓練的問題,從而開啟了深度學習在學術(shù)界和工業(yè)界的浪潮。
深度學習的實質(zhì),是通過構(gòu)建具有很多隱層的機器學習模型和海量的訓練數(shù)據(jù),來學習更有用的特征,從而最終提升分類或預(yù)測的準確性。因此,“深度模型”是手段,“特征學習”是目的。區(qū)別于傳統(tǒng)的淺層學習,深度學習的不同在于:
強調(diào)了模型結(jié)構(gòu)的深度,通常有5層、6層,甚至10多層的隱層節(jié)點;
明確突出了特征學習的重要性,也就是說,通過逐層特征變換,將樣本在原空間的特征表示變換到一個新特征空間,從而使分類或預(yù)測更加容易。
這種算法的差別提升了對訓練數(shù)據(jù)量和并行計算能力的需求,而在當時,移動設(shè)備尚未普及,這使得非結(jié)構(gòu)化數(shù)據(jù)的采集并不是那么容易。
2.驟然爆發(fā)的數(shù)據(jù)洪流
深度學習模型需要通過大量的數(shù)據(jù)訓練才能獲得理想的效果。以語音識別問題為例,僅在其聲學建模部分,算法就面臨著十億到千億級別的訓練樣本數(shù)據(jù)。訓練樣本的稀缺使得人工智能即使在經(jīng)歷了算法的突破后依然沒能成為人工智能應(yīng)用領(lǐng)域的主流算法。直到2012年,分布于世界各地的互相聯(lián)系的設(shè)備、機器和系統(tǒng)促進了非結(jié)構(gòu)化數(shù)據(jù)數(shù)量的巨大增長,并終于在可靠性方面發(fā)生了質(zhì)的飛躍,大數(shù)據(jù)時代到來。
大數(shù)據(jù)到底有多大?一天之中,互聯(lián)網(wǎng)產(chǎn)生的全部內(nèi)容可以刻滿1.68億張DVD;發(fā)出的郵件有2940億封之多,相當于美國兩年的紙質(zhì)信件數(shù)量;發(fā)出的社區(qū)帖子達200萬個,相當于《時代》雜志770年的文字量;賣出的手機為37.8萬臺,高于全球每天出生的嬰兒數(shù)量37.1萬倍。然而,即使是人們每天創(chuàng)造的全部信息,包括語音通話、電子郵件和信息在內(nèi)的各種通信,以及上傳的全部圖片、視頻與音樂,其信息量也無法匹及每一天所創(chuàng)造出的關(guān)于人們自身活動的數(shù)字信息量。
我們現(xiàn)在還處于所謂“物聯(lián)網(wǎng)”的最初級階段,隨著技術(shù)的成熟,我們的通訊設(shè)備、交通工具和可穿戴科技將能互相連接與溝通,信息量的增加也將以幾何倍數(shù)持續(xù)下去。
3.難以滿足的硬件需求
驟然爆發(fā)的數(shù)據(jù)洪流滿足了深度學習算法對于訓練數(shù)據(jù)量的要求,但是算法的實現(xiàn)還需要相應(yīng)處理器極高的運算速度作為支撐。當前流行的包括X86和ARM在內(nèi)的傳統(tǒng)CPU處理器架構(gòu)往往需要數(shù)百甚至上千條指令才能完成一個神經(jīng)元的處理,但對于并不需要太多的程序指令,卻需要海量數(shù)據(jù)運算的深度學習的計算需求,這種結(jié)構(gòu)就顯得非常笨拙。尤其是在當前功耗限制下無法通過提升CPU主頻來加快指令執(zhí)行速度,這種矛盾愈發(fā)不可調(diào)和,深度學習研究人員迫切需要一種替代硬件來滿足海量數(shù)據(jù)的運算需求。
或許終有一日將會誕生全新的、為人工智能而專門設(shè)計的處理器架構(gòu),但在那之前的幾十年,人工智能仍然要向前走,便只能改進現(xiàn)有處理器,使之成為能夠最大程度適應(yīng)大吞吐量運算的計算架構(gòu)。目前來看,圍繞現(xiàn)有處理器的主流改進方式有兩個:
圖形處理器通用化:
將圖形處理器GPU用作矢量處理器。在這種架構(gòu)中,GPU擅長浮點運算的特點將得到充分利用,使其成為可以進行并行處理的通用計算芯片GPGPU。英偉達公司從2006年下半年已經(jīng)開始陸續(xù)推出相關(guān)的硬件產(chǎn)品以及軟件開發(fā)工具,目前是人工智能硬件市場的主導。
多核處理器異構(gòu)化:
將GPU或FPGA等其他處理器內(nèi)核集成到CPU上。在這種架構(gòu)中,CPU內(nèi)核所不擅長的浮點運算以及信號處理等工作,將由集成在同一塊芯片上的其它可編程內(nèi)核執(zhí)行,而GPU與FPGA都以擅長浮點運算著稱。AMD與Intel公司分別致力于基于GPU與FPGA的異構(gòu)處理器,希望借此切入人工智能市場。
三、現(xiàn)有市場——通用芯片GPU
在深度學習的領(lǐng)域里,最重要的是數(shù)據(jù)和運算。誰的數(shù)據(jù)更多,誰的運算更快,誰就會占據(jù)優(yōu)勢。因此,在處理器的選擇上,可以用于通用基礎(chǔ)計算且運算速率更快的GPU迅速成為人工智能計算的主流芯片。可以說,在過去的幾年,尤其是2015年以來,人工智能大爆發(fā)就是由于英偉達公司的GPU得到廣泛應(yīng)用,使得并行計算變得更快、更便宜、更有效。
1.GPU是什么?
圖形處理器GPU最初是用在個人電腦、工作站、游戲機和一些移動設(shè)備上運行繪圖運算工作的微處理器,可以快速地處理圖像上的每一個像素點。后來科學家發(fā)現(xiàn),其海量數(shù)據(jù)并行運算的能力與深度學習需求不謀而合,因此,被最先引入深度學習。2011年吳恩達教授率先將其應(yīng)用于谷歌大腦中便取得驚人效果,結(jié)果表明,12顆英偉達的GPU可以提供相當于2000顆CPU的深度學習性能,之后紐約大學、多倫多大學以及瑞士人工智能實驗室的研究人員紛紛在GPU上加速其深度神經(jīng)網(wǎng)絡(luò)。
2.GPU和CPU的設(shè)計區(qū)別
那么GPU的快速運算能力是如何獲得的?這就要追溯到芯片最初的設(shè)計目標了。中央處理器CPU需要很強的處理不同類型數(shù)據(jù)的計算能力以及處理分支與跳轉(zhuǎn)的邏輯判斷能力,這些都使得CPU的內(nèi)部結(jié)構(gòu)異常復雜;而圖形處理器GPU最初面對的是類型高度統(tǒng)一的、相互無依賴的大規(guī)模數(shù)據(jù)和不需要被打斷的純凈的計算環(huán)境,所以GPU只需要進行高速運算而不需要邏輯判斷。目標運算環(huán)境的區(qū)別決定了GPU與CPU不同的設(shè)計架構(gòu):
CPU基于低延時的設(shè)計
大量緩存空間Cache,方便快速提取數(shù)據(jù)。CPU將大量訪問過的數(shù)據(jù)存放在Cache中,當需要再次訪問這些數(shù)據(jù)時,就不用從數(shù)據(jù)量巨大的內(nèi)存中提取了,而是直接從緩存中提取。
強大的算術(shù)運算單元ALU,可以在很短的時鐘周期內(nèi)完成算數(shù)計算。當今的CPU可以達到64bit雙精度,執(zhí)行雙精度浮點源計算加法和乘法只需要1~3個時鐘周期,時鐘周期頻率達到1.532~3gigahertz。
復雜的邏輯控制單元,當程序含有多個分支時,它通過提供分支預(yù)測來降低延時。
包括對比電路單元與轉(zhuǎn)發(fā)電路單元在內(nèi)的諸多優(yōu)化電路,當一些指令依賴前面的指令結(jié)果時,它決定這些指令在pipeline中的位置并且盡可能快的轉(zhuǎn)發(fā)一個指令的結(jié)果給后續(xù)指令。
GPU基于大吞吐量的設(shè)計
壓縮緩存空間Cache,從而最大化激發(fā)內(nèi)存吞吐量,可以處理超長的流水線。緩存的目的不是保存之后需要訪問的數(shù)據(jù),而是擔任數(shù)據(jù)轉(zhuǎn)發(fā)的角色,為線程提高服務(wù)。如果有很多線程需要訪問同一個數(shù)據(jù),緩存會合并這些訪問,再去DRAM中訪問數(shù)據(jù),獲取的數(shù)據(jù)將通過緩存轉(zhuǎn)發(fā)給對應(yīng)的線程。這種方法雖然減小了緩存,但由于需要訪問內(nèi)存,因而自然會帶來延時效應(yīng)。
高效的算數(shù)運算單元和簡化的邏輯控制單元,把串行訪問拆分成多個簡單的并行訪問,并同時運算。例如,在CPU上約有20%的晶體管是用作計算的,而GPU上有80%的晶體管用作計算。
3.GPU和CPU的性能差異
CPU與GPU在各自領(lǐng)域都可以高效地完成任務(wù),但當同樣應(yīng)用于通用基礎(chǔ)計算領(lǐng)域時,設(shè)計架構(gòu)的差異直接導致了兩種芯片性能的差異。
CPU擁有專為順序邏輯處理而優(yōu)化的幾個核心組成的串行架構(gòu),這決定了其更擅長邏輯控制、串行運算與通用類型數(shù)據(jù)運算;而GPU擁有一個由數(shù)以千計的更小、更高效的核心組成的大規(guī)模并行計算架構(gòu),大部分晶體管主要用于構(gòu)建控制電路和Cache,而控制電路也相對簡單,且對Cache的需求小,只有小部分晶體管來完成實際的運算工作。所以大部分晶體管可以組成各類專用電路、多條流水線,使得GPU的計算速度有了突破性的飛躍,擁有了更強大的處理浮點運算的能力。這決定了其更擅長處理多重任務(wù),尤其是沒有技術(shù)含量的重復性工作。
當前最頂級的CPU只有4核或者6核,模擬出8個或者12個處理線程來進行運算,但是普通級別的GPU就包含了成百上千個處理單元,高端的甚至更多,這對于多媒體計算中大量的重復處理過程有著天生的優(yōu)勢。
舉個常見的例子,一個向量相加的程序,可以讓CPU跑一個循環(huán),每個循環(huán)對一個分量做加法,也可以讓GPU同時開大量線程,每個并行的線程對應(yīng)一個分量的相加。CPU跑循環(huán)的時候每條指令所需時間一般低于GPU,但GPU因為可以同時開啟大量的線程并行地跑,具有SIMD的優(yōu)勢。
4.GPU行業(yè)的佼佼者:Nvidia
目前全球GPU行業(yè)的市場份額有超過70%被英偉達公司占據(jù),而應(yīng)用在人工智能領(lǐng)域的可進行通用計算的GPU市場則基本被英偉達公司壟斷。
2016年三季度英偉達營收為20.04億美元,較上年同期的13.05億美元增長54%;凈利潤為5.42億美元,較上年同期的2.46億美元增長120%,營收的超預(yù)期增長推動其盤后股價大幅上漲約16%。以面向的市場平臺來劃分,游戲業(yè)務(wù)營收12.4億美元,同比增長63%,是創(chuàng)造利潤的核心部門;數(shù)據(jù)中心業(yè)務(wù)營收2.4億美元,同比增長193%,成為增長最快的部門;自動駕駛業(yè)務(wù)營收1.27億美元,同比增長61%,正在逐步打開市場。
這樣的業(yè)績創(chuàng)下了英偉達的歷史最好季度收入,但這并非是其股票暴漲的理由,事實上,在過去的六年里,英偉達的業(yè)績基本一直呈現(xiàn)上升趨勢。從2012年財年至2016財年,英偉達的營業(yè)收入實現(xiàn)了從40億美元到50億美元的跨越,而其凈利潤也從2012財年的5.8億美元逐步上升到了2016財年的6.14億美元。但在此期間,英偉達的股價并未出現(xiàn)翻番式的增長。
真正促成英偉達股價飆升的是人工智能的新市場。在剛剛過去的2016年,英偉達的股價上漲了228%,過去的5年內(nèi)累計上漲500%。500億美元的市值將會持續(xù)給英偉達帶來40倍的市場收入,這幾乎是業(yè)內(nèi)擁有最高收益的公司。
5.Nvidia的市場定位:人工智能計算公司
自1999年發(fā)布第一款GPU以來,GPU就成為了英偉達最為核心的產(chǎn)品,占到了英偉達總營業(yè)收入的八成,而英偉達也以顯卡廠商的身份進入人們的視線。這些芯片最初是以板卡的形式出售給游戲玩家的,游戲玩家需要自己動手將芯片裝到PC主板上,從而擁有更快的3D圖形處理速度。他們的產(chǎn)品命名也很有講究,用"GeForce"這樣具有超能力的字眼來開辟市場。
今日的英偉達,已經(jīng)不再是一家單純的顯卡技術(shù)廠商,他現(xiàn)在很趕時髦地稱自己為“人工智能計算公司”。據(jù)英偉達官網(wǎng)數(shù)據(jù)顯示,2016年,有近兩萬家機構(gòu)將英偉達產(chǎn)品用于深度學習加速計算,相比2014年翻了13倍。醫(yī)療、生命科學、教育、能源、金融、汽車、制造業(yè)以及娛樂業(yè)等諸多行業(yè)均將得益于海量數(shù)據(jù)的分析。
谷歌、微軟、Facebook 和亞馬遜等技術(shù)巨頭大量購買英偉達的芯片來擴充自己數(shù)據(jù)中心的處理能力;Massachusetts General Hospital等醫(yī)療研究機構(gòu)用英偉達的芯片來標記CT掃描圖片上的病變點;特斯拉將在所有的汽車上安裝英偉達的芯片來實現(xiàn)無人駕駛; June等家電公司用英偉達的芯片制造人工智能驅(qū)動的家用電器。在人工智能到來之前,英偉達從來都沒有處于一個如此巨大的市場的中心,這也充分表明了一個事實,那就是英偉達在GPU的計算處理技術(shù)上無人能及。
同時,英偉達還在投資不同領(lǐng)域里新興的、需要借助深度學習來構(gòu)建業(yè)務(wù)的公司,使這些公司能夠更好地借助其提供的人工智能平臺起步,這類似于以前一些初創(chuàng)公司通過微軟Windows來構(gòu)建服務(wù)以及最近通過iTunes來發(fā)布應(yīng)用。
6.Nvidia的核心產(chǎn)品:Pascal家族
英偉達的傳統(tǒng)強項是桌面和移動終端的GPU,但是堅定地向著人工智能大步邁進的英偉達顯然已經(jīng)不滿足于僅僅在單一領(lǐng)域做提高GPU性能的事了。相比于傳統(tǒng)的計算密集型GPU產(chǎn)品來說,英偉達努力的方向是使得GPU芯片不僅僅只針對訓練算法這一項起到作用,更是能處理人工智能服務(wù)的推理工作負載,從而加速整個人工智能的開發(fā)流程。目前該公司的核心產(chǎn)品包括基于Pascal架構(gòu)的TeslaP4與Tesla P40深度學習芯片,這兩款芯片均已于2016年第四季度開始投入量產(chǎn)。
Tesla P4為資料中心帶來最高的能源效率
其小尺寸及最小50瓦特的低功率設(shè)計可安裝于任何服務(wù)器內(nèi),讓生產(chǎn)作業(yè)負載推論的能源效率達CPU的40倍。在進行視頻推論作業(yè)負載時,單一服務(wù)器裡安裝單顆Tesla P4即可取代13臺僅采用CPU的服務(wù)器,而包含服務(wù)器及用電量的總持有成本則能節(jié)省達8倍。
Tesla P40為深度學習作業(yè)負載帶來最大的處理量
一臺搭載8顆Tesla P40加速器的服務(wù)器擁有每秒47兆次運算的推論性能及INT8指令,可取代140臺以上的CPU服務(wù)器的性能。若以每臺CPU服務(wù)器約5,000美元計算,可節(jié)省65萬美元以上的服務(wù)器采購成本。
基于上述兩種人工智能芯片,英偉達為資料中心提供唯一的端對端深度學習平臺,并能夠?qū)⒂柧殨r間從數(shù)天大幅縮短至數(shù)小時,從而實現(xiàn)資料的立即解析與服務(wù)的及時回應(yīng)。
7.Nvidia的應(yīng)用布局:自動駕駛
不僅僅是底層架構(gòu),英偉達在應(yīng)用層面上也有非常明確的布局,其中最看重也最有領(lǐng)先優(yōu)勢的就是自動駕駛。早在2014年1月,英偉達就發(fā)布了為移動平臺設(shè)計的第一代Tegra系列處理器,適用于智能手機、平板電腦和自動駕駛汽車,四個月后,DRIVE PX自動駕駛計算平臺發(fā)布,可實現(xiàn)包括高速公路自動駕駛與高清制圖在內(nèi)的自動巡航功能。同年10月,搭載了Tegra K1處理器并應(yīng)用了DRIVEPX計算平臺的特斯拉新款Model S開始量產(chǎn),英偉達成為第一個享受到自動駕駛紅利的廠商。
2016年英偉達在自動駕駛領(lǐng)域并沒有什么重大突破,基本只是從技術(shù)升級及廠商合作兩個方面入手,除了特斯拉這個老朋友外,百度、沃爾沃也跟英偉達達成了合作,他們都將生產(chǎn)搭載DRIVE PX 2的智能駕駛汽車。恰逢此時,AI概念變得更加火熱,智能駕駛也逐漸成熟,這些客觀因素讓英偉達收割了更多的紅利,也讓公司站在了聚光燈之下。
從整個自動駕駛行業(yè)來看,Google、蘋果、微軟等科技公司都在建立自己的汽車生態(tài)體系,不過智能汽車對于他們來說都不是核心業(yè)務(wù),更為重要的是,他們并沒有真正進入汽車供應(yīng)鏈體系。與之相反,英偉達的Drive PX系列自動駕駛解決方案,已經(jīng)進入了汽車的上游供應(yīng)鏈中,并創(chuàng)造了利潤,這也意味著英偉達將在汽車芯片市場與英特爾、高通、恩智浦、瑞薩電子等做CPU的公司正面碰撞,自動駕駛的風口讓英偉達在汽車市場從“邊緣人”變成了挑戰(zhàn)者。
隨著特斯拉Model S等備受矚目的車型更加智能化與多媒體化,英偉達有了彎道超車的機會,并有望在汽車產(chǎn)業(yè)的上游供應(yīng)鏈占據(jù)更有優(yōu)勢的地位。最新款的Tegra系列處理器功耗只有10瓦,幾乎與同等級的FPGA產(chǎn)品功耗持平甚至更低,這對于車載移動芯片來說是巨大的優(yōu)勢。
但同樣的,單移動處理器的架構(gòu)和極低的功耗必然無法支撐起超大規(guī)模的運算,目前英偉達計算平臺的功能定位僅聚焦于高速公路上的自動巡航,而CPU的應(yīng)用可以拓展至車機娛樂信息系統(tǒng)層面。未來自動駕駛的發(fā)展方向必然是整車的控制中心,從目前英偉達基于Tesla架構(gòu)的主流芯片來看,低功耗、極速運算與邏輯控制是可以同時實現(xiàn)的,英偉達公司在自動駕駛領(lǐng)域的優(yōu)勢非常明顯。
8.Nvidia的產(chǎn)業(yè)優(yōu)勢:完善的生態(tài)系統(tǒng)
與其它芯片公司相比,帶有CUDA的重點軟件生態(tài)系統(tǒng)是英偉達占領(lǐng)人工智能市場的關(guān)鍵促成因素。從2006年開始,英偉達發(fā)布了一個名叫CUDA的編程工具包,該工具包讓開發(fā)者可以輕松編程屏幕上的每一個像素。在CUDA發(fā)布之前,給GPU編程對程序員來說是一件極其痛苦的事,因為這涉及到編寫大量低層面的機器碼以實現(xiàn)渲染每一個不同像素的目標,而這樣的微型計算操作通常有上萬個。CUDA在經(jīng)過了英偉達的多年開發(fā)之后,成功將Java或C++這樣的高級語言開放給了GPU編程,從而讓GPU編程變得更加輕松簡單,研究者也可以更快更便宜地開發(fā)他們的深度學習模型。
四、未來市場:半定制芯片F(xiàn)PGA
技術(shù)世界正在邁向一個全新的軌道,我們對于人工智能的想象已經(jīng)不再局限于圖片識別與聲音處理,機器,將在更多領(lǐng)域完成新的探索。不同領(lǐng)域?qū)τ嬎愕男枨笫遣町惖模@就要求深度學習的訓練愈發(fā)專業(yè)化與區(qū)別化。芯片的發(fā)展趨勢必將是在每一個細分領(lǐng)域都可以更加符合我們的專業(yè)需求,但是考慮到硬件產(chǎn)品一旦成型便不可再更改這個特點,我們不禁開始想,是不是可以生產(chǎn)一種芯片,讓它硬件可編程。
也就是說,這一刻我們需要一個更適合圖像處理的硬件系統(tǒng),下一刻我們需要一個更適合科學計算的硬件系統(tǒng),但是我們又不希望焊兩塊板子,我們希望一塊板子便可以實現(xiàn)針對每一個應(yīng)用領(lǐng)域的不同需求。這塊板子便是半定制芯片F(xiàn)PGA,便是未來人工智能硬件市場的發(fā)展方向。
1.FPGA是什么?
場效可編程邏輯閘陣列FPGA運用硬件語言描述電路,根據(jù)所需要的邏輯功能對電路進行快速燒錄。一個出廠后的成品FPGA的邏輯塊和連接可以按照設(shè)計者的需要而改變,這就好像一個電路試驗板被放在了一個芯片里,所以FPGA可以完成所需要的邏輯功能。
FPGA和GPU內(nèi)都有大量的計算單元,因此它們的計算能力都很強。在進行神經(jīng)網(wǎng)絡(luò)運算的時候,兩者的速度會比CPU快很多。但是GPU由于架構(gòu)固定,硬件原生支持的指令也就固定了,而FPGA則是可編程的。其可編程性是關(guān)鍵,因為它讓軟件與終端應(yīng)用公司能夠提供與其競爭對手不同的解決方案,并且能夠靈活地針對自己所用的算法修改電路。
2.FPGA和GPU的性能差異
同樣是擅長并行計算的FPGA和GPU,誰能夠占領(lǐng)人工智能的高地,并不在于誰的應(yīng)用更廣泛,而是取決于誰的性能更好。在服務(wù)器端,有三個指標可供對比:峰值性能、平均性能與功耗能效比。當然,這三個指標是相互影響的,不過還是可以分開說。
峰值性能:GPU遠遠高于FPGA
GPU上面成千上萬個核心同時跑在GHz的頻率上是非常壯觀的,最新的GPU峰值性能甚至可以達到10TFlops 以上。GPU的架構(gòu)經(jīng)過仔細設(shè)計,在電路實現(xiàn)上是基于標準單元庫而在關(guān)鍵路徑上可以用手工定制電路,甚至在必要的情形下可以讓半導體fab依據(jù)設(shè)計需求微調(diào)工藝制程,因此可以讓許多core同時跑在非常高的頻率上。
相對而言,F(xiàn)PGA首先設(shè)計資源受到很大的限制,例如GPU如果想多加幾個核心只要增加芯片面積就行,但FPGA一旦型號選定了邏輯資源上限就確定了。而且,F(xiàn)PGA里面的邏輯單元是基于SRAM查找表,其性能會比GPU里面的標準邏輯單元差很多。最后,F(xiàn)PGA的布線資源也受限制,因為有些線必須要繞很遠,不像GPU這樣走ASIC flow可以隨意布線,這也會限制性能。
平均性能:GPU遜于FPGA
FPGA可以根據(jù)特定的應(yīng)用去編程硬件,例如如果應(yīng)用里面的加法運算非常多就可以把大量的邏輯資源去實現(xiàn)加法器,而GPU一旦設(shè)計完就不能改動了,所以不能根據(jù)應(yīng)用去調(diào)整硬件資源。
目前機器學習大多使用SIMD架構(gòu),即只需一條指令可以平行處理大量數(shù)據(jù),因此用GPU很適合。但是有些應(yīng)用是MISD,即單一數(shù)據(jù)需要用許多條指令平行處理,這種情況下用FPGA做一個MISD的架構(gòu)就會比GPU有優(yōu)勢。
所以,對于平均性能,看的就是FPGA加速器架構(gòu)上的優(yōu)勢是否能彌補運行速度上的劣勢。如果FPGA上的架構(gòu)優(yōu)化可以帶來相比GPU架構(gòu)兩到三個數(shù)量級的優(yōu)勢,那么FPGA在平均性能上會好于GPU。
功耗能效比:
功耗方面,雖然GPU的功耗遠大于FPGA的功耗,但是如果要比較功耗應(yīng)該比較在執(zhí)行效率相同時需要的功耗。如果FPGA的架構(gòu)優(yōu)化能做到很好以致于一塊FPGA的平均性能能夠接近一塊GPU,那么FPGA方案的總功耗遠小于GPU,散熱問題可以大大減輕。反之,如果需要二十塊FPGA才能實現(xiàn)一塊GPU的平均性能,那么FPGA在功耗方面并沒有優(yōu)勢。
能效比的比較也是類似,能效指的是完成程序執(zhí)行消耗的能量,而能量消耗等于功耗乘以程序執(zhí)行的時間。雖然GPU的功耗遠大于FPGA的功耗,但是如果FPGA執(zhí)行相同程序需要的時間比GPU長幾十倍,那FPGA在能效比上就沒有優(yōu)勢了;反之如果FPGA上實現(xiàn)的硬件架構(gòu)優(yōu)化得很適合特定的機器學習應(yīng)用,執(zhí)行算法所需的時間僅僅是GPU的幾倍或甚至于接近GPU,那么FPGA的能效比就會比GPU強。
3.FPGA市場前景
隨著科技的進展,制造業(yè)走向更高度的自動化與智能化,對工業(yè)控制技術(shù)等領(lǐng)域不斷產(chǎn)生新的需求,在未來的工業(yè)制造領(lǐng)域,F(xiàn)PGA將有更大的發(fā)展空間。目前來看,有兩個領(lǐng)域的應(yīng)用前景十分巨大:
工業(yè)互聯(lián)網(wǎng)領(lǐng)域
作為未來制造業(yè)發(fā)展的方向,工業(yè)大數(shù)據(jù)、云計算平臺、MES系統(tǒng)等都是支持工業(yè)智能化的重要平臺,它們需要完成大數(shù)據(jù)量的復雜處理,F(xiàn)PGA在其中可以發(fā)揮重要作用。
工業(yè)機器人設(shè)備領(lǐng)域
在多軸向運作的精密控制、實時同步的連接以及設(shè)備多功能整合等方面,兼具彈性和整合性的FPGA,更能展現(xiàn)設(shè)計優(yōu)勢。如汽車ADAS需要對實時高清圖像進行及時的分析識別與處理;在人工智能方面,深度學習神經(jīng)網(wǎng)絡(luò)也需要進行大量并行運算。
4.FPGA現(xiàn)有市場
FPGA市場前景誘人,但是門檻之高在芯片行業(yè)里無出其右。全球有60多家公司先后斥資數(shù)十億美元,前赴后繼地嘗試登頂FPGA高地,其中不乏英特爾、IBM、德州儀器、摩托羅拉、飛利浦、東芝、三星這樣的行業(yè)巨鱷,但是最終登頂成功的只有位于美國硅谷的兩家公司:Xilinx與Altera。這兩家公司共占有近90%的市場份額,專利達到6000余項之多,如此之多的技術(shù)專利構(gòu)成的技術(shù)壁壘當然高不可攀。
2015年6月,英特爾用史無前例的167億美元巨款收購了Altera,當時業(yè)內(nèi)對于英特爾此舉的解讀主要集中在服務(wù)器市場、物聯(lián)網(wǎng)市場的布局上,英特爾自己對收購的解釋也沒有明確提到機器學習。但現(xiàn)在看來,或許這筆收購在人工智能領(lǐng)域同樣具有相當大的潛力。
5.FPGA行業(yè)的開拓者:
英特爾能不能通過FPGA切入AI硬件市場?要講清楚這個問題,我們必須要把視角從人工智能身上拉遠,看看英特爾的整體戰(zhàn)略布局。最近幾年,英特爾的核心盈利業(yè)務(wù)CPU同時遭到了三個因素的狙擊:PC市場增長放緩、進軍移動市場的嘗試失敗以及摩爾定律逐漸逼近極限。單純的賣CPU固然也能賺到錢,但只有研發(fā)更高端的芯片,形成自己領(lǐng)導者的形象,才能賺更多的錢,支撐公司的發(fā)展。
上述三個因素的同時出現(xiàn),已經(jīng)讓英特爾發(fā)現(xiàn),如果自己仍然只是安心的守著自己的CPU業(yè)務(wù),很快就會面臨巨大的危機,事實上在過去的一年里,利潤下降、裁員的新聞也一直圍繞在英特爾的身邊,揮之不去。
因而英特爾十分渴望不要錯過下一個深度學習的潮流,不過它缺乏自己最先進的人工智能研究,所以在過去的兩年中瘋狂地收購。2015年,英特爾用史無前例的167億美元拍下了FPGA制造商Altera,2016年又相繼兼并了人工智能芯片初創(chuàng)公司Nervana與Movidius。目前的英特爾正在試圖將他們整合在一起。
6.Intel的產(chǎn)品布局
英特爾斥巨資收購Altera不是來為FPGA技術(shù)發(fā)展做貢獻的,相反,它要讓FPGA技術(shù)為英特爾的發(fā)展做貢獻。表現(xiàn)在技術(shù)路線圖上,那就是從現(xiàn)在分立的CPU芯片+分立的FPGA加速芯片,過渡到同一封裝內(nèi)的CPU晶片+FPGA晶片,到最終的集成CPU+FPGA芯片。預(yù)計這幾種產(chǎn)品形式將會長期共存,因為分立器件雖然性能稍差,但靈活性更高。
如果簡單的將英特爾對于人工智能的產(chǎn)品布局,可以分以下幾層:
Xeon Phi+ Nervana:用于云端最頂層的高性能計算。
Xeon+FPGA:用于云端中間層/前端設(shè)備的低功耗性能計算。
英特爾下一代的FPGA和SoC FPGA將支持Intel架構(gòu)集成,大致如下:代號為Harrisville的產(chǎn)品采用Intel 22nm工藝技術(shù),用于工業(yè)IoT、汽車和小區(qū)射頻等領(lǐng)域;代號為Falcon Messa的中端產(chǎn)品采用Intel 10nm工藝技術(shù),用于4G/5G無線通信、UHD/8K廣播視頻、工業(yè)IoT和汽車等領(lǐng)域;代號為Falcon Mesa的高端產(chǎn)品采用Intel 10nm工藝技術(shù),用于云和加速、太比特系統(tǒng)和高速信號處理等領(lǐng)域。
Core(GT):用于消費級前端設(shè)備的性能計算、圖形加速。
Euclid:提供給開發(fā)者/創(chuàng)客的開發(fā)板,集成Atom低功耗處理器、RealSense攝像頭模塊、接口,可用做無人機、小型機器人的核心開發(fā)部件。
Curie:提供給開發(fā)者/創(chuàng)客的模塊,其內(nèi)置Quark SE系統(tǒng)芯片、藍牙低功耗無線電、以及加速計、陀螺儀等傳感器,可用做低功耗可穿戴設(shè)備的核心部件。
從產(chǎn)品線來看,包含了CPU與FPGA的異構(gòu)計算處理器將是Intel盈利的重點。預(yù)計到2020年Intel將有1/3的云數(shù)據(jù)中心節(jié)點采用FPGA技術(shù),CPU+FPGA擁有更高的單位功耗性能、更低時延和更快加速性能,在大數(shù)據(jù)和云計算領(lǐng)域有望沖擊CPU+GPU的主導地位,而Intel的至強處理器Xeon +FPGA也將在2017年下半年量產(chǎn)。
7.Intel的痛點:生態(tài)不完善
FPGA對GPU的潛力在于其計算速度與GPU不相上下,卻在成本和功耗上對GPU有著顯著優(yōu)勢。當然,劣勢也有,但是FPGA的潛力是非常明顯的。作為一個想要推向市場的商品來說,F(xiàn)PGA最需要克服,也是最容易克服的問題是普及程度。
大部分PC都配有或高端或低端的獨立GPU,對于個人進行的中小規(guī)模神經(jīng)網(wǎng)絡(luò)開發(fā)和訓練來說,其實它們的性能已經(jīng)基本足夠。而FPGA卻不是在電腦里能找得到的東西,而多見于各種冰箱、電視等電器設(shè)備及實驗室中,因此想要搞到一塊能用來開發(fā)深度學習的FPGA其實還挺麻煩的。不僅如此,F(xiàn)PGA的不普及還體現(xiàn)在以下三個方面:
OpenCL編程平臺應(yīng)用不廣泛
即使GPU有著種種不足,它也不是能夠輕易被取代的。從深度學習應(yīng)用的開發(fā)工具角度,具備CUDA支持的GPU為用戶學習Caffe、Theano等研究工具提供了很好的入門平臺。自2006年推出CUDA以來,已有超過5億的筆記本電腦、工作站、計算集群和超級計算機安裝了支持CUDA的GPU。
如果FPGA想要攻占深度學習的市場,那么產(chǎn)業(yè)鏈下游的編程平臺必不可少。目前較為流行的異構(gòu)硬件編程的替代性工具是OpenCL。不同于CUDA單一供應(yīng)商的做法,OpenCL對開發(fā)者開源、免費,這是一大重要競爭力。但目前來看,其獲得的支持相較CUDA還略遜一籌。
實現(xiàn)硬件編程困難
除了軟件編程的不普及之外,吸引偏好上層編程語言的研究人員和應(yīng)用科學家來開發(fā)FPGA尤為艱難。雖然能流利使用一種軟件語言常常意味著可以輕松地學習另一種軟件語言,但對于硬件語言翻譯技能來說卻非如此。針對FPGA最常用的語言是Verilog和VHDL,兩者均為硬件描述語言(HDL)。這些語言和傳統(tǒng)的軟件語言之間的主要區(qū)別是,HDL只是單純描述硬件,而例如C語言等軟件語言則描述順序指令,并無需了解硬件層面的執(zhí)行細節(jié)。
有效地描述硬件需要對數(shù)字化設(shè)計和電路的專業(yè)知識,盡管一些下層的實現(xiàn)決定可以留給自動合成工具去實現(xiàn),但往往無法達到高效的設(shè)計。因此,研究人員和應(yīng)用科學家傾向于選擇軟件設(shè)計,因其已經(jīng)非常成熟,擁有大量抽象和便利的分類來提高程序員的效率。
部署環(huán)節(jié)需要定制復雜套件
FPGA需要有一個完善的復雜生態(tài)系統(tǒng)才能保證其使用,不只體現(xiàn)在軟件與硬件編程平臺上,更體現(xiàn)在部署環(huán)節(jié)中。FPGA在安裝過程中需要針對不同的IP核定制一系列復雜的工具套件,相比之下,GPU通過PCI-e接口可以直接部署在服務(wù)器中,方便而快速。因此,嵌入式FPGA概念雖好,想要發(fā)展起來仍將面臨十分嚴峻的挑戰(zhàn)。
8.Intel的優(yōu)勢
目前在深度學習市場FPGA尚未成氣候,谷歌這樣的超級大廠又喜歡自己研發(fā)專用芯片,因此可以說對于深度學習芯片來說,個人開發(fā)者及中小型企業(yè)內(nèi)還有相當大的市場。這個市場目前幾乎只有英偉達一家獨大,英特爾想要強勢進入未必沒有機會。而相比于英偉達來說,英特爾有兩個明顯的優(yōu)勢:
更熟悉CPU
盡管目前的人工智能市場幾乎只有英偉達一家獨大,但英偉達的芯片也不是能夠自己完成深度學習訓練的?;蛘哒f,英偉達的GPU芯片還不足以取代那些英特爾的CPU,大多數(shù)環(huán)境下它們暫時只能加速這些處理器。所以,GPGPU暫時只是概念上的,GPU還不足以在大多數(shù)復雜運算環(huán)境下代替CPU,而隨著人工智能技術(shù)的進步,對硬件的邏輯運算能力只會更高不會降低,所以搭載強大CPU核心的多核異構(gòu)處理器才是更長期的發(fā)展方向。而論對CPU的熟悉,沒有一家芯片廠商能過勝過英特爾,英特爾是最有可能讓搭載了FPGA與CPU的異構(gòu)處理器真正實現(xiàn)多核心相輔相成的芯片公司。
曾涉足云計算
算法的訓練應(yīng)該是貫穿整個應(yīng)用過程的,這樣可以隨時為消費者提供最好體驗的服務(wù)。但是如果要將所有算法都集中于本地訓練,不僅會面臨計算瓶頸的問題,也容易面臨從單個用戶處收集到的數(shù)據(jù)量太少的尷尬。我們暫時不考慮很久以后可能出現(xiàn)的基于小樣本的無監(jiān)督學習的AI,畢竟那其實已經(jīng)跟人差不多了,在目前AI的發(fā)展狀況下,將所有數(shù)據(jù)集中于云端進行計算顯然是更理性且有效的做法。這就對通信提出了極高的要求,而英特爾恰巧在這個領(lǐng)域有著相當多的積累。雖然英特爾的通信部門連年虧損,但在現(xiàn)在的形勢下,它卻意外地有了新的價值與潛力。