2
本文作者: no name | 2016-10-22 19:29 | 專題:2016中國(guó)計(jì)算機(jī)大會(huì)(CNCC 2016) |
雷鋒網(wǎng)按:本文根據(jù)陳云霽研究員今天上午在 CNCC 2016 上所做的大會(huì)特邀報(bào)告《 神經(jīng)網(wǎng)絡(luò)處理器 》編輯整理而來(lái),在未改變其原意的基礎(chǔ)上略作了刪減。
陳云霽,男,1983 年生,江西南昌人,中國(guó)科學(xué)院計(jì)算技術(shù)研究所研究員,博士生導(dǎo)師,CCF 會(huì)員,曾獲 2014 年度“CCF 青年科學(xué)家獎(jiǎng)”。同時(shí),他擔(dān)任了中國(guó)科學(xué)院腦科學(xué)卓越中心特聘研究員,以及中國(guó)科學(xué)院大學(xué)崗位教授。目前他帶領(lǐng)其實(shí)驗(yàn)室,研制寒武紀(jì)系列深度學(xué)習(xí)處理器。
他在包括 ISCA、HPCA、MICRO、ASPLOS、ICSE、ISSCC、Hot Chips、IJCAI、FPGA、SPAA、IEEE Micro 以及 8 種IEEE/ACM Trans. 在內(nèi)的學(xué)術(shù)會(huì)議及期刊上發(fā)表論文 60 余篇,其中包括 ASPLOS'14 和 MICRO'14 的最佳論文獎(jiǎng)(亞洲迄今僅有的兩次獲計(jì)算機(jī)體系結(jié)構(gòu)頂級(jí)國(guó)際會(huì)議最佳論文),相關(guān)工作入選了 CACM 評(píng)選的研究亮點(diǎn),
陳云霽獲得了中國(guó)青年科技獎(jiǎng)、首屆國(guó)家自然科學(xué)基金“優(yōu)秀青年基金”、首屆國(guó)家萬(wàn)人計(jì)劃“青年拔尖人才”和中國(guó)計(jì)算機(jī)學(xué)會(huì)青年科學(xué)家獎(jiǎng),入選 2015 年度《麻省理工科技評(píng)論》35 歲以下的全球最佳 35 名創(chuàng)新人士。他還作為負(fù)責(zé)人帶領(lǐng)科研團(tuán)隊(duì)獲得了全國(guó)“青年文明號(hào)”和中央國(guó)家機(jī)關(guān)“青年文明號(hào)”的稱號(hào)。
以深度學(xué)習(xí)為代表的人工神經(jīng)網(wǎng)絡(luò)是最重要的人工智能方法之一,在云端和終端都有非常廣泛的應(yīng)用(例如廣告推薦、自動(dòng)翻譯、語(yǔ)音識(shí)別、圖像識(shí)別等)。然而傳統(tǒng)的 CPU 和 GPU 芯片在進(jìn)行神經(jīng)網(wǎng)絡(luò)處理時(shí)遇到了嚴(yán)重的性能和能耗瓶頸。
“我們報(bào)告的題目是《神經(jīng)網(wǎng)絡(luò)處理器》,說(shuō)白了,就是要做智能處理?!?/p>
智能是一個(gè)非常廣闊的范疇,包括知覺、記憶、學(xué)習(xí)、語(yǔ)言、思維和問題解決等,是人類最主要的日常腦力活動(dòng)。近年來(lái),智能已經(jīng)變得越來(lái)越重要,這主要是因?yàn)橛?jì)算機(jī)的使命有了很大變化。
在二三十年前,計(jì)算機(jī)的主要使命主要是科學(xué)家和工程師等少數(shù)人計(jì)算用的工具,但現(xiàn)在的情況就不同了,它通過手機(jī)這樣的終端載體進(jìn)入了每個(gè)普通人的日常生活中。在這種情況下,它就有義務(wù)幫人們?nèi)ソ鉀Q每個(gè)普通人日常生活中最經(jīng)常碰到的問題。
現(xiàn)在大部分人已經(jīng)不再?gòu)氖麦w力勞動(dòng)了,更多時(shí)候碰到的都是相對(duì)比較簡(jiǎn)單的腦力活動(dòng),所以說(shuō)我們看到計(jì)算機(jī)的任務(wù)就已經(jīng)發(fā)生了變化,它需要把我們從日常簡(jiǎn)單的腦力活動(dòng)中解放出來(lái)。
所以我們現(xiàn)在看到,各種平臺(tái)上已經(jīng)有各種各樣的智能處理任務(wù)。比如說(shuō)在超級(jí)計(jì)算機(jī)上面做商業(yè)分析或者藥物研制,比如說(shuō)在數(shù)據(jù)中心上面去做廣告推薦或自動(dòng)翻譯,還有包括智能手機(jī)或者各種智能安防攝像頭上去做圖像識(shí)別、語(yǔ)音識(shí)別等等,以及現(xiàn)在非常熱門的自動(dòng)輔助駕駛和更高的消費(fèi)類電子。這些背后的核心的技術(shù)都是在做智能的處理。
| 人工神經(jīng)網(wǎng)絡(luò)
提到智能處理,可能我們就不得不提下這個(gè)神經(jīng)網(wǎng)絡(luò)。相對(duì)來(lái)說(shuō),這是目前在人工智能領(lǐng)域用途最廣泛、可能也是最重要的技術(shù),或者至少是之一。人工神經(jīng)網(wǎng)絡(luò)的提出其實(shí)非常早,兩位提出者甚至都不能稱為計(jì)算機(jī)科學(xué)家,而應(yīng)該是心理學(xué)家或者邏輯學(xué)家,他們?cè)?1943 年就提出了這個(gè)思想。
其實(shí)當(dāng)時(shí)最初的思想就是希望從大腦得到一些借鑒,因?yàn)榇竽X是我們迄今為止所知的最智能的物體。大腦中存在千億個(gè)神經(jīng)元細(xì)胞,如果把神經(jīng)元連接認(rèn)為是突觸的話,那么存在百萬(wàn)億個(gè)突觸。因此,最早就是希望能把大腦中神經(jīng)元和突觸數(shù)字化抽象出來(lái),這樣的數(shù)字化網(wǎng)絡(luò)某種程度上可能就繼承了人腦對(duì)信息的處理能力。
上圖顯示了一個(gè)最簡(jiǎn)單的人工神經(jīng)網(wǎng)絡(luò),只有一個(gè)神經(jīng)元,但是已經(jīng)可以做一些比較有意思的處理了,比如說(shuō)分類器,可以判斷這究竟是我方的飛機(jī)還是敵方的飛機(jī)。
這是一個(gè)神經(jīng)元能做的,那么很多個(gè)神經(jīng)元在一起能做什么呢?其實(shí)就是我們現(xiàn)在所說(shuō)的深度學(xué)習(xí),說(shuō)白了就是一種多層、大規(guī)模的人工神經(jīng)網(wǎng)絡(luò)。
下面這個(gè)圖可能是一個(gè)卷積神經(jīng)網(wǎng)絡(luò)的示意圖,這是現(xiàn)在用途比較廣的一種深度學(xué)習(xí)的技術(shù),里面有很多層。比如,微軟亞洲研究院去年做的已經(jīng)有上百層,甚至數(shù)百層了。但是里面各層之間卻是有共性的,比如說(shuō)卷積、Pooling 、全連接的分類器等等。
如果上面說(shuō)的比較抽象的話,那么這邊給大家一個(gè)具體的例子。
第一層(Layer 1)對(duì)局部特征進(jìn)行抽象;
第二層(Layer 2)對(duì)比較復(fù)雜、比較大的特征進(jìn)行抽象;
第三層(Layer 3)對(duì)比較大范圍的特征進(jìn)行抽象;
……
那么一層層抽象后,我們就能得到比較復(fù)雜的信息。
深度學(xué)習(xí)在圖像識(shí)別方面有非常廣泛的應(yīng)用,比如 MNIST 圖像識(shí)別,就像大家寄快遞時(shí),只要掃一掃郵政編碼就能知道需要寄到哪里;那么在人臉識(shí)別領(lǐng)域也有非常多的課題組取得了很多成績(jī),包括中科院計(jì)算所、香港中文大學(xué)等等;在語(yǔ)音識(shí)別方面,科大訊飛也有非常深入的研究和非常好用的產(chǎn)品。
除了上面提到的和自然語(yǔ)言理解,重點(diǎn)說(shuō)說(shuō)策略分析。
大家都很關(guān)注 AlphaGo,其實(shí)就下圍棋本身而言并沒有什么值得驚訝的。大家都有一個(gè)共識(shí),任何有規(guī)則的游戲,最后人工智能都會(huì)比人類做得好。Deepmind 團(tuán)隊(duì)其實(shí)在 2013、2014 年的時(shí)候,就已經(jīng)有很多雛形的技術(shù),所以才被谷歌收購(gòu)。2014 年的時(shí)候 Deepmind 引起大家關(guān)注,是因?yàn)樗岢隽恕吧疃葘W(xué)習(xí) + 增強(qiáng)學(xué)習(xí)”的框架,可以學(xué)會(huì)打很多種小游戲(小霸王游戲機(jī)上那些)。那是一共學(xué)會(huì)了四十多種小游戲,其中二十多種超過了人類的紀(jì)錄。
所以當(dāng)它把這個(gè)技術(shù)運(yùn)用到圍棋上,并以 4 : 1 戰(zhàn)勝人類大師李世石,應(yīng)該說(shuō)是“出乎意料,情理之中”。最近聽說(shuō)一個(gè)消息,Deepmind 團(tuán)隊(duì)正在嘗試把這個(gè)框架放到星際爭(zhēng)霸上,這是一款著名的策略類游戲,如果可以打敗人類玩家,說(shuō)明未來(lái)在決策方面也可以給人提供很多幫助,類似充當(dāng)部隊(duì)中參謀長(zhǎng)的角色。
| 為什么需要神經(jīng)網(wǎng)絡(luò)處理器
之所以需要神經(jīng)網(wǎng)絡(luò)處理器,主要有兩點(diǎn)原因:
神經(jīng)網(wǎng)絡(luò)是處理智能處理迄今最好的方法;
但是,通用 CPU/GPU 處理神經(jīng)網(wǎng)絡(luò)效率低下。
所以如果要用 CPU/GPU 搭建一個(gè)擁有人腦規(guī)模突觸的神經(jīng)網(wǎng)絡(luò)可能需要用一個(gè)電站來(lái)給它供電了。所以從高性能計(jì)算機(jī)方面來(lái)看,這也是不可行的。
那么從其他領(lǐng)域也可以得到一些借鑒。
比如說(shuō) GPU,上個(gè)世紀(jì)九十年代,可能大家都自己攢過電腦,那時(shí)候我們一般都是用通用 CPU,但隨著視頻、游戲等對(duì)圖形處理的要求越來(lái)越高,才逐漸出現(xiàn)專門的 GPU,并形成了一個(gè)巨大的市場(chǎng)。這并不是說(shuō) CPU 無(wú)法處理這個(gè)問題,而是會(huì)很麻煩、特別耗電、特別慢。
再比如說(shuō) DSP,也是類似的情況,信號(hào)處理應(yīng)用非常廣闊,每個(gè)手機(jī)中都會(huì)使用到,CPU 不是不能處理,但是也不太合適,所以出現(xiàn)了專用的 DSP。
那么未來(lái)進(jìn)入智能時(shí)代是大家的共識(shí),用于智能處理的專用芯片的市場(chǎng)不會(huì)亞于 GPU 和 DSP。自然而然的結(jié)果意味著也許未來(lái)每臺(tái)計(jì)算機(jī)都可能需要一個(gè)專門的芯片,比如深度學(xué)習(xí)處理器。
| “寒武紀(jì)”系列的誕生和發(fā)展
計(jì)算所是這個(gè)領(lǐng)域的先行者,在智能計(jì)算機(jī)領(lǐng)域積累了豐碩的成果,因此寒武紀(jì)的學(xué)術(shù)淵源非常深厚:
中科院計(jì)算所陳云霽研究員:寒武紀(jì)首席科學(xué)家,師從國(guó)產(chǎn)芯片“龍芯”之父胡偉武研究員。
中科院計(jì)算所陳天石副研究員:寒武紀(jì)創(chuàng)始人兼 CEO,師從人工智能專家陳國(guó)良、姚新教授。
另外還聯(lián)合了法國(guó)的 Oliver Temam 教授,他也是神經(jīng)網(wǎng)絡(luò)處理器領(lǐng)域的專家。
可以說(shuō),寒武紀(jì)系列開創(chuàng)了深度學(xué)習(xí)處理器的方向,并在過去幾年取得了一些列豐碩成果:
| DianNao —— 電腦
為什么取名叫做“DianNao”(電腦)呢?這里還有一個(gè)有趣的故事。
原本也是準(zhǔn)備按照慣例取個(gè)英文名,但是法國(guó)的合作伙伴,也就是之前提到的 Oliver 教授提出不如取個(gè)中文名,因?yàn)檫@在外國(guó)看來(lái)是外文,顯得比較特別,于是這樣命名了世界上首個(gè)深度學(xué)習(xí)處理器。
用于神經(jīng)網(wǎng)絡(luò)的芯片其實(shí)在上世紀(jì)八十年代,包括英特爾、摩托羅拉等科技巨頭就開始了相關(guān)工作。那時(shí)的神經(jīng)網(wǎng)絡(luò)規(guī)模比較小,算法上有個(gè)神經(jīng)元就在芯片上加個(gè)神經(jīng)元,算法上有個(gè)突觸就在芯片上加個(gè)突觸。然后用電腦一連,就可以工作了。
但是,當(dāng)我們面對(duì)深度學(xué)習(xí)時(shí),傳統(tǒng)的方法無(wú)法應(yīng)對(duì)如此大規(guī)模的神經(jīng)網(wǎng)絡(luò),可能有幾十億、上百億的神經(jīng)元。如果每個(gè)神經(jīng)元要做一次乘法的話,沒有哪個(gè)芯片可能放下那么多的乘法器。即使我們能夠放下這么多的硬件突觸,訪存帶寬也無(wú)法供應(yīng)數(shù)據(jù),這是一直以來(lái)的瓶頸。
而且另一個(gè)觀察發(fā)現(xiàn):把數(shù)據(jù)從內(nèi)存搬到硬件運(yùn)算單元甚至比運(yùn)算本事更耗費(fèi)能量。
那么我們應(yīng)該如何做呢?
根據(jù)我們的策略,需要解決兩個(gè)矛盾:
算法是多變的,而芯片則是不變的;
算法的規(guī)模是無(wú)限的,而硬件運(yùn)算單元?jiǎng)t是有限的。
所以,要用有限的、固定的硬件處理無(wú)限、多變的算法,就提出了硬件運(yùn)算單元的分時(shí)復(fù)用方法。
| DaDianNao —— 大電腦
“DaDianNao”與“DianNao”的思路正好相反,“DianNao”是通過硬件的時(shí)分復(fù)用解決大規(guī)模神經(jīng)網(wǎng)絡(luò)的計(jì)算問題,而“DaDianNao”是從超級(jí)計(jì)算機(jī)的角度來(lái)想的,一個(gè)超級(jí)計(jì)算機(jī)中可能有很多芯片,每個(gè)芯片又可以放下很多核。那么一個(gè)芯片可能無(wú)法放下一個(gè)大的神經(jīng)網(wǎng)絡(luò),很多個(gè)芯片也許就能放下了,那么整個(gè)模型就能放在芯片上,好處在于就不需要內(nèi)存了,這就繞過了一直以來(lái)的訪存的瓶頸,性能由此可以大幅提升。
| PuDianNao —— 普電腦
機(jī)器學(xué)習(xí)的算法很多,根本原因是數(shù)據(jù)和問題的多樣性。不可能通過一種算法解決所有問題,如果沒有通用性,芯片未來(lái)的應(yīng)用。
因此,“PuDianNao”的設(shè)計(jì)思路就是實(shí)現(xiàn)足夠的通用性,支持主流機(jī)器學(xué)習(xí)算法的高效運(yùn)算。
主要干兩件事情:
尋找各種機(jī)器學(xué)習(xí)算法中最耗時(shí)/最普遍的運(yùn)算操作集合;
研究各種機(jī)器學(xué)習(xí)算法的局部性,降低各算法的訪存需求。
那么通過研究上面五種主要的算法行為,最后的結(jié)論就是:
需要支持 5 種主要的運(yùn)算,包括向量?jī)?nèi)積、向量距離、計(jì)數(shù)、非線性函數(shù)、排序。
歸納總結(jié)了數(shù)據(jù)的局部特征
| ShiDianNao —— 視電腦
“ShiDianNao”是去年的最新成果,我們希望把處理器集成在攝像頭中,好處在于在 Sensor(傳感器)采集的時(shí)候可以直接對(duì)圖像進(jìn)行流式的識(shí)別處理,消除了對(duì)圖像的讀寫操作。另外用比較小的卷積神經(jīng)網(wǎng)絡(luò)在芯片上處理,這就消除了對(duì)模型的讀寫操作。因此可以提升性能,降低能耗。
| 總結(jié)與展望
寒武紀(jì)迄今取得了三大技術(shù)突破:
突破了內(nèi)存帶寬的主要性能瓶頸,通過 EDRAM 技術(shù)及多芯片互聯(lián),保證神經(jīng)網(wǎng)絡(luò)模型完整放于片上,完全無(wú)需訪問內(nèi)存;
突破了片上通訊導(dǎo)致的延遲和功耗,分成的每塊內(nèi)部包含運(yùn)算部件、神經(jīng)元數(shù)據(jù)、突觸數(shù)據(jù),可以減少 90% 以上片上通訊時(shí)間;
突破了機(jī)器學(xué)習(xí)算法、變種眾多的困難,采用可編程 VLIM 處理其結(jié)構(gòu)以及靈活的運(yùn)算部件,支持幾乎所有現(xiàn)有的主流機(jī)器學(xué)習(xí)算法。
陳云霽研究員為代表的寒武紀(jì)團(tuán)隊(duì)未來(lái)的夢(mèng)想就是將代表性智能算法的處理速度和性能功耗比提高一萬(wàn)倍。這里代表性的智能算法不僅僅是深度學(xué)習(xí),還包括其他機(jī)器學(xué)習(xí)的方法。
我們知道谷歌大腦用了 1.6 萬(wàn)個(gè) CPU,如果可以實(shí)現(xiàn)提升一萬(wàn)倍的水平,那么相當(dāng)于可以把谷歌大腦裝進(jìn)我們每個(gè)人的手機(jī)里。這樣的手機(jī)可以幫助我們?cè)诒镜貙?shí)時(shí)地完成各種圖像、語(yǔ)音和文本的理解識(shí)別。
更重要的是,具備實(shí)施訓(xùn)練的能力以后,就可以不斷通過觀察人、社會(huì)和自然界的行為提升能力,成為生活中人們離不開的助理。
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。
本專題其他文章