ubuntu23安装tensorRT步骤记录

    服务器信息:       
        1. ssh 连接信息:127.0.0.1  zhangsan2. 操作系统:Ubuntu 23.103. 显卡信息:NVIDIA Corporation GA102 [GeForce RTX 3090]4. cpu 架构:x86_64,13th Gen Intel(R) Core(TM) i9-13900( 使用 "uname -m" 命令查看 )5. docker( Docker version 24.0.7, build 24.0.7-0ubuntu2~23.10.1 )6. docker-compose( docker-compose version 1.29.2, build unknown )
1. 安装 nvidia 显卡驱动( 535.183.01 ):ps:1. 参考博客:1.1. https://zhuanlan.zhihu.com/p/662696530( Ubuntu系统下安装显卡驱动以及pytorch )1.2. https://blog.csdn.net/m0_46825740/article/details/121418113( ubuntu篇---ubuntu20.04安装cuda和cudnn )2. 使用 "lsmod | grep nouveau" 命令可以查看系统默认的显卡驱动 nouveau 的信息!!!步骤:1. 下载驱动安装包:NVIDIA-Linux-x86_64-535.183.01.run   OK2. 卸载所有驱动:sudo apt-get remove nvidia*       OK3. 更新软件列表和必要的依赖:              
            sudo apt-get update      OKsudo apt-get install g++     OKsudo apt-get install gcc     OKsudo apt-get install make    OK
            4. 在安装NVIDIA驱动以前需要禁止系统自带显卡驱动 nouveau:4.1. sudo vim /etc/modprobe.d/blacklist.conf    ok4.2. 在打开的文件末尾输入如下内容并保存:     okblacklist nouveauoptions nouveau modeset=04.3. 更新一下系统的 initramfs 镜像文件:sudo update-initramfs -u  ok4.4. 重启电脑:sudo reboot   ok4.5. 检测系统自带显卡驱动 nouveau 是否已被禁用成功:lsmod | grep nouveau( 没有输出任何信息表示禁用成功了 )    ok4.6. 安装显卡驱动 NVIDIA-Linux-x86_64-535.183.01.run:1. sudo chmod +x  NVIDIA-Linux-x86_64-535.183.01.run2. sudo ./NVIDIA-Linux-x86_64-535.183.01.run -no-opengl-files -no-x-check4.7. 验证英伟达显卡是否安装成功:nvidia-smi2. 安装 cuda 12.2:1. 下载 cuda_12.2.0_535.54.03_linux.run 并安装:打开 https://developer.nvidia.com/cuda-12-2-0-download-archive?target_os=Linux&target_arch=x86_64&Distribution=Ubuntu&target_version=22.04&target_type=deb_local,依次选择 Linux--》x86_64--》ubuntu-->22.04-->runfile(local),( ps:不能选择 deb(local),因为 cuda自带了显卡驱动,而且自带的还不好使,而选择 deb(local)的安装方式,安装过程中无法对cuda自带的显卡驱动进行取消勾选安装的操作,而使用 runfile(local) 方式安装就可以勾选掉cuda自带显卡驱动 )下面会出现如下2行命令:               
