芯片之爭:CPU、GPU、DSP、NPU,到底哪個更適用於深度學習?

雷鋒網 於 30/08/2016 發表 收藏文章
雷鋒網(搜索“雷鋒網”公眾號關注)按:為保證內容的專業性,本文已邀深度學習芯片領域專家把關審核過,作者鐵流。

日前,Intel稱將於2017年推出針對深度學習市場的CPU Knights Mill。據Intel宣傳,Knights Mill 能充當主處理器,可以在不配備其它加速器或協處理器高效處理深度學習應用。可以説,繼中國寒武紀和星光智能一號、IBM的真北、Google的 TPU,以及英偉達專門為人工智能定製的GPU之後,Intel也加入該領域的競爭。

那麼,這多深度學習處理器都有什麼特點,又有什麼優勢和劣勢呢?

| CPU、GPU:用轎車運貨

在英偉達開發出針對人工智能的定製GPU,並堅持DGX-1 系統之後,Intel也不甘落後,在收購深度學習創業公司 Nervana Systems之後,Intel也公佈了用於深度學習的Xeon Phi家族新成員,在深度學習處理器領域開闢新戰場。


在不久前,Intel還發布了一些Xeon Phi 的基準測試結果,其聲稱內容總結如下:

引用1、四片 Knights Landing Xeon Phi 芯片比四片 GPU要快 2.3 倍;

2、在多節點系統中, Xeon Phi 芯片的能比 GPU 更好地擴展38% ;

3、128 塊 Xeon Phi 的服務器組成的系統要比單塊 Xeon Phi 服務器快 50 倍,暗示着 Xeon Phi 服務器的擴展性相當好;

4、使用Intel優化版的 Caffe 深度學習框架時,Xeon Phi 芯片要比標準 Caffe 實現快 30 倍。

一言蔽之,Intel的眾核芯片在深度學習上比英偉達的GPU更為高效

不過,英偉達也隨之反擊,聲稱這是Intel使用了其舊的基準測試結果,並表示:

引用1、如果英特爾使用更新一點的 Caffe AlexNet 實現結果的話,它就會發現四塊上代英偉達 Maxwell GPU 實際上比四塊英特爾 Xeon Phi 服務器集羣快 30%

2、另外,一旦英偉達的 GPU 從 28nm 的平面工藝轉移到 16nm 的 FinFET 工藝上時,GPU的性能和效率還會有很大的提升。

3、對於深度學習,英偉達還強調更少的高性能節點無論如何都會比更多低性能節點好。並以其最新的 DGX-1為例,認為DGX-1比 21 個 Xeon Phi 服務器集羣快一點,比四個 Xeon Phi 服務器集羣快 5.3 倍。


筆者認為,Intel的眾核芯片也在一定程度上吸取了GPU的優勢,性能不俗,但短時間看還是GPU有優勢。不過,無論是針對人工智能的眾核芯片還是定製版的GPU,本質上都不是專用處理器,實際上是拿現有的、相對成熟的架構和技術成果去應對新生的人工智能,並沒有發生革命性的技術突破。

其實,Intel和英偉達是在使用現有的比較成熟的技術去滿足深度學習的需求,眾核芯片和定製版GPU在本質上來説依舊是CPU和GPU,而並非專門針對深度學習的專業芯片,這就必然帶來一些天生的不足。打一個比方,用眾核芯片和GPU跑深度學習,就類似於用轎車去拉貨,受轎車自身特點的限制,貨物運輸能力與真正大馬力、高負載的貨車有一定差距。同理,即便是因為技術相對更加成熟,Intel和英偉達的芯片在集成度和製造工藝上具有優勢,但由於CPU、GPU並非針對深度學習的專業芯片,相對於專業芯片,其運行效率必然受到一定影響。

| DSP:和真正神經網絡芯片有差距

6月20日,中星微“數字多媒體芯片技術”國家重點實驗室在京宣佈,中國首款嵌入式NPU(神經網絡處理器)芯片誕生,目前已應用於全球首款嵌入式視頻處理芯片“星光智能一號”。

引用媒體稱,“星光智能一號藴含了當前計算機領域最前沿的生物人腦神經網絡仿生學創新技術,且對嚴重依賴國外進口產品的中國集成電路產業來説,也是實現‘彎道超車’的一次踴躍嘗試。它標誌着我國在神經網絡處理器領域的研究和開發上取得了重大突破;使我國視頻監控行業發展由模擬時代、數字時代跨入智能時代,在全球確立領先地位。”

不過,在經過仔細分析後,所謂“中國首款嵌入式神經網絡處理器”很有可能是一款可以運行神經網絡的DSP,而非真正意義的神經網絡專用芯片


上圖是星光智能一號發佈的系統架構圖。

共包含四個NPU核,每個NPU核包含4個內核,每個內核有兩個流處理器(Dataflow Processor),每個流處理器具有8個長位寬或16位寬的SIMD運算單元。每個NPU核的峰值性能為38Gops(16位定點)或者76Gops(8位定點)。除了多核流處理器本身用於完成卷積運算外,星光智能一號集成了一個超長指令字(VLIW)處理器用於完成神經網絡中的超越函數等運算。另有256KB的L2Cache以及DMA模塊用於大塊數據的搬移。

