Google Coral Edge TPU Hardware & AIY Kits

store: https://store.gravitylink.com/global

Google Coralの新しいハードウェアの紹介

M.2 Accelerator

Coral M.2アクセラレータは、既存のシステムおよび製品にEdge TPUコプロセッサーを提供するM.2モジュールです。

 特徴

 

Google Edge TPU MLアクセラレーター
2つのM.2フォームファクターで利用可能:
M.2-2230-A-E-S3(A + Eキー)
M.2-2280-B-M-S3(B + Mキー)
ホストCPUでDebian Linuxおよびその他のバリアントをサポート

M.2アクセラレータはデュアルキーM.2カード(A + EまたはB + Mキー)で、互換性のあるM.2スロットに適合するように設計されています。 このフォームファクタにより、ARMおよびx86プラットフォームに簡単に統合できるため、組み込みプラットフォーム、ミニPC、産業用ゲートウェイなどの製品にローカルMLアクセラレーションを追加できます。

購入情報: Google Coral 海外代理店 Gravitylink (https://store.gravitylink.com/global)

alt

alt

Edge TPUを既存のシステムに簡単に統合できるPCIeデバイス
- サポートされるホストOS:Debian Linux
- ハーフサイズMini PCIeフォームファクタ
- サポートされているフレームワーク:TensorFlow Lite
- AutoML Vision Edgeで動作します

alt

Coral Mini PCIe Acceleratorは、Edge TPUコプロセッサーを既存のシステムと製品にもたらすPCIeモジュールです。

Mini PCIe Acceleratorは、標準のMini PCIeスロットに収まるように設計されたハーフサイズのMini PCIeカードです。 このフォームファクタにより、ARMおよびx86プラットフォームに簡単に統合できるため、組み込みプラットフォーム、ミニPC、産業用ゲートウェイなどの製品にローカルMLアクセラレーションを追加できます。

 特徴

  • Google Edge TPU MLアクセラレーター
  • 標準のハーフミニPCIeカード
  • ホストCPUでDebian Linuxおよびその他のバリアントをサポート

 Edge TPUについて

Edge TPUは、低電力要件で高性能ML推論を提供するGoogleによって設計された小さなASICです:各TOPSに0.5ワット(ワットあたり2 TOPS)を使用して、1秒間に4兆回の操作(テラ操作)(TOPS)を実行できます )。 たとえば、MobileNet v2などの最先端のモバイルビジョンモデルを約400 FPSで電力効率の高い方法で実行できます。 このデバイス上の処理により、待ち時間が短縮され、データプライバシーが向上し、一定の高帯域幅接続が不要になります。

 

 

Google Coral: 2020年の新しいサンゴ製品

ますます多くの業界がローカルAIの価値を認識し始めています。ローカルAIの速度により、帯域幅クラウドコンピューティングのコストを大幅に節約でき、データをローカルに保持するとユーザーのプライバシーが保護されます。
昨年、ハードウェアコンポーネントとソフトウェアツールのプラットフォームであるCoralを立ち上げ、ローカルAI製品のプロトタイプ作成とスケーリングを容易にしました。当社の製品ポートフォリオには、Coral Dev Board、USB Accelerator、およびPCIe Acceleratorsが含まれ、これらはすべて36か国で利用できます。

リリース以来、ヘルスケアから農業、スマートシティに至るまで、幅広い業界でコーラル上にすでに構築されている多様なアプリケーションに興奮しています。そして、2020年には、可能性をさらに広げるCoralプラットフォームへの新しい追加を発表できることを楽しみにしています。

まずはCoral Accelerator Moduleです。これは、Edge TPU ASICをカプセル化する統合が容易なマルチチップパッケージです。このモジュールは、PCIeとUSBの両方のインターフェースを公開し、カスタムPCB設計に簡単に統合できます。村田製作所と緊密に協力してモジュールを製作しており、CES 2020でCP-18セントラルプラザのテックイーストにあるラスベガスコンベンションセンターのブースにアクセスしてデモを見ることができます。 Coral Acceleratorモジュールは、2020年の前半に利用可能になります。

coralboard.jpg

