【技術實現步驟摘要】
本專利技術涉及神經網絡協同推理,更具體的說是涉及一種基于多核dsp硬件特性的神經網絡推理任務劃分方法。
技術介紹
1、目前,深度學習正以驚人的速度在各類應用中落地,例如圖像分類、目標檢測和視頻分析等。盡管深度學習模型相較傳統算法有著巨大優勢,但值得注意的是,模型推理在計算資源方面有很大的需求。例如,vgg-16網絡需要高達15.5g?mac(乘加計算)來對分辨率為224x224的圖像進行分類。一種最直接的方案是將需要龐大計算量的模型推理任務卸載到云端服務器。但是,通常情況下輸入數據是在邊緣設備附近生成的,長距離傳輸存在延遲和抖動,存在實時性和安全性問題。早期退出等工作通過在邊端設備完成淺層推理,將更深層推理任務卸載到云端,雖然一定的緩解了實時性問題,但適用范圍有限且模型需要大量的訓練成本。更重要的是,這些方法無法部署到不配備網絡條件的應用。
2、多核協同推理的誕生緩解了上述因網絡傳輸帶來的一系列問題。其通過多核的綜合能力,可以承載更大規模的神經網絡模型。依靠與輸入數據近距離的優勢,可以大幅降低通信延遲和提升系統安全性。然而,如何最優化計算任務分配,如何減少人工參與優化程度,模型分區如何結合硬件通信架構等問題仍然存在。雖然有幾項工作已經專注于邊緣設備上的協同推理,但它們具有以下弱點:
3、首先,現有的劃分策略固定且單一。cnn的特征圖通常有行、列兩個空間維度和一個輸出通道深度維度。先前的工作通常對特征圖在空間維度或2d網格維度上進行固定且單一的劃分,他們沒有考慮多維度的劃分并將其歸結為同步成本過高。但在實際
4、其次,在多核設備上進行相鄰卷積層的協同推理時,每個卷積算子被劃分為多個部分,并在各個計算單元上執行推理計算。由于卷積層算子的不同部分(例如3*3、5*5卷積等)之間存在依賴關系,因此各計算單元在執行分配給每層的卷積算子部分的計算后,需要進行數據交互以傳遞相關的依賴數據。具體而言,在執行后續層的計算任務時,當前計算單元需要等待其他計算單元完成對上一層計算數據的處理并傳遞相關數據。在這種情況下,需要在計算和數據傳輸之間進行性能優化的權衡考慮。為了減少數據傳輸的等待時間,各計算單元可以選擇在本地執行一部分計算,計算出原本存在數據依賴的數據。值得注意的是,過去的研究在這一方面并未充分進行優化。具體而言,現有的工作大多都是采用每間隔連續數層進行一次通信的方法實現計算-通信的權衡,但粒度較粗,存在一定的優化空間。
5、最后,先前的工作對神經網絡模型的結構支持有限。例如deepslicing、modnn神經網絡只關注鏈狀cnn。deepslicing雖然添加了例如googlenet和resnet等復雜結構,但仍然缺少常見網絡結構,例如lstm、transformer等。其次,現有工作在執行各類優化決策時通常依賴大量的人工參與,面對層出不窮的模型結構,很難快速且準確的生成模型劃分方案。
6、因此,針對dsp多核協同推理,如何快速且準確的生成神經網絡推理任務的均衡劃分方案是本領域技術人員亟需解決的問題。
技術實現思路
1、有鑒于此,本專利技術提供了一種基于多核dsp硬件特性的神經網絡推理任務劃分方法。
2、為了實現上述目的,本專利技術采用如下技術方案:
3、一種基于多核dsp硬件特性的神經網絡推理任務劃分方法,包括以下步驟:
4、獲取dsp硬件神經網絡模型中的多種算子級候選劃分方案,所述算子級候選劃分方案包括輸入特征圖行劃分、輸入特征圖列劃分、輸入特征圖網格劃分、輸出特征圖通道劃分、以及基于dsp算力的維度展開均衡劃分;
5、基于所述多種算子級候選劃分方案構建指數級搜索空間;
6、利用動態規劃尋優算法從所述指數級搜索空間中尋找最優算子級候選劃分方案。
7、進一步地,上述方法還包括:
8、利用xgboost模型對指數級搜索空間中的每一種算子級候選劃分方案進行代價評估。
9、進一步地,基于dsp算力的維度展開均衡劃分,具體通過以下步驟實現:
10、將dsp硬件的算子層中每個h*w*c的三維特征圖平鋪展開為二維序列l*c;其中h表示三維特征圖的高度;w表示三維特征圖的寬度;l表示二維序列的長度;c表示通道數;
11、按照dsp硬件中每個計算單元的算力值對二維序列的長度l進行初始化,獲取每個計算單元對應的初始化長度li;其中li表示第i個計算單元對應的初始化長度;
12、依據實際卷積任務對每個計算單元對應的初始化長度li進行調整優化。
13、進一步地,按照dsp硬件中每個計算單元的算力值對二維序列的長度l進行初始化,具體包括以下步驟:
14、在每個計算單元上執行相同的卷積計算任務,并記錄其計算耗時為bi;
15、根據計算耗時bi計算每個計算單元的算力值ci:
16、根據每個每個計算單元的算力值ci對二維序列的長度進行初始化劃分:
17、其中,表示總數為n的計算單元的總算力。
18、進一步地,根據計算耗時bi計算每個計算單元的算力值ci,具體包括通過以下公式進行計算:
19、式中,ci表示dsp硬件中第i個計算單元執行相同卷積任務時的計算速度;bi表示dsp硬件中第i個計算單元執行相同卷積任務時的計算耗時。
20、進一步地,依據實際卷積任務對每個計算單元對應的初始化長度li進行調整優化,具體包括以下步驟:
21、s1、根據初始劃分長度li對各計算單元劃分到的實際卷積任務進行測試,統計其實際執行耗時ti,找出n個計算單元中實際執行耗時的最大值tmax與最小值tmin;
22、s2、設定調整步長,并根據調整步長對實際執行耗時最大值和最小值對應的初始化長度li進行調整,并重新計算實際執行耗時ti,直到實際執行耗時ti的最大值tmax與最小值tmin之間的差值滿足設定的閾值。
23、進一步地,并根據調整步長對實際執行耗時最大值和最小值對應的初始化長度li進行調整,具體包括:
24、實際執行耗時最大值tmax的計算單元對應的劃分長度減去調整步長,實際執行耗時最小值tmin的計算單元對應的劃分長度加上調整步長。
25、進一步地,所述指數級搜索空間分成若干層,指數級搜索空間中的每一層均對應神經網絡模型的各層算子,每層算子均需要確定最終的劃分方案,且相鄰層算子之間存在數據依賴。
26、進一步地,利用動態規劃尋優算法從所述指數級搜索空間中尋找最優算子級候選劃分方案,具體包括:
27、對指數級搜索空間每一層算子的決策序列進行初始化,所述決策序列包括指數級搜索空間每一層算子的劃分方案和通信測量,所述通信測量包括傳輸和不傳輸;
28、自底向上從指數級搜索空間的第n層至第0層逆序求解,求得第0層的決策序列本文檔來自技高網...
【技術保護點】
1.一種基于多核DSP硬件特性的神經網絡推理任務劃分方法,其特征在于,包括以下步驟:
2.根據權利要求1所述的一種基于多核DSP硬件特性的神經網絡推理任務劃分方法,其特征在于,還包括:
3.根據權利要求1所述的一種基于多核DSP硬件特性的神經網絡推理任務劃分方法,其特征在于,基于DSP算力的維度展開均衡劃分,具體通過以下步驟實現:
4.根據權利要求3所述的一種基于多核DSP硬件特性的神經網絡推理任務劃分方法,其特征在于,按照DSP硬件中每個計算單元的算力值對二維序列的長度L進行初始化,具體包括以下步驟:
5.根據權利要求4所述的一種基于多核DSP硬件特性的神經網絡推理任務劃分方法,其特征在于,根據計算耗時Bi計算每個計算單元的算力值Ci,具體包括通過以下公式進行計算:
6.根據權利要求1所述的一種基于多核DSP硬件特性的神經網絡推理任務劃分方法,其特征在于,依據實際卷積任務對每個計算單元對應的初始化長度Li進行調整優化,具體包括以下步驟:
7.根據權利要求6所述的一種基于多核DSP硬件特性的神經網絡推理任務劃
8.根據權利要求1所述的一種基于多核DSP硬件特性的神經網絡推理任務劃分方法,其特征在于,所述指數級搜索空間分成若干層,指數級搜索空間中的每一層均對應神經網絡模型的各層算子,每層算子均需要確定最終的劃分方案,且相鄰層算子之間存在數據依賴。
9.根據權利要求8所述的一種基于多核DSP硬件特性的神經網絡推理任務劃分方法,其特征在于,利用動態規劃尋優算法從所述指數級搜索空間中尋找最優算子級候選劃分方案,具體包括:
10.根據權利要求2所述的一種基于多核DSP硬件特性的神經網絡推理任務劃分方法,其特征在于,利用XGBoost模型對指數級搜索空間中的每一種算子級候選劃分方案進行代價評估,具體包括:
...【技術特征摘要】
1.一種基于多核dsp硬件特性的神經網絡推理任務劃分方法,其特征在于,包括以下步驟:
2.根據權利要求1所述的一種基于多核dsp硬件特性的神經網絡推理任務劃分方法,其特征在于,還包括:
3.根據權利要求1所述的一種基于多核dsp硬件特性的神經網絡推理任務劃分方法,其特征在于,基于dsp算力的維度展開均衡劃分,具體通過以下步驟實現:
4.根據權利要求3所述的一種基于多核dsp硬件特性的神經網絡推理任務劃分方法,其特征在于,按照dsp硬件中每個計算單元的算力值對二維序列的長度l進行初始化,具體包括以下步驟:
5.根據權利要求4所述的一種基于多核dsp硬件特性的神經網絡推理任務劃分方法,其特征在于,根據計算耗時bi計算每個計算單元的算力值ci,具體包括通過以下公式進行計算:
6.根據權利要求1所述的一種基于多核dsp硬件特性的神經網絡推理任務劃分方法,其特征在于,依據實際卷積任務對每個計算單元對應的...
【專利技術屬性】
技術研發人員:姜宏旭,馬宇航,張潤華,韓耀郴,汪煒,李波,
申請(專利權)人:北京航空航天大學,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。