Nvidia対Google対Intel，Edge AIハードウェアに最適なのはどれですか？

Edge AIはまだ新しいものであり、多くの人はプロジェクトにどのハードウェアプラットフォームを選択すべきか確信がありません。今日、私たちはいくつかの主要なプラットフォームと新しいプラットフォームを比較します。

Nvidiaは、2012年のディープラーニングのブーム以来、GPUでAIチップを支配してきました。それらは、電力を消費し、騒がしく、高価（ビットコインゴールドラッシュのせい）でしたが、他の選択肢はなく、我慢しなければなりませんでした。約3年前、Googleは、データセンターでの深層学習の推論速度を加速するTensor Processing Unit（TPU）を設計したと発表しました。それは、データセンターとエッジの両方に特化したAIチップを発表するために、定評のあるハイテク企業と新興企業の急増を引き起こしました。

今日お話しするのは、エッジAIのプラットフォームです。それでは、エッジAIとは正確には何ですか？エッジAIという用語は、エッジコンピューティングから借用されています。つまり、データソースの近くで計算が行われています。現在、AIの世界では、一般的にデータセンターまたは大型コンピューターで発生していないものを意味します。これには、IoT、携帯電話、ドローン、自動運転車などが含まれますが、実際には物理サイズの点で大きく異なり、多くのベンダーがあります。

したがって、ポケットに快適に収まり、個人および小規模企業が購入して使用できるプラットフォームに焦点を当てます。 Nvidiaは、次のベンチマーク比較で競合他社の良い仕事をしました。IntelNeural Computer Stick、Google Edge TPU、独自のJetson Nanoがあります。

#### 性能
リアルタイム展開のためにAIモデルとハードウェアプラットフォームを評価するとき、最初に検討するのは、「どれだけ速いか」です。コンピュータービジョンタスクでは、ベンチマークは通常フレーム/秒（FPS）で測定されます。数値が大きいほどパフォーマンスが向上することを示します。リアルタイムビデオストリーミングの場合、ビデオが滑らかに見えるには少なくとも約10 fpsが必要です。 Nvidiaは、https：//developer.nvidia.com/embedded/jetson-nano-dl-inference-benchmarksで結果を見つけることができるいくつかのベンチマークを実行しました。ベンチマークで使用されるアプリケーションは多数ありますが、最も一般的なものの2つは分類とオブジェクト検出です。計算上、分類は、その画像が何であるかの予測を1つだけ行う必要があるため、最も単純なタスクです。リンゴまたはオレンジ。一方、検出タスクは、複数のオブジェクトとそのクラスの場所を検出する必要があるため、より要求が厳しくなります。複数の車と歩行者。これは、ハードウェアアクセラレーションを必要とするアプリケーションです。

これら2つのアプリケーションの意味を理解したので、ベンチマーク結果を見ることができます（DNRについては後で説明します）。 Jetson Nanoの数値は、リアルタイムの推論に適しているようです。ベースラインとして使用してみましょう。 Intel Neural Computer Stick 2（ここではNCS2と呼ぶ）は、MobileNet-v2を使用して30 FPSの分類を実行できます。これは悪くありません。ただし、11 FPSでオブジェクト検出を行うのは本当に苦労します。ところで、NCS2はUSBスティックであり、この場合はRaspberry Pi3である外部ホストコンピューターと一緒に使用する必要があります。より強力なコンピューターを使用する場合、ベンチマークの数値は高くなる可能性があります。 UCS2なしのRaspberry Pi 3のみの数値を見ると、2.5 FPSで分類の推論を行うことができます。これは、趣味やおもちゃのプロジェクトにとっては悪くありません。申し分なく、UCS2に戻ると、約10 FPSのフレームレートは、特に高速移動のリアルタイムオブジェクトトラッキングにはおそらく十分に速くなく、多くのオブジェクトが見落とされる可能性が高いため、補正するには非常に優れたトラッキングアルゴリズムが必要ですそのために。もちろん、ベンチマーク結果を完全に信頼するわけではありません。通常、同社は手作業で最適化されたソフトウェアを競合他社の標準モデルと比較しました。

次に、Google Edge TPUに注目しましょう。企業が優れた競合他社の結果をレポートに含めることは非常にまれです。エッジTPUは分類で130 FPSを実行でき、それはNanoの2倍です！オブジェクト検出の場合、Edge TPUも高速ですが、48 FPS対39 FPSでほんのわずかです。数日前にEdge TPUボードを手に入れたので、同梱されているデモを実行しました。推論速度に大きな影響を与えるニューラルネットワークの画像サイズを調べるためにコードには触れていませんが、デモは確かに非常に滑らかに見え、FPSは印象的でした！

