Jetson AGX Orin開発者キットでもHシリーズNVMe SSDを使う!

Jetson AGX Orin開発者キットでもHシリーズNVMe SSDを使う!

この記事で紹介している製品

はじめに

 NVIDIA社の組込み用AIコンピューティングプラットフォームJetsonシリーズには、M.2 SSDを装着可能な開発者キットがラインナップされています。

 このJetsonシリーズが使われるようなエッジデバイスでのAIコンピューティング(エッジAIコンピューティング)ではより大容量でより高性能なストレージの必要性も増しており、NVMe SSDはこの要求に応えられるものと期待されます。

 以前、Jetson AGX Xavier開発者キットに当社製HシリーズNVMe SSDを装着してJetPack同梱ソフトウェアを使用した物体認識の動作確認を実施した結果をご紹介しました

 今回は、2022年9月に発売されたJetson AGX Orin開発者キットに同じく当社製HシリーズNVMe SSDを装着して、前回と同様の動作確認を実施しましたのでその内容をご報告します。

 なお、この記事に記載の実験結果は当社の実験環境で得られた結果であり、どのような環境でもこの結果が得られることを保証するものではありません。ご注意ください。

まとめ

  • Jetson AGX Orin開発者キットに当社製HシリーズM.2 NVMe SSDを装着して動作を確認した
  • NVMe SSDの性能と容量はエッジAIコンピューティングに適していると考えられる

NVMe SSDの装着

 Jetson AGX Orin開発者キットもJetson AGX Xavier開発者キットと同じく、Jetson AGX Orinを搭載した「Jetsonモジュール」と、NVMe SSDを装着するM.2スロットなどを備えた「キャリアボード」の2つから構成されています。

 ただ、Jetson AGX Orin開発者キットはJetson AGX Xavier開発者キットと比較してとてもM.2 SSDを装着しやすい構造です。というのは、図1のようにM.2 SSDスロットがキットの裏面にあるからです。

図1:Jetson AGX Orin開発者キット裏面にあるM.2 SSDスロットの様子

 Jetson AGX Xavier開発者キットではM.2 SSDを装着するにはJetsonモジュールとキャリアボードを引きはがす必要がありましたが、Jetson AGX Orin開発者キットではその必要がありません。とても作業しやすいです。

 ほかにも、Jetson AGX Xavier開発者キットでのM.2 NVMe SSD使用時に存在した注意点が改善されています。

改善点1:両面実装のM.2 SSDも装着可能

 このキャリアボードのM.2スロットにはM.2 Type 2280のSSDが装着可能です。Jetson AGX Orin開発者キットでは両面実装のSSDも装着可能です。

 Jetson AGX Xavier開発者キットのキャリアボードは片面実装のみ装着可能でしたので、選択肢が広がりました。とはいえ最近両面実装のM.2 SSDは少なくなりましたが……

 今回使用した当社製HシリーズM.2 NVMe SSDは前回と同じ片面実装1,920 GBモデルです。

改善点2:ヒートシンク装着可能

 このキャリアボードでは、M.2 SSDにヒートシンクを装着可能です。実測した限りではおよそ2cm程度の高さのヒートシンクであれば装着できそうです。

 M.2スロットが裏面に存在するため、Jetsonモジュールの巨大なヒートシンク+ファンの冷却能力はあまり得られなくなるかもしれませんが、その代わりに?ヒートシンクを装着可能になりました。

 ただし、あまり高さがあるものは装着できませんし、周辺の部品と干渉する可能性があるため幅のあるものも装着できません。

改善点3:装着時に「ななめに挿入」する

 M.2スロットにデバイスを装着する際、まずコネクタをスロットにななめに挿入し、次にデバイスの端を押しつけて基板の固定用ネジ穴に合わせる、という手順が一般的かと思います。このキャリアボードのスロットに装着する場合もこの手順で装着します。

 Jetson AGX Xavier開発者ボードのキャリアボードでの装着方法から改善されました。

NVMe SSDへのJetPackインストール

 NVMe SSDを装着したら、次は開発者キットにJetPackをインストールします。今回の動作確認では、当時最新のJetPack 5.0.2 (rev. 1)を選択しました。

 Jetson AGX Orin開発者キットの標準的なセットアップにはNVIDIAの公式動画が参考になりますが、今回のようにJetPackを(再)インストールする場合は以前も紹介したJetson AGX Xavier開発者キットのセットアップ動画のほうが参考になります。またJetPackのインストールについてはNVIDIAの公式ドキュメントが参考になります。

 JetPackのインストールとそれに付随する処理は今回もSDK Managerで行いました。GUIベースで手順をわかりやすく提示してくれるツールです。JetPackのインストール先デバイスも標準のeMMCからNVMe SSDに簡単に切り替えられます(図2)。

図2:SDK ManagerでJetPackのインストール先をeMMCからNVMe SSDに変更する様子

 JetPackのインストール時、カーネルなどの基本的なソフトウェアのインストール後に各種ソフトウェア(パッケージ)をインターネットから取得して更新するのもJetson AGX Xavier開発者キットの時と同じです。

 このため、このソフトウェア更新にとても時間がかかる可能性があります。作業時間の見積もりにはご注意ください。

