cuda并行計(jì)算架構(gòu)及編程

cuda并行計(jì)算架構(gòu)及編程

ID:12631187

大?。?03.50 KB

頁(yè)數(shù):6頁(yè)

時(shí)間:2018-07-18

cuda并行計(jì)算架構(gòu)及編程_第1頁(yè)
cuda并行計(jì)算架構(gòu)及編程_第2頁(yè)
cuda并行計(jì)算架構(gòu)及編程_第3頁(yè)
cuda并行計(jì)算架構(gòu)及編程_第4頁(yè)
cuda并行計(jì)算架構(gòu)及編程_第5頁(yè)
資源描述:

《cuda并行計(jì)算架構(gòu)及編程》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)

1、CUDA并行架構(gòu)及編程摘要CUDA是一種由NVIDIA推出的并行計(jì)算架構(gòu),非常適合大規(guī)模數(shù)據(jù)密集型計(jì)算。CUDA使GPU的超高計(jì)算性能在數(shù)據(jù)處理和并行計(jì)算等通用計(jì)算領(lǐng)域發(fā)揮優(yōu)勢(shì),本文討論了CUDA的計(jì)算架構(gòu)和基于GPU的CUDAC編程語(yǔ)言,CUDA使GPU流處理器陣列的性能得到充分發(fā)揮。極大地提高了并行計(jì)算程序的效率。關(guān)鍵詞并行計(jì)算,GPU通用計(jì)算,CUDAAbstractCUDAisaparallelcomputingarchitectureintroducedbyNVIDIA,itmainlyusedforlargescaledata-intensiv

2、ecomputing.CUDAmakesGPUahighperformanceinparallelcomputing,dataprocessingandothergeneralcomputing.thispaperdiscussestheCUDAcomputingarchitectureandCUDACprogramminglanguagebasedonGPU,CUDAmakesGPUstreamprocessorarraysfullyusedandGreatlyimprovedtheefficiencyofparallelcomputingprogram

3、.Keywordsparallelcomputing,GPUgeneralpurposecomputation,CUDA1引言并行計(jì)算是指同時(shí)使用多種計(jì)算資源解決計(jì)算問(wèn)題的過(guò)程。并行計(jì)算科學(xué)中主要研究的是空間上的并行問(wèn)題。從程序和算法設(shè)計(jì)的角度來(lái)看,并行計(jì)算又可分為數(shù)據(jù)并行和任務(wù)并行。一般來(lái)說(shuō),GPU更注重于數(shù)據(jù)并行計(jì)算,主要是將一個(gè)大任務(wù)化解成相同的各個(gè)子任務(wù)。早期的GPU研究是通過(guò)可編程計(jì)算單元為屏幕上的每個(gè)像素計(jì)算出一個(gè)顏色值即渲染問(wèn)題。自CUDAC出現(xiàn)后,基于GPU的通用計(jì)算已經(jīng)成為一個(gè)新的研究領(lǐng)域。通常,像素著色器對(duì)各種顏色值進(jìn)行合成并計(jì)算出最終

4、的顏色值。實(shí)際上,輸入值可以為任意數(shù)據(jù),這樣不一定非要使用GPU來(lái)處理圖形,還可以實(shí)現(xiàn)某些通用計(jì)算。由于GPU有著很高的計(jì)算吞吐量,從而給大規(guī)模的數(shù)據(jù)計(jì)算應(yīng)用提供了一種比CPU更加強(qiáng)大的計(jì)算能力。CUDA是一種由NVIDIA推出的并行計(jì)算架構(gòu),該架構(gòu)使GPU能夠解決復(fù)雜的計(jì)算問(wèn)題。它包含了CUDA指令集架構(gòu)以及GPU內(nèi)部的并行計(jì)算引擎[1]。隨著顯卡的發(fā)展,GPU越來(lái)越強(qiáng)大,在計(jì)算上已經(jīng)超越了通用的CPU。如此強(qiáng)大的芯片如果只是作為顯卡會(huì)造成計(jì)算能力的浪費(fèi),因此NVIDIA推出CUDA,讓顯卡可以用于圖像渲染以外的目的。CUDA的GPU編程語(yǔ)言基于標(biāo)準(zhǔn)的C

