「Jetson Xavier NX」で組み込みAIを試す:Jetson Nanoで組み込みAIを試す(特別編)(3/4 ページ)
2020年5月14日に行われたNVIDIAの「GTC 2020」の基調講演で発売がアナウンスされた、組み込みAIボード「Jetsonシリーズ」の最新製品となる「Jetson Xavier NX」。「Jetson Nano」の連載を担当した技術ライターの大原雄介氏に、Jetson Xavier NXの開発者キットをレビューしてもらった。
OSなどのインストール
OSなどのインストールそのものは簡単である。まずmicroSDメモリカード(容量は理論上8GBあればインストールは可能だが、AIのInference(推論アルゴリズム)などを動かすには不十分である。筆者は32GBを利用)を用意し、次いでNVIDIAのWebサイトからJetson Xavier NX Developer Kit SD Card Imageをダウンロードする(無償だがユーザー登録が必要)。
それが終わったら「SD Memory Card Formatter」でmicroSDを初期化し、次いで「balenaEtcher」を利用してダウンロードしたイメージをmicroSDに書き込む。終わったらそのmicroSDをJetson Xavier NXに装着(図9の中央下にmicroSDのカードスロットがあるのが分かると思う)。電源を入れればブートし、初期化設定を行ってから2度ほど再起動すればデスクトップ画面が出現するはずだ。このあたりの手順は、Jetson Nano連載の第1回記事Jetson Nanoの解説記事で紹介した内容とほとんど変わらない。
3種のニューラルネットワークを使ってベンチマーク
OSのインストールも終わったので、まずはJetson Nano連載の第2回記事でご紹介したUnixBenchによるCPUベンチマークの結果を見てみよう。これもまた、Jetson Nanoのときと全く同じ手順でインストールできる。
動作は、10W/2コアと15W/6コアの2つの動作モードで実施した。結果は表2の通りで、純粋に演算性能だけで言えば倍増、システム全体のスループットという意味ではざっくり50%増し程度の性能になっていること分かる。
テスト項目 | Index | ||||
Jetson Nano | Jetson Xavier NX | ||||
2A(10W) | 4A(20W) | 10W/2コア | 15W/6コア | ||
One CPU Only | Dhrystone 2 using register variables | 1129.1 | 1126.6 | 2856.7 | 2482.9 |
Double-Precision Whetstone | 261.8 | 261.6 | 561.1 | 439.5 | |
Execl Throughput | 141.1 | 158.2 | 490.1 | 349.7 | |
File Copy 1024 bufsize 2000 maxblocks | 449.0 | 447.9 | 1357.9 | 994.9 | |
File Copy 256 bufsize 500 maxblocks | 298.8 | 304.5 | 903.7 | 677.2 | |
File Copy 4096 bufsize 8000 maxblocks | 876.1 | 868.6 | 2674.6 | 1911.3 | |
Pipe Throughput | 249.1 | 253.7 | 544 | 402.9 | |
Pipe-based Context Switching | 126.8 | 125.7 | 147.4 | 119.9 | |
Process Creation | 55.5 | 53.5 | 373.4 | 224.4 | |
Shell Scripts (1 concurrent) | 667.8 | 674.1 | 988.6 | 709.6 | |
Shell Scripts (8 concurrent) | 1395.2 | 1438.8 | 1171.4 | 1865.3 | |
System Call Overhead | 230.6 | 230.7 | 308.6 | 231.4 | |
System Benchmarks Index Score | 332.8 | 336.5 | 741.4 | 585.7 | |
All CPU | Dhrystone 2 using register variables | 4483.1 | 4501.0 | 4105.5 | 11876.5 |
Double-Precision Whetstone | 1039.1 | 1043.9 | 1113.6 | 2459.2 | |
Execl Throughput | 598.3 | 590.3 | 855.9 | 1294.3 | |
File Copy 1024 bufsize 2000 maxblocks | 699.0 | 696.9 | 1872.3 | 1015.2 | |
File Copy 256 bufsize 500 maxblocks | 443.4 | 443.1 | 1364 | 611.4 | |
File Copy 4096 bufsize 8000 maxblocks | 1413.2 | 1403.2 | 3750.6 | 2101.8 | |
Pipe Throughput | 783.0 | 1006.2 | 1078.6 | 2424.3 | |
Pipe-based Context Switching | 294.6 | 393.8 | 255.8 | 564.9 | |
Process Creation | 509.4 | 686.2 | 564.1 | 703 | |
Shell Scripts(1 concurrent) | 1100.7 | 1614.2 | 1283.9 | 2332.1 | |
Shell Scripts(8 concurrent) | 1134.3 | 1585.2 | 1186.7 | 2212.9 | |
System Call Overhead | 661.6 | 875.6 | 557.9 | 745.7 | |
System Benchmarks Index Score | 837.1 | 974.4 | 1142.7 | 1543.4 | |
表2 Jetson NanoとJetson Xavier NXのUnixBenchによるCPUベンチマークの結果 |
次は、Jetson Nano連載の第3回記事で行った、3種類のニューラルネットワークの性能比較を行ってみたい。
手順はJetson Nanoの時と全く同じく、“Hello AI World”をインストールして、その動作を確認するというものだ。これはCUDAコアを利用しての動作であるが、実際に実施した結果が表3である。
Jetson Nano | Jetson Xavier NX | Speedup | |||||||
平均所要時間(ms) | 最小所要時間(ms) | 最大所要時間(ms) | 平均所要時間(ms) | 最小所要時間(ms) | 最大所要時間(ms) | (平均所要時間比) | |||
GoogleNet | CPU | 113.7 | 61.3 | 189.0 | 22.1 | 15.2 | 27.0 | 5.1 | |
CUDA | 112.9 | 60.7 | 188.0 | 21.3 | 14.7 | 25.7 | 5.3 | ||
ResNet-18 | CPU | 99.3 | 53.0 | 150.2 | 22.7 | 14.2 | 25.0 | 4.4 | |
CUDA | 98.7 | 52.3 | 150.3 | 21.9 | 13.6 | 24.1 | 4.5 | ||
ResNet-50 | CPU | 133.1 | 92.9 | 273.3 | 37.2 | 27.0 | 47.6 | 3.6 | |
CUDA | 132.4 | 92.2 | 273.0 | 36.5 | 26.5 | 46.7 | 3.6 | ||
表3 Jetson NanoとJetson Xavier NXで3種のネットワークのInferenceを実行した場合の所要時間 |
表3内のJetson Nanoのベンチマークの数字は以前の連載記事で紹介したものと同じである。当然、ニューラルネットワークごとに性能差はあるが、CUDAコアを使った状態でも3〜5倍の性能向上が確認できた形だ。
Copyright © ITmedia, Inc. All Rights Reserved.