NVMe SSD内の動画で物体認識

 インストールしたJetPackには、機械学習の代表的な複数のネットワークとそれらネットワーク向けの学習用データが準備されており、Jetsonを利用した機械学習処理を容易に実行できます。これもJetson AGX Xavier開発者キットの場合と同じです。用意されている機械学習アルゴリズムの具体的な名称や特徴および詳細については、GitHub上のドキュメントをご参照ください。

 なお、上記ドキュメントに記載されたライブラリやサンプルプログラムの初回セットアップ中に"NVInfer.h: No such file or directory"というエラーが出てセットアップが完了しませんでした。このエラーへの対処法については本記事末尾の付録をご覧ください。

 今回は、動作確認用に表1のような動画を作成してNVMe SSD上に保存し、これらの動画に対して物体認識処理を実行しました。動画の撮影場所は秋葉原周辺です(スマートフォンで撮影)。

歩行者数解像度フレーム
レート(fps)
動画
コーデック
ビットレート
(Mbps)
ファイル
サイズ
動画長
(分)
動画(1)4K
(3840 x 2160)
30H.264403.4 GB10
動画(2)4K
(3840 x 2160)
30H.264403.4 GB10
動画(3)4K
(3840 x 2160)
30H.264403.4 GB10
表1:物体認識テスト用動画仕様

 物体認識プログラムは入力(認識処理対象)の動画に対して物体認識を行いその結果を動画ファイルとして出力します。その出力された動画から切り出した画像が図3になります。

図3:Jetson AGX Orin開発者キットによる動画物体認識識別処理結果(サンプル画像)

 今回も事前学習で使用されたデータセットの偏りのためか認識率はそこまで良くありませんが、冷却ファンを回さずに軽々とこの物体認識処理をこなすJetsonのパワーは健在です。

 そして今回もNVMe SSDに保存した表1の3動画全てに対して同時に物体認識プログラムを走らせて、NVMe SSDの温度をS.M.A.R.T.属性から読み出す評価を行いました。結果が図4になります。処理時間は1時間(動画をループさせる)、物体認識処理結果の動画(上図のような動画)もNVMe SSDに書き込み続けた状態での観測です。

図4:3動画同時物体認識処理中のNVMe SSDの温度(S.M.A.R.T.温度)変化

 図4の通り、3動画同時に読み出して認識結果動画を書き込む程度では、SSDの温度は摂氏51度程度までしか上昇していません。実は、Jetson AGX Xavier開発者キットで同様の評価を実施した際もNVMe SSDの温度上昇は摂氏51度止まりでした。

 今回、Jetson AGX Xavier開発者キットよりNVMe SSDの冷却性能が低いと思われるJetson AGX Orin開発者キットでこの結果を得たことは、やはり3動画同時読みだし+物体認識結果3動画同時書き込み程度の負荷では、他の処理による突発的な負荷を考慮してもNVMe SSDであれば十分な余裕を持ち対応できることが主要因として考えられます。

 同時処理動画数を10や20に増やすことで合計ファイルサイズがDRAM搭載量を超えるように調整して実験を行おうとしたのですが、今回構築したサンプルプログラムではそこまでの同時処理はできないようでした。

おわりに

 この記事では、Jetson AGX Orin開発者キットに当社製HシリーズM.2 NVMe SSDを装着し、NVMe SSDへのJetPackインストール、および学習済みネットワークとJetPack同梱の物体認識プログラムを使用した動画内物体認識、という動作確認の実施結果をご紹介しました。

 エッジAIコンピューティングの計算能力向上と扱うデータサイズの増大に伴い、ストレージに求められる性能やサイズも増しており、ますますNVMe SSDが注目されています。この記事がJetsonモジュールと組み合わせて使用するストレージの選定において参考になれば幸いです。

付録:サンプルプログラム実行環境構築時のエラーについて

 JetPackインストール後に物体認識検出サンプルプログラムを実行するための環境を構築しようとすると、図5のように"NVInfer.h: No such file or directory"というエラーメッセージが表示されて構築処理が停止することがあります。

図5:物体認識検出サンプルプログラム実行環境構築時のエラー

 NVIDIAの開発者サイトのフォーラムなどで検索すると、同様にこのエラーに遭遇した開発者からの投稿が多数見つかります。

 このエラーはNVIDIAのTensorRTをインストールすると解決できます(要NVIDIA開発者アカウント)。

 インストールするTensorRTのバージョンは、Jetson AGX Orin開発者キットにインストールしたCUDAのバージョンとJetPackがベースとするUbuntuのバージョンに依存します。今回の試行ではCUDAのバージョンが11.4でUbuntuのバージョンが20.04 LTSでしたので、インストールするTensorRTのバージョンは8.2 GA Update 4となります(図6)。ARMコア向けバイナリを選択するように気をつけてください。

図6:NVIDIA TensorRT (TensorRT 8)のダウンロードページ

 UbuntuとCUDAのバージョンを確認して、お使いの環境に合うバージョンのTensorRTをダウンロードしてください。

 ダウンロード後のインストール手順はNVIDIAのインストールガイドが参考になります。

 この方法でTensorRTをインストールした後、再度Github上のドキュメントに記載のセットアップ手順を最初からやり直すことでセットアップは成功しました。

他社商標について
記事中には登録商標マークを明記しておりませんが、記事に掲載されている会社名および製品名等は一般に各社の商標または登録商標です。

記事内容について
この記事の内容は、発表当時の情報です。予告なく変更されることがありますので、あらかじめご了承ください。

お問い合わせ