zoukankan      html  css  js  c++  java
  • CUDA vs2010配置

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

    =================分割线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 个 ==========
    by 1957
  • 相关阅读:
    在winform下实现左右布局多窗口界面的方法(一)
    C# 使用API检查域用户名和密码是否正确
    C#检查网络是否可以连接互联网
    总结:实体类和(XML或二进制)之间相互转(序列化和反序列化)
    XML和实体类之间相互转换(序列化和反序列化)
    C# XML反序列化与序列化举例:XmlSerializer
    XML文件与实体类的互相转换
    Message类的属性Msg所关联的消息ID
    C# Message 消息处理
    在.net中读写config文件的各种方法(自定义config节点)
  • 原文地址:https://www.cnblogs.com/x1957/p/2686085.html
Copyright © 2011-2022 走看看