蛋疼的GPU開發環境配置日記


    GPU是顯示卡的“心臟”,GPU是顯示卡的“大腦”,它決定了該顯卡的檔次和大部分性能,同時也是2D顯示卡和3D顯示卡的區別依據。2D顯示芯片在處理3D圖像和特效時主要依賴
CPU的處理能力,稱為“軟加速”。3D顯示芯片是將三維圖像和特效處理功能集中在顯示芯片內,也即所謂的“硬件加速”功能。
    GPU通用計算方面的標准目前有 OPEN CL、CUDA、ATI STREAM。其中,OpenCL(全稱Open Computing Language,開放運算語言)是第一個面向異構系統通用目的並行編程的開放式、
免費標准,也是一個統一的編程環境
    提高計算機性能一般有兩種思想,一種是提高GUP的時鍾頻率,雖然計算機的發展已經實現了這種飛速提高,但是硬件的發展都是會遇到頸瓶的約束,包括功耗發熱以及晶體管
的大小已經接近物理機械,除非出現新的物理技術,比如激光傳導等還處於幻想中的技術;另一種思想也就是現在提高計算機性能的主流思想——片上多核技術,用多個普通的核
進行多核計算。GPU就是多核中的一個重要成員。GPU一開始用於處理圖像,但是,應用的發展使得很多領域都對GPU有着廣泛的應用。CUDA架構專門為GPU計算設計了一種全新模塊,
其所有功能不僅使GPU能執行圖形計算,還能高效地執行通用計算。
 CUDA是由NVIDIA引入的一個通用目的並行計算架構,CUDA程序(內核)運行在GPU而不是CPU上,性能更好(數百個核心可以同時運行數千個計算線程),它帶有一個軟件環境,允許
開發人員使用C作為高級編程語言,這個計算技術可用於數學、科學、金融、建模、圖像處理等領域。

開發環境:
a 支持CUDA的圖形處理器,GeForce 8800 GTX以來的NVIDIA退出的每款GPU都能支持CUDA。
(需要G80以上核心的顯卡才能進行硬件設備編程,你的顯卡用軟件虛擬編程也可以,虛擬編程性能上有所不同,但是用來學習上足夠用了。)
b CUDA開發工具箱
c 標准c編譯器

