2019 年 3 月, NVIDIA 在 TX2 和 Xavier 获得成功后推出了最初的低配版 Jetson NANO 开发者工具包,广泛应用于机器人、零售、工业、农业和人工智能 OT 等各个领域。2020年10月,NVIDIA 宣布了 Jetson Nano 2GB 开发者套件 ,价格为 59 美元,这使得它对于学习人工智能和机器人技术来说更加实惠。通过 128 核 NVIDIA Maxwell GPU 和 64 位四核 Arm A57CPU 提供 472 GFLOPS 的算力,对比 Jetson 系列的高级版 AGX Xavier 提供 32 TOPS 的算力,约是后者的 1/60(FLOPS和OPS是有差异的算力概念,姑且等同视之),可以使用一些小规模、并且优化过的框架和网络进行推理,并应用于算力要求较低的边缘嵌入式AI设备中,如小型移动机器人、人脸签到打卡、口罩识别、智能门锁、智能音箱等。相校其他单板计算机架构配置较低(如 A53 的 CPU 对比树莓派4的 A72),但独特优势是在低价位上具有专用 GPU 加速处理器,CPU可以通过CUDA框架在GPU上调用CUDA功能,从而实现并行计算的可能性。
在本站的数据科学(DS)栏目中介绍了《Jetson Nano 人工智能开发者套件》的硬件信息,以下准备以“无头模式”来动手开箱使用 Jetson Nano 2GB Developer Kit,全新套件包括载板,以及已经安装在载板的模块(P3448-0003)。
硬件准备
必需
- Windows PC
- Jetson Nano 2GB Developer Kit
- Micro-USB 数据线
- 5V⎓2A USB-C 电源
- 32 GB 以上 UHS-1 卡
- 网线
非必需
- HDMI 显示器及线材
- USB 键盘及鼠标
- AC8265 2.4G/5G双模网卡,同时支持蓝牙4.2
- USB 摄像头或 MIPI CSI-2 摄像头
Jetson Nano开发者套件提供Jetson GPIO Python库等实用工具,并且可兼容很多来自 Adafruit 和 Raspberry Pi 的常见传感器和外围设备,如可以使用 Raspberry Pi 的 MIPI CSI-2 摄像头(基于原生支持的Sony IMX219传感器,Camera Module v2),以及支持包括 USB、以太网相机接口。更多硬件适配可查看官方 Jetson 生态系统。
系统烧录
在 Jetson 下载中心,有 Jetson Nano Developer Kit SD Card Image(jetson-nano-sd-card-image) 和 Jetson Nano 2GB Developer Kit SD Card Image(jetson-nano-2gb-sd-card-image)两个开发者套件 SD 卡镜像(Version 4.5.1),虽然二者文件尺寸一样,但可能并不兼容,需下载后者。
1、使用 SD 协会的 SD Card Formatter 格式化 64G microSD 卡,官方建议最小采用 32 GB UHS-1 卡;
2、使用 Etcher(当然 Win32DiskImager 也很经典)将 SD 卡镜像写入 microSD 卡,将卡插入套件;
3、USB-C 接口处使用 5V⎓2A 的高品质电源为开发者套件供电,启动并设置开发者套件。
官方的这个开机动画很流畅,但这里采用“无头模式”,没有显示器可看。
启动并设置
Windows PC 连接到以 USB-C 通电启动的开发者套件之 Micro-USB 接口。
打开设备管理器 > 端口(COM 和 LPT)以查找“USB 串行设备”的 COM 端口号,需要在 USB 串行设备条目属性 > 详细信息中选择硬件 Id 找到 VID 0955 和 PID 7020,以确认开发者套件作为 USB 串行设备的 COM 端口名称。
在 Windows PC 上打开 PuTTY,在左侧“Category”窗格中选择“Session”,右侧Connection type 选择 Serial,在“Serial line”和“Speed”中分别输入 COM 端口名称和“115200”。
单击“Open”以连接到开发者套件控制台。
初始设置,包括:
- 查看并接受 NVIDIA Jetson 软件 EULA;
- 选择系统语言、键盘布局和时区;
- 创建用户名、密码和计算机名称;
- 可选择配置无线网络;
- 选择应用分区大小,推荐使用建议的最大大小;
- 推荐建立 SWAP 空间。
最后,在 PuTTY 中看到标准 Linux 命令行提示符,可见,系统基于Ubuntu 18(尚不支持最新的Ubuntu 20)。
插上网线,更新系统。
sudo apt update
sudo apt upgrade
图形界面
安装 xrdp 或 VNC,以使用 Windows 远程桌面连接访问系统的图形界面。
sudo apt-get install xrdp vnc4server xbase-clients
如果 xrdp 远程桌面连接窗口在登录后自动退出,解决方法:
1、sudo apt install xfce4
2、echo xfce4-session > ~/.xsession
3、touch .session
4、sudo vim /etc/xrdp/startwm.sh
在. /etc/X11/Xsession前面加xfce4-session
5、sudo service xrdp restart
官方论坛中也有解决方案:
Install xfce4
sudo apt install xfce4
Comment out the last two lines in /etc/xrdp/startwm.sh
Add the following line to /etc/xrdp/startwm.sh
startxfce4
Restart xrdp
sudo service xrdp restart
也有分析作以下解决方法:
sudo vi /etc/gdm3/custom.conf
# AutomaticLoginEnable=true
# Automatic Login=[user1]
实际使用中,以下列顺序安装不会出现上述故障:
sudo apt install xfce4
sudo apt-get install xrdp vnc4server xbase-clients
官方建议是配置 VNC 服务器,如下:
USB 设备模式功能上位机访问 L4T-README 卷,包含三个 Linux for Tegra 帮助文档:
- README-usb-dev-mode.txt #使用 USB 设备模式连接到主机PC
- README-wifi.txt #使用命令行工具将Jetson连接到WiFi网络
- README-vnc.txt #配置以运行VNC服务器
开发环境
Python
和标准 Ubuntu 一样,系统预装了python 2和3,但默认为 python 为2.7版本,更多学习项目需要使用 python 3.x,新建链接。
C/C++
CUDA 工具包为 C 和 C++ 开发人员构建 GPU 加速应用提供了全面的开发环境。通常,在产品模型设计阶段使用 python 进行算法开发,而采用 C++ 来开发最终的成品,可以安装 Code-OSS(嵌入式环境下的 VS Code)、Qt5等来完成开发任务,它们内置资源管理器功能以及丰富的第三方插件。
中文输入法
由于需要使用中文搜索以及书写必要的中文注释,还是推荐安装中文输入法。Jetson Nano 自带 ibus 中文输入法,需要配置环境并下载具体的输入法和调整语言支持。
TensorFlow & PyTorch
Jetson Nano支持TensorFlow、PyTorch、Caffe和MxNet等多种主流AI框架,同时能够并行运行多个神经网络来处理数据和驱动操作。作为深度学习的主流框架:TensorFlow 和 Pytorch 分别偏向于工程开发和学习。
但是,系统并没有自带 TensorFlow 及 PyTorch 环境,需要自行安装。当然 NVIDIA 已经托管了各种开发容器,以及 pythonpipwheels 用于直接安装框架 TensorFlow。在复盘官方入门级深度学习教程 Jetson Inference(Hello AI World)的过程中,请谈到 PyTorch 的安装。
Jetson开发套件
Jetson开发套件JetPack SDK支持全Jetson系列模块,包含适用于 Linux 操作系统的最新 Linux 驱动包 (L4T) 以及用于深度学习、计算机视觉、加速计算和多媒体的 CUDA-X 加速库与 API。JetPack SDK 包含在官方镜像中,无需另外安装,目前主要包括以下组件(具体配置可安装Jtop查看,Jtop是Raffaello Bonghi 专门为 Jetson 系列制作的一款出色的调试工具,以查看Jetson的基本配置和状态):
- TensorRT和cuDNN:用于高性能深度学习应用
- CUDA:用于GPU加速计算等应用
- Multimedia API package:用于相机相关的应用及传感器驱动开发
- VisionWorks和OpenCV:用于计算机视觉开发
via - JETSON NANO DEVELOPER KIT User Guide(DA_09402_004 | January 15, 2020)
Jetson Inference
Jetson Inference(Hello AI World)是官方入门级深度学习教程,以体验Jetson的功能。重点介绍与计算机视觉相关的网络,包括使用TensorRT进行推理和使用PyTorch进行学习,以及实时摄像头的使用。包含了以下三个示例:
Jetson Inference 的学习可参考《Jetson Nano 2GB 深入 Jetson Inference 项目》一文。
学习建议
要深入玩转 Jetson Nano 2GB Developer Kit,建议配置 Raspberry Pi 摄像头及 AC8265 2.4G/5G双模网卡,以及 NVIDIA JetBot 智能小车,并事先学习 Hello AI World 项目。
按照JETSON NANO DEVELOPER KIT User Guide(DA_09402_004 | January 15, 2020)的说法,NVIDIA® Jetson Nano™ 开发者套件是一款面向创客、学习者和开发者的人工智能计算机。用户指南还包括更多信息,建议充分阅读。
已经有很多人研究Jetson Nano,可以从网络社区获得支持,如技术专栏NVIDIA Jetson Nano 2GB 系列文章,甚至Embedded Linux Wiki也为Jetson Nano建立了丰富的一页维基。
实际上,基于高效原则,推荐以附加显示器、键盘和鼠标的方式初始设置和应用;并且,Jetson Nano严重依赖有效的网络联接。
JETSON AI 课程和认证
通过 Jetson 开发人员套件以及NVIDIA 深度学习学院(DLI)提供的免费在线培训来亲自学习 AI。完成这些课程后,您将获得证书,以证明您在 Jetson 和 AI 开发方面的能力。
NVIDIA 提供两种认证途径(Jetson AI Certification Programs):任何人都可以完成的 Jetson AI 专家认证(Jetson AI Specialist Certification)以及面向教育工作者和讲师的 Jetson AI 大使认证(Jetson AI Ambassador Certification)。
版本更新
硬件
NVIDIA Jetson 单板计算机有了更丰富的产品线,最新的 Jetson AGX Orin 64GB 支持 CUDA 和 Tensor Core,AI 算力达到 275 TOPS。从 NVIDIA GPU 计算能力表可见,其计算能力(87)达到 GeForce RTX 4090(89)同等水平。《NVIDIA Jetson:适用于一切自主机器的 AI 平台》一文持续追踪 NVIDIA Jetson 硬件动态,如有更高算力需求的自主机器人开发等项目,可选择升级。
其他可参考的边缘AI竞争设备包括:
- Intel Neural Compute Stick 2, $73.27
- Google Coral USB Accelerator, $74.99
- UDOO Bolt V8, $418.00
NVIDIA JetPack SDK
NVIDIA JetPack SDK 是用于构建端到端加速 AI 应用程序的最全面的解决方案。JetPack 为 Nvidia Jetson 模块上的硬件加速 AI 边缘开发提供了完整的开发环境。
JetPack 包括带有引导加载程序的Jetson Linux、Linux 内核、Ubuntu 桌面环境以及用于加速 GPU 计算、多媒体、图形和计算机视觉的一整套库。它还包括适用于主机和开发套件的示例、文档和开发工具,并支持更高级别的 SDK,例如用于流视频分析的 DeepStream、用于机器人技术的 Isaac 和用于对话式 AI 的 Riva。
JetPack 一直支持 Jetson Orin Nano 开发套件(包括2023年7月可见的最新版本JetPack 5.1.1)。您可以安装jetson_stats以查看JetPack的当前版本与JetPack版本存档对比,以确定是否需要更新。
#sudo pip3 install jetson_stats
#jetson_release
NVIDA Jetson设备支持OTA升级,详细参考Jetson Developer Guide的Over-The-Air Updates部分。
附:算力单位
Jetson Nano旨在为入门级边缘 AI 应用程序和设备提供支持。使用 Jetson Nano 开发套件,快速开始使用全面的NVIDIA JetPack™ SDK,包括用于深度学习、计算机视觉、图形、多媒体等的加速库。如需有进一步的学习和开发需求,您应该以关键硬件的算力入手了解更多的GPU。
算力是通过对信息数据进行处理,实现目标结果输出的计算能力。用于评估电脑效能的算力单位常用OPS和FLOPS,OPS是每秒操作次数(Operations Per Second),FLOPS是每秒浮点操作次数(Floating-point Operations Per Second)。两者可近似于相等,FLOPS比OPS稍大。
在OPS和FLOPS前面加上计数单位,则有以下可换算的算力单位。
- MFLOPS(megaFLOPS)/MOPS(megaOPS):每秒一佰万(10^6)次运算;
- GFLOPS(gigaFLOPS)/GOPS(gigaOPS):每秒拾亿(10^9)次运算;
- TFLOPS(teraFLOPS)/TOPS(teraOPS):每秒万亿(10^12)次运算;
- PFLOPS(petaFLOPS)/POPS(petaOPS):每秒千万亿(10^15)次运算;
- EFLOPS(exaFLOPS)/EOPS(exaOPS):每秒百亿亿(10^18)次运算;
- ZFLOPS(zettaFLOPS)/ZOPS(zettaOPS):每秒十万京(10^21)次运算。
一些AI硬件的算力:
- NVIDIA Jetson Nano:472 GFLOPS
- Rockchip RK3566(NPU):1 TOPS
- INTEL Xeon Phi: 2.4 TFLOPS SP
- Google Coral Dev Board(Edge TPU):4 TOPS
- NVIDIA Tesla K40: 4.29 TFLOPS SP, 12 GB memory
- NVIDIA Tesla K80: 5.6 TFLOPS SP (8.74 TFLOPS SP with GPU boost), 24 GB memory
- Rockchip RK3566(NPU):6 TOPS
- NVIDIA Tesla P100: 10.6 TFLOPS SP, 16 GB memory
- NVIDIA Tesla V100: 15 TFLOPS SP (30 TFLOPS FP16, 120 TFLOPS Tensor ops), 12 GB memory
- NVIDIA Jetson AGX Xavier:32 TOPS
- Google TPU2: 180 TFLOPS Tensor ops
- NVIDIA A100:312 TFLOPs
- NVIDIA H100:1513 TFLOPs
- AMD MI100:184.6 TFLOPs
- AMD MI250:362.1 TFLOPs
NVIDIA GeForce RTX 4090是首款能(超频)提供100 TFLOP计算性能的游戏显卡。以下是一些消费级游戏显卡的浮点性能估值。
- NVIDIA GeForce RTX 4090,83
- AMD Radeon RX 7900,66
- NVIDIA GeForce RTX 4080,50
- NVIDIA GeForce RTX 4070,40
- NVIDIA GeForce RTX 3090,36
- AMD Radeon RX 6950 / GeForce RTX 3070,24
- AMD Radeon RX 6800 / Intel Arc A770,20
- NVIDIA GeForce RTX 2080 / Radeon RX 6750,14
- NVIDIA GeForce RTX 2060,7
- NVIDIA GeForce GT 1030,1
更多显卡性能可在Versus检索。
TechPowerUp 是一个 PC 硬件媒体,其 GPU 规格数据库有助于了解目标 GPU 的各项参数,并进行对比。另外,评测博主 Tim Dettmers 撰写了万字长文,给出在深度学习中使用 GPU 的经验和建议。还可以参考NVIDIA官方的GPU算力(Compute Capability)表,请注意这里的Compute Capability并不代表TFLOPS。
一些AI模型的计算量:
Characterization and Benchmarking of Deep Learning, HP Labs
浮点运算数用于衡量算法/模型的浮点运算复杂度时通常写成FLOPs,理解为计算量。
参考资料
- Getting Started with Jetson Nano 2GB Developer Kit
- NVIDIA® Jetson™ Linux Driver Package (L4T) 文档
- NVIDIA JetPack SDK 文档
- Embedded Linux Wiki - Jetson Nano
- Getting a Running Start with the NVIDIA Jetson Nano(by Apple Macbook Pro)
- 用Nvidia Jetson Nano 2GB和Python构建一个价值60美元的人脸识别系统(中文)
Jetson Nano 的资源分享:
👍
楼主残忍的关闭了评论