从接触CUDA开发到现在,已有一个月有余。 一个人慢慢摸索的过程,有压力也有收获。 工作之余,想把自己以前做的,经历的东西写出来,留作纪念吧。顺便提高一下自己的写作水平。
作为CUDA开发的第一篇,先介绍一下CUDA环境的搭建吧,这里主要讲的是CUDA在WINDOWS上的环境搭建,后续会专门写一篇在LINUX平台上的基于caffe深度学习CUDA环境搭建。
CUDA开发我选择的是WIN7的64位系统,采用的CUDA toolkit版本是 cuda 7.5 tookit ,visual studio 版本是 VS2013 ,由于涉及到图像与视觉处理,这里引入了 opencv 开源库,我这里采用的OPENCV版本是 opencv-2.4.9 。
一 给出各个开源软件的下载链接:
1. cuda 7.5 tookit : https://developer.nvidia.com/cuda-downloads
注意默认的是台式机的安装版本,如果要安装笔记本的版本,一定要搜索后缀带有notebook版本。
2. VS2013 : https://www.visualstudio.com/en-us/downloads/download-visual-studio-vs.aspx
选用的版本是 ultimate 2013
3. opencv-2.4.9 : http://opencv.org/downloads.html
选用WINDOW 平台即可
目前采用的CUDA平台是GTX560 TI, 娱乐级的一款GPU芯片。它的参数配置如下:
二 下面给出各个软件的安装过程:
1. cuda 7.5 tookit : 默认安装即可。 记住安装完毕以后,一定不要随意升级驱动,不然后续出现驱动与硬件不兼容的问题。往往出现这样的问题是最不容易排查的,由于CUDA开发的资料相对较少,很多情 况下百度和谷歌也搜不到相应的解决方法。自己也曾经为了一个小问题,搜索了二个星期,尝试了不同的解决方案,终于在一个角落里,找到了问题所在,所以从事CUDA开发相对的门槛还是比较高的。
安装后会在PATH路径上自动增加路径,后续你可以将BIN,LIB,SDK路径加载进去。
2. VS2013 : 这个网上资料很多,默认安装即可。
3. opencv-2.4.9 : 下载完后,解压即可。
三 CUDA平台的搭建
由于CUDA集成在了VS平台中,调试工具Nsight也集成在vs中,所以平台搭建主要基于VS进行搭建。 由于主要使用CUDA进行算法移植和加速,一般采用将算法生成动态库或者静态库的形式,供UI层调用,所以首先在VS创建一个生成DLL或者静态库的工程,然后基于该工程生成的文件,创建一个控制台测试工程,测试算法功能正确与否。 (后续我会在相应的分类中给出对应的解决方案和案例代码)
CUDA toolkit安装完毕后,可以在ProgramData中找到相应的sample工程,通过这些案例工程可以加深对CUDA的了解。
在创建一个DLL工程后,修改工程的property属性。 主要是VC目录,将CUDA和OPENCV的BIN目录加入到执行目录, include目录加入到包含目录 ,LIB目录加入到libary目录, 其次是链接器目录,将LIB目录下的LIB名称加入到input的addition里面,也可以写一个#pragram commit 的头文件 将这些lib动态加载。
其次右键单击该DLL工程,针对 BUILD depedencies ,选择 build custom ,然后选择 使用CUDA 编译器
然后创建一个CUDA 文件,右键单击文件,选择扩展为CUDA C++ 即可。
四 案例
下面给出目前我所做的项目调试截图
五: 案例链接:
https://github.com/takeshineshiro/cuda_gpu_dll
后续给出,可能会遇到的问题,以及解决方法。