999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

RR-SC: 邊緣設備中基于隨機計算神經網絡的運行時可重配置框架

2024-04-29 05:35:22宋玉紅沙行勉諸葛晴鳳
計算機研究與發展 2024年4期
關鍵詞:實驗模型

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

(華東師范大學計算機科學與技術學院 上海 200062)

(yhsong@stu.ecnu.edu.cn)

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

SC 使用一個隨機的0/1 比特串來表示數據,它不同于傳統的二進制比特串—每個位置具有不同的權重值.對于SC 數據來說,每個位置的權重都是一樣的.因此,SC 數據在噪聲環境中具有很高的數據容錯性,1 個比特位發生翻轉,對整體數值的影響并不大.SC 數據具有2 種數據類型:單極(unipolar)數據和雙極(bipolar)數據.單極數據表示的是[0,1]范圍內的實數,雙極數據表示[-1,1]范圍內的實數.對單極數據來說,對任意的實數x(0 ≤x≤1),0/1 比特串中的每個比特都有x的概率為1,都有 1-x的概率為0,即x=P(串中出現1).圖1(a)(c)中的比特串A,B,C均為單極數據表示.例如,比特串A:11010100 的長度為8,其中出現4 個1,因此該比特串表示的數據xa=4/8=0.5.SC 也可以表示-1~1 的數據x,即雙極數據.這種數據表示方式只需要對比特串中1出現的概率進行簡單地變換即可,即x=2×P(串中出現1)-1.因為概率P的范圍一定是[0,1],因此雙極數據x通過線性變換被調整到[-1,1]范圍內.圖1(b)(d)中的比特串A,B,C均為雙極數據表示.例如,比特串A:11000000 的長度為8,其中出現2 個1,則P=2/8=0.25,那么數據xa=2×0.25-1=-0.5.對于SC 數據來說,數據精度由比特串長度決定,數據比特串的位數越長數據表示越精確.

Fig.1 Examples of SC based arithmetic units圖1 基于隨機計算的算術單元示例

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

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

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

本文的主要貢獻包括3 個方面:

1)為了滿足基于SC 的神經網絡推理的實時性要求,并盡可能地延長電池搭載的邊緣設備的使用時間,本文創新性地提出將硬件重配置和軟件重配置相結合.

2)基于自動機器學習技術提出了一個運行時可重配置的框架RR-SC,以自動地生成硬件配置對應的模型配置(即軟件重配置).選擇的軟件配置擁有最好的準確率和運行效率的權衡.除此之外,模型運行時在一個搜索出來的主干網絡上進行軟件配置切換,以實現輕量級軟件重配置.

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

1 相關工作

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

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

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

2 動機和問題定義

2.1 動 機

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

Table 1 V/F Levels Supported by ARM Cortex A7 Core in Odroid-XU3 Mobile Platform表1 Odroid-XU3 移動平臺中 ARM Cortex A7 內核支持的電壓/頻率等級

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

Table 2 Running Results Comparison of Three Experimental Settings with the Time Constraint of 45 ms表2 時間約束 45 ms 下的3 種實驗設置運行結果對比

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

2.2 問題定義

本文為了解決動機1 和動機2 對應的問題,提出了一個完整的基于自動機器學習的框架,能夠為不同的硬件配置一次性選擇多種軟件配置.本文的問題定義為:

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

1)一個主干網絡模型結構BM;

2)一個隨機計算算術電路C;

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

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

其中Runs表示模型在V/F 等級L下的總運行次數,Acc表示多個模型推理的平均準確率,lati和Ai分別表示各V/F 等級下的模型推理時間和準確率.

3 RR-SC 框架設計

3.1 總體設計

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

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

3.2 強化學習控制器

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

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

Table 3 State Space of RL Controller表3 RL 控制器的狀態空間

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

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

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

為了獲得更穩定的結果[26],我們對RR-SC 執行多次,并以擁有最高R值的配置作為我們最終的結果.RR-SC 的搜索時間開銷以多次運行的平均時間計算得到.

3.3 模型訓練和推理

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

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

3.4 性能預測器和反饋函數

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

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

經過模型訓練和推理過程,以及模型預測器的高級綜合之后,可以得到模型在各個V/F 等級下的推理次數和準確率.接下來,當前輪的獎勵值R可以通過反饋函數計算用以更新RL 控制器.反饋函數同時也用來表示我們的優化目標,即在時間約束TC及準確率約束AC下,最大化模型推理次數和準確率.反饋函數的計算公式為:

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

