[發明專利]一種邊緣環境下DNN應用計算卸載自適應中間件構建方法有效
| 申請號: | 202110726143.0 | 申請日: | 2021-06-29 |
| 公開(公告)號: | CN113435580B | 公開(公告)日: | 2022-06-07 |
| 發明(設計)人: | 陳星;李鳴 | 申請(專利權)人: | 福州大學 |
| 主分類號: | G06N3/04 | 分類號: | G06N3/04;G06N3/06;G06K9/62;G06F8/72 |
| 代理公司: | 福州元創專利商標代理有限公司 35100 | 代理人: | 陳明鑫;蔡學俊 |
| 地址: | 350108 福建省福州市*** | 國省代碼: | 福建;35 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 邊緣 環境 dnn 應用 計算 卸載 自適應 中間件 構建 方法 | ||
1.一種邊緣環境下DNN應用計算卸載自適應中間件構建方法,其特征在于:包括以下步驟:
步驟S1:構建卸載機制,所述卸載機制的輸入為DNN源碼,輸出為可卸載的DNN目標代碼;
步驟S2:構建評估模型,所述評估模型的輸入為環境配置和應用源碼,輸出為最優卸載方案;
所述步驟S1的具體包括以下步驟:
步驟S11:提出管道—過濾器模式的設計模式;
步驟S12:利用代碼重構技術將DNN源碼轉變為DNN目標代碼,使該代碼符合步驟S11的設計模式;代碼重構目的是使代碼嚴格遵循設計模式以實現卸載;
步驟S13:運行時機制根據配置文件對給定的卸載方案進行自適應卸載;
所述步驟S11的具體內容為:
管道-過濾器設計模式,即將一個整體的執行單元按需劃分為多個可獨立執行的小單元;其中,每個執行單元稱為一個過濾器部件,該部件有一組獨立的輸入端口和輸出端口,負責承接上下層的中間執行數據;執行單元間的數據連接通路稱為一個管道部件,所述管道部件負責接受數據與轉發數據;所述管道-過濾器模式擴展DNN層級分布式卸載能力,模型中的層相當于過濾器,管道作為層間的數據傳輸帶,該數據傳輸模式不依賴于過濾器執行的位置,因此過濾器可被卸載在相同或不同的計算節點上;其中,DNN第一層的參數包括輸入數據,DNN最后一層的輸出結果即為網絡推理的結果;在一個典型的DNN代碼執行過程中,過濾器負責層的接受輸入、計算以及保存輸出,其中,接受的輸入值將作為該層的入參,來源于外界輸入或是上一層的中間運算向量;計算即DNN層的執行;保存的輸出值將作為推理結果或是后繼層的入參;管道負責層間數據的調度,包括接受本地或是遠程的過濾器輸出,并發送至本地過濾器或遠程過濾器;
所述步驟S12中所述代碼重構具體包括以下步驟:
步驟a:入參準備:在傳入初始化數據InitData至DNN層中時,新增參數InitL、EndL,分別表示當前節點處理的初始DNN層標號和結束層標號;給定一個應用程序,在代碼重構過程中插入InitL、EndL于參數列表,表示一次調用從初始DNN層InitL執行至結束DNN層EndL;新增參數CurrentL用以標記DNN應用執行的進度,即當前執行的過濾器標號;那么,當前節點中DNN層標號不在InitL至EndL范圍內的DNN層將被跳過執行;由于不執行InitL的上一層,InitData被賦值作為上一層執行的中間結果輸出;
步驟b:新增管道機制:新增方法Pipe(i)于執行每一層layer[i]之前,該方法決定layer[i]是否由當前節點的過濾器執行,對過濾器起激活作用,是運行時支撐機制的核心;
步驟c:新增過濾器:新增兩個判斷語句;第一個判斷語句用以控制當前過濾器是否執行,第二個判斷語句用以包裝并存儲本次調用中最后一個過濾器執行的結果,進而通過管道發送給遠程節點的過濾器,即對管道起激活作用;新增全局變量Output用以保存待管道接收的中間輸出結果,當前層的后繼層若卸載于遠程時,則需用到該變量;
所述步驟S2的具體包括以下步驟:
步驟S21:對基本信息進行建模,包括DNN結構模型、隨機森林回歸的代價預測模型組以及環境上下文模型;其中,DNN結構模型以DNN層代碼作為輸入,通過靜態代碼分析對模型中的層參數進行特征抽取;隨機森林回歸的代價預測模型組以DNN結構模型的信息作為輸入,以隨機森林回歸模型作為訓練器,輸出為經過訓練的模型組所預測的時延;
步驟S22:綜合DNN結構模型、隨機森林回歸的代價預測模型組以及環境上下文模型,對要計算的卸載方案進行影響因素分析以及目標函數的構建;
所述影響因素指在衡量計算卸載方案性能問題時,對該問題結果產生影響的所有因素,它們來源于DNN結構模型、隨機森林回歸的代價預測模型組以及環境上下文模型;所述目標函數為執行DNN模型所需的總體響應時間;
步驟S23:評估模型的輸出為最優的計算卸載方案,該方案能決策出DNN每一層的部署節點,從而得到最優的目標函數,即使卸載后的應用性能最佳,該方案的粒度為DNN層,通過配置文件實現對該方案的配置,并隨目標代碼部署于計算節點上;
步驟S21所述DNN結構模型的具體構建如下:
一個DNN模型結構可抽象為一個有向圖GD=(L,R),表示層特征和層間傳輸關系;其中,L={l1,l2,…,ln}為DNN模型中層的集合,每個ln為模型中的一個層;R為DNN模型中數據流邊的集合,每條邊rij∈R表示從層li到lj的數據流向;
一個DNN層結構包括一個類型參數和一個至多個的特征參數,表示為li=type,feature的二元組,用以描述該層信息;其中,type表示DNN層的類型,feature表示DNN層的特征參數;
一個DNN層的類型參數表示為{type|conv,reul,pooling,fc},即代碼分析提取的四種層類型,每個層僅有一個該參數;其中,conv表示為卷積層,reul表示為激勵層,pooling表示為池化層,fc表示為全連接層;
一個DNN層的特征參數表示為{feature|name=value},即參數名和參數值的一個鍵值對,每個層有一至多個的該參數;其中,當type=conv時,{name|channel,ksize,knumber,stride,padding},channel表示卷積層的特征定義頻道數,ksize表示卷積層的卷積核尺寸,knumber表示卷積層的卷積核數量,stride表示卷積層的移動步長,padding表示卷積層的填充值;當type=reul或type=fc時,{name|innumber,outnumber},innumber表示激勵層或全連接層的輸入神經元的數量,outnumber表示激勵層或全連接層的輸出神經元的數量;當type=pooling時,{name|channel,ksize,stride},channel表示池化層的輸入通道維度,ksize表示池化層的區域大小,stride表示池化層的移動步長;
所述環境上下文模型的構建如下:
一個上下文邊緣環境可抽象為一個無向圖GC=(N,E),其中N表示一組計算節點,包括本地設備和遠程服務器;E表示一組存在于節點ni∈N間的通訊鏈路;每條邊edge(ni,nj)∈E具有以下屬性:節點ni和nj間的數據傳輸速率以及往返時間
步驟S21中基于隨機森林回歸的代價預測建模具體構建如下:對于每一層,代價預測模型將DNN層的類型和特征作為輸入,并預測該層的執行時間;各DNN層在某一計算節點上的執行代價包括執行時間和數據量大小,表示為的二元組,其中,time表示從接收輸入數據到生成輸出數據過程的執行時間,這取決于計算節點的性能;datasize表示輸出數據的數據量大小,為固定值;使用隨機森林回歸模型來預測
利用歷史數據集來訓練預測模型:首先在各個計算節點上執行DNN應用程序,并從包括Alexnet、VGG16、VGG19、ResNet-50和ResNet-152在內的DNN應用程序中收集數據;隨機森林回歸預測模型如公式(1)所示,其中輸入值X取決于層的類型,當層類型為卷積層conv時,如公式(2)所示;當層類型為池化層pooling時,如公式(3)所示;當層類型為激勵層relu時,如公式(4)所示;當層類型為全連接層fc時,如公式(5)所示;
Y=predict(X) (1)
Xconv=(channel,ksize,knumber,stride,padding) (2)
Xpooling=(channel,ksize,stride) (3)
Xrelu=(innumber,outnumber) (4)
Xfc=(innumber,outnumber) (5)
采用Y、Xconv、Xpooling、Xrelu、Xfc變量,以及參數Ntree和Mtry,便可訓練獲得一個可預測執行成本的回歸模型;其中,Ntree表示基于收集的層執行成本樣本生長的回歸樹的數量,Mtry表示在每個節點上用于預測的預測因子的數量;
所述步驟S22的具體內容為:在決定每一DNN層應被卸載于哪一計算節點過程中,所需考慮的影響因子為:L、N、DEP、ti、Td(lk,lm)、Te(li)、Tresponse;L表示DNN模型中一組DNN層集合,L={l1,l2,…,ln};N表示一組計算節點集合,包括DS,ME和RC,nk∈N;表示DNN層li的一組父節點集合;DEP表示一組計算卸載決策,DEP=(dep(l1),dep(l2),…,dep(ln));表示節點ni和nj間的數據傳輸速率表示節點ni和nj間的往返時間;ti表示執行完DNN層li的時刻;Td(lk,lm)表示DNN層lk和lm間的數據傳輸時間;Te(li)表示執行DNN層li的執行時間;Tresponse表示一個DNN應用程序在某一卸載決策下的響應時間;
其中,在DEP=(dep(l1),dep(l2),…,dep(ln))中,DEP表示一種計算卸載方案,每一個li∈L均存在一個對應的卸載節點dep(li)∈N一個DNN應用程序的響應時間被表示為Tresponse,它等同于執行完最后一層DNN層lend的時刻tend,其中ti表示為執行完DNN層li的時刻;構造的目標函數即為評估一個卸載方案的完整響應時間Tresponse的過程;
構造目標函數如公式(6)所示,當一個卸載決策的目標函數值最小,則該卸載決策是最優的;
Tresponse=tn (6)。
2.根據權利要求1所述的一種邊緣環境下DNN應用計算卸載自適應中間件構建方法,其特征在于:
在DNN應用執行階段,根據管道-過濾器設計模式進行代碼重構的目標程序代碼和配置文件將部署在MEC環境中的所有計算節點上,對于配置文件的定義如下:一個DNN應用的卸載方案可通過配置文件config.file(x)表示,其中,x∈L表示DNN模型中的一個層編號,也稱為過濾器x,且配置文件將不斷更新至最新生成的卸載方案;需要明確的是,按層粒度標記每一層的卸載位置時,當過濾器x需要在本地節點被激活,則config_file(x)==LOCAL;當過濾器x需要卸載至遠程節點時,則config_file(x)==REMOTE_,其中,REMOTE_后接卸載節點的名稱;運行時的計算卸載機制通過管道來控制,并通過管道機制算法即通過輸入的待激活的過濾器x和當前需要執行的DNN層CurrentL進行比較,如果CurrentL大于x,則x不執行直接跳過,如果當前CurrentL與x相等,則需要執行,并進一步通過config文件進行判斷,如果是本地執行則直接在本地激活過濾器x,如果是需要遠程執行,則通過RPC來激活卸載的目標計算節點的過濾器,達到計算卸載的目的。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于福州大學,未經福州大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202110726143.0/1.html,轉載請聲明來源鉆瓜專利網。





