CUDA的OpenCV-2.3.x/OpenCV-2.4.x编译
2013-09-30 23:35
309 查看
版权声明:对于本博客所有原创文章,允许个人、教育和非商业目的使用,但务必保证文章的完整性且不作任何修改地以超链接形式注明原始作者、出处及本声明。
博客地址:http://blog.csdn.net/shuxiao9058
原始作者:季亚
前面,我们讲到了使用OpenCV-2.4.0在Visual Studio 2005/2008/2010常规编译的方法,本文则主要讲述如何使OpenCV支持CUDA高速运算。
我们将要使用的工具除了常规编译方式使用的工具外,还要使用CUDA tookit和GPU Computing SDK,如本人使用的版本分别为cudatoolkit_4.2.9_win_64.msi和gpucomputingsdk_4.2.9_win_64.exe(我的电脑是64位系统),相关文件可以从官网下载。
下载完成后并安装,确保CUDA SDK的bin目录(“C:\ProgramData\NVIDIA Corporation\NVIDIA GPU Computing SDK4.2\C\common\bin”)已经添加到环境变量中后,我们就开始编译支持CUDA高速运算的OpenCV。
本文以Visual Studio 2005 Professional为例,其他编译器总体一样,只不过在intel tbb环境变量配置这一步略微不同,可以参考博文:使用OpenCV-2.4.0.exe文件编译x86或x64平台Visual Studio2005/2008/2010目标文件。
![](http://img.my.csdn.net/uploads/201205/02/1335914220_8919.jpg)
图1 配置源代码和生成目录 然后单击左下方的“Configure”按钮,这时会弹出“cmake-gui”窗口,在“Specify the generator for this project”下拉菜单选择“Visual Studio 8 2005”、“Usedefault native compilers”后,单击“Finish”按钮,如图2所示。
![](http://img.my.csdn.net/uploads/201205/02/1335914220_1945.jpg)
图2 生成项目类型选择完成以上操作后勾选“BUILD_EXAMPLES”、“CUDA_BUILD_CBUIN”、“CUDA_VERBOSE_BUILD”、“WITH_TBB”和“WITH_CUBLAS” 、“WITH_CUDA”,注意这里千万不要勾选“CUDA_BUILD_EMULATION”选项,不然会报错的,如下所示。
[plain] view plaincopyprint?CMake Error at C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/FindCUDA.cmake:616 (message):
CUDA_BUILD_EMULATION is not supported in version 3.1 and onwards. You must
disable it to proceed. You have version 4.2.
这是因为在从CUDA 4.0开始NPP(NVIDIA Performance Primitives library,英伟达基本性能库)就是CUDA tookit的一部分面不再单独提供了。
配置tbb相关目录(包含目录、可执行目录和库目录),详情参考本人博文:使用OpenCV-2.4.0.exe文件编译x86或x64平台Visual Studio2005/2008/2010目标文件。这里不再赘述。 单击“Configure”按钮,所有红色行已经变为白色,在下方的信息我们会看到如下信息:
[plain] view plaincopyprint?Other third-party libraries:
Use IPP: NO
Use TBB: YES (ver 4.0 interface 6004)
Use Cuda: YES (ver 4.2)
Use Eigen: NO
NVIDIA CUDA: (ver 4.2)
Use CUFFT: YES
Use CUBLAS: YES
NVIDIA GPU arch: 11 12 13 20 21
NVIDIA PTX archs: 11 12 13 20 21
NVIDIA GPU features: 11 12 13 20 20 20
特别注意,有两条为“Use TBB: YES (ver 4.0 interface 6004)”和“Use Cuda: YES (ver 4.2)”的字样,证明我们已经将intel tbb和CUDA正确配置。
最后点击Generate,下方的信息里面会有一条为“Generating done”的字样(如图3所示),而且我们已经成功生成项目文件(如图4所示)。
![](http://img.my.csdn.net/uploads/201205/02/1335968934_6974.jpg)
图3 “Generating done”
![](http://img.my.csdn.net/uploads/201205/02/1335968934_8132.jpg)
图4 成功生成项目文件
http://115.com/file/c2eplh5m#cudatoolkit_4.2.9_win_32.msihttp://115.com/file/ancmqi7g#gpucomputingsdk_4.2.9_win_32.exehttp://115.com/file/ancmij8r#cudatoolkit_4.2.9_win_64.msihttp://115.com/file/dpk7d5nz#gpucomputingsdk_4.2.9_win_64.exe编译后文件(无需再编译,可直接使用):http://download.csdn.net/detail/shuxiao9058/4272127 OpenCV-2.4.0-win32-vs2005(with CUDA)&tbb
http://download.csdn.net/detail/shuxiao9058/4272129 OpenCV-2.4.0-win32-vs2008(with CUDA)&tbb
http://download.csdn.net/detail/shuxiao9058/4272128 OpenCV-2.4.0-win32-vs2010(with CUDA)&tbb/article/1357776.html
博客地址:http://blog.csdn.net/shuxiao9058
原始作者:季亚
前面,我们讲到了使用OpenCV-2.4.0在Visual Studio 2005/2008/2010常规编译的方法,本文则主要讲述如何使OpenCV支持CUDA高速运算。
我们将要使用的工具除了常规编译方式使用的工具外,还要使用CUDA tookit和GPU Computing SDK,如本人使用的版本分别为cudatoolkit_4.2.9_win_64.msi和gpucomputingsdk_4.2.9_win_64.exe(我的电脑是64位系统),相关文件可以从官网下载。
下载完成后并安装,确保CUDA SDK的bin目录(“C:\ProgramData\NVIDIA Corporation\NVIDIA GPU Computing SDK4.2\C\common\bin”)已经添加到环境变量中后,我们就开始编译支持CUDA高速运算的OpenCV。
本文以Visual Studio 2005 Professional为例,其他编译器总体一样,只不过在intel tbb环境变量配置这一步略微不同,可以参考博文:使用OpenCV-2.4.0.exe文件编译x86或x64平台Visual Studio2005/2008/2010目标文件。
一、生成项目文件
假设我们已经将OpenCV-2.4.0源代码放到“C:\Program Files\OpenCV\src”目录下,安装完成cmake,并将ntel tbb可执行目录添加到系统环境变量,并使变量生效,相关部分参考博文:使用OpenCV-2.4.0.exe文件编译x86或x64平台Visual Studio2005/2008/2010目标文件。 运行cmake,如图1所示,然后单击“Where is the source code:”右侧的“Browse Source”,浏览到“C:/ProgramFiles/OpenCV/src”文件夹,单击“where to build the binaries:”右侧的“Browse Build”,浏览到“C:/Program Files/OpenCV/vs2005”文件夹(vs2005文件夹是我自己创建的)。![](http://img.my.csdn.net/uploads/201205/02/1335914220_8919.jpg)
图1 配置源代码和生成目录 然后单击左下方的“Configure”按钮,这时会弹出“cmake-gui”窗口,在“Specify the generator for this project”下拉菜单选择“Visual Studio 8 2005”、“Usedefault native compilers”后,单击“Finish”按钮,如图2所示。
![](http://img.my.csdn.net/uploads/201205/02/1335914220_1945.jpg)
图2 生成项目类型选择完成以上操作后勾选“BUILD_EXAMPLES”、“CUDA_BUILD_CBUIN”、“CUDA_VERBOSE_BUILD”、“WITH_TBB”和“WITH_CUBLAS” 、“WITH_CUDA”,注意这里千万不要勾选“CUDA_BUILD_EMULATION”选项,不然会报错的,如下所示。
[plain] view plaincopyprint?CMake Error at C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/FindCUDA.cmake:616 (message):
CUDA_BUILD_EMULATION is not supported in version 3.1 and onwards. You must
disable it to proceed. You have version 4.2.
CMake Error at C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/FindCUDA.cmake:616 (message): CUDA_BUILD_EMULATION is not supported in version 3.1 and onwards. You must disable it to proceed. You have version 4.2.
这是因为在从CUDA 4.0开始NPP(NVIDIA Performance Primitives library,英伟达基本性能库)就是CUDA tookit的一部分面不再单独提供了。
配置tbb相关目录(包含目录、可执行目录和库目录),详情参考本人博文:使用OpenCV-2.4.0.exe文件编译x86或x64平台Visual Studio2005/2008/2010目标文件。这里不再赘述。 单击“Configure”按钮,所有红色行已经变为白色,在下方的信息我们会看到如下信息:
[plain] view plaincopyprint?Other third-party libraries:
Use IPP: NO
Use TBB: YES (ver 4.0 interface 6004)
Use Cuda: YES (ver 4.2)
Use Eigen: NO
NVIDIA CUDA: (ver 4.2)
Use CUFFT: YES
Use CUBLAS: YES
NVIDIA GPU arch: 11 12 13 20 21
NVIDIA PTX archs: 11 12 13 20 21
NVIDIA GPU features: 11 12 13 20 20 20
Other third-party libraries: Use IPP: NO Use TBB: YES (ver 4.0 interface 6004) Use Cuda: YES (ver 4.2) Use Eigen: NO NVIDIA CUDA: (ver 4.2) Use CUFFT: YES Use CUBLAS: YES NVIDIA GPU arch: 11 12 13 20 21 NVIDIA PTX archs: 11 12 13 20 21 NVIDIA GPU features: 11 12 13 20 20 20
特别注意,有两条为“Use TBB: YES (ver 4.0 interface 6004)”和“Use Cuda: YES (ver 4.2)”的字样,证明我们已经将intel tbb和CUDA正确配置。
最后点击Generate,下方的信息里面会有一条为“Generating done”的字样(如图3所示),而且我们已经成功生成项目文件(如图4所示)。
![](http://img.my.csdn.net/uploads/201205/02/1335968934_6974.jpg)
图3 “Generating done”
![](http://img.my.csdn.net/uploads/201205/02/1335968934_8132.jpg)
图4 成功生成项目文件
二、编译生成目标文件
三、整理目录
四、配置并测试OpenCV-2.4.0函数库
说明:由于第二、第三和第四部分与本人另一篇博文:使用OpenCV-2.4.0.exe文件编译x86或x64平台Visual Studio2005/2008/2010目标文件完全相同,只不过编译时需要相当长的时间,这里不再赘述。参考链接:http://blog.cuvilib.com/2011/03/22/how-to-build-opencv-2-2-with-gpu-cuda-on-windows-7/附件下载:http://115.com/file/c2eplh5m#cudatoolkit_4.2.9_win_32.msihttp://115.com/file/ancmqi7g#gpucomputingsdk_4.2.9_win_32.exehttp://115.com/file/ancmij8r#cudatoolkit_4.2.9_win_64.msihttp://115.com/file/dpk7d5nz#gpucomputingsdk_4.2.9_win_64.exe编译后文件(无需再编译,可直接使用):http://download.csdn.net/detail/shuxiao9058/4272127 OpenCV-2.4.0-win32-vs2005(with CUDA)&tbb
http://download.csdn.net/detail/shuxiao9058/4272129 OpenCV-2.4.0-win32-vs2008(with CUDA)&tbb
http://download.csdn.net/detail/shuxiao9058/4272128 OpenCV-2.4.0-win32-vs2010(with CUDA)&tbb/article/1357776.html
相关文章推荐
- 如何编译OpenCV-2.3.x/OpenCV-2.4.x使其支持GPU-CUDA高速运算?
- 编译OpenCV2.4.x + CUDA7.0 + vs2013
- 如何编译OpenCV-2.3.x/OpenCV-2.4.x使其支持GPU-CUDA高速运算?
- linux + cuda7.5 + opencv2.4.8编译caffe
- No rule to make target 'usr/lib/x86_64-linux-gnu/libcuda.so' Linux下安装OpenCV时 make编译出现的Bug
- 关于opencv+cuda+vs+tbb编译opencv的问题
- OpenCV3.0 或OpenCV3.1 与cuda编译出现LINK: warning LNK4044: 无法识别的选项/LC:/Program Files/XXXXXXXX/lib/x64
- OpenCV之旅(1)ubuntu12.04下安装OpenCV2.3.X/OpenCV2.4.X
- OpenCV 2.3.x/2.4.x在Visual Studio 2005/2008、Visual Studio 2010和Visual Studio 2012配置方法详解
- CUDA8.0+OpenCV2.4.13+VS2015+Win10+TBB混合编译
- caffe 编译问题 ubuntu 16.04 + cuda 8 + opencv + matlab
- OpenCV 3.2.0 +Win10+ CUDA 8.0+ VS2013 编译
- CUDA跟OpenCV的混合编程,注意OpenCV需要重新编译
- 编译cuda版本的opencv——cuda7.5+opencv2.4.9+vs2013
- Win7下,VS2010 + CUDA7.5 + GPU 重新编译OpenCV2.4.9(一)
- Windows7+VS2012下64位OpenCV3.0+CUDA7.5的编译和部署
- OpenCV 3.1.0 重编译——支持CUDA8.0
- Ubuntu16.05+CUDA8下编译OpenCV错误 [...cuda_compile_generated_gpu_mat.cu.o] Error 1
- [OpenCV] 编译源程序 2.4.10 以支持 CUDA
- 编译opencv2.4.9+cuda6.5+vs2013生成自己的X64库