国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

RR-SC: 邊緣設(shè)備中基于隨機(jī)計(jì)算神經(jīng)網(wǎng)絡(luò)的運(yùn)行時(shí)可重配置框架

2024-04-29 05:35宋玉紅沙行勉諸葛晴鳳
關(guān)鍵詞:算術(shù)約束準(zhǔn)確率

宋玉紅 沙行勉 諸葛晴鳳 許 瑞 王 寒

(華東師范大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院 上海 200062)

(yhsong@stu.ecnu.edu.cn)

隨著人工智能的發(fā)展,深度神經(jīng)網(wǎng)絡(luò)(deep neural network,DNN)作為典型的機(jī)器學(xué)習(xí)模型已經(jīng)被廣泛地應(yīng)用于邊緣設(shè)備上[1-2],例如自動(dòng)駕駛、智能家居、智慧醫(yī)療等應(yīng)用領(lǐng)域.然而,邊緣設(shè)備擁有的資源(如能源、計(jì)算單元和存儲(chǔ)單元等)是十分有限的,這限制了DNN 在邊緣設(shè)備上的高效部署.盡管許多壓縮技術(shù)[3-9]通過(guò)減少神經(jīng)網(wǎng)絡(luò)模型參數(shù)在一定程度上能夠節(jié)省資源的使用,但隨著壓縮率的持續(xù)升高,模型推理準(zhǔn)確率會(huì)產(chǎn)生明顯的下降.隨機(jī)計(jì)算(stochastic computing,SC)[10-12]作為一種新興的計(jì)算技術(shù)由于其特殊的數(shù)據(jù)表示和計(jì)算模式,使得其對(duì)于神經(jīng)網(wǎng)絡(luò)在硬件上的部署具有低能耗、低開(kāi)銷的優(yōu)勢(shì).SC 通過(guò)使用簡(jiǎn)單的邏輯門近似運(yùn)算以替代傳統(tǒng)浮點(diǎn)數(shù)計(jì)算中復(fù)雜的算術(shù)單元,大大降低了計(jì)算單元單位時(shí)間內(nèi)的能耗,以及計(jì)算單元和存儲(chǔ)單元的使用量.

SC 使用一個(gè)隨機(jī)的0/1 比特串來(lái)表示數(shù)據(jù),它不同于傳統(tǒng)的二進(jìn)制比特串—每個(gè)位置具有不同的權(quán)重值.對(duì)于SC 數(shù)據(jù)來(lái)說(shuō),每個(gè)位置的權(quán)重都是一樣的.因此,SC 數(shù)據(jù)在噪聲環(huán)境中具有很高的數(shù)據(jù)容錯(cuò)性,1 個(gè)比特位發(fā)生翻轉(zhuǎn),對(duì)整體數(shù)值的影響并不大.SC 數(shù)據(jù)具有2 種數(shù)據(jù)類型:?jiǎn)螛O(unipolar)數(shù)據(jù)和雙極(bipolar)數(shù)據(jù).單極數(shù)據(jù)表示的是[0,1]范圍內(nèi)的實(shí)數(shù),雙極數(shù)據(jù)表示[-1,1]范圍內(nèi)的實(shí)數(shù).對(duì)單極數(shù)據(jù)來(lái)說(shuō),對(duì)任意的實(shí)數(shù)x(0 ≤x≤1),0/1 比特串中的每個(gè)比特都有x的概率為1,都有 1-x的概率為0,即x=P(串中出現(xiàn)1).圖1(a)(c)中的比特串A,B,C均為單極數(shù)據(jù)表示.例如,比特串A:11010100 的長(zhǎng)度為8,其中出現(xiàn)4 個(gè)1,因此該比特串表示的數(shù)據(jù)xa=4/8=0.5.SC 也可以表示-1~1 的數(shù)據(jù)x,即雙極數(shù)據(jù).這種數(shù)據(jù)表示方式只需要對(duì)比特串中1出現(xiàn)的概率進(jìn)行簡(jiǎn)單地變換即可,即x=2×P(串中出現(xiàn)1)-1.因?yàn)楦怕蔖的范圍一定是[0,1],因此雙極數(shù)據(jù)x通過(guò)線性變換被調(diào)整到[-1,1]范圍內(nèi).圖1(b)(d)中的比特串A,B,C均為雙極數(shù)據(jù)表示.例如,比特串A:11000000 的長(zhǎng)度為8,其中出現(xiàn)2 個(gè)1,則P=2/8=0.25,那么數(shù)據(jù)xa=2×0.25-1=-0.5.對(duì)于SC 數(shù)據(jù)來(lái)說(shuō),數(shù)據(jù)精度由比特串長(zhǎng)度決定,數(shù)據(jù)比特串的位數(shù)越長(zhǎng)數(shù)據(jù)表示越精確.

Fig.1 Examples of SC based arithmetic units圖1 基于隨機(jī)計(jì)算的算術(shù)單元示例

基于這樣的數(shù)據(jù)表示方式,傳統(tǒng)計(jì)算中的算術(shù)運(yùn)算就可以利用概率知識(shí)來(lái)近似計(jì)算.利用SC 技術(shù),傳統(tǒng)浮點(diǎn)數(shù)運(yùn)算中復(fù)雜的加法器、乘法器等算術(shù)單元可以用簡(jiǎn)單的邏輯門代替.例如,對(duì)于單極數(shù)據(jù)來(lái)說(shuō),可以利用一個(gè)簡(jiǎn)單的與門(AND)來(lái)近似乘法運(yùn)算(見(jiàn)圖1(a)).它是利用概率計(jì)算中,2 個(gè)獨(dú)立事件A,B,P(A∩B)=P(A)×P(B) 來(lái)近似計(jì)算,即P(A∧B)=xa×xb.對(duì)于雙極數(shù)據(jù)的乘法來(lái)說(shuō)(見(jiàn)圖1(b)),可以用同或門(XNOR)來(lái)近似.在概率計(jì)算中,P(A⊙B)=P(A⊙B)的結(jié)果正好就是xaxb結(jié)果的雙極數(shù)據(jù)表示.因此,雙極數(shù)據(jù)的乘法可以用同或門來(lái)近似見(jiàn).類似地,單極數(shù)據(jù)和雙極數(shù)據(jù)的加法都可以用或門來(lái)近似,見(jiàn)圖1(c)(d).利用概率計(jì)算,SC 算術(shù)單元的復(fù)雜度被極大地簡(jiǎn)化,這減少了算術(shù)單元的運(yùn)行能耗和硬件使用面積.但是,這種近似方式會(huì)產(chǎn)生較大的計(jì)算誤差.因?yàn)橐獫M足上述的概率計(jì)算公式,比特流A和流B的生成需要是獨(dú)立事件,且在用或門近似加法運(yùn)算時(shí)需要滿足A,B是互斥事件.因此,對(duì)于SC 來(lái)說(shuō),設(shè)計(jì)高準(zhǔn)確率的算術(shù)單元至關(guān)重要.

現(xiàn)有的基于SC 的工作[13-16]大多集中于設(shè)計(jì)高準(zhǔn)確率的算術(shù)電路,接著利用這些算術(shù)電路將DNN 模型部署到硬件設(shè)備上進(jìn)行推理.這種部署往往通過(guò)啟發(fā)式的方法確定一組模型配置(如模型結(jié)構(gòu)、數(shù)據(jù)比特串長(zhǎng)度等)用于硬件實(shí)施.并且,這種部署不會(huì)考慮動(dòng)態(tài)改變的硬件環(huán)境(例如,電池電量會(huì)隨著消耗而減少).這些設(shè)計(jì)往往能夠獲得較高的推理準(zhǔn)確率,卻忽略了硬件效率和電池使用時(shí)間.另外一些工作[17-18]考慮設(shè)計(jì)數(shù)據(jù)精度縮放方法以靈活地改變數(shù)據(jù)比特串長(zhǎng)度,但是神經(jīng)網(wǎng)絡(luò)依然被運(yùn)行在固定的硬件配置上,使得硬件的使用效率沒(méi)有被充分發(fā)揮.

