AIの高速化にASICを使用するにはどうすればよいですか?


9

私たちは、上で読むことができますWikipediaのページ、Googleが機械学習のためのカスタムASICチップを構築し、AIを加速するのに役立ちますTensorFlowに合わせていること。

ASICチップは、その回路を変更することができない特定の用途に合わせて特別にカスタマイズされているため、呼び出される固定アルゴリズムが必要です。

では、アルゴリズムを変更できない場合、ASICチップを使用したAIの加速はどのように正確に機能するのでしょうか。それのどの部分が正確に加速していますか?


1
私が認識している主流のAI手法には、アルゴリズムの変更が必要なものはありませんが、ほとんどはデータ(接続強度、母集団メンバー)などを変更する機能に依存しています
NietzscheanAI

したがって、ネットワークの状態のような唯一の動的な部分は、いくつかのフラッシュメモリまたはドライブに保持されますか?
ケノーブ2016

en.wikipedia.org/wiki/Application-specific_integrated_circuitによると、最新のASICにはRAMが搭載されている可能性があります...
NietzscheanAI

回答:


4

テンソル演算

ほとんどのMLアプリケーションでの主要な作業は、(行列の乗算などの)(非常に大きな)テンソル演算のセットです。これはASIC 簡単に実行でき、他のすべてのアルゴリズムはその上で実行できます。


1
重要な点は、TPUが8ビット乗算を使用することです。これは、CPUが提供するより広い乗算よりもはるかに効率的に実装できます。そのような低い精度で十分であり、数千のそのような乗算器を単一のチップに実装することができます。
maaartinus

3

アルゴリズムは最小限に変更されたと思いますが、必要なハードウェアは骨に合わせて調整されています。

データ移動操作の数と同様に、ゲート遷移の数が(おそらく浮動小数点演算と精度も)削減されるため、電力と実行時間の両方が節約されます。Googleは、TPUが同じ作業を行うために10倍のコスト削減を達成することを推奨しています。

https://cloudplatform.googleblog.com/2016/05/Google-supercharges-machine-learning-tasks-with-custom-chip.html


1

ASIC-特定用途向けICの略です。基本的には、HDLでチップを設計するプログラムを記述します。私のポイントを説明するために、現代のコンピューターがどのように機能するかの例を取り上げます。

  • CPU -CPUは基本的に、特定のタスクを実行する多くのヘルパーICを備えたマイクロプロセッサです。マイクロプロセッサには、アキュムレータと呼ばれる単一の算術処理ユニットのみがあり、計算はアキュムレータに格納され、値のみが実行されるため、値を格納する必要があります。したがって、すべての命令、すべての操作、すべてのR / W操作は、アキュムレータを介して実行する必要があります(このため、最近のプロセスは洗練されており、アキュムレータを必要としない場合もありますが、古いコンピュータはファイルからデバイスに書き込んだときにフリーズしていました。特にDMAの間に来る)。今、MLアルゴリズムでは、簡単に並列化できる行列乗算を実行する必要がありますが、ここには単一の処理ユニットしかないため、GPUがあります。
  • GPU -GPUには100の処理ユニットがありますが、CPUの多目的機能がありません。したがって、並列化可能な計算に適しています。行列の乗算ではメモリのオーバーラップがないため(2つのプロセスによって操作されるメモリの同じ部分)、GPUは非常にうまく機能します。GPUは多機能ではないため、CPUがデータをメモリに供給するのと同じ速さでしか動作しません。
  • ASIC -ASICは、GPU、CPU、または設計のプロセッサであり、任意の量のメモリを割り当てたい場合があります。独自のMLプロセッサを設計し、ASICでプロセッサを設計するとします。256ビットのFP番号が必要ですか?256ビットプロセッサを作成します。合計を速くしたいですか?従来のプロセッサよりも多くのビット数まで並列加算器を実装しますか?あなたが欲しいnコアの数は?問題ない。異なる処理ユニットから異なる場所へのデータフローを定義したいですか?できます。また、綿密な計画を立てることで、ASIC領域と電力と速度の間のトレードオフを得ることができます。唯一の問題は、これらすべてについて、独自の基準を作成する必要があることです。一般に、ピンの数とその機能、浮動小数点表現のIEEE 754規格など、多くの試行錯誤の後に登場したプロセッサの設計では、いくつかの明確に定義された規格に従っています。したがって、これらすべてを克服できれば、独自のASICを簡単に作成できます。

GoogleがTPUで何をしているのかはわかりませんが、手元の要件に応じて、8ビットコア用にある種の整数およびFP標準を設計したようです。電力、面積、速度を考慮して、おそらくASICに実装しています。


0

精度が低いと、ConvoレイヤーとFCレイヤーで高い並列処理が可能になります。CPUおよびGPU固定アーキテクチャ、ただしASIC / FPGAはニューラルネットワークアーキテクチャに基づいて設計可能

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.