エッジコンピューティングの逆襲 特集
連載
» 2020年06月02日 11時00分 公開

Jetson Nanoで組み込みAIを試す(特別編):「Jetson Xavier NX」で組み込みAIを試す (3/4)

[大原雄介,MONOist]

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.