wget https://developer.download.nvidia.com/compute/cuda/12.2.0/local_installers/cuda_12.2.0_535.54.03_linux.run
sudo sh cuda_12.2.0_535.54.03_linux.run
            依次执行该2行命令2. 安装过程中的几个选项如何选择:2.1. "Existing package manager installation of the driver found. It is stronglyrecommended that you remove this before continuing."提示让选择 Abort 还是 Continue 时,选择 Continue2.2. "CUDA Installer...." 的地方将 [X]Driver 中的 X取消勾选,点击 Install3. 配置环境变量:3.1. vim  ~/.bashrc3.2. 在文件最后添加如下两行:export PATH=/usr/local/cuda-12.2/bin${PATH:+:${PATH}}export LD_LIBRARY_PATH=/usr/local/cuda-12.2/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}3.3. source ~/.bashrc4. 验证是否安装成功:nvcc -V可能遇到的问题:遇到  Package 'libtinfo5' 报错得解决方案:libtinfo5软件包在Ubuntu 23.10的默认存储库中尚不可用。我们可以通过为Ubuntu 23.04(Lunar Lobster)添加universe回购协议来安装它。即 sudo vim /etc/apt/sources.list,添加此行 "deb http://archive.ubuntu.com/ubuntu/ lunar universe"3. 安装 安装cuDNN:1. 下载 cudnn-local-repo-ubuntu2204-8.9.6.50_1.0-1_amd64.deb:下载地址:https://developer.nvidia.com/rdp/cudnn-archive--》Download cuDNN v8.9.6 (November 1st, 2023), for CUDA 12.x--》Local Installer for Ubuntu22.04 x86_64 (Deb)2. sudo dpkg -i cudnn-local-repo-ubuntu2204-8.9.6.50_1.0-1_amd64.debsudo cp /var/cudnn-local-repo-*/cudnn-local-*-keyring.gpg /usr/share/keyrings/3. 更新APT仓库并安装cuDNN运行时库、开发库和示例库:            
		sudo apt-get updatesudo apt-get install libcudnn8=8.9.6.50-1+cuda12.2sudo apt-get install libcudnn8-dev=8.9.6.50-1+cuda12.2sudo apt-get install libcudnn8-samples=8.9.6.50-1+cuda12.2
        4. 验证是否安装成功:1. cp -r /usr/src/cudnn_samples_v8/ $HOME2. cd $HOME/cudnn_samples_v8/mnistCUDNN3. make clean && makecp如果报大概如下错:- 如果编译报错fatal error: FreeImage.h: No such file or directory1 | #include "FreeImage.h"|          ^~~~~~~~~~~~~请执行命令 "sudo apt-get install libfreeimage3 libfreeimage-dev" 后重新执行 "make clean && make"4. ./mnistCUDNN#显示“Test passed!”或类似的消息,表示cuDNN运行正常。4. 安装  tensorrt 8.6.1.6:4.1. 下载 TensorRT-8.6.1.6.Linux.x86_64-gnu.cuda-12.0.tar.gz 安装包4.2. 解压:tar xzvf TensorRT-8.6.1.6.Linux.x86_64-gnu.cuda-12.0.tar.gz4.3. 配置环境变量:4.3.1.vim ~/.bashrc,将如下一行添加到该文件最后一行:export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/data/soft/TensorRT-8.6.1.6/lib4.3.2. source ~/.bashrc4.4. 为了避免其它软件找不到 TensorRT 的库,建议把 TensorRT 的库和头文件添加到系统路径下# TensorRT路径下            
		4.4.1. cd /data/soft/TensorRT-8.6.1.64.4.2. sudo cp -r ./lib/* /usr/lib4.4.3. sudo cp -r ./include/* /usr/include
4.5. 测试使用 tensorRT 进行推理:1. 下载工程:git clone https://github.com/shouxieai/tensorRT_Pro.git( 只使用 tensorRT 推理的话,只使用其中的 ./example-simple_yolo )2. 实际使用,只需要修改 src 下 main.cpp 的主函数的参数3. main中调用的 test 函数:最后一个参数为 ONNX 模型的文件名,比如yolov7.onnx就输入yolov7即可,该 ONNX 模型文件需要放到可执行文件同目录下。第二个参数为指定模型的运算精度, 可以为SimpleYolo::Mode::FP32或者SimpleYolo::Mode::FP16。更低的运算精度部署后速度更快。4. 再修改下 CMakeLists.txt 文件:主要需要修改下面几个参数,对于 CUDA_GEN_CODE 参数,Jetson NX 和 Jetson AGX 都为"-gencode=arch=compute_72,code=sm_72"。# 如果你是不同显卡,请设置为显卡对应的号码参考这里:https://developer.nvidia.com/zh-cn/cuda-gpus#computeset(CUDA_GEN_CODE "-gencode=arch=compute_72,code=sm_72")# 如果你的opencv找不到,可以自己指定目录set(OpenCV_DIR   "/usr/include/opencv4/")set(CUDA_DIR     "/usr/local/cuda-10.2")5. 然后编译运行即可:1. mkdir build2. cd build3. cmake ..4. make -j8   ( ps:-j8 告诉 make 同时运行最多8个编译任务 )可能会报  "gcc later than 12 ... nvcc ..." 之类的错误,是因为 cuda12.2需要低于12版本的 gcc,可使用如下方式修复:1. sudo apt-get install gcc-102. sudo apt-get install g++-103. sudo ln -s /usr/bin/gcc-10 /usr/local/cuda/bin/gcc4. sudo reboot ( 重启电脑 )5. cd ../workspace6. ./pro5. 安装 gstreamer 1.20.3:ubuntu23 默认已经安装了 gstreamer 1.22.5,可以使用   "gst-inspect-1.0 --version" 或者  "gst-inspect-1.0 --version" 验证:5.1. gst-launch-1.0 --version:gst-launch-1.0 version 1.22.5GStreamer 1.22.55.2. gst-launch-1.0 --version:gst-launch-1.0 version 1.22.5GStreamer 1.22.5测试 gstreamer 是否可用:1. gst-inspect-1.0 | grep h264:rtp:  rtph264depay: RTP H264 depayloaderrtp:  rtph264pay: RTP H264 payloadertypefindfunctions: video/x-h264: h264, x264, 2642. gst-inspect-1.0 | grep aac:audioparsers:  aacparse: AAC audio stream parsertypefindfunctions: audio/aac: aac, adts, adif, loas6. Ubuntu系统安装opencv( 参考博客:https://blog.csdn.net/LLL_666_/article/details/136763114 ):1. 下载 opencv 源码包:https://opencv.org/releases/--》OpenCV – 4.9.0--》Sources2. 解压:unzip opencv-4.9.0.zip3. 使用 cmake 安装 opencv:1. cd opencv-4.9.02. 安装依赖库:sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg.dev libtiff5.dev libswscale-dev3. mkdir build4. cd build4. sudo cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..5. sudo make -j4 ( ps:-j4 告诉 make 同时运行最多4个编译任务 )6. sudo make install4. sudo vim /etc/ld.so.conf,将 "/usr/loacal/lib" 加在最后( 不用换行,直接加在最后 )5. sudo ldconfig ( ps:更新动态链接库缓存 )6. sudo vim /etc/bash.bashrc,在最后加入如下2行:PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfigexport PKG_CONFIG_PATH7. source /etc/bash.bashrc ( ps:source /etc/bash.bashrc 和 ~/.bashrc 的区别是,前者是全局的配置文件,后者是当前用户的配置文件 )8. 查看opencv安装情况:pkg-config opencv --modversion出现 "Package opencv was not found in the pkg-config search path.Perhaps you should add the directory containing `opencv.pc'to the PKG_CONFIG_PATH environment variableNo package 'opencv' found" 错误的解决方案:1. cd /usr/local/lib2. sudo mkdir pkgconfig3. cd pkgconfig4. sudo touch opencv.pc5. sudo  vim opencv.pc,将如下文本复制进此文件:prefix=/usr/localexec_prefix=${prefix}includedir=${prefix}/includelibdir=${exec_prefix}/libName: opencvDescription: The opencv libraryVersion:4.0.1Cflags: -I${includedir}/opencv4Libs: -L${libdir} -lopencv_shape -lopencv_stitching -lopencv_objdetect -lopencv_superres -lopencv_videostab -lopencv_calib3d -lopencv_features2d -lopencv_highgui -lopencv_videoio -lopencv_imgcodecs -lopencv_video -lopencv_photo -lopencv_ml -lopencv_imgproc -lopencv_flann  -lopencv_core6. export  PKG_CONFIG_PATH=/usr/local/lib/pkgconfig7. 再次执行 "pkg-config opencv --modversion" 便不会报错了9. 测试 opencv 是否可用:测试案例1:1. cd /data/soft/opencv-4.9.0/samples/cpp/example_cmake2. cmake .3. make4. ./opencv_example测试案例2:1. g++ -o test_opencv test_opencv.cpp -L /usr/local/lib/  -lopencv_core -lopencv_highgui -lopencv_imgcodecs -lopencv_imgproc2. ./test_opencv看是否成功生成灰度图7. 安装最新版 nvidia container toolkit( 参考博客:https://blog.csdn.net/weixin_55674987/article/details/139867794 ):离线安装方式:1. 提起现在好4个安装包( 下载地址:https://mirror.cs.uchicago.edu/nvidia-docker/libnvidia-container/stable/ubuntu20.04/amd64/ ):libnvidia-container1_1.13.3-1_amd64.deblibnvidia-container-tools_1.13.3-1_amd64.debnvidia-container-toolkit-base_1.13.3-1_amd64.debnvidia-container-toolkit_1.13.3-1_amd64.deb2. 开始安装( 这4个包有依赖关系,安装顺序不能乱 ):1. sudo dpkg -i ./libnvidia-container1_1.13.3-1_amd64.deb   ok2. sudo dpkg -i ./libnvidia-container-tools_1.13.3-1_amd64.deb  ok2. sudo dpkg -i ./nvidia-container-toolkit-base_1.13.3-1_amd64.deb  ok3. sudo dpkg -i ./nvidia-container-toolkit_1.13.3-1_amd64.deb  ok4. 重启 docker 服务:sudo systemctl restart docker5. 测试 nvidia container toolkit 是否安装成功:#### Test nvidia-smi with the latest official CUDA image$ docker run --gpus all nvidia/cuda:9.0-base nvidia-smi# Start a GPU enabled container on two GPUs$ docker run --gpus 2 nvidia/cuda:9.0-base nvidia-smi# Starting a GPU enabled container on specific GPUs$ docker run --gpus '"device=1,2"' nvidia/cuda:9.0-base nvidia-smi$ docker run --gpus '"device=UUID-ABCDEF,1"' nvidia/cuda:9.0-base nvidia-smi# Specifying a capability (graphics, compute, ...) for my container# Note this is rarely if ever used this way$ docker run --gpus all,capabilities=utility nvidia/cuda:9.0-base nvidia-smi一些工具命令:1. 查看 cuda 版本:1.1. nvcc --version1.2. nvcc -v1.3. cat /usr/local/cuda/version.txt2. 查看英伟达显卡驱动版本:nvidia-smi3. 查看英伟达显卡驱动信息:使用 lspci 命令可以查看显卡的型号,而 nvidia-smi 命令( 如果已安装 NVIDIA 驱动 )可以提供显卡的详细信息,包括驱动版本。# lspci | grep -i nvidia01:00.0 VGA compatible controller: NVIDIA Corporation GA102 [GeForce RTX 3090] (rev a1)01:00.1 Audio device: NVIDIA Corporation GA102 High Definition Audio Controller (rev a1)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/47967.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2401. 最长优雅子数组

Powered by:NEFU AB-IN Link 文章目录 2401. 最长优雅子数组题意思路代码 2401. 最长优雅子数组 题意 给你一个由 正 整数组成的数组 nums 。 如果 nums 的子数组中位于 不同 位置的每对元素按位 与(AND)运算的结果等于 0 ,则称该子数组为…

微信小程序关于助力微短剧行业高质量发展的公告

微短剧行业已进入高质量发展的新阶段,在国家广播电视总局和广东省广播电视局的指导下,微信小程序平台始终坚持合规先行,主动建设行业管理规范,发布了《微短剧行业管理规范》,全面加强对于微短剧小程序的规范运营要求&a…

北醒单点激光雷达更改id和波特率以及Ubuntu20.04下CAN驱动

序言: 需要的硬件以及软件 1、USB-CAN分析仪使用顶配pro版本,带有支持ubuntu下的驱动包的,可以读取数据。 2、电源自备24V电源 3、单点激光雷达接线使用can线可以组网。 一、更改北醒单点激光雷达的id号和波特率 安装并运行USB-CAN分析仪自带…

elasticsearch8.14.1集群安装部署

elasticsearch安装部署,首先需要准备至少三台服务器,本例再windows11下安装三台vmware虚拟机,利用centOS7系统模拟服务器环境。 本例假设你已经安装了三台vmware和centOS7,且centOS7运行正常。接下来我们直接讲解elasticsearch下载…

vue实现f11全屏esc退出全屏

<template><div><p>页面内容</p><el-button type"primary" click"enter_full_screen" v-if"!full">进入</el-button><el-button type"primary" click"exitFullscreen" v-else>退…

SQL实战宝典:快速上手数据库查询与优化

文章目录 SQL 速成手册SQL 的主要功能1、基本查询语句2、表操作语句3、数据操作语句4、函数与聚合操作5、子查询与联接6、高级操作7、性能优化与安全性 基本查询语句表操作语句数据操作语句函数与聚合操作子查询与联接高级操作性能优化与安全性 SQL 速成手册 SQL&#xff08;S…

BUUCTF [WUSTCTF2020]朴实无华

首先进来不知道要干啥&#xff0c;上dirsearch扫出个机器人协议&#xff0c;一看有点东西 直接访问很明显这不是flag 主页面看他说什么不能修改头部&#xff0c;看一下数据包 发现了好东西 看到源码&#xff0c;又得绕过了。不过这编码有点问题导致乱码了 找个在线网站稍微恢复…

git代码备份

终端备份常用指令 git reflog //查看更新 git add filename //提交修改 git commit -m "20240825修改" //备注修改 git reset --hard 1094a //回退版本 exit …

【深入理解SpringCloud微服务】深入理解Eureka核心原理

深入理解Eureka核心原理 Eureka整体设计Eureka服务端启动Eureka三级缓存Eureka客户端启动 Eureka整体设计 Eureka是一个经典的注册中心&#xff0c;通过http接收客户端的服务发现和服务注册请求&#xff0c;使用内存注册表保存客户端注册上来的实例信息。 Eureka服务端接收的…

FPGA-ROM IP核的使用

1.理论 ROM全称&#xff1a;Read-Only Memory&#xff0c;也就是只读型固态半导体存储器&#xff0c;即一旦存储信息&#xff0c;无法再改变&#xff0c;信息也不会因为电源关闭消失。但在FPGA中&#xff0c;实际使用的ROM IP核并不是真正的ROM&#xff0c;其实都是内部的RAM资…

Linux之Mysql索引和优化

一、MySQL 索引 索引作为一种数据结构,其用途是用于提升数据的检索效率。 1、索引分类 - 普通索引(INDEX):索引列值可重复 - 唯一索引(UNIQUE):索引列值必须唯一,可以为NULL - 主键索引(PRIMARY KEY):索引列值必须唯一,不能为NULL,一个表只能有一个主键索引 - 全…

spring security如何适配盐存在数据库中的密码

19.token认证过滤器代码实现_哔哩哔哩_bilibili19.token认证过滤器代码实现是SpringSecurity框架教程-Spring SecurityJWT实现项目级前端分离认证授权-挑战黑马&尚硅谷的第20集视频&#xff0c;该合集共计41集&#xff0c;视频收藏或关注UP主&#xff0c;及时了解更多相关视…

C#类型基础Part1-值类型与引用类型

C#类型基础Part1-值类型与引用类型 参考资料前言值类型引用类型装箱和拆箱 参考资料 《.NET之美–.NET关键技术深入与解析》 前言 C#中的类型一共分为两类&#xff0c;一类是值类型&#xff08;Value Type&#xff09;,一类是引用类型&#xff08;Reference Type&#xff09…

Java集合的重点

一、Java集合 Java集合包含一组接口和实现类&#xff0c;底层使用不同类型的数据结构&#xff0c;提供不同特点的存储方式&#xff0c;主要分为两大类&#xff1a; Collection单列集合和Map键值对集合。 1.Collection接口用于表示单例集合&#xff0c;主要包括三个子接口&am…

24年支付行业概况与未来

​ 一、行业背景介绍 支付行业作为现代金融体系的基石&#xff0c;正经历着前所未有的变革。随着科技的发展和人们对便捷支付方式的需求不断提高&#xff0c;支付行业在近年来得到了迅猛发展。在我国&#xff0c;支付行业经过多年的发展和市场竞争&#xff0c;已经形成了多元化…

为什么 Vue Router 的 History 模式和 React Router 的 Browser 模式需要服务器支持?

Vue Router 的 history 模式和 React Router 的 Browser 模式使用的是 HTML5 的 History API&#xff0c;它允许你修改浏览器地址栏的 URL 而不发送请求到服务器。这种方式可以创建干净的 URL&#xff0c;没有 # 符号&#xff0c;看起来就像传统的服务器端路由。 然而&#xf…

Navicat 17 新特性 | Navicat BI 功能革新升级,助力企业深度挖掘数据潜能

随着 Navicat 17 的发布&#xff0c;在业界引起了广泛的共鸣与热议。我们曾深入剖析其众多革新特性&#xff0c;包括模型设计创新与优化、高效的查询与配置、用户界面交互体验再升级&#xff0c;原生适配国产平台和操作系统和数据字典提升数据结构清晰度&#xff0c;这些新特性…

【第12章】Spring Cloud之集成 Spring Cloud Gateway

文章目录 前言一、新建项目1. 项目结构2. 引入依赖3. 启动类4. 基本配置 二、新建配置三、新建服务1. 提供者2. 消费者 四、单元测试1. 启动网关服务2. 提供者3. 消费者 总结 前言 Spring Cloud Gateway是一个基于Spring Framework 5、Spring Boot 2和Project Reactor等技术构…

python的csv库常用操作

csv 模块是 Python 标准库中的一个模块&#xff0c;用于处理 CSV&#xff08;逗号分隔值&#xff09;文件。它提供了简单易用的功能来读取和写入 CSV 文件。以下是一些常用的操作&#xff1a; 一、读取 CSV 文件 新建文件data.csv&#xff0c;内容如下&#xff1a; 使用 csv.…

浪潮自研交换机系列常见问题处理

CN61108PC-V-H 不能PING通任何地址&#xff0c;也不能被PING 输入ip traceroute enable既可。注意视图 交换机通过console口远程登录至其他交换机&#xff0c;掉线后console口无法使用 例如有2台交换机A和B&#xff0c;在A交换机上插上console线登录后&#xff0c;在A通过SSH…