深い学習プロセスの急速な発展は、それが本来のニューラルネットワーク・プロセッサは、計算のこの特定多数を満たすことができないことが発見された、ASIC設計の多くは、このアプリケーションのために開始します。(以下、TPUと称するテンソル演算処理装置)グーグルテンソル処理ユニットは、以前の設計の代表的なクラスを完了し、TPUマトリックスは、シストリックアレイに基づいて算出される設計加速ユニットを使用するだけでなく、ニューラルネットワークの計算を促進することができます。TPU V1関連する情報公開を使用する記事のこのシリーズは、簡素化、および修正が実際にGoogleのTPU、TPUの長所と限界をより正確に理解の簡易版を書くためと推測されなければなりません。
GoogleのディレクトリTPUシリーズの小型版を書き込むには、
広げます
TPUボーダー(計画)
再検討パラレル(案)深いニューラルネットワークを
1.完全SimpleTPUデザイン
GoogleとTPUの簡略化した概要図に示すように、ブロック図にSimpleTPUを与えられ。
シストリックアレイと達成するTPUは、畳み込みの本体マトリクス演算/計算を記述する-乗算アレイ(図4)ハードウェア部と簡易検証のために、完了コードとにニューラルネットワークハードウェアとで正規化されたプールされた浮動小数点ネットワークはプロセスのポイントを議論しながら、方法は、与えられた、正規化及び畳み込みニューラルネットワークにプール(図6)を達成するために記載さ実装の単純なTPUの重量、完了して検証のハードウェア部分のコード。
命令TPU平行とパラレルデータ全体の処理単位のアーキテクチャで分析し、議論され、それは並列に命令及び二つの平行なデータを含みます。どのように、その後に平行TPU命令およびデータ平行で述べた設計思想シストリックアレイTPUとその実現とハードウェア実装では、正規化されたニューラルネットワークにプール完全述べ演算部使用は、最終的な設計を完了シンプルなTPUです。含む機能を実現するSimpleTPU明らか必要のブロック図
- フェッチ及び復号命令(図4)
- 読ん重量(図2)
- 各制御部の実行をスケジューリングする(図1)
- 画像を読み取り、その結果(図5)ライトバック
SimpleTPU設計では、命令フェッチ及びデコード重量及び読み取り機能は、比較的単純な、直接の参照符号です。
各実行ユニットの制御及びスケジューリングは、データ間に相関がないので、各ユニットは、共同で実施することができることを確認する必要がある場合。
また、個別に結果バック画像機能を読み書きするために達成する必要があります。SimpleTPUは、その後の分析の効果を達成するために、関数の一部であるコアの計算機能は、最適化されていないに焦点を当てても、実行時間の部分を除外する。
この時点で、シンプルなTPUの基本設計は、コードがで見つけることができ、完了ですhttps://github.com/cea-wind/SimpleTPU。
2. SimpleTPU特性
主な機能はSimpleTPUが含まれます
- サポートINT8乗算、INT32累積操作をサポートしています
- 使用して並列にVLIW命令
- データ並列のためのベクトルアーキテクチャを使用
デザインのアイデアグーグルTPU V1とSimpleTPUの合わせは、ニューラルネットワークは、ほとんどの算術推論過程を行うことができます。(理論)を含む設計に応じて、運用サポート、
操作 |
説明 |
Conv3d |
in_channels:リソースに制約 out_channels:リソースに制約 kerner_size:ほぼ無制限 ストライド:ほぼ無制限 パディング:ほぼ無制限 拡張:ほぼ無制限 グループ:非常に限定的なサポート、アーキテクチャ上の制限 バイアス:サポート |
ConvTranspose3d |
同上 |
Maxpool2d |
kernel_size:ほぼ無制限 ストライド:ほぼ無制限 パディング:ほぼ無制限 |
Avgpool2d |
同上 |
Relu |
非線形関数でのみRELUをサポートしています |
BatchNorm2d |
推論BatchNorm2dコンベンションが完了したり、プールに融合されています |
リニア |
リソースに制約 |
UpscalingNearest2D |
プールを完了するために複数の呼び出し |
UpscalingBilinear2D |
複数の呼び出しが完了しavgpool |
前記主記憶設計SimpleTPU等によって制限限られたリソース制約されたパラメータの範囲、の代わりに、ほぼ無制限のみレジスタのビット幅の制限により、その値を表します。(極端なGoogleのTPUもうまく対応していませんgroupconvで、類似した、と明示的に深さ方向のコンバージョンを停止しないように言われ、原因アーキテクチャ、groupconvためSimpleTPU非常に限定的なサポート上の問題のために、効率の不適切なパラメータは、通常の畳み込みよりもはるかに低くすることができます間伐グループCONV)。
またコンピューティング畳み込み演算以下層の上層に融合させることができる推論プロセスの点別乗算および加算が行われる場合、乗算、およびプーリング融合を計算することができるBatchNorm2dファクト。SimpleTPU設計では、プーリングモジュールが実際にネットワークがないプーリング層でなくても、仕事をしている、SimipleTPU 1 * 1、ストライドを加え=プーリング層1は等価です。
アップスケーリング動作が完了したがプールすることにより計算されます。SimpleTPUでは、事業(支援)コストなしでの形状を変更するためです。計算バイリニア補間をプールが行うことができ、従って、アップスケーリングのすべての値の計算を完了することができます。それはプールに理解されるように+完成アップスケーリング計算を再構築。
3. SimpleTPU性能
32×32乗算アレイ行列乗算及び畳み込み演算、乗算INT32アレイ1×32プールの設計INT8単純なTPUは、正規化されたと計算しました。FPGAデバイス、500MHzまで動作周波数のウルトラスケール+ファミリーの連結業績ザイリンクスHLSツールによります。したがって、およそSimpleTPUオペレータの力
32×32×500MHzの×2 = 1Tops
対照的に、GoogleTPU V1 91Tops(INT8)約オペレータ力、それらSimpleTPU 1/64の大きさの主な違いは、動作周波数は、FPGA、ASICの動作周波数よりも低くなりつつ。
設計に応じて、適したタスクでSimpleTPUは、非常に高い動作効率になるTPU命令とデータ並列並行し、その中に、より詳細な説明について。巨視的に、SimpleTPU個々のオペレーティングユニットは、即ち、並行して流れることができます
最大完全接続層とネットワーク層のための畳み込み演算、設計方法及び乗算列全体ベクトル算出は、積和各クロックサイクルで計算完了効果的に標的デザインさせてもよい。これは、CPUと位相を意味比、SimpleTPUは非常に高い効率を達成することができます。