因此,面對(duì)有限且動(dòng)態(tài)變化的硬件資源,為了滿足模型推理的時(shí)間約束和準(zhǔn)確率要求,本文針對(duì)基于SC 的神經(jīng)網(wǎng)絡(luò)創(chuàng)新性地提出了一個(gè)運(yùn)行時(shí)可重配置的框架RR-SC.對(duì)于電池搭載的邊緣設(shè)備來(lái)說(shuō),面對(duì)動(dòng)態(tài)變化的電池電量,本文提出利用動(dòng)態(tài)電壓和頻率調(diào)節(jié)(dynamic voltage and frequency scaling,DVFS)技術(shù)來(lái)進(jìn)行硬件層面重配置以節(jié)省能源使用.DVFS 根據(jù)剩余的電池電量情況,對(duì)硬件的電壓和頻率進(jìn)行相應(yīng)的調(diào)節(jié).在電池電量充足時(shí),使用較高的電壓/頻率(voltage/frequency,V/F)等級(jí)使模型保持在一個(gè)較快的速度上進(jìn)行推理;在電池電量降低到一定程度時(shí),切換至較低的硬件V/F 等級(jí)以降低單位時(shí)間內(nèi)的推理能耗,使得模型能夠在有限的能源內(nèi)運(yùn)行更多次數(shù),以延長(zhǎng)電池的使用時(shí)間.除了硬件層面使用DVFS 進(jìn)行重配置外,RR-SC 還結(jié)合了軟件層面的重配置以滿足模型推理的實(shí)時(shí)性約束.如果在模型推理時(shí)僅僅在不同的電量對(duì)硬件的V/F 等級(jí)進(jìn)行切換,會(huì)使得一組模型配置在高V/F 等級(jí)時(shí)能夠滿足時(shí)間約束,而切換到低V/F 等級(jí)時(shí)推理時(shí)間變長(zhǎng),預(yù)先設(shè)定的時(shí)間約束無(wú)法被滿足.因此,我們?cè)O(shè)計(jì)了RR-SC 框架自動(dòng)地為不同的V/F等級(jí)選擇出最佳的軟件配置.RR-SC 利用強(qiáng)化學(xué)習(xí)(reinforcement learning,RL)[19-20]技術(shù)一次性為不同的V/F 等級(jí)生成對(duì)應(yīng)的模型配置,即模型結(jié)構(gòu)、SC 算術(shù)單元、數(shù)據(jù)比特串長(zhǎng)度等,以滿足模型推理的時(shí)間約束和不同V/F 等級(jí)下的準(zhǔn)確率要求,同時(shí)盡可能地延長(zhǎng)電池的使用時(shí)間.為了實(shí)現(xiàn)運(yùn)行時(shí)的輕量級(jí)切換,RR-SC 只生成1 組模型結(jié)構(gòu)作為主干網(wǎng)絡(luò),從而能夠在不同的硬件配置下快速切換.

本文的主要貢獻(xiàn)包括3 個(gè)方面:

1)為了滿足基于SC 的神經(jīng)網(wǎng)絡(luò)推理的實(shí)時(shí)性要求,并盡可能地延長(zhǎng)電池搭載的邊緣設(shè)備的使用時(shí)間,本文創(chuàng)新性地提出將硬件重配置和軟件重配置相結(jié)合.

2)基于自動(dòng)機(jī)器學(xué)習(xí)技術(shù)提出了一個(gè)運(yùn)行時(shí)可重配置的框架RR-SC,以自動(dòng)地生成硬件配置對(duì)應(yīng)的模型配置(即軟件重配置).選擇的軟件配置擁有最好的準(zhǔn)確率和運(yùn)行效率的權(quán)衡.除此之外,模型運(yùn)行時(shí)在一個(gè)搜索出來(lái)的主干網(wǎng)絡(luò)上進(jìn)行軟件配置切換,以實(shí)現(xiàn)輕量級(jí)軟件重配置.

3)實(shí)驗(yàn)結(jié)果表明,RR-SC 能夠保證在所有硬件級(jí)別下滿足實(shí)時(shí)約束,并且可以在準(zhǔn)確率損失僅為1%的情況下將模型推理次數(shù)增加7.6 倍.同時(shí),它還能在110 ms 內(nèi)滿足不同軟件配置的輕量級(jí)切換.

1 相關(guān)工作

SC 近似計(jì)算產(chǎn)生的高計(jì)算誤差使得基于SC 的DNN 實(shí)現(xiàn)的相關(guān)研究[13-16]主要集中于設(shè)計(jì)高準(zhǔn)確率的硬件電路.由于乘積累加(multiply-accumulate,MAC)運(yùn)算是DNN 實(shí)現(xiàn)中的基本運(yùn)算,因此我們主要討論乘法器和加法器的設(shè)計(jì)與實(shí)現(xiàn).文獻(xiàn)[13]提出使用同或門作為乘法器,并且提出了一個(gè)基于多選器樹(shù)(MUX-tree)的加法器,我們稱這個(gè)算術(shù)電路為XNORMUX.XNOR-MUX 受制于比特流間的相關(guān)性問(wèn)題(即概率近似失效),使得計(jì)算誤差較大.文獻(xiàn)[14]將正負(fù)數(shù)據(jù)分開(kāi)計(jì)算,并利用與門作為乘法器.同時(shí),它提出一種新的加法器,這種加法器分別計(jì)算正數(shù)數(shù)據(jù)的和(POS)與負(fù)數(shù)數(shù)據(jù)的和(NEG),最后利用對(duì)結(jié)果進(jìn)行巧妙地轉(zhuǎn)換,這種轉(zhuǎn)換只需要一個(gè)MUX 門,使得單極數(shù)據(jù)計(jì)算的結(jié)果正好為雙極數(shù)據(jù)表示下正數(shù)部分和負(fù)數(shù)部分的差.我們稱這個(gè)電路為AND-SEP.但當(dāng)輸入數(shù)據(jù)數(shù)量較多時(shí),該加法器在沒(méi)有數(shù)據(jù)縮放時(shí)會(huì)產(chǎn)生計(jì)算溢出問(wèn)題使得計(jì)算誤差較大.文獻(xiàn) [15]為雙極數(shù)據(jù)設(shè)計(jì)了新的乘法器uMUL 和加法器uNSADD,并利用并行計(jì)數(shù)器來(lái)緩解輸入的相關(guān)性問(wèn)題.但在某些特殊情況下會(huì)出現(xiàn)冗余1 或缺失1 的問(wèn)題從而產(chǎn)生計(jì)算誤差,這種電路被稱為uGEMM.文獻(xiàn)[16]進(jìn)一步提出了一種基于累加器的塊內(nèi)加法器以減少計(jì)算錯(cuò)誤,并設(shè)計(jì)了一種輸出修正方案來(lái)解決塊之間的冗余/缺失1 的問(wèn)題.塊內(nèi)的算術(shù)電路被稱為AND-ACC,帶有輸出修正方案的電路被稱為AND-LOOP.這些設(shè)計(jì)雖然相比傳統(tǒng)的二進(jìn)制電路具有更低的運(yùn)行能耗,但它們都沒(méi)有考慮電池搭載的邊緣設(shè)備電量動(dòng)態(tài)改變的情況,因此沒(méi)有涉及任何軟件和硬件的重配置.當(dāng)神經(jīng)網(wǎng)絡(luò)被部署到硬件上時(shí),模型推理始終運(yùn)行在相同的V/F 等級(jí)下,模型的推理會(huì)快速消耗電池電量,使得模型最終推理總次數(shù)較少.

另一方面,文獻(xiàn)[17-18]考慮了運(yùn)行時(shí)比特串長(zhǎng)度的動(dòng)態(tài)改變.文獻(xiàn)[17]提出一個(gè)新的計(jì)算提前終止方法,使得模型推理時(shí)可以只利用較少位數(shù)的比特串就能獲得較好的推理準(zhǔn)確率.文獻(xiàn)[18]擴(kuò)展了文獻(xiàn)[21]的方法并設(shè)計(jì)了新的數(shù)據(jù)表示方式,使得輸入、輸出數(shù)據(jù)的精度可以在運(yùn)行時(shí)任意更改.這些工作雖然實(shí)現(xiàn)了運(yùn)行時(shí)軟件層面的重配置,一定程度上延長(zhǎng)了電池的使用時(shí)間,但它們都運(yùn)行在固定的硬件配置下,使得硬件資源沒(méi)有被充分利用.

