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

異構平臺下卷積神經網絡推理模型自適應劃分和調度方法

2023-09-27 06:31:32尚紹法李遠成
計算機應用 2023年9期
關鍵詞:設備方法模型

尚紹法,蔣 林*,李遠成,朱 筠

(1.西安科技大學 計算機科學與技術學院,西安 710600;2.西安郵電大學 電子工程學院,西安 710121)

0 引言

隨著卷積神經網絡(Convolutional Neural Network,CNN)在計算機視覺領域的廣泛應用與快速發展,用戶對邊緣設備上CNN 模型推理的精度和速度要求越來越高[1-2]。因此,在異構系統架構(Heterogeneous System Architecture,HAS)上對CNN 的推理過程進行加速成為了當前的研究熱點[3]。

當前,影響HSA 上CNN 模型推理加速的主要因素有模型劃分和任務調度,學者們主要從這兩方面對CNN 模型推理加速方法展開研究。從模型劃分的角度來看,現有CNN模型劃分方法以conv、maxpool2d 等基本算子為最小單位,通過建立性能評價模型與延遲最小化約束等方法實現CNN 模型的自動劃分。文獻[4]中提出了一種基于遺傳算法的自動化張量劃分CNN 模型推理加速算法,在給定精度損失范圍內自動調優,找出最優的卷積張量分解方案,有效提升了CNN 推理速度。文獻[5]中提出了一種基于深度強化學習的計算圖劃分CNN 推理加速方法DistrEdge,將劃分過程建模為馬爾可夫決策過程,通過綜合分析CNN 特征與設備計算特性,利用深度強化學習作出最佳劃分決策,提升了CNN 在邊緣設備上的推理速度。文獻[6]中基于遞歸搜索算法實現計算圖的自動劃分,將CNN 模型劃分后映射到多個GPU 上,使推理過程中總通信成本最小化,從而提升模型整體的推理速度。文獻[7]中在異構平臺上對神經網絡算子進行大規模評估,通過調整分區比率實現CNN 的動態分區,提高邊緣設備上的異構資源利用率,有效提升了CNN 模型的推理速度。

從任務調度的角度來看,文獻[8]中提出了一種基于深度強化學習的任務調度與資源分配方法,通過基于貪心策略的流水線調度算法解決了移動邊緣計算的任務調度問題,使用強化學習優化服務器的資源分配,有效提升了系統的計算速度。文獻[9]中提出了一種融合流水線并行和數據并行的CNN 多任務訓練系統HetPipe,使用異構的GPU 集群以流水線的方式執行訓練,通過數據并行獲得更高的模型收斂速度。文獻[10]中提出了一種針對異構多核CPU 的流水線推理加速方法Pipe-it,將卷積層劃分并卸載至多個CPU 集群,將卷積的并行化限制在指定集群中,減小通信開銷,提高了CNN 模型的整體推理速度。文獻[11]中提出了一種基于動態規劃的啟發式的模型流水線并行加速方法MadPipe,通過更精準地估計內存需求以及支持將非連續的CNN 層分配給處理器,實現負載平衡,提高了CNN 模型的訓練速度。

目前該領域的研究工作取得了一定成果,但仍需進一步改進,主要有以下兩方面:

1)目前模型劃分主要有張量劃分和圖劃分兩種方法。張量劃分會帶來高昂的通信成本,圖劃分需要耗費大量的時間探索最優劃分方案。因此,如何在HSA 平臺下快速完成對CNN 的最優劃分仍值得研究。

2)目前CNN 模型加速的任務調度策略對象大多側重于CPU、GPU 等其他加速器的單一設備。然而,不同硬件適合執行不同類型的模型算子。因此,如何設計異構平臺的任務調度策略,實現異構設備協同推理加速是重要的研究內容。

