zoukankan      html  css  js  c++  java
  • cuda 5.0配置vs2008+Visual Assist X +安装问题解决

    最近,实验室老师要求将原来项目代码移植到GPU,就查了下关于GPU编程的资料,就学习了下,看到cuda C是CUDA的GPU编程语言基于标准的C语言,相信移植原来的C代码会比较快。哈哈~~~

    GPU采用并行计算思想,超高计算能力要求,在没装显卡驱动的xp系统,就显示一卡一卡的~~

    关于配置编程平台这个遇到一点驱动版本问题,花了好几个小时来解决问题。之前用驱动精灵装的NVIDIA的驱动,导致在安装官方的cuda 5.0安装包出问题,问题如下:

    25130911-f68c445ad80a40179d760e43789792c6

    在按照NVIDIA CUDA GETTING STARTED GUIDE FOR MICROSOFT WINDOWS,检测设备安装和带宽就出问题,当然运行cuda给出的例子,也是有问题的:

    [Vector addition of 50000 elements]
    Failed to allocate device vector A (error code CUDA driver version is insufficient for CUDA runtime version)!

    解决方法:

    在控制面板中卸载原来的显卡驱动,然后去官网下载(http://www.nvidia.cn/Download/index.aspx?lang=cn),自己电脑配置显卡的最新驱动,安装重启就OK了。(*^__^*) 嘻嘻~~

    下面还是详细说下整个配置过程:

    由于cuda5.0 环境变量在安装过程就已经设置好了。

    vs2008工程设置:

    vc   

    VS2008中.cu程序高亮显示

    查看VS的安装目录下Microsoft Visual Studio 9.0Common7IDE中有没有usertype.dat文件,如果没有,把SDK的安装目录下NVIDIA GPU Computing SDK 3.2Cdocsyntax_highlightingvisual_studio_8种的usertype.dat文件拷贝过去即可。

    重启VS2008,打开.cu程序,可以看到已经高亮显示了。

    5、当然还可以再装第三方软件Visual Assist X来实现语法提示,提高工作效率。

    1)下载并安装Visual Assist X;

    2)进注册表HKEY_LOCAL_MACHINESOFTWARE MicrosoftVisualStudio9.0LanguagesFile

    Extensions下面添加子键.cu ,然后复制.cpp的键值到.cu;
    进HKEY_CURRENT_USERSoftwareWhole TomatoVisual Assist XVANet9 在ExtSource键添加键值.cu,.cuh; (这一步发现有些网友找不到,其实是在里面的,用查找下方便,当然可以一个点进去找

    register

    3)Visual Assist X Options-》Projects->C/C++ Directories  选Custom和Other include files,添

    加C:Program FilesNVIDIA GPU Computing ToolkitCUDAv5.0include

    (Toolkit安装目录)和C:Documents and SettingsAll UsersApplication DataNVIDIA CorporationCUDA Samplesv5.0commoninc SDK安装目录)

    和C:Program FilesNVIDIA GPU Computing Toolkit vToolsExtinclude 

    visual assist

    上述都已经配置成功:

    就可以用下面给个简单代码的例子运行了,最后,祝CUDA之旅愉快!

    #include <stdio.h>
    #include <string.h>
    #include <Windows.h>
    #include <cuda_runtime.h>
    
    __global__ void Calc(int a, int b, int *c)
    {
        *c = a + b;
    }
    
    int main()
    {
        int a, b, c;
        int *dev_c;
        scanf("%d%d", &a, &b);
        cudaMalloc(&dev_c, sizeof(int));
        Calc<<<1, 1>>>(a, b, dev_c);
        cudaMemcpy(&c, dev_c, sizeof(int), cudaMemcpyDeviceToHost);
        printf("%d
    ", c);
        system("pause");
        return 0;
    
    }
     
  • 相关阅读:
    求最小正整数x,A^x=1(mod M)求阶模板
    欧拉函数模板
    高次同余方程模板BabyStep-GiantStep
    Pollard-Rho大整数拆分模板
    Miller-Rabin大素数测试模板
    JSON教程基础
    11.@RequestParam @RequestBody @PathVariable 等参数绑定注解详解
    代码格式化
    使用FireFox插件RESTClient、HttpRequester模拟http(get post)请求
    SpringBoot入门最详细教程
  • 原文地址:https://www.cnblogs.com/cheng07045406/p/3151588.html
Copyright © 2011-2022 走看看