就在全世界媒體的焦點鎖定于谷歌AlphaGo連續3盤戰勝李世石的同時,中國科學院計算技術研究所陳云霽、陳天石課題組提出的深度學習處理器指令集DianNaoYu被計算機體系結構領域頂級國際會議ISCA2016(InternationalSymposiumonComputerArchitecture)所接收,其評分排名所有近300篇投稿的第一名。模擬實驗表明,采用DianNaoYu指令集的寒武紀深度學習處理器相對于x86指令集的CPU有兩個數量級的性能提升。
(寒武紀處理器)
寒武紀處理器是長期技術積累的成果
陳天石和陳云霽研究員在2014年5月刊發的《中國計算機學會通訊》(第10卷第5期)寫道:
“從2008年到現在,我們已經在體系結構和人工智能的交叉研究方向上工作了6年。作為國際上為數不多的幾個長期開展此方向研究的團隊之一,我們在不被認可中堅持了下來,并嘗試通過自己的努力來改善這個領域的環境(當然近年來環境的改善也得益于深度學習的興起),最終得到了學術界一定程度的肯定。
回想起來,如果我們緊緊跟隨國際學術圈的熱點走,我們是很難拿到ASPLOS最佳論文獎的。原因有兩個方面:第一,當我們看到別人的“熱點”論文發表后再去跟著做,可能已經比別人晚了若干年。尤其是體系結構領域,論文的工作周期非常長(ASPLOS2014上發表的論文,我們在2012年就啟動相關工作了),要跟上熱點很困難。第二,當跟隨熱點時,我們的工作不可避免地會被視為對某個過往論文的改進。這種改進效果必須非常顯著,機理必須非常清晰,才能打動頂級會議挑剔的審稿人。這對于論文寫作提出了很高的要求,而中國大陸研究者往往在英文論文寫作上不占優勢。但這里存在一個矛盾:緊跟多變的國際學術圈熱點,論文不容易在頂級會議上發表;而探討的問題若不是國際學術圈熱點,論文同樣很難在頂級會議上發表。
面對這個矛盾,我們的看法是:研究者應該堅持自己的學術理想,重視論文但不為論文發表所左右;同時盡力宣傳自己的研究方向,推動這個方向被國際學術圈的主流認可。經過長期的等待和努力,也許有一天,自己的研究方向就會成為熱點。到那時,過去的一切坎坷都會被證明是值得的。”
截至目前,陳天石博士和陳云霽研究員就光寒武紀系列的技術成果,已經斬獲兩篇ASPLOS,兩篇ISCA,一篇MICRO,一篇HPCA,這些是計算機體系結構方面國際四大頂級會議,只不過只有科研圈子里關注,普通人還不明白其中的意義。
因此,寒武紀處理器并非借著借著阿法狗對決李世石的熱點橫空出世,而是長期技術積累的結果,并在數年前就于高端國際會議中榮獲殊榮。事實上,中國在智能芯片上是引領世界的——以寒武紀芯片為例,美國的哈佛、斯坦福、MIT、哥倫比亞等高校都跟在我們后面做。鐵流認為,寒武紀之所以過去一直不見于主流媒體,僅僅是國內很多媒體人缺乏專業知識和辨識能力,而導致了更愿意鼓吹國外所謂“高科技”,卻對真正非常具有含金量的自主技術選擇性失明。
陳云霽(左)和陳天石(右)兄弟
寒武紀神經網絡處理器廬山真面目
目前,寒武紀系列已包含三種原型處理器結構:
寒武紀1號(英文名DianNao,面向神經網絡的原型處理器結構);
寒武紀2號(英文名DaDianNao,面向大規模神經網絡);
寒武紀3號(英文名PuDianNao,面向多種機器學習算法)。
DianNao是寒武紀系列的第一個原型處理器結構,包含一個處理器核,主頻為0.98GHz,峰值性能達每秒4520億次神經網絡基本運算,65nm工藝下功耗為0.485W,面積3.02mm2。在若干代表性神經網絡上的實驗結果表明,DianNao的平均性能超過主流CPU核的100倍,但是面積和功耗僅為1/10,效能提升可達三個數量級;DianNao的平均性能與主流GPGPU相當,但面積和功耗僅為主流GPGPU百分之一量級。
DianNao的核心問題是如何讓有限的內存帶寬喂飽運算功能部件,使得運算和訪存平衡,從而達到高效能比。難點在于選取運算功能部件的數量、組織策略以及片上RAM的結構參數。由于整個結構參數空間有上千萬種選擇,模擬器運行速度不及真實芯片的十萬分之一,不可能蠻力嘗試各種可能的設計參數。為解決此問題,使用了一套基于機器學習的處理器性能建模方法,并基于該性能模型最終為DianNao選定了各項設計參數,在運算和訪存間取得了平衡,顯著提升了執行神經網絡算法時的效能。
即便數據已經從內存取到了片上,搬運的能耗依然非常高。NVidia首席科學家Steve Keckler曾經指出,在40nm工藝下,將64位數據搬運20毫米所花的能耗是做64位浮點乘法的數倍。
因此,要降低處理器功耗,僅僅降低運算功耗是不夠的,必須優化片上數據搬運。中科院計算所提出對神經網絡進行分塊處理,將不同類型的數據塊存放在不同的片上RAM中,并建立理論模型來刻畫RAM與RAM、RAM與運算部件、RAM與內存之間搬運次數,進而優化神經網絡運算所需的數據搬運次數。相對于CPU/GPU上基于cache層次的數據搬運,DianNao可將數據搬運減少10~30倍。
(DianNao結構)
DaDianNao在DianNao的基礎上進一步擴大了處理器的規模,包含16個處理器核和更大的片上存儲,并支持多處理器芯片間直接高速互連,避免了高昂的內存訪問開銷。在28nm 工藝下,DaDianNao的主頻為606MHz,面積67.7 mm2,功耗約16W。單芯片性能超過了主流GPU的21倍,而能耗僅為主流GPU的1/330。64芯片組成的高效能計算系統較主流GPU的性能提升甚至可達450倍,但總能耗僅為1/150。
雖然神經網絡已成為模式識別等領域的主流算法,但用戶很多時候可能傾向于使用其他一些經典的機器學習算法。
例如程序化交易中經常使用線性回歸這類可解釋性好、復雜度低的算法。在此背景下,寒武紀3號多用途機器學習處理器PuDianNao應運而生,當前已可支持k-最近鄰、k-均值、樸素貝葉斯、線性回歸、支持向量機、決策樹、神經網絡等近十種代表性機器學習算法。PuDianNao的主頻為1GHz,峰值性能達每秒10560億次基本操作,面積3.51mm2,功耗為0.596W(65nm工藝下)。PuDianNao運行上述機器學習算法時的平均性能與主流GPGPU相當,但面積和功耗僅為主流GPGPU百分之一量級。
(PuDianNao版圖)
神經網絡處理器的市場前景
在上世紀80年代,因人工智能無法達到公眾/投資人的預期,導致整個行業陷入低谷。
近年來,隨著算法、應用和工藝三個方面都發生了劇烈的變化,神經網絡處理器涅磐重生。
2006年, Hinton、LeCun和Bengio等人提出了深度學習方法,在深層人工神經網絡的訓練上取得了巨大的突破。
簡單地說,深度學習方法在傳統的人工神經網絡訓練中增加了一個預訓練階段,即用無監督學習對每一層網絡進行一次專門的訓練,然后才用有監督學習對整個網絡進行總體訓練。通過深度學習方法,人工神經網絡的效果一舉趕上甚至顯著超過了支持向量機等其他機器學習方法,在IBM、谷歌、微軟、科大訊飛、百度等公司很多工業級圖像和語音處理應用上取得了非常好的效果。
為什么深度學習會有效,暫時還沒有傳統的統計學習理論方面的完美證明。目前一種比較直觀的的解釋是:分層預訓練相當于對輸入數據進行逐級抽象,這暗合生物大腦的認知過程比較(例如人腦就是一種深層的神經網絡,在認知過程中會逐層將看到的原始圖像或聽到的原始聲波最終抽象成語義符號)。
既然人工神經網絡已經重新成為最有效的認知任務處理算法(至少是之一),只要人工智能健康發展,專門的神經網絡處理器自然能隨著產業發展而茁壯成長。
另外,隨著日常生活顯然需要進行大量的認知活動,自然而然地,計算機體系結構研究者的目光必須要從傳統的科學計算轉到認知任務上。事實上,很多大公司已經認識到這一點。Intel和IBM等傳統的硬件廠商都已經成立了專門的部門進行認知任務處理的研究。而現在體系結構研究中最常見的測試集Parsec中近半數都是認知類的應用(如bodytrack、facesim、freqmine、streamcluster、vips等)。在認知任務已經成了當前計算機最主要的任務之一的情況下,用戶和市場自然會有加速人工神經網絡的需求。
因此,筆者認為只要不發生社會和媒體過分炒作人工智能,最終導致整個行業陷入低谷的情況正如80年代已經發生過的情況,寒武紀的市場前景是非常值得期待的——寒武紀處理器失敗的風險就是社會和媒體過分炒作人工智能,如果最后人工智能的發展速度達不到公眾(投資人)預期(這必然會發生,例如現在很多媒體,甚至谷歌自己都發話天網就要造出來),那么整個領域都會陷入大低谷,覆巢之下焉有完卵。
至于將來寒武紀產業化成果幾何,還請由時間去檢驗。