次に、Coral Dev Board Miniを発表します。これは、Coral Dev Boardに代わる、より小さなフォームファクター、低電力、低コストの代替品を提供します。 Miniは、新しいCoral AcceleratorモジュールとMediaTek 8167s SoCを組み合わせて、720Pビデオエンコード/デコードおよびコンピュータービジョンのユースケースに優れたボードを作成します。CoralDev Board Miniは、2020年前半に利用可能になります。

また、Coral System-on-Moduleの新しいバリエーションも提供しており、元の1GB LPDDR4構成に加えて2GBおよび4GB LPDDR4 RAMを使用できます。スマートシティ、製造、およびヘルスケアアプリケーションでのSoMの使用方法、およびCES 2020のNXPチームとパビリオンで取り組んでいる新しいSoCおよびMCUの調査を紹介します。ラスベガスコンベンションセンター、テックイースト、セントラルプラザ、CP-18。

微信截图_20200108165537.png

微信截图_20200108164700.png

最後に、Asusは、Tinker Edge T製品のベースとしてCoral SOMを選択しました。TinkerEdge T製品は、豊富なI / Oインターフェイス、複数のカメラコネクタ、プログラマブルLED、および色分けされたGPIOヘッダーを備えた、メーカーフレンドリーなシングルボードコンピューターです。 Tinker Edge Tボードはまもなく利用可能になります。詳細は、Asusから入手できます。

Google Coral Edge TPUのハードウェア製品は、その官方海外の代理店であるGravitylinkに掲載されています: https://store.gravitylink.com/global/
微信截图_20200108170611.png

複数のEdge TPUで複数のモデルを実行する

Edge TPUには、モデルのパラメーターデータをローカルに保存するために使用される少量のRAMが含まれており、外部メモリからデータを取得する場合と比較して、より高速な推論速度を実現します。 通常、2つ目のモデルを実行するにはRAM内のモデルのパラメーターデータを交換する必要があるため、パイプライン全体が遅くなるため、Edge TPUごとに1つのモデルのみを実行する場合にパフォーマンスが最高になります。 このページで説明するように、1つの解決策は、異なるEdge TPUで各モデルを単純に実行することです。

または、モデルを同時コンパイルすることにより、パラメーターデータのスワップのオーバーヘッドコストを削減できます。 同時コンパイルにより、Edge TPUは複数のモデルのパラメーターデータをRAMに一緒に格納できます。つまり、通常、小さなモデルでのみうまく機能します。 このオプションの詳細については、パラメーターデータのキャッシュと同時コンパイルについてお読みください。 それ以外の場合、複数のEdge TPUに複数のモデルを配布する場合は、ここで読み続けてください。

 パフォーマンスに関する考慮事項

システムにさらにEdge TPUを追加する前に、次のパフォーマンスの問題を検討してください:

  • Pythonは、CPUに制限された操作の実際のマルチスレッドをサポートしていません(Pythonグローバルインタープリターロック(GIL)について読んでください)。 ただし、Edge TPU Python API(TensorFlow Lite Python APIは除く)を最適化し、すべてのEdge TPU操作に対してPythonのマルチスレッド環境内で動作するようにしました。これらはIOに制限されており、パフォーマンスが向上します。 ただし、複数のモデルを実行する場合、これらの操作はPythonでマルチスレッド化できないため、イメージのダウンスケーリングなどのCPUに制限された操作は、おそらくパフォーマンスに影響することに注意してください。

  • 複数のUSBアクセラレータを使用する場合、特に大規模モデルを実行している場合、ホストUSBバスの速度によって最終的に推論速度がボトルネックになります。

  • USBハブを介して複数のUSBアクセラレータを接続する場合、各USBポートがデフォルトの動作周波数を使用する場合は少なくとも500mA、最大周波数を使用する場合は900mAを提供できることを確認してください(USBアクセラレータのパフォーマンス設定を参照)。 そうしないと、デバイスが適切に機能するのに十分な電力を消費できない可能性があります。

  • 外部USBハブを使用する場合は、USBアクセラレーターをプライマリポートのみに接続してください。 一部のUSBハブには、互換性のないセカンダリポートを備えたサブハブが含まれています。APIはこれらのポートでEdge TPUコンテキストを確立できません。 たとえば、lsusb -tと入力すると、次のようにポートが印刷されます。 最初の2つのUSBポート(usbfs)は正常に機能しますが、最後の1つは機能しません。

