cuda4+vs2010安裝

已入手 acer 475g,gt 540M 2G,該好好配置下環境了,可是花了血本哦!

 

安裝環境:

Win7 64位系統,Geforce GT 540M 2G顯卡

安裝前提:

Visual Studio 2010

       Visual Assist X

安裝步驟:

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

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

3、CUDA Tools SDK 4.0 安裝,默認安裝路徑可能是

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

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

現在可以用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文件裏已經有完整代碼了。

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

創建自己的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++”

4、選擇HelloWorldCuda工程,右擊選擇Property打開屬性對話框,選擇“Linker|General” 屬性頁,在“Additional Libraries Directories”下添加“$(CUDA_PATH_V4_0)\lib\$(Platform);”

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

5、打開“Linker|Input”屬性頁,在“Additional Dependencies”中添加“cudart.lib;

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

測試程序:

#include< stdio.h>

bool InitCUDA()

{

    int count;

    cudaGetDeviceCount(&count);

    if(count == 0)

    {

        fprintf(stderr, "There is no device.\n");

        return false;

    }

    int i;

    for(i = 0; i < count; i++)

    {

        cudaDeviceProp prop;

        if(cudaGetDeviceProperties(&prop, i) == cudaSuccess)

        {

            if(prop.major >= 1)

            {

                break;

            }

        }

    }

    if(i == count)

    {

        fprintf(stderr, "There is no device supporting CUDA 1.x.\n");

        return false;

    }

    cudaSetDevice(i);

    return true;

}

int main()

{

    if(!InitCUDA())

    {

        return 0;

    }

    printf("HelloWorld, CUDA has been initialized.\n");

    return 0;

}

用 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

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\VANet10。在右邊找到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++目錄裏面。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章