さて、前回記事の「Jetson Orin Nanoレビュー(1) 開封の儀」はいかがだったでしょうか?
おかげさまでロボスタの週間ランキングで2位に輝きました~!ありがとうございます!
今回の第2回は「Jetson Orin Nano」のAI演算の実力に迫ります。
ひとつは恒例の「ベンチマーク計測」で、他のJetsonシリーズと比較、「Jetson Orin Nano」の実力とポテンシャルを確かめてみたいと思います。
また後半では、昨年、AIを使った実際の案件で作成した、ちょうどよい負荷のプログラムがあるので、それを「Jetson Orin Nano」で動作させるとどうなるか、つまり、実務での実用性をシビアに検証してみたいと思います。
その前にSDK ManagerでJetPack5.1.1をインストール
ベンチマークを計測する前に、「NVIDIA Jetson AGX Orin開発者キット」と「NVIDIA Jetson AGX Xavier 開発者キット」も最新の「JetPack5.1.1」にしてから、ベンチマークの計測を行います。「Jetson Nano」は「JetPack5.1.1」のアップデートがありませんのでJetPackは4.6のままです。
「SDK Manager」とは、Linux上でインストールホストPCからJetsonデバイスに対してOSイメージやSDKをインストールできるツールで、今回は最新版の「JetPack5.1.1」に対応したバージョンもリリースされましたのでそれを使います。
ホストPCで「SDK Manager」を起動した状態で、各Jetsonデバイスも起動し、アカウントを使ってログインした状態で、前面のUSB type-CでホストPCに接続するとJetsonデバイスを認識してくれるので、インストールパッケージを転送します。
「NVIDIA Jetson AGX Xavier 開発者キット」は無事アップデートできたのですが、「NVIDIA Jetson AGX Orin開発者キット」の方はアップデートできずに途中で切れてしまうトラブルが発生しました。
内容を確認するとOSのインストールまではうまくいました。そこで、SDKなどソフトウェアのインストールをWi-Fi経由で行い、なんとか事なきを得たので作業続行です。
これで同じ条件で3台、JetPack4.6でJetson Nanoの計4台で計測していきます。
NVIDIA Jetson AGX Orin (JetPack5.1.1)
NVIDIA Jetson AGX Xavier (JetPack5.1.1)
NVIDIA Jetson Orin Nano (JetPack5.1.1)
NVIDIA Jetson Nano (JetPack4.6)
まずは恒例UnixBenchから
ベンチマーク「UnixBench」を行う前に、各Jetsonのパフォーマンスを最大にするため2つのコマンドを事前に入力します。
$sudo nvpmodel-m 0
$sudo jetson_clocks
それでは計測値をじっくり見ていきましょう。
意外と差がない?UnixBench計測結果
上の表1はrunning 1 parallel copy of testsのINDEX値で整数演算と浮動小数点演算のスピードを比較したものです。
左から、「NVIDIA Jetson Orin Nano開発者キット」、「NVIDIA Jetson AGX Orin開発者キット」、「NVIDIA Jetson AGX Xavier 開発者キット」、「NVIDIA Jetson Nano開発者キット」と並んでいます。
「NVIDIA Jetson Nano開発者キット」との比較は置いておいて、左3台の差が3~4割ほどでそれほど差を感じないのは意外でした。
それもそのはず「1コアのみの計測」
それもそのはずCPUは「ARMv8.2 64bit」を使っており、今回は1コアのみの計測なので、左3台の差はCPUの周波数の差になると思います。
全コア使うベンチ計測だと差が歴然
しかし【表2】のように全コア使うベンチ計測となると、その差は歴然としてきました。並びは最初と同じですので差は大きく変わってきます。
下の図を見てもらえばわかるようにそれぞれCPUコアの数が異なるのです。特に「NVIDIA Jetson AGX Orin開発者キット」と「NVIDIA Jetson Orin Nano開発者キット」ではコアの数が2倍も違います。
そして、ここだけ見てみても「NVIDIA Jetson Orin Nano開発者キット」と「Jetson Nano開発者キット」の性能差は3~4倍ということになります。
初見の「安定している感じ」はこの辺からもきているのではないのでしょうか?
お待たせしましたGPUベンチマーキング
はい!ここからが本番のGPUベンチマーキングです。
今回はJetPack5.1.1にバージョンを合わせた「NVIDIA Jetson AGX Orin開発者キット」、「NVIDIA Jetson Orin Nano開発者キット」、「NVIDIA Jetson AGX Xavier 開発者キット」の3台で比較を行います。
使うベンチマークツールはNVIDIA社提供のベンツマークツールで上記のモデル群を使ってAIのパフォーマンスを測れるようになっています。
気になるAIの実測結果は?
気になる実測結果はこちらです!
まず言えるのは、「NVIDIA Jetson AGX Orin開発者キット」の圧倒的な性能差です。「NVIDIA Jetson Orin Nano開発者キット」と比べると5倍弱~4倍強の性能差、「NVIDIA Jetson AGX Xavier 開発者キット」と比較すると3倍前後の性能差になります。
コストパフォーマンスの高さに驚き
そして次に驚いたのは「NVIDIA Jetson Orin Nano開発者キット」と「NVIDIA Jetson AGX Xavier 開発者キット」の性能差です。
性能差が1.6~1.2倍しかない。発売当初$1999の「NVIDIA Jetson AGX Xavier 開発者キット」の25%の価格でこの性能差の「NVIDIA Jetson Orin Nano開発者キット」が手に入るとは、さすがAmpere GPUアーキテクチャ恐るべし。
一応「NVIDIA Jetson Nano開発者キット」と「NVIDIA Jetson Orin Nano開発者キット」との比較も載せておきます。
ただし「NVIDIA Jetson Nano開発者キット」はJetPack4.6なので参考値としてみてください。
比較しておいてなんですが、58.9倍~11.7倍とちょっと比較にならないですね。「NVIDIA Jetson Nano開発者キット」はAI学習のエントリ用として割り切って考えたほうがよさそうです。
【番外編】実務にどれくらい耐えられるかテスト
ここからはいつもとちょっと趣向を変えて、弊社で実際に行ったAI案件でJetson達がどれくらい働けるかを確認してみたいと思います!
実は筆者の会社は栃木県から「未来技術企業」という認定支援を受けて、農林水産業やほかの栃木県のDX化などのお手伝いをしています。
その一つに、圃場(ほじょう)の可視化の研究連携を栃木県畜産酪農研究センターと一緒に行っている案件があります。
未来技術を活用した実証実験結果について
内容はドローンで連続撮影した大きなトウモロコシの圃場の画像をAIが解析し、苗の育成状態をヒートマップで見える化するというものです。
今回、栃木県畜産酪農研究センターに快諾いただき、実際に研究連携で使用したほ場データを使ってNVIDIA Jetson開発者キットにAI処理をさせてみます。
簡単そうに聞こえますが、元データの画像サイズは1枚で429MBあり、それを開くだけでも結構なメモリ量になりますし、それをJetsonでAI判定するとなるといつメモリがなくなるかドキドキです。
本来なら位置づけ的にサーバで処理してもおかしくないほどの処理を、果たしてAIエッジデバイスであるNVIDIA Jetsonシリーズを使って可視化データが作れるのでしょうか?
ちなみに実務ではNVIDIA RTX搭載のMSIのWindowsノートで行い、35分程度の処理時間でした。
まずは「NVIDIA Jetson AGX Orin開発者キット」の挑戦!
まずは最も高性能で、成功の可能性が一番高い「NVIDIA Jetson AGX Orin開発者キット」から挑戦してみます。
ちなみに今回はtensorflowを使うので、下記サイトのPDFにある手順に従い、JetPack5.1.1に直接インストールしております。
動作確認をして、いざテスト開始!
テスト中はこんな感じです。
だいたい1つの推論に、40~50msでしょうか?
順調に進み、見事36分2秒でフィニッシュしました!さすが最上位機種。
途中、特に危なげもなく「NVIDIA Jetson AGX Orin開発者キット」の底力を目の当たりにしました!!
次に「NVIDIA Jetson AGX Xavier 開発者キット」の挑戦、しかし・・・
次に「NVIDIA Jetson AGX Xavier 開発者キット」で挑戦してみます。パフォーマンス的には2番手なので、これもいけるかと思っていたら思わぬ暗雲が立ち込めます。
途中から1推論当たりにかかる時間が長すぎるのです。前者の40~50msに対して2~3secかかっています。100倍遅い。
と思っていたら、途中で電源が落ちてしまいました、リタイヤです!これは悔しい!
結果を分析したのですが、後述するメモリ対策をおこなっても結果はNGでしたので、JetPack5.1.1に内在する「NVIDIA Jetson AGX Xavier 開発者キット」との固有の問題なのかもしれません。
この問題に関して現在NVIDIA社と問題解決すべく情報共有を進めております。
原因解明出来たら本記事の更新を含めて追加情報を出す予定ですので、AGX Xavierユーザの方はがっかりせずに続報をお待ちください!
最後は「NVIDIA Jetson Orin Nano開発者キット」の挑戦
最後に「NVIDIA Jetson Orin Nano開発者キット」で挑戦です。
「NVIDIA Jetson AGX Xavier 開発者キット」のリタイアの件があったので、練習走行させていたら案の定システムから「Low Memory Warning」の警告が!
本番前にスワップメモリの設定をして再度、挑みました。
結果は2時間35分33秒!いや、でもよく頑張りました!
時間がかかっているのはAI推論部分かと思いきや、そこは40~50msしかかかっていない。
時間はかかったが最後まで完走!
問題はスワップメモリでした。Jetson AGX Orin に搭載されているメモリサイズが64GBであるのに対し、Jetson Orin Nano のメモリサイズは8GB。今回のテストでは、このメモリにデータが入りきらず、microSDのスワップメモリへの読み書きが発生し、AI推論以外の部分で時間がかかってしまったようです。スワップメモリはメモリといってもファイルにメモリの情報を一時保管しているに過ぎないため、SDカードの「NVIDIA Jetson Orin Nano開発者キット」は圧倒的に不利です。
今度SSDを入れて再挑戦してみたいと思っています。
また今回は、Jetsonに負荷をかけたテストを行う主旨でしたが、本来Jetsonで大規模なデータを処理する場合Jetsonに最適化した構成にする必要があります。
例えばデータを分割して処理するなど8GBのメモリに収まるようにプログラムを工夫したり、推論エンジンをtensrflowからTensorRTに変更してメモリ使用量の低下と高速化の両方を狙う方法などです。
Jetsonでもかなりの負荷には耐えられることが分かったので、今後スムースに動く構成も含め改良を検討したいと思います。
番外編の総括
今回は非常に挑戦的かつシステムリソースが限られるAIエッジデバイス単体では不利な試みではあったが、「NVIDIA Jetson AGX Orin開発者キット」および「NVIDIA Jetson Orin Nano開発者キット」が頑張ってくれました。特に「NVIDIA Jetson Orin Nano開発者キット」にNVMe SSDを換装させたときの可能性を考えると、いてもたってもいられず、思わずSSDをポチってしまいました。(笑)
いかがだったでしょうか?
ここまで見てきて筆者はもう「NVIDIA Jetson Orin Nano開発者キット」を今年度は業務で使い倒す気満々です!
次回はいよいよ!Isaac Simと「NVIDIA Jetson Orin Nano開発者キット」の連携で、何ができるかを中心にお届けしようと思いますのでお楽しみに!
ABOUT THE AUTHOR /
高橋一行Forex Robotics株式会社 代表取締役。NVIDIA認定 Jetson AI Specialist。AI、機械学習、ロボット、IoTなどのシステム開発を行いながら、コミュニティ活動やLTにも精力的に活動。 最近、那須塩原にサテライトオフィスを設立しました!