在Visual Studio 2010下配置CUDA 4.0

间隙填充
正睿科技  发布时间:2011-09-21 09:19:37  浏览数:3335
前段时间Nvidia公司放出的CUDA4.0RC只能让注册用户使用,现在CUDA4.0RC2终于面向所有用户了,下载地址:

  http://developer.nvidia.com/cuda-toolkit-40

  更新的部分就不提了,这只是GPU通用计算走向成熟的一步。

  在安装了最新驱动的N卡计算机上,下载CUDA Toolkit并安装。给出一个支持Windows 7 32位的链接:  http://developer.download.nvidia.com/compute/cuda/4_0_rc2/toolkit/cudatoolkit_4.0.13_win_32.msi

  里面包括:

  bin

  computeprof

  doc

  extras

  include

  lib

  open64

  src

  还包含一个Compute Visual Profiler

  貌似可以分析并行性能,以后再研究。

  下面进行简单配置使用:

  1)在 VS2010 中新建一个工程,添加一个 *.cu 文件(先选择.cpp,然后需手动把后缀改成.cu);

  2)在 Project | Build Customizations 菜单项中,选择 CUDA 4.0;

  3)打开 *.cu 的属性页。 在 general 选项中将 Item Type 改为 CUDA C/C++;

  4)选择 project 打开属性页。确认 general 选项中 Platform Toolset 是 V100;

  (之前有人说必须用 V90 编译,经测试 V100 就可以)

  5)这时看到左边多了一个选择项 CUDA C/C++;

  6)打开 Linker | General 选项页,添加 “$(CUDA_PATH_V4_0)\lib\$(Platform);” 到 Additional Libraries Directories;

  7)打开 Linker | Input 选项页,添加 “cudart.lib;” 到 Additional Dependencies


  配置完成。

  测试程序:

#include <stdio.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 0;
    }
    printf(
"CUDA initialized.\n");
    
return 0;
}

  用 Ctrl+F5 运行,通过nvcc编译成功,输出结果。

  "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\bin\nvcc.exe" -gencode=arch=compute_10,code=\"sm_10,compute_10\" --use-local-env --cl-version 2010 -ccbin

  这样一个简单的VS2010下使用CUDA4.0就成功了,之后可以编写简单的矩阵相乘来体验一下。