Ubuntu18中cuda11.6+cuDNN8.4.1+tensorRT8.4.3.1+opencv4.2.0配置(AirVO配置)(超详细)

该文详细介绍了如何在Ubuntu系统中安装CUDA11.6,cuDNN8.4.1,TensorRT8.4.3,OpenCV4.2以及g2o和ceres等依赖库的步骤,包括下载、配置环境变量、编译和安装过程,同时提到了可能遇到的问题及解决方法。
部署运行你感兴趣的模型镜像

已有cuda11.4,eigen3.3.4,ros melodic,ceres 1.14,boost 1.65

注意:我没有尝试过cuda11.4+cuDnn8.4.1+tensorRT8.4.3是否可以,但是根据cuda和cudnn的对应、tensorRT8.4.3支持列表,其实是支持的。我是重新装了cuda。如果大家装了别的cuda11,可以先尝试一下。重装了cuda和cuDnn后要删除opencv的build文件夹,重新编译和安装。

1、cuda11.6(重装cuda之前要记得看nvidia驱动是否支持,不支持要重装驱动)

CUDA 12.2 Release Notes

#查看驱动版本和支持的cuda
nvidia-smi

重装驱动我后续再写一篇。

卸载原来的cuda:

cd /usr/local/cuda-xx.x/bin/ (进入你的cuda文件夹下)
sudo ./cuda-uninstaller
sudo rm -rf /usr/local/cuda-xx.x(删除cuda文件夹)

 安装新的cuda:

CUDA Toolkit Archive | NVIDIA Developer

选择x86 ubuntu 18.04和runfile

我这里使用了run的方式,你也可以使用deb的方式。

wget https://developer.download.nvidia.com/compute/cuda/11.6.2/local_installers/cuda_11.6.2_510.47.03_linux.run
sudo sh cuda_11.6.2_510.47.03_linux.run

"x"表示选中,不要安装附带驱动,然后其他默认即可。

添加路径:

gedit ~/.bashrc
#输入
export PATH=$PATH:/usr/local/cuda/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64
export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/cuda/lib64
#保存退出
source ~/.bashrc

完成后使用nvcc -V查看版本。

 2、cuDnn8.4.1

推荐deb安装,参考官方Installation Guide - NVIDIA Docs,下载链接:

 cuDNN Archive | NVIDIA Developer

Download cuDNN v8.4.1 (May 27th, 2022), for CUDA 11.x

Local Installer for Ubuntu18.04 x86_64 (Deb)

sudo dpkg -i cudnn-local-repo-ubuntu1804-8.4.1.50_1.0-1_amd64.deb
#根据提示导入KEY,不要复制
sudo cp /var/cudnn-local-repo-*/cudnn-local-*-keyring.gpg /usr/share/keyrings/

sudo apt-get update
sudo apt-get install libcudnn8=8.4.1.50-1+cuda11.6
sudo apt-get install libcudnn8-dev=8.4.1.50-1+cuda11.6
sudo apt-get install libcudnn8-samples=8.4.1.50-1+cuda11.6
#我有点不记得"="后面的版本号了,可以使用apt-cache查询,或者不指定
sudo apt-get install libcudnn8
sudo apt-get install libcudnn8-dev
sudo apt-get install libcudnn8-samples
sudo dpkg -l | grep cudnn
#查看

3、opencv4.2(如果重装cuda,要重新编译安装)

sudo apt-get install build-essential cmake libjpeg-dev libtiff5-dev libpng-dev libavcodec-dev libavformat-dev libswscale-dev libxvidcore-dev libx264-dev libxine2-dev libv4l-dev v4l-utils libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libgtk2.0-dev mesa-utils libgl1-mesa-dri libgtkgl2.0-dev libgtkglext1-dev  libatlas-base-dev gfortran libeigen3-dev

下载opencv4.2和opencv-contrib-4.2,分别解压缩,opencv-contrib文件夹放进opencv-4.2文件夹中,我的显卡是2080Ti,所以bin是7.5

mkdir build && cd build

cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_EXTRA_MODULES_PATH=/home/uestc213/data/opencv-4.2.0/opencv_contrib/modules -DOPENCV_DNN_CUDA=ON -DWITH_CUDA=ON -DCUDA_ARCH_BIN=7.5 -DBUILD_TESTS=OFF -D BUILD_SHARED_LIBS=ON -D BUILD_STATIC_LIBS=ON ..

