search
尋找貓咪~QQ 地點 桃園市桃園區 Taoyuan , Taoyuan

人工智慧之終端晶元研究報告

一、人工智慧與深度學習

2016年,AlphaGo與李世石九段的圍棋對決無疑掀起了全世界對人工智慧領域的新一輪關注。在與李世石對戰的5個月之前,AlphaGo因擊敗歐洲圍棋冠軍樊麾二段,圍棋等級分上升至3168分,而當時排名世界第二的李世石是3532分。按照這個等級分數對弈,AlphaGo每盤的勝算只有約11%,而結果是3個月之後它在與李世石對戰中以4比1大勝。AlphaGo的學習能力之快,讓人惶恐。

1.人工智慧:讓機器像人一樣思考

自AlphaGo之後,「人工智慧」成為2016年的熱詞,但早在1956年,幾個計算機科學家就在達特茅斯會議上首次提出了此概念。他們夢想著用當時剛剛出現的計算機來構造複雜的、擁有與人類智慧同樣本質特性的機器,也就是我們今日所說的「強人工智慧」。這個無所不能的機器,它有著我們所有的感知、所有的理性,甚至可以像我們一樣思考。

人們在電影里也總是看到這樣的機器:友好的,像星球大戰中的C-3PO;邪惡的,如終結者。強人工智慧目前還只存在於電影和科幻小說中,原因不難理解,我們還沒法實現它們,至少目前還不行。

我們目前能實現的,一般被稱為「弱人工智慧」。弱人工智慧是能夠與人一樣,甚至比人更好地執行特定任務的技術。例如,Pinterest上的圖像分類,或者Facebook的人臉識別。這些人工智慧技術實現的方法就是「機器學習」。

2.機器學習:使人工智慧真實發生

人工智慧的核心就是通過不斷地機器學習,而讓自己變得更加智能。機器學習最基本的做法,是使用演算法來解析數據、從中學習,然後對真實世界中的事件做出決策和預測。與傳統的為解決特定任務、硬編碼的軟體程序不同,機器學習是用大量的數據來「訓練」,通過各種演算法從數據中學習如何完成任務。

機器學習最成功的應用領域是計算機視覺,雖然也還是需要大量的手工編碼來完成工作。以識別停止標誌牌為例:人們需要手工編寫形狀檢測程序來判斷檢測對象是不是有八條邊;寫分類器來識別字母「S-T-O-P」。使用以上這些手工編寫的分類器與邊緣檢測濾波器,人們總算可以開發演算法來識別標誌牌從哪裡開始、到哪裡結束,從而感知圖像,判斷圖像是不是一個停止標誌牌。

這個結果還算不錯,但並不是那種能讓人為之一振的成功。特別是遇到霧霾天,標誌牌變得不是那麼清晰可見,又或者被樹遮擋一部分,演算法就難以成功了。這就是為什麼很長一段時間,計算機視覺的性能一直無法接近到人的能力。它太僵化,太容易受環境條件的干擾。

3.人工神經網路:賦予機器學習以深度

人工神經網路是早期機器學習中的一個重要的演算法,歷經數十年風風雨雨。神經網路的原理是受我們大腦的生理結構——互相交叉相連的神經元啟發。但與大腦中一個神經元可以連接一定距離內的任意神經元不同,人工神經網路具有離散的層,每一次只連接符合數據傳播方向的其它層。

例如,我們可以把一幅圖像切分成圖像塊,輸入到神經網路的第一層。在第一層的每一個神經元都把數據傳遞到第二層。第二層的神經元也是完成類似的工作,把數據傳遞到第三層,以此類推,直到最後一層,然後生成結果。

每一個神經元都為它的輸入分配權重,這個權重的正確與否與其執行的任務直接相關。最終的輸出由這些權重加總來決定。

我們仍以停止標誌牌為例:將一個停止標誌牌圖像的所有元素都打碎,然後用神經元進行「檢查」:八邊形的外形、救火車般的紅顏色、鮮明突出的字母、交通標誌的典型尺寸和靜止不動運動特性等等。神經網路的任務就是給出結論,它到底是不是一個停止標誌牌。神經網路會根據所有權重,給出一個經過深思熟慮的猜測——「概率向量」。

這個例子里,系統可能會給出這樣的結果:86%可能是一個停止標誌牌;7%的可能是一個限速標誌牌;5%的可能是一個風箏掛在樹上等等。然後網路結構告知神經網路,它的結論是否正確。

即使是這個例子,也算是比較超前了。直到前不久,神經網路也還是為人工智慧圈所淡忘。其實在人工智慧出現的早期,神經網路就已經存在了,但神經網路對於「智能」的貢獻微乎其微。主要問題是,即使是最基本的神經網路,也需要大量的運算,而這種運算需求難以得到滿足。

4.深度學習:剔除神經網路之誤差

