ubuntu下cmake+opencv+cuda+cudnn+tensorRT开发环境配置

前言

由于对ubuntu系统没有什么深入的理解,导致在安装一些软件时出现各种问题,因此从头配置基本开发环境,总结各种踩坑经历,避免再次陷入坑中。

cmake 安装

由于ubuntu官方支持的cmake最高版本为3.10,因此直接通过apt-get 无法安装最新版本。这里建议在cmake官网上下载编译好的发行版tar文件,下载后解压到你想要放置cmake文件夹的地方,如主目录。解压后的文件夹里有bin,doc,man,share四个文件夹,其中bin文件夹里就是可用的cmake二进制文件。然后将bin文件夹添加到系统路径,在.bashrc文件最后加入

export PATH=$PATH:~/cmake-3.14.7-Linux-x86_64/bin

然后

source ~/.bashrc
cmake --version

发现已经生效
这样安装的好处在于后续可以更改cmake版本,便于管理。

多版本cuda+cudnn安装及管理

这里介绍多版本cuda和cudnn的安装及管理。首先下载对应的cuda和cudnn包,这里建议下载cuda的.run文件进行安装,便于设置安装路径和多版本管理。

cuda10.1+cudnn7.6.5安装

运行.run文件

sudo sh cuda_10.1.243_418.87.00_linux.run

按空格跳过介绍,接受协议,按照提示进行
选择安装驱动时,如果现有驱动版本高于要安装的版本,就可以不用安装。系统安装的驱动可以在软件和更新那个应用里查看,如果当前选择的是Nouveau驱动,则需要禁用他才能安装nivida的驱动。这里以不安装驱动为例继续安装cuda

===========
= Summary =
===========

Driver:   Not Selected
Toolkit:  Installed in /usr/local/cuda-10.1/
Samples:  Installed in /home/, but missing recommended libraries

安装好后得添加路径,在.bashrc中加入

export PATH=$PATH:/usr/local/cuda/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64

注意这里用的是cuda而不是cuda-10.1,cuda是创建的cuda-10.1的软链接,可用于切换版本
接下来安装cudnn,同样下载好压缩包,解压后里面有一个cuda文件夹,执行下面的指令

sudo cp cuda/include/cudnn*.h /usr/local/cuda/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*

输入以下命令查看cuda安装情况

nvcc --version
nvidia-smi

cuda10.0+cudnn7.6.5安装

接下来安装另一个版本。同样执行.run文件,在安装驱动时选择不,在建立软链接时也选不

Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 410.48?
(y)es/(n)o/(q)uit: n
Do you want to install a symbolic link at /usr/local/cuda?
(y)es/(n)o/(q)uit: n

这里的软链接可以后面自己更改。然后同样的复制cudnn文件到cuda

sudo cp cuda/include/cudnn*.h /usr/local/cuda-10.0/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda-10.0/lib64
sudo chmod a+r /usr/local/cuda-10.0/include/cudnn*.h /usr/local/cuda-10.0/lib64/libcudnn*

注意这里的路径是具体的cuda-10.0。
上述操作完成后安装工作就已经完成了。下面开始切换版本。
查看当前cuda版本

nvcc --version

输出为
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2019 NVIDIA Corporation
Built on Sun_Jul_28_19:07:16_PDT_2019
Cuda compilation tools, release 10.1, V10.1.243

然后切换

sudo rm -rf /usr/local/cuda
sudo ln -s /usr/local/cuda-10.0/ /usr/local/cuda
nvcc --version

输出为
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2018 NVIDIA Corporation
Built on Sat_Aug_25_21:08:01_CDT_2018
Cuda compilation tools, release 10.0, V10.0.130

切换成功

多版本opencv安装及管理

同样安装多个版本的opencv。这里注意一点,opencv在编译的时候有cuda的选项,所以如果切换cuda后可能会造成一些问题。

opencv4.1.1+contrib安装

在官网上下载对应的release包,这里以opencv4.1.1为例,然后在github上下载对应版本的contrib包,你也可以选择不安装contrib。

安装依赖
sudo apt-get install build-essential
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
可选
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

解压opencv和contrib,进入解压的opencv目录

cd opencv-4.1.1
mkdir build
cd build
mkdir installed
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=~/opencv/opencv-4.1.1/build/installed -D OPENCV_GENERATE_PKGCONFIG=ON -D WITH_CUDA=ON -D WITH_OPENGL=ON -D OPENCV_EXTRA_MODULES_PATH=~/opencv/opencv_contrib-4.1.1/modules ..
make -j7
sudo make install 

注意CMAKE_INSTALL_PREFIX为安装路径,OPENCV_EXTRA_MODULES_PATH为contrib包里的moudles文件夹路径。
这个时候installed文件夹里已经产生了所需的文件。接下来配置环境。opencv.pc是重要的配置文件,在installed/lib/pkgconfig文件夹里,不过里面是opencv4.pc,需要重命名为opencv.pc。

#重命名
sudo mv ~/opencv/opencv-4.1.1/build/installed/lib/pkgconfig/opencv4.pc ~/opencv/opencv-4.1.1/build/installed/lib/pkgconfig/opencv.pc

在.bashrc文件里添加

export PKG_CONFIG_PATH=~/opencv/opencv-4.1.1/build/installed/lib/pkgconfig
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:~/opencv/opencv-4.1.1/build/installed/lib

然后

source ~/.bashrc
pkg-config --modversion opencv

输出为4.1.1配置完成

opencv3.4.8+contrib安装

同理的安装方式,不过在安装cuda支持时好像出了一些问题,还没有解决,就暂且不用cuda,其他的配置一样

opencv版本切换

只需修改PKG_CONFIG_PATH和LD_LIBRARY_PATH为所选的版本即可
在建立c++工程时,编写cmake文件时需要找到所需版本对应的OpenCVConfig.cmake文件,如下

cmake_minimum_required(VERSION 2.8)  
set(OpenCV_DIR "~/opencv-3.4.1/build")   
project(test)  
find_package(OpenCV REQUIRED) 

TensorRT多版本安装及管理

TensorRT的安装推荐使用tar文件进行安装,便于多版本管理。

tensorRT7.0.0.11.cuda-10.0.cudnn7.6安装

不同版本的TensorRT对cuda和cudnn版本的要求不一样,在官网下载好tar包后解压,文件名里有相应的cuda和cudnn版本。解压好的文件夹里已经有可以使用的文件了,只需配置环境变量。
在.bashrc文件中添加lib路径

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:~/TensorRT/TensorRT-7.0.0.11.Ubuntu-18.04.x86_64-gnu.cuda-10.0.cudnn7.6/TensorRT-7.0.0.11/lib

接下来安装一些python环境,可选安装。进入tensorRT文件夹

cd TensorRT-7.0.0.11/python
ls
sudo pip3 install tensorrt-7.0.0.11-cp36-none-linux_x86_64.whl
cd TensorRT-7.0.0.11/uff
sudo pip3 install uff-0.6.5-py2.py3-none-any.whl
cd TensorRT-7.0.0.11/graphsurgeon
sudo pip3 install graphsurgeon-0.4.1-py2.py3-none-any.whl

测试安装,进入sample文件夹

cd sample
make

能成功make就基本安装成功了,可以试着跑跑示例代码,看看能不能运行

tensorRT6.0.1.5.cuda-10.0.cudnn7.6安装

同样的步骤,解压就行,这里不添加lib路径。

TensorRT版本切换

版本的管理在于修改 LD_LIBRARY_PATH,只需要修改成对应的版本即可

后记

后面具体开发应用后面再更

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值