評価：Google Coral USBアクセラレーターとIntel NCS 2

人工知能（AI）と機械学習（ML）は徐々にSFから実生活へと移行しており、このタイプのシステムのプロトタイプを作成するための高速で便利な方法が必要になっています。 AI / MLの操作要件を満たすにはデスクトップコンピューターでも十分ですが、Raspberry Piなどのシングルボードコンピューターでもこれらのニーズを満たすことができます。 しかし、システムをより速く、より強力に実行するためのシンプルなプラグインデバイスが必要な場合はどうでしょうか。

GoogleのCoral Edge TPUシリーズハードウェアUSBアクセラレーター（Coral USB Accelerator、CUA）やIntelのNeural Compute Stick 2（ニューラルコンピューティングスティックNCS2）など、実際には複数の選択肢があります。 両方のデバイスは、USB経由でホストに接続されたコンピューティングデバイスです。 NCS2は視覚処理ユニット（VPU）を使用し、Coral USB Acceleratorはテンソル処理ユニット（TPU）を使用します。どちらも機械学習用の特殊な処理デバイスです。 今日、私は皆を比較し、評価します：2つの違いは何ですか？ 開発者として、CoralまたはNCS2を選択する必要がありますか？ 言うまでもなく、以下を参照してください。

#####Coral USBアクセラレーター

-MLアクセラレータ：Googleが設計したEdge TPU ASIC（特定用途向け集積回路）チップ。 TensorFlow Liteモデル（MobileNet V2 400 + fps、最新の公式更新データから）専用の高性能ML推論を提供します。

