NVIDIA Jetson 为开发提供了灵活的存储选项/配置,但一些 Jetson 模块配备了有限的 eMMC 闪存存储大小,以实现更具成本意识的大规模产品部署。
起初,在有限的存储空间中似乎不可能安装您的应用程序和必要的库,尤其是使用全套 NVIIA JetPack 、 BSP 以及 NVIDIA 为 Jetson 预先打包的所有开发软件。
NVIDIA JetPack 5.0.1 DP (Rel 34.1.1) NVIDIA Jetson AGX Orin Developer Kit | NVIDIA JetPack 4.6.2 (Rel 32.7.2) NVIDIA Jetson AGX Xavier Developer Kit | NVIDIA JetPack 4.6.1 (Rel 32.7.1) NVIDIA Jetson Xavier NX Developer Kit | |
(Original) Regular L4T ([a]) | 6.1 GB | 5.5 GB | |
(Original) Full JetPack ([A]) | 16.6 GB | 11.6 GB | 11.6 GB |
但是,您可以通过删除不必要的包、库和其他资产来减少磁盘使用量。表 2 显示了如何在一些最新的 NVIDIA JetPack 版本上回收超过 8 GB 的存储空间。
NVIDIA JetPack 5.0.1 DP (Rel 34.1.1) NVIDIA Jetson AGX Orin Developer Kit | NVIDIA JetPack 4.6.2 (Rel 32.7.2) NVIDIA Jetson AGX Xavier Developer Kit | NVIDIA JetPack 4.6.1 (Rel 32.7.1) NVIDIA Jetson Xavier NX Developer Kit | |
Example deployment configuration ([D]) | 8.3 GB | 5.2 GB | 5.3 GB |
在这篇文章中,我将介绍简化的步骤,以最大限度地减少 Jetson 设备上的磁盘使用,同时分享有关分析磁盘使用情况的方法、实际命令以及 JetPack 不同版本上的示例输出的提示。我还展示了如何检查 AI 应用程序在精简配置下是否仍能正常工作。
确定占用空间的内容
jetson-min-disk 文档展示了如何分析当前的磁盘使用情况,确定哪些文件和目录占用空间,并澄清包的依赖关系。它还显示了 NVIDIA JetPack 4.6 上的命令输出示例。 x 和 NVIDIA JetPack 5.0 。 x 、 这样您就可以评估您可以为应用程序减少多少开支。
最小化配置
图 1 显示了最小配置的概述。 jetson-min-disk 文档针对不同的开发和生产需求引入了多种配置([A]到[D])。
您可以执行以下操作以重新获得磁盘空间。
- 删除桌面用户界面。
- 删除文档和示例包。
- 删除开发包。
删除桌面图形用户界面
如果您知道您的系统不需要通过 HDMI 、 DP / eDP 或 LVD 在 NVIDIA Jetson 本机显示器输出上使用图形用户界面,则可以删除ubuntu-desktop
。有关更多信息,请参阅 Removing GUI .
NVIDIA JetPack 5.0.1 DP (Rel 34.1.1) NVIDIA Jetson AGX Orin Developer Kit | NVIDIA JetPack 4.6.2 (Rel 32.7.2) NVIDIA Jetson AGX Xavier Developer Kit | NVIDIA JetPack 4.6.1 (Rel 32.7.1) NVIDIA Jetson Xavier NX Developer Kit | |
Removing the graphical user interface | 3.4 GB | 5.5 GB | 4.2 GB |
$ sudo apt-get update
$ sudo apt-get purge $(cat apt-packages-only-in-full.txt)
$ sudo apt-get install network-manager
$ sudo reboot
删除文档和示例包
如果您已使用sudo apt install nvidia-jetpack
命令或使用 SDK 管理器安装了全套 JetPack 组件(库和 SDK ),则您可能拥有应用程序不需要的软件包。
文档和示例包是最安全的删除方法,因此您可以从卸载它们开始。有关更多信息,请参阅 Removing docs/sample 。
NVIDIA JetPack 5.0.1 DP (Rel 34.1.1) NVIDIA Jetson AGX Orin Developer Kit | NVIDIA JetPack 4.6.2 (Rel 32.7.2) NVIDIA Jetson AGX Xavier Developer Kit | NVIDIA JetPack 4.6.1 (Rel 32.7.1) NVIDIA Jetson Xavier NX Developer Kit | |
Removing docs and samples | 0.8 GB | 1.2 GB | 1.1 GB |
$ sudo dpkg -r --force-depends "cuda-documentation-10-2" "cuda-samples-10-2" "libnvinfer-samples" "libvisionworks-samples" "libnvinfer-doc" "vpi1-samples"
删除开发包和静态库
构建完应用程序后,您不需要提供头文件和静态库的开发包。您可以在检查每个包占用的磁盘空间后删除它们。有关更多信息,请参阅 正在删除开发包 。
NVIDIA JetPack 5.0.1 DP (Rel 34.1.1) NVIDIA Jetson AGX Orin Developer Kit | NVIDIA JetPack 4.6.2 (Rel 32.7.2) NVIDIA Jetson AGX Xavier Developer Kit | NVIDIA JetPack 4.6.1 (Rel 32.7.1) NVIDIA Jetson Xavier NX Developer Kit | |
Removing static libraries | 4.8 GB | 2.1 GB | 2.2 GB |
$ sudo dpkg -r --force-depends $(dpkg-query -Wf '${Package}\n' | grep -E "(cuda[^ ]+dev|libcu[^ ]+dev|libnv[^ ]+dev|vpi[^ ]+dev)")
从最小 L4T BSP 开始
如果您使用主机 x86-64 Linux 主机闪存 Jetson ,则可以创建最小配置 RootFS 并将该映像闪存到 Jetson 上。
有关构建最小 L4T 屋顶图像的详细信息,请参见 选项:最小 L4T 。
验证
该指南介绍了使用 NVIDIA DeepStream 参考应用程序作为典型 AI 应用程序来验证最低配置的 Jetson 环境的方法。有关更多信息,请参阅 Verification 。
git clone https://github.com/NVIDIA-AI-IOT/jetson-min-disk/
cd jetson-min-disk
cd test-docker
./docker-run-deepstream-app-overlay.sh
结论
在这篇文章中,我演示了如何在 NVIDIA Jetson 存储空间有限的情况下工作,同时识别和保留 AI 应用程序的基本运行时库。
本文中交叉引用的文档提供了针对不同 NVIDIA JetPack 版本的命令和提示。如果您对优化存储使用感兴趣,尤其是在 NVIDIA Jetson 生产模块上,它们可能是很好的工具。