深度學習由人工神經網路衍生而來,是一種需要訓練的具有大型神經網路的多隱層層次結構,其每層相當於一個可以解決問題不同方面的機器學習。利用這種深層非線性的網路結構,深度學習可以實現複雜函數的逼近,將表徵輸入數據分散式表示,繼而展現強大的從少數樣本集中學習數據集本質特徵的能力,並使概率向量更加收斂。

簡單來說,深度學習神經網路對數據的處理方式和學習方式與人類大腦的神經元更加相似,比傳統的神經網路更準確。

我們回過頭來看這個停止標誌識別的例子:深度學習神經網路從成百上千甚至幾百萬張停止標誌圖像中提取表徵數據,通過重複訓練將神經元輸入的權重調製得更加精確,無論是否有霧,晴天還是雨天,每次都能得到正確的結果。只有這個時候,我們才可以說神經網路成功地自學習到一個停止標誌的樣子。

Google的AlphaGo也是先學會了如何下圍棋,然後通過不斷地與自己下棋,訓練自己的神經網路,這種訓練使得AlphaGo成功在三個月後擊敗了等級分數更高的李世石。

二、深度學習的實現

深度學習仿若機器學習最頂端的鑽石,賦予人工智慧更璀璨的未來。其摧枯拉朽般地實現了各種我們曾經想都不敢想的任務,使得幾乎所有的機器輔助功能都變為可能。

更好的電影推薦、智能穿戴,甚至無人駕駛汽車、預防性醫療保健,都近在眼前,或者即將實現。人工智慧就在現在,就在明天。你的C-3PO我拿走了,你有你的終結者就好。

但是正如前面提到的,人工神經網路,即深度學習的前身,已經存在了近三十年,但直到最近的5到10年才再次興起,這又是因為什麼?

1.突破局限的學習演算法

20世紀90年代,包括支撐向量機(SVM)與最大熵方法(LR)在內的眾多淺層機器學習演算法相繼提出,使得基於反向傳播演算法(BP)的人工神經網路因難以彌補的劣勢漸漸淡出人們的視線。直到 2006年,加拿大多倫多大學教授、機器學習領域的泰斗 Geoffrey Hinton 和他的學生在《科學》上發表了一篇文章,解決了反向傳播演算法存在的過擬合與難訓練的問題,從而開啟了深度學習在學術界和工業界的浪潮。

深度學習的實質,是通過構建具有很多隱層的機器學習模型和海量的訓練數據,來學習更有用的特徵,從而最終提升分類或預測的準確性。因此,「深度模型」是手段,「特徵學習」是目的。區別於傳統的淺層學習,深度學習的不同在於:

強調了模型結構的深度,通常有5層、6層,甚至10多層的隱層節點;

明確突出了特徵學習的重要性,也就是說,通過逐層特徵變換,將樣本在原空間的特徵表示變換到一個新特徵空間,從而使分類或預測更加容易。

這種演算法的差別提升了對訓練數據量和并行計算能力的需求,而在當時,移動設備尚未普及,這使得非結構化數據的採集並不是那麼容易。

2.驟然爆發的數據洪流

深度學習模型需要通過大量的數據訓練才能獲得理想的效果。以語音識別問題為例,僅在其聲學建模部分,演算法就面臨著十億到千億級別的訓練樣本數據。訓練樣本的稀缺使得人工智慧即使在經歷了演算法的突破后依然沒能成為人工智慧應用領域的主流演算法。直到2012年,分佈於世界各地的互相聯繫的設備、機器和系統促進了非結構化數據數量的巨大增長,並終於在可靠性方面發生了質的飛躍,大數據時代到來。

大數據到底有多大?一天之中,互聯網產生的全部內容可以刻滿1.68億張DVD;發出的郵件有2940億封之多,相當於美國兩年的紙質信件數量;發出的社區帖子達200萬個,相當於《時代》雜誌770年的文字量;賣出的手機為37.8萬台,高於全球每天出生的嬰兒數量37.1萬倍。然而,即使是人們每天創造的全部信息,包括語音通話、電子郵件和信息在內的各種通信,以及上傳的全部圖片、視頻與音樂,其信息量也無法匹及每一天所創造出的關於人們自身活動的數字信息量。

我們現在還處於所謂「物聯網」的最初級階段,隨著技術的成熟,我們的通訊設備、交通工具和可穿戴科技將能互相連接與溝通,信息量的增加也將以幾何倍數持續下去。

3.難以滿足的硬體需求

驟然爆發的數據洪流滿足了深度學習演算法對於訓練數據量的要求,但是演算法的實現還需要相應處理器極高的運算速度作為支撐。當前流行的包括X86和ARM在內的傳統CPU處理器架構往往需要數百甚至上千條指令才能完成一個神經元的處理,但對於並不需要太多的程序指令,卻需要海量數據運算的深度學習的計算需求,這種結構就顯得非常笨拙。尤其是在當前功耗限制下無法通過提升CPU主頻來加快指令執行速度,這種矛盾愈發不可調和,深度學習研究人員迫切需要一種替代硬體來滿足海量數據的運算需求。

