隨著人工智能和深度學習逐漸進入人們視野,中科院、谷歌、IBM、英偉達等中美科研機構和商業公司也紛紛推出了用于深度學習的處理器。在上述產品中,既有CPU、GPU、DSP這樣的傳統芯片,也有專門為深度學習而生的NPU。那么,CPU、GPU、DSP、NPU等深度學習處理器各有什么特點,這些深度學習處理器誰更出彩呢?
CPU、GPU、DSP:以現有的技術進行微調
在英偉達開發出針對人工智能的定制GPU,并堅持DGX-1 系統之后,Intel也不甘落后,在收購深度學習創業公司 Nervana Systems之后,Intel也公布了用于深度學習的Xeon Phi家族新成員,在深度學習處理器領域開辟新戰場。之后Intel和英偉達更是先后宣稱自己的產品優于對方的產品,在輿論上打起來口水戰。雖然現階段短時間看還是GPU有優勢——Intel的眾核芯片也在一定程度上吸取了GPU的優勢。不過,無論是針對人工智能的眾核芯片還是定制版的GPU,本質上都不是專用處理器,實際上是拿現有的、相對成熟的架構和技術成果去應對新生的人工智能,并沒有發生革命性的技術突破。
6月20日,中星微“數字多媒體芯片技術”國家重點實驗室在京宣布,中國首款嵌入式NPU(神經網絡處理器)芯片誕生,目前已應用于全球首款嵌入式視頻處理芯片“星光智能一號”。不過,在經過仔細分析后,所謂“中國首款嵌入式神經網絡處理器”很有可能是一款可以運行神經網絡的DSP,而非真正意義的神經網絡專用芯片。
上圖是星光智能一號發布的系統架構圖,共包含四個NPU核,每個NPU核包含4個內核,每個內核有兩個流處理器(Dataflow Processor),每個流處理器具有8個長位寬或16位寬的SIMD運算單元。每個NPU核的峰值性能為38Gops(16位定點)或者76Gops(8位定點)。除了多核流處理器本身用于完成卷積運算外,星光智能一號集成了一個超長指令字(VLIW)處理器用于完成神經網絡中的超越函數等運算。另有256KB的L2Cache以及DMA模塊用于大塊數據的搬移。
從其低位寬的定點運算器推斷,星光智能一號僅可支持神經網絡正向運算,無法支持神經網絡的訓練。從片上存儲結構看,星光智能一號基于傳統的片上緩存(Cache),而非像最近流行的神經芯片或FPGA方案一樣使用便簽式存儲。因此,在技術上看星光智能一號是典型的“舊瓶裝新酒”方案,將傳統的面向數字信號處理的DSP處理器架構用于處理神經網絡,主要在運算器方面作了相應修改,例如低位寬和超越函數,而并非是“狹義的”神經網絡專用處理器。
因此,星光智能一號其實是DSP,而非NPU。其實,Cadence公司的Tensilica Vision P5處理器、Synopsys公司的EV處理器和星光一號如出一轍,也是將傳統的面向數字信號處理的DSP處理器架構用于處理神經網絡,主要在運算器方面作了相應修改,例如低位寬和超越函數,而并非真正的NPU,能夠適用于卷積神經網路(CNN),而對循環神經網絡(RNN)和長短期記憶網絡(LSTM)等處理語音和自然語言的網絡有可能就無能為力了。
總之,Intel、英偉達、Synopsys公司、Cadence公司等都是在使用現有的比較成熟的技術去滿足深度學習的需求,眾核芯片和定制版GPU在本質上來說依舊是CPU和GPU,而并非專門針對深度學習的專業芯片,Synopsys公司和Cadence用傳統SIMD/DSP架構來適配神經網絡,和真正的NPU依然有一定差距。打一個比方,用眾核芯片、GPU、DSP跑深度學習,就類似于用轎車去拉貨,受轎車自身特點的限制,貨物運輸能力與真正大馬力、高負載的貨車有一定差距。同理,即便是因為技術相對更加成熟,Intel和英偉達的芯片在集成度和制造工藝上具有優勢,但由于CPU、GPU、DSP并非針對深度學習的專業芯片,相對于專業芯片,其運行效率必然受到一定影響。
NPU:為深度學習而生的專業芯片
人工神經網絡是一類模仿生物神經網絡而構建的計算機算法的總稱,由若干人工神經元結點互聯而成。神經元之間通過突觸兩兩連接,突觸記錄了神經元間聯系的權值強弱。
每個神經元可抽象為一個激勵函數,該函數的輸入由與其相連的神經元的輸出以及連接神經元的突觸共同決定。為了表達特定的知識,使用者通常需要(通過某些特定的算法)調整人工神經網絡中突觸的取值、網絡的拓撲結構等。該過程稱為“學習”。在學習之后,人工神經網絡可通過習得的知識來解決特定的問題。
由于深度學習的基本操作是神經元和突觸的處理,而傳統的處理器指令集(包括x86和ARM等)是為了進行通用計算發展起來的,其基本操作為算術操作(加減乘除)和邏輯操作(與或非),往往需要數百甚至上千條指令才能完成一個神經元的處理,深度學習的處理效率不高。因此谷歌甚至需要使用上萬個x86 CPU核運行7天來訓練一個識別貓臉的深度學習神經網絡。因此,傳統的通用處理器(包括x86和ARM芯片等)用于深度學習的處理效率不高,這時就必須去研發面向深度學習的專用處理器。
中國科學院計算技術研究所是國際上最早研究深度神經網絡處理器的單位之一。2014年,中科院計算所和法國Inria合作發表的相關學術論文先后獲得了計算機硬件領域頂級會議ASPLOS’14和MICRO’14的最佳論文獎。這也是亞洲首次在此領域頂級會議上獲得最佳論文獎。
隨后,國際計算機學會(Association for Computing Machinery)通訊也將這一系列工作列為計算機領域的研究焦點。這標志著我國在智能芯片領域已經進入了國際領先行列。此后中科院計算所獨立研制了世界首個深度學習處理器芯片---寒武紀,發布了世界首個神經網絡處理器指令集,后者于2016年被計算機體系結構領域頂級國際會議ISCA2016(International Symposiumon Computer Architecture)所接收,其評分排名所有近300篇投稿的第一名。
寒武紀相對于CPU和GPU究竟有哪些優勢呢?寒武紀公司發布的Cambricon指令集直接面對大規模神經元和突觸的處理,一條指令即可完成一組神經元的處理,并對神經元和突觸數據在芯片上的傳輸提供了一系列專門的支持。寒武紀專用處理器面向深度學習應用專門定制了功能單元和片上存儲層次,同時剔除了通用處理器中為支持多樣化應用而加入的復雜邏輯(如動態流水線等),因此與CPU、GPU相比,神經網絡專用處理器會有百倍以上的性能或能耗比差距。
雖然寒武紀公司和中科院計算所尚未公布其商用產品,但我們可以從中科院計算所與法國Inria合作在2014年公開發表于ASPLOS2014學術會議的DianNao深度學習加速器架構看出一些端倪。DianNao為單核架構,主頻為0.98GHz,峰值性能達每秒4520億次神經網絡基本運算,65nm工藝下功耗為0.485W,面積3.02mm^2。在若干代表性神經網絡上的實驗結果表明,DianNao的平均性能超過主流CPU核的100倍,但是面積和功耗僅為1/10,效能提升可達三個數量級;DianNao的平均性能與主流GPGPU相當,但面積和功耗僅為主流GPGPU百分之一量級。
(寒武紀板卡)
在NPU上中國領先美國
由于IBM很不幸的點歪了科技樹,這直接導致中國在NPU上暫時領先于美國。
真北本身的研究是基于脈沖神經網絡(Spiking Neural Network,SNN)的,而寒武紀則一直面向的是機器學習類的神經網絡,如MLP(多層感知機)、CNN(卷積神經網絡)和DNN(深度神經網絡)。
兩種網絡根本的不同在于網絡中傳遞的信息的表示,前者(SNN)是通過脈沖的頻率或者時間,后者則是突觸連接的權值。目前在現有的測試集上,機器學習類的神經網絡具有更高的精度(尤其是深度神經網絡);前者則在精度上不能與之比擬。
精度是目前領域內很關心的非常重要的指標,比如近幾年火熱的ImageNet競賽也是以識別精度為衡量標準的。正是因為曾經存在精度方面的差距,所以后來IBM的真北放棄了原來的路線圖,也開始貼近機器學習類的神經網絡,并采用了一些很曲折的方法來實現這一目標。
之前說過,真北本身是基于脈沖神經網絡設計的,并且采用了邏輯時鐘為1KHz這樣的低頻率來模擬毫秒級別生物上的脈沖,這也使得真北功耗很低(70mW),當然性能也比較有限。而寒武紀則是機器學習類的神經網絡設計,運行時鐘頻率在GHz左右,能夠極其快速且高效的處理網絡計算。這使得寒武紀相對于真北具有性能上的優勢。
相比之下,寒武紀系列的內部計算完全符合機器學習類神經網絡(機器學習類網絡本身也沒有如同脈沖神經網絡一樣特別貼合生物神經元模型),通過調度在不同時刻計算不同的神經元從而完成整個神經網絡的計算。這其中,涉及到處理器設計本身的一點是,通過不同參數的選取就能夠完成不同規格(處理能力)的處理器實現。
筆者曾采訪過杜子東博士(杜子東博士長期從事人工神經網絡和脈沖神經網絡處理器的研究工作,在處理器架構最好的三個國際頂級會議ISCA/MICRO/ASPLOS上發表過多篇論文,是中國計算機體系結構領域青年研究者中的翹楚),杜子東博士表示,“包括他們(IBM)在內,大家都認為他們(IBM)走錯了路......”,并認為,“真北相對于寒武紀沒有什么優勢。硬要說有的話,那就是IBM的品牌優勢和廣告優勢”。
結語
就深度學習處理器而言,美國可以憑借其在CPU和GPU上深厚的技術積累,并在芯片集成度和制造工藝水平占據絕對優勢的情況下,開發出能用于深度學習,且性能不俗的眾核芯片和GPGPU,而且這些美國IT巨頭會利用他們巨大體量和市場推廣、銷售能力,大力推廣用這些傳統芯片來進行深度學習處理,在商業上能拔得頭籌。
就現階段而言,傳統芯片廠商的CPU、GPU和DSP,其本質上也是對現有的技術進行微調。然而,由于傳統CPU、GPU和DSP本質上并非以硬件神經元和突觸為基本處理單元,相對于NPU在深度學習方面天生會有一定劣勢,在芯片集成度和制造工藝水平相當的情況下,其表現必然遜色于NPU。
在NPU領域,由于IBM點歪了科技樹,以及中科院在該領域具有前瞻性的開展了一系列科研工作,使中國能在目前處于優勢地位。至于中國和美國的深度學習處理器,哪一款產品能在商業上取得成功,則很大程度上取決于技術以外的因素。就現在情況來看,大家基本處于同一起跑線,鹿死誰手,還未可知。