綜上所述,本文提出了一種自適應的CNN 模型劃分和調度方法。基于典型CNN 的結構、計算量和參數量分布特征,針對關鍵算子對模型進行自適應劃分,降低設備間的通信消耗,增加模型調度的靈活性。使用關鍵路徑-貪婪搜索算法,自適應地選擇子圖的最優運行負載以提高推理速度。為充分驗證本文的優化方法,使用ImageNet 數據集[12]和張量虛擬機(Tensor Virtual Machine,TVM)[13]跨設備調度機制,在CPU-GPU 異構平臺對CNN 模型推理進行加速驗證。實驗結果表明,與TVM 的推理機制相比,本文方法可以有效提升CNN 模型的推理速度。

1 CNN模型分析

為了深入研究CNN 模型的特征,本文選擇三種不同類型的CNN 模型GoogLeNet、ResNet18 和VGG16,從模型結構和計算量/參數量分布兩個角度對不同結構的CNN 模型進行特征分析。

1.1 CNN模型結構分析

圖1 給出了三種CNN 模型的網絡結構,并分析VGG16、ResNet18 和GoogLeNet 三種CNN 模型的結構特征。可以看出,CNN 模型是由多種不同的算子組成。由于卷積層和全連接層通常是CNN 模型訓練和推理時計算開銷和存儲開銷最大的部分。本文將通過這兩種算子對CNN 模型結構進行分析,將模型結構中重復的類conv_relu_maxpool2d 結構定義為Conv_Block,全連接層定義為Fc,殘差結構定義為Residual_Block,Inception 分支結構定義為Inception_Block。

圖1 三種典型CNN模型結構Fig.1 Structures of three typical CNN models

表1 總結了這三類典型CNN 模型的組成結構。可以看出,CNN 模型是由很多結構相同的組件組成,組件之間的依賴關系簡單且易于表示。因此,基于CNN 模型中的重復組件,設計模型劃分策略,將計算圖根據層與層之間或分支的輸入輸出關鍵算子劃分成子圖集,實現粗計算粒度與相對較低的數據通信量。

表1 三類CNN模型的組成結構Tab.1 Composition structures of three CNN models

1.2 CNN計算量和參數量分析

為更好地平衡設備的計算負載和存儲負載,本文對CNN模型的計算量和參數量分布情況進行統計分析。由于池化層和歸一化層沒有可學習參數和乘累加運算,計算量與整個網絡相比可忽略不計,因此本文主要對卷積層和全連接層進行分析。通過解析TVM 的Let 表達式完成參數的自動化提取,算法1 描述了CNN 模型的參數量和計算量的統計過程。

首先,將深度學習框架PyTorch 中導出的預訓練好的CNN 模型M作為算法的輸入;其次,使用TVM 中的Relay/Transform 模塊將模型計算圖轉化為Let 表達式;然后,對表達式進行遞歸遍歷,獲取模型的算子op;最后,通過判斷算子的類型對算子的參數進行提取。根據式(1)、(2)分別統計單個卷積層的參數量pconv和計算量Fconv。使用式(3)、(4)分別統計單個全連接層的計算量FFc和參數量pFc。

其中:Ci為卷積層的輸入數據X的通道數;Kw×Kh為卷積核尺寸;Co為卷積層的輸出通道數;W×H為輸出特征圖的尺寸;I為全連接層的輸入特征數;O為輸出特征數。使用算法1 對PyTorch 框架下三種類型的CNN 模型GoogLeNet、ResNet18 和VGG16 各部分的計算量和參數量進行統計。

三種典型CNN 模型的計算量和參數量分布情況如圖2所示。其中:橫坐標c_1、c_2 等表示卷積層;Fc 表示全連接層;In_3a、In_3b 等表示Inception 網絡中的分支子模塊;縱坐標表示網絡模型各部分的計算量和參數量在整個網絡模型中所占比例。從圖2 可以看出,CNN 模型的計算量占比不均勻,整體呈現中間多,兩端少的趨勢。其中,卷積層的計算量占據全網絡計算量的99%以上,而全連接層的計算量只占據了不到全網絡計算量的1%,甚至可以忽略不計。參數量的分布整體呈遞增趨勢,其中,VGG16 模型的全連接層參數量已經占據全網絡參數量的89.4%。隨著推理過程的進行,模型組件的局部訪存計算比也逐漸增大。

