CPU、GPU、DSP、NPU到底哪個更適用于深度學習
CPU、GPU、DSP、NPU到底哪個更適用于深度學習
CPU、GPU、DSP、NPU,到底哪個更適用于深度學習?下面將由學習啦小編帶大家來解答這個疑問吧,希望對大家有所收獲!
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等)是為了進行通用計算發展起來的,其基本操作為算術操作(加減乘除)和邏輯操作(與或非),往往需要數百甚至上千條指令才能完成一個神經元的處理,深度學習的處理效率不高。因此谷歌甚至需要使用上萬個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。