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

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

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

如何綜合性測試一款電源芯片?——以ASP3605芯片為例
圖形顯示控制芯片RA6809可適用于哪些應(yīng)用場景
開源鴻蒙版AI終端主板AIoT-3588A彩頁
行業(yè)集結(jié):共同定制 RK3566 集成 AI 眼鏡的前沿 AR 方案
【AI開發(fā)板】正點原子K230D BOX開發(fā)板來了!一款性能強悍且小巧便攜的AI開發(fā)板!
NVIDIA推出適用于網(wǎng)絡(luò)安全的NIM Blueprint
一款適用于光伏應(yīng)用的半橋評估板設(shè)計

評論