圖2 三種CNN模型計算量和參數量分布Fig.2 Distribution of computational amount and parameters of three CNN models

算法1 參數量和計算量統計。

輸入 預訓練模型M;

輸出 卷積層參數量pconv,卷積層計算量Fconv,全連接層參數量pFc,全連接層計算量FFc。

為了獲取CPU 與GPU 的通信性能特征,本文對不同數據大小進行點對點批量傳輸的帶寬和延遲測試。實驗平臺選 用PCIe3.0 連 接Intel Xeon Gold 6248R CPU 和Nvidia Quadro P2200 GPU,它的通信特征如圖3 所示,CPU 與GPU 之間的數據傳輸延遲與數據大小呈線性關系,數據傳輸速率在數據大小為150 KB 時就達到峰值。因此,CNN 模型在GPU上執行時產生的高昂通信延遲是探索異構環境下子圖調度方案時的關鍵影響因素之一。

圖3 CPU與GPU間的通信消耗Fig.3 Consumption of communication between CPU and GPU

2 CNN模型自適應劃分和調度方法

為解決調度方案設備資源利用率低的問題,本文提出了一種面向異構平臺的CNN 推理模型自適應劃分和調度方法,總體流程如圖4 所示。在模型劃分方面,提出基于關鍵算子的CNN 推理模型的自適應劃分方法,對CNN 模型結構進行階段和分支的自適應劃分,減少模型劃分的評估開銷,降低搜索最優模型劃分策略的復雜度。在任務調度方面,提出基于關鍵路徑的最優子模型調度配置搜索算法。通過子模型在異構設備上的性能實測,自適應選取最優執行設備,從而減少模型推理時間。最后,通過TVM 深度學習編譯器將模型按照優化方案部署到對應的硬件后端進行驗證。

圖4 本文方法的總體流程Fig.4 Overall flow of the proposed method

2.1 自適應劃分

根據CNN 推理模型結構、計算量/參數量的特征分析結果,maxpool、Concatenate 等算子是CNN 推理模型中重復結構或分支結構的依賴算子,將這些算子作為關鍵算子對CNN推理模型進行自適應劃分。模型劃分方法主要基于有向無環圖的拓撲排序,具體劃分步驟如下:

步驟1 將從PyTorch 框架中導出的預訓練CNN 模型通過TVM 框架轉化為適合解析處理的Let 表達式。

步驟2 用子算法1 遞歸遍歷圖劃分算法SplitGraph(),在遍歷過程中判斷并記錄當前算子信息。若為關鍵算子,則將之前記錄的算子信息轉化為IRModule 類型,生成子模型;否則,使用Let 表達式對算子封裝,重復步驟2。

步驟3 將得到的子模型添加到子模型集Split_mods中,若模型還沒有遍歷結束,繼續執行步驟2,直到模型遍歷結束,返回子模型集Split_mods。

具體模型劃分過程如算法2 所示。

算法2 基本塊模型劃分算法。

輸入 預訓練CNN 模型M;

輸出 模型劃分后得到的子模型集Split_mods。

TVM 的分支模型劃分方法如圖5(a)所示,它需要人工標記模型劃分節點,然后使用TVM 中的PartitionGraph()函數以主干模型與子模型相結合的方式實現原始CNN 模型推理效果。子模型S2、S3 的輸入輸出都依賴于主干模型S1,導致主干模型的計算過程需要獲得子模型的計算結果才可以繼續進行計算,設備資源被主干模型持續占用,靈活性差,限制了模型的任務調度。針對此問題,本文提出改進的分支結構模型劃分方法,如圖5(b)所示。將分支結構模型的輸入和輸出依賴劃分至兩個子模型S1 和S3 中。分支結構模型推理結束后,輸出數據無須傳回設備0 就可以繼續執行下一階段的模型推理,模型調度的靈活性得到增強。

