2017年,人工智能最火的風(fēng)口一定是AI芯片。AI芯片的出現(xiàn),與深度學(xué)習(xí)技術(shù)的成熟及應(yīng)用密不可分。深度學(xué)習(xí)的過(guò)程可以簡(jiǎn)化理解為利用大量標(biāo)注的數(shù)據(jù)進(jìn)行訓(xùn)練,訓(xùn)練出一個(gè)行之有效的模型,再將這一模型運(yùn)用于新數(shù)據(jù)的推斷。
這個(gè)耳熟能詳?shù)谋?a href="http://www.www27dydycom.cn/v/tag/2562/" target="_blank">算法是建立在多層大規(guī)模神經(jīng)網(wǎng)絡(luò)之上的,后者本質(zhì)上是包含了矩陣乘積和卷積操作的大運(yùn)算量函數(shù)。往往需要先定義一個(gè)包含回歸問(wèn)題的方差、分類(lèi)時(shí)的交叉熵的代價(jià)函數(shù),再數(shù)據(jù)分批傳遞進(jìn)網(wǎng)絡(luò),根據(jù)參數(shù)求導(dǎo)出代價(jià)函數(shù)值,從而更新整個(gè)網(wǎng)絡(luò)模型。這通常意味著至少幾百萬(wàn)次的相乘處理,計(jì)算量巨大。通俗來(lái)說(shuō),包含了數(shù)百萬(wàn)次A*B+C的計(jì)算,算力消耗巨大。
為解決這一問(wèn)題,AI芯片應(yīng)運(yùn)而生。2017年開(kāi)始,圍繞AI芯片,半導(dǎo)體行業(yè),戰(zhàn)事升級(jí),賽場(chǎng)上新老玩家暗潮涌動(dòng),連橫合眾,大有“AI芯片太多,設(shè)備都不夠用了”之勢(shì)。
時(shí)間進(jìn)入2018年,備受關(guān)注的大小公司都將正式推出自研AI芯片。這些芯片也都被業(yè)界寄予厚望,是否能解決或者部分解決終端計(jì)算難題?什么樣的芯片才能夠真正適應(yīng)終端智能的需求?
這些都是我們十分好奇且關(guān)注的問(wèn)題。于是也與一些創(chuàng)業(yè)者進(jìn)行了交流。本文即是其中的一篇,來(lái)自于與探境科技CEO魯勇的訪(fǎng)談。目前探境科技正研發(fā)適用于終端的AI芯片,在創(chuàng)業(yè)前魯勇曾在芯片廠(chǎng)商Marvell任高管,從事過(guò)存儲(chǔ)芯片的相關(guān)工作,而存儲(chǔ)正是計(jì)算之外所有芯片另一核心?;谶^(guò)往的經(jīng)歷、經(jīng)驗(yàn)與觀(guān)察,魯勇認(rèn)為,做適用于終端的AI芯片,除了要在計(jì)算方面提升,存儲(chǔ)優(yōu)化同樣至關(guān)重要。
一
AI算法在芯片實(shí)現(xiàn)時(shí)遇到的核心問(wèn)題不是計(jì)算資源而是存儲(chǔ)問(wèn)題,強(qiáng)如GPU提供眾多的計(jì)算資源,而實(shí)際計(jì)算能力與計(jì)算資源大為降低。
概括來(lái)說(shuō),存儲(chǔ)問(wèn)題分為兩個(gè)部分,一個(gè)是帶寬問(wèn)題,一個(gè)是功耗問(wèn)題,這兩個(gè)問(wèn)題的解決其實(shí)也是耦合在一起的。
具體來(lái)說(shuō),深度學(xué)習(xí)算法使用大量存儲(chǔ)資源,即包括靜態(tài)模型參數(shù),也包括網(wǎng)絡(luò)層之間的動(dòng)態(tài)數(shù)據(jù)。對(duì)于靜態(tài)模型參數(shù)權(quán)重,動(dòng)輒幾十兆上百兆樣本數(shù)量,無(wú)法在片上SRAM保存,因此需要存入外部DRAM。DRAM與AI計(jì)算芯片間帶寬有限,如果芯片上計(jì)算資源很大,但受存儲(chǔ)帶寬的瓶頸限制,實(shí)際計(jì)算力大為下降。
打比方來(lái)說(shuō),負(fù)責(zé)存儲(chǔ)的DRAM和與負(fù)責(zé)計(jì)算的芯片就像是位于河兩岸的倉(cāng)庫(kù),整個(gè)運(yùn)算的過(guò)程可以類(lèi)比從存儲(chǔ)的倉(cāng)庫(kù)搬取數(shù)據(jù)、搬運(yùn)過(guò)橋,將數(shù)據(jù)搬入計(jì)算的單元進(jìn)行處理,并高速循環(huán)往復(fù)。而當(dāng)前的AI芯片技術(shù)重點(diǎn)提升將數(shù)據(jù)搬入計(jì)算單元后的處理速度,但因?yàn)榘岢鰯?shù)據(jù)、過(guò)橋的過(guò)程基本未發(fā)送變化,因此整體的效率提升還相對(duì)有限。
與之對(duì)應(yīng)的方法即是克服存儲(chǔ)帶寬的手段:一是減少數(shù)據(jù)量,降低所需數(shù)據(jù)帶寬,就是說(shuō)想辦法只要從倉(cāng)庫(kù)搬出少量數(shù)據(jù),就可以達(dá)到同樣的效果;二是更科學(xué)的調(diào)度數(shù)據(jù)使用,提升調(diào)度的效率。
(1)減少數(shù)據(jù)容量
如果數(shù)據(jù)量降低了,這將總體上減少對(duì)DRAM的訪(fǎng)問(wèn),在DRAM物理帶寬保持不變的前提下,降低了DRAM的依賴(lài)性,提高了整體性能,同時(shí)減少DRAM訪(fǎng)問(wèn)也將大幅減少系統(tǒng)功耗開(kāi)銷(xiāo)。因此首先需要解決的問(wèn)題是減少靜態(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)化可以采用線(xiàn)性量化的方式,而16bit以下定點(diǎn)化根據(jù)模型的不同,有些需要采用非線(xiàn)性量化才可以達(dá)到維持模型性能的目的。
目前主要有模型剪枝、設(shè)計(jì)適于終端設(shè)備的簡(jiǎn)化網(wǎng)絡(luò)兩種實(shí)現(xiàn)方式。模型剪枝作為進(jìn)一步降低模型容量和存儲(chǔ)帶寬的方式,是基于神經(jīng)網(wǎng)絡(luò)模型存在大量冗余信息的基礎(chǔ),而另一種從源頭開(kāi)始重新設(shè)計(jì)適于終端設(shè)備的簡(jiǎn)化網(wǎng)絡(luò)的方式也在逐漸興起,從同樣規(guī)模的網(wǎng)絡(luò)性能來(lái)看,新設(shè)計(jì)的網(wǎng)絡(luò)可能比舊網(wǎng)絡(luò)通過(guò)剪枝再訓(xùn)練的方式更為簡(jiǎn)單快捷,性能也更好。
(2)更科學(xué)的調(diào)度數(shù)據(jù)使用
深度學(xué)習(xí)的計(jì)算大量使用乘累加,即完成AXB+C的工作,這種乘累加單元(MAC)每次運(yùn)算需要三個(gè)輸入,完成一個(gè)輸出。參與運(yùn)算的數(shù)據(jù)包括事先準(zhǔn)備好的權(quán)重參數(shù)和網(wǎng)絡(luò)層產(chǎn)生的中間數(shù)據(jù)。每個(gè)乘累加完成后的輸出通常也會(huì)作為下一次運(yùn)算的輸入,因此如何調(diào)度這些數(shù)據(jù)成為關(guān)鍵。
功耗角度來(lái)說(shuō),從DRAM獲取數(shù)據(jù)所消耗的功耗最大,從SRAM中獲取數(shù)據(jù)其次,從本地寄存器中獲取數(shù)據(jù)消耗功耗最低,但從成本角度考慮剛好相反,因此這三個(gè)不同層次的存儲(chǔ)器的使用非常關(guān)鍵,我們希望盡可能減少DRAM的訪(fǎng)問(wèn),最理想的結(jié)果是僅從DRAM中讀取一次事先存好的模型參數(shù),而不依賴(lài)DRAM做任何其他工作。
從宏觀(guān)上看,整個(gè)深度學(xué)習(xí)運(yùn)算計(jì)算一次,進(jìn)入MAC的總數(shù)據(jù)量遠(yuǎn)大于靜態(tài)數(shù)據(jù)的容量,因?yàn)闊o(wú)論是模型參數(shù)還是中間數(shù)據(jù)都多次被重復(fù)使用,因此實(shí)際所需的數(shù)據(jù)帶寬非常大,并且當(dāng)所有這些數(shù)據(jù)都僅通過(guò)DRAM被緩存使用時(shí),其功耗開(kāi)銷(xiāo)也是驚人的,因此充分利用各級(jí)緩存的特性非常重要,設(shè)計(jì)一個(gè)合理的數(shù)據(jù)流,將多次被重復(fù)使用的數(shù)據(jù)放在離計(jì)算資源較近的地方,少量讀取的數(shù)據(jù)放在DRAM中,將提高計(jì)算性能,降低系統(tǒng)功耗。
二
那么問(wèn)題來(lái)了,如何才能設(shè)計(jì)一款真正適用于終端的AI芯片。
簡(jiǎn)單的設(shè)計(jì)一個(gè)卷積加速器并不能帶來(lái)深度學(xué)習(xí)計(jì)算性能上的提高,合格的計(jì)算架構(gòu)需要結(jié)合對(duì)存儲(chǔ)問(wèn)題的分析來(lái)設(shè)計(jì),不僅要考慮計(jì)算架構(gòu),也要考慮存儲(chǔ)的數(shù)據(jù)流控制,因此深度學(xué)習(xí)的計(jì)算特點(diǎn)并非是一個(gè)簡(jiǎn)單粗暴的并行計(jì)算問(wèn)題。
首先還是要考慮浮點(diǎn)和定點(diǎn)計(jì)算的問(wèn)題,8 位的整數(shù)乘法比IEEE 754標(biāo)準(zhǔn)下16位浮點(diǎn)乘法降低 6 倍的能耗,占用的芯片面積也少 6 倍;而整數(shù)加法的差異是13倍的能耗與38倍的面積,因此終端AI芯片采用定點(diǎn)計(jì)算將獲得巨大收益。當(dāng)定點(diǎn)成為設(shè)計(jì)目標(biāo)的時(shí)候,要充分考慮軟硬件的結(jié)合,不同網(wǎng)絡(luò)對(duì)定點(diǎn)位數(shù)的影響程度是不一樣的,數(shù)據(jù)量化的具體方式也有差異,有線(xiàn)性量化也有非線(xiàn)性量化的方法,因此針對(duì)應(yīng)用場(chǎng)景結(jié)合軟件協(xié)同設(shè)計(jì)非常有必要。
其次深度學(xué)習(xí)不是簡(jiǎn)單粗暴的并行計(jì)算但仍然有明顯的并行計(jì)算特征,因此考慮存儲(chǔ)問(wèn)題后放入更多的計(jì)算資源會(huì)大幅提高計(jì)算性能。首先將最多被重復(fù)使用的數(shù)據(jù)放在接近計(jì)算資源的地方,這符合較為流行的In Memory Computing(存儲(chǔ)計(jì)算一體化)的思想,并且考慮到當(dāng)前工業(yè)水平,這更為實(shí)際,而通過(guò)重新設(shè)計(jì)包括計(jì)算單元的存儲(chǔ)單元或采用ReRAM等方式是未來(lái)的 發(fā)展方向。
第三要考慮到深度學(xué)習(xí)數(shù)據(jù)的另一重要特性,即數(shù)據(jù)稀疏化特性,也就是說(shuō)在參與運(yùn)算的數(shù)據(jù)中有大量的零值數(shù)據(jù)存在,這些零值數(shù)據(jù)即可以在存儲(chǔ)中被壓縮存放,降低存儲(chǔ)容量和帶寬需求,也可以在計(jì)算中被進(jìn)一步調(diào)度,減少運(yùn)算壓力,提高運(yùn)算的有效性能。這些零值數(shù)據(jù)不僅存在于模型參數(shù)中,也大量存在于神經(jīng)網(wǎng)絡(luò)各層運(yùn)算的中間數(shù)據(jù)中,這兩方面都需要進(jìn)行考慮。稀疏數(shù)據(jù)在多核心并行計(jì)算中的調(diào)度是個(gè)復(fù)雜的問(wèn)題,而不同網(wǎng)絡(luò)結(jié)構(gòu)也會(huì)帶來(lái)不同的影響,因此將軟硬件協(xié)同設(shè)計(jì),動(dòng)態(tài)調(diào)度的調(diào)度器是非常復(fù)雜的設(shè)計(jì)難點(diǎn)。
最后要考慮針對(duì)不同網(wǎng)絡(luò)的資源有效利用率問(wèn)題,由于神經(jīng)網(wǎng)絡(luò)差異化較大,如果希望針對(duì)不同網(wǎng)絡(luò)都有較高的資源有效利用率,則需要在較細(xì)的顆粒度上進(jìn)行優(yōu)化,進(jìn)一步加深了數(shù)據(jù)流調(diào)度器的復(fù)雜度。
-
AI
+關(guān)注
關(guān)注
88文章
35136瀏覽量
279728 -
人工智能
+關(guān)注
關(guān)注
1806文章
49014瀏覽量
249411 -
AI芯片
+關(guān)注
關(guān)注
17文章
1983瀏覽量
35908
發(fā)布評(píng)論請(qǐng)先 登錄
適用于 WLAN 和藍(lán)牙?應(yīng)用的 2.4 GHz 高效前端 skyworksinc

