VS2010和CUDA4.1的配置

来源:互联网 发布:云计算技术及应用专业 编辑:程序博客网 时间:2024/05/21 03:18


最近开始用CUDA,下的是4.0版本的,配置时参考了之前几篇
文章

http://blog.csdn.net/mmjwung/article/details/6833272,http://blog.csdn.net/bendanban/article/details/6435314,http://hpcbbs.it168.com/thread-7057-1-1.html,

结合自己的情况,总结如下


配置环境:

Windows 7 (64位) +  VS2010 + CUDA4.1


配置步骤:

1.安装cudatoolkit_4.1.28_win_64和cudasdk_4.1.28_win_64。

为了叙述方便,cudatoolkit的路径用CUDA_PATH表示,cudasdk的路径用CUDA_SDK_PATH表示。

2.为了之后的编程方便些,可以选择安装Visual Assist

3.也有推荐使用Parallel Nsight的,下载前需要注册,本文没有测试。这个工具可以将GPU通用计算集成进Microsoft Visual Studio,能够对使用CUDA C,OpenCL, DirectCompute, Direct3D, 和 OpenGL的应用程序进行调试和分析。



4.设置VS2010环境

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

4.2选择项目,右键-生产自定义。勾选CUDA4.1

       



4.3  选择项目,右键-属性-VC++目录”

1)在“包含文件”中添加$CUDA_PATH\CUDA\v4.1\include


2)在“库文件”中添加

$CUDA_PATH\CUDA\v4.1\lib\x64 "    注意:vs平台若用64位选择X64

$CUDA_PATH\CUDA\v4.1\lib\win32 "    注意:vs平台若用32位选择win32




3)在“源文件”中添加$CUDA_PATH\CUDA\v5.0\src "


4.4 选择项目,右键-属性-连接器-输入 属性页,在“附加依赖项”中添加“cudart.lib”,

如果之后需要用到别的库请添加其他的lib。



4.5  菜单栏,工具-选项-文本编辑器-文件扩展名”,添加扩展名“cu”,编辑器选择“Microsoft Visual C++”




5设置语法高亮:

CUDA_SDK_PATH\C\doc\syntax_highlighting\visual_studio_8里面的usertype.dat文件复制到 Microsoft Visual Studio 9.0\Common7\IDE目录下面。


#include <stdio.h>#include <cuda_runtime_api.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 1;    }    printf("HelloWorld, CUDA has been initialized.\n");float *device_f = NULL;    cudaMalloc((void**)&device_f, 10*sizeof(float));    cudaFree(device_f); printf("CUDA test is finished.\n");    return 0;}



原创粉丝点击