5、語(yǔ)言,通過(guò)在標(biāo)準(zhǔn)C語(yǔ)言的基礎(chǔ)上增加一小部分關(guān)鍵字,任何有C語(yǔ)言基礎(chǔ)的用戶都很容易地開(kāi)發(fā)CUDA的應(yīng)用程序。數(shù)以千計(jì)的軟件開(kāi)發(fā)人員正在使用免費(fèi)的CUDA軟件開(kāi)發(fā)工具來(lái)解決各種專業(yè)中的問(wèn)題[2]。這些解決方案涵蓋了石油天然氣勘探、產(chǎn)品設(shè)計(jì)、醫(yī)學(xué)成像以及科學(xué)研究等領(lǐng)域。2CUDA架構(gòu)CUDA程序架構(gòu)分為兩部分:主機(jī)和設(shè)備。一般而言,主機(jī)指的是CPU及其內(nèi)存,設(shè)備指的是GPU[1]。在CUDA程序架構(gòu)中,主程序由CPU來(lái)執(zhí)行,而當(dāng)遇到數(shù)據(jù)并行處理的部分,CUDA就會(huì)將程序編譯成GPU能執(zhí)行的程序,并傳送到GPU。這種函數(shù)在CUDA里叫做核函數(shù)。在GPU中要執(zhí)行的線

6、程,根據(jù)最有效的數(shù)據(jù)共享來(lái)創(chuàng)建線程塊,其類型不止一維。在同一個(gè)塊里的線程,使用同一個(gè)共享內(nèi)存。每個(gè)線程由線程ID標(biāo)識(shí)。這是線程塊中的線程號(hào)。為了幫助基于線程ID的復(fù)雜尋址,還可以將線程塊指定為任意大小的一維、二維或高維線程陣列,并使用多個(gè)索引分量來(lái)標(biāo)識(shí)每個(gè)線程[2]。線程塊的大小是也有限制的,所以不能把所有的線程都放到同一個(gè)塊里??梢杂猛瑯泳S度和大小的塊來(lái)組成一個(gè)網(wǎng)格做批處理。執(zhí)行內(nèi)核的線程被組織成線程塊。而線程塊又組成了線程格,如圖1。線程塊內(nèi)一起協(xié)作的線程通過(guò)一些快速的共享內(nèi)存有效地共享數(shù)據(jù)并同步執(zhí)行,以協(xié)調(diào)內(nèi)存訪問(wèn)。用戶可以在核函數(shù)中指定同步點(diǎn)。線程

7、塊中的線程在到達(dá)此同步點(diǎn)時(shí)掛起。圖1線程被組織為線程格與線程塊圖2SM單元的組成在GPU內(nèi)部,SM代表流處理器,即計(jì)算核心。每個(gè)SM中又包含8個(gè)標(biāo)量流處理器(SP)以及少量的其他計(jì)算單元[3],如圖2。實(shí)際上SP只是執(zhí)行單元,并不是完整的處理核心。處理核心必須包含取指、解碼、分發(fā)邏輯和執(zhí)行單元。隸屬同一SM的8個(gè)SP共用同一套取指和發(fā)射單元,也共用一塊共享存儲(chǔ)器。一個(gè)線程塊必須被分配到一個(gè)SM中,但是一個(gè)SM中同一時(shí)刻可以有多個(gè)活動(dòng)線程塊等待執(zhí)行。這可以更好地利用執(zhí)行單元的資源,當(dāng)一個(gè)線程塊進(jìn)行同步或者訪問(wèn)顯存等高延遲操作時(shí),另一個(gè)線程塊就可以占用GPU執(zhí)

8、行資源。每個(gè)線程有一個(gè)私有的本地存儲(chǔ)器,即每個(gè)標(biāo)量處理器私有的緩存

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫(huà)的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。