计算机视觉/视频分析

最大限度地减少 Jetson 上的存储使用

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 GB5.5 GB
(Original) Full JetPack ([A])16.6 GB11.6 GB11.6 GB
表 1 :。原始配置中的磁盘使用情况

但是,您可以通过删除不必要的包、库和其他资产来减少磁盘使用量。表 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 GB5.2 GB5.3 GB
表 2 :。优化部署配置中的磁盘使用率

在这篇文章中,我将介绍简化的步骤,以最大限度地减少 Jetson 设备上的磁盘使用,同时分享有关分析磁盘使用情况的方法、实际命令以及 JetPack 不同版本上的示例输出的提示。我还展示了如何检查 AI 应用程序在精简配置下是否仍能正常工作。

确定占用空间的内容

jetson-min-disk 文档展示了如何分析当前的磁盘使用情况,确定哪些文件和目录占用空间,并澄清包的依赖关系。它还显示了 NVIDIA JetPack 4.6 上的命令输出示例。 x 和 NVIDIA JetPack 5.0 。 x 、 这样您就可以评估您可以为应用程序减少多少开支。

最小化配置

图 1 显示了最小配置的概述。 jetson-min-disk 文档针对不同的开发和生产需求引入了多种配置([A]到[D])。

Overview of the minimal configurations.
图 1 :。不同的最小配置

您可以执行以下操作以重新获得磁盘空间。

  • 删除桌面用户界面。
  • 删除文档和示例包。
  • 删除开发包。

删除桌面图形用户界面

如果您知道您的系统不需要通过 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 interface3.4 GB5.5 GB4.2 GB
表 3 :。通过删除桌面图形用户界面,在典型设置中重新获得的磁盘空间。
$ 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 samples0.8 GB1.2 GB1.1 GB
表 4 :。通过删除文档和示例包,在典型设置中重新获得的磁盘空间
$ 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 libraries4.8 GB2.1 GB2.2 GB
表 5 :。通过删除 dev 包在典型设置中重新获得的磁盘空间
$ 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
GIF shows images of traffic and code
图 2 :。 DeepStream 使用覆盖输出配置的参考应用程序

结论

在这篇文章中,我演示了如何在 NVIDIA Jetson 存储空间有限的情况下工作,同时识别和保留 AI 应用程序的基本运行时库。

本文中交叉引用的文档提供了针对不同 NVIDIA JetPack 版本的命令和提示。如果您对优化存储使用感兴趣,尤其是在 NVIDIA Jetson 生产模块上,它们可能是很好的工具。


Tags