圖5 兩種模型劃分方法效果對比Fig.5 Comparison between two model partitioning methods

針對改進的模型劃分方式生成的子模型,可以設計更加靈活的任務調度策略,設備之間的任務堵塞問題將得到改善。模型劃分使CNN 模型的各個階段也可以在不同設備后端運行,充分利用硬件設備的計算訪存特性,從而提高模型整體推理速度。以圖6 為例,使用三個硬件后端對圖5 表示的兩種模型劃分方式執行調度推理。圖6 中的子模型顏色與圖5 保持一致,灰色部分表示不同設備間的子模型數據轉移的時間消耗。從圖6 可以看出,劃分策略①中的子模型S1在推理過程中需要獲取依賴子圖S2、S3 的輸出結果,然后才可以繼續執行推理過程。子圖S1 長時間占用設備Worker1,且當多任務推理時,任務2 中的子圖S2 和S3 由于要等待S1的輸出,導致設備Worker2 和Worker3 的資源利用率不高,會經常處于空閑狀態。而劃分策略②產生的子圖,會弱化子圖之間的依賴關系,并減小子圖的規模。當任務1 中子圖S1 執行推理結束,將輸出數據轉移到Worker3 后,無須等待,可以連續執行推理任務2。且Worker2 和Worker3 的利用率也會大大提高,避免子圖長時間占用硬件資源或硬件資源空閑情況的發生,從而實現多任務推理加速。

圖6 兩種模型劃分方法的調度效果對比Fig.6 Comparison of scheduling effect between two model partitioning methods

基于關鍵算子的CNN 推理模型自適應劃分方法,避免了復雜的劃分策略搜索工作。采用后續遍歷算法識別關鍵算子,根據不同CNN 推理模型的特征自動實現模型的自適應劃分,大大提高了模型劃分的效率,也降低子模型之間的通信成本。劃分后的子模型還可以利用深度學習編譯器TVM 對子模型進行圖級優化,如算子融合和后端代碼優化,以進一步提高子模型在單個設備上的運行效率,從而最小化整個模型的推理延遲。

2.2 自適應調度

為了提高異構平臺的資源利用率,本文針對推理模型自適應劃分后得到的子模型集Split_mods,提出了一種基于關鍵路徑和貪婪算法的自適應模型調度方法。由于關鍵路徑是數據流圖中從源節點到末節點計算時間最長的路徑[14],所以,提高位于關鍵路徑上的關鍵節點的推理速度,就會提高數據流圖的整體推理速度。對于順序處理階段中的每個子圖,優先選擇子圖在關鍵路徑上執行速度更快的設備[15-17]。對于多分支結構的子圖,將該階段代價最大的子圖添加到關鍵路徑中。具體步驟如下:

步驟1 對劃分后的子模型集合,在異構平臺的不同硬件后端上進行性能實測。為了減小硬件性能波動的影響,取10 次實驗平均值,獲取較準確的推理時間。

步驟2 根據性能實測的結果,自適應地選擇不同子模型的最優運行負載。

步驟3 為更好地解決模型運行時不可預測的系統資源調度問題,引入一種基于關鍵路徑和貪婪算法的任務調度校正方案,對CNN 推理模型計算圖的關鍵路徑上的子圖進行優先排序,根據實際推理時間對調度方案進行校正。

使用算法2 對VGG16 模型進行自適應劃分,得到5 個卷積塊C_(ii=1,2,3,4,5)和1 個全連接塊FC。將這些子模型放置在CPU 和GPU 上分別測試模型的推理時間,結果如表2所示。可以看出,模塊C_(ii=1,2,3,4)適合在GPU 上運行,模塊C_5 和FC 適合在CPU 上運行。

表2 VGG16子模型在不同設備上的執行時間對比 單位:msTab.2 Comparison of execution time of VGG16 submodels on different devices unit:ms