因此本文提出一種軟/硬件協(xié)同重配置的方式,利用硬件重配置以盡可能地延長(zhǎng)電池使用時(shí)間,增加模型的推理總次數(shù).同時(shí)搭配軟件重配置以滿足機(jī)器學(xué)習(xí)任務(wù)的實(shí)時(shí)性要求.本文提出的方法充分利用硬件資源,實(shí)現(xiàn)高效實(shí)時(shí)的模型推理.同時(shí),保證了模型推理的準(zhǔn)確率.

2 動(dòng)機(jī)和問(wèn)題定義

2.1 動(dòng) 機(jī)

動(dòng)機(jī)1:電池搭載的邊緣設(shè)備的能源是有限且動(dòng)態(tài)變化的.大多數(shù)移動(dòng)設(shè)備都是電池供電的,例如手機(jī)、無(wú)人機(jī)、機(jī)器人等[22].延長(zhǎng)能源有限的電池使用時(shí)間是很重要的.同時(shí),任務(wù)執(zhí)行需要符合實(shí)時(shí)性要求.面對(duì)有限的能源資源,許多模型壓縮方法[3-5]通過(guò)減小模型大小和參數(shù)數(shù)量在一定程度上提高模型推理速度以降低能源消耗.但是這些壓縮方法依然依賴于復(fù)雜的浮點(diǎn)數(shù)算術(shù)電路運(yùn)算,在能源消耗方面仍有很大的優(yōu)化空間.SC 利用新的數(shù)據(jù)表達(dá)方式和簡(jiǎn)化的算術(shù)電路進(jìn)一步降低模型推理能耗,但由于數(shù)據(jù)表示精度、電路計(jì)算誤差等問(wèn)題,使得許多研究者都致力于研究高準(zhǔn)確率的算術(shù)電路,忽略了硬件的效率和動(dòng)態(tài)變化的硬件資源.因此,面對(duì)逐漸減少的電池電量情況,DVFS[23]技術(shù)常被用于硬件重配置,以節(jié)省能源使用.表1 展示了 Odroid-XU3 平臺(tái)中Cortex A7 內(nèi)核的可用V/F 等級(jí).本文針對(duì)電池搭載的邊緣設(shè)備,在電池電量較高時(shí)配置較高的V/F 等級(jí);當(dāng)電池電量降低到一定程度時(shí),切換到更低的V/F 等級(jí).在本文中,我們稱這種動(dòng)態(tài)電壓和頻率等級(jí)調(diào)節(jié)為硬件重配置.

Table 1 V/F Levels Supported by ARM Cortex A7 Core in Odroid-XU3 Mobile Platform表1 Odroid-XU3 移動(dòng)平臺(tái)中 ARM Cortex A7 內(nèi)核支持的電壓/頻率等級(jí)

動(dòng)機(jī)2:僅僅使用硬件重配置無(wú)法滿足實(shí)時(shí)性要求.我們通過(guò)對(duì)比實(shí)驗(yàn)驗(yàn)證了硬件重配置能夠延長(zhǎng)電池使用時(shí)間,實(shí)驗(yàn)結(jié)果展示在表2 中.為了度量電池的使用時(shí)間,本文用模型在一定能源總量下的推理總次數(shù)來(lái)表示,表2 中所有的方法都具有相同的能源總量.實(shí)驗(yàn)設(shè)置S1 和S2 使用了相同的多層感知機(jī)(multi-layer perceptrons,MLP)模型.我們?cè)O(shè)定MLP模型的結(jié)構(gòu)為784-100-200-10,表示MLP 的3 層全連接層分別有100,200,10 個(gè)神經(jīng)元,784 表示輸入數(shù)據(jù)的大小.模型推理時(shí)使用AND-ACC 算術(shù)電路.在本實(shí)驗(yàn)中的模型配置均使用默認(rèn)設(shè)置,但對(duì)于RRSC 方法,模型的配置通過(guò)優(yōu)化方法確定.實(shí)驗(yàn)設(shè)置S1 僅使用一種模型配置,且模型推理運(yùn)行在固定的硬件配置下,這里的SC 數(shù)據(jù)使用32 b 的0/1 串表示.在實(shí)驗(yàn)設(shè)置S2 中使用了硬件重配置(即DVFS),S2一共設(shè)置了3 個(gè)V/F 等級(jí)F,N,E.F 模式表示使用高V/F 等級(jí)下的快速執(zhí)行模式;N 模式表示使用中間V/F 等級(jí)下的普通速度執(zhí)行模式;E 模式表示使用低V/F 等級(jí)下的節(jié)省能耗的執(zhí)行模式.相應(yīng)地,我們選擇表1 中的l6,l4,l3分別作為F 模式、N 模式和E 模式下的V/F 設(shè)置.從表2 中我們可以看出,在S2 實(shí)驗(yàn)設(shè)置下,由于配置了DVFS 技術(shù),模型的總的推理次數(shù)相比于S1 實(shí)驗(yàn)設(shè)置提升了1.4 倍,這表明DVFS 能夠在一定程度上延長(zhǎng)電池使用時(shí)間.然而,當(dāng)V/F 等級(jí)降低時(shí),如S2 實(shí)驗(yàn)設(shè)置下的N 模式和E 模式的模型推理時(shí)間無(wú)法滿足時(shí)間約束.因?yàn)楫?dāng)頻率降低時(shí),計(jì)算速度也相應(yīng)地變慢.在本實(shí)驗(yàn)中,我們?cè)O(shè)置的時(shí)間約束為45 ms.

Table 2 Running Results Comparison of Three Experimental Settings with the Time Constraint of 45 ms表2 時(shí)間約束 45 ms 下的3 種實(shí)驗(yàn)設(shè)置運(yùn)行結(jié)果對(duì)比

為了解決僅使用硬件重配置無(wú)法滿足實(shí)時(shí)性要求的問(wèn)題,我們探索了軟件重配置以搭配不同的硬件配置.在不同的硬件V/F 等級(jí)下搭配不同的數(shù)據(jù)精度,以降低運(yùn)行的時(shí)間和能耗、滿足實(shí)時(shí)性要求和增加模型推理總次數(shù).我們同樣用實(shí)驗(yàn)來(lái)證明,如表2中的S3 實(shí)驗(yàn)設(shè)置:結(jié)合硬件重配置和軟件重配置.實(shí)驗(yàn)結(jié)果表明,S3 設(shè)置下模型推理總次數(shù)是S1 模式下的2.3 倍,并且相比于S2 模式提升了近40%.與此對(duì)應(yīng)的是,模型推理準(zhǔn)確率產(chǎn)生了一定程度的損失.通過(guò)搭配DVFS,模型推理總次數(shù)顯著增加,電池一次放電的使用時(shí)間延長(zhǎng).接著搭配軟件重配置,也就是不同的模型配置,模型推理的時(shí)間約束能夠被滿足.

2.2 問(wèn)題定義

本文為了解決動(dòng)機(jī)1 和動(dòng)機(jī)2 對(duì)應(yīng)的問(wèn)題,提出了一個(gè)完整的基于自動(dòng)機(jī)器學(xué)習(xí)的框架,能夠?yàn)椴煌挠布渲靡淮涡赃x擇多種軟件配置.本文的問(wèn)題定義為:

定義1.給定邊緣設(shè)備能源總預(yù)算TE,推理時(shí)間約束TC,一組運(yùn)行時(shí)用于切換的V/F 等級(jí)L={l1,l2,…,li,… },各等級(jí)下的準(zhǔn)確率約束AC={Ac1,Ac2,…,Aci,…},本文框架主要用于決定:

1)一個(gè)主干網(wǎng)絡(luò)模型結(jié)構(gòu)BM;

2)一個(gè)隨機(jī)計(jì)算算術(shù)電路C;

3)多組用于軟件重配置的比特串長(zhǎng)度BL={bl1,bl2,…,bli,…}.