/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/7p, 5000M
| Port 3: Dev 36, If 0, Class=Hub, Driver=hub/4p, 5000M
    | Port 1: Dev 51, If 0, Class=Vendor Specific Class, Driver=usbfs, 5000M  # WORKS
    | Port 2: Dev 40, If 0, Class=Hub, Driver=hub/4p, 5000M
        | Port 1: Dev 41, If 0, Class=Vendor Specific Class, Driver=usbfs, 5000M  # WORKS
        |__ Port 2: Dev 39, If 0, Class=Vendor Specific Class, Driver=usbfs, 5000M  # DOESN'T WORK

 TensorFlow Lite Python APIを使用する

TensorFlow Lite Python APIを使用して推論を実行し、複数のEdge TPUがある場合、load_delegate()関数を使用して各 Interpreterが使用するEdge TPUを指定できます。

load_delegate()に1つのエントリdeviceを持つ辞書を渡すだけで、使用するEdge TPUデバイスを指定できます。 受け入れられる値は次のいずれかです:

  • usb:デフォルトのUSB接続Edge TPUを使用します。
  • sb:<index>:列挙されたデバイスインデックスによって示されるUSB接続のEdge TPUを使用します。
  • pci:デフォルトのPCIe接続エッジTPUを使用します。
  • pci:<index>:列挙されたデバイスインデックスによって示されるPCIe接続のEdge TPUを使用します。
interpreter_1 = Interpreter(model_1_path,
  experimental_delegates=[load_delegate('libedgetpu.so.1.0', {"device": "usb:0"})])

interpreter_2 = Interpreter(model_2_path,
  experimental_delegates=[load_delegate('libedgetpu.so.1.0', {"device": "usb:1"})])

この方法で個別のEdge TPUを指定しない場合、両方のモデルが同じEdge TPUで実行されます。これは、上記の概要で説明したように低速です。

 TensorFlow Lite C ++ APIを使用する

TensorFlow Lite C ++ APIを使用して推論を実行し、複数のEdge TPUがある場合、EdgeTpuManager :: OpenDevice() を介してEdgeTpuContextを作成するときに各Interpreter が使用するEdge TPUを指定できます。

OpenDevice()メソッドにはdevice_typeのパラメーターが含まれており、次の2つの値のいずれかを受け入れます。

  • DeviceType.kApexUsb:デフォルトのUSB接続Edge TPUを使用します。

  • DeviceType.kApexPci:デフォルトのPCIe接続Edge TPUを使用します。

たとえば、2つのUSBアクセラレータが接続されている場合、次のようにそれぞれがUSBアクセラレータの1つを使用する2つのインタープリターを指定する必要があります。

同じタイプの複数のEdge TPUがある場合、2番目のパラメーター device_path を指定する必要があります。 使用可能な各Edge TPUの特定のデバイスパスを取得するには、EdgeTpuManager.EnumerateEdgeTpu()を呼び出します。

この方法で個別のEdge TPUを指定しない場合、両方のモデルが同じEdge TPUで実行されます。これは、上記の概要で説明したように低速です。

例については、two_models_two_tpus_threaded.cc を参照してください。

edgetpu.h のAPIの詳細も参照してください。

 Edge TPU Python APIを使用する

Edge TPU Python APIを使用して推論を実行しており、複数のEdge TPUがある場合、Edge TPU APIは各推論エンジン(ClassificationEngineやDetectionEngineなど)を異なるEdge TPUに自動的に割り当てます。 したがって、上記のTensorFlow Lite APIとは異なり、同じ数の推論エンジンとEdge TPUがあれば、余分なコードを書く必要はありません。

たとえば、2つのEdge TPUと2つのモデルがある場合、通常どおり推論エンジンを作成するだけで、別々のEdge TPUで各モデルを実行できます:

# Each engine is automatically assigned to a different Edge TPU
engine_a = ClassificationEngine(classification_model)
engine_b = DetectionEngine(detection_model)

その後、それらは別々のEdge TPUで自動的に実行されます。

Edge TPUが1つだけの場合、このコードは引き続き機能し、両方が同じEdge TPUを使用します。

ただし、複数のEdge TPU(N)があり、N + 1(またはそれ以上)モデルがある場合は、追加の推論エンジンごとに使用するEdge TPUを指定する必要があります。 そうしないと、エンジンがEdge TPUデバイスにマップされないというエラーが表示されます。

