はじめに
この記事はDeepLearning推論用デバイスまとめ記事の第二弾です。第二弾ではNVIDIAが提供しているJetson Nanoについて紹介します。他のデバイスに関しては下記にまとめられています。
- Deep Learning推論用デバイスその1 Intel NCS2
- Deep Learning推論用デバイスその2 Nvidia Jetson Nano
- Deep Learning推論用デバイスその3 Google Edge TPU
NVIDIA Jetson Nano
(引用:https://developer.nvidia.com/sites/default/files/akamai/embedded/images/jetsonNano/Jetson-Nano_3QTR-Front_Left_trimmed.jpg)
JetsonシリーズはNVIDIAが提供しているGPUデバイスの一つで、DeepLearningモデルの学習ではなく推論に特化したハードウェアです。Jetsonは以前紹介したIntel Nural Compute Stick2とは異なり推論プロセッサのみをUSBで接続するのではなく、開発ボード全体をデバイスとして提供しています。以下がスペック表です。
要素 | Spec |
---|---|
GPU | 128-core Maxwell |
CPU | Quad-core ARM A57 @ 1.43 GHz |
Memory | 4 GB 64-bit LPDDR4 25.6 GB/s |
Storage | microSD (not included) |
Video Encode | 4K @ 30 |
Video Decode | 4K @ 60 |
Camera | 1x MIPI CSI-2 DPHY lanes |
Connectivity | Gigabit Ethernet, M.2 Key E |
Display | HDMI 2.0 and eDP 1.4 |
USB | 4x USB 3.0, USB 2.0 Micro-B |
Others | GPIO, I2C, I2S, SPI, UART |
Mechanical | 100 mm x 80 mm x 29 mm |
(引用:https://developer.nvidia.com/embedded/jetson-nano-developer-kit) |
気になる点について紹介していきます。
128-core Maxwell
MaxwellとはNVIDIA GPUのマイクロアーキテクチャのコードネームです。Tesla, Fermi, Kepler, Maxwell, Pascal, Voltaと世代ごとに名付けられていて、Jetson NanoではMaxwellマイクロアーキテクチャ仕様のCUDAコアが128個搭載されています。同じJetsonシリーズで以前から発売されているJetson TX系統は256-core Pascalが搭載されているのでその部分で見ると、Jetson Nanoは性能を落としています。価格と必要なスペックによってTXとNanoを選択する形になります。
Memory
Jetson NanoにはGPUだけでなく、CPUも搭載されております。また、Memoryに関しては4GB積まれておりこのRAMをCPU・GPUともに共有して利用します。
その他周辺環境について紹介していきます。
NVIDIA Jetpack
JetpackとはJetsonシリーズのデバイス向けのSDKです。NVIDIA製のGPUをDeepLearningの学習などで利用するためにはCUDAやCUDNNなどといったライブラリが必要でした。それらのライブラリをJetsonシリーズ向けにまとめられているのがJetpackです。なおJetpackの中に推論をNVIDIA GPUに最適化するためのライブラリであるTensorRTが入っています
推論速度
JetsonNanoの推論速度の評価に関してはNVIDIA社の技術ブログで紹介されています。
こちらがJetsonNano上でTensorRTを利用したモデルに対してのFPSを計測したヒストグラムです。
(引用:https://devblogs.nvidia.com/wp-content/uploads/2019/03/imageLikeEmbed-1024x510.png)
SSD-MobileNet-v2: 39FPS、Inception V4: 11FPS 達成しているそうです。また記事の後半にはGoogleが提供しているデバイスであるEdgeTPUとの性能評価が掲載されています。画像分類タスクにおけるMobile-Netv2や物体検出のSSD-Mobile-Netv2などを見るとEdgeTPUのほうがFPSが勝っています。ただ、多くのモデルについてはそもそもEdgeTPUで推論することができないものが多くDNR(did not run)と評価されています。この結果を見ると推論速度のみの観点ではEdgeTPUに載せられるモデルはEdgeTPU、載せられない場合はJetson Nanoという順番になりそうです。