WIN7 x64+CUDA8.0+VS2010编译环境搭建

CUDA下载和安装

(安装CUDA之前,应确保电脑具有VS2005以上的版本)CUDA 8.0的下载地址http://docs.nvidia.com/ -CUDA toolkit Documentation-Installation Guides-Installation Guide Windows 检测电脑是否具备CUDA的操作系统以及硬件条件

若具备,进入https://developer.nvidia.com/cuda-downloads 选择电脑操作系统 构架 版本以及安装类型,下载CUDA

WIN7 x64+CUDA8.0+VS2010编译环境搭建_第1张图片


下载成功后,在相应路径中出现如下软件开发包程序,点击安装,根据相应的提示安装(我都选择的默认)

安装完成后会在菜单所有程序中有以下的文件夹,其中Samples是有Nvidia专业开发人员以及顶尖开发者编写的,以后学习过程中可以作为很好的参考。

WIN7 x64+CUDA8.0+VS2010编译环境搭建_第2张图片

以上例子若可以运行的 话,说明开发环境基本安装成功。CUDA Toolkit主要包含编译器和各种编译工具以及库文件等,另外很重要的是驱动,一些人安装后提示错误是没有支持CUDA的设备存在,此时应避免在安装前有NVIDIA的相关驱动,因此在安装前将NVIDIA的相关驱动卸载,所需要的相关驱动都会在下载的安装包的涵盖。一般认为样例程序可以运行即驱动没有问题。

CUDA的安装成功的检测

CUDA中的deviceQuery.exe和bandWidthTest.exe是检测用到的两个程序。

首先启动cmd.exe(在此应先找到以上两个程序的路径,博主的路径为C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\extras\demo_suite)

进来默认的路径是 c:\users\Admistrator  输入两个cd...(有三个点),退到C目录下。并按照以上的路径查找到两个程序。

WIN7 x64+CUDA8.0+VS2010编译环境搭建_第3张图片

分别执行两个程序,结果如下

WIN7 x64+CUDA8.0+VS2010编译环境搭建_第4张图片

WIN7 x64+CUDA8.0+VS2010编译环境搭建_第5张图片
两个的Result=PASS 说明安装成功

 CUDA开发平台搭建和检测
方法一 利用VS 中支持CUDA的样例程序检测
打开VS2010,会有完整的CUDA开发工具的支持,新建测试程序,在Project的类型中会出现CUDA 8.0,将工程命名为test-OK,VS和CUDA会自动生成一个样例程序


WIN7 x64+CUDA8.0+VS2010编译环境搭建_第6张图片
在main 函数中 return 0之前加入getchar(),以防止程序自动退出,便于观察运行结果
WIN7 x64+CUDA8.0+VS2010编译环境搭建_第7张图片
项目-属性-通用配置-输入和输出-嵌入清单-将是修改成否

WIN7 x64+CUDA8.0+VS2010编译环境搭建_第8张图片
编译执行,得到如下结果,则配置成功
WIN7 x64+CUDA8.0+VS2010编译环境搭建_第9张图片

 方法二 手动配置VS项目

打开VS,新建WIN 32的控制台工程,命名testcuda
WIN7 x64+CUDA8.0+VS2010编译环境搭建_第10张图片 WIN7 x64+CUDA8.0+VS2010编译环境搭建_第11张图片
工具-选项-文件编辑器-文件扩展名 添加microsoft Visual C++ 的cu  cuh两个扩展名
WIN7 x64+CUDA8.0+VS2010编译环境搭建_第12张图片
WIN7 x64+CUDA8.0+VS2010编译环境搭建_第13张图片

右击源文件-添加-新建项-NVIDIA CUDA 8.0 -CUDA C/C++ Flie  命名test
WIN7 x64+CUDA8.0+VS2010编译环境搭建_第14张图片
右键点击工程名称-生成自定义-CUDA 8.0
WIN7 x64+CUDA8.0+VS2010编译环境搭建_第15张图片
右击test.cu-属性-选择项类型为 CUDA C/C++
WIN7 x64+CUDA8.0+VS2010编译环境搭建_第16张图片
以上步骤将新建的WIN32控制台工程 应以为CUDA,接下来将工程的属性与CUDA对应

工程名右击-属性-更改Additional Include Directiories(博主的目录为C:\ProgramData\NVIDIA Corporation\CUDA Samples\v8.0\common\inc,根据自己的安装目录做相应更改)
WIN7 x64+CUDA8.0+VS2010编译环境搭建_第17张图片
为了寻找该工程所需要的以下头文件(可直接搜索以下文件,填写上步路径)


连接器-常规-附加库目录 添加$(CUDA_PATH_V5_5)\lib\$(Platform);
WIN7 x64+CUDA8.0+VS2010编译环境搭建_第18张图片
连接器-输入-附加依赖项   添加 cudart.lib;
WIN7 x64+CUDA8.0+VS2010编译环境搭建_第19张图片
清单工具-输入和输出-嵌入清单-否,至此属性配置完成
WIN7 x64+CUDA8.0+VS2010编译环境搭建_第20张图片
在test.cu中编写符合CUDA语言的程序代码(改代码为博主拷贝),运行
#include 
#include 
#include  

#define DATA_SIZE 1024
#define checkCudaErrors(err)  __checkCudaErrors (err, __FILE__, __LINE__)
#define getLastCudaError(msg)  __getLastCudaError (msg, __FILE__, __LINE__)

int data[DATA_SIZE];

////////////////////////////////////////////////////////////////////////////////
// These are CUDA Helper functions

// This will output the proper CUDA error strings in the event that a CUDA host call returns an error


inline void __checkCudaErrors(cudaError err, const char *file, const int line )
{
    if(cudaSuccess != err)
    {
        fprintf(stderr, "%s(%i) : CUDA Runtime API error %d: %s.\n",file, line, (int)err, cudaGetErrorString( err ) );
        return ;        
    }
}

// This will output the proper error string when calling cudaGetLastError


inline void __getLastCudaError(const char *errorMessage, const char *file, const int line )
{
    cudaError_t err = cudaGetLastError();
    if (cudaSuccess != err)
    {
        fprintf(stderr, "%s(%i) : getLastCudaError() CUDA error : %s : (%d) %s.\n",
        file, line, errorMessage, (int)err, cudaGetErrorString( err ) );
        return ;
    }
}

// end of CUDA Helper Functions

__global__ static void sumOfSquares(int *num, int * result){
    int sum=0;
    int i;
    for(i=0;i>>(gpudata, result);

        checkCudaErrors(cudaMemcpy(&sum, result, sizeof(int), cudaMemcpyDeviceToHost));

        cudaFree(gpudata);
        cudaFree(result);

        printf("-----------sum: %d\n",sum);

        sum = 0;
        for(int i = 0; i < DATA_SIZE; i++) {
            sum += data[i] * data[i];
        }
        printf("sum (CPU): %d\n", sum);

        getchar();
        return 0;
}
运行结果如下,证明环境搭建成功
WIN7 x64+CUDA8.0+VS2010编译环境搭建_第21张图片


自行搭建环境可能有很有问题,建议用第一种办法测试,如果出现下下错误,建议仔细核对以上步骤
WIN7 x64+CUDA8.0+VS2010编译环境搭建_第22张图片

你可能感兴趣的:(CUDA学习笔记)