本人初涉及GPU,摸索着配置。网络上配置的资料各有各的说法,在此,总结一下自己的配置过程。仅作为学习笔记。
电脑64位机,显卡:NVIDIA GeForce GTX 750。
过程:
1. 下载cuda,tbb,cmake
官网下载,本机64位。初次选择最新版cuda7.5,后来发现不能通过。最后用的cuda6.5。
2.安装
cuda的extraction path建议用默认的,而toolkit,samples,gpu deployment kit建议自己新建三个文件夹,放进去,方便找。安装好运行下测试程序,通过了,即cuda安装成功。如果没有,可能显卡不支持,或者重装。一般没有大问题。
CUDA_PATH等路径会自己加到环境变量中,不需要手动添加。
安装cmake时勾选:add cmake to the system path for all users。
tbb解压,把bin文件夹目录添加到环境变量里,具体到 bin/intel64/vc10,重启。cmake解压。
3.cmake,生成目标文件
cmake的bin文件夹下找到cmake-gui.exe。源码文件选择opencv的source文件夹,build the binaries 自己新建文件夹。
configure过程,选vs版本,点上use defaultnative compilers,勾上:BUILD EXAMPLES,WITH TBB,WITH CUDA,WITH CUBLAS。
接下来,TBB INCLUDE DIRS会标红,把tbb的include文件夹选进去,继续configure。出现两行标红,TBB LIB DIR把 tbb的 lib/intel/vc10选进去。继续,configure done,最后点generate。
出现:generate done,以及:with tbb:yes,with cuda:yes。
这一步大概需要十分钟左右。如果之前的源码文件不对,重进行时建议重新建新的build the binaries文件夹,以免cmake报错。
继续下一步。
4.生成含有gpu的opencv
上一步中,生成的文件夹(build the binaries里文件夹)中,找到opencv.sln文件,打开。
选择64位平台,在属性管理器中,把tbb的可执行路径 bin/intel64/vc10,包含目录include,库目录 lib/intel/vc10加进去。
切到解决方案资源管理器,右键“解决方案opencv”,选:重新生成解决方案,大概要1个小时左右。没有错误后,右键CmakeTarget下的INSTALL,选择:生成。也需要几十分钟。
debug和release版本下都要进行rebuild。没有错误即可生成包含gpu的opencv。
这一步可能会出现一些错误,建议打开“视图”中的“错误列表”,便于查看。出错后需要从第三步重新来。
5. 配置
环境变量中修改原来的opencv路径,把rebuild生成的opencv路径添加进去,重启。需要区分的是,这里不是原opencv,而是自己生成的含有gpu的opencv。
打开vs,把opencv的包含目录、库目录修改成rebuild的opencv的相应目录。修改附加依赖项,opencv下面找到lib文件夹,把里面的.lib文件的名字复制进去。之前不要的,去掉“从父级或项目默认设置继承”。
属性管理器中,如果64位的Microsoft.Cpp.x64.user找不到,刷新或者重新打开即可。
对于.cu文件,选择CUDA C/C++ File新建.cu文件。生成自定义中勾上“CUDA 6.5”。右键.cu文件,项类型选择“CUDA C/C++”。包含目录、库目录、附加库目录添加cuda的toolkit文件下相应内容,同上。附加依赖项中还要加一个:cudart.lib。
6. 测试
接下来,测试一下这个opencv,vs编一个简单的imread,imshow程序,cpp文件,图片正常显示,即可。
再编写简单的gpu程序,仍然是cpp文件对上面程序稍作改动,利用GpuMat,图片正常显示。这一步要十几秒,比CPU慢很多,可能gpu加速不在这。
或者cu+cpp的程序。比如网上的swap程序,改动前后的图片都可以正常显示,比较慢。
具体过程,这个博客比较详细:http://blog.csdn.net/shuxiao9058/article/details/7526795
http://blog.csdn.net/u013241840/article/details/41831939
要注意的东西:
1. 下载cuda时注意版本选择:选择的cuda计算能力要与本机显卡相配,计算能力可在NVIDIA官网查到。
https://developer.nvidia.com/cuda-gpus#collapse4
并且要与其他软件相配,比如opencv2.4.10与cuda7.5,最后显示:no GPU support 2.4.10+cuda7.5。
往期cuda下载: https://developer.nvidia.com/cuda-toolkit-archive
2. opencv3.0+cuda7.5,调用gpu函数出现lib错误,3.0源码文件夹中找不到一些文件,可能源码不全。还是用低版本的opencv。
2. 安装cuda时选择“自定义高级”,不要用默认的精简版。高版本的cuda把SDK,Samples,Driver放在一起,分开装已不适合。
3. cmake中源码请选择opencv文件夹下的source文件夹,是直接官网下载的opencv,稍后生成自己的opencv库。网上有些说需要选择OPENGL,根据个人情况,不需要不勾选,以免cmake报错。
4. cmake过程的警告不影响,继续vs的rebuild,生成自己opencv的lib,需要等待1个小时左右。
5. vs的rebuild过程,建议关闭360安全卫士等。