運(yùn)行時(shí),硬件根據(jù)剩余的能源(即電池電量)切換相應(yīng)的V/F 等級(jí),被選擇出來(lái)的主干模型BM使用算術(shù)電路C進(jìn)行推理運(yùn)算,根據(jù)不同的V/F 等級(jí)切換相應(yīng)的數(shù)據(jù)精度BL.通過(guò)RR-SC 選擇出來(lái)的軟件配置可以滿足時(shí)間約束TC和各級(jí)準(zhǔn)確率約束AC,同時(shí)最大化模型BM在不同V/F 等級(jí)下的推理次數(shù)總和以及模型推理準(zhǔn)確率.本文使用模型在總能源預(yù)算TE下的推理次數(shù)來(lái)表示硬件的效率.因此本文的優(yōu)化問(wèn)題可以表示為:

其中Runs表示模型在V/F 等級(jí)L下的總運(yùn)行次數(shù),Acc表示多個(gè)模型推理的平均準(zhǔn)確率,lati和Ai分別表示各V/F 等級(jí)下的模型推理時(shí)間和準(zhǔn)確率.

3 RR-SC 框架設(shè)計(jì)

3.1 總體設(shè)計(jì)

圖2 展示了RR-SC 框架的整體設(shè)計(jì).我們建立了一個(gè)基于循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural network,RNN)的RL 控制器(見(jiàn)3.2 節(jié)),用來(lái)從預(yù)先定義好的離散的搜索空間選擇出相應(yīng)的軟件配置.RL 控制器利用深度機(jī)器學(xué)習(xí)的方法,可以通過(guò)訓(xùn)練優(yōu)化以預(yù)測(cè)出更好的結(jié)果.離散搜索空間由模型結(jié)構(gòu)(包括層數(shù)、每層神經(jīng)元個(gè)數(shù)、卷積核大小等)、SC 算術(shù)電路庫(kù)、數(shù)據(jù)精度(即數(shù)據(jù)比特串長(zhǎng)度)組成.RL 控制器選擇出來(lái)一組模型結(jié)構(gòu)作為主干網(wǎng)絡(luò)BM,在不同的V/F 等級(jí)下均使用相同的SC 算術(shù)單元C推理以節(jié)省能耗和切換開(kāi)銷.同時(shí)RL 控制器生成多種數(shù)據(jù)精度BL,以在不同的V/F 等級(jí)下進(jìn)行輕量級(jí)切換.當(dāng)模型配置確定后,主干網(wǎng)絡(luò)接著被訓(xùn)練和推理以獲得各等級(jí)的能耗、時(shí)延和準(zhǔn)確率(見(jiàn)3.3 節(jié)).這些指標(biāo)被輸入設(shè)計(jì)好的反饋函數(shù)(見(jiàn)3.4 節(jié))得到獎(jiǎng)勵(lì)值R,R值被用于更新RL 控制器參數(shù)使其能夠快速收斂.RL 控制器的選擇過(guò)程被執(zhí)行EP次,每次通過(guò)從環(huán)境中獲得的獎(jiǎng)勵(lì)值R來(lái)更新RNN 網(wǎng)絡(luò)的參數(shù)以指導(dǎo)下一次的參數(shù)選擇.

Fig.2 RR-SC framework圖2 RR-SC 框架

3.2 強(qiáng)化學(xué)習(xí)控制器

為了一次性地獲得能夠滿足時(shí)間約束TC和準(zhǔn)確率約束AC的軟件配置,本文利用RL 技術(shù)來(lái)為基于SC 的DNN 智能、高效地選擇最好的參數(shù),以在固定能源總量下獲得最多的模型推理次數(shù)和最好的推理準(zhǔn)確率.RL 控制器是RR-SC 框架的核心部件,它的設(shè)計(jì)基于深度學(xué)習(xí)網(wǎng)絡(luò)模型.DNN 的應(yīng)用使得RL控制器在收斂到全局最優(yōu)解方面具有很大的優(yōu)勢(shì).智能體(agent)每次自動(dòng)地觀察環(huán)境狀態(tài)并通過(guò)獎(jiǎng)勵(lì)值進(jìn)行參數(shù)的自我更新,以在未來(lái)的執(zhí)行過(guò)程中得到更好的動(dòng)作預(yù)測(cè)結(jié)果.

1)狀態(tài)空間(state space).本文使用基于SC 的DNN在相應(yīng)參數(shù)配置下的推理準(zhǔn)確率Acc,及在給定能源總量和V/F 設(shè)置下的推理總次數(shù)Runs來(lái)表征當(dāng)前的環(huán)境狀態(tài),如表3 所示.RL 控制器利用以往動(dòng)作及相應(yīng)的反饋值作為輸入以學(xué)習(xí)以往的經(jīng)驗(yàn),用以訓(xùn)練自身網(wǎng)絡(luò),使其未來(lái)能夠預(yù)測(cè)出擁有更高反饋值的參數(shù)組合.反饋函數(shù)中的性能值能夠全面反映模型在嵌入式設(shè)備上推理時(shí)的不同方面,即推理總次數(shù)反映了運(yùn)行時(shí)的硬件效率,平均推理準(zhǔn)確率反映了模型的分類水平.它們能夠使智能體更好地理解復(fù)雜的系統(tǒng),并能及時(shí)捕捉環(huán)境的動(dòng)態(tài)變化.

Table 3 State Space of RL Controller表3 RL 控制器的狀態(tài)空間

2)動(dòng)作空間(action space).本文的強(qiáng)化學(xué)習(xí)的動(dòng)作空間由3 類參數(shù)的組合空間組成:模型結(jié)構(gòu)、SC算術(shù)電路以及數(shù)據(jù)精度.其中,模型結(jié)構(gòu)決定了推理模型的大小,它包括模型的層數(shù)、每層的神經(jīng)元個(gè)數(shù)、卷積核大小、卷積步長(zhǎng)、輸入通道數(shù)等要素,包含哪些要素由具體的模型決定.接著,本文根據(jù)現(xiàn)有的SC算術(shù)電路設(shè)計(jì)工作構(gòu)建SC 算術(shù)電路庫(kù),包括XNORMUX,AND-SEP,uGEMM,AND-ACC,AND-LOOP 這5 種電路.數(shù)據(jù)精度指不同的SC 數(shù)據(jù)表示位數(shù),越長(zhǎng)的數(shù)據(jù)表示越高的數(shù)據(jù)精度.值得注意的是,RR-SC是一個(gè)可重新配置的框架,它允許將其他因素包含在內(nèi),動(dòng)作空間的值可以根據(jù)不同的需求和場(chǎng)景進(jìn)行調(diào)整.

3)智能體.在RR-SC 的設(shè)計(jì)中,強(qiáng)化學(xué)習(xí)中的智能體被稱為RL 控制器.RL 控制器的實(shí)現(xiàn)基于一個(gè)RNN 網(wǎng)絡(luò),這和文獻(xiàn)[24]中的實(shí)現(xiàn)類似.RNN 相關(guān)的網(wǎng)絡(luò)能夠很好地處理序列相關(guān)的輸入,提取和保留序列中的上下文關(guān)系及信息,因此RL 控制器有助于通過(guò)學(xué)習(xí)以往動(dòng)作中的經(jīng)驗(yàn),不斷訓(xùn)練出更好的RNN 網(wǎng)絡(luò)以做出更好的選擇.首先,RL 控制器從動(dòng)作空間內(nèi)預(yù)測(cè)出一組模型結(jié)構(gòu),一個(gè)SC 算術(shù)單元和多組數(shù)據(jù)精度用于在不同的V/F 等級(jí)下進(jìn)行切換,這種預(yù)測(cè)是基于一個(gè)Softmax 分類器.選擇出來(lái)的參數(shù)用于構(gòu)建主干模型.接著進(jìn)行模型的預(yù)訓(xùn)練和硬件推理,通過(guò)訓(xùn)練和推理,模型的能耗、時(shí)延和準(zhǔn)確率會(huì)被獲得以用于構(gòu)建反饋函數(shù).接著,基于反饋函數(shù)計(jì)算得到獎(jiǎng)勵(lì)值R,一個(gè)蒙特卡羅策略梯度算法[25]被應(yīng)用于更新RL 控制器中的參數(shù) θ.更新 θ的計(jì)算公式為:

