zoukankan      html  css  js  c++  java
  • windows Visual Studio 上安装 CUDA【转载】

    原文 : http://blog.csdn.net/augusdi/article/details/12527497 

    前提安装:

    Visual Studio 2012

    Visual Assist X

    安装步骤:

    1. Nvidia显卡驱动,装275.33版,这是最新版本驱动,初次安装为了少出错,最好安装比较新版本的驱动。

    2. Cuda Toolkit 4.0安装,CUDA 4.0的新特性可以参见其Release Notes,其中包括了本文将要介绍的Thrust库。

    3. GPU Computing SDK 4.0 安装,默认安装路径可能是

    C:ProgramDataNVIDIA CorporationNVIDIA GPU Computing SDK 4.0,记这个路径为SDK_PATH.

    4. Parallel Nsight 2.0 安装,这个工具可以将GPU通用计算集成进Microsoft Visual Studio,能够对使用CUDA C,OpenCL, DirectCompute, Direct3D, 和 OpenGL的应用程序进行调试和分析。

    5.现在可以用VS打开CUDA SDK的例子了,在这之前,两个工具库可以先生成一下。

    a.使用VS2010打开SDK_PATH ccommoncutil vs2010.sln, VS2010 选“Build|Batch Build…”,“Select All”,生成所有配置需要的lib.如果遇到“Can not open source file …”的错误,把文件夹的只读属性去掉。

    目的:生成各配置需要的cutilxx[D].lib XX:32 /64 [D]debug模式  

    lib存放的位置:SDK_PATH ccommonlib(win32|X64)

    b.同上方法,打开SDK_PATHshare shrUtils_vs2010.sln 选“Build|Batch Build…

    目的:生成各配置需要的shrUtilxx.lib XX:32 /64 [D]debug模式  

    lib存放的位置:SDK_PATHsharelib(Win32|x64)

    注:这个项目编译时会提示有两个.cpp找不到,直接把他们从项目里移去即可。因为同名的.h文件里已经有完整代码了。 

    c.测试例子:VS2010 打开SDK例子:deviceQuery, matrixMul各种配置均可编译执行成功, CUDA的基本配置就完了。

     

    CUDA C/C++关键字和函数高亮显示:

    在上面HelloWorldCuda.cu文件中发现CUDA C/C++的关键字__global__等没有高亮显示,而且还有下划曲线。下面进行CUDA C/C++关键字和函数的语法高亮显示,配置Visual AssistX 函数高亮,代码提示等功能。

    下面是关于代码高亮的设置。共三个设置

    1. .cu文件中C/C++关键字高亮

    这个设置是让VS2010编辑.cu文件时,把.cu文件里的C/C++语法高亮。

    设置方法: 在VS2010的菜单 依次点击:“Tools|Options…|Text Editor|File Extension”,在这个界面里: “Editor”下拉框选“Microsoft Visual C++”,在“Extension”文本框输入.cu 点击“Add”按钮 ,重复工作把.cuh 添加为vc++类型,点击确定按钮。 把全部.cu文件关闭,再打开,.cu文件C++关键字就高亮了。如果不行就重启VS2010。但是CUDA的关键字还是黑色的,下一步把CUDA关键自高亮显示。

     

    2. CUDA关键字高亮

    为了让CUDA的关键字,如__device__、dim3之类的文字高亮,需要如下步骤:

    SDK_PATHCdocsyntax_highlightingusertype.dat 复制到X:Program Files (X86)Microsoft Visual Studio 10.0Common7IDE目录下  

    这里 X:是安装VS2010盘符,这是win7 64位下的路径。

    注意:win7 64系统不要复制到这个目录里,复制到这里是不会CUDA关键字高亮的:

    X:Program Files Microsoft Visual Studio 10.0Common7IDE
    (如果你的win7是32位的,可能正好是上面这个目录,应该会高亮的,这是win7 64位和32位的差别)

    再次强调:SDK_PATH要换成你安装SDK的实际路径,不要直接使用这个字符串。

    VS2010需要重启,重启后打开.cu文件,CUDA的关键字应该变成蓝色了。

     

    3. CUDA函数高亮,及CUDA函数输入代码提示
           实现这个功能就要使用VAssistX了。 首先安装支持VS2010的Visual AssistX, 在CUDA 安装前、后安装都行。需要两步实现需要的功能:

    a)  让Visual AssistX支持CUDA函数高亮和代码完成。在VS2010菜单里依次点击: “VAssistX->Visual assist X Options->Projects->C/C++Directories”在这个界面的 “Platform”下拉框选 Custom,在“Show Directories for..“下拉框选 Other include files, 然后在下面的输入框里,新建、添加三个路径,点击确定,三个路径分别如下:

    SDK_PATH的ccommoninc
     SDK_PATH的sharedinc
     X:Program FilesNVIDIA GPU Computing ToolkitCUDAv4.0include

    这里SDK_PATH要用你安装的SDK路径代替,X:是你的CUDA toolkit安装盘符。

           这样分别在这三个目录里面的.h文件定义的函数和类型VAssistX会帮我们在编辑文件时候实现高亮和完成代码。如果少包含一个路径,这个目录里的.h定义的函数和类型就不会高亮和提示了。

    b) 让Visual AssistX支持.cu文件,也就让Visual AssistX帮我们实现.cu文件高亮和代码完成功能,需要编辑注册表。首先关闭VS2010,点击开始菜单输入regedit打开注册表,找到如下位置:HKEY_CURRENT_USERSoftwareWhole TomatoVisual Assist XVANet11。在右边找到ExtSource项目,鼠标右键选修改,在原有文字后添加如下文字:.cu;.cuh; 确定后关闭注册表,重新打开vs2010,Visual AssistX开始支持.cu及.cuh文件的语法高亮及代码完成。此时.cu文件的CUDA函数是高亮的,使用函数名符号就会自动提示函数全称,参数类型等信息了。

     

    经过上面的安装,开发程序应该没问题了,但会发现有如下的问题:

    1. VS2010显示.cu文件时,有很多CUDA函数下有波浪线

    2. 在.cu文件里使用VS2010的“Go to definition”功能查无法找到CUDA函数的定义。

    这两个问题的原因是VS2010不认识这些函数,没有指定它们在那个头文件里包含的。解决方法其实是一样的,把CUDA tookit 和CUDA SDK的头文件路径加到VS2010的VC++目录里面。

    创建自己的CUDA项目

    1. 创建一个Win32 console application 程序 HelloWorldCuda,选择空项目,然后添加一个源文件HelloWorldCuda.cpp, 改名字为HelloWorldCuda.cu。

    2. 选择Project | Build Customizations…菜单,在对话框中选择CUDA 4.0,这会添加对CUDA C/C++文件(*.cu)的支持

     

    3. 选择HelloWorldCuda.cu文件,右击选择Property打开属性对话框,在General属性页下,将Item Type改为”CUDA C/C++”

     

    注意:CUDA C/C++已经在属性页中出现了

    4.   打开“Linker|Input”属性页,在“Additional Dependencies”中添加“cudart.lib;”

    5. 向HelloWorldCuda.cu中添加一些代码。…………

    测试程序:

    [cpp] view plaincopy
     
    1. #include <stdio.h>  
    2. bool InitCUDA()  
    3. {  
    4.     int count;  
    5.   
    6.     cudaGetDeviceCount(&count);  
    7.   
    8.     if(count == 0)  
    9.     {  
    10.         fprintf(stderr, "There is no device. ");  
    11.         return false;  
    12.     }  
    13.   
    14.     int i;  
    15.   
    16.     for(i = 0; i < count; i++)  
    17.     {  
    18.         cudaDeviceProp prop;  
    19.   
    20.         if(cudaGetDeviceProperties(&prop, i) == cudaSuccess)  
    21.         {  
    22.             if(prop.major >= 1)  
    23.             {  
    24.                 break;  
    25.   
    26.             }  
    27.         }  
    28.     }  
    29.   
    30.     if(i == count)  
    31.     {  
    32.         fprintf(stderr, "There is no device supporting CUDA 1.x. ");  
    33.         return false;  
    34.     }  
    35.   
    36.     cudaSetDevice(i);  
    37.   
    38.     return true;  
    39. }  
    40.   
    41. int main()  
    42. {  
    43.     if(!InitCUDA())  
    44.     {  
    45.         return 0;  
    46.     }  
    47.   
    48.     printf("HelloWorld, CUDA has been initialized. ");  
    49.   
    50.     return 0;  
    51. }   

    用 Ctrl+F5 运行,通过nvcc编译成功,输出结果。
    "C:Program FilesNVIDIA GPU Computing ToolkitCUDAv4.0in vcc.exe" -gencode=arch=compute_10,code="sm_10,compute_10" --use-local-env --cl-version 2010 -ccbin

  • 相关阅读:
    curl crt
    test with nmap
    C#查询XML解决“需要命名空间管理器”问题
    Dapper实用教程
    javascript 计算两个日期的差值
    Glib学习笔记(二)
    安装osquery笔记
    Golang多线程简单斗地主
    PHP扩展开发之Zephir
    zabbix 安装记录
  • 原文地址:https://www.cnblogs.com/Gile/p/3888478.html
Copyright © 2011-2022 走看看