CUDA與MFC聯(lián)合編程推薦工程結(jié)構(gòu)

CUDA與MFC聯(lián)合編程推薦工程結(jié)構(gòu)

ID:38280721

大小:437.02 KB

頁數(shù):6頁

時(shí)間:2019-05-27

CUDA與MFC聯(lián)合編程推薦工程結(jié)構(gòu)_第1頁
CUDA與MFC聯(lián)合編程推薦工程結(jié)構(gòu)_第2頁
CUDA與MFC聯(lián)合編程推薦工程結(jié)構(gòu)_第3頁
CUDA與MFC聯(lián)合編程推薦工程結(jié)構(gòu)_第4頁
CUDA與MFC聯(lián)合編程推薦工程結(jié)構(gòu)_第5頁
資源描述:

《CUDA與MFC聯(lián)合編程推薦工程結(jié)構(gòu)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。

1、CUDA與MFC聯(lián)合編程推薦工程結(jié)構(gòu)sume@ustc.eduCUDA入門者提示及基本知識(shí):1.常見的電腦都有圖形圖像顯示功能,顯卡就是負(fù)責(zé)這個(gè)工作的。顯卡可以是獨(dú)立的,也可以集成在主板上,還可以集成在CPU中,我們要使用CUDA技術(shù),一般選擇購買主流獨(dú)立顯卡即可。GPU是顯卡的核心,可以理解為顯卡上的CPU,它的主要工作就是計(jì)算屏幕上要顯示什么、怎么顯示,常見的電腦屏幕的分辨率有800×600、1024×768、1366×768、1920×1080等等,而且各個(gè)像素之間并沒有直接關(guān)系或者關(guān)系很弱,因此這個(gè)計(jì)算工作天生就是并行的;

2、2.CUDA是nVidia公司的技術(shù),AMDAPP(曾用名ATIStream,后來ATI被AMD收購了)是AMD公司的技術(shù),他們都是GPGPU(前兩個(gè)GP意思是GeneralPurpose)技術(shù)的一種,目的是利用顯卡強(qiáng)大的并行計(jì)算能力加速運(yùn)算,讓顯卡不只局限于打游戲和繪圖。在金融、地質(zhì)、航天、軍事、生物等計(jì)算密集的行業(yè),人們已經(jīng)開始廣泛研究基于GPGPU的加速計(jì)算技術(shù);3.想要使用CUDA,首先你需要一張支持CUDA的顯卡,支持CUDA技術(shù)的顯卡名單及其對(duì)應(yīng)的計(jì)算能力可以在nVidia公司網(wǎng)站上找到;4.因?yàn)楸疚闹v的是MFC編程,

3、而且作者只會(huì)VC(這才是主要原因好吧),因此假設(shè)讀者已經(jīng)安裝了VisualStudio2008并打上了最新的servicepack補(bǔ)??;5.要建立CUDA編程環(huán)境,你還需要在nVidia網(wǎng)站下載安裝以下三者:a)你的顯卡所對(duì)應(yīng)的最新驅(qū)動(dòng);b)CUDAToolkit;c)NVIDIAGPUComputingSDK(目前是4.2).好的,現(xiàn)在假設(shè)讀者具備MFC程序調(diào)試經(jīng)驗(yàn),那么我們就開始吧。以下是CUDA和MFC聯(lián)合編程的推薦結(jié)構(gòu):MFCCUDAGlobalHostFunctionsFunctions在Device上運(yùn)行MFCKern

4、elProcessFunctions解釋:1.對(duì)CUDA程序來說,顯卡叫做device,安裝了顯卡的電腦叫做host;如果一臺(tái)電腦上安裝了多個(gè)顯卡呢?放心,可以處理的,但是本文暫時(shí)不考慮這種情況;2.CUDA程序是C語言的一種變形,都以.cu為后綴,CUDA程序中的函數(shù)有的運(yùn)行在CPU上,負(fù)責(zé)并行計(jì)算的初始化和計(jì)算結(jié)果的回收,有的運(yùn)行在GPU上(稱為kernel程序),負(fù)責(zé)執(zhí)行真正的并行計(jì)算;3.建議專門用一個(gè)globalfunction和CUDA程序打交道,便于代碼的閱讀、理解和維護(hù);4.MFC程序的其他部分調(diào)用這個(gè)global

5、function,其他就和一般的編程沒有區(qū)別了。在本文附帶的例程中,對(duì)應(yīng)的工程文件如圖所示:MFCCUDAGlobalapi.CppFirst.cuGlobalapi.hMFCFirst_kernel.cu工程SUMECOLLECTION其實(shí)CUDA程序中的hostfunction和kernelfunction也可以放在同一個(gè).cu文件,但是此處同樣為了便于閱讀、理解和維護(hù),把它們分別放在兩個(gè)文件中。示例工程的創(chuàng)建過程如下:1.創(chuàng)建globalapi.cpp/.h及全局函數(shù);2.在SolutionExplorer中創(chuàng)建一個(gè)filt

6、er(相當(dāng)于一個(gè)目錄,便于管理),命名為CUDA,在里面創(chuàng)建兩個(gè).cu文件;3.分別在兩個(gè)cu文件中寫上函數(shù),其中first.cu中就是本例程CUDA程序的host部分,first_kernel.cu中就是本例程CUDA程序的kernel部分。本例程重在結(jié)構(gòu)的解釋,具體的編程方法此處就不講了,更多的內(nèi)容請好好看書以及閱讀SDK中的文檔吧;4.最重要的地方來了,修改first.cu的編譯設(shè)置;第一步,打開該文件的屬性;SUMECOLLECTION第二步,修改常規(guī)設(shè)置;第三步,修改自定義生成步驟;在”CommandLine”中拷貝進(jìn)去

7、以下內(nèi)容:"$(CUDA_BIN_PATH)vcc.exe"-ccbin"$(VCInstallDir)bin"–c-D_DEBUG-DWIN32-D_CONSOLE-D_MBCS-Xcompiler/EHsc,/W3,/nologo,/Wp64,/Od,/Zi,/RTC1,/MTd-I"$(CUDA_INC_PATH)"-I./-I../../common/inc-o$(ConfigurationName)first.objfirst.cu并且填寫”O(jiān)utputs”和”AdditionalDependencies”:5.修

8、改工程的屬性;第一步,修改連接器的常規(guī)屬性為圖中所示:第二部,修改鏈接器的輸入為圖中所示:第三步,修改工程的常規(guī)屬性中為圖中所示:SUMECOLLECTION好了,這個(gè)例程就可以編譯運(yùn)行了!sume@ustc.edu2012/11/27參考文獻(xiàn):曹

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

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

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