最近,实验室老师要求将原来项目代码移植到GPU,就查了下关于GPU编程的资料,就学习了下,看到cuda C是CUDA的GPU编程语言基于标准的C语言,相信移植原来的C代码会比较快。哈哈~~~
GPU采用并行计算思想,超高计算能力要求,在没装显卡驱动的xp系统,就显示一卡一卡的~~
关于配置编程平台这个遇到一点驱动版本问题,花了好几个小时来解决问题。之前用驱动精灵装的NVIDIA的驱动,导致在安装官方的cuda 5.0安装包出问题,问题如下:
在按照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工程设置:
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; (这一步发现有些网友找不到,其实是在里面的,用查找下方便,当然可以一个点进去找)
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
上述都已经配置成功:
就可以用下面给个简单代码的例子运行了,最后,祝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; }