模型在GPU 上執行推理時,需要將模型數據從內存拷貝至GPU,計算完成后將結果傳回CPU 進行處理。因此,當模型計算量很大,而參數量小時,適合在GPU 上運行,利用GPU 強大的并行計算能力執行矩陣的快速運算,隱藏數據傳輸消耗的時間,從而提升模型推理速度;但是當模型計算量小而參數量大時,模型在GPU 上運行的數據傳輸延時遠大于計算延時,反而不如在CPU 上運行。在選擇運行設備時,需要判斷降低的計算延時是否能夠隱藏數據的傳輸開銷。

圖7 顯示了四種調度策略,策略①是模型在CPU 上運行;策略②是模型在GPU 上運行,計算延遲顯著降低,所以隱藏了設備間的數據傳輸延時,整體速度與策略①相比得到提升[18-20];策略③將劃分后的子圖放置在異構設備上,在GPU 上放置子圖{1,3,5},在CPU 上放置子圖{2,4,6},平衡了模型在GPU 上的計算收益與數據傳輸開銷,整體上推理速度與策略②相比得到提升;策略④通過不斷校正為子圖選擇最佳的運行設備,如子圖2 在GPU 上運行時間優于CPU,將子圖2 放置在GPU 上模型整體的推理速度與策略④相比,推理時間得到縮短[21-23]。當執行x輪校正而不減少執行時間時,修正步驟終止。模型調度配置算法如算法3 所示。

圖7 異構平臺的調度策略Fig.7 Scheduling strategies for heterogeneous platforms

算法3 模型調度運行時配置算法。

輸入 算法2 得到的子模型集合Split_mods,預訓練模型參數params,運行設備的編譯器targets,運行設備dev;

輸出 模型配置m_config。

2.3 算法復雜度分析

2.3.1 時間復雜度分析

1)算法2 的時間復雜度主要由子算法1 遞歸搜索算法SplitGraph()中的子模型遍歷和子模型封裝兩部分組成。時間復雜度分別如下:

子模型遍歷階段的時間復雜度主要取決于CNN 模型的層數。設CNN 模型的層數為n,則子模型遍歷階段的時間復雜度為:

子模型封裝階段的時間復雜度主要取決于子模型的層數。設子模型的層數為mi(i=1,2,…,k),因此子模型封裝階段的時間復雜度為:

綜上可知,算法2 的時間復雜度為:

2)算法3 主要由子模型的輸入輸出依賴配置、預訓練參數配置、最優運行設備配置三部分組成。

子模型的輸入輸出依賴配置階段的時間復雜度主要取決于子模型依賴的獲取。設子模型集合的大小為l,在配置每個子模型的輸入依賴時,需要遍歷所有子模型的輸出依賴,以此保證每個子模型輸入依賴配置的正確性與完整性。因此子模型輸入輸出依賴配置階段的時間復雜度為:

子模型的預訓練參數配置階段的時間復雜度主要取決于子模型參數的獲取。設CNN 模型的預訓練參數量為p,則子模型參數獲取階段的時間復雜度為:

子模型運行設備配置階段的時間復雜度主要取決于子模型集合的遍歷。因此子模型運行設備配置階段的時間復雜度為:

綜上可知,算法3 的時間復雜度為:

由于通常情況下l>2,因此算法3 的時間復雜度近似為:

2.3.2 通信復雜度分析

1)算法2 通過后序遍歷算法識別CNN 推理模型中的關鍵算子,通過分析算子輸入輸出的數據大小變化,可以發現如maxpool2d 等算子的輸出數據規模小于輸入數據規模。所以,根據這些關鍵算子進行模型劃分,在進行跨設備數據傳輸時可以縮短通信延時。