![1_tZ8mh0ZbgMWmhW5HBnEmUw.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/448511/84856570-d702-bcf1-024c-278b3a806805.png)

#### サイズ、電力、コスト
物理的なサイズは重要な要素であり、エッジデバイスに収まるほど小さくなければなりません。開発ボードには、生産モジュールで終わらない可能性のある周辺機器が含まれています。イーサネット、USBソケット、しかし開発ボードはサイズの良いアイデアと消費電力の指標を与えてくれます。下の図は、実際の開発ボードを示しています（NCS1しか持っていませんが、Coral USBはまだ受け取っていません）。真ん中から始めると、Coral Edge TPU開発ボードのサイズはクレジットカードとまったく同じであり、それを参考にしてサイズを測定できます。


#### 開発ボードの価格と生産モジュールのサイズ

NCS2 — 99ドル、72.5mm x 27mm
Edge TPU USB — 74.99ドル、65mm x 30mm
Edge TPU開発ボード— 149.99ドル（開発）、40 x 48mm
Jetson Nano — 129ドルまたは99ドル（開発）、45mm x 70mm

![8.19推特海报21.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/448511/7ee71da0-829d-bc91-3d30-2f2cebd912f4.jpeg)

- Google Coral Edge TPU海外代理店お勧め：https://store.gravitylink.com/global

Jetson NanoとEdge TPU devはどちらも5V電源を使用し、前者は10Wの電力仕様を持っています。 Edge TPUの番号は見つかりませんでしたが、現在の2Aから3Aの5Aの仕様から、同じ電源ブラケットにあると思われます。ただし、Edge TPUボードのヒートシンクははるかに小さく、異論検出デモ中に常に動作するわけではありません。それとEdge TPUの効率的なハードウェアアーキテクチャを組み合わせることで、消費電力はJetson Nanoの消費電力よりも大幅に低くなるはずです。恐ろしい挑戦を認識して、Nvidiaは開発キットの価格を99ドルと低く抑えていたと思います。 Googleは、生産モジュールの価格を発表していませんが、Jetson Nanoに対して競争力があると推測しています。

一方、両方のUSB3.0スティックのサイズは似ていますが、NCS2はパフォーマンスが低いにもかかわらずより高価です。これは、Intelが破滅的であることを意味しますか？必ずしも必要ではありませんが、ソフトウェアは戦いの流れを変える可能性があります。

#### ソフトウェア
WINDOWSサポート

既にご存知のように、USBスティックはホストシステムに接続する必要があります。システムがWindowsを実行している場合、NCS2が唯一の選択肢です。物語の終わり、あなたは今読むのをやめることができます。

#### TPUの制限

Edge TPUはパフォーマンスとサイズの点で最も競争力があるように見えますが、ソフトウェアにおいても最も制限されています。ホストシステムとしてUbuntuのみをサポートしますが、最大の課題は機械学習フレームワークにあります。 TensorflowであるMLフレームワークは1つしかサポートしていません（正しく推測しても賞金はありません。Tensorflowの所有者はGoogleの権利ですか？）。実際、いや、技術的にはTensorflow Liteと呼ばれ、限られた数のニューラルネットワークレイヤーをサポートするバリアントです。さらに悪いことに、完全なTensorflow Liteもサポートされていませんが、8ビット整数（INT8）に量子化されたモデルのみがサポートされています。これは、INT8に加えてFP16（16ビット浮動小数点）もサポートするNCS2とは対照的です。

その意味は何ですか？従来、ディープラーニングモデルはFP32でトレーニングされ、一般に、後で精度を大幅に低下させることなく、簡単にFP16に変換できます。ただし、トレーニング後の変換によって通常は致命的な精度が得られるINT8には当てはまりません。トレーニングに量子化を組み込む必要があります。つまり、事前にトレーニングされたFP32 AIモデルを使用することはできませんが、モデルにいくつかのレイヤーを追加し、最初からトレーニングする必要があります。また、レイヤーが追加されるため、通常の時間よりもトレーニングに時間がかかります。量子化の詳細については、こちらのブログをご覧ください。 Googleは、事前調整済みのモデルを提供しており、微調整して多くの時間を節約できますが、残念ながら、選択できるコンピュータービジョンモデルはわずかです。これが、NvidiaのEdge TPUベンチマークに非常に多くのDNRが存在した理由です。これは、IntelとNvidiaが優れているところです。インテルには、選択可能な事前トレーニング済みのモデルが多数あります（https://software.intel.com/en-us/openvino-toolkit/documentation/pretrained-models）。 興味深いことに、Binary Convolutionレイヤーまたは一般的な用語である1ビットレイヤーを使用するresnet50-binary-0001が含まれています。 IntelのOpenVINOでは、Tensorflow、Caffe、MxNet、Kaldi、ONNXのモデルを変換できます。

