【B站保姆级视频教程:Jetson配置YOLOv11环境(四)cuda cudnn tensorrt配置】

Jetson配置YOLOv11环境(4)cuda cudnn tensorrt配置

文章目录

  • 0. 简介
  • 1. cuda配置:添加cuda环境变量
  • 2. cudnn配置
  • 3. TensorRT Python环境配置
    • 3.1 系统自带Python环境中的TensorRT配置
    • 3.2 Conda 虚拟Python环境中的TensorRT配置

0. 简介

官方镜像中,cuda,cudnn已随 JetPack SDK 一同安装,因此无需手动安装,只需添加环境变量即可。对于TensorRT,也已安装,要在Python中调用,只需安装Python的TensorRT模块即可。

在这里插入图片描述

1. cuda配置:添加cuda环境变量

  1. 打开~/.bashrc。
sudo vim ~/.bashrc   
  1. 在文本末输入如下代码:
export LD_LIBRARY_PATH=/usr/local/cuda/lib64
export PATH=$PATH:/usr/local/cuda/bin
export CUDA_HOME=/usr/local/cuda

命令1:设置 LD_LIBRARY_PATH 环境变量,指定CUDA动态链接库的搜索路径

LD_LIBRARY_PATH是 Linux 系统中的一个环境变量,用于指定动态链接库的搜索路径

LD_LIBRARY_PATH环境变量设置为CUDA 库所在的路径/usr/local/cuda/lib64


命令2:将 CUDA 的可执行文件路径添加到系统的 PATH 环境变量中

PATH环境变量用于指定可执行文件的搜索路径

将 CUDA 的可执行文件所在路径/usr/local/cuda/bin添加到PATH环境变量中。从而使系统可以在该目录下找到
CUDA 的工具和命令(如 nvcc 编译器)。


命令3:设置 CUDA_HOME 环境变量,指定 CUDA 的安装路径。

CUDA_HOME环境变量通常用于指定 CUDA 的安装目录

Pytorch和Torchvision的编译会依赖 CUDA_HOME 来定位 CUDA 的库和工具。


$:引用变量的值。遇到 $ 后面跟着合法的变量名,就会把 $ 和变量名替换成变量所存储的值。

export :作用就是将局部变量提升为环境变量。

  1. 使新的环境变量或修改生效
source ~/.bashrc
  1. 验证,出现下图信息则成功配置
nvcc -V

在这里插入图片描述

2. cudnn配置

Jetpack中虽然安装了cuDNN,但没有将对应的头文件、库文件放到cuda目录,因此需要复制cudnn的头文件和库文件到cuda目录下

sudo cp /usr/include/cudnn*.h /usr/local/cuda/include
sudo cp /usr/lib/aarch64-linux-gnu/libcudnn* /usr/local/cuda/lib64

3. TensorRT Python环境配置

3.1 系统自带Python环境中的TensorRT配置

TensorRT默认安装位置在/usr/lib/python3.8/dist-packages/中,若找不到trt, 则先执行以下命令,安装NVIDIA TensorRT 的 Python 3 绑定库

sudo apt install python3-libnvinfer

这样再进入上述路径后tensorrt就存在了

nx@nx-desktop:/usr/lib/python3.8/dist-packages$ ls
cv2  numpy  tensorrt  tensorrt-8.5.2.2.dist-info

输入pip list后tensorrt也出现了。

在这里插入图片描述

3.2 Conda 虚拟Python环境中的TensorRT配置

若要在虚拟环境中使用tensorrt,由于tensorrt不能被虚拟环境pytorch中定位使用。因此我们需要软链接一下,运行如下命令:

sudo ln -s /usr/lib/python3.8/dist-packages/tensorrt* /home/nx/anaconda3/envs/pytorch/lib/python3.8/site-packages/

测试一下,运行如下指令:

python -c "import tensorrt;print(tensorrt.__version__)"

若出现版本号8.5.2.2,则成功。

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

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

相关文章

【深度分析】DeepSeek 遭暴力破解,攻击 IP 均来自美国,造成影响有多大?有哪些好的防御措施?

技术铁幕下的暗战:当算力博弈演变为代码战争 一场针对中国AI独角兽的全球首例国家级密码爆破,揭开了数字时代技术博弈的残酷真相。DeepSeek服务器日志中持续跳动的美国IP地址,不仅是网络攻击的地理坐标,更是技术霸权对新兴挑战者的…

DeepSeek R1功能设计涉及的几个关键词

DeepSeek R1作为人工智能助手,其功能设计主要基于以下步骤: 字典过滤与词汇选择 使用蒸馏技术对候选词汇进行筛选和优化,确保选择的词汇与上下文语境相关且准确。候选词汇通过多源数据(如公开文档、专家分析等)进行训练…

如何在数据湖中有效治理和管理“数据沼泽”问题,提高数据的可发现性和利用率?

在数据湖中有效治理和管理“数据沼泽”问题,提高数据的可发现性和利用率,需要从多个方面入手,包括数据治理、元数据管理、数据质量控制、安全性保障以及生命周期管理等。以下是具体的策略和方法: 1. 构建强大的数据治理框架 数据…

【4Day创客实践入门教程】Day3 实战演练——桌面迷你番茄钟

Day3 实战演练——桌面迷你番茄钟 目录 Day3 实战演练——桌面迷你番茄钟1. 选择、准备元件、收集资料2. 硬件搭建3.编写代码 Day0 创想启程——课程与项目预览Day1 工具箱构建——开发环境的构建Day2 探秘微控制器——单片机与MicroPython初步Day3 实战演练——桌面迷你番茄钟…

Oracle Primavera P6自动进行进度计算

前言 在P6 Professional 有一个自动计划计算的选项,很多人不了解该设置如何使用,以及什么时候该启动这项配置。 详情 P6 Professional 默认为非自动进度计算。启用自动选项后,可以快速查看调度更改的效果。 ​ ​ 如图所示,当你…

DeepSeek-R1 论文解读 —— 强化学习大语言模型新时代来临?

近年来,人工智能(AI)领域发展迅猛,大语言模型(LLMs)为通用人工智能(AGI)的发展开辟了道路。OpenAI 的 o1 模型表现非凡,它引入的创新性推理时缩放技术显著提升了推理能力…

舵机型号与识别

舵机型号繁多,不同品牌和制造商有不同的命名规则。常见的舵机品牌包括 Futaba、Hitec、Tower Pro、Savox、JX Servo 等。以下是舵机型号的常见识别方法以及一些典型的型号示例: 一、舵机型号的识别方法 型号命名规则: 舵机型号通常由字母和数…

6.二分算法

二分 二分算法,也称为二分查找或折半查找,是一种在有序数组中查找特定元素的高效算法。以下是 C 中二分算法的相关内容: 算法原理 二分算法的基本思想是将有序数组分成两部分,然后将目标值与中间元素进行比较。如果目标值等于中…

大模型GUI系列论文阅读 DAY4续:《Large Language Model Agent for Fake News Detection》

摘要 在当前的数字时代,在线平台上虚假信息的迅速传播对社会福祉、公众信任和民主进程构成了重大挑战,并影响着关键决策和公众舆论。为应对这些挑战,自动化假新闻检测机制的需求日益增长。 预训练的大型语言模型(LLMs&#xff0…

LevelDB 源码阅读:写入键值的工程实现和优化细节

读、写键值是 KV 数据库中最重要的两个操作,LevelDB 中提供了一个 Put 接口,用于写入键值对。使用方法很简单: leveldb::Status status leveldb::DB::Open(options, "./db", &db); status db->Put(leveldb::WriteOptions…

【Proteus仿真】【51单片机】多功能计算器系统设计

目录 一、主要功能 二、使用步骤 三、硬件资源 四、软件设计 五、实验现象 联系作者 一、主要功能 1、LCD1602液晶显示 2、矩阵按键​ 3、加减乘除,开方运算 4、带符号运算 5、最大 999*999 二、使用步骤 基于51单片机多功能计算器 包含:程序&…

利用Manim库结合`matplotlib`、`numpy`和`scipy`来制作工作流程动画

以下是一个利用Manim库结合matplotlib、numpy和scipy来制作工作流程动画,展示流场速度分布计算模型,以及三流喷嘴的速度场和主要参数分布的可视化图形与动画的示例代码。这个示例将模拟一个简化的三流喷嘴速度场,通过计算速度分布并将其可视化…

origin调整图像的坐标轴,修改坐标轴起始点,增量

接上一篇帖子,如果再修改数据之后或者当前的数据之间差距较小,怎么通过调整坐标轴来使数据之间的差距更明显,举个例子, 像下面这个图的entropy指标,都是介于6到9之间,如果y轴坐标都从0开始,使用…

Redis_Redission的入门案例、多主案例搭建、分布式锁进行加锁、解锁底层源码解析

目录 ①. Redis为什么选择单线程? ②. 既然单线程这么好,为什么逐渐又加入了多线程特性? ③. redis6的多线程和IO多路复用入门篇 ④. Redis6.0默认是否开启了多线程? ⑤. REDIS多线程引入总结 ①. Redis为什么选择单线程? ①…

集合的奇妙世界:Python集合的经典、避坑与实战

集合的奇妙世界:Python集合的经典、避坑与实战 内容简介 本系列文章是为 Python3 学习者精心设计的一套全面、实用的学习指南,旨在帮助读者从基础入门到项目实战,全面提升编程能力。文章结构由 5 个版块组成,内容层层递进&#x…

2025年1月个人工作生活总结

本文为 2025年1月工作生活总结。 研发编码 使用sqlite3命令行查询表数据 可以直接使用sqlite3查询数据表,不需进入命令行模式。示例如下: sqlite3 database_name.db "SELECT * FROM table_name;"linux shell使用read超时一例 先前有个编译…

ARM嵌入式学习--第十一天(中断处理 , ADC)

--中断的概念 中断是指计算机运行过程中,出现某些意外情况需主机干预时,机器能自动停止正在运行的程序并转入处理新情况的程序,处理完毕后又返回被暂停的程序继续运行 --CPU处理事情的方式 -轮询方式 不断查询是否有事情需要处理&#xff0c…

android Camera 的进化

引言 Android 的camera 发展经历了3个阶段 : camera1 -》camera2 -》cameraX。 正文 Camera1 Camera1 的开发中,打开相机,设置参数的过程是同步的,就跟用户实际使用camera的操作步骤一样。但是如果有耗时情况发生时,会…

JavaScript原型链与继承:优化与扩展的深度探索

在 JavaScript 的世界里,万物皆对象,而每个对象都有一个与之关联的原型对象,这就构成了原型链的基础。原型链,简单来说,是一个由对象的原型相互连接形成的链式结构 。每个对象都有一个内部属性[[Prototype]]&#xff0…

vue2项目(一)

项目介绍 电商前台项目 技术架构:vuewebpackvuexvue-routeraxiosless.. 封装通用组件登录注册token购物车支付项目性能优化 一、项目初始化 使用vue create projrct_vue2在命令行窗口创建项目 1.1、脚手架目录介绍 ├── node_modules:放置项目的依赖 ├──…