2)算法3 中通過性能實測與校正算法選擇子模型最優的運行設備dev。如圖2 所示,由于預訓練模型包含大量的預訓練參數,這些預訓練參數在模型中分布不均。圖2(a)中能明顯地看出全連接層的參數量占據了預訓練參數的89.4%,計算量卻不到全網絡計算量的1%。此時,若將全連接層放置在GPU 上運行會造成通信延時遠大于計算延時,從而延長推理模型在GPU 上的推理時間。性能實測能更準確地根據不同后端硬件特性選擇子模型的最優運行設備。通過跨設備調度充分利用異構資源降低預訓練參數傳輸至設備的通信時間,然后利用校正算法根據整個CNN 模型的推理時間決策最優的運行設備,避免設備間頻繁數據傳輸。從而降低CNN 模型在推理過程中總通信延時,加快推理。

3 實驗與結果分析

3.1 實驗環境

本文實驗的測試平臺的配置如表3 所示。

表3 測試平臺配置信息Tab.3 Experimental platform configuration information

3.2 實驗方案

本文使用PyTorch 框架中提供的預訓練CNN 模型作為測試實驗的測試集,模型參數如表4 所示。選用VGG11、AlexNet、MobileNet、SqueezeNet、ResNet18 和GoogLeNet,這6個結構和深度不同的網絡作為實驗對比的測試對象[24]。PyTorch 框架的預訓練模型采用網絡公開數據集ImageNet 對神經網絡模型進行訓練,具有完整的模型參數,因此直接使用預訓練模型進行推理測試。TVM 是優化CNN 模型推理的深度學習編譯器,在模型定義和后端代碼生成之間進行了高度優化。將本文方法在CPU 和GPU 上與TVM 和傳統的PyTorch 實現進行了性能比較。從數據集中隨機抽取10 張圖片,對圖片進行格式化,格式化后的數據作為CNN 模型的輸入數據。

表4 不同模型的卷積層、分類層的計算量與參數量Tab.4 Computational amount and parameters of convolutional and classification layers of different models

首先,將每張圖片的大小轉化為224×224×3 的矩陣數據;其次,使用均值方差歸一化方法,對圖像數據進行歸一化處理;然后,使用TVM 從PyTorch 框架加載預訓練好的CNN模型,以歸一化后的圖片數據作為模型輸入數據;最后,選擇批大小(batch size)為1 來表示CNN 推理中的一個常見情況。為了進行可靠的測量,對每個配置運行100 次,統計平均延遲。

3.3 CNN模型自適應劃分與調度實驗結果

表5 為VGG11、AlexNet、ResNet18 三種不同結構CNN 模型的模型劃分和運行設備的選擇結果。可以看出,本文方法可以根據不同模型的特征自動實現對不同CNN 模型的模型劃分,然后針對不同子模型的計算特性和訪存特性基于性能實測與校正算法自適應地決策出子模型的最優運行設備。

表5 CNN模型劃分與設備分配Tab.5 Partitioning and device assignment of CNN models

以AlexNet 為例,它由32 個基本算子組成。使用算法2將模型劃分為0-3、4-7、8-17 和18-31 四個子模型,然后通過在硬件平臺進行性能實測以及關鍵路徑校正算法決策出第1 個和第4 個子模型更適合在CPU 上運行,第2 個和第3 個子模型更適合在GPU 上運行。

3.4 實驗結果對比

設TVM 優化后的模型在GPU 上的推理時間為Ttvm,本文方法的模型推理時間為Tour,優化方法加速比為Sour,則加速比計算公式為:

圖8 給出不同CNN 模型在不同測試環境下的推理執行時間。與TVM(CPU)和TVM(GPU)相比,本文方法分別獲得了45.45%~311.46% 和5.88%~19.05% 的速度提升。與PyTorch(CPU)和PyTorch(GPU)相比,本文方法在CPU 和GPU 上分別獲得了118.18%~958.82%和9.09%~105.88%的速度提升。因為本文方法將異構平臺的優勢與深度學習編譯器TVM 所作的優化結合起來,使CPU 和GPU 的收益最大化,通過子圖調度策略優化,降低了模型推理中的通信開銷和計算延遲。

圖8 不同模型執行時間對比Fig.8 Comparison of execution time of different models