其中,m表示RNN 輸入的批次大小,T表示每次選擇的步數(shù).獎(jiǎng)勵(lì)值R在每一步都按指數(shù)因子減少,基線b是R的平均指數(shù)移動(dòng).θ的更新是為了讓RL 控制器在下一輪的搜索中選擇擁有更高R值的配置,使其可以更快地收斂到全局最優(yōu)解.

為了獲得更穩(wěn)定的結(jié)果[26],我們對(duì)RR-SC 執(zhí)行多次,并以擁有最高R值的配置作為我們最終的結(jié)果.RR-SC 的搜索時(shí)間開(kāi)銷以多次運(yùn)行的平均時(shí)間計(jì)算得到.

3.3 模型訓(xùn)練和推理

當(dāng)RL 控制器選擇出來(lái)一組模型配置后,模型訓(xùn)練和推理過(guò)程被啟動(dòng).RL 控制器選擇出來(lái)的模型配置包括模型結(jié)構(gòu),即模型層數(shù)、每層神經(jīng)元個(gè)數(shù)、卷積層核數(shù)、步長(zhǎng)等,SC 算術(shù)電路和多種數(shù)據(jù)精度.當(dāng)選擇出來(lái)的模型配置通過(guò)性能預(yù)測(cè)器(見(jiàn)3.4 節(jié))計(jì)算得到的推理時(shí)間滿足設(shè)定的時(shí)間約束TC時(shí),開(kāi)始相應(yīng)的訓(xùn)練器和模型推理過(guò)程.如果任意V/F 等級(jí)下的時(shí)間約束和準(zhǔn)確率約束沒(méi)有被滿足,那么模型的訓(xùn)練和推理過(guò)程被提前終止,以節(jié)省RR-SC 的搜索開(kāi)銷.圖3 展示了模型訓(xùn)練和推理模塊的主要流程.首先,對(duì)于選擇出來(lái)的參數(shù),模型結(jié)構(gòu)被解析,對(duì)應(yīng)結(jié)構(gòu)的浮點(diǎn)數(shù)模型被構(gòu)建.接著,浮點(diǎn)數(shù)模型被預(yù)訓(xùn)練多次,以獲得擁有高準(zhǔn)確率的模型參數(shù),即權(quán)重和偏置.為了獲得模型在硬件上的推理準(zhǔn)確率,基于SC 的模型被建立.模型的結(jié)構(gòu)與選擇出來(lái)的主干網(wǎng)絡(luò)模型相同,只是數(shù)據(jù)的表示由浮點(diǎn)數(shù)據(jù)轉(zhuǎn)換為SC數(shù)據(jù),即單極數(shù)據(jù)和雙極數(shù)據(jù).所有浮點(diǎn)數(shù)輸入數(shù)據(jù)和模型參數(shù)均通過(guò)隨機(jī)數(shù)生成器(stochastic number generator,SNG)轉(zhuǎn)換成SC 的數(shù)據(jù)比特串.隨后,選擇出來(lái)的算術(shù)電路C被用于實(shí)現(xiàn)基于SC 的DNN 模型.對(duì)于不同的硬件配置,即V/F 等級(jí)來(lái)說(shuō),被選擇出來(lái)的多個(gè)數(shù)據(jù)精度分別對(duì)應(yīng)多個(gè)V/F 等級(jí),應(yīng)用不同數(shù)據(jù)精度的模型通過(guò)算術(shù)電路C推理得到各自的準(zhǔn)確率.多個(gè)模型推理的平均準(zhǔn)確率用于計(jì)算獎(jiǎng)勵(lì)值R.理論上講,當(dāng)硬件配備高V/F 等級(jí)時(shí),相應(yīng)的高數(shù)據(jù)精度被選擇出來(lái),也就是更長(zhǎng)的比特串長(zhǎng)度.這樣,在硬件能源(即電池電量)相對(duì)充足時(shí),模型推理能夠盡可能的準(zhǔn)確.當(dāng)硬件能源減少到一定程度后,數(shù)據(jù)精度也相應(yīng)地被調(diào)低,這樣在損失一定準(zhǔn)確率的情況下,能夠盡可能降低模型推理能耗,以延長(zhǎng)電池的使用時(shí)間.

Fig.3 Model training and inference stages used for obtaining energy,latency and accuracy圖3 模型訓(xùn)練和推理階段用以獲得能耗、時(shí)延和推理準(zhǔn)確率

3.4 性能預(yù)測(cè)器和反饋函數(shù)

為了獲得基于SC 的模型推理時(shí)間,我們?cè)O(shè)計(jì)了一個(gè)性能預(yù)測(cè)器.我們?cè)诟呒?jí)綜合(high-level synthesis,HLS)工具上模擬基于SC 的加法器和乘法器,并獲得當(dāng)前數(shù)據(jù)精度下每個(gè)操作數(shù)計(jì)算所需的時(shí)間.接著,我們根據(jù)選擇出來(lái)的模型結(jié)構(gòu)計(jì)算所有操作的數(shù)量.這樣,就可以獲得模型在當(dāng)前V/F 等級(jí)下的推理時(shí)間.那么當(dāng)模型被切換至其他V/F 等級(jí)時(shí),推理時(shí)間可以通過(guò)頻率的線性變換計(jì)算得到.頻率越高,推理的速度越快,推理時(shí)間越短.另外,為了獲得當(dāng)前硬件設(shè)置下的模型推理次數(shù),我們通過(guò)總能源TE和模型一次推理所需要花費(fèi)的能耗Ei計(jì)算得到.模型一次推理所花費(fèi)的能耗Ei通過(guò)功率乘以時(shí)間得到,即Ei=Poweri×lati.其中,當(dāng)前V/F 等級(jí)下的功率和時(shí)延通過(guò)模型在HLS 中模擬得到.那么模型的推理總次數(shù)Runs即為當(dāng)前等級(jí)的總能源TEi與一次推理所需的能耗Ei的比值,即

本文假定在相同的工作負(fù)載和不變的物理環(huán)境下設(shè)計(jì),因此忽略工作負(fù)載和環(huán)境變化帶來(lái)的功率的動(dòng)態(tài)變化.除此之外,溫度對(duì)能耗也有一定的影響,但本文所使用的隨機(jī)計(jì)算技術(shù)是一種顯著降低模型推理能耗的技術(shù),低能耗技術(shù)對(duì)工作溫度的影響很小甚至沒(méi)有[27].并且,本文在相同的起始溫度下對(duì)不同的軟硬件配置進(jìn)行能耗預(yù)估,溫度對(duì)能耗的影響對(duì)于最后的配置的選擇幾乎沒(méi)有影響.因此本文不考慮溫度對(duì)能耗的影響.

經(jīng)過(guò)模型訓(xùn)練和推理過(guò)程,以及模型預(yù)測(cè)器的高級(jí)綜合之后,可以得到模型在各個(gè)V/F 等級(jí)下的推理次數(shù)和準(zhǔn)確率.接下來(lái),當(dāng)前輪的獎(jiǎng)勵(lì)值R可以通過(guò)反饋函數(shù)計(jì)算用以更新RL 控制器.反饋函數(shù)同時(shí)也用來(lái)表示我們的優(yōu)化目標(biāo),即在時(shí)間約束TC及準(zhǔn)確率約束AC下,最大化模型推理次數(shù)和準(zhǔn)確率.反饋函數(shù)的計(jì)算公式為:

在介紹具體的函數(shù)之前,我們先介紹5 個(gè)符號(hào):1)Rrs指的是多個(gè)模型推理總次數(shù)的歸一化值,它的范圍在[0,1];2)lati表示每一種V/F 等級(jí)下模型的推理時(shí)間;3)Ai表示各種V/F 等級(jí)下的模型推理準(zhǔn)確率,Au和Al是我們預(yù)先設(shè)置的最高準(zhǔn)確率和最低準(zhǔn)確率,用以對(duì)準(zhǔn)確率進(jìn)行歸一化;4)Aci表示各V/F 等級(jí)下的準(zhǔn)確率約束;5)cond是一個(gè)二值條件,cond=True表示對(duì)于 ?i<j,我們有Ai>Aj,意味著運(yùn)行在高V/F等級(jí)的模型擁有更高的推理準(zhǔn)確率,否則cond=False,在這種情況下我們會(huì)給獎(jiǎng)勵(lì)值R一個(gè)懲罰pen.