或許終有一日將會誕生全新的、為人工智慧而專門設計的處理器架構,但在那之前的幾十年,人工智慧仍然要向前走,便只能改進現有處理器,使之成為能夠最大程度適應大吞吐量運算的計算架構。目前來看,圍繞現有處理器的主流改進方式有兩個:

圖形處理器通用化:

將圖形處理器GPU用作矢量處理器。在這種架構中,GPU擅長浮點運算的特點將得到充分利用,使其成為可以進行并行處理的通用計算晶元GPGPU。英偉達公司從2006年下半年已經開始陸續推出相關的硬體產品以及軟體開發工具,目前是人工智慧硬體市場的主導。

多核處理器異構化:

將GPU或FPGA等其他處理器內核集成到CPU上。在這種架構中,CPU內核所不擅長的浮點運算以及信號處理等工作,將由集成在同一塊晶元上的其它可編程內核執行,而GPU與FPGA都以擅長浮點運算著稱。AMD與Intel公司分别致力於基於GPU與FPGA的異構處理器,希望藉此切入人工智慧市場。

三、現有市場——通用晶元GPU

在深度學習的領域裡,最重要的是數據和運算。誰的數據更多,誰的運算更快,誰就會佔據優勢。因此,在處理器的選擇上,可以用於通用基礎計算且運算速率更快的GPU迅速成為人工智慧計算的主流晶元。可以說,在過去的幾年,尤其是2015年以來,人工智慧大爆發就是由於英偉達公司的GPU得到廣泛應用,使得并行計算變得更快、更便宜、更有效。

1.GPU是什麼?

圖形處理器GPU最初是用在個人電腦、工作站、遊戲機和一些移動設備上運行繪圖運算工作的微處理器,可以快速地處理圖像上的每一個像素點。後來科學家發現,其海量數據并行運算的能力與深度學習需求不謀而合,因此,被最先引入深度學習。2011年吳恩達教授率先將其應用於谷歌大腦中便取得驚人效果,結果表明,12顆英偉達的GPU可以提供相當於2000顆CPU的深度學習性能,之後紐約大學、多倫多大學以及瑞士人工智慧實驗室的研究人員紛紛在GPU上加速其深度神經網路。

2.GPU和CPU的設計區別

那麼GPU的快速運算能力是如何獲得的?這就要追溯到晶元最初的設計目標了。中央處理器CPU需要很強的處理不同類型數據的計算能力以及處理分支與跳轉的邏輯判斷能力,這些都使得CPU的內部結構異常複雜;而圖形處理器GPU最初面對的是類型高度統一的、相互無依賴的大規模數據和不需要被打斷的純凈的計算環境,所以GPU只需要進行高速運算而不需要邏輯判斷。目標運算環境的區別決定了GPU與CPU不同的設計架構:

CPU基於低延時的設計

大量緩存空間Cache,方便快速提取數據。CPU將大量訪問過的數據存放在Cache中,當需要再次訪問這些數據時,就不用從數據量巨大的內存中提取了,而是直接從緩存中提取。

強大的算術運算單元ALU,可以在很短的時鐘周期內完成算數計算。當今的CPU可以達到64bit雙精度,執行雙精度浮點源計算加法和乘法只需要1~3個時鐘周期,時鐘周期頻率達到1.532~3gigahertz。

複雜的邏輯控制單元,當程序含有多個分支時,它通過提供分支預測來降低延時。

包括對比電路單元與轉發電路單元在內的諸多優化電路,當一些指令依賴前面的指令結果時,它決定這些指令在pipeline中的位置並且儘可能快的轉發一個指令的結果給後續指令。

GPU基於大吞吐量的設計

壓縮緩存空間Cache,從而最大化激發內存吞吐量,可以處理超長的流水線。緩存的目的不是保存之後需要訪問的數據,而是擔任數據轉發的角色,為線程提高服務。如果有很多線程需要訪問同一個數據,緩存會合併這些訪問,再去DRAM中訪問數據,獲取的數據將通過緩存轉發給對應的線程。這種方法雖然減小了緩存,但由於需要訪問內存,因而自然會帶來延時效應。

高效的算數運算單元和簡化的邏輯控制單元,把串列訪問拆分成多個簡單的并行訪問,並同時運算。例如,在CPU上約有20%的晶體管是用作計算的,而GPU上有80%的晶體管用作計算。

3.GPU和CPU的性能差異

CPU與GPU在各自領域都可以高效地完成任務,但當同樣應用於通用基礎計算領域時,設計架構的差異直接導致了兩種晶元性能的差異。

