• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于GPU的CUDA應(yīng)用開(kāi)發(fā)環(huán)境構(gòu)架

      2013-09-12 01:49:48陳曉翔林嘉宇
      微處理機(jī) 2013年1期
      關(guān)鍵詞:驅(qū)動(dòng)程序處理器編程

      鄧 力,陳曉翔,林嘉宇

      (國(guó)防科學(xué)技術(shù)大學(xué)電子科學(xué)與工程學(xué)院,長(zhǎng)沙 410073)

      1 引言

      從1999年NVIDIA公司最早提出圖形處理單元GPU到現(xiàn)在,GPU的應(yīng)用已經(jīng)不再局限于3D圖形處理了,并已經(jīng)演變成為了一個(gè)具有強(qiáng)大浮點(diǎn)數(shù)編程和計(jì)算能力的處理器,以滿足人們進(jìn)行大規(guī)??茖W(xué)計(jì)算的要求。事實(shí)也證明,GPU在浮點(diǎn)運(yùn)算、并行計(jì)算等計(jì)算方面,可以提供數(shù)十倍乃至于上百倍于CPU的性能。因此,選擇具有巨大市場(chǎng)潛力并為開(kāi)發(fā)者提供開(kāi)源應(yīng)用開(kāi)發(fā)環(huán)境的CUDA作為開(kāi)發(fā)平臺(tái),并對(duì)其環(huán)境平臺(tái)的搭建與應(yīng)用進(jìn)行介紹。

      2 CUDA+VS2008應(yīng)用開(kāi)發(fā)環(huán)境架構(gòu)

      CUDA是由硬件和軟件架構(gòu)共同組成的,這個(gè)架構(gòu)可以讓 GPU 執(zhí)行由 C、C++、Fortran、OpenCL、DirectCompute以及其他語(yǔ)言所編寫的程序。在PC上其應(yīng)用開(kāi)發(fā)平臺(tái)的搭建,總體上分為驅(qū)動(dòng)程序、編譯器和編程環(huán)境的安裝三個(gè)部分。以操作系統(tǒng)Win7(64位)家庭普通版Service Pack 1的筆記本作為基本平臺(tái),介紹CUDA4.1+VS2008開(kāi)發(fā)環(huán)境搭建的步驟及相關(guān)事項(xiàng)。

      2.1 CUDA 平臺(tái)搭建

      從NVIDIA官方網(wǎng)站下載以下程序:

      1)devdriver_4.1_winvista - win7_64_286.16_notebook.exe

      2)cudatoolkit_4.1.28_win_64.msi(CUDA 平臺(tái):版本為4.1.28,操作系統(tǒng)為 windows64位)

      3)gpucomputingsdk_4.1.28_win_64.exe(CUDA的軟件開(kāi)發(fā)工具包:版本為4.1.28,操作系統(tǒng)為windows64位)

      2.1.1 devdriver安裝

      由于使用的顯卡是NVIDIA GeForce GT 540M,因此需要首先安裝驅(qū)動(dòng)程序包,即上面提到的devdriver_4.1_winvista - win7_64_286.16_notebook.exe(驅(qū)動(dòng)程序:版本為4.1,操作系統(tǒng)為winvistawin7-64位,機(jī)型為筆記本),注意在從NVIDIA官方網(wǎng)站下載時(shí)要選擇與開(kāi)發(fā)應(yīng)用的PC平臺(tái)相對(duì)應(yīng)的版本。

      2.1.2 cudatoolkit安裝

      接著,安裝 cudatoolkit_4.1.28_win_64.msi(CUDA 平臺(tái):版本為 4.1.28,操作系統(tǒng)為 windows64位),注意下載時(shí)選擇對(duì)應(yīng)的版本。

      devdriver和cudatoolkit程序最好都執(zhí)行默認(rèn)安裝。

      2.1.3 gpucomputingsdk 安裝

      最后,安裝 gpucomputingsdk_4.1.28_win_64.exe(CUDA 的軟件開(kāi)發(fā)工具包:版本為4.1.28,操作系統(tǒng)為windows64位),注意下載時(shí)選擇對(duì)應(yīng)的版本。

      建議按照缺省路徑安裝,但若覺(jué)得查找路徑麻煩,也可自己指定安裝目錄。

      完成上述3步后,其cudatoolkit和 gpucomputingsdk默認(rèn)路徑分別為:

      1)C:Program FilesNVIDIA GPU Computing Toolkit

      2)C:ProgramDataNVIDIA CorporationNVIDIA GPU Computing SDK 4.1

      下面用SDK_PATH代表C:ProgramDataNVIDIA CorporationNVIDIA GPU Computing SDK 4.1。

      2.1.4 安裝檢查

      在win7的環(huán)境變量中,檢查相關(guān)參數(shù)是否添加到系統(tǒng)變量里,如表1所示,若沒(méi)有則需自行添加。

      表1 環(huán)境變量

      以上步驟完成了對(duì)CUDA應(yīng)用平臺(tái)的安裝。

      2.2 VS2008 平臺(tái)搭建

      目前,支持 CUDA的 IDE有 VS2005、VS2008、VS2010等,以 Microsoft Visual Studio Team System 2008 Architecture Edition為例,安裝完成后按下面步驟進(jìn)行配置和測(cè)試。

      為運(yùn)行g(shù)pucomputingsdk里的例程,首先得用VS2008生成兩個(gè)工具庫(kù)文件:

      1)使用VS2008打開(kāi)SDK_PATHCcommoncutil_vs2008.sln,選“生成→批生成→全選→生成”。目的:為生成各配置需要的 cutil32[D].lib和 cutil64[D].lib,lib存放的位置:SDK_PATHccommonlib(win32|X64)。

      2)使用 VS2008打開(kāi) SDK_PATHsharedshr Utils_vs2008.sln,選“生成→批生成→全選→生成”。目的:為生成各配置需要的 shrUtils32D.lib和 shr Utils64D.lib,lib 存放的位置:SDK_PATH\sharedlib(win32|X64)。

      注意:這個(gè)項(xiàng)目編譯時(shí)有可能會(huì)提示有兩個(gè).cpp找不到,直接把他們從項(xiàng)目里移去即可。因?yàn)橥?h文件里已經(jīng)有完整代碼了。

      在VS2008中,選“工具→項(xiàng)目和解決方案→VC++目錄”,在win32|X64的庫(kù)文件中添加“C:Program FilesNVIDIA GPU Computing ToolkitCUDAv4.1lib”、“SDK_PATHCcommonlib”兩個(gè)路徑;在win32|X64的引用文件和包含文件中添加“C:Program FilesNVIDIA GPU Computing ToolkitCUDAv4.1include”、“SDK_PATHCcommoninc”、“SDK_PATHsharedinc”三個(gè)路徑。目的:使VS2008能找到相關(guān)頭文件和庫(kù)文件。

      然后,選“工具→項(xiàng)目和解決方案→VC++目錄項(xiàng)目設(shè)置”,將*.cu;*.cuh添加到C/C++文件擴(kuò)展名中。目的:使VS2008能執(zhí)行上述類型文件。

      最后,選“工具→選項(xiàng)→文本編輯器→文件擴(kuò)展名”,將.cu和.cuh添加到 Microsoft Visual C++編輯器里。目的:使VS2008識(shí)別上述類型文件中C/C++語(yǔ)法。

      使用VS2008打開(kāi)SDK_PATHCsrcandwidthTestandwidthTest_vs2008.sln,按照“編譯”→“生成bandwidthTes”→“調(diào)試”→“啟動(dòng)”,就會(huì)出現(xiàn)其結(jié)果。

      3 CUDA調(diào)用GPU的性能測(cè)試

      用VS2008創(chuàng)建一個(gè)空白的win32控制程序,在該項(xiàng)目里添加.cu文件,并編寫了兩個(gè)程序,一個(gè)直接用CPU計(jì)算1-300000的整數(shù)平方和并循環(huán)100次,另一個(gè)調(diào)用GPU計(jì)算1-300000的整數(shù)平方和并循環(huán)100次,并通過(guò) QueryPerformanceFrequency函數(shù)進(jìn)行了時(shí)間統(tǒng)計(jì),如表2所示。

      表2 環(huán)境變量

      從結(jié)果可以看出GPU運(yùn)算花費(fèi)的時(shí)間幾乎可以不計(jì)(約為0.02ms);CPU運(yùn)算花費(fèi)的時(shí)間(約為63ms)是GPU運(yùn)算花費(fèi)時(shí)間的3150倍;在初始化設(shè)備、開(kāi)辟空間和向GPU傳入數(shù)據(jù)上花費(fèi)的時(shí)間(約為(522+1882)=2404ms)是CPU運(yùn)算花費(fèi)時(shí)間的38倍。上述測(cè)試數(shù)據(jù)表明GPU的科學(xué)計(jì)算能力明顯強(qiáng)于CPU,但是GPU與CPU進(jìn)行數(shù)據(jù)通信是GPU運(yùn)算的一個(gè)“瓶頸”。因此,只有對(duì)于可以進(jìn)行大規(guī)模數(shù)據(jù)并行計(jì)算的程序,即當(dāng)進(jìn)行并行計(jì)算所節(jié)約的時(shí)間大大超過(guò)GPU與CPU相互調(diào)用時(shí)所浪費(fèi)的時(shí)間時(shí),GPU才能突顯出其強(qiáng)大的科學(xué)計(jì)算優(yōu)勢(shì)。

      4 結(jié) 束 語(yǔ)

      多核CPU和多核GPU的出現(xiàn)意味著并行系統(tǒng)已成為主流處理器芯片。此外,根據(jù)摩爾定律,其并行性將不斷擴(kuò)展。這就需要開(kāi)發(fā)出可透明地?cái)U(kuò)展并行性的應(yīng)用軟件,以便利用日益增加的處理器內(nèi)核數(shù)量。這種情況就像3D圖形應(yīng)用程序可通過(guò)透明地?cái)U(kuò)展其并行性的方式,以支持配備各種數(shù)量?jī)?nèi)核的多核GPU。CUDA正是基于應(yīng)對(duì)這種挑戰(zhàn),而提供的一種并行編程模型和軟件環(huán)境。同時(shí),保證了熟悉C語(yǔ)言等標(biāo)準(zhǔn)編程語(yǔ)言的程序員能夠快速掌握并使用它。隨著該開(kāi)發(fā)環(huán)境構(gòu)架的不斷發(fā)展與成熟,開(kāi)發(fā)者將能夠更加自由地發(fā)揮其靈感與創(chuàng)意,使GPU給人們的工作、教育、休閑、娛樂(lè)帶來(lái)豐富多彩的應(yīng)用。

      [1]Jason Sanders,edward Kandrot.CUDA BY EXAMPLE[M].Addison - Wesley Professional,2011.

      [2]科克,胡文美.大規(guī)模并行處理器編程實(shí)戰(zhàn)[M].北京:清華大學(xué)出版社,2010.

      [3]NVIDIA CUDA C Programming Guide(Version3.1.1)[EB/OL].NVIDIA Corporation,2010.

      [4]NVIDIA CUDA C Programming Best Practices Guide(Version3.1)[EB/OL].NVIDIA Corporation,2010.

      [5]張舒,褚艷利,趙開(kāi)勇,張玉勃.GPU高性能運(yùn)算之CUDA[M].北京:中國(guó)水利水電出版社,2009.

      [6]李波,趙華成,張敏芳.CUDA高性能計(jì)算并行編程[J].程序員,2009,25(9):55-64.

      猜你喜歡
      驅(qū)動(dòng)程序處理器編程
      我家有只編程貓
      我家有只編程貓
      我家有只編程貓
      我家有只編程貓
      Imagination的ClearCallTM VoIP應(yīng)用現(xiàn)可支持Cavium的OCTEON? Ⅲ多核處理器
      ADI推出新一代SigmaDSP處理器
      汽車零部件(2014年1期)2014-09-21 11:41:11
      呼嚕處理器
      驅(qū)動(dòng)程序更新與推薦
      驅(qū)動(dòng)程序更新與推薦
      驅(qū)動(dòng)程序更新與推薦
      同德县| 松潘县| 大洼县| 定边县| 屏南县| 图们市| 茌平县| 天峻县| 句容市| 康定县| 南城县| 绥江县| 石屏县| 伽师县| 深泽县| 舟曲县| 张掖市| 田林县| 鄂州市| 东乡县| 久治县| 天台县| 沽源县| 临夏市| 武鸣县| 岱山县| 体育| 万山特区| 渑池县| 客服| 洞口县| 舟山市| 荆门市| 连平县| 奎屯市| 江西省| 吉安市| 大兴区| 青州市| 黄浦区| 大荔县|