那么,對(duì)于計(jì)算獎(jiǎng)勵(lì)值R有3 種情況:

1)如果 ?lati>TC或者 ?Ai<Aci意味著時(shí)間約束TC和準(zhǔn)確率約束AC并不是在任意的V/F 等級(jí)下都被滿足,這里我們直接設(shè)置R=-1+Rrs.這意味著,當(dāng)通過(guò)性能預(yù)測(cè)器得到的模型在選擇的動(dòng)作參數(shù)下無(wú)法滿足邊緣設(shè)備要求的時(shí)間約束TC時(shí),就不需要進(jìn)行真正的模型訓(xùn)練和推理以獲得準(zhǔn)確率,因此直接將準(zhǔn)確率反饋值設(shè)置成-1.這樣,RR-SC 的搜索開(kāi)銷在一定程度上就可以減少.同樣地,如果基于SC 的神經(jīng)網(wǎng)絡(luò)模型在某些V/F 等級(jí)下的推理準(zhǔn)確率無(wú)法滿足預(yù)期的要求,那么其他V/F 等級(jí)下的模型就不需要再耗費(fèi)時(shí)間和資源進(jìn)行推理.

2)如果任意V/F 等級(jí)下的推理時(shí)間約束和準(zhǔn)確率約束都能夠被滿足,并且cond=True,也就是期望擁有高V/F 等級(jí)的硬件配置能夠獲得更高的準(zhǔn)確率,那么我們使用歸一化后的平均準(zhǔn)確率和模型推理總次數(shù)作為獎(jiǎng)勵(lì)值R.這種情況對(duì)應(yīng)著本文優(yōu)化問(wèn)題的目標(biāo)函數(shù),RR-SC 期望在滿足時(shí)間約束和準(zhǔn)確率約束的情況下,最大化運(yùn)行總次數(shù)和推理準(zhǔn)確率.

3)否則,我們?cè)诘? 種情況下的獎(jiǎng)勵(lì)值R增加一個(gè)懲罰值pen.因?yàn)镽R-SC 更希望能夠在高V/F 等級(jí)下?lián)碛懈叩耐评頊?zhǔn)確率,給定一個(gè)懲罰值相當(dāng)于告訴智能體這是一種不被期望的結(jié)果.

4 實(shí)驗(yàn)結(jié)果及分析

4.1 實(shí)驗(yàn)設(shè)置

1)實(shí)驗(yàn)方法對(duì)比.首先,我們將RR-SC 框架與之前的基于SC 的工作[13-16]進(jìn)行對(duì)比.本文方法結(jié)合了軟件和硬件的重配置,在滿足實(shí)時(shí)性約束的前提下最大限度地延長(zhǎng)電池使用時(shí)間.通過(guò)利用RL 技術(shù)一次性選擇多種軟件配置對(duì)應(yīng)于多種硬件配置.硬件配置根據(jù)剩余能源電量進(jìn)行V/F 等級(jí)的調(diào)整,選擇出來(lái)的軟件配置對(duì)應(yīng)各個(gè)硬件配置.而現(xiàn)有的前沿工作主要針對(duì)算術(shù)電路進(jìn)行設(shè)計(jì),缺少硬件和軟件重配置.同時(shí),RR-SC 框架選擇出來(lái)的模型被可視化以便于展示.接著,我們利用RR-SC 選擇出來(lái)的模型結(jié)構(gòu)和配置,進(jìn)一步探究軟件重配置和硬件重配置分別對(duì)推理時(shí)間和能源消耗的影響.

2)實(shí)驗(yàn)指標(biāo)及平臺(tái)設(shè)置.我們使用MN?ST 數(shù)據(jù)集在MLP 和LeNet 模型上評(píng)估本文方法,使用Cifar10數(shù)據(jù)集在AlexNet 模型上驗(yàn)證.搜索空間的設(shè)置包括模型結(jié)構(gòu)、SC 算術(shù)單元、數(shù)據(jù)精度3 個(gè)部分.通過(guò)探究,我們將搜索空間內(nèi)所有因素的值都收縮到一個(gè)合理的范圍內(nèi),本文實(shí)驗(yàn)設(shè)置的搜索空間被總結(jié)在表4 中.對(duì)于硬件指標(biāo),算術(shù)電路由 Bluespec SystemVerilog實(shí)現(xiàn),然后編譯為 Verilog 以在Vivado v2020.2 上評(píng)估能耗、時(shí)間等硬件指標(biāo).對(duì)于準(zhǔn)確率指標(biāo),我們?cè)?×NV?D?A Tesla P100 GPU 服務(wù)器(16 GB GPU 內(nèi)存)上進(jìn)行模型推理和RL 的搜索過(guò)程.實(shí)驗(yàn)在 Python 3.6.0,GCC 9.3.0,PyTorch 1.5.1 和 CUDA 10.1 環(huán)境上進(jìn)行.對(duì)于邊緣設(shè)備,我們使用移動(dòng)平臺(tái) Odroid-XU3[28].在實(shí)現(xiàn)SC 模型中,Sobol[29-30]隨機(jī)數(shù)生成器被用于從浮點(diǎn)數(shù)到SC 數(shù)據(jù)的轉(zhuǎn)換.

本文使用LSTM 網(wǎng)絡(luò)作為RL 控制器,LSTM 輸入的批次大小m=35,每次選擇的步數(shù)T=50,學(xué)習(xí)率lr=0.99.本文實(shí)驗(yàn)探究2 種時(shí)間約束下的RR-SC搜索結(jié)果:對(duì)于MLP 來(lái)說(shuō),本文選擇95 ms 和120 ms這2 種時(shí)間約束來(lái)進(jìn)行實(shí)驗(yàn)探究;對(duì)于LeNet 來(lái)說(shuō),時(shí)間約束分別為540 ms 和2 700 ms;對(duì)于AlexNet 來(lái)說(shuō),時(shí)間約束分別設(shè)置為21 000 ms 和125 000 ms.本文共設(shè)置3 種V/F 等級(jí),從高到低分別為表1 中的l6,l4,l3這3 個(gè)等級(jí).相應(yīng)地,對(duì)于在MN?ST 數(shù)據(jù)集上進(jìn)行訓(xùn)練的MLP 和LeNet 這2 種模型來(lái)說(shuō),3 種V/F 等級(jí)下的模型推理準(zhǔn)確率約束分別設(shè)置為95%,90%,85%;對(duì)于在Cifar10 數(shù)據(jù)集上進(jìn)行訓(xùn)練的AlexNet 模型來(lái)說(shuō),3 個(gè)V/F 等級(jí)下的模型推理準(zhǔn)確率約束分別設(shè)置為90%,85%,80%.同時(shí),對(duì)于反饋函數(shù)中的Au和Al分別設(shè)置為98%和60%.

4.2 RR-SC 框架評(píng)估

首先對(duì)于RR-SC 框架的評(píng)估,我們與現(xiàn)有的SC相關(guān)工作[13-16]進(jìn)行對(duì)比.這些工作主要針對(duì)SC 算術(shù)電路進(jìn)行設(shè)計(jì),沒(méi)有充分考慮硬件環(huán)境的動(dòng)態(tài)改變.為了對(duì)比公平,將SC 相關(guān)的工作與通過(guò)RR-SC 搜索到的模型結(jié)構(gòu)設(shè)置成一樣的,并且數(shù)據(jù)精度取RRSC 方法中搜索出來(lái)的最高精度,然后對(duì)它們的模型推理準(zhǔn)確率、時(shí)延及模型推理次數(shù)進(jìn)行比較.