CPU擁有專為順序邏輯處理而優化的幾個核心組成的串列架構,這決定了其更擅長邏輯控制、串列運算與通用類型數據運算;而GPU擁有一個由數以千計的更小、更高效的核心組成的大規模并行計算架構,大部分晶體管主要用於構建控制電路和Cache,而控制電路也相對簡單,且對Cache的需求小,只有小部分晶體管來完成實際的運算工作。所以大部分晶體管可以組成各類專用電路、多條流水線,使得GPU的計算速度有了突破性的飛躍,擁有了更強大的處理浮點運算的能力。這決定了其更擅長處理多重任務,尤其是沒有技術含量的重複性工作。

當前最頂級的CPU只有4核或者6核,模擬出8個或者12個處理線程來進行運算,但是普通級別的GPU就包含了成百上千個處理單元,高端的甚至更多,這對於多媒體計算中大量的重複處理過程有著天生的優勢。

舉個常見的例子,一個向量相加的程序,可以讓CPU跑一個循環,每個循環對一個分量做加法,也可以讓GPU同時開大量線程,每個并行的線程對應一個分量的相加。CPU跑循環的時候每條指令所需時間一般低於GPU,但GPU因為可以同時開啟大量的線程并行地跑,具有SIMD的優勢。

4.GPU行業的佼佼者:Nvidia

目前全球GPU行業的市場份額有超過70%被英偉達公司佔據,而應用在人工智慧領域的可進行通用計算的GPU市場則基本被英偉達公司壟斷。

2016年三季度英偉達營收為20.04億美元,較上年同期的13.05億美元增長54%;凈利潤為5.42億美元,較上年同期的2.46億美元增長120%,營收的超預期增長推動其盤后股價大幅上漲約16%。以面向的市場平台來劃分,遊戲業務營收12.4億美元,同比增長63%,是創造利潤的核心部門;數據中心業務營收2.4億美元,同比增長193%,成為增長最快的部門;自動駕駛業務營收1.27億美元,同比增長61%,正在逐步打開市場。

這樣的業績創下了英偉達的歷史最好季度收入,但這並非是其股票暴漲的理由,事實上,在過去的六年裡,英偉達的業績基本一直呈現上升趨勢。從2012年財年至2016財年,英偉達的營業收入實現了從40億美元到50億美元的跨越,而其凈利潤也從2012財年的5.8億美元逐步上升到了2016財年的6.14億美元。但在此期間,英偉達的股價並未出現翻番式的增長。

真正促成英偉達股價飆升的是人工智慧的新市場。在剛剛過去的2016年,英偉達的股價上漲了228%,過去的5年內累計上漲500%。500億美元的市值將會持續給英偉達帶來40倍的市場收入,這幾乎是業內擁有最高收益的公司。

5.Nvidia的市場定位:人工智慧計算公司

自1999年發布第一款GPU以來,GPU就成為了英偉達最為核心的產品,佔到了英偉達總營業收入的八成,而英偉達也以顯卡廠商的身份進入人們的視線。這些晶元最初是以板卡的形式出售給遊戲玩家的,遊戲玩家需要自己動手將晶元裝到PC主板上,從而擁有更快的3D圖形處理速度。他們的產品命名也很有講究,用"GeForce"這樣具有超能力的字眼來開闢市場。

今日的英偉達,已經不再是一家單純的顯卡技術廠商,他現在很趕時髦地稱自己為「人工智慧計算公司」。據英偉達官網數據顯示,2016年,有近兩萬家機構將英偉達產品用於深度學習加速計算,相比2014年翻了13倍。醫療、生命科學、教育、能源、金融、汽車、製造業以及娛樂業等諸多行業均將得益於海量數據的分析。

谷歌、微軟、Facebook 和亞馬遜等技術巨頭大量購買英偉達的晶元來擴充自己數據中心的處理能力;Massachusetts General Hospital等醫療研究機構用英偉達的晶元來標記CT掃描圖片上的病變點;特斯拉將在所有的汽車上安裝英偉達的晶元來實現無人駕駛; June等家電公司用英偉達的晶元製造人工智慧驅動的家用電器。在人工智慧到來之前,英偉達從來都沒有處於一個如此巨大的市場的中心,這也充分表明了一個事實,那就是英偉達在GPU的計算處理技術上無人能及。

同時,英偉達還在投資不同領域裡新興的、需要藉助深度學習來構建業務的公司,使這些公司能夠更好地藉助其提供的人工智慧平台起步,這類似於以前一些初創公司通過微軟Windows來構建服務以及最近通過iTunes來發布應用。

6.Nvidia的核心產品:Pascal家族

英偉達的傳統強項是桌面和移動終端的GPU,但是堅定地向著人工智慧大步邁進的英偉達顯然已經不滿足於僅僅在單一領域做提高GPU性能的事了。相比於傳統的計算密集型GPU產品來說,英偉達努力的方向是使得GPU晶元不僅僅只針對訓練演算法這一項起到作用,更是能處理人工智慧服務的推理工作負載,從而加速整個人工智慧的開發流程。目前該公司的核心產品包括基於Pascal架構的TeslaP4與Tesla P40深度學習晶元,這兩款晶元均已於2016年第四季度開始投入量產。

