CUDA环境搭建

vs2010,MSBuildC++编译器无缝整合.无论使用vs2010生成的代码,还是转换vs2008或者是更低版本vs编译的C++代码.都会在工程编译后,都会提示一条错误:warning MSB8012

 

So it is "Closed as Not Reproducible". Absurd. It is easily reproduced and not difficult to work around.

 

See the response by Li Shao at by http://social.msdn.microsoft.com/Forums/en/vcgeneral/thread/beb1c32f-3893-4061-81a7-4aed4032a367

He explains exactly what causes the "warning".

 

Short version:

In project properties:

    1) set Configuration Properties | Linker | General | Output file to$(OutDir)$(TargetName)$(TargetExt)

    2) set Configuration Properties | General | Output Directory to "desired directory path"

    3) set Configuration Properties | General | Target Name to "desired name for output file"

    4) set Configuration Properties | General | Target Extension to "desired output file extention (include dot)"

 

Replace the quoted items with the appropriate values.

 

 

 

安装步骤:

 

1. CUDAToolkit4.1下载地址 在该地址下一次下载CUDA ToolkitDeveloperDriversGPU Computing SDK后,进行安装。

 

2.首先安装  Developer Drivers,装ver. 286.16版,这是最新版本驱动,初次安装为了少出错,最好安装比较新版本的驱动。

 

3.其次安装CUDA Toolkit4.1CUDA 4.1的新特性可以参见其Release Notes

 

4.最后安装GPU Computing SDK,默认安装路径可能是

 

C:\ProgramData\NVIDIACorporation\NVIDIA GPU Computing SDK 4.0,记这个路径为SDK_PATH。建议不要按默认路径安装,否则文件不好查找。

 

 

 

现在可以用VS打开CUDA SDK的例子了,在这之前,两个工具库可以先生成一下。

 

a.  使用VS2010打开SDK_PATH \ c\common\cutil vs2010.sln, VS2010选“Build|Batch Build…”,“SelectAll”,生成所有配置需要的lib.如果遇到“Cannot 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.libXX:32 /64 [D]debug模式  

 

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

 

:这个项目编译时会提示有两个.cpp找不到,直接把他们从项目里移去即可。因为同名的.h文件里已经有完整代码了。

 

 

 

测试例子:VS2010 打开SDK例子:deviceQuery, matrixMul各种配置均可编译执行成功, CUDA的基本配置就完了。

 

 

 

创建自己的CUDA项目:

 

1.  创建一个Win32 console application 程序 cuda1,选择空项目,然后添加一个源文件cuda1.cpp, 改名字为cuda1.cu

 

2. 在项目名称上右键选择“生成自定义…”,在对话框中选择CUDA 4.1,这会添加对CUDA C/C++文件(*.cu)的支持。

 

 

 

3.  选择cuda1.cu文件,右击选择“属性”打开属性对话框,在"常规"属性页下,将“项类型”改为”CUDA C/C++”。

 

 

 

4.  选择菜单项“项目”打开“属性”对话框,选择“连接器|常规” 属性页,在“附加库目录”下添加“$(CUDA_PATH_V4_1)\lib\$(Platform);

 

 

 

5.  打开“连接器|输入”属性页,在“附加依赖项”中添加“cudart.lib;

 

 

 

6. cuda.cu中添加一些代码。

 

#include <stdio.h>

#include <cuda_runtime.h>

 

 bool InitCUDA()

 

{

    int count;

    cudaGetDeviceCount(&count);

 

    if(count == 0)

 

    {

 

        fprintf(stderr, "There is nodevice.\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 nodevice supporting CUDA 1.x.\n");

 

        return false;

 

    }

 

    cudaSetDevice(i);

 

    return true;

 

}

 

int main()

 

{

 

    if(!InitCUDA())

 

    {

 

        return 0;

 

    }

 

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

 

    return 0;

 

}

 

用 Ctrl+F5 运行,通过nvcc编译成功,输出结果。

 

 

 

CUDA C/C++关键字和函数高亮显示:

 

在上面cuda.cu文件中发现CUDA C/C++的关键字__global__等没有高亮显示。下面进行CUDA C/C++关键字和函数的语法高亮显示,配置Visual AssistX 函数高亮,代码提示等功能。

 

下面是关于代码高亮的设置。共三个设置:

 

1.   .cu文件中C/C++关键字高亮

 

这个设置是让VS2010编辑.cu文件时,把.cu文件里的C/C++语法高亮。

 

设置方法VS2010的菜单 依次点击:“工具|选项|文本编辑器|文件扩展名”,在这个界面里: “编辑器”下拉框选“MicrosoftVisual C++”,在“扩展名”文本框输入.cu 点击“添加”按钮,重复工作把.cuh 添加为vc++类型,点击确定按钮。 把全部.cu文件关闭,再打开,.cu文件C++关键字就高亮了。如果不行就重启VS2010。但是CUDA的关键字还是黑色的,下一步把CUDA关键自高亮显示。

 

 

 

2.   CUDA关键字高亮

 

为了让CUDA的关键字,如__device__dim3之类的文字高亮,需要如下步骤:

 

SDK_PATHD\C\doc\syntax_highlighting\visual_studio_8usertype.dat复制到X:Program Files\Microsoft Visual Studio 10.0\Common7\IDE目录下  

 

这里 X:是安装VS2010盘符。

 

 

 

再次强调:SDK_PATH要换成你安装SDK的实际路径,不要直接使用这个字符串。

 

VS2010需要重启,重启后打开.cu文件,CUDA的关键字应该变成蓝色了。

 

 

 

3. CUDA 函数高亮,及CUDA函数输入代码提示

 实现这个功能就要使用VAssistX了。 首先安装支持VS2010Visual AssistX, CUDA 安装前、后安装都行。需要两步实现需要的功能:

 

a) Visual AssistX支持CUDA函数高亮和代码完成。在VS2010菜单里依次点击VAssistX->Visualassist XOptions->Projects->C/C++Directories”在这个界面的“Platform”下拉框选 Custom,在“ShowDirectories for..“下拉框选 Other include files, 然后在下面的输入框里,新建、添加三个路径,点击确定,三个路径分别如下:

 

       SDK_PATH\c\common\inc

       SDK_PATH\shared\inc

       X:\ProgramFiles\NVIDIA GPU ComputingToolkit\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\WholeTomato\VisualAssist X\VANet10。在右边找到ExtSource项目,鼠标右键选修改,在原有文字后添加如下文字:.cu;.cuh; 确定后

 关闭注册表,重新打开vs2010VisualAssistX开始支持.cu.cuh文件的语法高亮及代码完成。此时.cu文件的CUDA函数是高亮的,使用函数名符号就会自动提示函数全称,参数类型等信息了。

 

 

 

:

 

经过上面的安装,开发程序应该没问题了,但会发现有如下的问题:

 

1. VS2010显示.cu文件时,有很多CUDA函数下有波浪线

 

2. .cu文件里使用VS2010的“Go to definition”功能查无法找到CUDA函数的定义。

 

这两个问题的原因是VS2010不认识这些函数,没有指定它们在那个头文件里包含的。解决方法其实是一样的,把CUDAtookit CUDA SDK的头文件路径加到VS2010VC++目录里面。也可以在.cu文件中加入相应头文件,本例即这样解决。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值