CUDA+cuDNN+TensorRT 配置避坑指南

深度学习模型加速部署的环境配置,需要在本地安装NVIDIA的一些工具链和软件包,这是一个些许繁琐的过程,而且一步错,步步错。笔者将会根据自己的经验来提供建议,减少踩坑几率。当然可以完全按照官方教程操作,但是本人也发现一些问题,下面会说到。官方教程:Installation Guide :: NVIDIA Deep Learning TensorRT Documentation

笔者的PC配置信息为:ubuntu22.04 + 1650

下面将会从cuda driver驱动安装说起,各个步骤的注意事项和技巧。

1.驱动安装

        对于显卡驱动安装,网上的教程五花八门,大部分教程都是手动安装,原因是比较稳定。但并不总是如此。nvidia官方推荐的是通过系统自带的软件更新器安装,因此推荐使用这种简单的方法,效果一样。

        当然通过自带的软件更新器安装也可以通过命令行进行。

        首先检查驱动:ubuntu-drivers devices 

        效果和上图一样

        然后安装驱动 (建议安装带recommanded) :sudo apt-get install nvidia-driver-xxx(替换成自己的)

        然后重启 reboot

        查看显卡驱动安装情况:nvidia-smi

        可以看见驱动版本号525.125,CUDA版本号12.0。第一个坑

        此处需要注意,此处的CUDA Version意思是最大支持的cuda版本,等会实际安装的cuda toolkit可能会小于这个版本,但下载的时候仍然需要按照此处的版本为标准,而不是toolkit的版本。对于笔者,后续也就是12.0,切记。

        至此,驱动安装结束。

2.cuda toolkit安装

        cuda toolkit安装需要按照官方指定的对应驱动版本下载。CUDA 12.2 Release Notes — cuda-toolkit-release-notes 12.2 documentation

        笔者驱动为525.125,因此选择第一个进行下载(从我的驱动信息同样说明,笔者的cuda最高支持版本为12.0,刚好与其对应)。各位根据自己的版本下载,官方链接:                           CUDA Toolkit Archive | NVIDIA Developer

        进行完上面的操作之后,还需要手动安装nvcc        

        sudo apt install nvidia-cuda-toolkit

        安装可能失败,提示需要安装其他的XXX依赖包,

        只需要根据提示操作:sudo apt-get install XXX   

        安装结束,验证:nvcc -V

        查看cuda toolkit版本  

        此处,第二个坑,本站有帖子说此处显示的为cuda版本,也就是11.5。但通过笔者的实践操作,这是不对的,接下来如果按照这个版本去安装cudNN和tensorRT会导致失败,笔者已经通过不同的方式验证了其失败的情况。我已经删除一些我下过的deb包了,因为太占空间,下面是我还没来得及删除的。因此cuda版本请参考第一条,驱动安装,以那里为准。NVIDIA官方在教程里并为明确说明,因此这是一个坑。

3.cuDNN安装

        nvcc安装结束,开始安装cuDNN。首先从中文官网下载匹配的deb包,选择对应版本。CUDA 深度神经网络库 (cuDNN) | NVIDIA 开发者

        此时会发现cn网站不提供下载,也是醉了。

        被迫转到CUDA Deep Neural Network (cuDNN) | NVIDIA Developer英文官网下载,而且需要注册账号,没办法。登陆之后,你有两个下载选择。

        上文已经讲到,一切以第一小节里的cuda version信息为准。笔者为cuda为12.0因此选择第一个。同样选择对应平台版本下载即可。

        下载完成之后进行安装:sudo dpkg -i xxx.deb

        安装完成之后继续执行:

sudo cp /var/cudnn-local-repo-*/cudnn-local-*-keyring.gpg /usr/share/keyrings/

