前段时间,在TX2上装了OpenCV3.4,TX2更新源失败的问题,OpenCV内部很多函数都已经实现了GPU加速,但是我们手动写的函数,想要通过GPU加速就需要手动调用CUDA进行加速。下面介绍Linux平台的环境配置以及与OpenCV混合编译。
Linux平台CUDA+OpenCV3.4配置
1 环境安装
首先需要安装OpenCV及CUDA环境安装,有TX2平台下OpenCV和CUDA参考百度。注意TX2自带了OpenCV2.14,如果需要安装高版本的OpenCV话需要注意多版本管理的问题。安装完成后,可以编译OpenCV例程来判断OpenCV是否安转完成,CUDA安装可以在终端输入
nvcc
如果终端打印下面信息,表示安装完成
2 CUDA编译流程
CUDA的程序通过nvcc编译器编译成可执行文件,CUDA的可执行文件有两种,分别是在Host上执行的CPU相关代码,另一部分是在Device上执行的GPU代码,nvcc编译的指令与gcc/g++编译器差不多,基本指令如下
nvcc --gpu-architecture=compute_62 --gpu-code=compute_62-I/usr/local/cuda/include/ -c kernels.cu -o kernels.o
其中:
--gpu-architecture和--gpu-code指定了GPU的计算能力,请根据自己GPU的运算能力修改,有关GPU运算能力可以在这里查找(NVIDIA官网挂了,将就着在维基百科里面看吧),--gpu-archit