面向稀疏卷積神經(jīng)網(wǎng)絡(luò)的GPU性能優(yōu)化方法
發(fā)布時間:2021-08-21 13:48
近些年來,深度卷積神經(jīng)網(wǎng)絡(luò)在多項任務(wù)中展現(xiàn)了驚人的能力,并已經(jīng)被用在物體檢測、自動駕駛和機(jī)器翻譯等眾多應(yīng)用中.但這些模型往往參數(shù)規(guī)模龐大,并帶來了沉重的計算負(fù)擔(dān).神經(jīng)網(wǎng)絡(luò)的模型剪枝技術(shù)能夠識別并刪除模型中對精度影響較小的參數(shù),從而降低模型的參數(shù)數(shù)目和理論計算量,給模型的高效執(zhí)行提供了機(jī)會.然而,剪枝后的稀疏模型卻難以在GPU上實現(xiàn)高效執(zhí)行,其性能甚至差于剪枝前的稠密模型,導(dǎo)致模型剪枝難以帶來真正的執(zhí)行性能收益.提出一種稀疏感知的代碼生成方法,能夠生成高效的稀疏卷積GPU程序.首先為卷積算子設(shè)計了算子模板,并結(jié)合GPU的特點對模板代碼進(jìn)行了多種優(yōu)化.算子模板中的源代碼經(jīng)過編譯和分析被轉(zhuǎn)換為算子中間表示模板,設(shè)計了一種稀疏代碼生成方法,能夠結(jié)合剪枝后的稀疏參數(shù),基于中間表示模板生成對應(yīng)的稀疏卷積代碼.同時,利用神經(jīng)網(wǎng)絡(luò)執(zhí)行過程中的數(shù)據(jù)訪問特點對數(shù)據(jù)的訪問和放置進(jìn)行了優(yōu)化,有效提升了訪存吞吐量.最后,稀疏參數(shù)的位置信息被隱式編碼在生成的代碼中,不需要額外的索引結(jié)構(gòu),降低了訪存需求.在實驗中證明了:相對于GPU上已有的稀疏神經(jīng)網(wǎng)絡(luò)執(zhí)行方法,提出的稀疏感知的代碼生成方法能夠有效提升稀疏卷積神經(jīng)網(wǎng)...
【文章來源】:軟件學(xué)報. 2020,31(09)北大核心EICSCD
【文章頁數(shù)】:21 頁
【部分圖文】:
稀疏感知的算子代碼生成流程
為了滿足大量線程執(zhí)行中的訪存需求,GPU設(shè)計了復(fù)雜的存儲層次和訪存路徑,如圖3所示.全局內(nèi)存基于DRAM,其存儲容量最大,一般在數(shù)十GB,用于存放GPU程序的輸入和輸出數(shù)據(jù);但其訪存延遲比較高.對全局內(nèi)存的訪問一般會經(jīng)過高速緩存.二級高速緩存(L2 cache)由所有流多處理器共享,容量一般為數(shù)MB.一級高速緩存(L1 cache)位于流多處理器內(nèi)部,由位于同一個流多處理器上的線程共享,容量一般為數(shù)十KB.最快的存儲部件是寄存器.一個流多處理器一般集成了數(shù)萬個32位寄存器.這些寄存器被劃分給不同的線程使用.另外,流多處理器上還有兩種比較特殊的存儲部件:共享內(nèi)存(shared memory)是一塊由編程人員手工控制使用的存儲空間,容量一般為數(shù)十KB,可以用于緩存程序執(zhí)行中頻繁訪問的數(shù)據(jù);而常量緩存(constant cache)可以用來緩存對常量內(nèi)存的訪問.常量內(nèi)存也位于DRAM中,由編譯器和驅(qū)動程序使用,一般用于保存在整個GPU程序生命周期中取值不變的數(shù)據(jù).當(dāng)常量緩存命中時,訪問延遲很低.對常量內(nèi)存的訪問往往不經(jīng)過高速緩存.常量緩存訪問的另一個特點是:當(dāng)一個warp內(nèi)的線程訪問常量內(nèi)存中的相同位置時,這些線程的訪問請求會被合并,并通過一次請求獲得結(jié)果.2 稀疏感知的算子代碼生成
盡管GPU能夠提供強(qiáng)大的峰值計算性能,但達(dá)到峰值性能需要程序具有較高的計算訪存比.訪存密集型的應(yīng)用很容易受到訪存帶寬的限制,難以實現(xiàn)滿意的性能.我們通過roofline模型[29]分析了不同計算密度下,GPU程序的性能上限,如圖6所示.橫軸表示不同的計算密度,單位是操作數(shù)/字節(jié),表示從全局內(nèi)存訪問的每字節(jié)數(shù)據(jù)所參與的操作數(shù)目.縱軸表示性能,使用每秒鐘可執(zhí)行的操作數(shù)目衡量.圖中的折線表示在每個計算密度下能夠達(dá)到的峰值性能.如果一個程序的計算密度在折線拐點的左側(cè),則該程序的峰值性能是訪存受限的;如果程序位于拐點右側(cè),則該程序是計算受限的.我們選取了3種不同的GPU,并標(biāo)注了每個GPU的峰值性能和達(dá)到峰值性能所需要的計算密度的下限.其中,Tesla K40m和Titan Xp是工作站級別的GPU,而Jetson TX2是面向終端設(shè)備的GPU.可以看到:計算能力更強(qiáng)的GPU,其對計算密度的要求往往也越高.我們對稀疏參數(shù)卷積的計算密度進(jìn)行了分析.假設(shè)卷積參數(shù)Weight的稀疏程度(取值為0的參數(shù)在全部參數(shù)中所占的比例)為p.對于經(jīng)過非結(jié)構(gòu)化剪枝的稀疏參數(shù),取值為0的元素的分布沒有規(guī)律,我們認(rèn)為對任意位置(k,c,r,s),其取值為0的概率P(Weightk,c,r,s=0)=p,則計算密度OI(operational intensity)可以用公式(1)表示:
【參考文獻(xiàn)】:
期刊論文
[1]深度網(wǎng)絡(luò)模型壓縮綜述[J]. 雷杰,高鑫,宋杰,王興路,宋明黎. 軟件學(xué)報. 2018(02)
本文編號:3355717
【文章來源】:軟件學(xué)報. 2020,31(09)北大核心EICSCD
【文章頁數(shù)】:21 頁
【部分圖文】:
稀疏感知的算子代碼生成流程
為了滿足大量線程執(zhí)行中的訪存需求,GPU設(shè)計了復(fù)雜的存儲層次和訪存路徑,如圖3所示.全局內(nèi)存基于DRAM,其存儲容量最大,一般在數(shù)十GB,用于存放GPU程序的輸入和輸出數(shù)據(jù);但其訪存延遲比較高.對全局內(nèi)存的訪問一般會經(jīng)過高速緩存.二級高速緩存(L2 cache)由所有流多處理器共享,容量一般為數(shù)MB.一級高速緩存(L1 cache)位于流多處理器內(nèi)部,由位于同一個流多處理器上的線程共享,容量一般為數(shù)十KB.最快的存儲部件是寄存器.一個流多處理器一般集成了數(shù)萬個32位寄存器.這些寄存器被劃分給不同的線程使用.另外,流多處理器上還有兩種比較特殊的存儲部件:共享內(nèi)存(shared memory)是一塊由編程人員手工控制使用的存儲空間,容量一般為數(shù)十KB,可以用于緩存程序執(zhí)行中頻繁訪問的數(shù)據(jù);而常量緩存(constant cache)可以用來緩存對常量內(nèi)存的訪問.常量內(nèi)存也位于DRAM中,由編譯器和驅(qū)動程序使用,一般用于保存在整個GPU程序生命周期中取值不變的數(shù)據(jù).當(dāng)常量緩存命中時,訪問延遲很低.對常量內(nèi)存的訪問往往不經(jīng)過高速緩存.常量緩存訪問的另一個特點是:當(dāng)一個warp內(nèi)的線程訪問常量內(nèi)存中的相同位置時,這些線程的訪問請求會被合并,并通過一次請求獲得結(jié)果.2 稀疏感知的算子代碼生成
盡管GPU能夠提供強(qiáng)大的峰值計算性能,但達(dá)到峰值性能需要程序具有較高的計算訪存比.訪存密集型的應(yīng)用很容易受到訪存帶寬的限制,難以實現(xiàn)滿意的性能.我們通過roofline模型[29]分析了不同計算密度下,GPU程序的性能上限,如圖6所示.橫軸表示不同的計算密度,單位是操作數(shù)/字節(jié),表示從全局內(nèi)存訪問的每字節(jié)數(shù)據(jù)所參與的操作數(shù)目.縱軸表示性能,使用每秒鐘可執(zhí)行的操作數(shù)目衡量.圖中的折線表示在每個計算密度下能夠達(dá)到的峰值性能.如果一個程序的計算密度在折線拐點的左側(cè),則該程序的峰值性能是訪存受限的;如果程序位于拐點右側(cè),則該程序是計算受限的.我們選取了3種不同的GPU,并標(biāo)注了每個GPU的峰值性能和達(dá)到峰值性能所需要的計算密度的下限.其中,Tesla K40m和Titan Xp是工作站級別的GPU,而Jetson TX2是面向終端設(shè)備的GPU.可以看到:計算能力更強(qiáng)的GPU,其對計算密度的要求往往也越高.我們對稀疏參數(shù)卷積的計算密度進(jìn)行了分析.假設(shè)卷積參數(shù)Weight的稀疏程度(取值為0的參數(shù)在全部參數(shù)中所占的比例)為p.對于經(jīng)過非結(jié)構(gòu)化剪枝的稀疏參數(shù),取值為0的元素的分布沒有規(guī)律,我們認(rèn)為對任意位置(k,c,r,s),其取值為0的概率P(Weightk,c,r,s=0)=p,則計算密度OI(operational intensity)可以用公式(1)表示:
【參考文獻(xiàn)】:
期刊論文
[1]深度網(wǎng)絡(luò)模型壓縮綜述[J]. 雷杰,高鑫,宋杰,王興路,宋明黎. 軟件學(xué)報. 2018(02)
本文編號:3355717
本文鏈接:http://sikaile.net/kejilunwen/jisuanjikexuelunwen/3355717.html
最近更新
教材專著