sudo apt-get update

        接下来是第三个坑,官方文档里需要继续安装三个软件包,但是按照官方的提示是无法安装的,如下图,红色的是上面两个已经执行的命令,绿色的是接下来要执行的命令。分别是安装三个软件包。

        然而,这三个软件包是放在系统的:/var/cudnn-local-repo-ubuntu目录下

        进入该目录直接sudo dpkg -i xxx.deb安装即可。

        安装完成之后,进行验证,直接按照官方的verify方法即可:Installation Guide - NVIDIA Docs

最后输出test passed即可。

4.tensorRT安装

        官网下载Log in | NVIDIA Developer,找到自己的cuda版本和平台。官方安装步骤Installation Guide :: NVIDIA Deep Learning TensorRT Documentation

        安装下载的deb包,根据提示操作。

        最后测试是否成功:dpkg -l | grep TensorRT

        输出如下:

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

xilinx的原语的使用

xilinx的原语的使用 在学习FPGA实现千兆网时需要GMII转RGMII,这就涉及了原语的使用,特此记录! 一、原语 与RGMII接口相关的原语: BUFG:全局时钟网络 BUFIO:只能采集IO的数据,采集IO数据的时候延时是最低的…

Ubantu 20.04 卸载与安装 MySQL 5.7 详细教程

文章目录 卸载 MySQL安装 MySQL 5.71.获取安装包2.解压并安装依赖包3.安装 MySQL4.启动 MySQL 扩展开启 gtid 与 binlog 卸载 MySQL 执行以下命令即可一键卸载,包括配置文件目录等。 # 安装sudo软件 apt-get install sudo -y # 卸载所有以"mysql-"开头的…

Raspberry Pi 5 新平台 新芯片组

Raspberry Pi 5 的 CPU 和 GPU 性能提高了两到三倍;内存和 I/O 带宽大约是两倍;并且是首款采用英国剑桥内部设计的芯片的 Raspberry Pi 计算机,4GB 型号的售价为 60 美元,8GB 版本的售价为 80 美元 主要特点包括: 2.4…

[架构之路-229]:计算机体硬件与系结构 - 计算机系统的矩阵知识体系结构

目录 一、纵向:目标系统的分层结构 1.1 目标系统的架构 1.2 网络协议栈 1.3 计算机程序语言分层 二、横向(构建目标系统的时间、开发阶段):软件工程 三、二维矩阵知识体系结构 一、纵向:目标系统的分层结构 1.1…

关于字符拼接

当然,以下是加入了幽默注释的代码和对应的逻辑树: # 提示用户输入input和txt内容,期待用户真有输入 input_text input("请输入input文本:") # 好了,快点输入吧 txt_text input("请输入txt文本&#…

软件工程第四周

模型建立的基本理念 模型是对现实世界复杂系统的简化和抽象,目的是为了更好地理解、分析和预测系统的行为。它能够真实反映研究对象的整体结构 or 某一侧面(功能、反应)的本质特征和变化规律。可以建立不同的子模型用于反应系统不同的侧面。同…

DP读书:《openEuler操作系统》(四)鲲鹏处理器

鲲鹏处理器 一、处理器概述1.Soc2.Chip3.DIE4.Cluster5.Core 二、体系架构1.计算子系统2.存储子系统3.其他子系统 三、CPU编程模型1.中断与异常2.异常级别a.基本概念b.异常级别切换 下面为整理的内容:鲲鹏处理器 架构与编程(一)处理器与服务器…

Leetcode290. 单词规律