從其低位寬的定點運算器推斷,星光智能一號僅可支持神經網絡正向運算,無法支持神經網絡的訓練。從片上存儲結構看,星光智能一號基於傳統的片上緩存(Cache),而非像最近流行的神經芯片或FPGA方案一樣使用便籤式存儲。因此,在技術上看星光智能一號是典型的“舊瓶裝新酒”方案,將傳統的面向數字信號處理的DSP處理器架構用於處理神經網絡,主要在運算器方面作了相應修改,例如低位寬和超越函數,而並非是“狹義的”神經網絡專用處理器,如IBM的“真北”芯片。

因此,星光智能一號其實是DSP,而非NPU,能夠適用於卷積神經網路(CNN),而對循環神經網絡(RNN)和長短期記憶網絡(LSTM)等處理語音和自然語言的網絡有可能就無能為力了。

換言之,星光智能一號暫時只面向機器視覺任務,而不能用於語音和自然語言類的問題。其實,這種用傳統SIMD/DSP架構來適配神經網絡的技術思想在國際上已有不少先例,甚至有成熟的產品,例如CEVA公司的XM4處理器、Cadence公司的Tensilica Vision P5處理器、Synopsys公司的EV處理器等。

| NPU:為深度學習而生的專業芯片

從技術角度看,深度學習實際上是一類多層大規模人工神經網絡。它模仿生物神經網絡而構建,由若干人工神經元結點互聯而成。神經元之間通過突觸兩兩連接,突觸記錄了神經元間聯繫的權值強弱。

每個神經元可抽象為一個激勵函數,該函數的輸入由與其相連的神經元的輸出以及連接神經元的突觸共同決定。為了表達特定的知識,使用者通常需要(通過某些特定的算法)調整人工神經網絡中突觸的取值、網絡的拓撲結構等。該過程稱為“學習”。在學習之後,人工神經網絡可通過習得的知識來解決特定的問題。

由於深度學習的基本操作是神經元和突觸的處理,而傳統的處理器指令集(包括x86和ARM等)是為了進行通用計算髮展起來的,其基本操作為算術操作(加減乘除)和邏輯操作(與或非),往往需要數百甚至上千條指令才能完成一個神經元的處理,深度學習的處理效率不高。因此Google甚至需要使用上萬個x86 CPU核運行7天來訓練一個識別貓臉的深度學習神經網絡。因此,傳統的處理器(包括x86和ARM芯片等)用於深度學習的處理效率不高,這時就必須另闢蹊徑——突破經典的馮·諾伊曼結構

以中國的寒武紀為例,DianNaoYu指令直接面對大規模神經元和突觸的處理,一條指令即可完成一組神經元的處理,並對神經元和突觸數據在芯片上的傳輸提供了一系列專門的支持。

另外,神經網絡中存儲和處理是一體化的,都是通過突觸權重來體現。 而馮·諾伊曼結構中,存儲和處理是分離的,分別由存儲器和運算器來實現,二者之間存在巨大的差異。當用現有的基於馮·諾伊曼結構的經典計算機(如X86處理器和英偉達GPU)來跑神經網絡應用時,就不可避免地受到存儲和處理分離式結構的制約,因而影響效率。這也就是專門針對人工智能的專業芯片能夠對傳統芯片有一定先天優勢的原因之一。

用數字來説話,CPU、GPU與NPU相比,會有百倍以上的性能或能耗比差——以寒武紀團隊過去和Inria聯合發表的DianNao論文為例——DianNao為單核處理器,主頻為0.98GHz,峰值性能達每秒4520億次神經網絡基本運算,65nm工藝下功耗為0.485W,面積3.02平方毫米mm。

在若干代表性神經網絡上的實驗結果表明——

引用DianNao的平均性能超過主流CPU核的100倍,但是面積和功耗僅為1/10,效能提升可達三個數量級;

DianNao的平均性能與主流GPGPU相當,但面積和功耗僅為主流GPGPU百分之一量級。


| 結語

就現階段而言,傳統芯片廠商(如CPU、GPU和DSP)對於深度學習市場非常重視,因此利用他們巨大體量和市場推廣、銷售能力,大力推廣用這些傳統芯片來進行深度學習處理,其本質上也是對現有的技術進行微調,用傳統SIMD架構來適配神經網絡。

引用然而,由於傳統CPU、GPU和DSP本質上並非以硬件神經元和突觸為基本處理單元,相對於NPU在深度學習方面天生會有一定劣勢,在芯片集成度和製造工藝水平相當的情況下,其表現必然遜色於NPU

正如前文所述,無論是再好的轎車要去拉貨,也不可能和真正大馬力、高負載的貨車相比。

雷鋒網注:本文為雷鋒網獨家文章,轉載請聯繫授權並保留出處和作者,不得刪減內容。


資料來源:雷鋒網
作者/編輯:鐵流

留言


請按此登錄後留言。未成為會員? 立即註冊
    快捷鍵:←
    快捷鍵:→