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.mzph.cn/news/98969.shtml

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

相关文章

【Sentinel】Sentinel原码分析

本文内容来自【黑马】Sentinel从使用到源码解读笔记,做了部分修改和补充 目录 Sentinel 基本概念 基本流程 Node Entry 定义资源的两种方式 使用try-catch定义资源 使用注解标记资源 基于注解标记资源的实现原理 Context 什么是Context Context的初始化 …

SpringBoot青海省旅游系统

本系统采用基于JAVA语言实现、架构模式选择B/S架构,Tomcat7.0及以上作为运行服务器支持,基于JAVA、JSP等主要技术和框架设计,idea作为开发环境,数据库采用MYSQL5.7以上。 开发环境: JDK版本:JDK1.8 服务器…

查看本机Arp缓存,以及清除arp缓存

查看Arp缓存目录 Windows 系统使用 winR,输入cmd 在命令窗口输入 arp -a 删除Arp缓存目录 在命令窗口输入 arp -d * 查看主机路由表

C#WPF StackPanel布局及Border边框应用实例

本文介绍C#WPF StackPanel布局及Border边框应用实例,通过演示掌握StackPanel布局及Border边框用法,并对对齐方式、边距、尺寸设置、Border的圆角使用作了演示。 具体概念本文不再赘述。 Xaml文件: <Windowx:Class="PropertyDemo.MainWindow"xmlns="htt…

深度学习纯小白如何从零开始写第一篇论文?看完这篇豁然开朗!

&#x1f4e2;前言 上个月小贾消失了一段时间&#xff0c;原因就是。。。 写论文去啦&#xff01;&#xff01;&#xff01; 先拿我导的认可镇个楼&#xff1a; 本篇文章将分享我个人从迷茫地找方向→苦苦做了48次实验才高效涨点→写论文到头秃等等一系列真实经历&#xff0c…

R语言通过接口获取网上数据平台的免费数据

大家好&#xff0c;我是带我去滑雪&#xff01; 作为一名统计学专业的学生&#xff0c;时常和数据打交道&#xff0c;我深知数据的重要性。数据是实证研究的重要基础&#xff0c;每当在完成一篇科研论文中的实证研究部分时&#xff0c;我都能深刻体会实证研究最复杂、最耗时的工…

【广州华锐互动】VR线上播控管理系统让虚拟现实教学效果更加显著

随着科技的不断发展&#xff0c;虚拟现实(VR)技术已经逐渐走进我们的生活&#xff0c;尤其在教育领域&#xff0c;VR技术的应用为学生提供了全新的学习体验。 广州华锐互动作为一家成立16年的老牌VR公司&#xff0c;开发了不少VR教学课件&#xff0c;包括物理、化学、农林、土木…

【Linux】 grep命令使用

grep (global regular expression) 命令用于查找文件里符合条件的字符串或正则表达式。 grep命令 -Linux手册页 语法 grep [选项] pattern [files] ls命令常用选项及作用 执行令 grep --help 执行命令结果 参数 -i&#xff1a;忽略大小写进行匹配。-v&#xff1a;反…

分类预测 | MATLAB实现KOA-CNN-BiLSTM开普勒算法优化卷积双向长短期记忆神经网络数据分类预测

分类预测 | MATLAB实现KOA-CNN-BiLSTM开普勒算法优化卷积双向长短期记忆神经网络数据分类预测 目录 分类预测 | MATLAB实现KOA-CNN-BiLSTM开普勒算法优化卷积双向长短期记忆神经网络数据分类预测分类效果基本描述程序设计参考资料 分类效果 基本描述 1.MATLAB实现KOA-CNN-BiLST…

剑指offer——JZ68 二叉搜索树的最近公共祖先 解题思路与具体代码【C++】

一、题目描述与要求 二叉搜索树的最近公共祖先_牛客题霸_牛客网 (nowcoder.com) 题目描述 给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。 1.对于该题的最近的公共祖先定义:对于有根树T的两个节点p、q&#xff0c;最近公共祖先LCA(T,p,q)表示一个节点x&#…

