JP-2026514765-A - ハードウェア集積回路向けマルチクラスタアーキテクチャ
Abstract
ハードウェア機械学習(ML)アクセラレータ用のマルチクラスタアーキテクチャを実装するための、コンピュータ読み取り可能媒体を含む方法及びシステムが記載されている。このアーキテクチャは、ハードウェア集積回路として実装されており、1つまたは複数のコアと通信するコントローラと、第1のコンピュートタイルのクラスタ及び第2のコンピュートタイルのクラスタを含む。第1のコンピュートタイルのクラスタ及び第2のコンピュートタイルのクラスタのそれぞれは、それぞれのMLワークロードを実行するように構成される。第1のワークロードは、第1のコンピュートタイルのクラスタに割り当てることができ、第2の異なるワークロードは、第2のコンピュートタイルのクラスタに割り当てることができる。第1のワークロード及び第2のワークロードは、第1のクラスタ及び第2のクラスタのコンピュートタイルに結合された少なくとも1つのコアのプログラムコンテキストに基づいて、第1のクラスタ及び第2のクラスタを使用して同時に実行される。
Inventors
- グプタ,スヨグ
- ナラヤナスワミ,ラビ
- ユン,ホンイル
- ペルグパリ,アレクヤ
- バイリー,ブバナ・クラディ
- ミン,ジホン
- ファデル,テミタヨ
Assignees
- グーグル エルエルシー
Dates
- Publication Date
- 20260513
- Application Date
- 20240417
- Priority Date
- 20230417
Claims (20)
- 集積回路であって、 1つまたは複数のコアと通信するように構成されたコントローラと、 第1の複数のコンピュートタイルを含む第1のクラスタと、を含み、前記第1のクラスタは、前記第1の複数のコンピュートタイルを使用して第1のワークロードを実行するように構成され、前記集積回路はさらに、 第2の複数のコンピュートタイルを含む第2のクラスタを含み、前記第2のクラスタは、前記第2の複数のコンピュートタイルを使用して第2のワークロードを実行するように構成され、 前記第1のワークロード及び前記第2のワークロードは、前記コントローラによってインスタンス化され、前記第1の複数のコンピュートタイル及び前記第2の複数のコンピュートタイルに結合された少なくとも1つのコアのプログラムコンテキストに基づいて同時に実行される、集積回路。
- 前記コントローラは単一処理インスタンスを実行するように構成され、前記単一処理インスタンスにおいて、前記コントローラは、 前記第1のワークロードと前記第2のワークロードを同時に実行する単一実行モード、及び 前記第1のワークロード及び前記第2のワークロードを同時に実行する共同実行モード、のいずれかを選択する、請求項1に記載の集積回路。
- 前記コントローラは、 前記第1のワークロード及び前記第2のワークロードが同じワークロードであるかどうかを決定し、 前記第1のワークロード及び前記第2のワークロードが同じワークロードであると決定したことに応答して、前記第1のワークロード及び前記第2のワークロードを同時に実行するために前記単一実行モードを選択するようにさらに構成される、請求項2に記載の集積回路。
- 前記コントローラは、 前記第1のワークロード及び前記第2のワークロードが異なるワークロードであるかどうかを決定し、 前記第1のワークロード及び前記第2のワークロードが異なるワークロードであると決定したことに応答して、前記第1のワークロード及び前記第2のワークロードを同時に実行するために前記共同実行モードを選択するようにさらに構成される、請求項2または3に記載の集積回路。
- 前記1つまたは複数のコアのそれぞれは、複数のプログラムコンテキストを実行するように構成され、各プログラムコンテキストは、特定のワークロードに対応する、先行請求項のいずれかに記載の集積回路。
- 前記1つまたは複数のコアのそれぞれは、2つ以上のプログラムコンテキストを時分割多重実行するように構成された仮想化スカラーコアであり、 1つまたは複数の仮想化スカラーコアは、前記第1のクラスタまたは前記第2のクラスタに割り当てられる、先行請求項のいずれかに記載の集積回路。
- 複数の仮想化スカラーコアをさらに含み、前記複数の仮想化スカラーコアのそれぞれは、それぞれのプログラムコンテキストを実行するように構成され、前記コントローラの制御ロジックに基づいてインスタンス化され、管理される、請求項6に記載の集積回路。
- 各仮想化スカラーコアは、前記第2のワークロードの第2の異なるタスクを実行するために前記第1のワークロードの第1のタスクをプリエンプすることを含むタスクプリエンプションをサポートするように構成される、請求項6または7に記載の集積回路。
- 各仮想化スカラーコアは、 第1の複数のタスクを含む低優先度のワークロードを実行し、 前記第1の複数のタスクのうちの特定のタスクで前記低優先度のワークロードの実行を一時停止し、 第2の複数のタスクを含む高優先度のワークロードを実行し、 前記高優先度のワークロードを実行した後、前記第1の複数のタスクのうちの前記特定のタスクで前記低優先度のワークロードの実行を再開するように構成される、請求項6~8のいずれか一項に記載の集積回路。
- 前記第1のクラスタ及び前記第2のクラスタは、同じ数のコンピュートタイルを含む同種クラスタである、先行請求項のいずれかに記載の集積回路。
- 前記第1のクラスタ及び前記第2のクラスタは、異なる数のコンピュートタイルを含む異種クラスタである、請求項1~9のいずれか一項に記載の集積回路。
- コントローラと、第1の複数のコンピュートタイルを含む第1のクラスタと、第2の複数のコンピュートタイルを含む第2のクラスタと、を含む集積回路を使用して実行される方法であって、前記方法は、 前記コントローラにより、前記コントローラと通信する1つまたは複数のコアを使用して前記集積回路で実行される単一処理インスタンスを監視することと、 前記単一処理インスタンス中、 前記第1のクラスタにより、前記第1の複数のコンピュートタイルを使用して第1のワークロードを実行することと、 前記第1のワークロードの実行と同時に、前記第2のクラスタにより、前記第2の複数のコンピュートタイルを使用して第2のワークロードを実行することと、を含み、 前記第1のワークロード及び前記第2のワークロードは、前記コントローラによってインスタンス化され、前記第1の複数のコンピュートタイル及び前記第2の複数のコンピュートタイルと通信するように構成された少なくとも1つのコアのプログラムコンテキストに基づいて同時に実行される、方法。
- 前記単一処理インスタンス中、前記コントローラにより、 前記第1のワークロードと前記第2のワークロードを同時に実行する単一実行モード、及び 前記第1のワークロードと前記第2のワークロードを同時に実行する共同実行モード、のいずれかを選択することをさらに含む、請求項12に記載の方法。
- 前記コントローラにより、前記第1のワークロード及び前記第2のワークロードが同じワークロードであるかどうかを決定ことと、 前記コントローラにより、前記第1のワークロード及び前記第2のワークロードが同じワークロードであると決定したことに応答して、前記第1のワークロード及び前記第2のワークロードを同時に実行するために前記単一実行モードを選択することと、をさらに含む、請求項13に記載の方法。
- 前記コントローラにより、前記第1のワークロード及び前記第2のワークロードが異なるワークロードであるかどうかを決定することと、 前記コントローラにより、前記第1のワークロード及び前記第2のワークロードが異なるワークロードであると決定したことに応答して、前記第1のワークロード及び前記第2のワークロードを同時に実行するために前記共同実行モードを選択することと、をさらに含む、請求項13または14に記載の方法。
- 前記1つまたは複数のコアのそれぞれは、複数のプログラムコンテキストを実行するように構成され、各プログラムコンテキストは、特定のワークロードに対応する、請求項12~15のいずれか一項に記載の方法。
- 前記1つまたは複数のコアのそれぞれは、2つ以上のプログラムコンテキストを時分割多重実行するように構成された仮想化スカラーコアであり、 1つまたは複数の仮想化スカラーコアは、前記第1のクラスタまたは前記第2のクラスタに割り当てられる、請求項12~16のいずれか一項に記載の方法。
- 前記コントローラにより、複数の仮想化スカラーコアのうちの各仮想化スカラーコアでそれぞれのプログラムコンテキストを実行することをさらに含み、前記複数の仮想化スカラーコアのそれぞれは、前記コントローラの制御ロジックに基づいてインスタンス化され、管理される、請求項17に記載の方法。
- 各仮想化スカラーコアは、前記第2のワークロードの第2の異なるタスクを実行するために前記第1のワークロードの第1のタスクをプリエンプトすることを含む、タスクプリエンプションをサポートするように構成される、請求項17または18に記載の方法。
- クラスタの仮想化スカラーコアにより、第1の複数のタスクを含む低優先度のワークロードを実行することと、 前記仮想化スカラーコアにより、前記第1の複数のタスクのうちの特定のタスクで前記低優先度のワークロードの実行を一時停止することと、 前記仮想化スカラーコアにより、第2の複数のタスクを含む高優先度のワークロードを実行することと、 前記高優先度のワークロードを実行した後、前記仮想化スカラーコアにより、前記第1の複数のタスクのうちの前記特定のタスクで前記低優先度のワークロードの実行を再開することと、をさらに含む、請求項17~19のいずれか一項に記載の方法。
Description
この明細書は、一般的に、ハードウェア機械学習アクセラレータのマルチクラスタアーキテクチャに関する。 機械学習モデルは、1つまたは複数のノード層を持つニューラルネットワークを使用して、受信した入力に対する分類などの出力を生成できる。一部のニューラルネットワークは、出力層に加えて1つまたは複数の隠れ層を含む。一部のニューラルネットワークは、画像処理用に構成された畳み込みニューラルネットワーク(CNN:Convolutional Neural Network)、または音声及び言語処理用に構成された再帰型ニューラルネットワーク(RNN:Recurrent Neural Network)であってもよい。 さまざまな種類の機械学習アーキテクチャは、分類またはパターン認識、データモデリングを伴う予測、情報のクラスタリングに関連するさまざまなタスクを実行するために使用することができる。ニューラルネットワーク層は、対応するパラメータまたは重みのセットを有することができる。重みは、ニューラルネットワーク層を介して入力(例えば、入力のバッチ)を処理し、ニューラルネットワーク推論を計算するための層の対応する出力を生成するために使用される。入力のバッチ及びカーネルのセットは、それぞれのテンソル、すなわち、入力の第1の多次元配列と、重みの第2の異なる多次元配列として表すことができる。 ハードウェアアクセラレータは、ニューラルネットワークまたはその他の機械学習モデルを実行するための特殊用途の集積回路である。集積回路は、複数のテンソルのデータを記憶するために使用されるメモリを含み得る。メモリは、一意のアドレス(例えば、仮想アドレスまたは物理アドレス)によって識別される個々のメモリ位置を含む。アドレス位置は、テンソルの要素に対応することができる。1つまたは複数のテンソルの要素に対応するデータは、集積回路の制御ロジックを使用して走査またはアクセスすることができる。 このドキュメントでは、ハードウェア機械学習(ML:Machine Learning)アクセラレータ、テンソル処理ユニット(TPU:Tensor Processing Unit)、ニューラルネットワークプロセッサなどの特殊用途のハードウェア集積回路用のマルチクラスタアーキテクチャを実装する技術が記載されている。特殊用途の集積回路は、マルチクラスタアーキテクチャを使用して、ニューラルネットワーク及びその他のMLアルゴリズムを効率的に実行することができる。マルチクラスタアーキテクチャは、ハードウェア、ソフトウェア、またはその両方で実装することができる。 マルチクラスタアーキテクチャは、1つまたは複数のコアを持つコントローラ、コンピュートタイルの第1のクラスタ、及びコンピュートタイルの第2のクラスタを含む。第1のクラスタ及び第2のクラスタのそれぞれは、クラスタ内の1つまたは複数のタイルを使用してワークロードを独立して実行するように構成される。いくつかの実施態様では、第1のクラスタ及び第2のクラスタを統合して、スループットの向上及び計算待ち時間の短縮など、追加の処理能力及び計算能力を提供することができる。例えば、第1のクラスタ及び第2のクラスタは、動的なクラスタ構成用のソフトウェア制御を使用して統合することができる。 マルチクラスタアーキテクチャは、制御ロジック及びコントローラの少なくとも1つのコアを活用して、単一プログラム実行モード及び共同プログラム実行モードをサポートする。例えば、共同実行モードでは、第1のクラスタ及び第2のクラスタが協調して1つまたは複数のワークロード(またはプログラム)を実行するが、単一実行モードでは、第1のクラスタ及び第2のクラスタのそれぞれが独自のワークロードを実行することができ、各ワークロードは、異なるプログラムに関連付けられ得る。例えば、共同実行モードでは、第1のクラスタ及び第2のクラスタを統合して、1つまたは複数のワークロードを実行するための追加のデータ処理能力及び計算能力を提供することができる。いくつかの実施態様では、単一実行モードでは、それぞれのワークロードのコンピュート動作が並列に、例えば同時に実行される。例えば、第1のクラスタに割り当てられた第1のワークロード、及び第2のクラスタに割り当てられた第2のワークロードは、コントローラの少なくとも1つのコアによって維持されるプログラムコンテキストに基づいて同時に実行される。 言い換えると、実施態様は、少なくとも2つのクラスタが単一(または共同)モノリシッククラスタとして組み合わせられる共同クラスタモードを含む。このモードでは、例示的なプログラムまたはワークロードは、現在、大規模モノリシッククラスタ上で実行される。実施態様は、両方のクラスタが2つの別個のプログラム/ワークロードを独立して実行するマルチプログラムモードも含む。 本明細書に記載の主題の一態様は集積回路で具体化することができ、当該集積回路は、1つまたは複数のコアと通信するように構成されたコントローラと、第1の複数のコンピュートタイルを含む第1のクラスタと、を含み、第1のクラスタは、第1の複数のコンピュートタイルを使用して第1のワークロードを実行するように構成され、当該集積回路はさらに、第2の複数のコンピュートタイルを含む第2のクラスタを含み、第2のクラスタは、第2の複数のコンピュートタイルを使用して第2のワークロードを実行するように構成される。第1のワークロード及び第2のワークロードは、コントローラによってインスタンス化され、第1の複数のコンピュートタイル及び第2の複数のコンピュートタイルに結合された少なくとも1つのコアのプログラムコンテキストに基づいて、同時に(または順次)実行される。 いくつかの実施態様では、コントローラは単一処理インスタンスを実行するように構成され、単一処理インスタンスにおいて、コントローラは、第1のワークロードと第2のワークロードを同時に実行する単一実行モード、及び第1のワークロードと第2のワークロードを順次または同時に実行する共同実行モード、のいずれかを選択する。いくつかの実施態様では、コントローラは、第1のワークロード及び第2のワークロードが同じワークロードであるかどうかを決定し、第1のワークロード及び第2のワークロードが同じワークロードであると決定したことに応答して、第1のワークロード及び第2のワークロードを同時に実行するために単一実行モードを選択するようにさらに構成される。 いくつかの実施態様では、コントローラは、第1のワークロード及び第2のワークロードが異なるワークロードであるかどうかを決定し、第1のワークロード及び第2のワークロードが異なるワークロードであると決定したことに応答して、第1のワークロード及び第2のワークロードを順次または同時に実行するために共同実行モードを選択するようにさらに構成される。いくつかの実施態様では、1つまたは複数のコアのそれぞれは、マルチプログラムコンテキストを実行するように構成され、各プログラムコンテキストは、特定のワークロードに対応する。 1つまたは複数のコアのそれぞれは、2つ以上のプログラムコンテキストを時分割多重実行するように構成された仮想化スカラーコアであってもよく、1つまたは複数の仮想化スカラーコアは、第1のクラスタまたは第2のクラスタに割り当てられる。いくつかの実施態様では、集積回路は、複数の仮想化スカラーコアを含み、複数の仮想化スカラーコアのそれぞれは、それぞれのプログラムコンテキストを実行するように構成され、コントローラの制御ロジックに基づいてインスタンス化され、管理される。 各仮想化スカラーコアは、第1のワークロードの第1のタスクをプリエンプトして、第2のワークロードの第2の異なるタスクを実行することを含むタスクプリエンプションをサポートするように構成され得る。いくつかの実施態様では、各仮想化スカラーコアは、i)第1の複数のタスクを含む低優先度のワークロードを実行し、ii)第1の複数のタスクのうちの特定のタスクで低優先度のワークロードの実行を一時停止し、iii)第2の複数のタスクを含む高優先度のワークロードを実行し、iv)高優先度のワークロードを実行した後、第1の複数のタスクの特定のタスクで低優先度のワークロードの実行を再開するように構成される。 いくつかの実施態様では、第1のクラスタ及び第2のクラスタは、同じ数のコンピュートタイルを含む同種クラスタであるが、他のいくつかの実施態様では、第1のクラスタ及び第2のクラスタは、異なる数のコンピュートタイルを含む異種クラスタである。 本明細書に記載の主題の一態様は、コントローラと、第1の複数のコンピュートタイルを含む第1のクラスタと、第2の複数のコンピュートタイルを含む第2のクラスタと、を含む集積回路を使用して実行される方法で具体化することができる。この方法は、コントローラにより、コントローラと通信する1つまたは複数のコアを使用して集積回路で実行される単一処理インスタンスを監視することを含む。この方法は、単一処理インスタンス中、第1のクラスタにより、第1の複数のコンピュートタイルを使用して第1のワークロードを実行することと、第1のワークロードの実行と同時に、第2のクラスタにより、第2の複数のコンピュートタイルを使用して第2のワークロードを実行することと、を含む。第1のワークロード及び第2のワークロードは、コントローラによってインスタンス化され、第1の複数のコンピュートタイル及び第2の複数のコンピュートタイルと通信するように構成された少なくとも1つのコアのプログラムコンテキストに基づいて、同時に(または順次)実行される。 いくつかの実施態様では、この方法は、単一処理インスタンス中、コントローラにより、第1のワークロードと第2のワークロードを同時に実行する単一実行モード、及び第1のワークロードと第2のワークロードを順次または同時に実行する共同実行モード、のいずれかを選択することを含む。いくつかの実施態様では、この方法は、コントローラにより、第1のワークロード及び第2のワークロードが同じワークロードであるかどうかを決定ことと、コントローラにより、第1のワークロード及び第2のワークロードが同じワークロードであると決定したことに応答して、第1のワークロード及び第2のワークロードを同時に実行するために単一実行モードを選択することと、をさらに含む。 いくつかの実施態様では、この方法は、i)コントローラにより、第1のワークロード及び第2のワークロードが異なるワークロードであるかどうかを決定することと、ii)コントローラにより、第1のワークロード及び第2のワークロードが異なるワークロードであると決定したことに応答して、第1のワークロード及び第2のワークロードを順次または同時に実行するために共同実行モードを選択することと、をさらに含む。1つまたは複数のコアのそれぞれは、マルチプログラムコンテキストを実行するように構成することができ、各プログラムコンテキストは、特定のワークロードに対応することができる。1つまたは複数のコアのそれぞれは、2つ以上のプログラムコンテキストを時分割多重実行するように構成された仮想化スカラーコアであってもよく、1つまたは複数の仮想化スカラーコアは、第1のクラスタまたは第2のクラスタに割り当てられる。 いくつかの実施態様では、この方法は、コントローラにより、複数の仮想化スカラーコアのうちの各仮想化スカラーコアでそれぞれのプログラムコンテキストを実行することをさらに含み、複数の仮想化スカラーコアのそれぞれは、コントローラの制御ロジックに基づいてインスタンス化され、管理される。いくつかの実施態様では、各仮想化スカラーコアは、第1のワークロードの第1のタスクをプリエンプトして、第2のワークロードの第2の異なるタスクを