システム アーキテクチャ

このドキュメントでは、Cloud TPU システムのアーキテクチャについて説明します。

システム アーキテクチャ

Tensor Processing Unit(TPU)は、Google 独自に開発されたアプリケーション固有の集積回路(ASIC)であり、機械学習ワークロードの高速化に使用されます。これらの TPU は、機械学習を主導する Google の豊かな経験を生かして新しく設計されました。

Cloud TPU により、クラウドで TensorFlow を使用し、Google の第 2 世代の TPU アクセラレータ ハードウェアで機械学習ワークロードを実行できます。Cloud TPU は、パフォーマンスと柔軟性を最大化するよう設計されており、研究者、デベロッパー、企業が、CPU、GPU、TPU を使用可能な TensorFlow コンピューティング クラスタをビルドする際に役立ちます。高レベルの Tensorflow API を使用すると、Cloud TPU ハードウェア上で複製されたモデルを簡単に実行できます。

Cloud TPU は、Compute Engine VM 上の TensorFlow で表現されるユーザー プログラムからアクセスできます。プログラムを実行すると、TensorFlow 計算グラフが生成され、gRPC を介して Cloud TPU に送信されます。Cloud TPU サーバーでは、計算グラフをその都度コンパイルし、実行するためにプログラム バイナリを Cloud TPU に送信します。モデルへの入力は Cloud Storage 内に保存する必要があります。これらの入力は Cloud TPU サーバーに直接送られた後、消費するために Cloud TPU サーバーから Cloud TPU にストリーミングされます。

画像

上記のシステム アーキテクチャは情報提供を目的としています。プログラム / モデルの大まかな設計を行う際の参考にしてください。実際に、Cloud TPU ソフトウェア スタックにより、TPU Cloud プログラムを生成、実行、提供する複雑さがなくなります。次のセクションでは、Cloud TPU ソフトウェア スタックについて説明します。

ソフトウェア アーキテクチャ

次のブロック図は、ニューラル ネットワーク モデル、TPU Estimator、TensorFlow クライアント、TensorFlow サーバー、XLA コンパイラで構成された、Cloud TPU ソフトウェア アーキテクチャを示しています。

画像

TPU Estimator

TPU Estimator は、Estimator 上にビルドされた高レベル API のセットです。これにより、Cloud TPU のモデルのビルドが簡略化され、TPU のパフォーマンスが最大限に向上します。Cloud TPU を使用するニューラル ネットワーク モデルを記述する場合は、TPU Estimator API を使用する必要があります。

TensorFlow クライアント

TPU Estimator により、プログラムは TensorFlow 演算に変換され、変換された演算は、TensorFlow クライアントによって計算グラフに変換されます。計算グラフは、TensorFlow クライアントにより TensorFlow サーバーに送信されます。

TensorFlow サーバー

TensorFlow サーバーは、Cloud TPU サーバー上で実行されます。サーバーで TensorFlow クライアントからの計算グラフを受信すると、サーバーでは次の操作が行われます。

  • Cloud Storage から入力を読み込みます。
  • グラフを Cloud TPU 上で実行可能な部分と CPU 上で実行する必要のある部分に分割します。
  • Cloud TPU 上で実行するサブグラフに対応する XLA 演算を生成します。
  • XLA コンパイラを呼び出します。

XLA コンパイラ

XLA は、TensorFlow サーバーによって生成される High Level Optimizer(HLO)演算を入力として使用するジャスト インタイム コンパイラです。XLA により、オンチップ メモリからハードウェア実行単位へのデータのオーケストレーションやチップ間通信など、Cloud TPU 上で実行されるバイナリコードが生成されます。生成されたバイナリは、Cloud TPU サーバーと Cloud TPU との間の PCIe 接続を使用して Cloud TPU に読み込まれた後、実行のために起動されます。

ハードウェア アーキテクチャ

Cloud TPU ハードウェアは、4 つの独立したチップで構成されています。次のブロック図は、単一チップのコンポーネントを示しています。各チップは、Tensor Core と呼ばれる 2 つのコンピューティング コアで構成されています。Tensor Core は、スカラー、ベクター、マトリックス ユニット(MXU)で構成されています。さらに、16 GB のオンチップ メモリ(HBM)が各 Tensor Core に関連付けられています。

Cloud TPU の計算能力の大部分は、MXU によって提供されます。各 MXU により、サイクルごとに 16,000 の乗累算演算を処理できます。MXU の入出力は 32 ビットの浮動小数点値ですが、MXU では、低減された bfloat16 の精度で乗算が行われます。bfloat16 は、IEEE の半精度表現よりも優れたトレーニングとモデル精度を提供する、16 ビットの浮動小数点表現です。

画像

ソフトウェアの観点からすると、Cloud TPU 上の 8 つのコアは、それぞれ独立してユーザー計算(XLA 演算)を行うことができます。高帯域幅の相互接続により、チップ間で直接通信できます。

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...