VS2010和CUDA4.1的配置

本文详细介绍了如何在Windows7 64位系统上配置CUDA 4.1环境,并通过Visual Studio 2010进行CUDA编程。文章包括安装CUDA Toolkit与SDK、设置VS2010环境、实现简单的CUDA程序等步骤。


最近开始用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;
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值