一種適用于GPU圖像處理算法的合并存儲結(jié)構(gòu)
發(fā)布時間:2020-12-09 11:13
大多數(shù)圖像處理算法都可利用GPU進行加速以達到更好的執(zhí)行性能,但數(shù)據(jù)傳輸操作與核函數(shù)執(zhí)行之間的調(diào)度策略問題仍是桎梏加速性能進一步提升的主要瓶頸。為了解決這個問題,通常采用GPU任務流將核函數(shù)執(zhí)行與數(shù)據(jù)傳輸操作進行重疊,以隱藏部分數(shù)據(jù)傳輸與核函數(shù)執(zhí)行耗時。但是,由于CUDA編程模型的特性以及GPU硬件資源的限制,在某些情況下,即使創(chuàng)建較多的任務流用于任務重疊,每個流上仍會存在串行執(zhí)行的任務,導致加速效果無法進一步提升。因此,考慮利用CSS將待處理圖像進行合并從而將單個流中的算子核函數(shù)及數(shù)據(jù)傳輸操作進行合并,以減少數(shù)據(jù)傳輸操作和核函數(shù)執(zhí)行的固定代價及調(diào)用間隙。通過實驗結(jié)果可知,提出的CSS結(jié)構(gòu)不僅能在單流的情況下提高GPU圖像處理算法執(zhí)行性能,在多流的情況下其加速性能也得到了進一步提升,具有較好的實用性及可擴展性,適用于包含較多算子操作或較小尺寸圖像批量處理的情況。此外,提出的方法對圖像處理算法的GPU加速提供了新的研究思路。
【文章來源】:計算機工程與科學. 2020年02期 第197-202頁 北大核心
【文章頁數(shù)】:6 頁
【部分圖文】:
邏輯工作隊列與硬件工作隊列
從上述步驟可知,數(shù)據(jù)傳輸與核函數(shù)執(zhí)行操作是基于GPU的并行優(yōu)化算法中必不可少的2個重要步驟。由于核函數(shù)執(zhí)行操作通常在算法執(zhí)行總耗時中占據(jù)較大比重,所以在現(xiàn)有的大部分文獻中,重點關注如何對GPU核函數(shù)執(zhí)行部分進行優(yōu)化。即根據(jù)算法本身特性及GPU計算架構(gòu)的特點來設計性能最優(yōu)的核函數(shù),從而達到較好的加速效果。此外,針對GPU數(shù)據(jù)傳輸耗時的優(yōu)化方法比如零拷貝(Zero-Copy)[6]和Overlap[7]等的應用也取得了一定的加速效果。Zero-Copy是一種將主機端分配的鎖頁內(nèi)存(Pinned Memory)映射到GPU顯存地址空間的方法,GPU可在需要該內(nèi)存中數(shù)據(jù)時自動通過PCI-E總線訪問主機端內(nèi)存中的數(shù)據(jù),而不必手動將數(shù)據(jù)提前傳輸至GPU顯存。但是,由于所需數(shù)據(jù)并沒有緩存到GPU顯存中,所以每次訪問該數(shù)據(jù)都需要重新獲取,因此只適用于數(shù)據(jù)量較小或數(shù)據(jù)訪問次數(shù)較少的情況。Overlap則是利用CUDA流[3,7-9]實現(xiàn)不同GPU工作隊列的并發(fā)執(zhí)行。不同型號GPU通常擁有數(shù)量不等的可連接硬件工作隊列上限,并可以進行顯式設置,而邏輯工作隊列(即CUDA流)則沒有固定數(shù)量限制。通過將邏輯工作隊列映射到不同硬件工作隊列,可以重疊數(shù)據(jù)傳輸與核函數(shù)執(zhí)行操作,在支持Hyper-Q特性的GPU上還可以達到核函數(shù)執(zhí)行之間的重疊,從而減少部分程序執(zhí)行耗時。如圖 1所示,當批量處理6幅圖像時,可以將每幅圖像的處理操作分配到1個單獨的CUDA流上,在計算資源充足的情況下,數(shù)據(jù)傳輸與核函數(shù)以及不同流上核函數(shù)的執(zhí)行時間軸會出現(xiàn)重疊,從而獲得較高的并行度與較好的加速效果。雖然CUDA流在邏輯上是相互獨立且可并發(fā)執(zhí)行的GPU工作隊列,但將邏輯工作隊列(即CUDA流)映射到硬件工作隊列時會受到硬件計算資源方面的限制。GPU中包含較多的計算核心(Cores),主要分為SP(Stream Processor)和SM(Stream Multi-processor),多個SP可組成1個SM,每個GPU硬件工作隊列包含至少1個SM。當多個邏輯工作隊列映射到同1硬件工作隊列時,這些邏輯工作隊列將會采取分時復用的方式執(zhí)行。因此,即使創(chuàng)建多個邏輯工作隊列,但當硬件工作隊列不足以同時執(zhí)行全部邏輯工作隊列時,邏輯上并行執(zhí)行的工作隊列在物理上仍是串行執(zhí)行的。如圖 2a所示,假定GPU硬件資源僅支持同時執(zhí)行3個硬件工作隊列,即使創(chuàng)建邏輯上可并行執(zhí)行的6個邏輯工作隊列,但未搶占到硬件工作隊列所有權的邏輯工作隊列不得不進行等待,圖2a所示邏輯工作隊列執(zhí)行時間軸對應的硬件工作隊列執(zhí)行時間軸如圖 2b所示。此外,在每個硬件工作隊列上需要串行執(zhí)行的操作中,數(shù)據(jù)傳輸與數(shù)據(jù)傳輸之間以及核函數(shù)執(zhí)行與數(shù)據(jù)傳輸之間存在調(diào)用間隙。在這種情況下,算法的實際執(zhí)行情況并沒有達到圖 1所示的理想效果。
在圖像處理領域中,通常將圖像視為數(shù)字矩陣傳輸至GPU顯存中進行處理[10,11]。因此,本文提出一種適用于GPU的圖像合并存儲結(jié)構(gòu)(CSS),如圖 3所示。利用CSS可以將具有相同類型、相同算子、相同或不同大小的圖像進行合并存儲、傳輸及計算。如前文所述,每次GPU數(shù)據(jù)傳輸操作都存在固定代價。Tinit在每次數(shù)據(jù)傳輸操作調(diào)用前都會執(zhí)行,即屬于固定代價且不隨傳輸數(shù)據(jù)量的大小而改變。而Tcopy不屬于固定代價,因此隨傳輸數(shù)據(jù)量的增加而增加。當將多次數(shù)據(jù)傳輸操作進行合并時,固定代價會隨之減少。分別采用SEP與CSS的多次GPU數(shù)據(jù)傳輸操作總耗時計算方法如式(3)所示:
【參考文獻】:
期刊論文
[1]并行計算在動態(tài)攝影測量邊緣提取算法中應用[J]. 劉振濤,燕必希,董明利,孫鵬,王君. 計算機工程與設計. 2019(01)
[2]基于MODIS植被指數(shù)的氣候平均研究[J]. 紀翔,盧涵宇,趙天杰,吳松,盧天健. 廣西大學學報(自然科學版). 2018(03)
[3]基于GPU和矩陣分塊的增強植被指數(shù)計算[J]. 沈夏炯,侯柏成,韓道軍,馬瑞. 遙感信息. 2018(03)
[4]GPU加速的差分進化粒子濾波算法[J]. 曹潔,黃開杰,王進花. 計算機應用研究. 2018(07)
本文編號:2906779
【文章來源】:計算機工程與科學. 2020年02期 第197-202頁 北大核心
【文章頁數(shù)】:6 頁
【部分圖文】:
邏輯工作隊列與硬件工作隊列
從上述步驟可知,數(shù)據(jù)傳輸與核函數(shù)執(zhí)行操作是基于GPU的并行優(yōu)化算法中必不可少的2個重要步驟。由于核函數(shù)執(zhí)行操作通常在算法執(zhí)行總耗時中占據(jù)較大比重,所以在現(xiàn)有的大部分文獻中,重點關注如何對GPU核函數(shù)執(zhí)行部分進行優(yōu)化。即根據(jù)算法本身特性及GPU計算架構(gòu)的特點來設計性能最優(yōu)的核函數(shù),從而達到較好的加速效果。此外,針對GPU數(shù)據(jù)傳輸耗時的優(yōu)化方法比如零拷貝(Zero-Copy)[6]和Overlap[7]等的應用也取得了一定的加速效果。Zero-Copy是一種將主機端分配的鎖頁內(nèi)存(Pinned Memory)映射到GPU顯存地址空間的方法,GPU可在需要該內(nèi)存中數(shù)據(jù)時自動通過PCI-E總線訪問主機端內(nèi)存中的數(shù)據(jù),而不必手動將數(shù)據(jù)提前傳輸至GPU顯存。但是,由于所需數(shù)據(jù)并沒有緩存到GPU顯存中,所以每次訪問該數(shù)據(jù)都需要重新獲取,因此只適用于數(shù)據(jù)量較小或數(shù)據(jù)訪問次數(shù)較少的情況。Overlap則是利用CUDA流[3,7-9]實現(xiàn)不同GPU工作隊列的并發(fā)執(zhí)行。不同型號GPU通常擁有數(shù)量不等的可連接硬件工作隊列上限,并可以進行顯式設置,而邏輯工作隊列(即CUDA流)則沒有固定數(shù)量限制。通過將邏輯工作隊列映射到不同硬件工作隊列,可以重疊數(shù)據(jù)傳輸與核函數(shù)執(zhí)行操作,在支持Hyper-Q特性的GPU上還可以達到核函數(shù)執(zhí)行之間的重疊,從而減少部分程序執(zhí)行耗時。如圖 1所示,當批量處理6幅圖像時,可以將每幅圖像的處理操作分配到1個單獨的CUDA流上,在計算資源充足的情況下,數(shù)據(jù)傳輸與核函數(shù)以及不同流上核函數(shù)的執(zhí)行時間軸會出現(xiàn)重疊,從而獲得較高的并行度與較好的加速效果。雖然CUDA流在邏輯上是相互獨立且可并發(fā)執(zhí)行的GPU工作隊列,但將邏輯工作隊列(即CUDA流)映射到硬件工作隊列時會受到硬件計算資源方面的限制。GPU中包含較多的計算核心(Cores),主要分為SP(Stream Processor)和SM(Stream Multi-processor),多個SP可組成1個SM,每個GPU硬件工作隊列包含至少1個SM。當多個邏輯工作隊列映射到同1硬件工作隊列時,這些邏輯工作隊列將會采取分時復用的方式執(zhí)行。因此,即使創(chuàng)建多個邏輯工作隊列,但當硬件工作隊列不足以同時執(zhí)行全部邏輯工作隊列時,邏輯上并行執(zhí)行的工作隊列在物理上仍是串行執(zhí)行的。如圖 2a所示,假定GPU硬件資源僅支持同時執(zhí)行3個硬件工作隊列,即使創(chuàng)建邏輯上可并行執(zhí)行的6個邏輯工作隊列,但未搶占到硬件工作隊列所有權的邏輯工作隊列不得不進行等待,圖2a所示邏輯工作隊列執(zhí)行時間軸對應的硬件工作隊列執(zhí)行時間軸如圖 2b所示。此外,在每個硬件工作隊列上需要串行執(zhí)行的操作中,數(shù)據(jù)傳輸與數(shù)據(jù)傳輸之間以及核函數(shù)執(zhí)行與數(shù)據(jù)傳輸之間存在調(diào)用間隙。在這種情況下,算法的實際執(zhí)行情況并沒有達到圖 1所示的理想效果。
在圖像處理領域中,通常將圖像視為數(shù)字矩陣傳輸至GPU顯存中進行處理[10,11]。因此,本文提出一種適用于GPU的圖像合并存儲結(jié)構(gòu)(CSS),如圖 3所示。利用CSS可以將具有相同類型、相同算子、相同或不同大小的圖像進行合并存儲、傳輸及計算。如前文所述,每次GPU數(shù)據(jù)傳輸操作都存在固定代價。Tinit在每次數(shù)據(jù)傳輸操作調(diào)用前都會執(zhí)行,即屬于固定代價且不隨傳輸數(shù)據(jù)量的大小而改變。而Tcopy不屬于固定代價,因此隨傳輸數(shù)據(jù)量的增加而增加。當將多次數(shù)據(jù)傳輸操作進行合并時,固定代價會隨之減少。分別采用SEP與CSS的多次GPU數(shù)據(jù)傳輸操作總耗時計算方法如式(3)所示:
【參考文獻】:
期刊論文
[1]并行計算在動態(tài)攝影測量邊緣提取算法中應用[J]. 劉振濤,燕必希,董明利,孫鵬,王君. 計算機工程與設計. 2019(01)
[2]基于MODIS植被指數(shù)的氣候平均研究[J]. 紀翔,盧涵宇,趙天杰,吳松,盧天健. 廣西大學學報(自然科學版). 2018(03)
[3]基于GPU和矩陣分塊的增強植被指數(shù)計算[J]. 沈夏炯,侯柏成,韓道軍,馬瑞. 遙感信息. 2018(03)
[4]GPU加速的差分進化粒子濾波算法[J]. 曹潔,黃開杰,王進花. 計算機應用研究. 2018(07)
本文編號:2906779
本文鏈接:http://www.lk138.cn/kejilunwen/jisuanjikexuelunwen/2906779.html
最近更新
教材專著