システム アーキテクチャ
Tensor Processing Unit(TPU)は、機械学習ワークロードを高速化するために Google が設計したアプリケーション固有の集積回路(ASIC)です。Cloud TPU は、TPU をスケーラブルなリソースとして利用できるようにする Google Cloud サービスです。
TPU は、行列演算をすばやく実行するように設計されているため、機械学習ワークロードに最適です。TensorFlow、Pytorch、JAX などのフレームワークを使用して、TPU で機械学習ワークロードを実行できます。
Cloud TPU の用語
Cloud TPU を初めて使用する場合は、TPU ドキュメント ホームをご覧ください。以降のセクションでは、このドキュメントで使用する用語と関連するコンセプトについて説明します。
バッチ推論
バッチ推論(オフライン推論)とは、通常は大量の入力に対する推論を本番環境パイプラインの外部で行うことを指します。バッチ推論は、データラベル付けなどのオフライン タスクのほか、トレーニング済みモデルの評価にも使用されます。レイテンシの SLO はバッチ推論の優先事項ではありません。
TPU チップ
TPU チップには、1 つ以上の TensorCore が含まれています。TensorCore の数は、TPU チップのバージョンによって異なります。各 TensorCore は、1 つ以上のマトリックス乗算ユニット(MXU)、ベクトル ユニット、スカラー ユニットから構成されます。
MXU は、シストリック アレイ内の 128 x 128 の乗算アキュムレータで構成されています。MXU は、TensorCore の大部分の計算能力を提供します。 各 MXU により、サイクルごとに 16,000 の乗累算演算を処理できます。すべての乗算は bfloat16 の入力を取りますが、すべての累積は FP32 数値形式で実行されます。
ベクトル ユニットは、活性化やソフトマックスなどの一般的な計算に使用されます。スカラー ユニットは、制御フロー、メモ��アドレスの計算、その他のメンテナンス オペレーションに使用されます。
TPU キューブ
4x4x4 トポロジ。これは、3D トポロジ(v4 TPU バージョン以降)にのみ適用されます。
推論
推論は、トレーニングされたモデルを使用して新しいデータの予測を行うプロセスです。サービス提供プロセスで使用されます。
マルチスライスとシングル スライス
マルチスライスはスライスのグループであり、チップ間相互接続(ICI)接続を超えて TPU 接続を拡張し、スライスを超えてデータを送信するためにデータセンター ネットワーク(DCN)を利用します。各スライス内のデータは、ICI によって引き続き送信されます。このハイブリッド接続を使用すると、マルチスライスではスライス間の並列処理が可能になり、単一のスライスで対応できるよりも多くの TPU コアを 1 つのジョブに対して使用できます。
TPU は、単一のスライスや複数のスライスでジョブを実行するために使用できます。つづきの内容は、マルチスライスの概要をご覧ください。
Cloud TPU の ICI の復元性
ICI の復元性により、キューブ間で TPU を接続する光リンクと光回路スイッチ(OCS)のフォールト トレランスが向上します。 (キューブ内の ICI 接続では、影響を受けない銅リンクが使用されます)。ICI 復元力により、ICI 接続は OCS 障害と光 ICI 障害を回避して経路設定されます。その結果、TPU スライスのスケジューリング可用性が改善されますが、ICI のパフォーマンスが一時的に低下するというトレードオフがあります。
Cloud TPU v4 と同様に、1 キューブ以上の v5p スライスでは、ICI の復元力がデフォルトで有効になります。
- v5p-128(アクセラレータ タイプを指定する場合)
- 4x4x4(アクセラレータ構成を指定する場合)
キューに入れられたリソース
シングルスライスまたはマルチスライス TPU 環境に対するリクエストをキューに追加して管理するために使用される TPU リソースの表現。詳細については、キューに格納されたリソースのユーザーガイドをご覧ください。
サービス提供
サービス提供とは、トレーニング済み機械学習モデルを本番環境にデプロイするプロセスであり、本番環境を使用して予測や決定を行うために使用できます。レイテンシとサービスレベルの可用性は提供に重要です。
単一ホストとマルチホスト
TPU ホストは、TPU ハードウ���アに接続された物理コンピュータ上で動作する VM です。TPU ワークロードは 1 つ以上のホストを使用できます。
単一ホスト ワークロードは 1 つの TPU VM に制限されます。マルチホスト ワークロードは、複数の TPU VM にトレーニングを分散します。
スライス
Pod スライスは、高速チップ間相互接続(ICI)で接続された同じ TPU Pod 内��������ップの集合体です。 スライスは、TPU のバージョンに応じてチップまたは TensorCore の数で記述されます。
チップ形状とチップ トポロジもスライス形状を指します。
SparseCore
v5p には、チップあたり 4 つの SparseCore が搭載されています。これは、推奨モデルに見られる埋め込みに依存するモデルを高速化する Dataflow プロセッサです。
TPU Pod
TPU Pod は、特別なネットワークを介してグループ化された、連続した TPU のセットです。TPU Pod 内の TPU チップの数は、TPU のバージョンによって異なります。
TPU VM またはワーカー
基盤となる TPU にアクセスできる Linux を実行している仮想マシン。 TPU VM は、ワーカーとも呼ばれます。
Tensor コア数
TPU チップには、行列乗算を実行する 1 つまたは 2 つの TensorCore があります。TensorCore の詳細については、この ACM の記事をご覧ください。
ワーカー
TPU VM をご覧ください。
TPU のバージョン
TPU チップの正確なアーキテクチャは、使用する TPU のバージョンによって異なります。TPU バージョンごとに、異なるスライスサイズと構成もサポートされています。システム アーキテクチャとサポートされている構成の詳細については、次のページをご覧ください。
Cloud TPU VM アーキテクチャ
TPU ホスト(および TPU ボード)の操作方法は、使用する TPU VM アーキテクチャ(TPU ノードまたは TPU VM)によって異なります。
TPU VM アーキテクチャ
TPU VM アーキテクチャでは、SSH を使用して TPU デバイスに物理的に接続された VM に直接接続できます。VM への root アクセス権があるため、任意のコードを実行できます。コンパイラとランタイム デバッグログ、エラー メッセージにアクセスできます。
TPU ノード アーキテクチャ
TPU ノード アーキテクチャは、gRPC を介して TPU ホストと通信するユーザー VM で構成されています。このアーキテクチャを使用する場合、TPU ホストに直接アクセスできないため、トレーニング エラーと TPU エラーのデバッグが困難になります。