深度學(xué)習(xí)的異構(gòu)加速技術(shù)(二):螺獅殼里做道場(chǎng)
一、綜述
在“深度學(xué)習(xí)的異構(gòu)加速技術(shù)(一)”一文所述的AI加速平臺(tái)的***階段中,無(wú)論在FPGA還是ASIC設(shè)計(jì),無(wú)論針對(duì)CNN還是LSTM與MLP,無(wú)論應(yīng)用在嵌入式終端還是云端(TPU1),其構(gòu)架的核心都是解決帶寬問題。不解決帶寬問題,空有計(jì)算能力,利用率卻提不上來(lái)。就像一個(gè)8核CPU,若其中一個(gè)內(nèi)核就將內(nèi)存帶寬100%占用,導(dǎo)致其他7個(gè)核讀不到計(jì)算所需的數(shù)據(jù),將始終處于閑置狀態(tài)。對(duì)此,學(xué)術(shù)界涌現(xiàn)了大量文獻(xiàn)從不同角度對(duì)帶寬問題進(jìn)行討論,可歸納為以下幾種:
A、流式處理與數(shù)據(jù)復(fù)用
B、片上存儲(chǔ)及其優(yōu)化
C、位寬壓縮
D、稀疏優(yōu)化
E、片上模型與芯片級(jí)互聯(lián)
F、新興技術(shù):二值網(wǎng)絡(luò)、憶阻器與HBM
下面對(duì)上述方法如何解決帶寬問題,分別論述。
二、不同招式的PK與演進(jìn)
2.1、流式處理與數(shù)據(jù)復(fù)用
流式處理是應(yīng)用于FPGA和專用ASIC高效運(yùn)算結(jié)構(gòu),其核心是基于流水線的指令并行,即當(dāng)前處理單元的結(jié)果不寫回緩存,而直接作為下一級(jí)處理單元的輸入,取代了當(dāng)前處理單元結(jié)果回寫和下一處理單元數(shù)據(jù)讀取的存儲(chǔ)器訪問。多核CPU和GPU多采用數(shù)據(jù)并行構(gòu)架,與流式處理構(gòu)架的對(duì)比如圖2.1所示。圖左為數(shù)據(jù)并行的處理方式,所有運(yùn)算單元受控于一個(gè)控制模塊,統(tǒng)一從緩存中取數(shù)據(jù)進(jìn)行計(jì)算,計(jì)算單元之間不存在數(shù)據(jù)交互。當(dāng)眾多計(jì)算單元同時(shí)讀取緩存,將產(chǎn)生帶寬競(jìng)爭(zhēng)造成瓶頸;圖右為基于指令并行的二維流式處理,即每個(gè)運(yùn)算單元都有獨(dú)立的指令(即定制運(yùn)算邏輯),數(shù)據(jù)從相鄰計(jì)算單元輸入,并輸出到下一級(jí)計(jì)算單元,只有與存儲(chǔ)相鄰的一側(cè)存在數(shù)據(jù)交互,從而大大降低了對(duì)存儲(chǔ)帶寬的依賴,代表為FPGA和專用ASIC的定制化設(shè)計(jì)。
圖2.1 數(shù)據(jù)并行與流式處理的對(duì)比
圖2.2 一維脈動(dòng)陣列(上)TPU中的二維脈動(dòng)陣列(下)
當(dāng)流式處理中各個(gè)處理單元(Processing Element, PE)具有相同結(jié)構(gòu)時(shí),有一個(gè)專屬名稱——脈動(dòng)矩陣,一維的脈動(dòng)矩陣如圖2.2(上)所示。當(dāng)一個(gè)處理單元從存儲(chǔ)器讀取數(shù)據(jù)處理,經(jīng)過若干同構(gòu)PE處理后寫回到存儲(chǔ)器。對(duì)存儲(chǔ)器而言,只需滿足單PE的讀寫帶寬即可,降低了數(shù)據(jù)存取頻率。脈動(dòng)架構(gòu)的思想很簡(jiǎn)單:讓數(shù)據(jù)盡量在處理單元中多流動(dòng)一段時(shí)間。當(dāng)一個(gè)數(shù)據(jù)從***個(gè)PE輸入直至到達(dá)***一個(gè)PE,它已經(jīng)被處理了多次。因此,它可以在小帶寬下實(shí)現(xiàn)高吞吐[1]。
TPU中采用的二維脈動(dòng)陣列如圖2.2(下)所示,用以實(shí)現(xiàn)矩陣-矩陣乘和向量-矩陣乘。數(shù)據(jù)分別從Cell陣列的上側(cè)和左側(cè)流入,從下側(cè)流出。每個(gè)Cell是一個(gè)乘加單元,每個(gè)周期完成一次乘法和一次加法。當(dāng)使用該脈動(dòng)陣列做卷積運(yùn)算時(shí),二維FeatureMap需要展開成一維向量,同時(shí)Kernel經(jīng)過旋轉(zhuǎn),而后輸入,如TPU專利中的圖2.3所示。
圖2.3 TPU專利中,脈動(dòng)陣列在卷積運(yùn)算時(shí)的數(shù)據(jù)重排
在極大增加數(shù)據(jù)復(fù)用的同時(shí),脈動(dòng)陣列也有兩個(gè)缺點(diǎn),即數(shù)據(jù)重排和規(guī)模適配。***,脈動(dòng)矩陣主要實(shí)現(xiàn)向量/矩陣乘法。以CNN計(jì)算為例,CNN數(shù)據(jù)進(jìn)入脈動(dòng)陣列需要調(diào)整好形式,并且嚴(yán)格遵循時(shí)鐘節(jié)拍和空間順序輸入。數(shù)據(jù)重排的額外操作增加了復(fù)雜性,據(jù)推測(cè)由軟件驅(qū)動(dòng)實(shí)現(xiàn)。第二,在數(shù)據(jù)流經(jīng)整個(gè)陣列后,才能輸出結(jié)果。當(dāng)計(jì)算的向量中元素過少,脈動(dòng)陣列規(guī)模過大時(shí),不僅難以將陣列中的每個(gè)單元都利用起來(lái),數(shù)據(jù)的導(dǎo)入和導(dǎo)出延時(shí)也隨著尺寸擴(kuò)大而增加,降低了計(jì)算效率。因此在確定脈動(dòng)陣列的規(guī)模時(shí),在考慮面積、能耗、峰值計(jì)算能力的同時(shí),還要考慮典型應(yīng)用下的效率。
寒武紀(jì)的DianNao系列芯片構(gòu)架也采用了流式處理的乘加樹(DianNao[2]、DaDianNao[3]、PuDianNao[4])和類脈動(dòng)陣列的結(jié)構(gòu)(ShiDianNao[5])。為了兼容小規(guī)模的矩陣運(yùn)算并保持較高的利用率,同時(shí)更好的支持并發(fā)的多任務(wù),DaDianNao和PuDianNao降低了計(jì)算粒度,采用了雙層細(xì)分的運(yùn)算架構(gòu),即在頂層的PE陣列中,每個(gè)PE由更小規(guī)模的多個(gè)運(yùn)算單元構(gòu)成,更細(xì)致的任務(wù)分配和調(diào)度雖然占用了額外的邏輯,但有利于保證每個(gè)運(yùn)算單元的計(jì)算效率并控制功耗,如圖2.4所示。
圖2.4 基于流式處理的計(jì)算單元組織結(jié)構(gòu):從上到下依次為DianNao、DaDianNao整體框架與處理單元、ShiDianNao、PuDianNao的總體框圖和每個(gè)MLU處理單元的內(nèi)部結(jié)構(gòu)
除了采用流式處理減少PE對(duì)輸入帶寬的依賴,還可通過計(jì)算中的數(shù)據(jù)復(fù)用降低帶寬,CNN中的復(fù)用方式如圖2.5所示。
(a)
(b)
(c)
圖2.5 CNN中的數(shù)據(jù)復(fù)用
在圖2.5 的(a) (b)(c)分別對(duì)應(yīng)卷積核的整張F(tuán)eatureMap復(fù)用、一組FeatureMap對(duì)多組Filter的復(fù)用、Filter通過增加BatchSize而復(fù)用。當(dāng)上述三種方式結(jié)合使用時(shí),可極大提升數(shù)據(jù)復(fù)用率,這也是TPU在處理CNN時(shí)逼近峰值算力,達(dá)到86Tops/s的原因之一。
2.2、片上存儲(chǔ)及其優(yōu)化
片外存儲(chǔ)器(如DDR等)具有容量大的優(yōu)勢(shì),然而在ASIC和FPGA設(shè)計(jì)中,DRAM的使用常存在兩個(gè)問題,一是帶寬不足,二是功耗過大。由于需要高頻驅(qū)動(dòng)IO,DRAM的訪問能耗通常是單位運(yùn)算的200倍以上,DRAM訪問與其它操作的能耗對(duì)比如圖2.6所示。
圖2.6 片外DRAM訪問的能耗開銷
為了解決帶寬和能耗問題,通常采用兩種方式:片上緩存和臨近存儲(chǔ)。
1)增加片上緩存,有利于在更多情況下增加數(shù)據(jù)復(fù)用。例如矩陣A和B相乘時(shí),若B能全部存入緩存,則僅加載B一次,復(fù)用次數(shù)等價(jià)于A的行數(shù);若緩存不夠,則需多次加載,增加帶寬消耗。當(dāng)片上緩存足夠大,可以存下所有計(jì)算所需的數(shù)據(jù),或通過主控處理器按需發(fā)送數(shù)據(jù),即可放棄片外DRAM,極大降低功耗和板卡面積,這也是半導(dǎo)體頂會(huì)ISSCC2016中大部分AI ASIC論文采用的方案。
2)臨近存儲(chǔ)。當(dāng)從片上緩存加載數(shù)據(jù)時(shí),若采用單一的片上存儲(chǔ),其接口經(jīng)常不能滿足帶寬的需求,集中的存儲(chǔ)和較長(zhǎng)的讀寫路徑也會(huì)增加延遲。此時(shí)可以增加片上存儲(chǔ)的數(shù)量并將其分布于計(jì)算單元數(shù)據(jù)接口的臨近位置,使計(jì)算單元可以獨(dú)享各自的存儲(chǔ)器帶寬。隨著數(shù)量的增加,片上存儲(chǔ)的總帶寬也隨之增加,如圖2.7所示。
圖2.7 TPU(上)和DianNao(下)的片上存儲(chǔ)器分布
圖2.7中的脈動(dòng)陣列和乘加樹都是規(guī)模較大的計(jì)算單元,屬于粗粒度。當(dāng)采用細(xì)粒度計(jì)算單元的結(jié)構(gòu)時(shí),如圖2.8所示,可采用分層級(jí)存儲(chǔ)方式,即除了在片上配置共享緩存之外,在每個(gè)計(jì)算單元中也配置專屬存儲(chǔ)器,使計(jì)算單元獨(dú)享其帶寬并減少對(duì)共享緩存的訪問。寒武紀(jì)的DaDianNao采用也是分層級(jí)存儲(chǔ),共三層構(gòu)架,分別配置了中央存儲(chǔ)器,四塊環(huán)形分布存儲(chǔ)器,和輸入輸出存儲(chǔ)器,如圖2.9所示,極大增強(qiáng)了片上的存儲(chǔ)深度和帶寬,輔以芯片間的互聯(lián)總線,可將整個(gè)模型放在片上,實(shí)現(xiàn)片上Training和Inference。
圖2.8 細(xì)粒度計(jì)算單元與鄰近存儲(chǔ),上圖中深紅色為存儲(chǔ)器
圖2.9DaDianNao的計(jì)算單元與存儲(chǔ)器分布
2.3、位寬壓縮
在兩年前,深度學(xué)習(xí)的定制處理器構(gòu)架還處于初始階段,在Inference中繼承了CPU和GPU的32bit浮點(diǎn)量化,每次乘法運(yùn)算不僅需要12字節(jié)的讀寫(8bit量化時(shí)為3字節(jié)),32位運(yùn)算單元占用較大的片上面積,增加了能耗和帶寬消耗。PuDianNao的論文中指出[4],16bit乘法器在ASIC占用面積上是32bit乘法器的1/5,即在相同尺寸的面積上可布局5倍數(shù)量的乘法器。當(dāng)使用8bit時(shí)將獲得更高收益。因此,學(xué)術(shù)界孜孜不倦的追求更低的量化精度,從16bit,到自定義的9bit[6],8bit,甚至更激進(jìn)的2bit和1bit的二值網(wǎng)絡(luò)[7-8]。當(dāng)高位寬轉(zhuǎn)為低位寬的量化時(shí),不可避免的帶來(lái)精度損失。對(duì)此,可通過量化模式、表征范圍的調(diào)整、編碼等方式、甚至增加模型深度(二值網(wǎng)絡(luò))來(lái)降低對(duì)精度的影響,其中量化模式、表征范圍的調(diào)整方法如圖2.10 所示。
圖2.10 (a) 幾種量化模式,和 (b) 動(dòng)態(tài)位寬調(diào)整
圖2.10 (a) 中為不同的量化模式,同樣的8bit,可根據(jù)模型中數(shù)值的分布情況采用為線性量化、Log量化、或非線性量化表示。圖2.10 (b)是Jiantao Qiu等提出的動(dòng)態(tài)位寬調(diào)整[9],使8bit的量化在不同層之間使用不同的偏移量和整數(shù)、小數(shù)分配,從而在最小量化誤差的約束下動(dòng)態(tài)調(diào)整量化范圍和精度,結(jié)合重訓(xùn)練,可大幅降低低位寬帶來(lái)的影響。在CNN模型中的測(cè)試結(jié)果見下表:
低位寬意味著在處理相同的任務(wù)時(shí)更小的算力、帶寬和功耗消耗。在算力不變的前提下,成倍的增加吞吐。對(duì)于數(shù)據(jù)中心,可大幅度降低運(yùn)維成本,使用更少的服務(wù)器或更廉價(jià)的計(jì)算平臺(tái)即可滿足需求(TPU的數(shù)據(jù)類型即為8/16bit);對(duì)于更注重能耗比和小型化嵌入式前端,可大幅降低成本。目前,8bit的量化精度已經(jīng)得到工業(yè)界認(rèn)可,GPU也宣布在硬件上提供對(duì)8bit的支持,從而將計(jì)算性能提高近4倍,如圖2.11所示。FPGA巨頭Xilinx也在AI加速的官方文檔中論述了8bit量化的可行性[10]。
圖2.11 NVIDIA對(duì)int8的支持
2.4、稀疏優(yōu)化
上述的論述主要針對(duì)稠密矩陣計(jì)算。在實(shí)際應(yīng)用中,有很大一部分AI應(yīng)用和矩陣運(yùn)算屬于稀疏運(yùn)算,其主要來(lái)源于兩個(gè)方面:
1) 算法本身存在稀疏。如NLP(Natural Language Processing,自然語(yǔ)言處理)、推薦算法等應(yīng)用中,通常一個(gè)幾萬(wàn)維的向量中,僅有幾個(gè)非零元素,統(tǒng)統(tǒng)按照稠密矩陣處理顯然得不償失。
2) 算法改造成稀疏。為了增加普適性,深度學(xué)習(xí)的模型本身存在冗余。在針對(duì)某一應(yīng)用完成訓(xùn)練后,很多參數(shù)的貢獻(xiàn)極低,可以通過剪枝和重新訓(xùn)練將模型轉(zhuǎn)化為稀疏。如深鑒科技的韓松在FPGA2017上提出針對(duì)LSTM的模型剪枝和專用的稀疏化處理架構(gòu),如圖2.12 所示[11]。
圖2.12 LSTM模型剪枝比例與精度(左)和稀疏處理構(gòu)架(右)
圖2.12 左圖,為L(zhǎng)STM模型剪枝掉90%的參數(shù)后,基本沒有精度損失,模型得到了極大的稀疏化。圖右側(cè)為針對(duì)稀疏的FPGA處理構(gòu)架,將處理的PE之間進(jìn)行異步調(diào)度,在每個(gè)PE的數(shù)據(jù)入口使用獨(dú)立的數(shù)據(jù)緩存,僅將非零元素壓入?yún)⑴c計(jì)算,獲得了3倍于Pascal Titan X的性能收益和11.5倍的功耗收益。稀疏化并不僅限于LSTM,在CNN上也有對(duì)應(yīng)的應(yīng)用。
與之對(duì)應(yīng)的,寒武紀(jì)也開發(fā)了針對(duì)稀疏神經(jīng)網(wǎng)絡(luò)的Cambricon-X[12]處理器,如圖2.13所示。類似的,Cambricon-X也在每個(gè)PE的輸入端口加入了Indexing的步驟,將非零元素篩選出后再輸入進(jìn)PE。與深鑒不同的是,Cambricon-X支持不同稀疏程度的兩種indexing編碼,在不同稀疏程度的模型下使用不同的編碼方式,以優(yōu)化帶寬消耗。
圖2.13 寒武紀(jì)Cambricon-X稀疏神經(jīng)網(wǎng)絡(luò)處理器結(jié)構(gòu)
可針對(duì)稀疏的優(yōu)化有兩個(gè)目的,一是從緩存中讀入的都是有效數(shù)據(jù)從而避免大量無(wú)用的零元素占滿帶寬的情況,二是保證片上PE的計(jì)算效率,使每個(gè)PE的每次計(jì)算的輸入都是“干貨”。當(dāng)模型剪枝結(jié)合稀疏處理構(gòu)架,將成倍提升FPGA和ASIC的計(jì)算能力,效果顯著,是異構(gòu)加速的熱點(diǎn)之一。
綜上所述,稀疏化是從模型角度,從根本上減少計(jì)算量,在構(gòu)架演進(jìn)缺乏突破的情況下,帶來(lái)的收益是構(gòu)架優(yōu)化所不能比擬的。尤其在結(jié)合位寬壓縮后,性能提升非常顯著。然而稀疏化需要根據(jù)構(gòu)架特點(diǎn),且會(huì)帶來(lái)精度損失,需要結(jié)合模型重訓(xùn)練來(lái)彌補(bǔ),反復(fù)調(diào)整。上述過程增加了稀疏優(yōu)化的門檻,需要算法開發(fā)和硬件優(yōu)化團(tuán)隊(duì)的聯(lián)合協(xié)作。對(duì)此,深鑒科技等一些公司推出稀疏+重訓(xùn)練的專用工具,簡(jiǎn)化了這一過程,在大量部署的場(chǎng)景下,將帶來(lái)相當(dāng)?shù)某杀緝?yōu)勢(shì)。
2.5、片上模型與芯片級(jí)互聯(lián)
為了解決帶寬問題,通常的做法是增加數(shù)據(jù)復(fù)用。在每次計(jì)算的兩個(gè)值中,一個(gè)是權(quán)值Weight,一個(gè)是輸入Activation。如果有足夠大的片上緩存,結(jié)合適當(dāng)?shù)奈粚拤嚎s方法,將所有Weight都緩存在片上,每次僅輸入Activation,就可以在優(yōu)化數(shù)據(jù)復(fù)用之前就將帶寬減半。然而從GoogleNet50M到ResNet 150M的參數(shù)數(shù)量,在高成本的HBM普及之前,ASIC在相對(duì)面積上無(wú)法做到如此大的片上存儲(chǔ)。而隨著模型研究的不斷深入,更深、參數(shù)更多的模型還會(huì)繼續(xù)出現(xiàn)。對(duì)此,基于芯片級(jí)互聯(lián)和模型拆分的處理模式,結(jié)合多片互聯(lián)技術(shù),將多組拆分層的參數(shù)配置于多個(gè)芯片上,在Inference過程中用多芯片共同完成同一任務(wù)的處理。寒武紀(jì)的DaDianNao就是實(shí)現(xiàn)這樣的一種芯片互聯(lián)結(jié)合大緩存的設(shè)計(jì),如圖2.14所示。
圖2.14DaDianNao中的存儲(chǔ)器分布(圖中藍(lán)色部分)和多片互聯(lián)時(shí)的加速能力(以GPU K20M為單位性能的比較)
為了將整個(gè)模型放在片上,DaDianNao一方面將片上緩存的容量增加到36MB(DaDianNao為36MB和4608個(gè)乘加器,TPU為28MB緩存和65536乘加器),充分保證計(jì)算單元的讀寫帶寬,另一方面通過HT2.0實(shí)現(xiàn)6.4GB/s*4通道的片間通信帶寬,降低數(shù)據(jù)才層與層之間傳遞的延遲,完全取代了片外DRAM的交互,解決帶寬制約計(jì)算的問題。與之相應(yīng)的,微軟在Hot Chips 2017上提出將LSTM模型拆分后部署到多片F(xiàn)PGA,以擺脫片外存儲(chǔ)器訪問以實(shí)現(xiàn)Inference下的超低延遲[2]。
2.6、新興技術(shù):二值網(wǎng)絡(luò)、憶阻器與HBM
除了采用上述方式解決帶寬問題,學(xué)術(shù)界近期涌現(xiàn)出了兩種更為激進(jìn)的方法,二值網(wǎng)絡(luò)和憶阻器;工業(yè)界在存儲(chǔ)器技術(shù)上也有了新的突破,即HBM。
二值網(wǎng)絡(luò)是將Weight和Activation中的一部分,甚至全部轉(zhuǎn)化為1bit,將乘法簡(jiǎn)化為異或等邏輯運(yùn)算,大大降低帶寬,非常適合DSP資源有限而邏輯資源豐富的FPGA,以及可完全定制的ASIC。相對(duì)而言,GPU的計(jì)算單元只能以32/16/8bit為單位進(jìn)行運(yùn)算,即使運(yùn)行二值模型,加速效果也不會(huì)比8bit模型快多少。因此,二值網(wǎng)絡(luò)成為FPGA和ASIC在低功耗嵌入式前端應(yīng)用的利器。目前二值網(wǎng)絡(luò)的重點(diǎn)還在模型討論階段,討論如何通過增加深度與模型調(diào)整來(lái)彌補(bǔ)二值后的精度損失。在簡(jiǎn)單的數(shù)據(jù)集下的效果已得到認(rèn)可,如MNIST,Cifar-10等。
既然帶寬成為計(jì)算瓶頸,那么有沒有可能把計(jì)算放到存儲(chǔ)器內(nèi)部呢?既然計(jì)算單元臨近存儲(chǔ)的構(gòu)架能提升計(jì)算效率,那么能否把計(jì)算和存儲(chǔ)二者合一呢?憶阻器正是實(shí)現(xiàn)存儲(chǔ)器內(nèi)部計(jì)算的一種器件,通過電流、電壓和電導(dǎo)的乘法關(guān)系,在輸入端加入對(duì)應(yīng)電壓,在輸出即可獲得乘加結(jié)果,如圖2.15所示[13]。當(dāng)將電導(dǎo)作為可編程的Weight值,輸入作為Activation,即可實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)計(jì)算。目前在工藝限制下,8bit的可編程電導(dǎo)技術(shù)還不成熟,但在更低量化精度下尚可。將存儲(chǔ)和計(jì)算結(jié)合,將形成一種有別于馮諾依曼體系的全新型構(gòu)架,稱為在存儲(chǔ)計(jì)算(In-Memory Computing),有著巨大的想象空間。
圖2.15 憶阻器完成乘加示意圖(左)與向量-矩陣運(yùn)算(右)
隨著工業(yè)界芯片制造技術(shù)的發(fā)展與摩爾定律的逐漸失效,簡(jiǎn)單通過提升工藝制程來(lái)在面積不變的條件下增加晶體管數(shù)量的方式已經(jīng)逐漸陷入瓶頸。相應(yīng)的,二維技術(shù)的局限使工藝向第三維度邁進(jìn)。例如在存儲(chǔ)領(lǐng)域,3D構(gòu)架和片內(nèi)垂直堆疊技術(shù)可在片上成倍增加緩存容量,其代表為高帶寬存儲(chǔ)器(HighBandwidth Memory,HBM)和混合存儲(chǔ)器立方體(HybridMemory Cube,HMC)。據(jù)Intel透露,Lake Crest的片上HBM2可提供***12倍于DDR4的帶寬。目前,NVIDIAP100和V100 GPU已集成HBM2,片內(nèi)帶寬高達(dá)900GB/s;TPU2的片內(nèi)HBM帶寬為600GB/s;Xilinx集成HBM的FPGA將在18年上市。這一技術(shù)革新使得對(duì)于當(dāng)前的深度學(xué)習(xí)模型,即使不采用芯片級(jí)互聯(lián)方案也有望將整個(gè)模型置于片上,釋放了FPGA/ASIC對(duì)片外DRAM的需求,為AI芯片發(fā)展提供巨大動(dòng)力。
三、結(jié)語(yǔ)
上面的論述主要以當(dāng)前學(xué)術(shù)界在AI處理器構(gòu)架方面的討論為主。然而在工業(yè)界,AI的大量需求已經(jīng)在某些領(lǐng)域集中爆發(fā),如云服務(wù)、大數(shù)據(jù)處理、安防、手機(jī)端應(yīng)用等。甚至在一些應(yīng)用中已經(jīng)落地,如Google的TPU,華為的麒麟970等。AI處理器的發(fā)展和現(xiàn)狀如何?
參考文獻(xiàn)
[1] 唐杉, 脈動(dòng)陣列-因Google TPU獲得新生. http://mp.weixin.qq.com/s/g-BDlvSy-cx4AKItcWF7jQ
[2] Chen Y, Chen Y, Chen Y, et al.DianNao: a small-footprint high-throughput accelerator for ubiquitousmachine-learning[C]// International Conference on Architectural Support forProgramming Languages and Operating Systems. ACM, 2014:269-284.
[3] Luo T, Luo T, Liu S, et al.DaDianNao: A Machine-Learning Supercomputer[C]// Ieee/acm InternationalSymposium on Microarchitecture. IEEE, 2015:609-622.
[4] Liu D, Chen T, Liu S, et al.PuDianNao: A Polyvalent Machine Learning Accelerator[C]// TwentiethInternational Conference on Architectural Support for Programming Languages andOperating Systems. ACM, 2015:369-381.
[5] Du Z, Fasthuber R, Chen T, et al.ShiDianNao: shifting vision processing closer to the sensor[C]// ACM/IEEE,International Symposium on Computer Architecture. IEEE, 2015:92-104.
[6] Eric Chung, Jeremy Fowers, KalinOvtcharov, et al. Accelerating Persistent Neural Networks at Datacenter Scale.Hot Chips 2017.
[7] Meng W, Gu Z, Zhang M, et al.Two-bit networks for deep learning on resource-constrained embedded devices[J].arXiv preprint arXiv:1701.00485, 2017.
[8] Hubara I, Courbariaux M, SoudryD, et al. Binarized neural networks[C]//Advances in neural informationprocessing systems. 2016: 4107-4115.
[9] Qiu J, Wang J, Yao S, et al.Going deeper with embedded fpga platform for convolutional neuralnetwork[C]//Proceedings of the 2016 ACM/SIGDA International Symposium onField-Programmable Gate Arrays. ACM, 2016: 26-35.
[10] Xilinx, Deep Learningwith INT8Optimizationon Xilinx Devices, https://www.xilinx.com/support/documentation/white_papers/wp486-deep-learning-int8.pdf
[11] Han S, Kang J, Mao H, et al.Ese: Efficient speech recognition engine with compressed lstm on fpga[J]. arXivpreprint arXiv:1612.00694, 2016.
[12] Zhang S, Du Z, Zhang L, et al. Cambricon-X: An accelerator for sparseneural networks[C]// Ieee/acm International Symposium on Microarchitecture.IEEE Computer Society, 2016:1-12.
[13] Shafiee A, Nag A, MuralimanoharN, et al. ISAAC: A convolutional neural network accelerator with in-situ analogarithmetic in crossbars[C]//Proceedings of the 43rd International Symposium onComputer Architecture. IEEE Press, 2016: 14-26.
原文鏈接:http://suo.im/4m1gvp
作者:kevinxiaoyu
【本文是51CTO專欄作者“騰訊云技術(shù)社區(qū)”的原創(chuàng)稿件,轉(zhuǎn)載請(qǐng)通過51CTO聯(lián)系原作者獲取授權(quán)】