Ubuntu 22.04 英伟达开发环境 CUDA 12.4 | cuDNN 9.0.0 | TensorRT 10.1 版本安装指南

NVIDIA 驱动安装

前置

笔者近期重整服务器,计划重新安装操作系统并配置新的开发环境。服务器的主要配置如下:

Dell PowerEdge R730
Intel Xeon E5-2630v3 x2
64GB ECC DDR4
NVIDIA GeForce RTX 2080 Ti Rev. A
Ubuntu 22.04.5 LTS x86_64 (No Desktop)
Kernel 5.15.0-130-generic

笔者基于此配置和系统环境做出本篇文档的安装指南。安装完整的 CUDA + cuDNN + TensorRT 需要准备至少 30GB 的磁盘空间。

安装开始前请确保安装了 gccmake

sudo apt update && sudo apt upgrade && sudo apt install gcc make

之后笔者采用并安装下面所示的显卡驱动。

wget https://cn.download.nvidia.com/XFree86/Linux-x86_64/550.142/NVIDIA-Linux-x86_64-550.142.run
sudo chmod a+x ./NVIDIA-Linux-x86_64-550.142.run
sudo ./NVIDIA-Linux-x86_64-550.142.run
sudo reboot

安装完显卡驱动之后,重启系统。

CUDA Toolkit 12.4

wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-ubuntu2204.pin
sudo mv cuda-ubuntu2204.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/12.4.1/local_installers/cuda-repo-ubuntu2204-12-4-local_12.4.1-550.54.15-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu2204-12-4-local_12.4.1-550.54.15-1_amd64.deb
sudo cp /var/cuda-repo-ubuntu2204-12-4-local/cuda-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get -y install cuda-toolkit-12-4

如果出现 Command ‘nvcc‘ not found,but can be installed with: sudo apt install nvidia-cuda-toolkit 报错,需要手动添加。

先检查 cudnn 是否安装成功,输入下面的指令查看目录,如果存在 nvcc 则证明已经安装,进行下一步。

cd /usr/local/cuda/bin && ls

content in cuda_bin file

之后进入配置文件。

vim ~/.bashrc 

在文档的最后面添加下面的这两行代码,之后保存。

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

更新配置。

source ~/.bashrc

再次查看 nvcc 版本,出现如下图的 nvcc 版本。

nvcc -V

nvcc version

cuDNN 9.0.0 for CUDA 12.x

wget https://developer.download.nvidia.com/compute/cudnn/9.0.0/local_installers/cudnn-local-repo-ubuntu2204-9.0.0_1.0-1_amd64.deb
sudo dpkg -i cudnn-local-repo-ubuntu2204-9.0.0_1.0-1_amd64.deb
sudo cp /var/cudnn-local-repo-ubuntu2204-9.0.0/cudnn-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get -y install cudnn

输入下面的指令查看 cudnn 版本,出现如下图的提示。

cat /usr/include/x86_64-linux-gnu/cudnn_version_v9.h | grep CUDNN_MAJOR -A 2

cudnn version

TensorRT 10.1

首先需要去 NVIDIA 官网注册一个开发者账号,登录之后访问下面的网址。

https://developer.nvidia.com/tensorrt/download/10x

TensorRT 10.1 版本支持以下几个版本的 CUDA 工具包:

  • 12.4 update 1
  • 12.3 update 2
  • 12.2 update 2
  • 12.1 update 1
  • 12.0 update 1
  • 11.8
  • 11.7 update 1
  • 11.6 update 2
  • 11.5 update 2
  • 11.4 update 4
  • 11.3 update 1
  • 11.2 update 2
  • 11.1 update 1
  • 11.0 update 3

Pytorch 兼容 2.0 及以上版本。

ONNX-TensorRT 支持 opset 20 且官方测试验证 ONNX 1.16.0 版本的稳定性。

更详细的基础文档请访问 NVIDIA TENSORRT DOCUMENTATION 官网

TensorRT 下载界面

访问之后如上图所示,有多种安装方式:RPM, TAR 以及 DEB 格式。这里选择 DEB 格式安装。系统为 Ubuntu 22.04CUDA 版本为 12.4 。选择对应版本下载。完整的下载和安装过程接近 20 分钟。

wget https://developer.nvidia.com/downloads/compute/machine-learning/tensorrt/10.1.0/local_repo/nv-tensorrt-local-repo-ubuntu2204-10.1.0-cuda-12.4_1.0-1_amd64.deb
sudo dpkg -i nv-tensorrt-local-repo-ubuntu2204-10.1.0-cuda-12.4_1.0-1_amd64.deb
sudo cp /var/nv-tensorrt-local-repo-ubuntu2204-10.1.0-cuda-12.4/nv-tensorrt-local-E3A02F15-keyring.gpg /usr/share/keyrings/
sudo apt-get update 
sudo apt-get install tensorrt

验证安装结果,输入下面的指令,看到如下图所示则代表安装成功。

dpkg --list | grep tensorrt

Screenshot 2025-01-09 at 01.37.23

或使用如下的指令验证安装结果,得到如下图的结果则代表正确安装。

dpkg-query -W tensorrt

Screenshot 2025-01-09 at 01.38.03

使用 dpkg 安装时会出现无法使用 trtexec 指令的问题,按照下面的步骤操作即可解决问题。

首先查找安装路径。

find /usr -name trtexec

trt安装路径

之后进入配置文件。

vim ~/.bashrc 

在文档的最后面添加下面的这行代码,之后保存。

export PATH=$PATH:/usr/src/tensorrt/bin${PATH:+:${PATH}}

更新配置。

source ~/.bashrc

问题就得到解决了。

使用 TensorRT 自带的 Sample 验证一下效果,进入下面的目录,按照如下的指令操作,可以看到下图的运行结果。

cd /usr/src/tensorrt/samples/sampleOnnxMNIST
sudo make
cd /usr/src/tensorrt/bin
./sample_onnx_mnist 

TRT Sample Result

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

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

相关文章

数据结构-栈、队列和数组

栈 栈的定义 栈是只允许在一端进行插入或删除操作的线性表。首先栈式一种线性表,但限定这种线性表只能在某一端进行插入和删除操作,如图所示。 栈包括: 栈顶(Top)。允许进入插入删除的那一端。 栈底(Butt…

源代码编译安装X11及相关库、vim,配置vim(3)

一、vim插件安装 首先安装插件管理器Vundle ()。参照官网流程即可。vim的插件管理器有多个,只用Vundle就够了。然后~/.vimrc里写上要安装的插件: filetype offset rtp~/.vim/bundle/Vundle.vim call vundle#begin() Plugin VundleVim/Vundle.vim Plugin powerline…

Mysql快速列出来所有列信息

文章目录 需求描述实现思路1、如何查表信息2、如何取字段描述信息3、如何将列信息一行展示4、拼接最终结果 需求描述 如何将MySQL数据库中指定表【tb_order】的所有字段都展示出来,以备注中的中文名为列名。 实现思路 最终展示效果,即拼接出可执行执行…

LLM大模型实践10-聊天机器人

大型语言模型带给我们的激动人心的一种可能性是,我们可以通过它构建定制的聊天机器人 (Chatbot),而且只需很少的工作量。在这一章节的探索中,我们将带你了解如何利用会话形式,与具 有个性化特性&#xff08…

用python实现烟花代码,完整代码拿走不谢

有时候用python实现一些有趣的代码,既有趣,又能提升知识 使用Python实现动态烟花代码 效果如下: 不废话,直接上代码: import pygame from random import randint, uniform, choice import mathvector pygame.math…

[IoT]物联网(IoT)网络的安全性

确保物联网(IoT)网络的安全性是至关重要的,以下是一些关键措施来保障网络的安全性: 1. 数据加密 传输加密:使用TLS/SSL协议对数据传输进行加密,确保数据在传输过程中不被窃听或篡改。存储加密:对存储在设备或服务器上…

【Java项目】基于SpringBoot的【校园交友系统】

【Java项目】基于SpringBoot的【校园交友系统】 技术简介:系统软件架构选择B/S模式、SpringBoot框架、java技术和MySQL数据库等,总体功能模块运用自顶向下的分层思想。 系统简介:系统主要包括管理员和用户。 (a) 管理员的功能主要有首页、个人…

window.print()预览时表格显示不全

问题描述:使用element的table组件,表格列宽为自适应,但使用window.print()方法预览的页面会直接按预览宽度截取表格内容进行展示,造成表格可能的显示不全问题 解决方法:添加如下样式 media print {::v-deep {// 表头…

JetBrains IDEs和Visual Studio Code的对比

JetBrains IDEs和Visual Studio Code的对比 JetBrains IDEs是捷克JetBrains公司开发的一系列集成开发环境(IDE)。以下是具体介绍:IntelliJ IDEA是JetBrains 公司的一款产品 主要产品 IntelliJ IDEA:一款功能强大且广泛应用的Java集成开发环境,有开源免费的社区版和商业收…

使用强化学习训练神经网络玩俄罗斯方块

一、说明 在 2024 年暑假假期期间,Tim学习并应用了Q-Learning (一种强化学习形式)来训练神经网络玩简化版的俄罗斯方块游戏。在本文中,我将详细介绍我是如何做到这一点的。我希望这对任何有兴趣将强化学习应用于新领域的人有所帮助…

大湾区经济网与澳门红刊杂志社签署战略合作

大湾区经济网澳门1月9日电(王强)2025年1月9日,在粤港澳大湾区建设稳步推进的时代背景下,大湾区经济网与澳门红刊杂志社成功签署了合作协议,标志着双方在媒体战略合作领域迈出了坚实的一步,将共同为粤港澳大…

力扣 二叉树的最大深度

树的遍历,dfs与bfs基础。 题目 注意这种题要看根节点的深度是0还是1。 深度优先遍历dfs,通过递归分别计算左子树和右子树的深度,然后返回左右子树深度的最大值再加上 1。递归会一直向下遍历树,直到达到叶子节点或空节点。在回溯…

Mac 安装psycopg2出错:Error:pg_config executable not found的解决

在mac 上执行pip3 install psycopg2-binary出现如下错误: Error:pg_config executable not found然后我又到终端里执行 brew install postgresql16 显示 Warning: You are using macOS 15. We do not provide support for this pre-release version. It is expe…

Chapter 4.6:Coding the GPT model

4 Implementing a GPT model from Scratch To Generate Text 4.6 Coding the GPT model 本章从宏观视角介绍了 DummyGPTModel,使用占位符表示其构建模块,随后用真实的 TransformerBlock 和 LayerNorm 类替换占位符,组装出完整的 1.24 亿参数…

IDEA的Git界面(ALT+9)log选项不显示问题小记

IDEA的Git界面ALT9 log选项不显示问题 当前问题idea中log界面什么都不显示其他选项界面正常通过命令查询git日志正常 预期效果解决办法1. 检查 IDEA 的 Git 设置2. 刷新 Git Log (什么都没有大概率是刷新不了)3. 检查分支和日志是否存在4. 清理 IDEA 缓存 (我用这个成功解决)✅…

埃安UT正式入局纯电小车之争,海豚能否守擂成功

文/王俣祺 导语:2025年刚刚来临,第一波车市竞争就开打了,早在去年广州车展就吸睛无数的埃安 UT ,日前正式开启预售,被称为比亚迪海豚的“最强对手”,主要是其价格和配置也确实全面对标了 比亚迪海豚。那么&…

从configure.ac到构建环境:解析Mellanox OFED内核模块构建脚本

在软件开发过程中,特别是在处理复杂的内核模块如Mellanox OFED(OpenFabrics Enterprise Distribution)时,构建一个可移植且高效的构建系统至关重要。Autoconf和Automake等工具在此过程中扮演着核心角色。本文将深入解析一个用于准备Mellanox OFED内核模块构建环境的Autocon…

从企业级 RAG 到 AI Assistant , Elasticsearch AI 搜索技术实践

文章目录 01 AI 搜索落地的挑战02 Elasticsearch 向量性能 5 倍提升03 Elasticsearch 企业版 AI 能力全面解读04 阿里云 Elasticsearch 将准确率提升至 95%05 AI Assistant 集成通义千问大模型实现 AI Ops01 AI 搜索落地的挑战 在过去一年中,基座大模型技术的快速迭代推动了 …

java中的日期处理:只显示日期,不显示时间的两种处理方式

需要记录某个操作的操作时间,数据库中该字段为DATE类型; 插入数据的时候,使用数据库函数NOW()获取当前日期并插入: <insert id="batchInsertOrgTestersByProjectId">insert into project_org_testers(project_unid, org_tester_id,franchise_date) value…

c# 常见的几种取整场景

软件取整&#xff0c;通常指的是在计算机软件中对数值进行取整操作&#xff0c;即将一个浮点数或小数转换为整数&#xff0c;同时确定如何处理小数部分。取整操作在编程和数学计算中非常常见&#xff0c;不同的取整方法适用于不同的场景。 常见的取整方法 向零取整&#xff08…