那么,對于計算獎勵值R有3 種情況:

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

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

3)否則,我們在第2 種情況下的獎勵值R增加一個懲罰值pen.因為RR-SC 更希望能夠在高V/F 等級下擁有更高的推理準確率,給定一個懲罰值相當于告訴智能體這是一種不被期望的結果.

4 實驗結果及分析

4.1 實驗設置

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

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

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

4.2 RR-SC 框架評估

首先對于RR-SC 框架的評估,我們與現有的SC相關工作[13-16]進行對比.這些工作主要針對SC 算術電路進行設計,沒有充分考慮硬件環境的動態改變.為了對比公平,將SC 相關的工作與通過RR-SC 搜索到的模型結構設置成一樣的,并且數據精度取RRSC 方法中搜索出來的最高精度,然后對它們的模型推理準確率、時延及模型推理次數進行比較.

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

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

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

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

對于LeNet 來說,同樣地,一個較緊的時間約束實驗結果和一個較松的時間約束實驗結果分別被展示在表7 和表8 中.表7 中的實驗設置時間約束為540 ms,表8 實驗設置時間約束為2 700 ms.AlexNet的實驗結果被展示在表9 和表10 中,設置時間約束分別為21 000 ms 和125 000 ms.因為LeNet 和AlexNet相較于MLP 更大、也更復雜,因此我們設置了更長的時間約束.對于表7 中的實驗,一個結構為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)的 主干網絡被選擇出來.對于表8 中的實驗來說,主干網絡結構為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表示卷積層和池化層的滑動步長,c表示卷積層的輸出通道數.在卷積層和池化層之后緊接2 個全連接層.對于AlexNet 網絡來說,表9 實驗下選擇出來的主干網絡模型為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 實驗下選擇出來的主干網絡模型為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).同樣地,對于LeNet 和AlexNet 的實驗中選擇出來的模型參數也被展示在圖4 中.對于LeNet 來說,當TC=540 ms 時,RR-SC 選擇出來的SC 算術電路是AND-LOOP,對于TC=2 700 ms 時,RR-SC 在ANDACC 上有更好的表現.從準確率的角度來說,ANDLOOP 依然能夠獲得最高的推理準確率,但RR-SC 在產生高達3.1 倍的硬件效率的同時,只產生了1.2%的準確率丟失.從推理時間的角度來說,有些SC 工作在推理時能夠滿足我們約定的時間約束,但由于缺乏軟件和硬件的重配置,使得硬件效率沒有被充分發揮.對比所有的方法,RR-SC 能夠產生最高4.4倍的性能提升.對于AlexNet 來說,當TC=21 000 ms時,RR-SC 能夠產生高達4.9 倍的硬件效率提升,但比擁有最高準確率的AND-LOOP 電路只產生了1.7%的準確率損失.類似地,當TC=125 000 ms 時,RR-SC比其他方法最高能達到7.3 倍的運行數提升,相比AND-LOOP 電路準確率損失只有0.9%.同時,RR-SC也能夠滿足設定的時間約束和準確率約束.

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

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

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

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

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

4.3 硬件和軟件重配置方法評估

在本節中,我們對軟硬件重配置方式進行比較.MLP,LeNet 和AlexNet 的配置使用RR-SC 選擇出來的模型結構、算術電路和數據精度進行實驗對比.我們分別對比了無任何重配置、只有硬件重配置(HW)、只有軟件重配置(SW)和結合軟硬件重配置(RR-SC)4 種方法.對于所有的方法,MLP 結構設置為784-200-32-10,LeNet 結構設置為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 模型結構設 置為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),均使用在相對低的時間約束下RR-SC 選擇出來的模型結構.為了公平比較,這4 種方法均使用相同的SC 算術電路,即AND-LOOP.對于硬件重配置來說,3 個V/F 等級依然設置為l6,l4,l3.類似地,只有軟件重配置的設置和只有硬件重配置的其他配置被展示在表11、表12 和表13 中.

Table 11 Experimental Results of Methods with/Without Hardware and Software Reconfiguration on MLP表11 MLP 模型上搭配/不搭配軟硬件重配置方法的實驗結果

Table 12 Experimental Results of Methods with/Without Hardware and Software Reconfiguration on LeNet表12 LeNet 上搭配/不搭配軟硬件重配置方法的實驗結果

Table 13 Experimental Results of Methods with/Without Hardware and Software Reconfiguration on AlexNet表13 AlexNet 上搭配/不搭配軟硬件重配置方法的實驗結果