Tesla P4為資料中心帶來最高的能源效率

其小尺寸及最小50瓦特的低功率設計可安裝於任何伺服器內,讓生產作業負載推論的能源效率達CPU的40倍。在進行視頻推論作業負載時,單一伺服器裡安裝單顆Tesla P4即可取代13台僅採用CPU的伺服器,而包含伺服器及用電量的總持有成本則能節省達8倍。

Tesla P40為深度學習作業負載帶來最大的處理量

一台搭載8顆Tesla P40加速器的伺服器擁有每秒47兆次運算的推論性能及INT8指令,可取代140台以上的CPU伺服器的性能。若以每台CPU伺服器約5,000美元計算,可節省65萬美元以上的伺服器採購成本。

基於上述兩種人工智慧晶元,英偉達為資料中心提供唯一的端對端深度學習平台,並能夠將訓練時間從數天大幅縮短至數小時,從而實現資料的立即解析與服務的及時回應。

7.Nvidia的應用布局:自動駕駛

不僅僅是底層架構,英偉達在應用層面上也有非常明確的布局,其中最看重也最有領先優勢的就是自動駕駛。早在2014年1月,英偉達就發布了為移動平台設計的第一代Tegra系列處理器,適用於智能手機、平板電腦和自動駕駛汽車,四個月後,DRIVE PX自動駕駛計算平台發布,可實現包括高速公路自動駕駛與高清製圖在內的自動巡航功能。同年10月,搭載了Tegra K1處理器並應用了DRIVEPX計算平台的特斯拉新款Model S開始量產,英偉達成為第一個享受到自動駕駛紅利的廠商。

2016年英偉達在自動駕駛領域並沒有什麼重大突破,基本只是從技術升級及廠商合作兩個方面入手,除了特斯拉這個老朋友外,百度、沃爾沃也跟英偉達達成了合作,他們都將生產搭載DRIVE PX 2的智能駕駛汽車。恰逢此時,AI概念變得更加火熱,智能駕駛也逐漸成熟,這些客觀因素讓英偉達收割了更多的紅利,也讓公司站在了聚光燈之下。

從整個自動駕駛行業來看,Google、蘋果、微軟等科技公司都在建立自己的汽車生態體系,不過智能汽車對於他們來說都不是核心業務,更為重要的是,他們並沒有真正進入汽車供應鏈體系。與之相反,英偉達的Drive PX系列自動駕駛解決方案,已經進入了汽車的上游供應鏈中,並創造了利潤,這也意味著英偉達將在汽車晶元市場與英特爾、高通、恩智浦、瑞薩電子等做CPU的公司正面碰撞,自動駕駛的風口讓英偉達在汽車市場從「邊緣人」變成了挑戰者。

隨著特斯拉Model S等備受矚目的車型更加智能化與多媒體化,英偉達有了彎道超車的機會,並有望在汽車產業的上游供應鏈佔據更有優勢的地位。最新款的Tegra系列處理器功耗只有10瓦,幾乎與同等級的FPGA產品功耗持平甚至更低,這對於車載移動晶元來說是巨大的優勢。

但同樣的,單移動處理器的架構和極低的功耗必然無法支撐起超大規模的運算,目前英偉達計算平台的功能定位僅聚焦於高速公路上的自動巡航,而CPU的應用可以拓展至車機娛樂信息系統層面。未來自動駕駛的發展方向必然是整車的控制中心,從目前英偉達基於Tesla架構的主流晶元來看,低功耗、極速運算與邏輯控制是可以同時實現的,英偉達公司在自動駕駛領域的優勢非常明顯。

8.Nvidia的產業優勢:完善的生態系統

與其它晶元公司相比,帶有CUDA的重點軟體生態系統是英偉達佔領人工智慧市場的關鍵促成因素。從2006年開始,英偉達發布了一個名叫CUDA的編程工具包,該工具包讓開發者可以輕鬆編程屏幕上的每一個像素。在CUDA發布之前,給GPU編程對程序員來說是一件極其痛苦的事,因為這涉及到編寫大量低層面的機器碼以實現渲染每一個不同像素的目標,而這樣的微型計算操作通常有上萬個。CUDA在經過了英偉達的多年開發之後,成功將Java或C++這樣的高級語言開放給了GPU編程,從而讓GPU編程變得更加輕鬆簡單,研究者也可以更快更便宜地開發他們的深度學習模型。

四、未來市場:半定製晶元FPGA

技術世界正在邁向一個全新的軌道,我們對於人工智慧的想象已經不再局限於圖片識別與聲音處理,機器,將在更多領域完成新的探索。不同領域對計算的需求是差異的,這就要求深度學習的訓練愈發專業化與區別化。晶元的發展趨勢必將是在每一個細分領域都可以更加符合我們的專業需求,但是考慮到硬體產品一旦成型便不可再更改這個特點,我們不禁開始想,是不是可以生產一種晶元,讓它硬體可編程。

