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

NVIDIA Jetson实战笔记

概述

Orin

接触过的一款一体机,长这样:
在这里插入图片描述
三个按钮,分别是Power键、Force Recovery键和Reset键。

Orin是NVIDIA Jetson家族中的新一代硬件平台系列的名字(如Jetson Orin Nano、Orin NX、AGX Orin、TX2等)。
相比老的Xavier/Nano系列:

  • 更强的GPU(Ampere架构,更多CUDA核心和Tensor Core)
  • 更高的CPU性能(ARM Cortex-A78AE)
  • 支持更大内存和更高带宽
  • 更适合边缘AI推理、机器人、计算机视觉等高算力需求

JetPack

NVIDIA官方为Jetson系列开发板提供的SDK,可理解为一个系统发行版+驱动+AI SDK集合。基于Ubuntu LTS(通常是ARM64版本)定制的Linux系统镜像,集成:

  • NVIDIA L4T(Linux for Tegra)内核和驱动;
  • CUDA、cuDNN、TensorRT、VPI、VisionWorks等加速库;
  • NVIDIA Container Runtime(支持Docker GPU加速);
  • 示例代码、工具链等

作用

  • 为Jetson提供开箱即用的AI开发环境
  • 保证驱动、CUDA、TensorRT等的版本匹配
  • 以官方支持的方式升级系统和SDK

注:不同Orin机型需要不同版本的JetPack(驱动要匹配)。

jetson-containers

NVIDIA工程师Dusty-NV维护的开源Docker镜像和容器构建工具集,专门为Jetson平台提供各种AI/ML框架的容器版本(如PyTorch、TensorFlow、vLLM、DeepStream、OpenCV with CUDA等),并确保它们和JetPack里的CUDA/TensorRT兼容。

功能

  • 提供大量预构建镜像,直接docker run即可用;
  • 提供自动化构建脚本,生成适配Jetson的镜像;
  • 自动挂载GPU加速和硬件编解码,如CSI摄像头、V4L2等;
  • 解决ARM64平台构建AI框架可能存在的问题。

关系:

  • 依赖JetPack:容器里的CUDA/cuDNN/TensorRT要和宿主机JetPack版本对应;
  • 适配Jetson系列硬件;
  • 比官方NGC容器更贴近Jetson的实际使用(ARM64+硬件加速)

源码目录

直接贴图吧,根目录下有个packages文件夹,基本上最核心功能都在这里面;子目录命名,见名知意;其中有关llm子目录:
在这里插入图片描述
点击:
在这里插入图片描述
可见涵盖目前最主流的模型部署(推理、微调等)框架,如Ollama、LiteLLM、llama.cpp、SGLang、Unsloth。

每个子目录最核心的文件就是Dockerfile,以及围绕构建Docker镜像的脚本,如install.shbuild.shtest.sh

在vLLM实战部署Qwen2.5、Qwen3模型文章里,便是使用Dusty-NV提供的vLLM镜像:docker pull dustynv/vllm:0.7.4-r36.4.0-cu128-24.04

jetson-stats

jetson-stats,一个功能强大的开源Python工具集,专为Jetson系列设计。不仅仅是一个监控工具,更是一个集成多种实用功能的系统管理套件。

核心工具为jtop,类似于Linux下的htop,但专门针对Jetson,能显示:

  • CPU/GPU使用率、内存/SWAP、温度
  • 各类硬件加速单元状态(NVENC、NVDEC、PVA等)
  • JetPack/CUDA版本/系统信息

作用

  • 快速诊断性能瓶颈
  • 查看硬件是否在跑满/是否过热降频
  • 开发调优时的常用工具

安装

pip install jetson-stats,报错:
在这里插入图片描述
GPT(具体来说是Qwen)给出的分析:

从setuptools 77.0+版本开始,使用License类型的PyPI分类器(classifiers)来声明许可证的方式已被弃用,并被SPDX许可证表达式取代。如果你使用的setuptools版本较新(≥77.0),而你要安装的包jetson-stats仍在setup.pysetup.cfg中通过classifiers声明许可证(例如License :: OSI Approved :: GNU AGPLv3+),但没有在license字段中提供SPDX表达式,setuptools会抛出警告,并在某些配置下将此警告升级为错误,导致安装失败。

解决方法:降级setuptools,执行pip install 'setuptools<77.0'
在这里插入图片描述
成功按照,重试还是报错:
在这里插入图片描述
报错关键词:TypeError: canonicalize_version() got an unexpected keyword argument 'strip_trailing_zero'
Qwen分析:

这个错误不是因为许可证分类器的问题,而是setuptoolsdistutils兼容层之间的版本不匹配导致的。

解决方法:彻底卸载并重新安装setuptools。

# 多次运行以确保彻底卸载
pip uninstall setuptools -y
pip uninstall setuptools -y# 重新安装一个稳定兼容的旧版本(如 69.0.3)
pip install setuptools==69.0.3