為驗證模型深度不同時本文方法的加速效果,將本文方法與傳統TVM 推理方法在CPU 和GPU 上的推理時間進行對比。預訓練模型選取5 個模型結構相同但深度不同的CNN模 型 :ResNet18、ResNet34、ResNet50、ResNet101 和ResNet152。對比結果如圖9 所示。隨著ResNet 模型深度增加,模型在TVM-CPU 運行方式下的執行時間也在變長。因為CPU 訪存帶寬比GPU 高,但矩陣運算速度比GPU 低,因此對計算密集型算子更敏感。在TVM-GPU 運行方式下,當ResNet 模型深度相對較小(如18、34)時,執行時間變化較小。這是因為CNN 模型的深度較淺時,GPU 的計算核心沒有滿載。當模型深度加深時,計算量增加,GPU 的計算核心利用率提高,使GPU 單位時間內的計算速度提升。本文方法結合CPU 和GPU 的硬件特性優勢,將訪存計算比高的子圖卸載到CPU,訪存計算比低的子圖卸載至GPU,充分發揮了CPU 的訪存帶寬高、GPU 計算能力強的優勢。當模型深度較深時,子圖數量增多,調度算法的策略搜索空間也會增大,從中選擇出優于TVM-GPU 運行方式的最優模型運行策略,故本文方法的模型推理時間最短。

圖9 不同深度的CNN模型推理執行時間對比Fig.9 Comparison of inference execution time of CNN models with different depths

影響本文方法性能的另一個因素是輸入數據的批大小。本文用批大小為{2,4,8,16,32}的輸入數據進行測試實驗,實驗結果如圖10 所示。與TVM(GPU)相比,在批處理規模較小時本文方法的推理速度提升更明顯。例如,在批大小為2 時速度提升了22.86%。但隨著批處理規模的增加,速度提升效果在逐漸減弱。當批大小為32 時,本文方法幾乎沒有速度提升。因為隨著推理任務數量的增多,任務調度面臨的系統進程環境更加復雜,多設備協同計算會遇到更頻繁的資源競爭、任務堵塞問題,而GPU 更適合大批量任務的執行。

圖10 不同批大小下CNN模型的推理執行時間延遲對比結果Fig.10 Comparison of CNN models inference excution time with different batch sizes

為了驗證本文自適應劃分調度方法的先進性,在6 種CNN 模型上與EOP(Efficient Operator Partition)方法[7]進行對比,對比結果如圖11 所示。可以看出,與EOP 相比,在VGG11、MobileNet、ResNet18 和SqueezeNet 這4 個模型上,本文方法分別獲得了9.33%、25.00%、26.50%和8.43%的速度提升。在GoogLeNet 模型上兩者推理速度相當,在AlexNet模型上本文方法的推理速度略有下降。EOP 通過調整分區比率來尋找最優的模型劃分方案,沒有充分利用TVM 算子融合優化方法。隨著模型的規模增大,子模型的推理延遲增大,從而導致整個模型的推理延遲也增大。

圖11 本文方法與EOP方法的推理執行時間對比Fig.11 Comparison of inference execution time between proposed method and EOP method

圖12 展示了本文方法與傳統Tensorflow 和TVM 在GPU上的推理時間對比。可以看出,性能提升與本文方法對PyTorch 平臺生成的CNN 模型推理性能提升效果相當。本文提出的自適應優化方法與深度學習平臺無關,主要基于CNN模型的計算圖表示進行自適應劃分調度,然后使用TVM 深度學習編譯器對優化方案實現模型部署,對其他深度學習平臺理論上應該都具有不同程度的優化效果。

圖12 本文方法與Tensorflow框架的推理執行時間對比Fig.12 Comparison of inference execution time between proposed method and Tensorflow method

4 結語

