Computer Vision / Video Analytics

Jetson のストレージ使用量の削減

Reading Time: 2 minutes

NVIDIA Jetson は、開発用に柔軟なストレージ オプション/コンフィギュレーションを提供していますが、よりコストを意識した大規模な製品展開のために、一部の Jetson モジュールには eMMC フラッシュ メモリのストレージ サイズを制限して搭載しています。

NVIDIA JetPack、BSP、そして NVIDIA が Jetson 用にプリパッケージしたすべての開発ソフトウェアのフルセットを使用すると、最初は限られたストレージ領域にアプリケーションと必要なライブラリを収めるのは不可能だと思われるかもしれません。

  NVIDIA JetPack 5.0.1 DP (Rel 34.1.1)
NVIDIA Jetson AGX Orin 開発者キット
NVIDIA JetPack 4.6.2 (Rel 32.7.2)
NVIDIA Jetson AGX Xavier 開発者キット
NVIDIA JetPack 4.6.1 (Rel 32.7.1)
NVIDIA Jetson Xavier NX 開発者キット
(オリジナル) 通常の L4T ([a]) 6.1 GB 5.5 GB  
(オリジナル) フル JetPack ([A]) 16.6 GB 11.6 GB 11.6 GB

表 1. オリジナル構成でディスク使用量

しかし、不要なパッケージやライブラリ、その他のアセットを削除することで、 ディスク使用量を削減することができます。表 2 は、最新の NVIDIA JetPack のいくつかのバージョンで、8 GB 以上のストレー ジ領域を再利用する方法を示しています。

  NVIDIA JetPack 5.0.1 DP (Rel 34.1.1)
NVIDIA Jetson AGX Orin 開発者キット
NVIDIA JetPack 4.6.2 (Rel 32.7.2)
NVIDIA Jetson AGX Xavier 開発者キット
NVIDIA JetPack 4.6.1 (Rel 32.7.1)
NVIDIA Jetson Xavier NX 開発者キット
削減後の構成例 ([D]) 8.3 GB 5.2 GB 5.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. さまざまな最小構成 

ディスク使用量を削減するには、次のような対処が必要です。

  • デスクトップのユーザー インターフェイスを削除する。
  • ドキュメントとサンプルのパッケージを削除する。
  • dev パッケージを削除する。

デスクトップのグラフィカル ユーザー インターフェイス (GUI) の削除

HDMI、DP/eDP、LVDS による NVIDIA Jetson ネイティブ ディスプレイ出力で GUI を必要としないシステムが分かっている場合は、ubuntu-desktop を削除することができます。詳細については、 Removing GUI を参照してください。 

  NVIDIA JetPack 5.0.1 DP (Rel 34.1.1)
NVIDIA Jetson AGX Orin 開発者キット
NVIDIA JetPack 4.6.2 (Rel 32.7.2)
NVIDIA Jetson AGX Xavier 開発者キット
NVIDIA JetPack 4.6.1 (Rel 32.7.1)
NVIDIA Jetson Xavier NX 開発者キット
GUI の削除 3.4 GB 5.5 GB 4.2 GB

表 3.デスクトップの GUI を削除することで、一般的なセットアップで回復したディスク領域
$ 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 Manager を使用して JetPack コンポーネント (ライブラリおよび SDK) のフルセットをインストールした場合、アプリケーションに必要のないパッケージが存在する可能性があります。

ドキュメントとサンプル パッケージは最も安全に削除できるパッケージの 1 つですので、まずはこれらをアンインストールすることから始めてください。詳しくは Removing docs/sample を参照してください。

  NVIDIA JetPack 5.0.1 DP (Rel 34.1.1)
NVIDIA Jetson AGX Orin 開発者キット
NVIDIA JetPack 4.6.2 (Rel 32.7.2)
NVIDIA Jetson AGX Xavier 開発者キット
NVIDIA JetPack 4.6.1 (Rel 32.7.1)
NVIDIA Jetson Xavier NX 開発者キット
ドキュメントサンプルの削除 0.8 GB 1.2 GB 1.1 GB

表 4. ドキュメントとサンプル パッケージの削除により、一般的なセットアップで回復したディスク領域
$ sudo dpkg -r --force-depends "cuda-documentation-10-2" "cuda-samples-10-2" "libnvinfer-samples" "libvisionworks-samples" "libnvinfer-doc" "vpi1-samples"

開発用パッケージと静的ライブラリの削除

アプリケーションのビルドが完了したら、ヘッダー ファイルや静的ライブラリを提供する dev パッケージは不要になります。各パッケージがどの程度のディスク容量を消費するかを確認した上で、削除してください。詳しくは、 Removing dev packages を参照してください。

  NVIDIA JetPack 5.0.1 DP (Rel 34.1.1)
NVIDIA Jetson AGX Orin 開発者キット
NVIDIA JetPack 4.6.2 (Rel 32.7.2)
NVIDIA Jetson AGX Xavier 開発者キット
NVIDIA JetPack 4.6.1 (Rel 32.7.1)
NVIDIA Jetson Xavier NX 開発者キット
静的ライブラリの削除 4.8 GB 2.1 GB 2.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 からスタート

Jetson のフラッシュに x86-64 Linux のホスト マシンを使用している場合、最小構成の RootFS を作成し、そのイメージを Jetson にフラッシュすることができます。

最小限の L4T RooFS イメージの構築に関する詳細は、 Option: Minimal L4T を参照してください。

検証

最小構成の Jetson 環境を検証するための代表的な AI アプリケーションとして、 NVIDIA DeepStream リファレンス アプリを使用する方法をご紹介します。詳しくは、 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 モジュール製品でのストレージ使用量の最適化に興味がある場合、これらは優れたツールになります。

翻訳に関する免責事項

この記事は、「Minimizing Storage Usage on Jetson」の抄訳で、お客様の利便性のために機械翻訳によって翻訳されたものです。NVIDIA では、翻訳の正確さを期すために注意払っておりますが、翻訳の正確性については保証いたしません。翻訳された記事の内容の正確性に関して疑問が生じた場合は、原典である英語の記事を参照してください。

Tags