由于上面提示安装版本为:<77.0,且成功安装76.1.0;于是执行pip install setuptools==76.1.0,但还是有TypeError: canonicalize_version() got an unexpected keyword argument 'strip_trailing_zero'报错。

于是卸载,安装pip install setuptools==69.0.3

选择69.0.3,因为它在77.0之前非常稳定,且广泛兼容旧项目。

成功安装:
在这里插入图片描述

命令

包括:

  • jtop:可视化系统监控器,实时查看CPU(每个核心)、GPU、内存(RAM)、交换空间(Swap)、磁盘I/O、网络I/O、温度(多个传感器)、电源状态、运行进程、风扇转速(如果支持)等。支持多种视图(ALL,GPU,CPU,MEM,ENG,CTRL,INFO),可记录数据,甚至控制风扇和电源模式(通过CTRL界面)。
    在这里插入图片描述
  • jetson_release:快速获取关键硬件和软件版本信息,包括:
    • Jetson型号(如Orin)
    • L4T:Linux for Tegra,版本号
    • 内核版本
    • CUDA版本
    • cuDNN版本
    • TensorRT版本
    • Vulkan版本
    • OpenCV版本(如果通过jetson-stats安装或检测到)
    • 系统架构(aarch64)
    • JP(JetPack)版本号(如果可检测)
      在这里插入图片描述
  • jetson_swap:管理和监控ZRAM交换空间。用途:
    • 查看状态:jetson_swap:显示当前ZRAM交换空间的大小、已用量、压缩比、压缩算法等;
    • 启用/禁用:sudo jetson_swap onsudo jetson_swap off:启用或禁用ZRAM交换;
    • 配置大小:sudo jetson_swap --size <size_in_GB>:设置ZRAM交换空间的大小。
      在这里插入图片描述
  • jetson_config:配置Jetson系统的各种设置,旨在提供统一的配置接口,主要功能包括:
    • 管理NVPModel模式:sudo jetson_config nvpmodel <mode_name>:切换系统预定义的电源/性能模式(如MAXN、5W、10W、15W等)。等同于传统的sudo nvpmodel -m <mode_name>
    • 查看可用模式:jetson_config nvpmodel --list:列出所有可用的NVPModel模式及其描述。
    • 看当前模式:jetson_config nvpmodel:显示当前激活的NVPModel模式。
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述

问题

电源模式

在这里插入图片描述

推荐阅读

  • https://developer.nvidia.cn/embedded/learn/get-started-jetson-orin-nano-devkit
  • https://developer.nvidia.com/zh-cn/blog/getting-started-with-the-deep-learning-accelerator-on-nvidia-jetson-orin/
  • https://blog.csdn.net/m0_56661101/article/details/131631706
  • https://zhuanlan.zhihu.com/p/524921257
  • https://gitee.com/linex0816/jetson-containers/blob/master/docs/setup.md
http://www.dtcms.com/a/323227.html

相关文章:

  • 相册管理系统介绍
  • <PLC><汇川><字符转换>在汇川PLC中,如何进行字符串的转换与比较?
  • 实数与复数及欧拉公式关系
  • WeTok Powerful Discrete Tokenization for High-Fidelity Visual Reconstruction
  • DAY 37 作业(补)
  • vue3上传的文件在线查看
  • Mistral Small 3.1 架构深度解析:高效小型模型的巅峰之作
  • 华数杯C题:可调控生物节律的LED光源研究——数学建模与Python实战
  • 应用层Http协议(1)
  • 大玄古籍制作软件【详细教程20:txt文档config自动化配置】,排版软件,自动排版,排版设计,个人出书,一键排版
  • MATLAB中文乱码的解决方法
  • 吴恩达机器学习笔记(4)—多变量线性回归:梯度下降(附代码)
  • STM32学习笔记6-TIM-2输出比较功能
  • Python(13) -- 面向对象
  • 智慧能源设备巡检缺陷漏检率↓76%:陌讯多模态融合算法实战解析
  • 设备点检系统二维码的应用
  • ISO5001能源管理体系认证的流程
  • 频域中的正弦波
  • Datawhale+AI夏令营_让AI读懂财报PDF task2深入赛题笔记
  • Python樱花树
  • TOMCAT笔记
  • 数据安全与隐私保护:企业级防护策略与技术实现
  • C#异步编程双利器:异步Lambda与BackgroundWorker实战解析
  • protoc 生成java文件命令,protoc生成js命令 protobuf 生成java文件命令,protobuf生成js文件命令
  • 深入理解Qt事件处理机制
  • Cursor手机版:一半是神,一半是坑
  • Linux软件编程:shell
  • pdf预览Vue-PDF-Embed
  • 定制客车系统票务管理系统功能设计
  • 深度学习入门Day8:生成模型革命——从GAN到扩散模型