1957

无聊蛋疼的1957写的低端博客
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

CUDA vs2010配置

Posted on 2012-09-15 11:16  1957  阅读(4253)  评论(0编辑  收藏  举报

周末早上一大早来实验室本来说准备看论文的,结果似乎是感冒了,完全没精神看。

=================分割线1===========================

CUDA之前不知在哪儿看了什么(已经不记得了),一直想搞搞,只是自己电脑一直木有Nvidia的显卡。

实验室来用的电脑室HP的workstation正好有个gtx 285,所以就试试啦。

=================分割线2===========================

吐槽下,昨天用vs2010编译opencv with cuda用了3个小时。

 

===================正文===========================

先装好一切要装的!

 

1、把各种path加到路径里面

2、在项目上面点右键 选择 “生成自定义” ,然后就看到有CUDAxxxx的,选上就是了。

3、建立一个.cu文件,然后在上面右键,属性。项类型选择 CUDA C/C++

4、连接库里面加上cudart.lib

5、连接器|常规|附加库目录   加上 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\lib\Win32 (根据自己的安装位置来)

6、设置文本编辑器.cu的高亮方案用c++的

 

一切ok,还不会cuda,网上找了个代码来编译一下

#include <stdio.h>
#include <cuda_runtime.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(count == i){
        fprintf(stderr ,"There is no device supporting CUDA 1.x\n");
        return false;
    }

    cudaSetDevice(i);

    return  true;
}

int main()
{
    if(!initCUDA()){
        printf("T_T");
        return 0;
    }

    printf("CUDA initalized.\n");

    getchar();
    return 0;
}

然后编译成功!

1>------ 已启动全部重新生成: 项目: cuda_test, 配置: Debug Win32 ------
1>生成启动时间为 2012/9/15 11:15:481>_PrepareForClean:
1>  正在删除文件“Debug\cuda_test.lastbuildstate”。
1>CudaClean:
1>  
1>  d:\1957\workspace\cuda_test\cuda_test>"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\bin\nvcc.exe" -ccbin "d:\1957\Microsoft Visual Studio 10.0\VC\bin"  -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include"  -G  --keep-dir "Debug" -maxrregcount=0  --machine 32 --compile  -g    -Xcompiler "/EHsc /nologo /Od /Zi  /MDd  " -o "Debug\cuda.cu.obj" "d:\1957\workspace\cuda_test\cuda_test\cuda.cu" -clean 
1>  正在删除文件“Debug\cuda.cu.deps”。
1>InitializeBuildStatus:
1>  正在创建“Debug\cuda_test.unsuccessfulbuild”,因为已指定“AlwaysCreate”。
1>AddCudaCompilePropsDeps:
1>  已找到“CudaToolkitCustomDir”。
1>  已找到“AdditionalDeps”。
1>  已找到“CompileOut”。
1>  已找到“Include”。
1>  已找到“Keep”。
1>  已找到“KeepDir”。
1>  已找到“NvccCompilation”。
1>  已找到“NvccPath”。
1>  已找到“RequiredIncludes”。
1>  已找到“TargetMachinePlatform”。
1>  已找到“CInterleavedPTX”。
1>  已找到“CodeGeneration”。
1>  已找到“GPUDebugInfo”。
1>  已找到“MaxRegCount”。
1>  已找到“PtxAsOptionV”。
1>  已找到“AdditionalCompilerOptions”。
1>  已找到“Defines”。
1>  已找到“Emulation”。
1>  已找到“HostDebugInfo”。
1>  已找到“FastMath”。
1>  已找到“Optimization”。
1>  已找到“Runtime”。
1>  已找到“RuntimeChecks”。
1>  已找到“TypeInfo”。
1>  已找到“Warning”。
1>  已找到“AdditionalOptions”。
1>  已找到“CommandLineTemplate”。
1>CudaBuild:
1>  Compiling CUDA source file cuda.cu...
1>  
1>  d:\1957\workspace\cuda_test\cuda_test>"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\bin\nvcc.exe" -gencode=arch=compute_10,code=\"sm_10,compute_10\" --use-local-env --cl-version 2010 -ccbin "d:\1957\Microsoft Visual Studio 10.0\VC\bin"  -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.2\include"  -G  --keep-dir "Debug" -maxrregcount=0  --machine 32 --compile  -g    -Xcompiler "/EHsc /nologo /Od /Zi  /MDd  " -o "Debug\cuda.cu.obj" "d:\1957\workspace\cuda_test\cuda_test\cuda.cu" 
1>  cuda.cu
1>  tmpxft_00000ab0_00000000-0_cuda.cudafe1.gpu
1>  tmpxft_00000ab0_00000000-5_cuda.cudafe2.gpu
1>  cuda.cu
1>  tmpxft_00000ab0_00000000-0_cuda.cudafe1.cpp
1>  tmpxft_00000ab0_00000000-11_cuda.ii
1>  正在删除文件“tmpxft_00000ab0_00000000-6_cuda.cpp3.o”。
1>ClCompile:
1>  stdafx.cpp
1>Manifest:
1>  正在删除文件“Debug\cuda_test.exe.embed.manifest”。
1>LinkEmbedManifest:
1>  cuda_test.vcxproj -> d:\1957\workspace\cuda_test\Debug\cuda_test.exe
1>FinalizeBuildStatus:
1>  正在删除文件“Debug\cuda_test.unsuccessfulbuild”。
1>  正在对“Debug\cuda_test.lastbuildstate”执行 Touch 任务。
1>
1>生成成功。
1>
1>已用时间 00:00:05.70
========== 全部重新生成: 成功 1 个,失败 0 个,跳过 0 个 ==========