![alt](https://pic4.zhimg.com/80/v2-fb83ecc1bc10e448d6670c82a7d70e63_hd.jpg)

(Google Coral Edge TPU海外代理店売る：[Gravitylink]( https://store.gravitylink.com/global)

- USB 3.1ポートとケーブルをサポート（SuperSpeed、5GB / s転送速度）
- サイズ：30 x 65 x 8 mm
- 公式価格：$ 74.99

##### Intel Neural Compute Stick 2

-プロセッサー：Intel Movidius Myriad X Visual Processing Unit（VPU）
- USB 3.0 Type-A
- サイズ：72.5 x 27 x 14mm
- 公式価格：$ 87.99

![alt](https://pic2.zhimg.com/80/v2-8b1ae6744f8dba32362be5893edf829d_hd.jpg)

### まず、プロセッサと加速性能の比較

従来のコンピューターCPUと比較する場合とは異なり、各プロセッサー/アクセラレーターの比較の詳細は、それらの使用方法によって異なります。出力形式はわずかに異なりますが（フレームあたりの推論時間と1秒あたりのフレーム数）、いくつかの全体的なパフォーマンスモードで2つのデバイスを比較できます。

リアルタイム展開のためにAIモデルとハードウェアプラットフォームを評価する場合、最初に確認することは、それらがどれほど速いかです。コンピュータービジョンタスクでは、ベンチマークは通常、フレーム/秒（FPS）で測定されます。数値が大きいほどパフォーマンスが向上することを示し、ライブビデオストリーミングの場合、ビデオをスムーズに表示するには少なくとも約10 fpsが必要です。

運用パフォーマンス：まず、CUAをデスクトップCPUに追加すると、パフォーマンスは約10倍向上し、運用パフォーマンスは比較的良好です。 （選択したCPUモデルによると、10倍のパフォーマンスはわずかに変動します。）NCS2は古いAtomプロセッサーと「連携」します。これにより、処理速度がほぼ7倍になります。ただし、より強力なプロセッサで使用した場合、NCS2によって提示される結果は驚くことではありません。

NCS2は、理論的に4 TOPSで推論を実行できます。奇妙なことに、CUAもまったく同じ速度ですが、MLを実行するために両方とも異なる操作を使用します。さらに、Intelは、NCS2が元のNeural Compute Stickの8倍強力であると主張しています。 （必要に応じて、価格は低くなりますが、元のニューラルコンピューティングスティックの代わりにNCS2を選択できます。）

![alt](https://lh6.googleusercontent.com/proxy/lhpdL4cjVovRLajY2hkgxvYgRqM2V21VD-SCkL3VIpTWtaPNnzOFvOsSbGIe7miV3DgGmNDS2WUQ87vIyw9q28WSbK3Ni50baghQcHyBs6lTzKnBQAX2MY2uM4GGqiaSqri2IavkTO7meAaz=s0-d)
公式ベンチマークレビュー
![alt](https://pic4.zhimg.com/80/v2-a1506d0d09176e851f41127a12cc904b_hd.jpg)

NCS2は、MobileNet-v2を使用して30 FPS分類モデルを実行できますが、これは悪くありません。 ただし、11 FPSでのオブジェクト検出は少し難しいです。 約10 FPSのフレームレートは、リアルタイムオブジェクトの追跡、特に高速モーションには不十分な場合があり、多くのオブジェクトが失われる可能性があり、開発者はこの「穴」を補うために非常に優れた追跡アルゴリズムを必要とします。 （もちろん、公式のベンチマーク結果は完全に信頼できるものではありません。多くの場合、これらの企業は、手動で最適化されたソフトウェアを競合他社の標準モデルと比較します。）

![alt](https://pic1.zhimg.com/80/v2-f5dc251101f77f99a855d544d6b2a064_hd.jpg)

**電力消費**：NCS2はより少ない電力を消費します。 CUAの場合、当局は各TOPSに必要な0.5ワットをリストしています。 ユーザーは、必要に応じてCUAをデフォルトの速度または最大値（デフォルト値の2倍）に設定することもできます。

Googleの公式ドキュメントでは、デバイスが最高速度で動作し、最高周囲温度で動作しているときの電力伝送により皮膚が火傷する可能性があることを明確に警告しています。 個人的には、特別な処理能力が本当に必要でない限り、通常モードで実行するのが最善です。
また、Pythonがデバイスから優れたパフォーマンスを得るための最初の選択肢ではないことに留意することも重要です。 どちらのデバイスもC ++ APIをサポートしています。これは、テストでデバイスから最高のパフォーマンスを得るための「トリック」です。

### ソフトウェアサポート
NCS2は、Ubuntu、CentOS、Windows 10などの他のオペレーティングシステムで使用できます。 TensorFlow、Caffe、ApacheMXNet、PyTorch、PaddlePadleをオープンニューラルネットワーク変換によりサポートできます。

CUAはWindowsをサポートしていませんが、Debian 6.0以降（またはUbuntu 10.0+などの派生物）で実行できます。 CUAはTensorFlow Liteモデルを公式にしか実行できないことに言及する価値があります。

### サイズ、プロトタイプ設計、その他の詳細の比較
ソフトウェアサポート、計算能力、および消費電力をカバーした後、実際に製品プロトタイプを構築する際の2つの具体的な状況は何ですか？

![alt](https://pic1.zhimg.com/80/v2-ba0f3723f3cf0af58fe38c37bcdab9cc_hd.jpg)

率直に言って、両方のデバイスは本当にクールに見えます。 CUAは、部分的に透明なボディとヒートシンクのように見える場所を持つ、わずかに銀白色の市松模様のボディです。 NCS2は滑らかな青色のデザインで、青色の本体と統合されたヒートシンクはよりスタイリッシュに見えます。

![alt](https://pic4.zhimg.com/80/v2-8c2c9efc3a1caa9b0bcff6ce07f6b99b_hd.jpg)

もちろん、外観は二次的なものです。 重要なのは、NCS2がCUAのように動作し、動作中に熱くなることです。 ただし、そのヒートシンク設計により、真ん中の指で保持する必要なく、クーラー内蔵ヒートシンクに保持できます。これは非常に賢い方法です。

NCS2の設計により、ユーザーは複数のコンピューティングスティックを一緒に使用して処理能力を向上させることができます。 縦型USBドックにきちんと配置できます。 同様に、ホストは複数のCUAを実行できますが、各CUAを保存する別の方法を見つける必要がある場合があります。 両方の寸法が似ていますが、NCS2の厚さ（14 mm）はCUAのほぼ2倍です。 さらに、CUAのような柔軟なケーブルではなく、USBプラグ（特大のサムドライブなど）を介して接続されているため、特定の操作シナリオでは、NCS2を使用するとスペースを非常に扱いにくくなります。 難しい。 データケーブルとドックを広範囲に使用する必要があります。選択する前に、これを検討する必要があります。

![alt](https://pic4.zhimg.com/80/v2-edba59926df96409421526b9fb178ee7_hd.jpg)

最後に、NCS2とCUAは、エッジコンピューティングアプリケーション用に設計された独自のデバイスのようです。 Windowsシステムで実行する必要がある場合、またはTensorflow Liteフレームワークの外部で実行する必要がある場合、NCS2には明確な利点があります。 その一部として、Coral USB Acceleratorの周辺機器はハードウェアをサポートし、よりシンプルで無作法な開発ボードDev Board、Coral Edge TPUベースのPCIアクセラレータ、および開発ボードに似たSoMモジュールをサポートしています。 製品のプロトタイプを迅速に市場に投入する必要がある場合、Coralが最良の選択であり、開発者にとってより魅力的です。

![alt](https://pic2.zhimg.com/80/v2-b686ad1d59eeb3c47385087eaa436295_hd.jpg)

Coral USB Accelerator開発環境の要件：USBポートを備えたLinuxコンピューター、Debian 6.0以降、またはその派生システム（Ubuntu 10.0+など）をサポートする、ARMv8命令セットを備えたx86_64またはARM64システムアーキテクチャ

![alt](https://lh3.googleusercontent.com/proxy/w2U6BKeO8YRedzG5hef1u6vdckx2OXnpJ6vEM-Vk1WcFTvuUCNfQyCw3vYIfsea8TMxQNlKx7tluGtstTyK7dpDNeqesXsNhwwZAhp3vfL-tlsRKNKM5NyYACISYYx-Ttz4z9_khmUZaPBts=s0-d)

したがって、上記の要件から、Coral USBアクセラレータはRaspberry Piをサポートしています。 ただし、Raspberry Pi 2/3 Model B / B +であり、Raspbianシステム（または他のDebian派生システム）を実行する必要があります。

この時点で、2つの機能は非常に似ており、Raspberry Piまたは同様のプロジェクトにAI / MLを追加する場合、両方のデバイスが正常に機能します。

多くのプリコンパイルされたネットワークモデルを使用すると、より良い結果をすばやく簡単に取得できます。 それでも、ネットワークを完全に定量化することは依然として高度なタスクです。 変換には、ネットワークとその動作の深い理解が必要です。 さらに、FP_32からFP_16およびFP_16からUINTにアップグレードしたとき、精度に関する損失も大きかった。 興味深いことに、Myriadは浮動小数点の半分を処理でき、CUAは8ビットの浮動小数点しか処理できません。 これは、Myriadがより高い精度を達成できることを意味します。

![alt](https://pic1.zhimg.com/80/v2-5e9ea2ee540ba5f748a8ffc1caa1fbcc_hd.jpg)

IntelとGoogleは明らかに2つの異なる「ルーチンを採用しています。Googleの利点は、開発者がプロトタイプを簡単に構築し、Google Cloud Platformからedge-tpuまでの完全なソリューションセットを促進できることです。私は個人的にすべてのコンポーネントが好きです インテルは、開発者がネットワークを最適化してさまざまなハードウェアで実行できるようにするOpenvinoプラグインを提供していますが、OpenVINOは現在、Intel CPU、GPU、FPGA、およびVPUをサポートしています。 課題は、これらの「組み合わせパンチ」が常に各コンポーネントの最適な機能を活用するのに苦労してきたことです。

Google Coral USB Acceleratorは、ネットワークモデルをオンラインでトレーニングできます。これは、転移学習に不可欠です。 明らかに、Googleは、事前にトレーニングされたネットワークと転送の学習が開発者にとって効率的な組み合わせであると考えています。 さらに、Intel NCS2には3組のビルトインステレオデプスハードウェアがあり、障害物回避などの多くのユースケースで役立ちます。

#### 適用シナリオ：
Intel NCS2は、DNNのプロトタイピング、検証、および展開も提供します。 無人および無人車両、およびIoTデバイスには、低消費電力が不可欠です。 ディープラーニング推論アプリケーションの開発を検討しているユーザーにとって、NCS2は最もエネルギー効率が高く、低コストのUSBスティックの1つです。

![alt](https://lh6.googleusercontent.com/proxy/iHbtb5K6o33QONuVq2vFJYpqJkomM_Uw_g3h3G1Gk5aeqqFJ8A8GSZTdf_3bBV6OnRAzecg4UtIJQaT6dpwAJxbZgIChQ_55yin3YvbWzaFcJRZZHry9IQvXFUqo9TUhxpAUDKY0a9eTXk9e=s0-d)

Google Coralは単なるハードウェアではありません。 カスタムハードウェア、オープンソフトウェア、高度なAIアルゴリズムの機能を簡単に組み合わせて、高品質のAIソリューションを提供します。 Coralには、予測メンテナンス、異常検出、ロボット工学、マシンビジョン、音声認識など、産業開発を支援する多くのアプリケーションケースがあります。 製造、ヘルスケア、小売、スマートスペース、内部監視、輸送部門で優れたアプリケーション価値を持っています。

Google Coral Edge TPUシリーズのハードウェア製品に興味がある場合は、Google CoralエージェントのGravitylinkオンラインストア（https://store.gravitylink.com/global）にアクセスして注文してください。