2017年,人工智能最火的風(fēng)口必定是AI芯片。
AI芯片的涌現(xiàn),與深度進(jìn)修技巧的成熟及運(yùn)用密弗成分。深度進(jìn)修的進(jìn)程可以簡化懂得為應(yīng)用年夜量標(biāo)注的數(shù)據(jù)停止練習(xí),練習(xí)出一個(gè)卓有成效的模子,再將這一模子應(yīng)用于新數(shù)據(jù)的揣摸。
這個(gè)耳熟能詳?shù)谋钏惴ㄊ菢淞⒃诙鄬幽暌狗秶窠?jīng)收集之上的,后者實(shí)質(zhì)上是包括了矩陣乘積和卷積操作的年夜運(yùn)算量函數(shù)。常常須要先界說一個(gè)包括回歸成績的方差、分類時(shí)的穿插熵的價(jià)值函數(shù),再數(shù)據(jù)分批傳遞進(jìn)收集,依據(jù)參數(shù)求導(dǎo)出價(jià)值函數(shù)值,從而更新全部收集模子。這平日意味著至多幾百萬次的相乘處置,盤算量偉大。淺顯來講,包括了數(shù)百萬次A*B+C的盤算,算力消費(fèi)偉大。
為處理這一成績,AI芯片應(yīng)運(yùn)而生。2017年開端,環(huán)繞AI芯片,半導(dǎo)體行業(yè),戰(zhàn)事進(jìn)級(jí),賽場上新老玩家暗流涌動(dòng),連橫合眾,年夜有“AI芯片太多,裝備都不敷用了”之勢。
時(shí)光進(jìn)入2018年,備受存眷的年夜小公司都將正式推出自研AI芯片。這些芯片也都被業(yè)界寄與厚望,能否能處理或許部門處理終端盤算困難?甚么樣的芯片能力夠真正順應(yīng)終端智能的需求?
這些都是我們非常獵奇且存眷的成績。因而也與一些創(chuàng)業(yè)者停止了交換。本文等于個(gè)中的一篇,來自于與探境科技CEO魯勇的訪談。今朝探境科技正研發(fā)實(shí)用于終真?zhèn)€AI芯片,在創(chuàng)業(yè)前魯勇曾在芯片廠商Marvell任高管,從事過存儲(chǔ)芯片的相干任務(wù),而存儲(chǔ)恰是盤算以外一切芯片另外一焦點(diǎn)。基于過往的閱歷、經(jīng)歷與不雅察,魯勇以為,做實(shí)用于終真?zhèn)€AI芯片,除要在盤算方面晉升,存儲(chǔ)優(yōu)化異樣相當(dāng)主要。
以下為注釋,來自36氪對(duì)魯勇的訪談內(nèi)容,36氪基于訪談內(nèi)容對(duì)其不雅點(diǎn)停止了整頓。
一
AI算法在芯片完成時(shí)碰到的焦點(diǎn)成績不是盤算資本而是存儲(chǔ)成績,強(qiáng)如GPU供給浩瀚的盤算資本,而現(xiàn)實(shí)盤算才能與盤算資本年夜為下降。
歸納綜合來講,存儲(chǔ)成績分為兩個(gè)部門,一個(gè)是帶寬成績,一個(gè)是功耗成績,這兩個(gè)成績的處理其實(shí)也是耦合在一路的。
詳細(xì)來講,深度進(jìn)修算法應(yīng)用年夜量存儲(chǔ)資本,即包含靜態(tài)模子參數(shù),也包含收集層之間的靜態(tài)數(shù)據(jù)。關(guān)于靜態(tài)模子參數(shù)權(quán)重,動(dòng)輒幾十兆上百兆樣本數(shù)目,沒法在片上SRAM保留,是以須要存入內(nèi)部DRAM。DRAM與AI盤算芯片間帶寬無限,假如芯片上盤算資本很年夜,但受存儲(chǔ)帶寬的瓶頸限制,現(xiàn)實(shí)盤算力年夜為降低。
打比喻來講,擔(dān)任存儲(chǔ)的DRAM和與擔(dān)任盤算的芯片就像是位于河兩岸的倉庫,全部運(yùn)算的進(jìn)程可以類比從存儲(chǔ)的倉庫搬取數(shù)據(jù)、搬運(yùn)過橋,將數(shù)據(jù)搬入盤算的單位停止處置,并高速輪回來去。而以后的AI芯片技巧重點(diǎn)晉升將數(shù)據(jù)搬入盤算單位后的處置速度,但由于搬出數(shù)據(jù)、過橋的進(jìn)程根本未發(fā)送變更,是以全體的效力晉升還絕對(duì)無限。
與之對(duì)應(yīng)的辦法等于戰(zhàn)勝存儲(chǔ)帶寬的手腕:一是削減數(shù)據(jù)量,下降所需數(shù)據(jù)帶寬,就是說想方法只需從倉庫搬出大批數(shù)據(jù),便可以到達(dá)異樣的后果;二是更迷信的調(diào)劑數(shù)據(jù)應(yīng)用,晉升調(diào)劑的效力。
(1)削減數(shù)據(jù)容量
假如數(shù)據(jù)量下降了,這將整體上削減對(duì)DRAM的拜訪,在DRAM物理帶寬堅(jiān)持不變的條件下,下降了DRAM的依附性,進(jìn)步了全體機(jī)能,同時(shí)削減DRAM拜訪也將年夜幅削減體系功耗開支。是以起首須要處理的成績是削減靜態(tài)參數(shù)權(quán)重的年夜小。平日的處理方法包含參數(shù)定點(diǎn)化,將每一個(gè)32bit浮點(diǎn)數(shù)削減為16bit以下的定點(diǎn)數(shù),至多能下降50%乃至75%的存儲(chǔ)容量,也異樣幅度的下降了存儲(chǔ)帶寬的需求。理論證實(shí)16bit定點(diǎn)化可以采取線性量化的方法,而16bit以下定點(diǎn)化依據(jù)模子的分歧,有些須要采取非線性量化才可以到達(dá)保持模子機(jī)能的目標(biāo)。
今朝重要有模子剪枝、設(shè)計(jì)適于終端裝備的簡化收集兩種完成方法。模子剪枝作為進(jìn)一步下降模子容量和存儲(chǔ)帶寬的方法,是基于神經(jīng)收集模子存在年夜量冗余信息的基本,而另外一種從泉源開端從新設(shè)計(jì)適于終端裝備的簡化收集的方法也在逐步鼓起,從異樣范圍的收集機(jī)能來看,新設(shè)計(jì)的收集能夠比舊收集經(jīng)由過程剪枝再練習(xí)的方法更加簡略快捷,機(jī)能也更好。
(2)更迷信的調(diào)劑數(shù)據(jù)應(yīng)用
深度進(jìn)修的盤算年夜量應(yīng)用乘累加,即完成AXB+C的任務(wù),這類乘累加單位(MAC)每次運(yùn)算須要三個(gè)輸出,完成一個(gè)輸入。介入運(yùn)算的數(shù)據(jù)包含事前預(yù)備好的權(quán)重參數(shù)和收集層發(fā)生的中央數(shù)據(jù)。每一個(gè)乘累加完成后的輸入平日也會(huì)作為下一次運(yùn)算的輸出,是以若何調(diào)劑這些數(shù)據(jù)成為癥結(jié)。
功耗角度來講,從DRAM獲得數(shù)據(jù)所消費(fèi)的功耗最年夜,從SRAM中獲得數(shù)據(jù)其次,從當(dāng)?shù)卮娣牌髦蝎@得數(shù)據(jù)消費(fèi)功耗最低,但從本錢角度斟酌恰好相反,是以這三個(gè)分歧條理的存儲(chǔ)器的應(yīng)用異常癥結(jié),我們?cè)竿M量削減DRAM的拜訪,最幻想的成果是僅從DRAM中讀取一次事前存好的模子參數(shù),而不依附DRAM做任何其他任務(wù)。
從微觀上看,全部深度進(jìn)修運(yùn)算盤算一次,進(jìn)入MAC的總數(shù)據(jù)量弘遠(yuǎn)于靜態(tài)數(shù)據(jù)的容量,由于不管是模子參數(shù)照樣中央數(shù)據(jù)都屢次被反復(fù)應(yīng)用,是以現(xiàn)實(shí)所需的數(shù)據(jù)帶寬異常年夜,而且當(dāng)一切這些數(shù)據(jù)都僅經(jīng)由過程DRAM被緩存應(yīng)用時(shí),其功耗開支也是驚人的,是以充足應(yīng)用各級(jí)緩存的特征異常主要,設(shè)計(jì)一個(gè)公道的數(shù)據(jù)流,將屢次被反復(fù)應(yīng)用的數(shù)據(jù)放在離盤算資本較近的處所,大批讀取的數(shù)據(jù)放在DRAM中,將進(jìn)步盤算機(jī)能,下降體系功耗。
二
那末成績來了,若何能力設(shè)計(jì)一款真正實(shí)用于終真?zhèn)€AI芯片。
簡略的設(shè)計(jì)一個(gè)卷積加快器其實(shí)不能帶來深度進(jìn)修盤算機(jī)能上的進(jìn)步,及格的盤算架構(gòu)須要聯(lián)合對(duì)存儲(chǔ)成績的剖析來設(shè)計(jì),不只要斟酌盤算架構(gòu),也要斟酌存儲(chǔ)的數(shù)據(jù)流掌握,是以深度進(jìn)修的盤算特色并不是是一個(gè)簡略粗魯?shù)牟⑿斜P算成績。
起首照樣要斟酌浮點(diǎn)和定點(diǎn)盤算的成績,8 位的整數(shù)乘法比IEEE 754尺度下16位浮點(diǎn)乘法下降 6 倍的能耗,占用的芯單方面積也少 6 倍;而整數(shù)加法的差別是13倍的能耗與38倍的面積,是以終端AI芯片采取定點(diǎn)盤算將取得偉大收益。當(dāng)定點(diǎn)成為設(shè)計(jì)目的的時(shí)刻,要充足斟酌軟硬件的聯(lián)合,分歧收集對(duì)定點(diǎn)位數(shù)的影響水平是紛歧樣的,數(shù)據(jù)量化的詳細(xì)方法也有差別,有線性量化也有非線性量化的辦法,是以針對(duì)運(yùn)用場景聯(lián)合軟件協(xié)同設(shè)計(jì)異常有需要。
其次深度進(jìn)修不是簡略粗魯?shù)牟⑿斜P算但依然有顯著的并行盤算特點(diǎn),是以斟酌存儲(chǔ)成績后放入更多的盤算資本會(huì)年夜幅進(jìn)步盤算機(jī)能。起首將最多被反復(fù)應(yīng)用的數(shù)據(jù)放在接近盤算資本的處所,這相符較為風(fēng)行的In Memory Computing(存儲(chǔ)盤算一體化)的思惟,而且斟酌到以后工業(yè)程度,這更加現(xiàn)實(shí),而經(jīng)由過程從新設(shè)計(jì)包含盤算單位的存儲(chǔ)單位或采取ReRAM等方法是將來的 成長偏向。
第三要斟酌到深度進(jìn)修數(shù)據(jù)的另外一主要特征,即數(shù)據(jù)稀少化特征,也就是說在介入運(yùn)算的數(shù)據(jù)中有年夜量的零值數(shù)據(jù)存在,這些零值數(shù)據(jù)便可以在存儲(chǔ)中被緊縮寄存,下降存儲(chǔ)容量和帶寬需求,也能夠在盤算中被進(jìn)一步驟度,削減運(yùn)算壓力,進(jìn)步運(yùn)算的有用機(jī)能。這些零值數(shù)據(jù)不只存在于模子參數(shù)中,也年夜量存在于神經(jīng)收集各層運(yùn)算的中央數(shù)據(jù)中,這兩方面都須要停止斟酌。稀少數(shù)據(jù)在多焦點(diǎn)并行盤算中的調(diào)劑是個(gè)龐雜的成績,而分歧收集構(gòu)造也會(huì)帶來分歧的影響,是以將軟硬件協(xié)同設(shè)計(jì),靜態(tài)調(diào)劑的調(diào)劑器長短常龐雜的設(shè)計(jì)難點(diǎn)。
最初要斟酌針對(duì)分歧收集的資本有用應(yīng)用率成績,因?yàn)樯窠?jīng)收集差別化較年夜,假如愿望針對(duì)分歧收集都有較高的資本有用應(yīng)用率,則須要在較細(xì)的顆粒度長進(jìn)行優(yōu)化,進(jìn)一步加深了數(shù)據(jù)流調(diào)劑器的龐雜度。