你知道AI智能知识库最大的用处在哪里吗?

在当今信息爆炸的时代&#xff0c;获取准确、及时的知识变得至关重要&#xff0c;而AI智能知识库的出现正好可以很好地解决这些问题。AI智能知识库的最大用处是在于帮助人们快速、高效地获取所需的知识和信息。它不仅可以减少人们在查找和筛选信息上的时间和精力投入&#xff0…

rust组织结构

一 、crate crate称为箱。 crate有两种形式&#xff1a;二进制箱(binary crate)和库箱(library crate)。 二进制箱必须有一个 main 函数&#xff0c;可以编译为可执行程序。 库箱并没有 main 函数&#xff0c;它们也不会编译为可执行程序&#xff0c;它们只是提供一些函数供其…

Arm64体系架构-MPIDR_EL1寄存器

背景 在Arm64多核处理器中, 各核间的关系可能不同. 比如1个16 core的cpu, 每4个core划分为1个cluster,共享L2 cache. 当我们需要从core 0将任务调度出来时,如果优先选择core 1~3, 那么性能明显时优于其他core的. 那么操作系统怎么知道core之间这样的拓扑信息呢? Arm提供了MPID…

Selenium+Phantomjs动态获取CSDN下载资源信息和评论

源代码 # codingutf-8 from selenium import webdriver from selenium.webdriver.common.keys import Keys import selenium.webdriver.support.ui as ui from selenium.webdriver.common.action_chains import ActionChains import time import re…

分享好用的Cloudflare测速文件

引言 有时候我们想测试一下自己的带宽&#xff0c;或者梯子的速度。又或者我们想看看我们服务器的速度到底有多快&#xff1f;那么就需要一个大文件来支撑我们进行这样的测试。 而这样的测速文件需要有两个特性&#xff1a; 不受速率限制&#xff0c;也就是说能把你的带宽拉…

登录系统的时候账号和密码加密传输

1、登录系统的时候账号和密码加密传输&#xff0c;前端解密&#xff0c;后端解密 2、前端点击登录按钮的执行方法 function loginSubmit() {//先把账号的属性设置为password&#xff0c;这样点击登录按钮&#xff0c;看到的就是加密后的账号$("input[nameusername]"…

FPGA设计时序约束三、设置时钟组set_clock_groups

目录 一、背景 二、时钟间关系 2.1 时钟关系分类 2.2 时钟关系查看 三、异步时钟组 3.1 优先级 3.2 使用格式 3.3 asynchronous和exclusive 3.4 结果示例 四、参考资料 一、背景 Vivado中时序分析工具默认会分析设计中所有时钟相关的时序路径&#xff0c;除非时序约束…

Java包装类、装箱和拆箱

在 java 的设计中提倡一种思想&#xff0c;即一切皆对象。但是从数据类型的划分中&#xff0c;我们知道 Java 中的数据类型分为基本数据类型和引用数据类型&#xff0c;但是基本数据类型怎么能够称为对象呢&#xff1f;于是 Java 为每种基本数据类型分别设计了对应的类&#xf…

引导滤波融合matlab

引导滤波&#xff08;Guided Filter&#xff09;是一种用于图像增强和融合的技术&#xff0c;它可以用于将一幅图像的细节信息&#xff08;引导图像&#xff09;融合到另一幅图像&#xff08;目标图像&#xff09;中。在MATLAB中&#xff0c;你可以使用以下步骤来执行引导滤波融…

Games104现代游戏引擎笔记 基础ai

游戏AI navigation(导航系统) 地图的表达形式&#xff0c; 寻路&#xff0c;路径优化 Map representation&#xff1a; 1.可行走区域&#xff08;物理碰撞&#xff0c;跳跃距离&#xff0c;攀爬高度&#xff09; 2.表达形式&#xff1a;waypoint networks(路点网络图)&#…