给定一种规律 pattern 和一个字符串 s ,判断 s 是否遵循相同的规律。 这里的 遵循 指完全匹配,例如, pattern 里的每个字母和字符串 s 中的每个非空单词之间存在着双向连接的对应规律。 解题思路:哈希 力扣(LeetCode&…

MIT 6.S081学习笔记(第二章)

〇、前言 本文主要完成MIT 6.S081 实验二:system call 一、Using gdb (easy) Question requirements In many cases, print statements will be sufficient to debug your kernel, but sometimes being able to single step through some assembly code or inspe…

【C++】运算符重载 ⑤ ( 一元运算符重载 | 使用 成员函数 实现 前置 ++ 自增运算符重载 | 使用 成员函数 实现 前置 - - 自减运算符重载 )

文章目录 一、一元运算符重载1、使用 成员函数 实现 前置 自增运算符重载2、使用 成员函数 实现 前置 - - 自减运算符重载 二、完整代码示例 一、一元运算符重载 1、使用 成员函数 实现 前置 自增运算符重载 使用 全局函数 实现 前置 自增运算符重载 : 首先 , 写出函数名 ,…

Java数据结构————优先级队列(堆)

一 、 优先级队列 有些情况下,操作的数据可能带有优先级, 一般出队列时,可能需要优先级高的元素先出队列。 数据结构应该提供两个最基本的操作, 一个是返回最高优先级对象, 一个是添加新的对象。 这种数据结构就是优…

[架构之路-228]:计算机硬件与体系结构 - 硬盘存储结构原理:如何表征0和1,即如何存储0和1,如何读数据,如何写数据(修改数据)

目录 前言: 一、磁盘的盘面组成 1.1 磁盘是什么 ​编辑1.2 磁盘存储介质 1.3 磁盘数据的组织 1.3.1 分层组织:盘面号 1.3.2 扇区和磁道 1.3.3 数据 1.3.4 磁盘数据0和1的存储方式 1.3.5 磁盘数据0和1的修正方法 1.3.6 磁盘数据0和1的读 二、…

(四)正点原子STM32MP135移植——u-boot移植

一、概述 u-boot概述就不概述了,u-boot、kernel、dtb三件套,dddd 经过国庆艰苦奋战,已经成功把所有功能移植好了 二、编译官方代码 进入u-boot的目录 2.1 解压源码、打补丁 /* 解压源码 */ tar xf u-boot-stm32mp-v2022.10-stm32mp-r1-r0.…

mysql双主双从读写分离

架构图: 详细内容参考: 结果展示: 178.119.30.16(从)- master 178.119.30.17(从)- slave 由上述结果可以看出,产生了主备节点同时抢占VIP的问题(即脑裂问题&#xff09…

React18入门(第二篇)——React18+Ts项目配置husky、eslint、pretttier、commitLint

前言 我的项目版本如下: React: V18.2.0Node.js: V16.14.0TypeScript:最新版工具: VsCode 本文将采用图文详解的方式,手把手带你快速完成在React项目中配置husky、prettier、commitLint,实现编码规范的统…

nodejs+vue养老人员活体鉴权服务系统elementui

系统 统计数据:统计报表、人员台账、机构数据、上报数据、核验报表等,养老人员活体鉴权服务是目前国家养老人员管理的重要环节,主要为以养老机构中养老人员信息为基础,每月进行活体鉴权识别并统计数据为养老补助等管理。前端功能&…

使用正则表达式批量修改函数

贪心匹配,替换中的$1代表括号中的第一组。 使用[\s\S\r]代表所有字符,同时加个问号代表不贪心匹配:

springboot学生管理系统

采用技术:springbootvue 项目亲测可以完美运行

MySql运维篇---008:日志:错误日志、二进制日志、查询日志、慢查询日志,主从复制:概述 虚拟机更改ip注意事项、原理、搭建步骤

1. 日志 1.1 错误日志 错误日志是 MySQL 中最重要的日志之一,它记录了当 mysqld 启动和停止时,以及服务器在运行过程中发生任何严重错误时的相关信息。当数据库出现任何故障导致无法正常使用时,建议首先查看此日志。 该日志是默认开启的&a…

竞赛 机器视觉 opencv 深度学习 驾驶人脸疲劳检测系统 -python

文章目录 0 前言1 课题背景2 Dlib人脸识别2.1 简介2.2 Dlib优点2.3 相关代码2.4 人脸数据库2.5 人脸录入加识别效果 3 疲劳检测算法3.1 眼睛检测算法3.2 打哈欠检测算法3.3 点头检测算法 4 PyQt54.1 简介4.2相关界面代码 5 最后 0 前言 🔥 优质竞赛项目系列&#x…