也就是說,這一刻我們需要一個更適合圖像處理的硬體系統,下一刻我們需要一個更適合科學計算的硬體系統,但是我們又不希望焊兩塊板子,我們希望一塊板子便可以實現針對每一個應用領域的不同需求。這塊板子便是半定製晶元FPGA,便是未來人工智慧硬體市場的發展方向。

1.FPGA是什麼?

場效可編程邏輯閘陣列FPGA運用硬體語言描述電路,根據所需要的邏輯功能對電路進行快速燒錄。一個出廠后的成品FPGA的邏輯塊和連接可以按照設計者的需要而改變,這就好像一個電路試驗板被放在了一個晶元里,所以FPGA可以完成所需要的邏輯功能。

FPGA和GPU內都有大量的計算單元,因此它們的計算能力都很強。在進行神經網路運算的時候,兩者的速度會比CPU快很多。但是GPU由於架構固定,硬體原生支持的指令也就固定了,而FPGA則是可編程的。其可編程性是關鍵,因為它讓軟體與終端應用公司能夠提供與其競爭對手不同的解決方案,並且能夠靈活地針對自己所用的演算法修改電路。

2.FPGA和GPU的性能差異

同樣是擅長并行計算的FPGA和GPU,誰能夠佔領人工智慧的高地,並不在於誰的應用更廣泛,而是取決於誰的性能更好。在伺服器端,有三個指標可供對比:峰值性能、平均性能與功耗能效比。當然,這三個指標是相互影響的,不過還是可以分開說。

峰值性能:GPU遠遠高於FPGA

GPU上面成千上萬個核心同時跑在GHz的頻率上是非常壯觀的,最新的GPU峰值性能甚至可以達到10TFlops 以上。GPU的架構經過仔細設計,在電路實現上是基於標準單元庫而在關鍵路徑上可以用手工定製電路,甚至在必要的情形下可以讓半導體fab依據設計需求微調工藝製程,因此可以讓許多core同時跑在非常高的頻率上。

相對而言,FPGA首先設計資源受到很大的限制,例如GPU如果想多加幾個核心只要增加晶元面積就行,但FPGA一旦型號選定了邏輯資源上限就確定了。而且,FPGA裡面的邏輯單元是基於SRAM查找表,其性能會比GPU裡面的標準邏輯單元差很多。最後,FPGA的布線資源也受限制,因為有些線必須要繞很遠,不像GPU這樣走ASIC flow可以隨意布線,這也會限制性能。

平均性能:GPU遜於FPGA

FPGA可以根據特定的應用去編程硬體,例如如果應用裡面的加法運算非常多就可以把大量的邏輯資源去實現加法器,而GPU一旦設計完就不能改動了,所以不能根據應用去調整硬體資源。

目前機器學習大多使用SIMD架構,即只需一條指令可以平行處理大量數據,因此用GPU很適合。但是有些應用是MISD,即單一數據需要用許多條指令平行處理,這種情況下用FPGA做一個MISD的架構就會比GPU有優勢。

所以,對於平均性能,看的就是FPGA加速器架構上的優勢是否能彌補運行速度上的劣勢。如果FPGA上的架構優化可以帶來相比GPU架構兩到三個數量級的優勢,那麼FPGA在平均性能上會好於GPU。

功耗能效比:

功耗方面,雖然GPU的功耗遠大於FPGA的功耗,但是如果要比較功耗應該比較在執行效率相同時需要的功耗。如果FPGA的架構優化能做到很好以致於一塊FPGA的平均性能能夠接近一塊GPU,那麼FPGA方案的總功耗遠小於GPU,散熱問題可以大大減輕。反之,如果需要二十塊FPGA才能實現一塊GPU的平均性能,那麼FPGA在功耗方面並沒有優勢。

能效比的比較也是類似,能效指的是完成程序執行消耗的能量,而能量消耗等於功耗乘以程序執行的時間。雖然GPU的功耗遠大於FPGA的功耗,但是如果FPGA執行相同程序需要的時間比GPU長几十倍,那FPGA在能效比上就沒有優勢了;反之如果FPGA上實現的硬體架構優化得很適合特定的機器學習應用,執行演算法所需的時間僅僅是GPU的幾倍或甚至於接近GPU,那麼FPGA的能效比就會比GPU強。

3.FPGA市場前景

隨著科技的進展,製造業走向更高度的自動化與智能化,對工業控制技術等領域不斷產生新的需求,在未來的工業製造領域,FPGA將有更大的發展空間。目前來看,有兩個領域的應用前景十分巨大:

工業互聯網領域

