GPU計(jì)算的目的即是計(jì)算加速。相比于CPU,其具有以下三個(gè)方面的優(yōu)勢:
1
并行度高:GPU的Core數(shù)遠(yuǎn)遠(yuǎn)多于CPU,從而GPU的任務(wù)并發(fā)度也遠(yuǎn)高于CPU;
2
內(nèi)存帶寬高:GPU的內(nèi)存系統(tǒng)帶寬幾十倍高于CPU;
3
運(yùn)行速度快:GPU在浮點(diǎn)運(yùn)算速度上較之CPU也具有絕對優(yōu)勢。
另一方面,GPU采用的SIMD(Single Instruction Multiple Data)架構(gòu),這決定了其對執(zhí)行的任務(wù)具有特定的要求(如不適合判斷邏輯過多的任務(wù),數(shù)據(jù)大小不可控的任務(wù)等)。而且,應(yīng)用程序在GPU上也需有特定的實(shí)現(xiàn),包括算法的GPU并行化,程序的定制等。因此,針對GPU并行處理的研究成為一大研究熱點(diǎn)。
現(xiàn)有GPU采用SIMD方式執(zhí)行,即所有線程塊在同一時(shí)刻執(zhí)行相同的程序,從而若這些線程塊處理的數(shù)據(jù)量相差大,或計(jì)算量分布不均,便會帶來線程塊的負(fù)載不均,進(jìn)而影響整個(gè)任務(wù)執(zhí)行效率。這類問題實(shí)則常見的Skew Handling或Load Inbalance問題。
應(yīng)用算法的GPU并行化之所以成為一個(gè)研究問題而不僅僅是工程問題,這其中的主要的問題在于
1GPU不支持內(nèi)存的動態(tài)分配,從而對于輸出結(jié)果大小不確定的任務(wù)是一個(gè)極大的挑戰(zhàn);2GPU的SIMD特性使得很多算法不易很好實(shí)現(xiàn),即如何充分利用GPU線程塊的并行度;3共享數(shù)據(jù)的競爭讀寫,共享數(shù)據(jù)的鎖機(jī)制帶來大量的等待時(shí)間消耗。
GPU作為一種協(xié)處理器,其的執(zhí)行受CPU調(diào)度。在實(shí)際應(yīng)用中,GPU更多的也是配合CPU工作,從而基于CPU/GPU異構(gòu)系統(tǒng)的統(tǒng)一任務(wù)調(diào)度更具實(shí)用意義,也是有關(guān)GPU的重要研究方面。
GPU采用SIMD架構(gòu),各線程塊在同一時(shí)刻執(zhí)行相同的Instruction,但對應(yīng)的是不同的數(shù)據(jù)。但事實(shí)上,GPU線程塊具有如下特征:
每個(gè)線程塊只對應(yīng)于一個(gè)的流處理器(SM),即其只能被該對應(yīng)的SM執(zhí)行,而一個(gè)SM可以對應(yīng)多個(gè)線程塊;SM在執(zhí)行線程塊時(shí),線程塊中的線程以Warp(每32個(gè)線程)為單位調(diào)度及并行執(zhí)行;
線程塊內(nèi)的線程可同步,而不同線程塊的同步則只能由CPU調(diào)用同步命令完成;
不同線程塊的運(yùn)行相互獨(dú)立。
因此,為不同的線程塊分配不同的任務(wù),使得GPU做到任務(wù)并行,最大化GPU的利用成為可能并具有重要的研究意義。
-
gpu
+關(guān)注
關(guān)注
27文章
4591瀏覽量
128161 -
并行化
+關(guān)注
關(guān)注
0文章
9瀏覽量
2840
原文標(biāo)題:基于GPU的算法并行化
文章出處:【微信號:Imgtec,微信公眾號:Imagination Tech】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論