cuda编译opencv
A. 如何结合OPENCV2.2 和 CUDA
这里假设CUDA已经装好,但是估计装好CUDA的人是没有下载NPP的,就是这个: NVIDIA Performance Primitives (NPP) library下载地址:http://developer.nvidia.com/cuda-toolkit-32-downloads下载下来后解压随便到哪,就一个文件夹SDK然后开始配置opencv2.2, 勾选WITH_CUDA,点configure,这时候一般会找不到NPP,需要手动配置其路径找到CUDA_NPP_LIBRARY_ROOT_DIR, 修改其路径为NPP的根目录,比如我为D:/SDK。 上面两项:CUDA_NPP_INCLUDE和CUDA_NPP_LIBRARY不用手动指定,然后再点configure,这时候cmake就能找到NPP了,上面两项也有了正确路径。在Generate就OK了
接着就是标准步骤各种编译最后opencv2.2中lib名字改了,转自http://blog.csdn.net/sweetrryy/archive/2010/12/11/6069725.aspx<release>
opencv_calib3d220.lib
opencv_contrib220.lib
opencv_core220.lib
opencv_features2d220.lib
opencv_ffmpeg220.lib
opencv_flann220.lib
opencv_gpu220.lib
opencv_highgui220.lib
opencv_imgproc220.lib
opencv_legacy220.lib
opencv_ml220.lib
opencv_objdetect220.lib
opencv_ts220.lib
opencv_video220.lib
<debug>
opencv_calib3d220d.lib
opencv_contrib220d.lib
opencv_core220d.lib
opencv_features2d220d.lib
opencv_ffmpeg220d.lib
opencv_flann220d.lib
opencv_gpu220d.lib
opencv_highgui220d.lib
opencv_imgproc220d.lib
opencv_legacy220d.lib
opencv_ml220d.lib
opencv_objdetect220d.lib
opencv_ts220d.lib
opencv_video220d.lib
B. 如何在cuda中加入opencv函数库
确定一下dgv_Data是否为当前画面的对象,而不是父画面的对象。 你提示的错误是执行代码时由Catch截获的还是你在监视窗口里查看this.dgv_Data.Rows[i].Cells[0].Value.ToString()这句的值得时候看到的?如果是监视窗口里看到的,有可能不是错误,
C. opencv支持cuda加速吗
支持。编译opencv的时候加上CUDA支持就可以了。
D. OpenCV+CUDA例程出错,以及不懂到底编程代码架构是什么样的
cu文件实现gpu内核函数的调用。cpp文件实现应用系统函数,其中调用cu中的文件。一般的c++函数可直接调用相关系统资源。而cuda不行,如在cpp中调用gpu、显存等资源时,需要执行一系列相关资源的操作和制定相关参数,这个操作由cu文件完成。举个例子:cpp文件需要实现加法运算,使用cpu时+操作已经被实现了,可以直接调用,使用的是cpu来进行加法计算。如果cpp要使用gpu来实现加法,需要在cu文件中实现+操作,再由cpp调用。其中cu中的+操作需要指定使用的gpu加法器,同时向显存中拷贝两个加数参数、返回后像内存中返回结果等等操作。
E. 如何用CUDA转换并提速,用openCV编的一些关于矩阵的程序
这个你得自己想,并行都得用专用算法,基本就是分割矩阵,然后
cudaMalloc
开辟显存空间,cudaMemcpy
复制到显存空间,执行设备端代码
,cudaMemcpy
复制回结果。
F. 怎么使用opencv的stitch进行cuda加速
做过相关实验,其实opencv对于cuda的优化并不是特别好,也可能是我用的显卡性能不行。实验结果是并没有比cpu快多少。opencv的cuda编程的程序,主要处理时间都浪费在从内存向显存中拷贝数据以及从显存向内存拷贝数据了。要想写出高效的cuda程序,需要注意的东西很多。
G. cuda7.5 自带opencv吗
首先声明,因为我需要用CUDA,所以需要用CUDA来重新编译OpenCV的源文件。如果不用GPU,可以直接下载预编译好的库
- 接着,我不用OpenCV 3.0 是因为有些CUDA的文件不一样了,如果想编译OpenCV 3.0 + CUDA,过程跟下面是一样的
2. 配置 CMAKE
打开 CMAKE
- 选择 Source Folder 到 OpenCV 的源文件目录
- 选择 Output Folder
- 勾选 Advanced
H. 如何使用CUDA写OpenCV自己的核函数
只了解一些SVM中的核函数,欢迎交流 SVM本身是线性分类器,使用了核函数后,相当于把原来的数据,映射到一个高维空间(在相对低维度的空间中难分类的样本,很可能在映射到高维空间后用线性分类器就可以分开)。
I. opencv如何编译cuda vs2010
一、生成项目文件
假设我们已经将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文件夹是我自己创建的)。
然后单击左下方的“Configure”按钮,这时会弹出“cmake-gui”窗口,在“Specify the generator for this project”下拉菜单选择“Visual Studio 8 2005”、“Usedefault native compilers”后,单击“Finish”按钮,如图2所示。
完成以上操作后勾选“BUILD_EXAMPLES”、“CUDA_BUILD_CBUIN”、“CUDA_VERBOSE_BUILD”、“WITH_TBB”和“WITH_CUBLAS” 、“WITH_CUDA”,注意这里千万不要勾选“CUDA_BUILD_EMULATION”选项,不然会报错的,如下所示。
[plain] view plainprint?
01.CMake Error at C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Moles/FindCUDA.cmake:616 (message):
02. CUDA_BUILD_EMULATION is not supported in version 3.1 and onwards. You must
03. disable it to proceed. You have version 4.2.
CMake Error at C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Moles/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 plainprint?
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所示),而且我们已经成功生成项目文件。
J. 如何安装CUDA
首先验证你是否有nvidia的显卡(developer.nvidia.com/cuda-gpus这个网站查看你是否有支持gpu的显卡):
[plain] view plain
$ lspci | grep -i nvidia
查看你的linux发行版本(主要是看是64位还是32位的):
[plain] view plain
$ uname -m && cat /etc/*release
看一下gcc的版本:
[plain] view plain
$ gcc --version
首先下载nvidia cuda的仓库安装包(我的是ubuntu 14.0464位,所以下载的是ubuntu14.04的安装包,如果你是32位的可以参看具体的地址,具体的地址是https://developer.nvidia.com/cuda-downloads)
[plain] view plain
wget developer.download.nvidia.com/compute/cuda/repos/ubuntu1404/x86_64/cuda-repo-ubuntu1404_6.5-14_amd64.deb
下载完成之后可以使用如下命令安装它,注意文件名修改为cuda-repo-ubuntu1404_6.5-14_amd64.deb
[plain] view plain
sudo dpkg -i cuda-repo-<distro>_<version>_<architecture>.deb
安装好仓库之后,就可以更新你的本地仓库。
[plain] view plain
sudo apt-get update
最后开始安装cuda以及显卡驱动(安装cuda的同时就会把显卡驱动也全部安装好,这个真的很方便。但是下载的时间有点长。)
[plain] view plain
sudo apt-get install cuda
需要注意的是,我这里提供的安装方法跟网络上各种安装方法都不一样,他们的方法往往很复杂
主要是因为:(1)有些教程是手工安装显卡的驱动程序,手工屏蔽系统的默认开源的驱动
(2)安装cuda也是手工进行
使用这个方法的时候千万要注意几个问题:
(1)cuda6.5已经不支持老旧的显卡了所以sm11 等等都必须删除。可以参考我的另一个文章,关于编译opencv3.0的
(2)ubuntu14.04是64位的,并且不要一开始就更新系统补丁什么的,因为系统更新过之后,再安装显卡驱动就会无法进入图形界面,我查看了相关的日志发现是卡在了dbus那边。所以,我建议一安装好ubuntu 14.04就不要更新系统补丁。
安装完之后你需要设置环境变量:
[plain] view plain
$ export PATH=/usr/local/cuda-6.5/bin:$PATH
$ export LD_LIBRARY_PATH=/usr/local/cuda-6.5/lib64:$LD_LIBRARY_PATH
设置完毕之后,你还可以选择是否安装cuda附带的示例代码(<dir>表示你要安装的位置,你可以将<dir>替换成~):
[plain] view plain
$ cuda-install-samples-6.5.sh <dir>
接下来做一些验证工作:
查看显卡的驱动版本
[plain] view plain
cat /proc/driver/nvidia/version
查看nvcc编译器的版本
[plain] view plain
nvcc -V i
编译cuda的示例代码:
[plain] view plain
cd ~/NVIDIA_CUDA-6.5_Samples
然后make一下编译代码。
进入bin路径运行devicequery
[plain] view plain
cd ~/NVIDIA_CUDA-6.5_Samples/bin
[html] view plain
./ deviceQuery
具体的安装过程可以参考英文。
http://docs.nvidia.com/cuda/cuda-getting-started-guide-for-linux/index.html
这里必须要强调的是一定要是新的ubuntu14.04 在安装显卡驱动之前千万别更新,否则就无法进入桌面,这个问题困扰了我很久了。重装了是十几遍的系统。
这篇guide只是一些零散的安装步骤以及给后来人对于cuda的一些坑上的提醒。