作為未來製造業發展的方向,工業大數據、雲計算平台、MES系統等都是支持工業智能化的重要平台,它們需要完成大數據量的複雜處理,FPGA在其中可以發揮重要作用。

工業機器人設備領域

在多軸向運作的精密控制、實時同步的連接以及設備多功能整合等方面,兼具彈性和整合性的FPGA,更能展現設計優勢。如汽車ADAS需要對實時高清圖像進行及時的分析識別與處理;在人工智慧方面,深度學習神經網路也需要進行大量并行運算。

4.FPGA現有市場

FPGA市場前景誘人,但是門檻之高在晶元行業里無出其右。全球有60多家公司先後斥資數十億美元,前赴後繼地嘗試登頂FPGA高地,其中不乏英特爾、IBM、德州儀器、摩托羅拉、飛利浦、東芝、三星這樣的行業巨鱷,但是最終登頂成功的只有位於美國矽谷的兩家公司:Xilinx與Altera。這兩家公司共佔有近90%的市場份額,專利達到6000餘項之多,如此之多的技術專利構成的技術壁壘當然高不可攀。

2015年6月,英特爾用史無前例的167億美元巨款收購了Altera,當時業內對於英特爾此舉的解讀主要集中在伺服器市場、物聯網市場的布局上,英特爾自己對收購的解釋也沒有明確提到機器學習。但現在看來,或許這筆收購在人工智慧領域同樣具有相當大的潛力。

5.FPGA行業的開拓者

英特爾能不能通過FPGA切入AI硬體市場?要講清楚這個問題,我們必須要把視角從人工智慧身上拉遠,看看英特爾的整體戰略布局。最近幾年,英特爾的核心盈利業務CPU同時遭到了三個因素的狙擊:PC市場增長放緩、進軍移動市場的嘗試失敗以及摩爾定律逐漸逼近極限。單純的賣CPU固然也能賺到錢,但只有研發更高端的晶元,形成自己領導者的形象,才能賺更多的錢,支撐公司的發展。

上述三個因素的同時出現,已經讓英特爾發現,如果自己仍然只是安心的守著自己的CPU業務,很快就會面臨巨大的危機,事實上在過去的一年裡,利潤下降、裁員的新聞也一直圍繞在英特爾的身邊,揮之不去。

因而英特爾十分渴望不要錯過下一個深度學習的潮流,不過它缺乏自己最先進的人工智慧研究,所以在過去的兩年中瘋狂地收購。2015年,英特爾用史無前例的167億美元拍下了FPGA製造商Altera,2016年又相繼兼并了人工智慧晶元初創公司Nervana與Movidius。目前的英特爾正在試圖將他們整合在一起。

6.Intel的產品布局

英特爾斥巨資收購Altera不是來為FPGA技術發展做貢獻的,相反,它要讓FPGA技術為英特爾的發展做貢獻。表現在技術路線圖上,那就是從現在分立的CPU晶元+分立的FPGA加速晶元,過渡到同一封裝內的CPU晶片+FPGA晶片,到最終的集成CPU+FPGA晶元。預計這幾種產品形式將會長期共存,因為分立器件雖然性能稍差,但靈活性更高。

如果簡單的將英特爾對於人工智慧的產品布局,可以分以下幾層:

Xeon Phi+ Nervana:用於雲端最頂層的高性能計算。

Xeon+FPGA:用於雲端中間層/前端設備的低功耗性能計算。

英特爾下一代的FPGA和SoC FPGA將支持Intel架構集成,大致如下:代號為Harrisville的產品採用Intel 22nm工藝技術,用於工業IoT、汽車和小區射頻等領域;代號為Falcon Messa的中端產品採用Intel 10nm工藝技術,用於4G/5G無線通信、UHD/8K廣播視頻、工業IoT和汽車等領域;代號為Falcon Mesa的高端產品採用Intel 10nm工藝技術,用於雲和加速、太比特系統和高速信號處理等領域。

Core(GT):用於消費級前端設備的性能計算、圖形加速。

Euclid:提供給開發者/創客的開發板,集成Atom低功耗處理器、RealSense攝像頭模塊、介面,可用做無人機、小型機器人的核心開發部件。

Curie:提供給開發者/創客的模塊,其內置Quark SE系統晶元、藍牙低功耗無線電、以及加速計、陀螺儀等感測器,可用做低功耗可穿戴設備的核心部件。

從產品線來看,包含了CPU與FPGA的異構計算處理器將是Intel盈利的重點。預計到2020年Intel將有1/3的雲數據中心節點採用FPGA技術,CPU+FPGA擁有更高的單位功耗性能、更低時延和更快加速性能,在大數據和雲計算領域有望衝擊CPU+GPU的主導地位,而Intel的至強處理器Xeon +FPGA也將在2017年下半年量產。

7.Intel的痛點:生態不完善

