GPU計(jì)算的目的即是計(jì)算加速。相比于CPU,其具有以下三個(gè)方面的優(yōu)勢(shì):
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也具有絕對(duì)優(yōu)勢(shì)。
另一方面,GPU采用的SIMD(Single Instruction Multiple Data)架構(gòu),這決定了其對(duì)執(zhí)行的任務(wù)具有特定的要求(如不適合判斷邏輯過(guò)多的任務(wù),數(shù)據(jù)大小不可控的任務(wù)等)。而且,應(yīng)用程序在GPU上也需有特定的實(shí)現(xiàn),包括算法的GPU并行化,程序的定制等。因此,針對(duì)GPU并行處理的研究成為一大研究熱點(diǎn)。
現(xiàn)有GPU采用SIMD方式執(zhí)行,即所有線程塊在同一時(shí)刻執(zhí)行相同的程序,從而若這些線程塊處理的數(shù)據(jù)量相差大,或計(jì)算量分布不均,便會(huì)帶來(lái)線程塊的負(fù)載不均,進(jìn)而影響整個(gè)任務(wù)執(zhí)行效率。這類問(wèn)題實(shí)則常見(jiàn)的Skew Handling或Load Inbalance問(wèn)題。
應(yīng)用算法的GPU并行化之所以成為一個(gè)研究問(wèn)題而不僅僅是工程問(wèn)題,這其中的主要的問(wèn)題在于
1GPU不支持內(nèi)存的動(dòng)態(tài)分配,從而對(duì)于輸出結(jié)果大小不確定的任務(wù)是一個(gè)極大的挑戰(zhàn);2GPU的SIMD特性使得很多算法不易很好實(shí)現(xiàn),即如何充分利用GPU線程塊的并行度;3共享數(shù)據(jù)的競(jìng)爭(zhēng)讀寫,共享數(shù)據(jù)的鎖機(jī)制帶來(lái)大量的等待時(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,但對(duì)應(yīng)的是不同的數(shù)據(jù)。但事實(shí)上,GPU線程塊具有如下特征:
每個(gè)線程塊只對(duì)應(yīng)于一個(gè)的流處理器(SM),即其只能被該對(duì)應(yīng)的SM執(zhí)行,而一個(gè)SM可以對(duì)應(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)注
28文章
4783瀏覽量
129395 -
并行化
+關(guān)注
關(guān)注
0文章
9瀏覽量
2865
原文標(biāo)題:基于GPU的算法并行化
文章出處:【微信號(hào):Imgtec,微信公眾號(hào):Imagination Tech】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
![](https://file1.elecfans.com/web2/M00/84/58/wKgaomRmBBaAcHZZAACzx2Is-vU289.png)
【招聘】算法、圖像檢索、嵌入式、測(cè)試、架構(gòu)、GPU優(yōu)化等職位(bj&sh)
請(qǐng)問(wèn)Mali GPU的并行化計(jì)算模型是怎樣構(gòu)建的?
求大佬分享一種基于GPU的Voronoi圖并行柵格生成算法
基于GPU的并行APSP問(wèn)題的研究
基于GPU的遙感圖像融合并行算法研究
基于GPU的并行化運(yùn)動(dòng)目標(biāo)檢測(cè)方法的研究
![基于<b class='flag-5'>GPU</b>的<b class='flag-5'>并行</b><b class='flag-5'>化</b>運(yùn)動(dòng)目標(biāo)檢測(cè)方法的<b class='flag-5'>研究</b>](https://file.elecfans.com/web2/M00/49/57/poYBAGKhwKOAUnUpAAAO9tu8MWk398.jpg)
JPEG壓縮算法并行化設(shè)計(jì)
![JPEG壓縮<b class='flag-5'>算法</b><b class='flag-5'>并行</b><b class='flag-5'>化</b>設(shè)計(jì)](https://file.elecfans.com/web2/M00/49/62/poYBAGKhwKqAFXJOAAAcbEyzx6Y730.jpg)
基于Spark的BIRCH算法并行化的設(shè)計(jì)與實(shí)現(xiàn)
![基于Spark的BIRCH<b class='flag-5'>算法</b><b class='flag-5'>并行</b><b class='flag-5'>化</b>的設(shè)計(jì)與實(shí)現(xiàn)](https://file.elecfans.com/web2/M00/49/64/poYBAGKhwKyANNiQAAAbIqhtrjY085.jpg)
基于GPU的數(shù)字圖像并行處理研究
![基于<b class='flag-5'>GPU</b>的數(shù)字圖像<b class='flag-5'>并行</b>處理<b class='flag-5'>研究</b>](https://file1.elecfans.com//web2/M00/A7/00/wKgZomUMQbyAUENhAAAQokh1gBE802.jpg)
基于Hadoop平臺(tái)的LDA算法的并行化實(shí)現(xiàn)
![基于Hadoop平臺(tái)的LDA<b class='flag-5'>算法</b>的<b class='flag-5'>并行</b><b class='flag-5'>化</b>實(shí)現(xiàn)](https://file.elecfans.com/web2/M00/49/72/poYBAGKhwLaADzcNAAAWOjVeBNQ041.jpg)
基于自適應(yīng)線程束的GPU并行PSO算法
![基于自適應(yīng)線程束的<b class='flag-5'>GPU</b><b class='flag-5'>并行</b>PSO<b class='flag-5'>算法</b>](https://file.elecfans.com/web2/M00/49/78/poYBAGKhwLmAK4bJAAAgvhHE9eA800.jpg)
評(píng)論