適用于電機(jī)控制的電流濾波方法
NVIDIA擴(kuò)展適用于AI工廠(chǎng)數(shù)字孿生的Omniverse Blueprint
TPS6521825 適用于 NXP i.MX 8M mini 的電源管理 IC數(shù)據(jù)手冊(cè)

TPS6521855 適用于 TI AM64x 的電源管理 IC (PMIC)數(shù)據(jù)手冊(cè)

如何綜合性測(cè)試一款電源芯片?——以ASP3605芯片為例
圖形顯示控制芯片RA6809可適用于哪些應(yīng)用場(chǎng)景
開(kāi)源鴻蒙版AI終端主板AIoT-3588A彩頁(yè)
行業(yè)集結(jié):共同定制 RK3566 集成 AI 眼鏡的前沿 AR 方案
【AI開(kāi)發(fā)板】正點(diǎn)原子K230D BOX開(kāi)發(fā)板來(lái)了!一款性能強(qiáng)悍且小巧便攜的AI開(kāi)發(fā)板!
NVIDIA推出適用于網(wǎng)絡(luò)安全的NIM Blueprint
選擇適用于汽車(chē)應(yīng)用的基準(zhǔn)電壓

一款適用于光伏應(yīng)用的半橋評(píng)估板設(shè)計(jì)

評(píng)論