///////////////////////////////////安裝配置, 摘自網絡///////////////////////////////////////////////
1,需要安裝的軟件:CUDA Toolkit4.0 + GPUComputing SDK + CUDA Wizard + +對應的顯卡驅動+ Visual Assist破解版 + VS2008
下載地址:http://dl.vmall.com/download/gpucomputingsdk_4.0.19_win_32.part1.rar?f=c0bx4c5qpo&i=287&h=1351819750&v=1278912e&u=dcd9bed2&ip=124.74.45.130&p=0&lpid=
2,先安裝顯卡,得確保顯卡支持CUDA加速。查詢是否支持可看此網站:沒有url權限
3,再安裝Toolkit4.0和SDK,最好選擇默認。在Win7環境下,Toolkit4.0安裝后文件路徑為:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0
SDK默認安裝文件路徑為:C:\ProgramData\NVIDIA Corporation\NVIDIA GPU Computing SDK 4.0,注意:ProgramData Win7為隱藏文件,
XP系統下默認安裝路徑為C:\Documents and Settings\All Users\Application Data\NVIDIACorporation\NVIDIA GPU Computing SDK 4.0
4,C:\ProgramData\NVIDIACorporation\NVIDIA GPU Computing SDK 4.0\C\src該目錄下,為SDK所帶的demo程序,有VS2005、VS2008和VS2010三個版本。
5,安裝CUDAWizard,下載地址:
安裝后,重新打開VS2008,此時【新建項目類型】多了【CUDA】一項,此時可以新建CUDA C程序了。但此時肯定編譯通不過,缺少必要的環境變量設置。
6,Ctrl+R,輸入cmd,進入命令提示窗口
輸入set cuda,看是否出現以CUDA開頭的環境變量,如果沒有,說明SDK安裝不正確,重新安裝之后,在環境變量中設置【用戶變量】中的【path】,添加上
C:\Program Data\NVIDIA Corporation\NVIDIA GPU Computing SDK 4.0\C\bin\win32\Debug和
C:\Program Data\NVIDIA Corporation\NVIDIA GPU Computing SDK 4.0\C\bin\win32\Release
7,打開VS2008,【工具】-【選項】-【項目和解決方案】-【VC++目錄】-【包含文件】添加上C:\ProgramFiles\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include、和
C:\ProgramData\NVIDIACorporation\NVIDIA GPU Computing SDK 4.0\C\common\inc
【庫文件】添加上C:\ProgramFiles\NVIDIA GPU Computing Toolkit\CUDA\v4.0\lib和C:\ProgramData\NVIDIACorporation\NVIDIA GPU Computing SDK 4.0\C\common\lib
【源文件】添加上C:\ProgramData\NVIDIACorporation\NVIDIA GPU Computing SDK 4.0\C\common\src
8,【工具】-【選項】-【項目和解決方案】-【VC++項目設置】-【C/C++文件擴展名】添加上*.cu【包括的擴展名】添加上.cuh
9,產生一些必須的庫文件
打開文件夾C:\ProgramData\NVIDIACorporation\NVIDIA GPU Computing SDK 4.0\C\common
用VS打開Release_vs2008.sln(包含有cutil_vs2008和rendercheckgl_vs2008項目),選擇【生成】-【批生成】,選擇【Debug|Win32】和【Release|Win32】,點擊【生成】,即可生成一些必須的庫文件。
還有C:\ProgramData\NVIDIA Corporation\NVIDIA GPU Computing SDK 4.0\shared下的shrUtils_vs2008.sln,選擇批生成,選擇win32下的Debug和Release。
10,高亮顯示:
(1)如果沒有 usertype.dat文件在目錄 "Microsoft Visual Studio 8\Common7\IDE" 下,請復制目錄C:\ProgramData\NVIDIA Corporation\NVIDIA GPU Computing SDK 4.0\C\doc\syntax_highlighting\visual_studio_8下的usertype.dat到上述目錄, 如果有了就將這個文件追加到"Microsoft Visual Studio 8\Common7\IDE\usertype.dat"之后。
(2)啟動Visual Studio 8. 選擇菜單 "Tools->Options...".  然后打開 "Text Editor" in the tree view on the left, and click on "File Extension".  Type cu in the "Extension" box, set the editor to "Microsoft Visual C++" and click "Add".  Click "OK" on the dialog box. 
(3)Restart Visual Studio and your CUDA code should now have syntax highlighting.
注意:CUDA共有兩個環境,一個為CUDADriver API,另一個CUDA Runtime API。運行時API是在驅動API基礎上進一步抽象的結果,使用起來更加簡潔;驅動API接近底層硬件,較為復雜,但能實現運行時API不能實現的功能。
一般我們寫程序都是以Runtime API來寫,它的所有函數前綴都為cuda;Driver API的所有函數前綴都為cu,它們的函數基本上都一一對應。
現在所研究的cudaEncode是以Driver API來寫的,有待進一步改進為Runtime API形式。
11,安裝VisualAssist。之后,配置VA,使其對CUDA也支持。
Ctrl+R,輸入regedit,進入注冊表編輯器,之后進入注冊表編輯:HKEY_CURRENT_USER\Software\Whole Tomato\Visual Assist X\VANet9\找到右邊的ExtSource項,將其值添加.cu;.cuh;之后關閉。
12 學習資料:
C:\ProgramData\NVIDIA Corporation\NVIDIAGPU Computing SDK 4.0\C\doc文件夾下的
CUDA_C_Best_Practices_Guide.pdf
CUDA_C_Getting_Started_Windows.pdf
CUDA_C_Programming_Guide.pdf
書籍有:GPU高性能編碼CUDA實戰(CUDA By Example)
GPU高性能運算之CUDA
///////////////////////////////////安裝配置///////////////////////////////////////////////

注意:
第一,下載的安裝包要對應自己的操作系統,是windows還是linux,是64x還是32x。
第二,英偉達給出的安裝包目前已經到達5.X系列版本,而且官網中只能下到最新版本的,這個版本的最大優點就是講tool和sdk和驅動集成在一個安裝包中,大概1G。
但是,如果你的電腦不是NV8以上的顯卡,那么,無法把這套環境打通。查質料了解,只有2.0包含之前的版本是可以模擬GPU的。
第三,即使你在不符合開發包對應的顯卡電腦中編譯通過了,調用查GPU的函數,它會返回給你0個。
第四,用2.0開發包,模擬的GPU並行化不是真正意義上的並行化,它只是用多線程在cpu上模擬GPU,並不能看到效率的提高。

總之,個人認為,GPU的環境有那么一點坑爹!安裝個一天兩天才成功是很正常的事情,因為我們都是小鳥。
但是等我們安裝完成后,都會看到自己的helloworld程序的!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM