当前位置: 首页 > news >正文

Jetson上安装TensorRT

前情提要:一般来说在刷 Jetson 系统镜像时,如果用 NVIDIA SDK Manager 安装了 JetPack(比如 JetPack 5.x/6.x),就会自动包含:

  • CUDA

  • cuDNN

  • TensorRT

  • 其他常用库(VisionWorks、OpenCV、DeepStream)

安装完成后,系统里已经有 TensorRT,可以直接用。但如果没有,则可能没安装全,就需要看这篇文档了。

一、Jetson's NV 和 Server's NV 的区别

1.1 安装包区别

nvidia-cuda-dev:arm64 11.5.1 是 Ubuntu 官方的,而 JetPack 6.0 要求 nvidia-cuda-dev = 6.0+b106

其他组件(cudnn8tensorrtcuda meta 包)都应该是 6.0+b106 → JetPack 源版本。

1.2 Jetson上NV各个版本

dpkg -l | grep nvidia-l4t-core # 系统版本 (L4T) 
dpkg -l | grep nvidia-cuda # CUDA 
dpkg -l | grep nvidia-cudnn # cuDNN 
dpkg -l | grep nvidia-tensorrt # TensorRT

1.3 Jetson上看NV版本的脚本

#!/bin/bash
# check_jetpack.sh
# 用于检测 JetPack 关键组件的安装和版本信息echo "=============================="
echo " Jetson JetPack 组件检测结果 "
echo "=============================="# 检查 L4T 版本
echo -n "[L4T] "
if dpkg -l | grep -q nvidia-l4t-core; thendpkg -l | grep nvidia-l4t-core | awk '{print $2, $3}'
elseecho "未安装"
fi# 检查 CUDA
echo -n "[CUDA] "
if command -v nvcc >/dev/null 2>&1; thennvcc -V | grep "release"
elseecho "未安装"
fi# 检查 cuDNN
echo -n "[cuDNN] "
if dpkg -l | grep -q nvidia-cudnn; thendpkg -l | grep nvidia-cudnn | awk '{print $2, $3}'
elseecho "未安装"
fi# 检查 TensorRT
echo -n "[TensorRT] "
if python3 -c "import tensorrt" 2>/dev/null; thenpython3 -c "import tensorrt; print('tensorrt', tensorrt.__version__)"
elseecho "未安装"
fiecho "=============================="
echo " 检测完成 "
echo "=============================="

二、Jetson安装CUDA等相关工具

2.1 更新Jetpack的apt源

  • 检查 apt 源配置

sudo vim /etc/apt/sources.list.d/nvidia-l4t-apt-source.list

需要确认有(相应的)

deb https://repo.download.nvidia.com/jetson/common r36 main 
deb https://repo.download.nvidia.com/jetson/t234 r36 main
  • 更新 apt 源

sudo apt update
  • 最后确认

sudo apt search nvidia-jetpack

观察是否能搜索到。

2.2 安装Jetpack版本的CUDA相关

  • 先卸载 Ubuntu 官方 CUDA 开发包

# 先卸载 Ubuntu 官方 CUDA 开发包 
sudo apt purge nvidia-cuda-dev nvidia-cuda-gdb nvidia-cuda-toolkit nvidia-cuda-toolkit-doc 
# 更新 apt 
sudo apt update
  • 安装

sudo apt install nvidia-cuda nvidia-cudnn8 nvidia-tensorrt
  • 更新环境变量

echo 'export PATH=/usr/local/cuda/bin:$PATH' >> ~/.bashrc 
echo 'export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc 
echo 'export LD_LIBRARY_PATH=/usr/lib/aarch64-linux-gnu:$LD_LIBRARY_PATH' >> ~/.bashrc source ~/.bashrc

2.3 进一步核对tensorrt安装

安装jetpack对应的python-tensorrt

sudo apt update 
sudo apt install python3-libnvinfer python3-libnvinfer-dev

然后看是否成功安装tensorrt:

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

如果还是找不到tensorrt,则要找下tensorrt的包在哪个位置并放入环境变量,如:

echo 'export PYTHONPATH=$PYTHONPATH:/usr/lib/python3/dist-packages' >> ~/.bashrc 
source ~/.bashrc

如果发生错误:

ImportError: libnvdla_compiler.so: cannot open shared object file: No such file or directory

参考有效帖子:https://blog.csdn.net/qq_45233572/article/details/146396937

先看自己的l4t版本:

dpkg -l | grep nvidia-l4t-core

如我的是:

ii nvidia-l4t-core 36.3.0-20240506102626 arm64 NVIDIA Core Package

36.XXXX替换到以下命令中:

wget -O - https://repo.download.nvidia.com/jetson/common/pool/main/n/nvidia-l4t-dla-compiler/nvidia-l4t-dla-compiler_36.3.0-20240506102626_arm64.deb | dpkg-deb --fsys-tarfile - | sudo tar xv --strip-components=5 --directory=/usr/lib/aarch64-linux-gnu/nvidia/ ./usr/lib/aarch64-linux-gnu/nvidia/libnvdla_compiler.so

然后加入环境变量:

echo 'export LD_LIBRARY_PATH=/usr/lib/aarch64-linux-gnu/nvidia:$LD_LIBRARY_PATH' >> ~/.bashrc 
source ~/.bashrc

到这一步,我就可以了:

2.4 安装tensorrt对应工具trtexec

  • Jetson 通过 APT 安装 trtexec

sudo apt install tensorrt sudo apt install tensorrt-samples
  • 加入环境变量

echo 'export PATH=/usr/src/tensorrt/bin:$LD_LIBRARY_PATH' >> ~/.bashrc 
source ~/.bashrc
  • trtexec版本

trtexec --help | head -n 5
http://www.dtcms.com/a/506990.html

相关文章:

  • 开发避坑指南(62):解决URLDecoder:Illegal hex characters in escape (%) pattern 异常
  • DAX分列年月日
  • 【开题答辩实录分享】以《自然灾害隐患点管理信息系统》为例进行答辩实录分享
  • dpdk如何与内核进行交互——vdev的用法
  • 丝杆模组如何满足高精度加工设备的高要求?
  • 咋做网站泉州网络推广专员
  • 【STL——vector容器】
  • 如何做网站流量统计网站建设公司中企动力
  • 练习python题目小记(三)
  • 技术视角下的财务自动化:如何用最优TCO评估RPA机器人的性价比?
  • C++ 模板再升级:非类型参数、特化技巧(含全特化与偏特化)、分离编译破解
  • 京东客网站怎么做网站开发公司创业策划
  • 线性表实战:顺序表与链表的奥秘
  • 模块的波动对整个系统的影响
  • Linux服务器编程实践58-getnameinfo函数:通过socket地址获取主机名与服务名
  • Kubernetes(三) Pod 详解与 YAML 配置实战指南
  • 做网上购物网站网络培训seo
  • 电梯门禁系统及机器人乘梯功能的安装调试需要电梯公司技术人员全程配合,这主要由电梯设备的特殊性、安全规范要求及系统集成的复杂性决定。以下是具体原因及配合内容:
  • Windows安全基线、账户密码安全、账户锁定策略、审核策略
  • 介绍一下 辜朝明 的大衰退 理论
  • STM32G474单片机开发入门(二十)单片机IAP(在应用编程)详解及Ymodem实战
  • Flink中自定义序列化器
  • Linux 线程控制与同步互斥
  • 餐饮网站开发性能需求分析电商办属于哪个单位
  • 【Devops-Jenkins自动将Java Maven工程编译成jar、并打成Docker镜像,并上传Harbor】
  • 本地window10同步ubuntu上conda指定环境,并在C#项目中通过Python.NET调用自定义python接口
  • 蕲春网站建设一个网站怎么优化
  • 实战:Python爬虫如何模拟登录与维持会话状态
  • 【完整源码+数据集+部署教程】【天线&化学】航拍图屋顶异常检测系统源码&数据集全套:改进yolo11-ContextGuided
  • Blender霓虹灯牌发光标志店招门牌生成器插件 Procedural Signs V2.0.0+预设包