為緩解CNN 模型在異構平臺中推理時硬件設備利用率低、延遲高的問題,本文提出了一種異構平臺的CNN 推理模型自適應劃分和調度方法。該方法根據不同CNN 推理模型中的關鍵算子進行自適應劃分,劃分速度比傳統基于評估的模型劃分算法更快,推理過程中設備間的通信消耗更小。通過在異構平臺上對子模型的推理延遲進行性能實測,根據測試結果自適應選擇最優運行設備,提高子模型的推理速度。配置子模型的輸入輸出依賴,保證原始CNN 推理模型的推理效果,將本文提出的算法與TVM 編譯器算子優化方法融合,使推理速度進一步提升。實驗結果表明,本文方法對小批量推理任務的加速效果明顯,并且對深度更深的網絡具有更好的加速效果,但對大批量推理任務的推理速度優化不足。在后續工作中,將對多設備協同調度中出現的任務負載不均衡和任務堵塞等異常情況進行研究,提高設備利用率,降低大批量推理任務的推理延遲。

猜你喜歡
設備方法模型
一半模型
諧響應分析在設備減振中的應用
重要模型『一線三等角』
重尾非線性自回歸模型自加權M-估計的漸近分布
基于MPU6050簡單控制設備
電子制作(2018年11期)2018-08-04 03:26:08
3D打印中的模型分割與打包
500kV輸變電設備運行維護探討
工業設計(2016年12期)2016-04-16 02:52:00
用對方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
捕魚
主站蜘蛛池模板: 重口调教一区二区视频| 欧美久久网| 国产精品亚洲一区二区在线观看| 青青草91视频| 91黄视频在线观看| 精品福利网| 日韩精品成人网页视频在线| 国产精品久久久久久久久久98 | 无码精油按摩潮喷在线播放 | 毛片基地美国正在播放亚洲 | 欧美日韩国产在线播放| 欧美a在线看| 日本在线亚洲| 亚洲免费黄色网| 天堂成人在线| 国产在线自乱拍播放| 日韩高清成人| 国产精品黄色片| 91在线播放免费不卡无毒| 999国产精品永久免费视频精品久久| 在线观看亚洲精品福利片| 国产在线观看高清不卡| 在线精品自拍| 亚洲成人一区二区| 少妇精品久久久一区二区三区| 美女无遮挡免费网站| 久久美女精品国产精品亚洲| 蜜臀AV在线播放| 国产乱子精品一区二区在线观看| 中国美女**毛片录像在线| 久久国产精品影院| 欧洲在线免费视频| 欧美国产日韩另类| 亚洲欧美极品| 午夜激情婷婷| 国产精品一区不卡| 538国产视频| 亚洲精品欧美重口| 3p叠罗汉国产精品久久| 亚洲第一黄片大全| 国产成人精品视频一区二区电影| 国产主播福利在线观看| 国产精品偷伦视频免费观看国产| 国产香蕉97碰碰视频VA碰碰看| 国产成人亚洲日韩欧美电影| 亚洲电影天堂在线国语对白| 狠狠亚洲婷婷综合色香| 亚洲av无码专区久久蜜芽| 欧美黄网在线| 欧美日韩中文国产va另类| 一区二区三区成人| 国产福利影院在线观看| 一级毛片无毒不卡直接观看| 不卡视频国产| 欧美一级视频免费| 精品国产电影久久九九| 亚洲AV无码久久天堂| 成年人午夜免费视频| 国产成人精品高清不卡在线| 欧美天堂在线| 亚洲精品自产拍在线观看APP| 播五月综合| 国产自产视频一区二区三区| 中国国产高清免费AV片| 精品国产成人a在线观看| 欧美一级99在线观看国产| 午夜精品一区二区蜜桃| 国产欧美日韩91| 天天躁日日躁狠狠躁中文字幕| 欧美19综合中文字幕| AⅤ色综合久久天堂AV色综合 | 亚洲av综合网| 男人天堂亚洲天堂| 国产综合在线观看视频| 91成人在线观看视频| 911亚洲精品| 国产在线观看91精品| 亚洲精品无码成人片在线观看 | 欧美中文字幕一区| 国产亚洲高清在线精品99| 波多野结衣一区二区三视频| 欧美国产综合色视频|