たとえば、2つのEdge TPUと3つのモデルがある場合、3番目のエンジンを他の1つと同じEdge TPUで実行するように設定する必要があります(どちらを決定するか)。 次のコードは、device_path 引数をengine_b で使用されるものと同じデバイスに指定することにより、engine_cでこれを行う方法を示しています。

# The second engine is purposely assigned to the same Edge TPU as the first
engine_a = ClassificationEngine(classification_model)
engine_b = DetectionEngine(detection_model)
engine_c = DetectionEngine(other_detection_model, engine_b.device_path())

ListEdgeTpuPaths()から利用可能なEdge TPUデバイスパスのリストを取得することもできます。

サンプルコードについては、two_models_inference.py を参照してください。

注:USBで接続されたすべてのEdge TPUは同等に扱われます。 モデルを配布する際に優先順位付けはありません。 ただし、USBアクセラレータを開発ボードに接続すると、システムは常にUSBデバイスを使用する前にオンボード(PCIe)エッジTPUを優先します。

 続きを読む

Coral Dev Board は、小さなフォームファクターで高速機械学習(ML)推論を実行する必要がある場合に理想的なシングルボードコンピューターです。 Dev Boardを使用して組み込みシステムのプロトタイプを作成し、オンボードCoral System-on-Module(SoM)をカスタムPCBハードウェアと組み合わせて実稼働環境に拡張できます。

Coral USB Accelerator は、システムにEdge TPUコプロセッサーを追加するUSBデバイスです。 USBソケットが含まれているため、任意のLinuxベースのシステムに接続して、加速ML推論を実行できます。

微信截图_20190904150555.png

オンボードのEdge TPUは、Googleが設計した小さなASICであり、低電力コストで高性能なML推論を提供します。 たとえば、MobileNet v2などの最先端のモバイルビジョンモデルを400 FPSで電力効率の高い方法で実行できます。

Google AIY Vision Kit:Rpiを画像認識デバイスに変える

Googleは、Raspberry Pi機器を画像認識デバイスに変えることができるAIY(AI自分)ビジョンキットを発売しました。 ビジョンキットはGoogleのTensorFlow機械学習モデルを搭載しており、まもなくデバイスを制御するためのAndroidアプリが付属します。

AIY音声プロジェクトも導入しました。これにより、メーカーはGoogle Assistant SDKを使用して、Raspberry Piを音声制御アシスタントに変えることができました。

Vision Kit は「オンデバイスニューラルネットワークアクセラレーション」を特長としており、Raspberry Piベースのボックスでクラウドで処理せずにコンピュータービジョンを実行できます。 AIY Voice Kitは、自然言語処理クラウドに依存しています。

キットには、最大1000種類のオブジェクトを認識できるオブジェクト認識アプリケーション、顔とその表情を認識するオブジェクト認識アプリケーション、人、猫、犬を検出する3つのアプリケーションがあります。 それだけで多くのいたずらをすることができますが、独自のニューラルネットワークを実行することもできます。

VisionBonnetボードはGoogleによって開発され、IntelのMovidius MA2450ビジョン処理チップを搭載しています。 このチップは、Vision Kitの秘密のソースです。 Raspberry Pi 3に依存する場合よりもコンピュータービジョンの実行が60倍速くなります。VisionBonnetは、キットに付属のケーブルでRaspberry Pi Zero Wに接続されます。

 

Googleは、開発者がこれらのニューラルネットワークを構築し、猫/犬/人の検出器にウサギを認識させるなどの新しいタスクに適用することを望んでいます。 この目標を達成するために、TensorFlowでモデルを再トレーニングするためのモデルをコンパイルするツールが提供されています。

Vision Kitは、Googleディストリビュータ Gravitylink から89.99ドルで入手できます。

Google Mini PCIe Acceleratorを導入する

Google Mini PCIe Acceleratorを導入する

Mini PCIeまたはM.2インターフェイスを使用して、Edge TPUをレガシーシステムと新しいシステムに統合します。

