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功能,从而实现并行计算的可能性。

jetson-nano-enthusiast-2gb-dev-kit-2c50-d@2x.jpg

在本站的数据科学(DS)栏目中介绍了《Jetson Nano 人工智能开发者套件》的硬件信息,以下准备以“无头模式”来动手开箱使用 Jetson Nano 2GB Developer Kit,全新套件包括载板,以及已经安装在载板的模块(P3448-0003)。

nvidia-jetson-nano-module-standing-2c50-p@2x.jpg


硬件准备


jetson-nano-2gb-batuu-dev-kit-3c33-t@2x.jpg

必需

  • 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 的摄像头(基于IMX219,Camera Module v2)。

系统烧录


在 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 的高品质电源为开发者套件供电,启动并设置开发者套件。

20191230150756185.gif

官方的这个开机动画很流畅,但这里采用“无头模式”,没有显示器可看。


启动并设置


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”以连接到开发者套件控制台。

Getting_Started-Jetson_Nano_Developer_Kit-COM_port-3.png

Getting_Started-Jetson_Nano_Developer_Kit-PuTTY.png

初始设置,包括:

  • 查看并接受 NVIDIA Jetson 软件 EULA;
  • 选择系统语言、键盘布局和时区;
  • 创建用户名、密码和计算机名称;
  • 可选择配置无线网络;
  • 选择应用分区大小,推荐使用建议的最大大小;
  • 推荐建立 SWAP 空间。

001.JPG

002.JPG

003.JPG

004.JPG

005.JPG

006.JPG

007.JPG

008.JPG

最后,在 PuTTY 中看到标准 Linux 命令行提示符,可见,系统基于Ubuntu 18(尚不支持最新的Ubuntu 20)。

插上网线,更新系统。

sudo apt update 
sudo apt upgrade

安装 xrdp 或 VNC,以使用 Windows 远程桌面连接访问系统的图形界面。

sudo apt-get install xrdp vnc4server xbase-clients

009.JPG

如果 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是一个系统监视实用程序以查看Jetson的基本配置和状态):

  • TensorRT和cuDNN:用于高性能深度学习应用
  • CUDA:用于GPU加速计算等应用
  • Multimedia API package:用于相机相关的应用及传感器驱动开发
  • VisionWorks和OpenCV:用于计算机视觉开发

20210525130722.png
via - JETSON NANO DEVELOPER KIT User Guide(DA_09402_004 | January 15, 2020)

Hello AI World

Jetson Inference(Hello AI World)是官方入门级深度学习教程,以体验Jetson的功能。重点介绍与计算机视觉相关的网络,包括使用TensorRT进行推理和使用PyTorch进行学习,以及实时摄像头的使用。包含了以下三个示例:

Classifying Images with ImageNet.jpg

Locating Objects with DetectNet.jpg

Semantic Segmentation with SegNet.jpg

其他可参考的边缘AI竞争设备包括:

  • Intel Neural Compute Stick 2, $73.27
  • Google Coral USB Accelerator, $74.99
  • UDOO Bolt V8, $418.00

建议


要深入玩转 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严重依赖有效的网络联接。


附:算力单位


算力是通过对信息数据进行处理,实现目标结果输出的计算能力。用于评估电脑效能的算力单位常用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

一些AI模型的计算量:

20230320182228.png
Characterization and Benchmarking of Deep Learning, HP Labs

浮点运算数用于衡量算法/模型的浮点运算复杂度时通常写成FLOPs,理解为计算量。


Jetson Nano 的资源分享:

链接:https://pan.baidu.com/s/1E95CKisbCLTGKGI6c-JydA
提取码:culm


参考资料


本文由 CulmartPlay 整理发布,参考 CC-BY-SA 3.0 协议共享,欢迎转载、引用或改编。
感谢您的支持,以让我们持续关注中国的STEM旅程!

楼主残忍的关闭了评论