MLP 模型在不同時(shí)間約束下的結(jié)果與SC 相關(guān)工作的對(duì)比展示在表5 和表6 中.表5 展示了時(shí)間約束設(shè)置為95 ms 時(shí)的結(jié)果,表6 展示時(shí)間約束為120 ms時(shí)的結(jié)果.表5 實(shí)驗(yàn)得到的MLP 的模型結(jié)構(gòu)為784-200-32-10,表示模型具有3 層全連接層,并且全連接層的神經(jīng)元的個(gè)數(shù)分別為200,32,10.表6 實(shí)驗(yàn)得到的模型結(jié)構(gòu)為784-128-100-10 這2 組實(shí)驗(yàn)選擇的SC算術(shù)電路均為AND-LOOP.我們將RR-SC 選擇出來(lái)模型結(jié)構(gòu)及相應(yīng)的算術(shù)電路進(jìn)行可視化展示,如圖4 所示.RR-SC 實(shí)驗(yàn)中的硬件配置均設(shè)置成表1 中的l6,l4,l3.對(duì)于其他對(duì)比工作來(lái)說(shuō),V/F 等級(jí)設(shè)置為l6.從實(shí)驗(yàn)結(jié)果中可以看出,AND-LOOP 方法[16]擁有最高的推理準(zhǔn)確率,XNOR-MUX 方法[13]擁有最低的推理準(zhǔn)確率.RR-SC 方法的平均準(zhǔn)確率僅比ANDLOOP 分別低1 個(gè)百分點(diǎn)和1.5 個(gè)百分點(diǎn).然而,RRSC 的推理次數(shù)是AND-LOOP 推理次數(shù)的2.0 倍和2.8 倍.在眾多參數(shù)中,RR-SC 找到了最好的配置.對(duì)于XNOR-MUX 和uGEMM 來(lái)說(shuō),它們的模型推理準(zhǔn)確率和時(shí)間約束都無(wú)法滿足我們的要求的.同時(shí),RRSC 在推理次數(shù)方面實(shí)現(xiàn)了高達(dá)7.6 倍的提升.對(duì)于AND-SEP 和AND-ACC 來(lái)說(shuō),它們?cè)贛LP 784-200-32-10 模型能夠滿足我們的時(shí)間約束要求,但是在MLP 784-128-100-10 這個(gè)模型上的時(shí)間約束要求無(wú)法被滿足.從準(zhǔn)確率和推理時(shí)間來(lái)說(shuō),AND-ACC 是最具競(jìng)爭(zhēng)力的一個(gè)方法.對(duì)于推理次數(shù)來(lái)說(shuō),由于結(jié)合了硬件重配置和軟件重配置,RR-SC 比AND-ACC 實(shí)現(xiàn)了約1.8 倍的性能提升.RR-SC 方法可以在滿足一定的時(shí)間約束和準(zhǔn)確率約束的情況下,最大化模型推理次數(shù)和平均準(zhǔn)確率,擁有最好的性能權(quán)衡.

Table 5 Comparative Results of SC Relative Work and RR-SC with the Time Constraint 95 ms on MLP表5 MLP 上SC 相關(guān)工作和RR-SC 在時(shí)間約束為95 ms 時(shí)的比較結(jié)果

Table 6 Comparative Results of SC Relative Work and RR-SC with the Time Constraint 120 ms on MLP表6 MLP 上SC 相關(guān)工作和RR-SC 在時(shí)間約束為120 ms 時(shí)的比較結(jié)果

Fig.4 Visualization of the model architecture and SC arithmetic circuit searched by RR-SC圖4 RR-SC 搜索到的模型架構(gòu)和SC 算術(shù)電路可視化

對(duì)于LeNet 來(lái)說(shuō),同樣地,一個(gè)較緊的時(shí)間約束實(shí)驗(yàn)結(jié)果和一個(gè)較松的時(shí)間約束實(shí)驗(yàn)結(jié)果分別被展示在表7 和表8 中.表7 中的實(shí)驗(yàn)設(shè)置時(shí)間約束為540 ms,表8 實(shí)驗(yàn)設(shè)置時(shí)間約束為2 700 ms.AlexNet的實(shí)驗(yàn)結(jié)果被展示在表9 和表10 中,設(shè)置時(shí)間約束分別為21 000 ms 和125 000 ms.因?yàn)長(zhǎng)eNet 和AlexNet相較于MLP 更大、也更復(fù)雜,因此我們?cè)O(shè)置了更長(zhǎng)的時(shí)間約束.對(duì)于表7 中的實(shí)驗(yàn),一個(gè)結(jié)構(gòu)為Conv1(k=3,s=1,c=6)-Pooling1(k=1,s=2)-Conv2(k=7,s=1,c=64)-Pooling2(k=1,s=2)-FC1(32)-FC2(128)-FC3(10)的 主干網(wǎng)絡(luò)被選擇出來(lái).對(duì)于表8 中的實(shí)驗(yàn)來(lái)說(shuō),主干網(wǎng)絡(luò)結(jié)構(gòu)為Conv1(k=3,s=1,c=32)-Pooling1(k=1,s=1)-Conv2(k=5,s=1,c=6)-Pooling2(k=1,s=1)-FC1(32)-FC2(512)-FC3(10).其中,k表示卷積層或池化層的核大小,s表示卷積層和池化層的滑動(dòng)步長(zhǎng),c表示卷積層的輸出通道數(shù).在卷積層和池化層之后緊接2 個(gè)全連接層.對(duì)于AlexNet 網(wǎng)絡(luò)來(lái)說(shuō),表9 實(shí)驗(yàn)下選擇出來(lái)的主干網(wǎng)絡(luò)模型為Conv1(k=5,s=1,c=256)-Pooling1(k=1,s=1)-Conv2(k=3,s=2,c=32)-Pooling2(k=1,s=1)-Conv3(k=7,s=2,c=16)-Conv4(k=5,s=2,c=16)-Conv5(k=3,s=1,c=256)-Pooling3(k=1,s=1)-FC1(512)-FC2(1 024)-FC3(10),表10 實(shí)驗(yàn)下選擇出來(lái)的主干網(wǎng)絡(luò)模型為Conv1(k=7,s=2,c=256)-Pooling1(k=1,s=1)-Conv2(k=7,s=1,c=64)-Pooling2(k=1,s=1)-Conv3(k=3,s=1,c=256)-Conv4(k=7,s=1,c=32)-Conv5(k=7,s=1,c=256)-FC1(1 024)-FC2(512)-FC3(10).同樣地,對(duì)于LeNet 和AlexNet 的實(shí)驗(yàn)中選擇出來(lái)的模型參數(shù)也被展示在圖4 中.對(duì)于LeNet 來(lái)說(shuō),當(dāng)TC=540 ms 時(shí),RR-SC 選擇出來(lái)的SC 算術(shù)電路是AND-LOOP,對(duì)于TC=2 700 ms 時(shí),RR-SC 在ANDACC 上有更好的表現(xiàn).從準(zhǔn)確率的角度來(lái)說(shuō),ANDLOOP 依然能夠獲得最高的推理準(zhǔn)確率,但RR-SC 在產(chǎn)生高達(dá)3.1 倍的硬件效率的同時(shí),只產(chǎn)生了1.2%的準(zhǔn)確率丟失.從推理時(shí)間的角度來(lái)說(shuō),有些SC 工作在推理時(shí)能夠滿足我們約定的時(shí)間約束,但由于缺乏軟件和硬件的重配置,使得硬件效率沒(méi)有被充分發(fā)揮.對(duì)比所有的方法,RR-SC 能夠產(chǎn)生最高4.4倍的性能提升.對(duì)于AlexNet 來(lái)說(shuō),當(dāng)TC=21 000 ms時(shí),RR-SC 能夠產(chǎn)生高達(dá)4.9 倍的硬件效率提升,但比擁有最高準(zhǔn)確率的AND-LOOP 電路只產(chǎn)生了1.7%的準(zhǔn)確率損失.類似地,當(dāng)TC=125 000 ms 時(shí),RR-SC比其他方法最高能達(dá)到7.3 倍的運(yùn)行數(shù)提升,相比AND-LOOP 電路準(zhǔn)確率損失只有0.9%.同時(shí),RR-SC也能夠滿足設(shè)定的時(shí)間約束和準(zhǔn)確率約束.

Table 7 Comparative Results of SC Relative Work and RR-SC with the Time Constraint 540 ms on LeNet表7 LeNet 上SC 相關(guān)工作和RR-SC 在時(shí)間約束為540 ms 時(shí)的比較結(jié)果

Table 8 Comparative Results of SC Relative Work and RR-SC with the Time Constraint 2 700 ms on LeNet表8 LeNet 上SC 相關(guān)工作和RR-SC 在時(shí)間約束為2 700 ms 時(shí)的比較結(jié)果