make -j8

sudo make install

4、g2o    20230223

sudo apt install libsuitesparse-dev qtdeclarative5-dev qt5-qmake libqglviewer-dev-qt5
git clone https://github.com/RainerKuemmerle/g2o.git
cd g2o
mkdir build
cd build
cmake ..
make -j8
sudo  make install

5、tensorRT8.4.2

Log in | NVIDIA Developer

下载需要注册账号

以下方法安装成功,但是我的c++项目编译不通过,找不到tensorRT。

sudo gedit ~/.bashrc
输入
export LD_LIBRARY_PATH=/home/213/TensorRT-8.4.3.1/lib:$LD_LIBRARY_PATH
export LIBRARY_PATH=/home/213/TensorRT-8.4.3.1/lib::$LIBRARY_PATH
保存退出
source ~/.bashrc
# 安装后可使用python调用TensorRT
cd TensorRT- 8.4.3.1/python
pip3 install tensorrt-8.4.3.1-cp36-none-linux_x86_64.whl
# 安装UFF,支持tensorflow模型转化,若使用pytorch可以不装
cd TensorRT- 8.4.3.1/uff
pip3 install uff-0.6.9-py2.py3-none-any.whl
# 安装graphsurgeon,支持自定义结构
cd TensorRT- 8.4.3.1/graphsurgeon
pip3 install graphsurgeon-0.4.6-py2.py3-none-any.whl 

用deb的方式:参考Installation Guide :: NVIDIA Deep Learning TensorRT DocumentationThis NVIDIA TensorRT 8.4.3 Installation Guide provides the installation requirements, a list of what is included in the TensorRT package, and step-by-step instructions for installing TensorRT.https://docs.nvidia.com/deeplearning/tensorrt/archives/tensorrt-843/install-guide/index.html#installing-debian首先要加入cuda11.6的deb(network),保证依赖验证通过

wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-ubuntu1804.pin
sudo mv cuda-ubuntu1804.pin /etc/apt/preferences.d/cuda-repository-pin-600
sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/3bf863cc.pub
sudo add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/ /"
sudo apt-get update
#如果安装过了cuda,这里就不要安装了。
#sudo apt-get -y install cuda

然后下载tensorRT的deb