#### NVIDIAはソフトウェアの王様です

AIハードウェアの先駆者であるNvidiaのソフトウェアは、TensorRTがMATLABを含むほとんどのMLフレームワークをサポートしているため、最も多用途です。 EdgeTPUとNCS2は、コンピューターレイヤーの一部のサブセット（主にコンピュータービジョンタスク用）をサポートするように設計されていますが、Jetson Nanoは本質的にGPUであり、その大部分のデスクトップGPUが低速でしか実行できないほとんどの計算を実行できます。とはいえ、アプリケーションにコンピュータービジョン以外のモデルが含まれる場合、リカレントネットワークまたは多くのカスタムレイヤーを使用して独自のモデルを開発する場合は、Jetsonシリーズを使用して、トレーニング済みモデルを組み込み展開に移植する際の厄介な驚きを回避する方が安全です。 Nvidiaは、複数のビデオストリーミングを可能にするDeepStream SDKと、経路計画と自律ナビゲーションのためのIsaacロボットエンジンも提供します。

#### 用途
これで、これらのプラットフォームの長所と短所の概要がわかりました。どのプラットフォームをどのアプリケーションに使用する必要がありますか？それらはすべてコンピュータービジョンAIを実行できますが、これはアプリケーションがそれぞれに最適だと思います。また、独自のハードウェア機能についても説明します。

![8.19推特海报22.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/448511/b3d97864-d97a-ec12-965a-71ec5418599f.jpeg)

- Google Coral Edge TPU海外代理店お勧め：https://store.gravitylink.com/global

#### インテルNCS2

長所：Windows、高速展開、適切なモデル選択をサポート

短所：推論速度が比較的遅く、価格が高い

最適なアプリケーションは、キオスク、ATM、Windowsを実行するPOSシステムです。既存のシステムへの非常に簡単かつ迅速なAIアップグレードが可能です。また、愛好家や少量のプロジェクトにも適しています。

#### エッジTPU

長所：最高のパフォーマンス、Wifiおよび暗号化エンジンが付属

短所：限られたトレーニングリソース、AIモデル、ソフトウェアライブラリOpenCVはサポートされていません。

価格はすべての中で最高ですが、これにはWifiや暗号化エンジンなどの完全なシステムが含まれているため、家庭用のスマートカメラなどの家電やIoTデバイスに最適です。町で最新の子供であるという事実のため、利用可能なリソース（トレーニング資料、AIモデル、チュートリアル）は多くなく、より多くのR＆Dコストを支払うことができる家電ビジネスにとってより理にかなっています。

#### NVIDIA JETSON NANO

長所：優れたソフトウェアエコシステムとリソース、追加のソフトウェアライブラリ

短所：少しかさばる

これは、ドローン、おもちゃ、掃除機などの自動運転車に最適です。汎用AIプラットフォームであるため、他のプラットフォームが優れていない分野では、Nanoを選択するのが安全です。

より多くのベンチマーク
これらのプラットフォームの実際のパフォーマンスを測定するために、いくつかのベンチマークを行うことを計画していました。しかし、このブログの公開後、速度、消費電力、温度を詳細に測定したレポートを見つけたので、車輪を再発明する手間が省けます。順序は基本的に私の推定と一致します。EdgeTPUが最も速く、NanoとNCS2がそれに続きます。また、NanoはEdge TPUに比べてより多くの電力を消費します。

#### 先物
EDGE AIが到着したので、将来のハードウェアについての私の予想は何ですか。明らかな傾向の1つは、引き続き発生する低ビット幅の使用です。現在、8ビット未満の精度は十分ではありませんが、これは活発な研究分野であり、ハードウェア企業はアルゴリズム研究のブレークスルーを歓迎する準備ができているはずです。

ディープラーニングによって革命を起こした最初の分野であるコンピュータービジョンは、前述のすべてのプラットフォームが、コンピュータービジョンに使用されるフィードフォワード畳み込みニューラルネットワークに重点を置いていることを確認しています。 Alexaのような音声ベースのインテリジェントシステムの台頭により、音声用のエッジAIチップにはギャップがあります。