もっと詳しく知る: Google Coral Edge TPU] (https://store.gravitylink.com/global)

 特徴

Google Edge TPU MLアクセラレーター
標準のハーフミニPCIeカード
ホストCPUでDebian Linuxおよびその他のバリアントをサポート

 概要

Coral Mini PCIe Acceleratorは、既存のシステムおよび製品にEdge TPUコプロセッサーを提供するPCIeモジュールです。

Edge TPUは、低電力要件で高性能ML推論を提供するGoogleによって設計された小さなASICです:各TOPSに0.5ワット(ワットあたり2 TOPS)を使用して、1秒間に4兆回の操作(テラ操作)(TOPS)を実行できます )。 たとえば、MobileNet v2などの最先端のモバイルビジョンモデルを400 FPSで電力効率の高い方法で実行できます。 このオンデバイス処理により、待ち時間が短縮され、データのプライバシーが向上し、一定の高帯域幅接続の必要性がなくなります。

Mini PCIe Acceleratorは、標準のMini PCIeスロットに収まるように設計されたハーフサイズのMini PCIeカードです。 このフォームファクタにより、ARMおよびx86プラットフォームに簡単に統合できるため、組み込みプラットフォーム、ミニPC、産業用ゲートウェイなどの製品にローカルMLアクセラレーションを追加できます。

 必要条件

Coral Mini PCIe Acceleratorは、次の仕様のホストコンピューターに接続する必要があります。

  • 互換性のあるミニPCIeモジュールスロットを備えたLinuxコンピューター
  • Debian 6.0以降、またはその派生物(Ubuntu 10.0+など)
  • ARMv8命令セットを備えたx86-64またはARM32 / 64のシステムアーキテクチャ

 次元

合計サイズ:30 x 26.80 x 2.5 mm
PCBサイズ:30 x 26.80 x 1.0 mm
上面コンポーネントの高さ(最大):1.5 mm
底面コンポーネントの高さ:0 mm
詳細な機械仕様については、PCI Express Mini Card Electromechanical Specificationを参照してください。

 ソフトウェアと操作

ホストシステムは、Debian Linux 6.0以降、またはその派生物を実行し、Edge TPUランタイムとAPIライブラリがインストールされている必要があります。

PCIeカーネルドライバーは、バージョン4.19以降、ソースを使用してkernel.orgに既にアップストリーム化されています。 以前のバージョンの場合、dkmsドライバーは、https://packages.cloud.google.com/apt coral-edgetpu-stable main のガスケットdkms debパッケージから入手できます。

 熱限界と動作周波数

Edge TPUスタックアップの熱抵抗と最大許容温度は次のとおりです。

  • 熱抵抗(シールド缶の上部への接合部):11°C / W
  • 最大Edge TPUジャンクション温度:100°C
  • Mini PCIe Acceleratorには、システムから熱を放散する熱ソリューションは含まれていません。 Edge TPUから最大のパフォーマンスを維持するには、Edge TPUが最大Edge TPU温度よりも十分に低く動作するようにシステムを設計することが重要です。 Edge TPUが高温になりすぎると、動作周波数が徐々に低下し、永久的な損傷を避けるためにリセットされる場合があります。

PCIeドライバーには、Edge TPUからの温度測定値に基づいて、電力調整メカニズム(動的周波数スケーリングとも呼ばれます)および緊急シャットダウンメカニズムが含まれています。デフォルトでは、このシステムはEdge TPUダイ温度を5秒ごとにチェックし、次のように応答します。

  • Edge TPUが85°C未満の場合、「最大」動作周波数で続行します。
  • Edge TPUが85°Cに達したら、動作周波数を50%下げます(「最大」から「通常」に)。
  • Edge TPUが90°Cに達した場合、動作周波数をさらに50%下げます(「通常」から「低」に)。
  • Edge TPUが95°Cに達した場合、動作周波数をさらに50%下げます(「低」から「最低」に)。
  • Edge TPUが100°Cに達したら、Edge TPUをリセットします。 動作周波数を下げることで、Edge TPUの推論速度は遅くなりますが、消費電力が少なくなり、ハードウェアリセットのしきい値に到達することを回避できます。

Edge TPUがリセットされず、Edge TPUの温度がより低いレベルに戻る限り、システムは逆の方法で動作周波数を復元します。EdgeTPUが85°Cを下回ると、最終的に最大動作周波数に戻ります。

社会的利益のための2,602のAIの使用、およびそれらから学んだこと