表11~13 實驗結果表明,當模型不搭配任何的軟硬件重配置時,雖然其擁有最高的推理準確率,且時間約束能夠被滿足,但是它能進行的模型推理次數是最少的.當模型只搭配硬件重配置時,模型推理的時間約束無法被滿足,但其對延長電池使用時間有一定的優化.對于只有軟件重配置的實驗來說,模型的時間約束都能被滿足,但推理準確率有一定的下降,且推理次數也比只搭配硬件和RR-SC方法更少.對于RR-SC 方法來說,能夠在滿足時間約束的條件下,最大限度延長電池的使用時間,相比于無任何軟硬件配置的實驗有接近2.0 倍的性能提升;對比只有硬件重配置或只有軟件重配置的方法來說,能夠達到1.5 倍的性能提升;而且,RR-SC相比于最高的準確率來說,在MLP,LeNet 和AlexNet中分別只產生了1.0 個百分點,1.2 個百分點,1.7 個百分點的下降.

5 結論

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

作者貢獻聲明:宋玉紅提出論文方案,完成實驗和撰寫論文;沙行勉提出指導意見和分析方案;諸葛晴鳳提出指導意見和討論方案;許瑞和王寒參與方案討論和修改論文.

猜你喜歡
實驗模型
一半模型
記一次有趣的實驗
微型實驗里看“燃燒”
重要模型『一線三等角』
重尾非線性自回歸模型自加權M-估計的漸近分布
做個怪怪長實驗
3D打印中的模型分割與打包
NO與NO2相互轉化實驗的改進
實踐十號上的19項實驗
太空探索(2016年5期)2016-07-12 15:17:55
FLUKA幾何模型到CAD幾何模型轉換方法初步研究
主站蜘蛛池模板: 免费观看精品视频999| 亚洲系列无码专区偷窥无码| 欧洲精品视频在线观看| 欧美成人精品在线| 国产乱人免费视频| 欧美.成人.综合在线| 色综合中文| 色成人综合| 日韩成人免费网站| 亚洲第一区在线| 久热re国产手机在线观看| 日韩在线影院| 曰韩人妻一区二区三区| 人妻精品久久无码区| 国产凹凸视频在线观看| 在线观看精品国产入口| 国产十八禁在线观看免费| 国产精品网曝门免费视频| 91免费国产在线观看尤物| 五月天久久婷婷| 久久精品国产一区二区小说| 欧美色图久久| 99国产精品免费观看视频| 亚洲最猛黑人xxxx黑人猛交| 久久综合九色综合97婷婷| AV无码国产在线看岛国岛| 熟妇丰满人妻| 国产欧美在线观看精品一区污| 国产18在线播放| 精品视频在线观看你懂的一区| 免费一级毛片在线播放傲雪网| 毛片手机在线看| 精品一区二区三区水蜜桃| 亚洲欧美成人在线视频| 天天爽免费视频| 成人国产精品网站在线看| 中文字幕亚洲另类天堂| 亚洲一级毛片免费观看| 国产91在线|日本| 69国产精品视频免费| 老汉色老汉首页a亚洲| 国产在线八区| 激情综合激情| 伊人久久大香线蕉成人综合网| 欧美日韩导航| 国产精品尹人在线观看| 欧美亚洲激情| 岛国精品一区免费视频在线观看 | 亚洲AV无码一二区三区在线播放| 亚洲欧美日本国产综合在线| 久久精品66| 国产乱子伦视频在线播放 | 91丨九色丨首页在线播放| 成年人国产网站| 国产女人在线视频| 男女性色大片免费网站| 国产h视频在线观看视频| 国产欧美视频一区二区三区| 日韩欧美高清视频| 国产高清精品在线91| 亚洲一区二区无码视频| 国产欧美日韩精品综合在线| 在线国产毛片| 华人在线亚洲欧美精品| 欧美人在线一区二区三区| 麻豆精品在线播放| 精品综合久久久久久97超人该| 嫩草在线视频| 国产国模一区二区三区四区| 色综合国产| 亚洲天堂网视频| 亚洲一级毛片免费看| 欧美日韩国产在线观看一区二区三区 | 992tv国产人成在线观看| 亚洲国产成人自拍| 国产白浆在线| 日韩国产一区二区三区无码| 一区二区三区四区在线| 国产精品理论片| 久久久久亚洲精品成人网| 欧美成人在线免费| 亚洲中文在线看视频一区|