windows Visual Studio 上安裝 CUDA【轉載】

來源:互聯網
上載者:User

標籤:style   blog   http   color   使用   os   strong   io   

原文 : http://blog.csdn.net/augusdi/article/details/12527497 

前提安裝:

Visual Studio 2012

Visual Assist X

安裝步驟:

1. Nvidia顯卡驅動,裝275.33版,這是最新版本驅動,初次安裝為了少出錯,最好安裝比較新版本的驅動。

2. Cuda Toolkit 4.0安裝,CUDA 4.0的新特性可以參見其Release Notes,其中包括了本文將要介紹的Thrust庫。

3. GPU Computing SDK 4.0 安裝,預設安裝路徑可能是

C:\ProgramData\NVIDIA Corporation\NVIDIA GPU Computing SDK 4.0,記這個路徑為SDK_PATH.

4. Parallel Nsight 2.0 安裝,這個工具可以將GPU通用計算整合進Microsoft Visual Studio,能夠對使用CUDA C,OpenCL, DirectCompute, Direct3D, 和 OpenGL的應用程式進行調試和分析。

5.現在可以用VS開啟CUDA SDK的例子了,在這之前,兩個工具庫可以先產生一下。

a.使用VS2010開啟SDK_PATH \ c\common\cutil vs2010.sln, VS2010 選“Build|Batch Build…”,“Select All”,產生所有配置需要的lib.如果遇到“Can not open source file …”的錯誤,把檔案夾的唯讀屬性去掉。

目的:產生各配置需要的cutilxx[D].lib XX:32 /64 [D]debug模式  

lib存放的位置:SDK_PATH \ c\common\lib\(win32|X64)

b.同上方法,開啟SDK_PATH\share\ shrUtils_vs2010.sln 選“Build|Batch Build…

目的:產生各配置需要的shrUtilxx.lib XX:32 /64 [D]debug模式  

lib存放的位置:SDK_PATH\share\lib\(Win32|x64)

注:這個項目編譯時間會提示有兩個.cpp找不到,直接把他們從項目裡移去即可。因為同名的.h檔案裡已經有完整代碼了。 

c.測試例子:VS2010 開啟SDK例子:deviceQuery, matrixMul各種配置均可編譯執行成功, CUDA的基本配置就完了。

 

CUDA C/C++關鍵字和函數高亮顯示:

在上面HelloWorldCuda.cu檔案中發現CUDA C/C++的關鍵字__global__等沒有高亮顯示,而且還有下劃曲線。下面進行CUDA C/C++關鍵字和函數的文法高亮顯示,配置Visual AssistX 函數高亮,代碼提示等功能。

下面是關於代碼高亮的設定。共三個設定

1. .cu檔案中C/C++關鍵字高亮

這個設定是讓VS2010編輯.cu檔案時,把.cu檔案裡的C/C++文法高亮。

設定方法: 在VS2010的菜單 依次點擊:“Tools|Options…|Text Editor|File Extension”,在這個介面裡: “Editor”下拉框選“Microsoft Visual C++”,在“Extension”文字框輸入.cu 點擊“Add”按鈕 ,重複工作把.cuh 添加為vc++類型,點擊確定按鈕。 把全部.cu檔案關閉,再開啟,.cu檔案C++關鍵字就高亮了。如果不行就重啟VS2010。但是CUDA的關鍵字還是黑色的,下一步把CUDA關鍵自高亮顯示。

 

2. CUDA關鍵字高亮

為了讓CUDA的關鍵字,如__device__、dim3之類的文字高亮,需要如下步驟:

SDK_PATH\C\doc\syntax_highlighting\usertype.dat 複製到X:\Program Files (X86)\Microsoft Visual Studio 10.0\Common7\IDE\目錄下  

這裡 X:是安裝VS2010盤符,這是win7 64位下的路徑。

注意:win7 64系統不要複製到這個目錄裡,複製到這裡是不會CUDA關鍵字高亮的:

X:\Program Files \Microsoft Visual Studio 10.0\Common7\IDE\
(如果你的win7是32位的,可能正好是上面這個目錄,應該會高亮的,這是win7 64位和32位的差別)

再次強調:SDK_PATH要換成你安裝SDK的實際路徑,不要直接使用這個字串。

VS2010需要重啟,重啟後開啟.cu檔案,CUDA的關鍵字應該變成藍色了。

 

3. CUDA函數高亮,及CUDA函數輸入代碼提示
       實現這個功能就要使用VAssistX了。 首先安裝支援VS2010的Visual AssistX, 在CUDA 安裝前、後安裝都行。需要兩步實現需要的功能:

a)  讓Visual AssistX支援CUDA函數高亮和程式碼完成。在VS2010菜單裡依次點擊: “VAssistX->Visual assist X Options->Projects->C/C++Directories”在這個介面的 “Platform”下拉框選 Custom,在“Show Directories for..“下拉框選 Other include files, 然後在下面的輸入框裡,建立、添加三個路徑,點擊確定,三個路徑分別如下:

SDK_PATH的\c\common\inc
 SDK_PATH的\shared\inc
 X:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include

這裡SDK_PATH要用你安裝的SDK路徑代替,X:是你的CUDA toolkit安裝盤符。

       這樣分別在這三個目錄裡面的.h檔案定義的函數和類型VAssistX會幫我們在編輯檔案時候實現高亮和完成代碼。如果少包含一個路徑,這個目錄裡的.h定義的函數和類型就不會高亮和提示了。

b) 讓Visual AssistX支援.cu檔案,也就讓Visual AssistX幫我們實現.cu檔案高亮和程式碼完成功能,需要編輯註冊表。首先關閉VS2010,點擊開始菜單輸入regedit開啟註冊表,找到如下位置:HKEY_CURRENT_USER\Software\Whole Tomato\Visual Assist X\VANet11。在右邊找到ExtSource項目,滑鼠右鍵選修改,在原有文字後添加如下文字:.cu;.cuh; 確定後關閉註冊表,重新開啟vs2010,Visual AssistX開始支援.cu及.cuh檔案的文法高亮及程式碼完成。此時.cu檔案的CUDA函數是高亮的,使用函數名符號就會自動提示函數全稱,參數類型等資訊了。

 

經過上面的安裝,開發程式應該沒問題了,但會發現有如下的問題:

1. VS2010顯示.cu檔案時,有很多CUDA函數下有波浪線

2. 在.cu檔案裡使用VS2010的“Go to definition”功能查無法找到CUDA函數的定義。

這兩個問題的原因是VS2010不認識這些函數,沒有指定它們在那個標頭檔裡包含的。解決方案其實是一樣的,把CUDA tookit 和CUDA SDK的標頭檔路徑加到VS2010的VC++目錄裡面。

 

建立自己的CUDA項目

1. 建立一個Win32 console application 程式 HelloWorldCuda,選擇空項目,然後添加一個源檔案HelloWorldCuda.cpp, 改名字為HelloWorldCuda.cu。

2. 選擇Project | Build Customizations…菜單,在對話方塊中選擇CUDA 4.0,這會添加對CUDA C/C++檔案(*.cu)的支援

 

3. 選擇HelloWorldCuda.cu檔案,右擊選擇Property開啟屬性對話方塊,在General屬性頁面下,將Item Type改為”CUDA C/C++”

 

注意:CUDA C/C++已經在屬性頁面中出現了

4.   開啟“Linker|Input”屬性頁面,在“Additional Dependencies”中添加“cudart.lib;”

5. 向HelloWorldCuda.cu中添加一些代碼。…………

測試程式:

[cpp] view plaincopy 
  1. #include <stdio.h>  
  2. bool InitCUDA()  
  3. {  
  4.     int count;  
  5.   
  6.     cudaGetDeviceCount(&count);  
  7.   
  8.     if(count == 0)  
  9.     {  
  10.         fprintf(stderr, "There is no device.\n");  
  11.         return false;  
  12.     }  
  13.   
  14.     int i;  
  15.   
  16.     for(i = 0; i < count; i++)  
  17.     {  
  18.         cudaDeviceProp prop;  
  19.   
  20.         if(cudaGetDeviceProperties(&prop, i) == cudaSuccess)  
  21.         {  
  22.             if(prop.major >= 1)  
  23.             {  
  24.                 break;  
  25.   
  26.             }  
  27.         }  
  28.     }  
  29.   
  30.     if(i == count)  
  31.     {  
  32.         fprintf(stderr, "There is no device supporting CUDA 1.x.\n");  
  33.         return false;  
  34.     }  
  35.   
  36.     cudaSetDevice(i);  
  37.   
  38.     return true;  
  39. }  
  40.   
  41. int main()  
  42. {  
  43.     if(!InitCUDA())  
  44.     {  
  45.         return 0;  
  46.     }  
  47.   
  48.     printf("HelloWorld, CUDA has been initialized.\n");  
  49.   
  50.     return 0;  
  51. }   

用 Ctrl+F5 運行,通過nvcc編譯成功,輸出結果。
"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\bin\nvcc.exe" -gencode=arch=compute_10,code=\"sm_10,compute_10\" --use-local-env --cl-version 2010 -ccbin

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.