当社にもNVIDIA Jetson AGX Xavier※がやって来ました!
Nanoと比較して、どれくらいの性能をマーク出来るのか。早速、試してみましょう。
※Xavier:エグゼビアとか、ザビエルとか呼ばれていますね。例の宣教師みたいでちょっと面白いので、私はザビエルと呼んでいます。
NVIDIAがリリースしているディープラーニングコンピュータで、10W-30Wという省電力で動作し、最大で 32 TOPSの演算性能を持つ。
従来のTX2と比較して20倍の性能と、10倍のエネルギー効率と謳われています。
金属のしっかりとした筐体と、最新のUSB3インタフェースを2つ、USB2端子が1つ、HDMI、GPIO、イーサネット、電源スイッチ、リセットスイッチ、microSDカード用のスロットなどの豊富なインタフェースが付いています。OSは eMMCの32GBメモリからUbuntu18が起動するようになっています。
日本国内では、スイッチサイエンス(マクニカ)で開発者キットの取り扱いを行っており。2018/08現在では、8万円程度で入手できるようになっています。
母艦LinuxマシンはUbuntu 16です。
同梱のUSBケーブルを使います。
Xavier側はGPIO端子の面のUSB3に接続します。
今回、JetPack4.2.1を入れます。
https://developer.nvidia.com/user
参考:https://docs.nvidia.com/sdk-manager/install-with-sdkm-jetson/index.html
ホストコンピュータへのインストール内容選択
CUDA
OpenCV
DeveloperTool
Jetson AGX Xavierへのインストール内容選択
Jetson OS
Jetson SDK Components
OSイメージのダウンロード
電源、リセット付近の3つのスイッチの真ん中を押しながら、一番右のボタンを押してForce Recovery Modeというのにします。
SDKのインストール
ここで一度Jetson AGX XavierをHDMIディスプレイとキーボード、マウスに接続して、Ubuntuのインストールを完了させる。
$sudo apt-get install aptitude
$sudo aptitude reinstall dbus <--これが重要
$sudo apt autoremove
$ sudo apt install language-pack-ja-base language-pack-ja
$ sudo apt install ibus-mozc
reboot後に入力モードを変更→日本語(Mozc)(IBus)
参考:Jetson Xavier: Jetpack4.1.1インストール後の作業
$ sudo nvpmodel -m 0
$ sudo /usr/bin/jetson_clocks
$ sudo /usr/bin/jetson_clocks --show
SOC family:tegra194 Machine:Jetson-AGX
Online CPUs: 0-7
CPU Cluster Switching: Disabled
cpu0: Online=1 Governor=schedutil MinFreq=2265600 MaxFreq=2265600 CurrentFreq=2265600 IdleStates: C1=0 c6=0
cpu1: Online=1 Governor=schedutil MinFreq=2265600 MaxFreq=2265600 CurrentFreq=2265600 IdleStates: C1=0 c6=0
cpu2: Online=1 Governor=schedutil MinFreq=2265600 MaxFreq=2265600 CurrentFreq=2265600 IdleStates: C1=0 c6=0
cpu3: Online=1 Governor=schedutil MinFreq=2265600 MaxFreq=2265600 CurrentFreq=2265600 IdleStates: C1=0 c6=0
cpu4: Online=1 Governor=schedutil MinFreq=2265600 MaxFreq=2265600 CurrentFreq=2265600 IdleStates: C1=0 c6=0
cpu5: Online=1 Governor=schedutil MinFreq=2265600 MaxFreq=2265600 CurrentFreq=2265600 IdleStates: C1=0 c6=0
cpu6: Online=1 Governor=schedutil MinFreq=2265600 MaxFreq=2265600 CurrentFreq=2265600 IdleStates: C1=0 c6=0
cpu7: Online=1 Governor=schedutil MinFreq=2265600 MaxFreq=2265600 CurrentFreq=2265600 IdleStates: C1=0 c6=0
GPU MinFreq=1377000000 MaxFreq=1377000000 CurrentFreq=1377000000
EMC MinFreq=204000000 MaxFreq=2133000000 CurrentFreq=2133000000 FreqOverride=1
Fan: speed=255
NV Power Mode: MAXN
$ sudo nvpmodel -q
NV Fan Mode:quiet
NV Power Mode: MAXN
0
参考:環境の確認
$ nvprof --version
nvprof: NVIDIA (R) Cuda command line profiler
Copyright (c) 2012 - 2018 NVIDIA Corporation
Release version 10.0.326 (21)
$ nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2019 NVIDIA Corporation
Built on Mon_Mar_11_22:13:24_CDT_2019
Cuda compilation tools, release 10.0, V10.0.326
$ git clone https://github.com/AlexeyAB/darknet darknet
$ cd darknet
Pre-Trained Modelを~/darknetにダウンロードしておきます。
GPU=1 <--ココ
CUDNN=1 <--ココ
CUDNN_HALF=1 <--ココ
OPENCV=1 <--ココ
AVX=0
OPENMP=0
LIBSO=1 <--ココ
ZED_CAMERA=0
ARCH= -gencode arch=compute_30,code=sm_30 \
-gencode arch=compute_35,code=sm_35 \
-gencode arch=compute_50,code=[sm_50,compute_50] \
-gencode arch=compute_52,code=[sm_52,compute_52] \
# -gencode arch=compute_61,code=[sm_61,compute_61] <--ココ
# For Jetson Tx2 or Drive-PX2 uncomment:
ARCH= -gencode arch=compute_62,code=[sm_62,compute_62] <--ココ
makeを実行します。
$ make -j8
あっという間にmakeが完了します。
$ ./darknetとコマンドを打って、
usage: darknet
のような応答が帰ってくればmakeが出来ています。
Jetson Nanoの時にもやったように、USBカメラを使って、YOLOv3モデルでリアルタイム物体検出をしてみます。
※今回はTinyモデルではなく、思い切ってSPPモデルです。
下記のコマンドを打ちます
$ ./darknet detector demo cfg/coco.data cfg/yolov3-spp.cfg yolov3-spp.weights -c 0
上記のUSBカメラとYOLOv3 SPPモデルで、リアルタイム物体検出をします。
動作モードを切り替えながら、内部の温度を確認します。
参考:http://wazalabo.com/jetson_agx_xavier_thermometry.html
測定するモードは、mode 2, 3、0 の3つのモードです。
mode 名称 内容
mode 1 MODE 10W 省電力モード。2コアのみ使用し、最も消費電力が少ない。
mode 2 MODE 15W 初回起動時のモード。4コアを使用。
mode 3 MODE 30W ALL 消費電力 30W のモード (※) のうち、8コア全てを使用。
mode 0 MAX N 最大動作のモード。8コア全てを使用。
温度の変化
YOLO未実行
$ cat /sys/devices/virtual/thermal/thermal_zone0/temp
38000
↓
$ sudo nvpmodel -m 2
$ cat /sys/devices/virtual/thermal/thermal_zone0/temp
41000
FPS:5-7
↓
$ sudo nvpmodel -m 3
$ cat /sys/devices/virtual/thermal/thermal_zone0/temp
42500
FPS:7-8.5
↓
$ sudo nvpmodel -m 0
$ cat /sys/devices/virtual/thermal/thermal_zone0/temp
54500
FPS:10-12
・YOLO v3-sppモデルでwidth=416,height=416の場合
Xavier:19FPS
Nano:2FPS
・YOLO v3-sppモデルでwidth=608,height=608の場合
Xavier:11FPS
Nano:1FPS
▼この記事を書いたひと
R&Dセンター 松井 良行
R&Dセンター 室長。コンピュータと共に35年。そしてこれからも!
●富士見事務所 TEL : 052-228-8733 FAX : 052-323-3337
〒460-0014 愛知県名古屋市中区富士見町13−22 ファミール富士見711 地図
交通部 R&Dセンター