#安装deb,这里的文件名,改为自己下载下来的,也可以tab补全
sudo dpkg -i nv-tensorrt-repo-${os}-${tag}_1-1_amd64.deb
sudo apt-key add /var/nv-tensorrt-repo-${os}-${tag}/*.pub

sudo apt-get update
sudo apt-get install tensorrt
#我这里不与tensorflow使用,只安装我需要的

python3 -m pip install numpy
sudo apt-get install python3-libnvinfer-dev
sudo apt-get install onnx-graphsurgeon
sudo apt-get install tensorrt-libs
sudo apt-get install tensorrt-dev
#维持旧版cuda与tensorrt关联
sudo apt-mark hold tensorrt-dev

#可以取消
sudo apt-mark unhold tensorrt-dev

6、glog

git clone https://github.com/google/glog.git
cd glog
cmake -S . -B build -G "Unix Makefiles"
cmake --build build
cmake --build build --target test
sudo cmake --build build --target install

7、ceres 2.0.0

可以直接去github下载压缩包,也可以

git clone --branch 2.0.0 https://github.com/ceres-solver/ceres-solver.git

cd ceres-solver
mkdir build 
cd build
#因为我已经装了一个ceres1.14,防止冲突,我重新设置路径
sudo mkdir /usr/local/ceres2.0.0
cmake -D CMAKE_INSTALL_PREFIX=/usr/local/ceres2.0.0 ..
make -j8
sudo make install

8、编译AIRVO

mkdir -p  airvo_ws/src
cd airvo_ws/src/
git clone https://github.com/sair-lab/AirVO.git
cd ..
catkin_make
source devel/setup.bash

9、遇到的错误和修改

1......

In file included from /usr/local/include/g2o/core/base_fixed_sized_edge.h:39:0,
                 from /usr/local/include/g2o/core/base_binary_edge.h:30,
                 from /usr/local/include/g2o/types/slam3d/types_slam3d.h:31,
                 from /home/uestc213/data/airvio_ws/src/AirVO/include/utils.h:25,
                 from /home/uestc213/data/airvio_ws/src/AirVO/src/camera.cc:4:
/usr/local/include/g2o/stuff/tuple_tools.h: In function ‘void g2o::tuple_apply_i(F&&, T&, int)’:
/usr/local/include/g2o/stuff/tuple_tools.h:45:35: error: ‘tuple_size_v’ is not a member of ‘std’
     std::make_index_sequence<std::tuple_size_v<std::decay_t<T>>>());
                                   ^~~~~~~~~~~~
/usr/local/include/g2o/stuff/tuple_tools.h:45:35: note: suggested alternative: ‘tuple_size’

修改cmakelist中
set(CMAKE_CXX_STANDARD 14)

set(CMAKE_CXX_STANDARD 17)

2.......

error: ‘make_unique’ is not a member of ‘g2o’
   auto linear_solver = g2o::make_unique<SlamLinearSolver>();

使用20230223版本的g2o

3.......

/usr/local/include/g2o/core/base_variable_sized_edge.hpp:90:12: error: ‘class ceres::internal::FixedArray’ has no member named ‘fill’
add_vi.fill(0.);

单独安装ceres2.0.0在/usr/local/ceres2.0.0中
cmakelist中指定
set(Ceres_DIR /usr/local/ceres2.0.0/lib/cmake/Ceres)
find_package(Ceres 2.0.0 REQUIRED)
include_directories( ${CERES_INCLUDE_DIRS} )
target_link_libraries( ${CERES_LIBRARIES} )

4.....

如果是ubuntu18.04,还需要编译一个cv_bridge,否则容易运行报错

可以参考最后一部分,opencv4的cv_bridge部分

Ubuntu18.04 ROS Melodic的cv_bridge指向问题(四种方式,包括opencv4)_XiangrongZ的博客-优快云博客大概就是找不到ros的cv_bridgehttps://blog.youkuaiyun.com/llllldm/article/details/126334841

5....

编译可以通过,但是在运行时崩溃,提示libg2o_opengl_helper.so找不到,

用ldd devel/lib/libair_vo_lib.so | grep g2o,可以看到这个动态链接库找不到。

此时如果你的g2o安装路径是默认的,在/usr/local中,则使用sudo ldconfig,然后重新编译airvo即可。如果有不一样的安装路径,如多版本共存,则需要修改FindG2O.cmake文件,在AirVO的cmake文件夹中。添加上你的安装路径中的include和lib,然后在/etc/ld.so.conf.d/libc.conf文件中增加你的安装路径。再执行sudo ldconfig,再重新编译AirVO。

10、运行

source devel/setup.bash
roslaunch air_vo oivio.launch 

roslaunch air_vo uma_bumblebee_indoor.launch 

roslaunch air_vo euroc.launch 

roslaunch air_vo euroc_ros.launch 

附、onnxruntime 1.12.1

这个我没有安装,但是可以运行。

根据NVIDIA - TensorRT | onnxruntimeNVIDIA - CUDA | onnxruntime

https://github.com/microsoft/onnxruntime.git
cd onnxruntime
git checkout v1.12.1
git submodule update --init --recursive
./build.sh --skip_tests --config Release --build_shared_lib
./build.sh --skip_tests --use_cuda --config Release --build_shared_lib --parallel --cuda_home /usr/local/cuda --cudnn_home /usr/local/cuda
./build.sh --build_shared_lib --skip_tests --config Release --use_cuda --cudnn_home /usr/local/cuda --cuda_home /usr/local/cuda  --use_tensorrt --tensorrt_home /home/213/TensorRT-8.4.3.1
进入
/home/uestc213/onnxruntime/build/Linux/Release
然后sudo make install

您可能感兴趣的与本文相关的镜像

PyTorch 2.5

PyTorch 2.5

PyTorch
Cuda

PyTorch 是一个开源的 Python 机器学习库,基于 Torch 库,底层由 C++ 实现,应用于人工智能领域,如计算机视觉和自然语言处理

<think>好的,我需要帮助用户解决TensorRT 8.4.1.5对应CUDA 11.6的安装包下载链接失效的问题。首先,我应该回顾用户提供的引用信息。用户提到引用[1]中的路径是cudnn-windows-x86_64-8.4.1.50_cuda11.6-archive\bin\,这可能意味着用户正在使用CUDA 11.6环境,并且可能需要与CUDA版本兼容的TensorRT版本。 首先,TensorRT的版本需要与CUDA版本严格匹配。TensorRT 8.4.1.5确实是为CUDA 11.6设计的,所以用户的需求是正确的。但官方链接可能失效,常见的原因包括版本过旧或链接更新。这时候需要寻找替代下载方式。 接下来,我应该考虑可能的解决方案。常见的做法包括: 1. **NVIDIA官方网站**:虽然链接可能失效,但建议用户再次检查NVIDIA的开发者网站,可能链接有变动或需要登录才能访问。特别是,TensorRT有时会作为CUDA工具包的一部分,或者需要从开发者账户下载。 2. **NVIDIA开发者账号**:有些版本的TensorRT需要用户登录才能下载,所以提醒用户注册并登录账号,然后在下载页面搜索历史版本。 3. **第三方资源库**:比如通过conda或pip安装,但需要注意这可能不是官方推荐的方式,存在版本兼容性问题。例如,用户之前遇到的PaddlePaddle安装问题可能与依赖库版本不匹配有关[^2]。 4. **社区资源**:技术论坛或GitHub可能有用户备份的安装包,但需要提醒用户注意安全,验证文件的完整性和来源。 此外,用户之前安装CUDA 12.0时遇到了GLIBCXX版本问题,这可能提示用户系统环境中的库版本较旧,所以在安装TensorRT时也要注意系统依赖是否满足。 接下来,我需要确保回答结构清晰,分步骤给出解决方案,并附上验证安装的方法。同时,生成相关问题,帮助用户深入解决可能遇到的关联问题,比如版本兼容性或环境配置。 最后,检查所有LaTeX格式是否正确,行内公式使用$...$,独立公式用$$...$$,并确保引用标识正确添加。</think>### TensorRT 8.4.1.5 CUDA 11.6 安装包下载问题解决方案 #### 步骤 1:检查官方资源 1. **NVIDIA 开发者网站** 访问 [NVIDIA TensorRT 下载页](https://developer.nvidia.com/tensorrt),登录开发者账号后搜索历史版本。部分旧版本可能隐藏或需手动输入关键词筛选。 2. **CUDA 工具包兼容性** TensorRT 8.4.1.5 需严格匹配 CUDA 11.6,若系统已安装其他 CUDA 版本(如用户曾遇到 CUDA 12.0 的兼容问题),需通过以下命令切换环境: ```bash export PATH=/usr/local/cuda-11.6/bin:$PATH export LD_LIBRARY_PATH=/usr/local/cuda-11.6/lib64:$LD_LIBRARY_PATH ``` #### 步骤 2:替代下载渠道 1. **NVIDIA NGC 容器** 通过 NGC 目录获取预编译的 TensorRT 镜像,例如: ```bash docker pull nvcr.io/nvidia/tensorrt:22.04-py3 ``` 此镜像包含 TensorRT 8.4.1CUDA 11.6 环境。 2. **第三方包管理器** - **Conda**:使用 Conda 搜索社区维护的版本: ```bash conda search tensorrt -c nvidia ``` - **PyPI**:通过 `pip` 安装 Python 接口(可能不包含完整库): ```bash pip install tensorrt==8.4.1.5 ``` #### 步骤 3:手动安装验证 1. **文件完整性检查** 若从非官方渠道下载,需验证文件的哈希值。例如: ```bash sha256sum TensorRT-8.4.1.5.Linux.x86_64-gnu.cuda-11.6.cudnn8.4.tar.gz ``` 与官方提供的哈希值对比,确保文件未被篡改。 2. **环境变量配置** 解压后添加库路径至环境变量: ```bash export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/path/to/TensorRT/lib ``` #### 验证安装 运行以下 Python 代码检查 TensorRT 是否可用: ```python import tensorrt as trt print(trt.__version__) # 应输出 8.4.1.5 ``` 若出现类似 `libstdc++.so.6` 的报错,需升级 GLIBCXX 库(如用户此前遇到的问题): ```bash sudo apt-get install libstdc++6 ```
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

XiangrongZ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值