FPGA對GPU的潛力在於其計算速度與GPU不相上下,卻在成本和功耗上對GPU有著顯著優勢。當然,劣勢也有,但是FPGA的潛力是非常明顯的。作為一個想要推向市場的商品來說,FPGA最需要克服,也是最容易克服的問題是普及程度。

大部分PC都配有或高端或低端的獨立GPU,對於個人進行的中小規模神經網路開發和訓練來說,其實它們的性能已經基本足夠。而FPGA卻不是在電腦里能找得到的東西,而多見於各種冰箱、電視等電器設備及實驗室中,因此想要搞到一塊能用來開發深度學習的FPGA其實還挺麻煩的。不僅如此,FPGA的不普及還體現在以下三個方面:

OpenCL編程平台應用不廣泛

即使GPU有著種種不足,它也不是能夠輕易被取代的。從深度學習應用的開發工具角度,具備CUDA支持的GPU為用戶學習Caffe、Theano等研究工具提供了很好的入門平台。自2006年推出CUDA以來,已有超過5億的筆記本電腦、工作站、計算集群和超級計算機安裝了支持CUDA的GPU。

如果FPGA想要攻佔深度學習的市場,那麼產業鏈下游的編程平台必不可少。目前較為流行的異構硬體編程的替代性工具是OpenCL。不同於CUDA單一供應商的做法,OpenCL對開發者開源、免費,這是一大重要競爭力。但目前來看,其獲得的支持相較CUDA還略遜一籌。

實現硬體編程困難

除了軟體編程的不普及之外,吸引偏好上層編程語言的研究人員和應用科學家來開發FPGA尤為艱難。雖然能流利使用一種軟體語言常常意味著可以輕鬆地學習另一種軟體語言,但對於硬體語言翻譯技能來說卻非如此。針對FPGA最常用的語言是Verilog和VHDL,兩者均為硬體描述語言(HDL)。這些語言和傳統的軟體語言之間的主要區別是,HDL只是單純描述硬體,而例如C語言等軟體語言則描述順序指令,並無需了解硬體層面的執行細節。

有效地描述硬體需要對數字化設計和電路的專業知識,儘管一些下層的實現決定可以留給自動合成工具去實現,但往往無法達到高效的設計。因此,研究人員和應用科學家傾向於選擇軟體設計,因其已經非常成熟,擁有大量抽象和便利的分類來提高程序員的效率。

部署環節需要定製複雜套件

FPGA需要有一個完善的複雜生態系統才能保證其使用,不只體現在軟體與硬體編程平台上,更體現在部署環節中。FPGA在安裝過程中需要針對不同的IP核定製一系列複雜的工具套件,相比之下,GPU通過PCI-e介面可以直接部署在伺服器中,方便而快速。因此,嵌入式FPGA概念雖好,想要發展起來仍將面臨十分嚴峻的挑戰。

8.Intel的優勢

目前在深度學習市場FPGA尚未成氣候,谷歌這樣的超級大廠又喜歡自己研發專用晶元,因此可以說對於深度學習晶元來說,個人開發者及中小型企業內還有相當大的市場。這個市場目前幾乎只有英偉達一家獨大,英特爾想要強勢進入未必沒有機會。而相比於英偉達來說,英特爾有兩個明顯的優勢:

更熟悉CPU

儘管目前的人工智慧市場幾乎只有英偉達一家獨大,但英偉達的晶元也不是能夠自己完成深度學習訓練的。或者說,英偉達的GPU晶元還不足以取代那些英特爾的CPU,大多數環境下它們暫時只能加速這些處理器。所以,GPGPU暫時只是概念上的,GPU還不足以在大多數複雜運算環境下代替CPU,而隨著人工智慧技術的進步,對硬體的邏輯運算能力只會更高不會降低,所以搭載強大CPU核心的多核異構處理器才是更長期的發展方向。而論對CPU的熟悉,沒有一家晶元廠商能過勝過英特爾,英特爾是最有可能讓搭載了FPGA與CPU的異構處理器真正實現多核心相輔相成的晶元公司。

曾涉足雲計算

演算法的訓練應該是貫穿整個應用過程的,這樣可以隨時為消費者提供最好體驗的服務。但是如果要將所有演算法都集中於本地訓練,不僅會面臨計算瓶頸的問題,也容易面臨從單個用戶處收集到的數據量太少的尷尬。我們暫時不考慮很久以後可能出現的基於小樣本的無監督學習的AI,畢竟那其實已經跟人差不多了,在目前AI的發展狀況下,將所有數據集中於雲端進行計算顯然是更理性且有效的做法。這就對通信提出了極高的要求,而英特爾恰巧在這個領域有著相當多的積累。雖然英特爾的通信部門連年虧損,但在現在的形勢下,它卻意外地有了新的價值與潛力。



熱門推薦

本文由 yidianzixun 提供 原文連結

寵物協尋 相信 終究能找到回家的路
寫了7763篇文章,獲得2次喜歡
留言回覆
回覆
精彩推薦