龔 宇 王麗萍 王 佑 劉偉強(qiáng)
(南京航空航天大學(xué)電子信息工程學(xué)院/集成電路學(xué)院 南京 211106)
(空天集成電路與微系統(tǒng)工信部重點實驗室 南京 211106)
當(dāng)前,深度學(xué)習(xí)(Deep Learning, DL),亦稱人工神經(jīng)網(wǎng)絡(luò)(Artificial Neural Network, ANN),因其在語音/圖像/視頻分類等多個模式識別領(lǐng)域的成功,已經(jīng)成為人工智能(Artificial Intelligence,AI)領(lǐng)域重要發(fā)展方向。2012年AlexNet[1]以高識別精度獲得ImageNet冠軍,開啟了神經(jīng)網(wǎng)絡(luò)又一輪研究高潮。而隨著算法的不斷演進(jìn)發(fā)展,ANN網(wǎng)絡(luò)規(guī)模從兆字節(jié)(MB)已經(jīng)發(fā)展到吉字節(jié)(GB)[2–5],海量參數(shù)使其計算量巨大,導(dǎo)致傳統(tǒng)硬件難以滿足網(wǎng)絡(luò)高能效加速需求[6–8],迫切需要更大算力、更高能效的加速架構(gòu)。
后摩爾時代,先進(jìn)工藝制造價格昂貴、門檻高,使得神經(jīng)網(wǎng)絡(luò)加速架構(gòu)能效的優(yōu)化逐漸從工藝依賴向新型計算范式轉(zhuǎn)型。當(dāng)前主流新型計算范式有存內(nèi)/近存計算[9,10]、隨機(jī)計算[11–13]以及近似計算[14,15]等。存內(nèi)/近存計算芯片仍面臨著生產(chǎn)良率低、工藝難度大的問題,適用于計算位寬和精度較固定的場景;隨機(jī)計算在高精度處理時硬件復(fù)雜度指數(shù)增長,且高昂隨機(jī)性需求使其設(shè)計難度大;近似計算對工藝無額外需求且擴(kuò)展性更強(qiáng),相比之下更為經(jīng)濟(jì)、易于實現(xiàn)。文獻(xiàn)[16]對當(dāng)前模式識別、計算機(jī)視覺處理等12類重要應(yīng)用場景進(jìn)行了歸納,其中近83%的運算為可容錯計算,對其而言,算得“足夠好”比算得“非常準(zhǔn)”更重要??梢?,傳統(tǒng)精確計算非當(dāng)下系統(tǒng)必選項,在很多應(yīng)用中算得快更為重要,而近似計算正逐漸廣泛采用。
當(dāng)前,國內(nèi)外學(xué)者對于近似計算在深度學(xué)習(xí)加速系統(tǒng)中的研究集中在近似計算的單元結(jié)構(gòu)設(shè)計、系統(tǒng)結(jié)構(gòu)設(shè)計、系統(tǒng)設(shè)計方法等方向,據(jù)公開論文顯示,國內(nèi)主要研究機(jī)構(gòu)集中在部分高校與科研院所,包括南京航空航天大學(xué)[17,18]、東南大學(xué)[19–21]、電子科技大學(xué)[22,23]、上海交通大學(xué)[24–26]、清華大學(xué)[27,28]、中國科學(xué)院計算所[29–31]等。在先進(jìn)工藝演進(jìn)代價越來越高、架構(gòu)設(shè)計相對固定化的情況下,近似計算開始廣泛應(yīng)用于深度學(xué)習(xí)加速系統(tǒng)的多個設(shè)計層次中,以進(jìn)一步提升系統(tǒng)能效。
本文結(jié)合目前深度學(xué)習(xí)加速系統(tǒng)設(shè)計的不同層次,從算法層、電路與架構(gòu)層、系統(tǒng)層對近幾年深度學(xué)習(xí)加速系統(tǒng)中的近似計算方案及設(shè)計方法進(jìn)行了具體介紹,并為后續(xù)研究提供思路。
當(dāng)前,深度學(xué)習(xí)在模式識別、自動控制及預(yù)測估計等領(lǐng)域獲得了廣泛應(yīng)用,但是由于模型尺寸越來越大,其硬件實現(xiàn)更加復(fù)雜。為了降低深度學(xué)習(xí)模型的冗余度,近似計算在其模型簡化中得到了深入的應(yīng)用。本節(jié)首先介紹典型的3類計算模型,并進(jìn)一步對其近似量化方案進(jìn)行介紹。
2.1.1 卷積神經(jīng)網(wǎng)絡(luò)
卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)是一種帶有卷積結(jié)構(gòu)的前饋神經(jīng)網(wǎng)絡(luò),被廣泛應(yīng)用于具有網(wǎng)格結(jié)構(gòu)的數(shù)據(jù),如圖像、音頻及視頻等目標(biāo)識別領(lǐng)域。卷積層由2維/3維結(jié)構(gòu)濾波器組成,1個濾波器可以看作由多個卷積核堆疊形成。這些濾波器在輸入數(shù)據(jù)上滑動做卷積運算,從輸入數(shù)據(jù)中提取特征。在多層神經(jīng)網(wǎng)絡(luò)中,上層節(jié)點的輸出和下層節(jié)點的輸入之間通過激活函數(shù)建立聯(lián)系。
2.1.2 循環(huán)神經(jīng)網(wǎng)絡(luò)
循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Networks,RNN)是專用于處理序列信息的神經(jīng)網(wǎng)絡(luò),常用于處理序列數(shù)據(jù),如長語音識別及長句語義分析等。相比于前饋神經(jīng)網(wǎng)絡(luò),RNN的隱藏層自身也存在一個回路,以允許信息傳遞到下一步,因此RNN可以接收上一時間點的隱藏狀態(tài),由此具有“記憶”。
2.1.3 全連接神經(jīng)網(wǎng)絡(luò)
全連接神經(jīng)網(wǎng)絡(luò)(Fully Connected Neural Network, FCNN)是一種多層感知機(jī)。CNN, RNN,LSTM等深度學(xué)習(xí)網(wǎng)絡(luò)都是基于全連接神經(jīng)網(wǎng)絡(luò)設(shè)計的。在全連接神經(jīng)網(wǎng)絡(luò)中,每一層網(wǎng)絡(luò)的任一個節(jié)點都和下一層所有節(jié)點連接。其特征提取更為充分,可作用于大多數(shù)場景。但因其權(quán)重過多,計算量過大導(dǎo)致其單獨應(yīng)用較少,往往作為深度學(xué)習(xí)網(wǎng)絡(luò)的最后幾層,用于提取和輸出分類結(jié)果。
在深度學(xué)習(xí)的硬件加速實現(xiàn)高能效方面,量化(Quantization)是最為有效和廣泛使用的近似計算方法之一。量化可以大幅減少數(shù)據(jù)位寬,進(jìn)而在硬件設(shè)計中可以使用更窄的線寬、更少位數(shù)的計算單元。
訓(xùn)練后量化算法即在完成神經(jīng)網(wǎng)絡(luò)訓(xùn)練后進(jìn)行量化的算法。文獻(xiàn)[32]和文獻(xiàn)[33]分別提出了對稱量化和(最小/最大)非對稱量化算法實現(xiàn)高精度識別。文獻(xiàn)[34]提出通過限制激活值范圍減少截斷誤差、通過設(shè)置偏差校正修復(fù)量化誤差,無需重訓(xùn)練保持識別高精度。文獻(xiàn)[35]對網(wǎng)絡(luò)進(jìn)行逐層量化,以迭代方式動態(tài)調(diào)整激活值和權(quán)值量化步長。文獻(xiàn)[36]通過評估不同位寬和數(shù)字格式,實現(xiàn)網(wǎng)絡(luò)壓縮率和精度平衡動態(tài)量化。
訓(xùn)練中量化算法即將量化過程融入到模型的訓(xùn)練流程中,前向傳遞時基于量化模型進(jìn)行推理,而反向訓(xùn)練時仍采用浮點進(jìn)行[37]。文獻(xiàn)[38]提出了一種基于量化邊界的訓(xùn)練算法,在每次訓(xùn)練中將小于閾值的數(shù)值進(jìn)行量化操作,在整個網(wǎng)絡(luò)模型精度損失可控的情況下實現(xiàn)極低位寬的權(quán)值和激活值量化。文獻(xiàn)[39]表明,權(quán)值和激活值小于2 bit時,仍可以實現(xiàn)高精度的神經(jīng)網(wǎng)絡(luò)。文獻(xiàn)[40]提出名為DoReFa的訓(xùn)練方法,對除第1層和最后一層外的其他所有隱藏層使用極低的數(shù)據(jù)位寬,同時在反向傳播過程中對梯度也進(jìn)行量化。
二值化/三值化量化:作為更激進(jìn)的量化方法,極低功耗場景下出現(xiàn)了采用{0, 1}或{+1, –1}表達(dá)的神經(jīng)網(wǎng)絡(luò)。文獻(xiàn)[41]以1 bit權(quán)值和激活值的二值神經(jīng)網(wǎng)絡(luò)實現(xiàn)了高精度的識別,能效提升超過25倍。文獻(xiàn)[42]將CNN權(quán)重量化為1 bit,實現(xiàn)了極低計算功耗,同時計算精度損失在2%以內(nèi)。文獻(xiàn)[43]面向語音識別提出了將權(quán)重量化為1 bit位寬、數(shù)據(jù)8 bit位寬的壓縮方式,相比16 bit位寬精度損失3%以內(nèi)。
可以看出,網(wǎng)絡(luò)量化在算法層面可大幅提高計算速度,對硬件設(shè)計有助于減少計算單元的能量、面積開銷,減少片上數(shù)據(jù)傳輸帶寬壓力,為設(shè)計高能效深度學(xué)習(xí)加速系統(tǒng)提供了有力支撐。
近年來神經(jīng)網(wǎng)絡(luò)加速系統(tǒng)已經(jīng)在FPGA, ASIC,GPU等計算架構(gòu)中有了大量的實現(xiàn)案例,隨著多位寬、高能效近似計算應(yīng)用逐漸廣泛,以新型計算范式優(yōu)化架構(gòu)成為后摩爾時代提升芯片能效主流方案之一。
由于神經(jīng)網(wǎng)絡(luò)的規(guī)模越來越大,如何優(yōu)化基礎(chǔ)單元的功耗和面積,如加法器、乘法器,以及核心模塊,如乘累加單元,成為提升神經(jīng)網(wǎng)絡(luò)加速架構(gòu)能量以及面積效率的關(guān)鍵因素之一。采用合理的近似計算單元,可以在控制系統(tǒng)精度損失的同時,獲取較大的能效、面積提升收益。
3.1.1 近似加法器
一般將加法器分為低延遲加法器(Low Latency Approximate Adder, LLAA)和低功耗加法器(Low Power Approximate Adder, LPAA)。LLAA一般是由多個異構(gòu)的子加法器構(gòu)成的并行結(jié)構(gòu),針對實時性和性能要求高的計算場景,常用的有通用精度可配置近似加法器(Generic Accuracy Configurable Adder, GeAr)[44]、面積-質(zhì)量最佳低延遲近似加法器(Quality-area optimal Low-Latency approximate Adder, QuAd)[45]、容錯加法器Ⅰ(Error-Tolerant Adder I, ETA-I)[46]、容錯加法器Ⅱ(Error-Tolerant Adder II, ETA-II)[47]、近似鏡像加法器(Approximate Mirror Adder, AMA)[48]等等;而LPAA一般則為鏈?zhǔn)降拇薪Y(jié)構(gòu),面向功耗極為敏感的場景,如行波進(jìn)位加法器(Ripple Carry Adder, RCA)、進(jìn)位保存加法器(Carry Save Adder, CSA)[49,50]、超前進(jìn)位加法器(Carry-Lookahead Adder, CLA)[51,52]等。
面向深度學(xué)習(xí)加速,尤其是其中對累加結(jié)構(gòu)的大量應(yīng)用,出現(xiàn)了大量近似加法結(jié)構(gòu)?;蜷T近似加法器通常用于提高硬件加速器的能效[53–55]。文獻(xiàn)[54]將或門近似加法器替代低比特位的全加器,精確計算部分使用與門。文獻(xiàn)[48]使用近似鏡像加法器替代低位或門加法器,使用更多的晶體管實現(xiàn)系統(tǒng)識別精度提高。文獻(xiàn)[56]提出了一種精度自適應(yīng)近似加法器,其系統(tǒng)在不同信噪比下可根據(jù)配置信號使用不同近似位寬。
3.1.2 近似乘法器
傳統(tǒng)的標(biāo)準(zhǔn)乘法器往往延遲高、功耗高,難以滿足深度學(xué)習(xí)加速系統(tǒng)的低功耗、高能效要求。而近似乘法器具備了低功耗和低延遲的特點,根據(jù)近似產(chǎn)生的階段不同,一般可分為在生成部分積時近似[57–59]、對部分積求和時近似[54,60,61]和近似對數(shù)乘法器[62,63],以下將分別進(jìn)行介紹。
(1) 生成部分積時近似:文獻(xiàn)[57]介紹了兩種近似基4 Booth編碼器的設(shè)計,提出了近似 Booth乘法器。文獻(xiàn)[58]通過簡化邏輯真值表提出了3種不同的簡化方案。與標(biāo)準(zhǔn)乘法器相比,在功耗、延遲和面積方面均有顯著降低。文獻(xiàn)[59]提出了一種基于近似混合編碼的基8 Booth編碼近似乘法器。
(2) 對部分積求和時近似:文獻(xiàn)[62]提出了一種低功耗乘法器,其中在部分積的求和數(shù)組中引入了垂直截斷,使乘法器的總功耗降低了58%,但輸出精度略有下降。文獻(xiàn)[54]引入了水平截斷,大大減小了電路面積和功耗。文獻(xiàn)[60] 提出通過3個近似累加結(jié)構(gòu)減少部分乘積的行數(shù),但其電路實現(xiàn)相對比較復(fù)雜。
(3) 近似對數(shù)乘法器:為了提高對數(shù)近似乘法器的精度,文獻(xiàn)[64]提出了使用截斷二進(jìn)制對數(shù)轉(zhuǎn)換器和用于加法的集一加法器的近似對數(shù)乘法器。文獻(xiàn)[65]中兩個連續(xù)2次冪之間的輸入操作數(shù)被分成多段,然后每段分析確定一個誤差減少因子,并補(bǔ)償?shù)交A(chǔ)線性模型的結(jié)果。文獻(xiàn)[66]通過隨機(jī)刪除精確設(shè)計中連接生成近似乘法電路,將多目標(biāo)笛卡兒遺傳規(guī)劃算法應(yīng)用于設(shè)計空間探索,獲得關(guān)于MRED的最佳近似電路。
基于近似計算的混合精度神經(jīng)網(wǎng)絡(luò)處理器已經(jīng)有了大量的工作發(fā)表,對精度的控制方式也出現(xiàn)了多種機(jī)制和方案。qcNPE[67]是一款基于近似計算的神經(jīng)網(wǎng)絡(luò)加速架構(gòu),通過在計算模塊中增加精度控制電路進(jìn)行實時精度重構(gòu),并和神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)相映射以實現(xiàn)高能效。Laika結(jié)構(gòu)[68]在65 nm CMOS工藝下實現(xiàn)了5 μW低功耗永遠(yuǎn)在線的關(guān)鍵詞語音識別芯片,采用了4 bit和8 bit動態(tài)切換的近似計算結(jié)構(gòu),可動態(tài)適應(yīng)網(wǎng)絡(luò)加速中不同步驟的不同位寬需求。Price等人[69]發(fā)表了基于計算寬度可變單元、存儲結(jié)構(gòu)可重配置的神經(jīng)網(wǎng)絡(luò)芯片,采用動態(tài)寬度控制實現(xiàn)不同網(wǎng)絡(luò)層及不同負(fù)載下的資源重配置。
清華大學(xué)團(tuán)隊提出的Thinker系列集成了多種混合精度神經(jīng)網(wǎng)絡(luò)加速架構(gòu)[70,71]。Thinker架構(gòu)[70]中的計算單元可動態(tài)配置為不同位寬,重構(gòu)后加速等不同網(wǎng)絡(luò)層計算,Thinker-II[71]設(shè)計了基于多位寬、可配置加法樹實現(xiàn)的位寬可變累加,這一結(jié)構(gòu)可支持1~16 bit不同位寬的累加運算。中國科學(xué)院計算所團(tuán)隊設(shè)計了多款支持多位寬的智能計算處理器[72,73],實現(xiàn)了多種位寬下高能效加速和計算精度控制。三星公司在其先進(jìn)SoC設(shè)計中集成了神經(jīng)網(wǎng)絡(luò)引擎[74],采用INT4/INT8/FP16混合的近似乘法器實現(xiàn)多精度MAC單元設(shè)計,實現(xiàn)了極高的能量、面積效率表現(xiàn)。南京航空航天大學(xué)和東南大學(xué)聯(lián)合研發(fā)的面向語音識別的超低功耗近似計算芯片[43],采用了多種近似加法器、近似乘法器結(jié)構(gòu),實現(xiàn)了高能效、高精度的關(guān)鍵詞語音識別。
傳統(tǒng)IC設(shè)計需要在整個設(shè)計流程中盡可能保持?jǐn)?shù)值和變量的等價,即要求前一設(shè)計層次的計算結(jié)果和后一設(shè)計層次的計算結(jié)果是相同的,以保證最初的應(yīng)用開發(fā)和最終的芯片輸出結(jié)果一致。對于近似計算而言,其設(shè)計原則是只要計算精度滿足系統(tǒng)需求,在IC設(shè)計的每個流程中都可以適當(dāng)引入近似計算,如圖1所示。近似計算的核心和關(guān)鍵在于,如何在計算精度和硬件能耗間獲得一個較好的均衡,在能效提升同時,要確保最終的執(zhí)行結(jié)果偏差在容忍范圍內(nèi)。近似計算以精度換取系統(tǒng)復(fù)雜度降低,但隨著近似計算單元設(shè)計的不斷演進(jìn)和發(fā)展,需要跨越算法、電路、架構(gòu)多個層次進(jìn)行系統(tǒng)設(shè)計。如何建立跨層設(shè)計與系統(tǒng)精度的關(guān)聯(lián)規(guī)律以完成近似系統(tǒng)精度和系統(tǒng)復(fù)雜度之間的設(shè)計取舍、如何協(xié)同計算-存儲模塊的設(shè)計以面向具體應(yīng)用場景實現(xiàn)系統(tǒng)級高能效設(shè)計,成為近似系統(tǒng)能效提升的關(guān)鍵性問題。為了解決上述問題,針對近似計算的精度建模、精度評估手段不斷出現(xiàn),以提供快速部署的實現(xiàn)方案指導(dǎo)。
圖1 近似計算設(shè)計流程與評估方法
4.1.1 近似加法器的誤差分析
Mazahir等人[75]提出了針對一系列用于近似加法器均衡設(shè)計的概率誤差模型,以評估LLAA近似加法器的計算精度。這一模型首先將近似加法器按比特拆分,基于進(jìn)位出錯概率建立子近似加法器精度模型,繼而推導(dǎo)出整體誤差模型。這一模型可以快速、精確地評估多類基于分塊結(jié)構(gòu)的近似加法器。 Hanif等人[45]提出了針對低延遲近似加法器精度和復(fù)雜度均衡評估的QuAd模型。作為面向設(shè)計精度、面積以及延遲均衡的解析表達(dá)精度模型,QuAd模型將近似加法器的不同設(shè)計參量作為模型變量,可將模型用于LLAA設(shè)計空間探索,大大加速了設(shè)計初期的參數(shù)設(shè)置及評估。針對LPAA近似加法器,Ayub等人[76]提出了精度和復(fù)雜度均衡的評估方法,通過只考慮正確結(jié)果概率進(jìn)行了模型的壓縮和解析簡化,大大加速了評估效率。
4.1.2 近似乘法器的誤差分析
近似乘法器的精度模型即可看作近似加法器模型的擴(kuò)展。Zhu等人[77]提出了多分布概率誤差模型和評估方法,可高精度預(yù)估近似Booth乘法器精度。該工作將近似Booth乘法器的概率誤差模型分為編碼模塊、部分積陣列模塊及壓縮模塊錯誤概率模型,3個子模型逐層關(guān)聯(lián),構(gòu)成最終乘法器精度評估方法。Liu等人[78]提出面向近似計算累加器的精度評估方案,將累加模塊作為整體劃分計算流水,抽象為多計算階段的加法器,最終可以在支持向量機(jī)算法上實現(xiàn)接近92%的評估精度以及1.5倍的性能提升。此外,面向神經(jīng)網(wǎng)絡(luò)算法中最為重要的乘累加和累加模塊,當(dāng)前基于PMF[77]的分析可以在低比特位寬時實現(xiàn)較高的精度預(yù)測。
4.1.3 近似計算的系統(tǒng)誤差評估
MACACO模型[79]是較為系統(tǒng)的行為級精度評估方法,這一模型基于時序無關(guān)的等價電路結(jié)構(gòu),創(chuàng)新采用了虛擬誤差電路,在特定輸入數(shù)據(jù)或數(shù)據(jù)集下通過布朗分析、SAT分析、BDD分析等多種方式結(jié)合,以蒙卡數(shù)據(jù)擬合模型,實現(xiàn)了行為級精度評估。Venkataramani等人[67]提出了AxNN框架,專用于神經(jīng)網(wǎng)絡(luò)加速系統(tǒng)在近似計算系統(tǒng)中加速時精度、能效均衡設(shè)計的建模評估。AxNN在設(shè)計階段增加精度可控制的計算單元進(jìn)行精度調(diào)節(jié),提高2.3倍系統(tǒng)性能時僅損失7.5%精度。Liu等人[80]設(shè)計了CONCRETE框架用于“算法-架構(gòu)-電路”逐層地進(jìn)行神經(jīng)網(wǎng)絡(luò)在近似計算系統(tǒng)中的均衡設(shè)計及評估,神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)參數(shù)、近似計算單元的位寬參數(shù)都納入精度影響參量,可以評估最終精度,以此優(yōu)化神經(jīng)網(wǎng)絡(luò)設(shè)計。Freno等人[81]提出了一套基于機(jī)器學(xué)習(xí)算法的近似計算誤差統(tǒng)計模型,通過引入回歸分析、隨機(jī)噪聲模型等,參量化并進(jìn)行定向提取評估近似計算精度,提供優(yōu)化近似計算系統(tǒng)設(shè)計的具體思路。文獻(xiàn)[43]面向權(quán)重二值化神經(jīng)網(wǎng)絡(luò)加速系統(tǒng),通過近似噪聲的概念定義提出了一種系統(tǒng)級誤差分析方法,可量化評估算法層、架構(gòu)層、電路層等不同層次誤差的擴(kuò)散和影響,最終將評估結(jié)果用于近似計算的架構(gòu)設(shè)計參數(shù)優(yōu)化。
除通用近似計算系統(tǒng)的評估建模,針對神經(jīng)網(wǎng)絡(luò)加速架構(gòu)的設(shè)計空間探索也有大量的研究工作展開。面向神經(jīng)網(wǎng)絡(luò)的設(shè)計空間探索方法主要分為幾類:一是朝著更復(fù)雜的結(jié)構(gòu)進(jìn)行探索,如引入近似計算[82–86]、引入新型電路結(jié)構(gòu)[87]、增加存內(nèi)計算電路[88];二是面向特定的應(yīng)用范圍,簡化設(shè)計空間,從而提高設(shè)計空間探索的效率[83,84,89];三是對設(shè)計空間探索的收斂速度、優(yōu)化算法進(jìn)行研究[90–92]。面向具有海量計算資源的神經(jīng)網(wǎng)絡(luò)加速架構(gòu),要對多種不同設(shè)計方法進(jìn)行融合,才能快速、準(zhǔn)確、有效地實現(xiàn)設(shè)計收斂。
當(dāng)前,在深度學(xué)習(xí)加速系統(tǒng)中近似計算已經(jīng)有了廣泛的研究和應(yīng)用,但是其更大規(guī)模的應(yīng)用和部署仍存在較為突出的一些挑戰(zhàn),主要集中在近似計算系統(tǒng)設(shè)計中的誤差分析與管理、跨層設(shè)計與協(xié)同優(yōu)化、近似系統(tǒng)的驗證與測試、可靠性與安全性問題。
近似計算以誤差為代價換取能效提升,但是系統(tǒng)誤差仍是最重要的系統(tǒng)指標(biāo)之一。由于誤差分析必須要考慮具體應(yīng)用場景,因此一般性的誤差分析方法往往集中在小模塊上,在系統(tǒng)層仍然缺少普適性的誤差分析方法。同時,由于近似計算的設(shè)計方案多樣,存在確定性誤差和非確定性誤差兩大類。確定性誤差可以較容易地確定其邊界,而非確定性誤差的分析、評估與控制更具有挑戰(zhàn)性。
當(dāng)前,面向近似計算的設(shè)計優(yōu)化多集中在單一的設(shè)計層次或設(shè)計階段。而由于誤差在系統(tǒng)中是不斷傳播的,因此,結(jié)合多層次的近似計算技術(shù)以進(jìn)行軟硬件協(xié)同設(shè)計,可以更為充分地挖掘近似計算的能效潛力。近似計算在算法層的優(yōu)化方案如何與電路、架構(gòu)層的設(shè)計有機(jī)結(jié)合、互相優(yōu)化,仍需深入研究;同時,將近似計算硬件誤差在算法設(shè)計中加以考慮、修正,也是提升近似計算系統(tǒng)精度、能效的有效方法。
現(xiàn)有的EDA工具對近似計算系統(tǒng)的驗證和測試支持有限,使得近似計算系統(tǒng)的誤差范圍難以控制在可接受范圍之內(nèi)。充分考慮近似計算的誤差來源,重新審視測試向量的生成方法,并對影響誤差程度更大的關(guān)鍵電路使用更合適的測試方式,是大幅提升近似系統(tǒng)驗證測試效率的重要工具開發(fā)方向。
在面對老化問題時,需要將近似計算引入的額外計算誤差納入系統(tǒng)設(shè)計考慮之中。與精確計算不同,近似計算利用了算法、電路、架構(gòu)的特征,因此電路的可靠性存在著新的設(shè)計挑戰(zhàn)。此外,安全性也是近似計算面臨的重要挑戰(zhàn)。由于設(shè)計本身引入了計算誤差,如何區(qū)分硬件/軟件木馬所引入的誤差成為系統(tǒng)的威脅之一。如果將這一技術(shù)應(yīng)用于視頻監(jiān)控、安防、智能電網(wǎng)等業(yè)務(wù)領(lǐng)域,就必須充分考慮安全防護(hù)設(shè)計。
本文主要對近似計算在深度學(xué)習(xí)加速系統(tǒng)不同設(shè)計層次的應(yīng)用進(jìn)行了總結(jié),包括算法層、電路與架構(gòu)層和系統(tǒng)層。與傳統(tǒng)計算范式相比,近似計算可以在同工藝節(jié)點下大幅提高能效,是后摩爾時代最具備潛力的研究方向之一。同時,從誤差分析與管理、跨層設(shè)計與協(xié)同優(yōu)化、近似系統(tǒng)的驗證與測試、可靠性與安全性4個方面進(jìn)行了思考與展望,以供學(xué)者在后續(xù)研究中作參考借鑒。另外,近似計算的設(shè)計流程目前仍不完整,難以直接產(chǎn)業(yè)應(yīng)用,仍是其成為主流計算范式所面臨的重大挑戰(zhàn)和重要研究方向。