從ISSCC 2017看人工智能芯片的四大趨勢(shì)
身處人工智能的風(fēng)口,ISSCC也不能幸免地將本次大會(huì)主題定為「Intelligent chips for a smarter world」。
同時(shí),大會(huì)還在研究論文報(bào)告中設(shè)立了專門(mén)討論深度學(xué)習(xí)處理芯片的論文session,在SPR海報(bào)session中,也有兩篇來(lái)自復(fù)旦大學(xué)(與華盛頓大學(xué)合作)和清華大學(xué)的研究,分別針對(duì)RNN和CNN的處理器芯片設(shè)計(jì)。除此之外,大會(huì)也安排了探討神經(jīng)網(wǎng)絡(luò)相關(guān)課題的tutorialsession(面向初學(xué)者)和forum session(面向?qū)I(yè)人士)。
本次ISSCC中關(guān)于深度學(xué)習(xí)的論文集中出現(xiàn)在session 14。
作為有深度的專業(yè)人工智能公眾號(hào),矽說(shuō)將從各個(gè)技術(shù)報(bào)告中進(jìn)行深度歸納、刨析在這些論文引導(dǎo)下的AI芯片發(fā)展趨勢(shì)。
趨勢(shì)一:更高效的大卷積解構(gòu)/復(fù)用
在《腦芯編(四)》中,我們?cè)岬?,在?biāo)準(zhǔn)SIMD的基礎(chǔ)上,CNN由于其特殊的復(fù)用機(jī)制,可以進(jìn)一步減少總線上的數(shù)據(jù)通信。而復(fù)用的這一概念,在超大型神經(jīng)網(wǎng)絡(luò)中的顯得格外重要。對(duì)于AlexNet/VGG這些模型中的中后級(jí)卷積核,卷積核的參數(shù)量可以達(dá)3x3x512之巨大,合理地分解這些超大卷積到有效的硬件上成為了一個(gè)值得研究的問(wèn)題。
在14.2 中,韓國(guó)KAIST學(xué)院分析了集中不同的分解方法,包括輸入圖像/卷積核分解,及其混合模式,得到了最終的方案。
而來(lái)自比利時(shí)的IMEC在報(bào)告14.5中對(duì)該問(wèn)題也有涉及。其方案在Eyeriss的基礎(chǔ)上,沿用了其在2016年VLSI提出的2D SIMD方案。輪流復(fù)用輸入與參數(shù),達(dá)到高效的數(shù)據(jù)分解。
趨勢(shì)二:更低的Inference計(jì)算/存儲(chǔ)位寬
在過(guò)去的一年,對(duì)AI芯片最大的演進(jìn)可能就是位寬的迅速衰減。從32位fixed point,16位fixed point,8位fixedpoint,甚至4位fixed point的位寬。在CS的理論計(jì)算領(lǐng)域,2位甚至2進(jìn)制的參數(shù)位寬。在ISSCC上,這些“傳說(shuō)”都已經(jīng)逐漸進(jìn)入實(shí)踐領(lǐng)域。
KAIST采用了類似傳說(shuō)中Nervana的flexpoint方案,在定點(diǎn)系統(tǒng)中采用可浮動(dòng)的定點(diǎn)進(jìn)制方案。該方案的前提是在某一固定層的前提下,所有該層的卷積核均服從一個(gè)由訓(xùn)練確定的進(jìn)制方案,但是在層和層之間是可以變化的。
其實(shí),這類方法也不是近年來(lái)的創(chuàng)舉,在《腦心編(四)》中我們提到的ARM SIMD指令集——NEON就已經(jīng)采取了這些辦法,只是最小位寬沒(méi)有到達(dá)4位罷了。而報(bào)告14.5中IMEC的方案在變化進(jìn)制的基礎(chǔ)上,進(jìn)一步采用的通過(guò)改變電壓和頻率的方法得到更優(yōu)的能效值。
另外,指的一提的是參數(shù)的非線性映射以減少參數(shù)讀取時(shí)的位寬也成為了一個(gè)新的關(guān)注點(diǎn)。其理論基礎(chǔ)由Stanford 大學(xué)Bill Dally課題組提出,目前已經(jīng)出現(xiàn)了類似的芯片實(shí)現(xiàn),詳見(jiàn)14.2。
趨勢(shì)三:更多樣的存儲(chǔ)器定制設(shè)計(jì)
當(dāng)乘加計(jì)算(MAC,Multiplier and accumulation)不再成為神經(jīng)網(wǎng)絡(luò)加速器的設(shè)計(jì)瓶頸時(shí),一個(gè)新的研究方向就冉冉而生——如何減少存儲(chǔ)器的訪問(wèn)延時(shí)。在《腦心編(六)》里,我們提到過(guò),離計(jì)算越近的存儲(chǔ)器越值錢(qián)。于是新型的存儲(chǔ)結(jié)構(gòu)也應(yīng)運(yùn)而生。
首先是密歇根大學(xué)提出了面向深度學(xué)習(xí)優(yōu)化的協(xié)處理器多層高速緩存機(jī)制,通過(guò)數(shù)據(jù)的重要性對(duì)數(shù)據(jù)位置進(jìn)行定義。
在KAIST的另外一篇文章14.6里,作者提出了一種可轉(zhuǎn)置(transpose)的SRAM架構(gòu),即數(shù)據(jù)的寫(xiě)入與讀出可以是通向的,也可以是垂直的。該方法能省去卷積網(wǎng)絡(luò)中額外的數(shù)據(jù)整理,并且就大卷積的解構(gòu)提供了芯思路。
趨勢(shì)四:更稀疏的大規(guī)模向量乘實(shí)現(xiàn)
神經(jīng)網(wǎng)絡(luò)雖然大,但是,實(shí)際上的有非常多以零為輸入的情況(Relu輸出或者系數(shù)為0)此時(shí)稀疏計(jì)算可以高校地減少無(wú)用能效。來(lái)自哈佛大學(xué)的團(tuán)隊(duì)就該問(wèn)題優(yōu)化的五級(jí)流水線結(jié)構(gòu),在最后一級(jí)輸出了觸發(fā)信號(hào),見(jiàn)14.3。
在Activation層后對(duì)下一次計(jì)算的必要性進(jìn)行預(yù)先判斷,如果發(fā)現(xiàn)這是一個(gè)稀疏節(jié)點(diǎn),則觸發(fā)SKIP信號(hào),避免乘法運(yùn)算的功耗,以達(dá)到減少無(wú)用功耗的問(wèn)題。
這一問(wèn)題甚至受到了Bill Dally老人家的關(guān)注,在其Forum的演講中提到了它們尚未發(fā)表的稀疏加速架構(gòu)。
只可惜,我們要直到九月份才能讀到paper。
最后,我們總結(jié)下這四個(gè)趨勢(shì)的關(guān)鍵詞——復(fù)用、位寬、存儲(chǔ)、稀疏。要做 AI 芯片的你,有關(guān)注到的么?
【本文是51CTO專欄機(jī)構(gòu)機(jī)器之心的原創(chuàng)文章,微信公眾號(hào)“機(jī)器之心( id: almosthuman2014)”】