(來源:Google Blog)

過去数年間、Google AIの中核研究とエンジニアリングを、洪水の予測、クジラの保護、famineの予測など、社会にプラスの影響を与えるプロジェクトに適用してきました。人工知能は大きな社会的、人道的、環境的な問題に対処する信じられないほどの可能性を秘めていますが、この可能性を達成するためには、これらの分野ですでに進歩している組織がアクセスできる必要があります。したがって、2018年10月に開始されたGoogle AIインパクトチャレンジは、世界中の組織に、AIを使用して社会的課題に対処する方法についてのアイデアを提出するための公募でした。

Google_AI_ImpactChallenge_Report_Charts_Gl.max-1000x1000.png

人工知能による社会的利益の促進」は、AIを使用して大きな問題に対処するさまざまな組織に光を当てます。また、社会的利益のためにAIを使用することに関連する機会と課題に関するいくつかの傾向を特定します。学んだことの一部を次に示します。詳細についてはレポートをご覧ください。

AIはグローバルに関連しています

6大陸と119か国から2,602件の応募があり、教育から環境に至るまで、幅広い問題分野に取り組むプロジェクトがありました。一部の応募者はAIの経験がありましたが、非営利組織の55%と非営利の社会的企業の40%がAIの以前の経験を報告していませんでした。

微信截图_20190918141352.png

同様のプロジェクトは共有リソースの恩恵を受けることができます

すべてのアプリケーションを確認したところ、多くの人が同じ問題に取り組んでおり、同じアプローチを使用していることさえわかりました。たとえば、AIを使用して農業害虫を特定および管理することを提案する30以上のアプリケーションを受け取りました。レポートには、一般的なプロジェクトの提出物のリストが含まれています。これにより、人々は、同様の問題を解決するために働いている他の人々と協力し、リソースを共有することができます。

社会的利益のためにAIを使用するために専門家である必要はありません

新しい機械学習ライブラリや、TensorflowやML Kitなどの他のオープンソースツールがAIの実装に必要な技術的専門知識を減らすため、AIはよりアクセスしやすくなっています。組織はAIの深いバックグラウンドを持つ人を必要としなくなり、ゼロから始める必要はありません。すべてのセクターおよび組織の種類にわたって、提出物の70%以上が既存のAIフレームワークを使用して提案された課題に取り組んでいます。

成功するプロジェクトは、技術的能力とセクターの専門知識を兼ね備えています

プロジェクトを最初から最後まで成功裏に設計および実装するために、社会部門とAIの技術的な専門知識の両方を持つ組織はほとんどありませんでした。最も包括的なアプリケーションは、深いセクターの専門知識を持つ非営利団体と、技術的な経験を持つ学術機関またはテクノロジー企業との間にパートナーシップを確立しました。

MLだけが答えではありません

一部の問題は、AIの代替方法を使用することで対処できます。その結果、実行がより速く、より簡単に、より安価になります。たとえば、いくつかの組織は、機械学習を使用して、十分なサービスを受けていない集団を法的知識とツールに一致させることを提案しました。 AIは役立つかもしれませんが、適切に設計されたWebサイトを通じて同様の結果を達成できます。 AIが大きな問題の解決に与える影響を見てきましたが、より単純なアプローチも除外すべきではありません。

社会的利益のためのAIを取り巻く世界的な勢いが増しており、多くの組織がすでにさまざまな社会的課題に対処するためにAIを使用しています。より多くの社会部門組織がAIの可能性を認識しているため、私たち全員がより良い世界のために彼らの仕事を支援する上で果たすべき役割を持っています。

Google Coral Edge TPU代理店Gravitylink!

これらのデバイスはまだ正式に発表されていないようで、最初にHacksterによって発見されました。これらは新しいGoogle Coralブランド(それ自体はまだ「ベータ版」)の下で導入されており、149.99ドルで販売されている開発ボード、74.99ドルで販売されているUSBアクセラレータ、および24.99ドルで入手可能な5メガピクセルのカメラを含みます。 。

開発ボードとアクセラレータはどちらもGoogleのEdge TPUチップを搭載しています。これは、汗をかくことなくAIモデルを実行するように設計された、あなたの指の爪ほどの大きさのASICプロセッサです。その間、カメラは開発ボードのためのアドオンとしてあります。