Table 9 Comparative Results of SC Relative Work and RR-SC with the Time Constraint 21 000 ms on AlexNet表9 AlexNet 上SC 相關(guān)工作和RR-SC 在時(shí)間約束為21 000 ms 時(shí)的比較結(jié)果

Table 10 Comparative Results of SC Relative Work and RR-SC with the Time Constraint 125 000 ms on AlexNet表10 AlexNet 上SC 相關(guān)工作和RR-SC 在時(shí)間約束為125 000 ms 時(shí)的比較結(jié)果

除此之外,RR-SC 產(chǎn)生的模型在不同配置中進(jìn)行切換時(shí)產(chǎn)生的開(kāi)銷也非常小.對(duì)于MLP 來(lái)說(shuō),模型切換需要約9 ms;對(duì)于LeNet 來(lái)說(shuō),模型切換需要約110 ms;對(duì)于AlexNet 來(lái)說(shuō),模型切換需要約4 030 ms.RR-SC 支持實(shí)時(shí)輕量級(jí)的模型切換.MLP,LeNet,AlexNet 每次因V/F 等級(jí)切換而切換數(shù)據(jù)精度時(shí)產(chǎn)生的能耗開(kāi)銷分別為18 μJ,220 μJ,8.1 mJ.

4.3 硬件和軟件重配置方法評(píng)估

在本節(jié)中,我們對(duì)軟硬件重配置方式進(jìn)行比較.MLP,LeNet 和AlexNet 的配置使用RR-SC 選擇出來(lái)的模型結(jié)構(gòu)、算術(shù)電路和數(shù)據(jù)精度進(jìn)行實(shí)驗(yàn)對(duì)比.我們分別對(duì)比了無(wú)任何重配置、只有硬件重配置(HW)、只有軟件重配置(SW)和結(jié)合軟硬件重配置(RR-SC)4 種方法.對(duì)于所有的方法,MLP 結(jié)構(gòu)設(shè)置為784-200-32-10,LeNet 結(jié)構(gòu)設(shè)置為Conv1(k=3,s=1,c=6)-Pooling1(k=1,s=2)-Conv2(k=7,s=1,c=64)-Pooling2(k=1,s=2)-FC1(32)-FC2(128)-FC3(10),AlexNet 模型結(jié)構(gòu)設(shè) 置為Conv1(k=5,s=1,c=256)-Pooling1(k=1,s=1)-Conv2(k=3,s=2,c=32)-Pooling2(k=1,s=1)-Conv3(k=7,s=2,c=16)-Conv4(k=5,s=2,c=16)-Conv5(k=3,s=1,c=256)-Pooling3(k=1,s=1)-FC1(512)-FC2(1 024)-FC3(10),均使用在相對(duì)低的時(shí)間約束下RR-SC 選擇出來(lái)的模型結(jié)構(gòu).為了公平比較,這4 種方法均使用相同的SC 算術(shù)電路,即AND-LOOP.對(duì)于硬件重配置來(lái)說(shuō),3 個(gè)V/F 等級(jí)依然設(shè)置為l6,l4,l3.類似地,只有軟件重配置的設(shè)置和只有硬件重配置的其他配置被展示在表11、表12 和表13 中.

Table 11 Experimental Results of Methods with/Without Hardware and Software Reconfiguration on MLP表11 MLP 模型上搭配/不搭配軟硬件重配置方法的實(shí)驗(yàn)結(jié)果

Table 12 Experimental Results of Methods with/Without Hardware and Software Reconfiguration on LeNet表12 LeNet 上搭配/不搭配軟硬件重配置方法的實(shí)驗(yàn)結(jié)果

Table 13 Experimental Results of Methods with/Without Hardware and Software Reconfiguration on AlexNet表13 AlexNet 上搭配/不搭配軟硬件重配置方法的實(shí)驗(yàn)結(jié)果

表11~13 實(shí)驗(yàn)結(jié)果表明,當(dāng)模型不搭配任何的軟硬件重配置時(shí),雖然其擁有最高的推理準(zhǔn)確率,且時(shí)間約束能夠被滿足,但是它能進(jìn)行的模型推理次數(shù)是最少的.當(dāng)模型只搭配硬件重配置時(shí),模型推理的時(shí)間約束無(wú)法被滿足,但其對(duì)延長(zhǎng)電池使用時(shí)間有一定的優(yōu)化.對(duì)于只有軟件重配置的實(shí)驗(yàn)來(lái)說(shuō),模型的時(shí)間約束都能被滿足,但推理準(zhǔn)確率有一定的下降,且推理次數(shù)也比只搭配硬件和RR-SC方法更少.對(duì)于RR-SC 方法來(lái)說(shuō),能夠在滿足時(shí)間約束的條件下,最大限度延長(zhǎng)電池的使用時(shí)間,相比于無(wú)任何軟硬件配置的實(shí)驗(yàn)有接近2.0 倍的性能提升;對(duì)比只有硬件重配置或只有軟件重配置的方法來(lái)說(shuō),能夠達(dá)到1.5 倍的性能提升;而且,RR-SC相比于最高的準(zhǔn)確率來(lái)說(shuō),在MLP,LeNet 和AlexNet中分別只產(chǎn)生了1.0 個(gè)百分點(diǎn),1.2 個(gè)百分點(diǎn),1.7 個(gè)百分點(diǎn)的下降.

5 結(jié)論

對(duì)于電池搭載的邊緣設(shè)備來(lái)說(shuō),能源(即電池電量)是有限且動(dòng)態(tài)改變的.面對(duì)這種硬件環(huán)境,本文針對(duì)基于SC 的神經(jīng)網(wǎng)絡(luò)創(chuàng)新性地提出了硬件和軟件重配置相結(jié)合的方法以最大限度地延長(zhǎng)電池使用時(shí)間.對(duì)于不斷改變的電池電量來(lái)說(shuō),本文設(shè)置電量閾值以便于在電量降低到一定程度之后進(jìn)行硬件配置的切換(即切換V/F 等級(jí)).同時(shí),為了選擇最好的軟件配置,本文提出一個(gè)運(yùn)行時(shí)可重配置框架RRSC,在滿足模型推理時(shí)間約束和準(zhǔn)確率約束的前提下,最大化模型推理準(zhǔn)確率和推理總次數(shù).RR-SC 利用強(qiáng)化學(xué)習(xí)技術(shù)能夠一次性選擇多組軟件配置以對(duì)應(yīng)不同的硬件配置.每組配置能夠同時(shí)滿足規(guī)定的時(shí)間約束和準(zhǔn)確率約束.同時(shí),多個(gè)模型配置在同一個(gè)主干網(wǎng)絡(luò)上進(jìn)行切換,從而在運(yùn)行時(shí)實(shí)現(xiàn)輕量級(jí)的軟件重配置.實(shí)驗(yàn)結(jié)果表明,RR-SC 在給定能源總量的情況下最高可以將模型推理次數(shù)增加7.6 倍,且精度損失相較于最高準(zhǔn)確率方法小于1.7 個(gè)百分點(diǎn).同時(shí),可以在110 ms 內(nèi)進(jìn)行LeNet 模型配置的輕量級(jí)切換,并且可以滿足不同硬件配置下的實(shí)時(shí)性要求.

作者貢獻(xiàn)聲明:宋玉紅提出論文方案,完成實(shí)驗(yàn)和撰寫(xiě)論文;沙行勉提出指導(dǎo)意見(jiàn)和分析方案;諸葛晴鳳提出指導(dǎo)意見(jiàn)和討論方案;許瑞和王寒參與方案討論和修改論文.

猜你喜歡
算術(shù)約束準(zhǔn)確率
“碳中和”約束下的路徑選擇
乳腺超聲檢查診斷乳腺腫瘤的特異度及準(zhǔn)確率分析
不同序列磁共振成像診斷脊柱損傷的臨床準(zhǔn)確率比較探討
2015—2017 年寧夏各天氣預(yù)報(bào)參考產(chǎn)品質(zhì)量檢驗(yàn)分析
約束離散KP方程族的完全Virasoro對(duì)稱
高速公路車牌識(shí)別標(biāo)識(shí)站準(zhǔn)確率驗(yàn)證法
算算術(shù)
學(xué)算術(shù)
小狗算算術(shù)
做算術(shù)(外一則)