異構(gòu)平臺(tái)上流水線程序優(yōu)化技術(shù)研究
發(fā)布時(shí)間:2021-08-09 21:55
以GPU為加速器的異構(gòu)系統(tǒng)是高性能程序重要的運(yùn)行平臺(tái),GPU編程模型可以為數(shù)據(jù)并行的程序提供很好的支持,但缺乏對(duì)流水線編程的良好支持。流水線編程模式可以用來(lái)簡(jiǎn)化程序編寫(xiě),更好地利用多部件、多設(shè)備平臺(tái)的計(jì)算優(yōu)勢(shì),挖掘更多維度的并行,因此其應(yīng)用領(lǐng)域十分廣泛。在GPU異構(gòu)系統(tǒng)上,通過(guò)挖掘流水線程序不同任務(wù)階段之間的并行性(即任務(wù)并行),可以使程序更好地利用硬件的計(jì)算能力。然而,當(dāng)前的GPU編程模型對(duì)于流水線并行的支持不足,使得開(kāi)發(fā)高性能的流水線程序非常困難。首先,當(dāng)前GPU編程模型缺乏對(duì)任務(wù)并行模式的良好支持,已有的任務(wù)并行相關(guān)研究方法會(huì)帶來(lái)GPU計(jì)算資源利用率低、程序并行度降低等問(wèn)題。同時(shí),目前缺乏對(duì)于CPU-GPU系統(tǒng)上跨設(shè)備流水線優(yōu)化的研究,當(dāng)前的編程模型難以支持跨設(shè)備的流水線式的數(shù)據(jù)傳輸。圍繞這些問(wèn)題,本文從計(jì)算、通信和編程等三個(gè)方面研究了異構(gòu)系統(tǒng)上流水線程序性能優(yōu)化問(wèn)題,并提出了一系列的解決方案。本文主要研究?jī)?nèi)容及貢獻(xiàn)如下:(1)系統(tǒng)性地分析總結(jié)了已有的GPU上流水線執(zhí)行模型的性能瓶頸,在已有的時(shí)間維度任務(wù)調(diào)度的基礎(chǔ)上,提出了空間維度上的流水線任務(wù)調(diào)度方法,并提出了兩種新的流水線任...
【文章來(lái)源】:清華大學(xué)北京市 211工程院校 985工程院校 教育部直屬院校
【文章頁(yè)數(shù)】:105 頁(yè)
【學(xué)位級(jí)別】:博士
【部分圖文】:
圖1.1英偉達(dá)特斯拉系列GPU計(jì)算能力變化
”。另一種方法是在a前編程模型之上添加一層軟件調(diào)度??模塊,從而調(diào)度流水線任務(wù)的執(zhí)行。通過(guò)使用這種策略,程序的不詞階段可以在??不同的GPU線程中并發(fā)地執(zhí)行,從而發(fā)掘更多的并行性。這種策略最常見(jiàn)的模型??是Megakemelt32,87^在本章中,我們將依次介紹這些執(zhí)行模型的特性及性能優(yōu)缺??點(diǎn)。??3.1.1合并執(zhí)行模型??合并執(zhí)行模鍾(Run?to?completion,RTC)基翁現(xiàn)流水線程序的一種基本的編??程模式。在合并執(zhí)行模型中,所有的任務(wù)階段實(shí)現(xiàn)在同一個(gè)GPU函數(shù)中*圖3.1描??述了這種模型的基本實(shí)現(xiàn)方式和執(zhí)行方式。??gpuKernel??I?f?*?零?f??■?B?■?B?J??%?%?%?%?\??\\\\?stage一?1();??SM1?/?st?age一2?();??}?Stage-3〇;??圖3.1合并執(zhí)行模型。??在這種模型中,所有計(jì)算任務(wù)的調(diào)度都完全依賴于GPU系統(tǒng)上原有的調(diào)度??機(jī)制,所有的流水線控制邏輯都實(shí)現(xiàn)在同一個(gè)GPU函數(shù)中。如圖3.1所示,每??個(gè)GPU函數(shù)中的線程會(huì)依次執(zhí)行流水線的各個(gè)任務(wù)階段,而不回的線程在同^時(shí)??18??
?第3章GPU平臺(tái)上流水線計(jì)算任務(wù)調(diào)度|莫型研究???|?gpuKernel_l{??stage?l7);??SMI?}}}}}}\?}??4^44^4?gpuKernel_2{??stage_2();?????////????}??SM2?V:V:V:?gpuKernel_3{??4^||}st;g^〇j??圖3.2依次執(zhí)行模型。??依次執(zhí)行模型的優(yōu)點(diǎn)去要包括實(shí)現(xiàn)簡(jiǎn)單、表達(dá)能力強(qiáng)、GPU函數(shù)占用存儲(chǔ)資??源較少等。依次執(zhí)行模型的實(shí)現(xiàn)難易程度和合并執(zhí)行模型相當(dāng),將一個(gè)以合并??執(zhí)行模型實(shí)現(xiàn)的流水線轉(zhuǎn)換為依次執(zhí)行模型的實(shí)現(xiàn)也比較容易。在依次執(zhí)行模_??中,不詞階段之間存在隱式的同步,這使得它可以實(shí)現(xiàn)需要全局M步的或者存??在遞歸結(jié)構(gòu)的流水線應(yīng)用。理論上,任何流水線結(jié)構(gòu)都可以用依次執(zhí)行模型來(lái)實(shí)??現(xiàn),該模型的表達(dá)能力非常強(qiáng)。詞時(shí),在這個(gè)模型中,由于整個(gè)流水線被分成幾??個(gè)GPU函數(shù)來(lái)實(shí)現(xiàn),每個(gè)GPU函數(shù)將消耗更少的存儲(chǔ)資源,GPU函數(shù)的并行度會(huì)??大于合并執(zhí)衧模型b而旦》這些。牵校蘸瘮(shù)對(duì)指令緩存利用效率更高。??另一方面,依次執(zhí)行模型也存在一些問(wèn)題。首先,在此模型中,每?jī)蓚(gè)連??續(xù)GPU函數(shù)之間存在隱式同步,所有GPU函數(shù)按流水線依賴關(guān)系的順序執(zhí)行,因??此,某個(gè)任務(wù)階段中少量長(zhǎng)時(shí)間運(yùn)行的線程可能會(huì)嚴(yán)重延遲不一階段的開(kāi)始。這??是缺乏對(duì)任務(wù)并行的支持導(dǎo)致的結(jié)果,這一模型沒(méi)有任務(wù)并行所能夠帶來(lái)的細(xì)粒??度利用硬件資源的優(yōu)勢(shì)。其次,該模型可能會(huì)導(dǎo)致頻繁的GPU函數(shù)調(diào)用開(kāi)銷,尤??其是對(duì)于具有遞歸或循環(huán)結(jié)構(gòu)的流水線,啟動(dòng)開(kāi)銷可能很大[7Q]。此外,流水線??執(zhí)行的控制邏輯在CPU端,CPU與GPU之間環(huán)境切
【參考文獻(xiàn)】:
期刊論文
[1]基于CUPTI接口的典型GPU程序負(fù)載特征分析[J]. 鄭禎,翟季冬,李焱,陳文光. 計(jì)算機(jī)研究與發(fā)展. 2016(06)
本文編號(hào):3332867
【文章來(lái)源】:清華大學(xué)北京市 211工程院校 985工程院校 教育部直屬院校
【文章頁(yè)數(shù)】:105 頁(yè)
【學(xué)位級(jí)別】:博士
【部分圖文】:
圖1.1英偉達(dá)特斯拉系列GPU計(jì)算能力變化
”。另一種方法是在a前編程模型之上添加一層軟件調(diào)度??模塊,從而調(diào)度流水線任務(wù)的執(zhí)行。通過(guò)使用這種策略,程序的不詞階段可以在??不同的GPU線程中并發(fā)地執(zhí)行,從而發(fā)掘更多的并行性。這種策略最常見(jiàn)的模型??是Megakemelt32,87^在本章中,我們將依次介紹這些執(zhí)行模型的特性及性能優(yōu)缺??點(diǎn)。??3.1.1合并執(zhí)行模型??合并執(zhí)行模鍾(Run?to?completion,RTC)基翁現(xiàn)流水線程序的一種基本的編??程模式。在合并執(zhí)行模型中,所有的任務(wù)階段實(shí)現(xiàn)在同一個(gè)GPU函數(shù)中*圖3.1描??述了這種模型的基本實(shí)現(xiàn)方式和執(zhí)行方式。??gpuKernel??I?f?*?零?f??■?B?■?B?J??%?%?%?%?\??\\\\?stage一?1();??SM1?/?st?age一2?();??}?Stage-3〇;??圖3.1合并執(zhí)行模型。??在這種模型中,所有計(jì)算任務(wù)的調(diào)度都完全依賴于GPU系統(tǒng)上原有的調(diào)度??機(jī)制,所有的流水線控制邏輯都實(shí)現(xiàn)在同一個(gè)GPU函數(shù)中。如圖3.1所示,每??個(gè)GPU函數(shù)中的線程會(huì)依次執(zhí)行流水線的各個(gè)任務(wù)階段,而不回的線程在同^時(shí)??18??
?第3章GPU平臺(tái)上流水線計(jì)算任務(wù)調(diào)度|莫型研究???|?gpuKernel_l{??stage?l7);??SMI?}}}}}}\?}??4^44^4?gpuKernel_2{??stage_2();?????////????}??SM2?V:V:V:?gpuKernel_3{??4^||}st;g^〇j??圖3.2依次執(zhí)行模型。??依次執(zhí)行模型的優(yōu)點(diǎn)去要包括實(shí)現(xiàn)簡(jiǎn)單、表達(dá)能力強(qiáng)、GPU函數(shù)占用存儲(chǔ)資??源較少等。依次執(zhí)行模型的實(shí)現(xiàn)難易程度和合并執(zhí)行模型相當(dāng),將一個(gè)以合并??執(zhí)行模型實(shí)現(xiàn)的流水線轉(zhuǎn)換為依次執(zhí)行模型的實(shí)現(xiàn)也比較容易。在依次執(zhí)行模_??中,不詞階段之間存在隱式的同步,這使得它可以實(shí)現(xiàn)需要全局M步的或者存??在遞歸結(jié)構(gòu)的流水線應(yīng)用。理論上,任何流水線結(jié)構(gòu)都可以用依次執(zhí)行模型來(lái)實(shí)??現(xiàn),該模型的表達(dá)能力非常強(qiáng)。詞時(shí),在這個(gè)模型中,由于整個(gè)流水線被分成幾??個(gè)GPU函數(shù)來(lái)實(shí)現(xiàn),每個(gè)GPU函數(shù)將消耗更少的存儲(chǔ)資源,GPU函數(shù)的并行度會(huì)??大于合并執(zhí)衧模型b而旦》這些。牵校蘸瘮(shù)對(duì)指令緩存利用效率更高。??另一方面,依次執(zhí)行模型也存在一些問(wèn)題。首先,在此模型中,每?jī)蓚(gè)連??續(xù)GPU函數(shù)之間存在隱式同步,所有GPU函數(shù)按流水線依賴關(guān)系的順序執(zhí)行,因??此,某個(gè)任務(wù)階段中少量長(zhǎng)時(shí)間運(yùn)行的線程可能會(huì)嚴(yán)重延遲不一階段的開(kāi)始。這??是缺乏對(duì)任務(wù)并行的支持導(dǎo)致的結(jié)果,這一模型沒(méi)有任務(wù)并行所能夠帶來(lái)的細(xì)粒??度利用硬件資源的優(yōu)勢(shì)。其次,該模型可能會(huì)導(dǎo)致頻繁的GPU函數(shù)調(diào)用開(kāi)銷,尤??其是對(duì)于具有遞歸或循環(huán)結(jié)構(gòu)的流水線,啟動(dòng)開(kāi)銷可能很大[7Q]。此外,流水線??執(zhí)行的控制邏輯在CPU端,CPU與GPU之間環(huán)境切
【參考文獻(xiàn)】:
期刊論文
[1]基于CUPTI接口的典型GPU程序負(fù)載特征分析[J]. 鄭禎,翟季冬,李焱,陳文光. 計(jì)算機(jī)研究與發(fā)展. 2016(06)
本文編號(hào):3332867
本文鏈接:http://sikaile.net/shoufeilunwen/xxkjbs/3332867.html
最近更新
教材專著