IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ セレッシャル エイアイ インコーポレイテッドの特許一覧

特許7607798機械学習用エレクトロフォトニックネットワーク
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-12-19
(45)【発行日】2024-12-27
(54)【発明の名称】機械学習用エレクトロフォトニックネットワーク
(51)【国際特許分類】
   G06F 15/173 20060101AFI20241220BHJP
   G06F 17/10 20060101ALI20241220BHJP
【FI】
G06F15/173 685M
G06F17/10 A
【請求項の数】 34
(21)【出願番号】P 2023564535
(86)(22)【出願日】2022-06-17
(65)【公表番号】
(43)【公表日】2024-04-10
(86)【国際出願番号】 US2022073039
(87)【国際公開番号】W WO2022266676
(87)【国際公開日】2022-12-22
【審査請求日】2023-11-07
(31)【優先権主張番号】63/212,353
(32)【優先日】2021-06-18
(33)【優先権主張国・地域又は機関】US
【早期審査対象出願】
(73)【特許権者】
【識別番号】521325972
【氏名又は名称】セレッシャル エイアイ インコーポレイテッド
【氏名又は名称原語表記】Celestial AI Inc.
(74)【代理人】
【識別番号】100147485
【弁理士】
【氏名又は名称】杉村 憲司
(74)【代理人】
【識別番号】230118913
【弁護士】
【氏名又は名称】杉村 光嗣
(74)【代理人】
【識別番号】100230514
【弁理士】
【氏名又は名称】泉 卓也
(72)【発明者】
【氏名】フィリップ ウィンターボトム
(72)【発明者】
【氏名】マルティノス ボス
【審査官】田中 幸雄
(56)【参考文献】
【文献】CHITTAMURU, Sai Vineel Reddy et al.,BiGNoC: Accelerating Big Data Computing with Application-Specific Photonic Network-on-Chip Architectures,IEEE Transactions on Parallel and Distributed Systems,IEEE,2018年05月08日,Volume 29, Issue 11,Pages2402-2415,https://ieeexplore.ieee.org/document/8356088
(58)【調査した分野】(Int.Cl.,DB名)
G06F 15/173
G06F 17/10
(57)【特許請求の範囲】
【請求項1】
複数の処理要素を含む電子集積回路であって、各処理要素がフォトニックチャネルインターフェースを含むメッセージルータを含む、電子集積回路と、
前記処理要素をエレクトロフォトニックネットワークに接続する複数の双方向フォトニックチャネルであって、各双方向フォトニックチャネルは、第1の端部において、前記処理要素の中の第1の処理要素のメッセージルータのフォトニックチャネルインターフェースとインターフェース接続し、第2の端部において、前記処理要素の中の第2の処理要素のメッセージルータのフォトニックチャネルインターフェースとインターフェース接続し、前記第1の処理要素のメッセージルータと前記第2の処理要素のメッセージルータとの間でパケットを光学的に転送するように構成されている、複数の双方向フォトニックチャネルと、
を含み、
各双方向フォトニックチャネルは、それぞれの方向に向かう1つ以上の一方向フォトニックリンクを含み、
各一方向フォトニックリンクは、入力端の光変調器と、出力端の光検出器と、光変調器と光検出器とを接続する光導波路とを含み、各フォトニックチャンネルインターフェースは、前記入力端でインターフェース接続する各一方向フォトニックリンク用の変調器ドライバと、前記出力端でインターフェース接続する各一方向フォトニックリンク用のトランスインピーダンス増幅器とを含む、
回路パッケージ。
【請求項2】
各双方向フォトニックチャネルは、それぞれの方向への複数の一方向フォトニックリンクを含み、それぞれの方向への前記複数の一方向フォトニックリンクは互いに結合されている、請求項1に記載の回路パッケージ。
【請求項3】
前記光変調器は、電界吸収型変調器(EAM)である、請求項1に記載の回路パッケージ。
【請求項4】
前記光変調器は、リング変調器、マッハツェンダー変調器、量子閉じ込めシュタルク効果(QCSE)電気吸収変調器の少なくとも1つからなる、請求項1に記載の回路パッケージ。
【請求項5】
前記電子集積回路は、電子回路層に実装され、前記複数の双方向フォトニックチャネルは、フォトニック回路層に実装される、請求項1に記載の回路パッケージ。
【請求項6】
前記電子回路層は、第1の半導体チップに実装され、前記フォトニック回路層は、第2の半導体チップに実装される、請求項5に記載の回路パッケージ。
【請求項7】
各変調器ドライバは、それが関連する前記光変調器の真上又は真下に配置され、各トランスインピーダンス増幅器は、それが関連する前記光検出器の真上又は真下に配置される、請求項5に記載の回路パッケージ。
【請求項8】
前記光変調器とそれに関連する変調器ドライバとの距離、及び、前記光検出器とそれに関連するトランスインピーダンス増幅器との距離は、200μmより小さい、請求項6に記載の回路パッケージ。
【請求項9】
前記第2の半導体チップの前記フォトニック回路層に、1つ以上のレーザー光源から供給される光キャリア信号を前記1つ以上の一方向フォトニックリンクの前記光変調器に供給する光入力導波路をさらに備え、光キャリア信号は、関連する変調器ドライバによって印加される駆動信号にしたがって前記光変調器によって変調され、パケットを伝送する変調光信号を生成する、請求項6に記載の回路パッケージ。
【請求項10】
前記回路パッケージに統合された1つ以上のレーザー光源をさらに含む、請求項9に記載の回路パッケージ。
【請求項11】
前記1つ以上のレーザー光源は、前記フォトニック回路層において1つ以上のフォトニック集積回路(PIC)の前記光入力導波路と統合されている、請求項10記載の回路パッケージ。
【請求項12】
前記1つ以上のレーザー光源は、前記第1の半導体チップ及び前記第2の半導体チップと同包されたインターポーザーに実装され、前記光入力導波路を含む前記フォトニック回路層において1つ以上のPICとエッジ結合される、請求項10に記載の回路パッケージ。
【請求項13】
前記1つ以上のレーザー光源は、前記回路パッケージの外部に実装され、前記回路パッケージにおける1つ以上のPICに1つ以上の光ファイバーを介して光学的に結合される、請求項9に記載の回路パッケージ。
【請求項14】
前記1つ以上の光ファイバーは、前記PICに実装されたグレーティングカプラ上に配置された1つ以上のファイバアタッチユニット(FAU)を介して前記1つ以上のPICに結合される、請求項13に記載の回路パッケージ
【請求項15】
前記1つ以上の光ファイバーは、前記1つ以上のPICにエッジ結合されている、請求項13に記載の回路パッケージ。
【請求項16】
前記第2の半導体チップの前記フォトニック回路層において、1つ以上の光スプリッタをさらに含み、前記1つ以上の光スプリッタのそれぞれは、前記1つ以上のレーザー光源のうちの関連する1つから受信した入力光キャリア信号を複の光導波路間で分割する、請求項13に記載の回路パッケージ。
【請求項17】
前記電子集積回路が、特定用途向け集積回路(ASIC)である、請求項1に記載の回路パッケージ。
【請求項18】
前記ASICは、デジタル混合信号電子回路を含む、請求項17に記載の回路パッケージ。
【請求項19】
各処理要素は、ベクトル間のドット積を計算するための乗算器と加算器の組み合わせツリーを実装するドット積エンジンをさらに含む、請求項17に記載の回路パッケージ。
【請求項20】
各処理要素は、ドット積エンジンの出力として計算されたベクトルを得て処理するためのテンソルエンジンをさらに含む、請求項19記載の回路パッケージ。
【請求項21】
各処理要素は、メモリシステムをさらに含む、請求項19に記載の回路パッケージ。
【請求項22】
周辺コンポーネントインターコネクトエクスプレス(PCIE)インターフェース、先進RISCマシンコア、画像プロセッサ、又は外部メモリコントローラのうちの少なくとも1つをさらに含む、請求項17に記載の回路パッケージ。
【請求項23】
高帯域幅メモリ(HBM)をさらに含み、前記ASICは、前記処理要素を前記HBMに通信可能に結合するRAMコントローラをさらに含む、請求項17に記載の回路パッケージ。
【請求項24】
前記処理要素の前記メッセージルータは、一部にルーティング情報を有するパケットをルーティングするように構成され、前記ルーティング情報を用いて前記エレクトロフォトニックネットワークを通るパスが決定される、請求項1に記載の回路パッケージ。
【請求項25】
各処理要素の前記メッセージルータは、そのフォトニックチャネルインターフェースの1つで受信されたパケット内のルーティング情報に基づいて、パケットの送信先を決定し、送信先が処理要素内のローカルメモリ又は処理エンジンである場合は、ローカルポートに、送信先が処理要素内のローカルメモリ又は処理エンジンでない場合は、フォトニックチャネルインターフェースの別の1つに、パケットをルーティングするように構成される、請求項24に記載の回路パッケージ。
【請求項26】
前記処理要素は、規則的なグリッドに配置され、前記パケット内のルーティング情報は、前記パケットの送信先である処理要素に対する、前記グリッドに沿った第1の次元及び第2の次元における相対位置を指定する、請求項24に記載の回路パッケージ。
【請求項27】
各双方向フォトニックチャネルは、前記第1の次元又は前記第2の次元の一方について、前記グリッドの直に隣接する処理要素の対を接続し、各処理要素の前記メッセージルータは、前記パケットを前記第1の次元に沿って直に隣接する処理要素にルーティングするとき、前記第1の次元における相対位置に関連するルーティング情報の値をデクリメントし、前記パケットを前記第2の次元に沿って直に隣接する処理要素にルーティングするとき、前記第2の次元における相対位置に関連するルーティング情報内の値をデクリメントするように構成される、請求項26記載の回路パッケージ
【請求項28】
前記複数の双方向フォトニックチャネルは、前記処理要素を、少なくとも2つの次元を定義するグリッドトポロジを有するエレクトロフォトニックネットワークに接続するように構成され、前記パケット内のルーティング情報は、前記パケットの送信先である処理要素に対する、前記少なくとも2つの次元における座標を指定し、各処理要素の前記メッセージルータは、前記少なくとも2つの次元のうちの1つに沿って前記パケットをトポロジー的に直に隣接する処理要素にルーティングするとき、前記少なくとも2つの次元のうちの1つに関連する値をデクリメントすることによってパケット内のルーティング情報を修正する、請求項24に記載の回路パッケージ。
【請求項29】
前記電子集積回路は、タイルの配列として構成され、前記タイルのそれぞれが前記処理要素の1つに対応する、請求項1に記載の回路パッケージ。
【請求項30】
前記タイルは、矩形グリッドに配置された矩形タイルである、請求項29に記載の回路パッケージ。
【請求項31】
前記複数の双方向フォトニックチャネルは、前記矩形グリッド内の直に隣接するタイルの各ペアを直接接続して、前記エレクトロフォトニックネットワークの四辺形メッシュトポロジーをもたらすように構成される、請求項30に記載の回路パッケージ。
【請求項32】
前記複数の双方向フォトニックチャネルは、前記矩形グリッド内の非隣接タイルの1つ以上のペアをさらに直接接続するように構成されている、請求項31に記載の回路パッケージ。
【請求項33】
前記矩形グリッドの対向するエッジ上のタイルのペアを直接接続して、前記エレクトロフォトニックネットワークのラップトロイダルメッシュトポロジーをもたらすように構成されている双方向フォトニックチャネルをさらに含む、請求項31に記載の回路パッケージ。
【請求項34】
前記双方向フォトニックチャネルは、前記処理要素を立方格子トポロジーを有するエレクトロフォトニックネットワークに接続するように構成される、請求項1に記載の回路パッケージ。
【発明の詳細な説明】
【技術分野】
【0001】
本出願は、2021年6月18日に出願された米国仮特許出願シリアル番号63/212353の優先権の利益を主張するものであり、その全体が参照により本明細書に組み込まれる。
【背景技術】
【0002】
機械学習(ML)や深層学習(DL)などの人工知能(AI)コンピューティングに対する要求は、利用可能な処理能力の増加で対応できる要求を凌駕する速度で増加している。このような要求の高まりとAIモデルの複雑化により、多数のチップをシステムに接続し、チップ間で低遅延かつ高速にデータを送信できるようにする必要性が生じている。現在知られているアプローチでは、チップ間の接続は、パラレル・メッセージをチップ間の電気的インターコネクト又は光ファイバーで送信できるシリアル・ビット・ストリームに変換するシリアライザ/デシリアライザ(SerDes)ブロックを使用して行われる。このようなシステムでは、オンチップ通信とオフチップ通信が区別される。チップ上の演算素子は金属インターコネクトを介してパケット通信を行い、別のチップ宛てのメッセージ(パケットなど)は、チップレベルのインターコネクトを介してSerDesへのインターフェースのサイトまで移動し、そこでデータがビットストリームに変換されて送信される。受信方向では、ビットは光ファイバー又は電気的インターコネクトに到着し、言葉に組み立てられた後、チップ内部の金属インターコネクトを経由して送信先のプロセッサ又はメモリに送信される。チップ内のデータをSerDesに移動する際にも、その後SerDesからシステム内の他のチップに移動する際にも、かなりのエネルギーが費やされる。さらに、現在知られているMLモデルのハードウェア実装は、MLモデルの実行中に多用される積和演算(MAC)の実行において、比較的電力効率が悪い。
【発明の概要】
【課題を解決するための手段】
【0003】
様々な添付図面は、現在開示されている主題の様々な実施形態を単に例示しているに過ぎず、その範囲を限定するものとして考慮されるべきではない。
【図面の簡単な説明】
【0004】
図1図1Aは、いくつかの実施形態による、例示的なシステムインパッケージ(SIP)の構成要素を概略的に示す図である。図1Bは、いくつかの実施形態による、図1AのSIP内の例示的なエレクトロフォトニックネットワークを概略的に示す図である。図1Cは、いくつかの実施形態による、図1A図1B図のSIPの例示的な構造実装を側面図で示す図である。
図2図2Aは、いくつかの実施形態による、図1A図1BのSIPの、メッセージルータを含む、例示的な電子処理要素を示す図である。図2Bは、いくつかの実施形態による、エレクトロフォトニックネットワークにおけるメッセージルータ及びフォトニックチャネルの構成例を示す図である。
図3図3は、いくつかの実施形態による、図2Aに示すような電子処理要素内で使用され得るようなテンソルエンジンの例を示す図である。
図4図4は、いくつかの実施形態による、図2Aに示すような電子処理要素内で使用され得るような、例示的なデジタルニューラルネットワーク(DNN)を示す図である。
図5図5Aは、いくつかの実施形態による、エレクトロフォトニックネットワークのフォトニック及び電子コンポーネントの例示的な実装を側面図で示す図である。図5Bは、いくつかの実施形態による、図5Aの例示的なエレクトロフォトニックネットワークのフォトニック集積回路(PIC)を上面図で示す図である。
図6図6Aは、いくつかの実施形態による、SIP内の2つの処理要素を接続するフォトニックリンクのグループを例示する図である。図6Bは、いくつかの実施形態による、チップ間の光通信のために波長分割多重(WDM)を使用する2つのSIPの例示的なシステムを示す図である。
図7図7は、いくつかの実施形態による、四辺形メッシュトポロジーを有する例示的なエレクトロフォトニックネットワークを示す図である。
図8図8は、いくつかの実施形態による、ラップトロイダルメッシュトポロジーを有する例示的なエレクトロフォトニックネットワークを示す図である。
図9図9は、いくつかの実施形態による、拡張可能なラップトロイダルメッシュトポロジーを有する例示的なエレクトロフォトニックネットワークを示す図である。
図10図10は、プロセッサ内のクロック分配の従来技術を示す図である。
図11図11は、いくつかの実施形態による、ルートクロック信号を伝送するためにフォトニックファブリックを使用する例を示す図である。
図12図12は、いくつかの実施形態による、DNNの例示的なアーキテクチャを示す図である。
図13図13は、いくつかの実施形態による、DNNを動作させるための例示的な方法を示すフローチャートである。
図14図14は、いくつかの実施形態による、エレクトロフォトニックネットワークを使用するクロック信号分配のための例示的な方法を示すフローチャートである。
図15図15は、いくつかの実施形態による、エレクトロフォトニックネットワーク内でメッセージを転送するための例示的な方法を示すフローチャートである。
図16図16は、いくつかの実施形態による、MLプロセッサ上で人工ニューラルネットワーク(ANN)を実装する例示的な方法を示すフローチャートである。
【発明を実施するための形態】
【0005】
以下の説明は、本開示における実施態様に関連する具体的な情報を含む。本出願における図面及びそれらの詳細な説明は、単に例示的な実施態様に向けられている。特に断りのない限り、図中の同様の要素又は対応する要素は、同様の参照数字又は対応する参照数字で示される場合がある。さらに、本願の図面及び図示は、一般に縮尺どおりではなく、実際の相対寸法に対応することも意図していない。
【0006】
本開示は、消費電力の低減及び/又は処理速度の向上を達成する、1つ又は複数の回路パッケージ(例えば、SIP)によって実装されるコンピューティングシステムを提供する。様々な実施形態にしたがって、特にデータ移動のために消費される電力は、各回路パッケージ内のデータ局所性を最大化し、データ移動が必要とされるときのエネルギー損失を低減することによって、低減される。それに対して、電力効率に優れたデータ移動は、電子ドメインにおける抵抗及び/又は電子ドメインにおいてデータが移動できる速度が、既存の電子技術の利用では克服できない帯域幅の制限につながるシナリオにおいて、データ移動のためにフォトニックチャネルを活用しつつ、電子ドメインにおける複数の小さな距離をデータ移動させることによって達成することができる。したがって、いくつかの実施形態では、各回路パッケージは、双方向フォトニックチャネル(例えば、パッケージの別個の層又はチップにおいてPICに実装される)によって、ハイブリッドなエレクトロニックフォトニック(又はエレクトロフォトニック)のネットワークオンチップ(NoC)に接続される複数の回路ブロック(以下、「処理要素」という。)からなる電子集積回路(EIC)を含む。複数のこのようなNoCは、それぞれの回路パッケージ間のチップ間双方向フォトニックチャネル(例えば、光ファイバーによって実装される)によって、より大きなエレクトロフォトニックネットワークに接続され、大きな電力損失を発生させることなく、コンピューティングシステムを任意のサイズに拡張することができる。さらに開示される実施形態は、MAC演算(本明細書では「ドット積エンジン」とも呼ばれる)の電力効率に優れた性能のための新規な回路設計、及びさらなる電力節約をもたらす新規なクロッキング方式を提供する。
【0007】
ここで説明したコンピューティングシステムとその様々な新規な態様は、一般に広範囲の処理タスクに適用可能であるが、MLモデル、特にANNの実装に特に適している。ANNに適用されるように、本明細書で説明される回路パッケージ及び相互接続された回路パッケージのシステムは、それぞれ「MLプロセッサ」及び「MLアクセラレータ」とも呼ばれる。ニューラルネットワークは一般に、複数の入力活性値の重み付き和(MAC演算に対応する)からニューロン出力活性値を計算する1層以上の人工ニューロンを含む。あるニューラルネットワークでは、ノードと層の間の活性値のフローは固定されている。さらに、ニューラルネットワークのトレーニングが完了すると、重み付き和におけるニューロン重み、及び活性値の計算に関連するその他のパラメータも同様に固定される。したがって、本明細書に記載のNoCは、ニューラルノードを処理要素に割り当て、ノードに関連付けられた固定重みをそれぞれの処理要素のメモリにプリロードし、活性値の所定のフローに基づいて処理要素間のデータルーティングを構成することによって、ニューラルネットワークの実装を助ける。重み付き和は、ここで開示されたドット積エンジンを使用して効率的に実行することができ、本明細書では、ANNへの適用可能性から「デジタルニューラルネットワーク(DNN)」とも呼ばれる。
【0008】
ここまで開示したコンピューティングシステム及び基礎となる概念の様々な有益な態様及び特徴に関するこれまでのハイレベルな要約は、例示的な実施形態の以下の説明から明らかになるであろう。
【0009】
図1Aは、いくつかの実施形態による、例示的な回路パッケージSIP100の構成要素を概略的に示す図である。SIP100は、例えば、MLプロセッサとして機能し得る。SIP100は、例えばデジタルや混合信号特定用途向け集積回路(ASIC)などのEIC101と、PIC102とを含む。EIC101及びPIC102は、図1Cを参照して、以下でさらに説明されるように、SIPの異なる層(本明細書では、それぞれ「電子回路層」及び「フォトニック回路層」)に形成され、一方が他方の上に積層される。PIC又はPIC102は、1つ又は複数のレーザー光源から光を受光するものであり、当該光源は、PIC102自体に一体化されていてもよいし、SIP100の内部又は外部のいずれかでPICとは別個に実装され、適当な光カプラを介してPIC102に結合されていてもよい。光カプラ及びレーザー光源は、図1Aでは省略されているが、例えば、図1B図1C図5A図6Bに示されている。
【0010】
EIC101は、PIC102における光導波路で実装された双方向フォトニックチャネルを介して互いに通信する複数の処理要素104を含む。処理要素104は、(全ての実施形態においてそうである必要はないが)設計上同一の(又は少なくとも実質的に類似の)電子回路であってもよく、図示のように、矩形格子状に配置された同一サイズの「タイル」を形成してもよい(以下では、「処理要素」と「タイル」という語は同義に使用される)。描かれている例では、EIC101は、4×4のアレイに配置された16個のこのような処理要素又はタイル106を有するが、タイルの数及び配置は一般に様々であり得る。タイルの形状も、それらが配置されるグリッドも、必ずしも長方形である必要はなく、例えば、辺が傾斜した四辺形、三角形、又は六角形の形状及びグリッドも、原理的には可能である。さらに、タイリングは、利用可能なチップ上の実領域の効率的な使用を提供する可能性があるが、処理要素104は、すべての実施形態において、等しい大きさで規則的に配置される必要はない。
【0011】
EIC101における各処理要素104は、処理エンジンとして機能する1つ又は複数の回路ブロックを含む。例えば、図1A及び図2に示す実装では、各処理要素104は、ドット積エンジン(DNN)106及びテンソルエンジン108を含む。DNN106は、例えばニューラルネットワークで日常的に使用されるような畳み込み関数又はドット積関数のいずれかを実行するために、MACごとに低減されたエネルギーで高速MAC演算を実行することができる。DNN106の例の詳細は、図4を参照して、以下で提供される。テンソルエンジン108は、他の非MAC演算を実行するために使用されてもよく、例えば、ニューラルネットワークの重み付き和に適用されるような非線形活性化関数を実行してもよい。テンソルエンジン108の例を、図3を参照して以下で説明する。
【0012】
図1A及び図2にさらに示されるように、各処理要素104はメッセージルータ110を含む。メッセージルータ110は、処理要素104間のデータフローを円滑にするために、PIC102でフォトニックチャネルと接続する。さらに、処理要素104はそれぞれ、例えば、L1SRAMメモリ(L1SRAM)112及びL2SRAMメモリ(L2SRAM)114を含むメモリシステムを有することができる。L1SRAM112は任意であり、それが含まれる場合、各処理要素104のスクラッチパッドメモリとして機能することができる。L2SRAM114は、各処理要素104の主メモリとして機能し、機械学習モデルの重みなど、DNN106及び及びテンソルエンジン108によって使用される特定の固定オペランドを、DNN106及びテンソルエンジン108に物理的に近接して格納することができる。L2SRAM114はまた、機械学習モデル又は他の計算を実行する際に使用される任意の中間結果を格納することができる。
【0013】
EIC101は、周辺コンポーネントインターコネクトエクスプレス(PCIE)インターフェース122、高度RISCマシン(ARM)コア124、画像プロセッサ126、及び/又は、ダイナミックランダムアクセスメモリ(DRAM)、不揮発性RAM(NVRAM)、静的ランダムアクセスメモリ(SRAM)、又は別のタイプのメモリをサポートし得る外部メモリコントローラ128などのオプション要素をさらに含み得る。PCIEインターフェース122は一般に、EIC101と外部コンポーネントとの間の電気的相互接続を可能にする。例えば、L2SRAMに格納された重みは、DRAMなどの外部コンポーネントからPCIEインターフェース122を介して受け取ることができる。ARMコア124は、同様に、SIP100の外部のメモリデバイスと接続することができ、画像データを処理するか、又は他のコンピューティングタスクを実行することができる。画像プロセッサ126は、メモリデバイス又は他のプロセッサから受信した画像を処理することができ、画像はカメラから得られていてもよい。メモリコントローラ128は、SIP100に含まれ得る高帯域幅メモリ(HBM)と通信してもよく、SIP100の外部のDRAMと接続してもよい。いくつかの例では、EIC101は、異なるタイプのメモリ用の複数のメモリコントローラを含む。
【0014】
図1Bは、いくつかの実施形態による、図1AのSIP100内の例示的なエレクトロフォトニックネットワーク(又はNoC)130を概略的に示す図である。各処理要素104、より具体的には各処理要素104のメッセージルータ110は、ネットワーク130のノード131として機能する。これらのノード131間の接続は、双方向フォトニックチャネルを介して確立され、各チャネルは、一端で1つの処理要素のメッセージルータと接続し、他端で別の処理要素のメッセージルータと接続する(フォトニックチャネルの物理的実装と、チャネルとメッセージルータとの間の接続については、図5A及び図5Bを参照してさらに後述する)。それらを直接接続する双方向フォトニックチャネルを共有しない任意の2つの処理要素104間のメッセージ転送は、エレクトロフォトニックネットワーク130内の1つ又は複数の中間ノード131を通るパスに沿った複数の「ホップ」によって達成することができる。1つのノードから次のノードへのこのような各ホップは、電子ドメインからフォトニックドメインへの、さらには電子ドメインへと戻るメッセージの変換を伴う。このように、ネットワーク130はハイブリッドなエレクトロフォトニックネットワークである。
【0015】
図1Bでは、規則的なグリッド内で直接隣接する処理要素(又はタイル)104の各ペアがフォトニックチャネルによって接続され、その結果、エレクトロフォトニックネットワーク130の矩形メッシュトポロジーが生じる。しかしながら、他のネットワークトポロジー、例えば、隣接する処理要素の対の間の接続を省略すること、及び/又は、隣接しない処理要素の間の直接接続を追加することから生じるようなトポロジーも可能である。さらに、処理要素104が単一のEIC101において物理的に2次元に配置されているが、フォトニックチャネルは、トポロジー的に3次元のエレクトロフォトニックネットワークを確立するように集合的に構成することができる。
【0016】
図1Bにさらに示されるように、処理要素104を相互接続することに加えて、PIC102内のフォトニックチャネルは、処理要素104を(例えば、タイル状配置の周辺に沿って)、PCIEインターフェース122、ARMコア124、画像プロセッサ126、及び/又はメモリコントローラ128など、EIC101の他の要素に接続することもできる。あるいは、EICのいくつかの電子要素は、電気的に相互接続されてもよい。例えば、PCIEインターフェース122は、エレクトロフォトニックNoC内の処理要素104の1つに電気的に接続されてもよく、これは他のすべての処理要素104との通信のためのエントリポイントとして機能してもよい。本明細書で説明する様々な実施形態によれば、電気信号ルーティングと光信号ルーティングの両方が採用される。信号ルーティングタスクは、以下の議論によって明らかになる方法及び理由で、電気的(又は電子的)パスとフォトニックパスとの間で配分されてもよい。
【0017】
PIC102はまた、例えば光ファイバーを介してオフチップ光接続を行うための1つ又は複数の光結合構造を含むことができる。ファイバー接続は、いくつかの手段によって行うことができる。ファイバー接続のための例示的な光結合構造には、グレーティングカプラ又はエッジカプラの上に配置されたファイバーアタッチユニット(FAU)が含まれる。図1Bには、2つのFAU132が示されている。一方のFAUは、PIC102におけるフォトニクスを駆動するために、外部レーザー光源からPIC102に光パワーを供給するために使用され、他方のFAUは、送受信通信の両方のために、別のSIPにおける別のエレクトロフォトニックネットワークへのチップ間相互接続を容易にすることができる。図1Bには2つのFAU132が示されているが、異なる実施例では他の数のFAUが使用されてもよい。
【0018】
図1Cは、いくつかの実施形態による、図1A図1BのSIP100の例示的な構造実装を側面図で示す図である。この例では、EIC(例えば、ASIC)101及びPIC102は、別個の半導体チップ(典型的にはシリコンチップであるが、他の半導体材料の使用も考えられる)に形成される。PIC102は、基板140上に直接配置され、その後のプリント回路基板(PCB)への実装するためのはんだバンプが示されている。PIC102を光ファイバー133に接続するEIC101とFAU132は、PIC102の上に配置され、PIC102に光学的に接続される。オプションとして、SIP100は、図示されているように、EIC101に隣接してPIC102の上に配置されたメモリチップ142をさらに含むことができる。
【0019】
当業者には理解されるように、SIP100の描かれた構造は、様々な構成要素を組み立ててパッケージ化するためのいくつかの可能な方法のうちの1つに過ぎない。 代替実施形態では、例えば、EIC101を基板上に配置し、PIC102をEIC101の上に配置してもよい。原理的には、電子回路層とフォトニック回路層を別々のチップとして実装する代わりに、単一の半導体チップの異なる層にEIC101とPIC102を形成することも可能である。さらに、フォトニック回路層は、例えば導波路の交差を低減するために、複数のサブ層に複数のPICを設けてもよい。さらに、図1Cに描かれた構造は、単一のPIC102に接続された複数のEIC101を含み、PIC102におけるフォトニックチャネルを介して互いに接続されるように変更されてもよい。
【0020】
EIC101とPIC102は、例えば、フォトリソグラフィによるパターニング、エッチング、イオン注入などを含む標準的なウェハ製造プロセスを使用して製造することができる。さらに、いくつかの実施形態では、異種材料プラットフォームと集積プロセスが使用される。例えば、フォトニックチャネルで使用されるレーザー光源及び/又は光変調器及び光検出器などの様々なアクティブフォトニックコンポーネントは、III-V族半導体コンポーネントを使用して実装され得る。
【0021】
レーザー光源は、SIP100内又は外部に実装することができる。外部に実装する場合、SIP100への接続は光学的に行うことができ、例えば、図1Cに示すように、FAU132の下のPICにグレーティングカプラを使用するか、又は、エッジカプラを使用することができる。SIP100にレーザーを実装するには、PIC102とともにパッケージ化され、エッジ結合される複数のレーザーを含むインターポーザーを使用することが1つの選択肢である。また、異種集積又は均質集積を使用して、レーザーをPIC102に直接集積することもできる。均質集積では、PIC102の導波路が形成されたシリコン基板にレーザーを直接実装することができ、例えばリン化インジウム(InP)などの異なる材料のレーザーや、例えば量子ドットレーザーなどのアーキテクチャのレーザーを実現できる。PIC102上のレーザーの異種アセンブリにより、III-V族半導体又は他の材料をPIC102上に精密に取り付け、PIC102上に実装された導波路に光学的に結合させることができる。
【0022】
それぞれが独自のエレクトロフォトニックネットワーク130を含む複数のSIP100を相互接続して、より大きなエレクトロフォトニックネットワークを提供する単一のシステムを構成してもよい。例えば、MLプロセッサとして構成された複数のSIPを相互接続して、より大きなMLアクセラレータを形成することができる。複数のSIP又はMLプロセッサ内のフォトニックチャネルは、光接続、レーザー光源、受動光コンポーネント、及びPCB上の外部光ファイバーとともに、他のフォトニック要素と共に様々な組み合わせ及び構成で利用され得、マルチSIPシステム又はマルチMLプロセッサアクセラレータのフォトニックファブリックを形成する。
【0023】
図2Aは、いくつかの実施形態による、図1A図1BのSIP100のメッセージルータ110を含む例示的な電子処理要素104を示す図である。図2Aは、特に、メッセージルータ110と、PIC102の双方向フォトニックチャネルとのインターフェースについてより詳細に説明する。各双方向フォトニックチャネルは、各方向の一方向フォトニックリンクを含み、各一方向リンクは、PIC102の光導波路を使用して実装される。
【0024】
ある実装では、パケットデータを含むメッセージは、PIC102のフォトニックチャネルを通って到着し、PIC102とルータ110との間の光-電気(OE)インターフェースで受信される。OEインターフェースは、例えば、光信号を電子信号に変換するためのPIC102の光検出器(例えば、フォトダイオード)によって、ルータ110の関連する電子回路200(例えば、トランスインピーダンス増幅器(TIA)、信号レベルを正規化するための任意の利得制御器、及びビットストリームを抽出するためのスライサを含み得る)と連携して実装され得る。メッセージはその後、「先入れ先出し」(FIFO)レジスタ202などのレジスタに電子形式でバッファリングされる。
【0025】
電子メッセージルータ110は、メッセージヘッダ(又は代替実施形態では、メッセージペイロード)に含まれるアドレスを調べ、メッセージがどのポート及びどの送信先にルーティングされるべきかを決定する回路を含む。例えば、送信先がエレクトロフォトニックネットワーク内の別の処理要素(タイル)である場合、メッセージは、ルータ110とPIC102との間の電気-光(EO)インターフェースを介してその送信先タイルにルーティングされ得、ここで、メッセージは、別のフォトニックチャネルを介して、伝送のために光領域に再度変換される。EOインターフェースは、例えば、ルータにおいて関連するドライバ回路(本明細書では「変調器ドライバ」ともいう)204と連携して、PIC102内の光変調器を使用して実装されてもよい。適用可能な変調器技術の非限定的な例には、電界吸収型変調器(EAM)、マッハツェンダー変調器、リング変調器、及び量子閉じ込めシュタルク効果電界吸収型変調器(QCCE EAM)が含まれる。一方、電子メッセージルータ110が、メッセージの送信先がルータ100自身の常駐するタイルメモリ(例えば、L1SRAM112又はL2SRAM114)、DNN106、又はテンソルエンジン108であると判断した場合、メッセージはローカルポート206にルーティングされる。
【0026】
メッセージルータ110と、PIC側フォトダイオードに関連するTIA及びその他の回路(まとめて200)及びPIC側光変調器に関連するドライバ回路などの所定の双方向フォトニックチャネルのリンク(両方向)との間のOE及びEOインターフェースのEIC側部分200、204は、本明細書では、まとめて、ルータ110の「フォトニックチャネルインターフェース」と呼ばれる。図2Aは、1つのフォトニックチャネルインターフェースのみを図示しているが、各ルータ110は、一般に、複数のそれぞれのフォトニックチャネルに結合するための複数のそのようなインターフェースを含む。
【0027】
図2Bは、いくつかの実施形態による、エレクトロフォトニックネットワーク(例えば、図1Bに示すネットワーク130など)におけるメッセージルータ110及びフォトニックチャネル210の構成例を示す図である。この例では、ルータ110(図1Bによると、
それらが一部をなす処理要素、又はタイル104のようなもの)は、2次元の、四辺形(より具体的には、長方形)のアレイ又はグリッドに配置され、いずれかの次元(例えば、図2Bにおいて水平方向又は垂直方向)で互いにすぐ隣にある任意の2つのタイルのルータ110は、双方向チャネル210によって接続される。したがって、アレイの内部の各ルータ110は、「北」、「東」、「南」、及び「西」と呼ぶことができる4つの方向のそれぞれに対して1つずつ、4つのそれぞれの双方向フォトニックチャネル210に対する4つのフォトニックチャネルインターフェース212を含む。アレイの周縁に沿って、ルータ110は、2つ(角部)又は3つ(角部間の端部)のフォトニックチャネルインターフェース212を有するだけでよい。しかしながら、示されるように、周辺部に沿ったルータ110は、例えば、製造を単純化するために全てのタイル104に対して同じ回路設計を使用する結果として、任意選択で、4つのフォトニックチャネルインターフェースを備えることもできる。さらに、いくつかの実施形態では、アレイの周辺部に沿ったフォトニックチャネルインターフェースのチップ間接続を確立するために使用されてもよい。
【0028】
電子メッセージルータ110は、様々なアドレス指定方式を使用してメッセージを送信先アドレスにルーティングするために使用することができる。アドレス指定方式にかかわらず、タイルからタイルへのメッセージは、EIC101上の電気的相互接続を介するのとは対照的に、PIC102内の(パスに沿った各ルータでの光-電気変換及び電気-光変換を伴う)フォトニックチャネルを介して、主として又は排他的に、エレクトロフォトニックネットワークを通じて転送され得る。ある実装では、(例えば、メッセージのヘッダ又は代替的にペイロードから抽出される)電子署名付き5ビットのパケットデータは、送信先タイルに対する水平方向(東/西)の相対位置(又は距離)を提供し、別の電子署名付き5ビットのパケットデータは、送信先タイルに対する垂直方向(南/西)の相対位置(又は距離)を提供する。もちろん、異なるサイズ(ビット数)のパケットデータも、例えばタイルの数やアドレス空間のサイズに応じて使用することができる。メッセージが異なるタイルのルータ110をトラバースするとき、メッセージがどの次元に沿って転送されるかに応じて、水平座標又は垂直座標のいずれかが各ホップについてデクリメントされる。送信先タイルへの方向を提供する5ビットパケットデータの両方がゼロになると、メッセージは送信先タイルに到着し、処理のためにそのタイルのルータのローカルポート206に転送される。場合によっては、メッセージはタイル間でメモリトランザクションの読み書きを行うために使用される。
【0029】
タイル間でデータを伝送するパスは、例えばPIC102上の光導波路によって実装される光パスであるが、パス設定パケットデータは、メッセージルータ110によって使用されるために電子形式で提供されてもよい。さらに、同一タイルのメッセージルーティングの場合であっても、パス設定パケットデータは、光パス又は電気パスのいずれかであり得るパスを決定するために使用されてもよい。このように、様々な実施形態は、ハイブリッドアプローチを採用しており、ハイブリッドな電気光学ネットワークオンチップ(EP-NoC)アーキテクチャにおいて、エレクトロニクス素子とフォトニクス素子の両方が、送信先を決定し、配信パスを設定し、送信先にメッセージを配信するために使用される。
【0030】
上述のようなエレクトロフォトニックネットワークを有するSIPは、ニューラルネットワークのようなMLモデルの効率的な実行に適している。ニューラルネットワークは、一般に、入力層、1つ以上の隠れ層、及び出力層を含む層に編成された複数のノード(本明細書では、エレクトロフォトニックネットワークのノードと区別するために「ニューラルノード」とも呼ぶ)を含む。隠れ層及び出力層において、各ニューラルノードは、重みのセット及び別のノード(例えば、前の層のノード)からの入力活性値を入力として有し、MLモデルにしたがって所定の方法で重み及び活性値を結合し、出力活性値を得る伝達関数を実装する計算ユニットである。
【0031】
データは、MLモデルのノード間を決定論的に流れる。さらに、モデルの調整可能なパラメータであるノードに関連する重みは、一般にモデルの学習中に決定され、学習されたモデルが入力を得て出力を生成する推論計算中は固定されたままである。本明細書で説明するMLプロセッサ又はMLアクセラレータ上でMLモデルを実行する場合、これらの特性は、処理要素104へのニューラルノードの固定割り当てを介してMLモデルをエレクトロフォトニックネットワークにマッピングし、関連する所定の重みを処理要素(タイル)104のメモリにプリロードすることによって、データの移動を最小限に抑えることを可能にする。一般に、MLモデルがMLプロセッサ100又はMLアクセラレータの複数のタイル104に分散される場合、各タイル104は、複数のニューラルノード、1つのニューラルノード、又は並列化されて複数のタイル104に分散されたニューラルノードの一部を実行することができる。いくつかの例では、MLモデルの各層は複数のタイル104によって実装され、各タイル104は1つ又は複数のニューラルノードを実装する。
【0032】
いくつかの実施形態では、重みは、MLプロセッサ100又はMLアクセラレータによる推論動作の初期化中に一度だけ、割り当てられたタイル104のメモリ(例えば、L2SRAM114)にロードされ、その後、重みはタイルからタイルへ移動されない。重みは、PCIE122を介してMLプロセッサ100の外部のデバイス(例えば、メモリ)からロードされてもよい。ある実装では、PCIE122は、PCIE122に最も近いタイル104を介してMLプロセッサのエレクトロフォトニックネットワーク130にアクセスし、エレクトロフォトニックネットワークを通る(例えば、所定の)パスに沿ってタイルからタイルへ、各重みをそれぞれの送信先タイル104へ光転送する。他の実施態様では、MLプロセッサ100の初期化中に、PIC102上に位置するフォトニックチャネルの代わりに、タイル104間のEIC101上に存在する電子接続が、重みを各送信先タイル104に転送するために利用される。PCIEインターフェース122を介して提供される重みの転送が主に光通信で行われるか電子的に行われるかにかかわらず、各L2SRAM114への転送及びロードは1回のみ実行される。そのため、重みが各タイル104のL2SRAM114に静止したままであるという点で、電力が大幅に節約される。
【0033】
ニューラルノードに関連付けられた重みを、ニューラルノードに割り当てられたそれぞれのタイル104のL2SRAM114に格納することによって、MLモデルがMLプロセッサにプリロードされると、L2SRAM114に格納された重みを使用して、ニューラルノード間の活性値をストリーミングし、ストリーミングされた活性値に対して計算を実行することによって、MLモデルを実行することができる。入力活性値は、MLモデルのニューラルノードに割り当てられたすべてのタイル104にストリーミングされる。これらのタイル104内の処理エンジン(例えば、DNN106とテンソルエンジン108)は、入力された活性値とプリロードされた重みを演算して、ニューラルノードの出力活性値を計算する。例えば、DNN106はMAC演算を実行し、テンソルエンジン108はMAC演算の結果を演算する非線形活性化関数を実装してもよいが、各タイル104の1つ又は複数の処理エンジン間の計算の他の配分も可能である。所与のニューラルノードに対してタイル104で生成された出力活性値は、次に、MLモデルの(例えば、ニューラルネットワークの次の層内の)次のノードを実装するタイル104に、その入力活性値として送られる。同じタイル104に実装されたニューラルノード間を流れる活性値は、そのタイルのメモリを介して交換され、一方、タイル104間を移動する活性値は、フォトニックファブリックを介して送信される。各ニューラルノードがエレクトロフォトニックネットワークの1つのタイル104によって実装される実施形態では、タイルネットワークトポロジーは、MLモデル(又はMLグラフトポロジー)を緻密にミラーリングする。
【0034】
活性値が送信元タイルからエレクトロフォトニックネットワークを介して送信先タイルにストリーミングされるとき、各出力活性値の送信先タイルのアドレスは、一般に、例えばMLモデルの初期化中に設定されたパスにしたがって、その活性値の送信元タイルの電子メッセージルータ110によって決定される。アドレスは、出力活性値をペイロードとして伝送するメッセージの一部としてパケットデータとして提供されてもよい。ある実装では、アドレスはメッセージのヘッダにあり、別の実装では、アドレスはメッセージ自体に(ペイロードの一部として)エンコードされる。メッセージに含まれるアドレスは、出力活性値を送信先タイルにルーティングするために、エレクトロフォトニックネットワークを通るパスに沿ったメッセージルータによって使用される。いくつかの実施形態では、上述したように、相対アドレス指定スキームが採用される。
【0035】
典型的なMLモデルでは、重みの数は活性値の数よりはるかに多い。現在のMLのワークロードでは、重みの数と活性値の数の比率は、約20対1から約60対1の範囲にあることが多い。したがって、重みを静止させることにより、活性値がタイルからタイルへストリーミングされるとしても、相当量のエネルギーが節約される。さらに、いくつかの有益な実施形態では、L2SRAM114は、DNN106及びテンソルエンジン108に物理的に近接して配置され、これにより、各タイル内で重みが局所的に移動する相互接続距離が短縮され、したがって、関連する相互接続長に関連するキャパシタンスが低減され、そのような相互接続キャパシタンスに関連するエネルギー損失が低減される。さらに、上記の説明から、あるタイルの送信元ノードから別のタイルの送信先ノードへ、例えば比較的長い距離にわたってストリーミングされる活性値は、主にPIC102によって提供される光パスを介して横断する一方、同じタイル内で、例えば比較的短い距離にわたって流れる活性値は、EIC101によって提供される電気パスを使用することが明らかである。このようにして、長距離データ移動のための電気的相互接続への依存が実質的に排除され、電気的相互接続キャパシタンスに関連して消費されるエネルギーが大幅に低減される。換言すれば、タイルからタイルへの活性値を光通信でストリーミングすることによって、大幅な電力節約が達成され得る。まとめると、本明細書で説明するようなMLプロセッサ又はMLアクセラレータを使用すると、データ移動が部分的に最小化され(重みの場合)、光通信を介した電力効率の高いタイル間データ転送に部分的に依存する(活性値の場合)。省電力という利点に加え、データ転送にフォトニックファブリックを使用することで、待ち時間(レイテンシー)を短縮し、より高い帯域幅を提供することができる。
【0036】
図3は、いくつかの実施形態による、図2Aに示されるような電子処理要素104内で使用され得るようなテンソルエンジン108の例を示す図である。各テンソルエンジン108は、例えば、SIP100によって実装される特定の機械学習モデルの推論計算の一部を実行するように割り当てられ、MLプロセッサとして機能することができる。MLプロセッサ100の異なる処理要素104のテンソルエンジン108は、機械学習タスクを並列処理又は逐次処理で実行することができる。MLプロセッサのML計算は、1つ以上のテンソルエンジン108で実行され、テンソルエンジン間のデータフローを形成することができる。
【0037】
テンソルエンジン108については、本願の範囲から逸脱することなく、様々な形で実装することができる。一例では、図3に示すように、テンソルエンジン108は、命令シーケンサ300、レジスタバンク302、マルチプレクサ304、Raレジスタ306、Rbレジスタ308、算術論理演算ユニット(ALU)310、加算器312、及びRgレジスタ314を含む。テンソルエンジン108は、命令シーケンサ300を使用して、当技術分野で知られている方法でレジスタ書き込み動作、累積動作、レジスタ読み出し動作を実行する。例えば、テンソルエンジン108は2つの値をRaレジスタ306とRbレジスタ308に書き込み、ALU310の助けを借りてそれらを累積し、その結果をRgレジスタ314に保存することができる。その後、さらに2つの値がRaレジスタ306及びRbレジスタ308に書き込まれ、ALU310の助けを借りて累積され、ALU310から読み出され、Rgレジスタ314内の前の内容に加算され、Rgレジスタ314に書き込まれる。このルーチンは、テンソルエンジン108の各出力レジスタから32ビットの出力を生成するために、例えば最大32回まで再び繰り返されてもよい。
【0038】
テンソルエンジン108は、いくつかの実施形態では、シングルインストラクション・マルチプルデータ(SIMD)プロセッサであり、そこで使用される命令セットは機械学習アルゴリズムの実行という目的に合うように設計されてもよい。異なるテンソルエンジン108間のデータ移動は、電子的に又は光通信で行うことができるが、好ましい実装では、異なる処理要素104内のテンソルエンジン108間のデータ移動は光通信で行われ、同じテンソルエンジン108内のデータ移動は電子的に行われる。テンソルエンジンはメッセージルータ110のローカルポート206へのインターフェースを含み、PIC102との通信を可能にする。
【0039】
図4は、いくつかの実施形態による、図2Aに示されるような電子処理要素104内で使用され得るような例示的なDNN106を示す図である。図4の例示的なDNNは、SIP100のDNN106に関して説明されているが、いくつかの実施形態では、図示されたDNNは、他の環境で実装されるハードウェアの一部を形成することができる(例えば、他のタイプのプロセッサの構成要素として)。本明細書で使用されるように、DNNは、ニューラル計算エンジン(NCE)又はドット積エンジンとも呼ばれ得る。実施形態によっては、DNNは、少なくとも2つのベクトルに基づいて1つ又は複数のドット積(例えば、ドット積値)を生成する(例えば、計算する)ように構成されたハードウェア回路の1つ又は複数の部分によって実装することができる。例えば、少なくとも2つのベクトルは、重み値及びオペランド値(例えば、活性値)のセットから構築することができる。
【0040】
次に図4を参照すると、SIP(例えば、MLプロセッサ)100のEIC101に位置するDNN106の一部の実施形態が示されている。DNN106は、基本的に、乗算器と加算器の組合せツリーであり、いかなる動作中もデータをラッチすることなく、重みとオペランド(例えば、前のノードからの活性値)のセットのドット積をハードウェアで計算する。このように、DNN106は、レジスタの数が非常に少なく、レジスタ転送動作を実行することなく、データをラッチすることなく、特定の所定のルーチンのみを実行することに特化することによって、消費電力を大幅に低減する。DNN106では、予めロードされた重みがL2SRAM114からフェッチされ、DNNシーケンサ400が重み(例えば、重み値)とオペランド(例えば、オペランド値)を組合せツリーの先頭に供給する。例えば、図4に示すように、重みW1、W2、W3、W4がツリーの先頭に提供される。オペランド(例えば、前のノードからの活性値)X1、X2、X3、X4もツリーのトップに提供される。
【0041】
いくつかの実施形態では、各重みW1、W2、W3、W4と、各オペランドX1、X2、X3、X4とは、8ビットで構成される。重みW1、W2、W3、W4は、それぞれのオペランドX1、X2、X3、X4と乗算される。各演算の結果は16ビットの積となる。図4に示すように、2つの16ビット積が加算されて17ビットの和が形成される。次のレベルでは、2つの17ビット積が加算され、18ビットの和となり、さらに次のレベルの加算が行われる。計算されたドット積は32ビットのアキュムレータに加算されるので、精度を落とすことなく一連のドット積を累積することができる。組合せツリーのパイプライン実装は、組合せツリーを流れるデータのタイミングを再調整するように構築することができる。いくつかの実施形態では、7つのパイプラインステージが使用される。上述したように、DNN106はドット積計算中に電力を大幅に節約する。比較のために、7nmのCMOS FinFETを使用すると、図3のテンソルエンジン108によって実行される単一のドット積計算には、約250フェムトジュール(250fJ)のエネルギーが消費される可能性がある。対照的に、図4のDNN106によって実行される1回のドット積計算には、約130フェムトジュール(130fJ)のエネルギーしか消費されない可能性がある。
【0042】
DNNの様々な実施形態に関する詳細が、図12に関して図示され、説明される。
【0043】
図5Aは、いくつかの実施形態による、エレクトロフォトニックネットワークのフォトニックコンポーネントとエレクトロニックコンポーネントの実装例を側面図で示す図である。EIC(例えば、ASICA)101は、PIC102の上に位置するように示されている。EIC101内の複数のタイル(処理要素)104A、104B、104C、104Dが、その下のPIC102内の導波路500AB、500BC、500CDを使用して実装された、タイルの隣接するペア間の光リンクとともに示されている。また、タイル及びその間の光リンクに関連するEO及びOEインターフェース・コンポーネントも示されている。示されるように、EOインターフェース・コンポーネントは、EICタイル104A、104B、104Cにそれぞれ位置する変調器ドライバ502A、502B、502Cを含み、それぞれの変調器ドライバ502A、502B、502Cの直下のPIC102に位置する変調器(例えば、EAM)504A、504B、504Cも含む。OEインターフェース・コンポーネントは、EICタイル104B、104C、104Dにそれぞれ位置するTIA506B、506C、506Dを含み、それぞれのTIA506B、506C、506Dの直下のPIC102に位置する光検出器(PD)508B、508C、508Dも含む。光導波路500AB、500BC、500CDはそれぞれ、1つのタイルに関連する光変調器504A、504B、504Cと、隣接するタイルに関連する光検出器508B、508C、508Dとを接続し、それにより、MLプロセッサ100内のタイルのそれぞれのペア間のチップ内通信のための光リンクをPIC102内に提供する。
【0044】
(例えば、変調器ドライバを変調器の真上に配置し、TIAを光検出器の真上に配置することによって)EOインターフェース及びOEインターフェースのPIC側コンポーネントとEIC側コンポーネントとの間の横方向のずれを回避することは、各インターフェースのコンポーネント間の距離を最小にする。いくつかの実施形態では、変調器とその関連ドライバとの間の距離、及び、光検出器とその関連TIAとの間の距離は、電気ドメインと光ドメインとの間の信号変換速度、及びその逆が最大化されるように最小化される。一般的に、間隔は200μm以下であるが、実施形態の性質、OE及びEOインターフェース・コンポーネントの構成、システムの要求及びアーキテクチャ、システムの温度などに応じて変化し得る。一実施形態では、PIC側コンポーネントとEIC側コンポーネントとを密接に関連させて配置することは、PIC側コンポーネントに対して有益な熱特性を有する。EIC側はヒートシンクであり、PIC側コンポーネントに向けて熱を放射することができるため、このことは逆に、付加された熱によるPIC側のコンポーネントの熱的安定性の増加を引き起こす可能性がある。PIC側コンポーネントとEIC側コンポーネントとの間の距離を最小化することは、ひいては、光ドメインと電気ドメインとの間の信号変換のための電力消費を最小化し、これは、本明細書に記載されるようなハイブリッドなエレクトロフォトニックネットワークを介したデータ移動の全体的な電力効率にとって重要である。さらに、いくつかの例では、PIC上のEAMの直上に配置されるか、又はEAMに近接して配置されるEIC内のコンポーネント(変調器ドライバ又は他の機能ブロックなど)から発生する熱がある場合に有益である。このシナリオでは、EIC側から放射される熱は、EAMの動作温度を上昇させるか、さもなければ熱安定性を強化した形で促進し、及び/又はEAMをピーク効率に近づけるか、最適な動作範囲に近づけることができる。
【0045】
また、図5Aには、SIP(又はMLプロセッサ)100と他のデバイスとの間の光ファイバー接続を確立するために使用され得る光結合構造が示されている。光ファイバーは、エッジ結合を用いてPIC102に結合されてもよい。あるいは、図5Aに描かれているように、光ファイバー133は、FAU132を介してPIC102に取り付けられてもよく、光は、FAU132の直下のPIC102に形成されたグレーティングカプラ520を使用して、FAU132FとPIC102との間で結合されてもよい。光ファイバー133は、PIC102に光入力を提供するオフチップレーザー光源、又は別のSIP(MLプロセッサ)のFAUに接続されてもよい。そして、グレーティングカプラ520を介して受光された光は、光導波路を介してPIC102内の変調器506A、506B、506Cに供給され得る。図5Aの断面図では、EAM506Aへの導波路522のみが見えるが、図5Bの上面図では、グレーティングカプラ520と、EAM506Bと506Cを含むすべてのEAMとの間の光接続が見える。
【0046】
図5Bは、いくつかの実施形態による、図5Aの例示的なエレクトロフォトニックネットワークのPIC102を上面図で示す図である。PIC102に対するEIC101のタイルの位置は、破線によって示されている。隣接するタイルの各対のために(それらが水平方向に隣接しているか垂直方向に隣接しているかにかかわらず)、PIC102は、それぞれが光変調器(フォトニックリンクの入力端を規定する)、光検出器(フォトニックリンクの出力端を規定する)、及び変調器を光検出器に直接接続する導波路を含む、2つの一方向フォトニックリンクを提供する。例えば、導波路500ABは、タイル104Aに関連する変調器504Aを、タイル104Bに関連する光検出器508Bに接続する。任意のタイルのペア間の2つのフォトニックリンクは、反対方向に配向され、集合的に、これにしたがって双方向フォトニックチャネルを形成する。図1Bには、各方向の一方向フォトニックリンクが1つだけ示されているが、フォトニックチャネルは、チャネルを横切るデータ転送のための帯域幅を増大させるために、一般に、各方向の複数のリンクを含んでもよい(例えば、一緒に結合グループを形成してもよい)ことに留意されたい。タイル内(より具体的には、タイル内のルータ)で、PIC内のある双方向フォトニックチャネルへのフォトニックチャネルインターフェースは、その双方向チャネルの各出側フォトニックリンク(ルータがリンクの入力端でインターフェース接続する)用の光ドライバと、その双方向フォトニックチャネルの各入側フォトニックリンク(ルータがリンクの出力端でインターフェース接続する)用のTIA(及び関連回路)とを含む。
【0047】
PIC102は、レーザー光源から光キャリア信号を受信する。いくつかの実施形態(図示せず)では、光源はPICに内蔵される。他の実施形態では、光源はPICの外部に実装され、例えばエッジ結合を介して、又はPIC内のFAU132及びグレーティングカプラに接続された光ファイバーを介して、PICに光を供給する。FAU132及びグレーティングカプラ、又はPICへの他の任意の入力点から、1つ又は複数の光入力導波路がキャリア信号を双方向フォトニックチャネルの光変調器に導き、そこでキャリア信号が変調されて、フォトニックチャネルを介した伝送のために光信号にそれぞれのメッセージが付与される。いくつかの実施形態では、示されているように、キャリア信号は、光スプリッタ530によって、複数の光入力導波路、例えば、EICのタイルの各列に対して北、東、西、南に向けられたフォトニックリンクに対してそれぞれ1つの導波路の間で分割される。各入力導波路に沿って、追加のスプリッタが、異なる変調器に入力される光を連続的に分岐することができる。例えば、描かれているように、導波路532は、キャリア信号をタイル104Aのスプリッタ534Aに供給し、光は、そのタイルの変調器504Aへの光パスの間で分岐され、別の光パスは、導波路532の続きを通って光をタイル104Bのスプリッタ534Bに導く。タイル104Bのスプリッタ534Bから、キャリア光は、1つの光パスに沿ってタイル104Bの変調器504Bに供給され、別の光パスに沿って導波路532のさらなる続きを通ってタイル104Cの変調器504Cに供給される。
【0048】
図5A及び5Bに示すように、1つの実装では、タイル間通信のすべて又は大部分、例えば第1のタイル内の第1のノードから第2のタイル内の第2のノードへの活性値のストリーミングは、EIC101上のそれぞれの変調器ドライバ及びTIAの直下に配置されるPIC102内の変調器(例えば、EAM)及び光検出器を採用することによって、PIC102内のフォトニックチャネルを使用して実行される。変調器とPDは、例えばPIC102内の導波路によって光学的に接続される。したがって、1つの実装では、タイル間通信のすべて又は大部分は、EIC101内で電気的に実行されず、PIC102によって提供されるフォトニックファブリックを使用して光学的に実行される。
【0049】
上述のように、本明細書で説明する複数のSIPのエレクトロフォトニックネットワークは、PIC上の光カプラと、異なるSIPの光カプラ間の光伝送媒体とを介して、より大きなエレクトロフォトニックネットワークに接続することができる。伝送媒体は、マルチファイバーターミナルプッシュオン(MTP)リボンファイバー接続(最大20メートル)などの光ファイバーであってもよい。他の伝送媒体も可能であり、例えば、集積光導波路(例えば、SIP間の光相互接続構造を提供するように構成された別個のPIC内)又は自由空間伝送(例えば、あるPICの出力から別のPICの入力に光を結合するために結像光学系を採用すること)が挙げられる。光を捕捉するためにグレーティングカプラが使用される場合、グレーティングカプラは、光の損失を最小化するように、ファイバーの角度に関連する予め規定された角度で光がPICから出るように構成され得る。他の実施形態では、エシェル回折格子などの回折格子を含む様々なタイプの導波路が可能である。このようなマルチパッケージシステム内のすべてのEICのタイル間のメッセージは、メッセージがオンチップ/イントラチップ(単一のSIP内を意味する)又はオフチップ/インターチップ(1つのSIP内のタイルから別のSIP内のタイルへを意味する)のいずれかで送信されるかにかかわらず、PIC及びその間の光相互接続によって実装されるフォトニックファブリックを介して交換され得る。しかし、本明細書に記載される様々な実施形態によれば、オンチップ及びチップ間光通信は、オンチップ通信が一般的に単一波長光を使用して実行されるのに対し、大規模システム内の異なるSIP(例えば、MLアクセラレータ内の異なるMLプロセッサ)間のチップ間通信は、異なるチップ(例えば、異なるMLプロセッサ)間で必要とされるファイバー接続の数を低減するのに役立つ波長分割多重(WDM)を使用して実行されることが多いという点で異なる場合がある。一部の実施形態では、複数の波長もオンチップ光通信に使用され、逆に、単一波長通信も、原理的には、オフチップ通信に使用され得ることに留意されたい。
【0050】
図6Aは、いくつかの実施形態による、SIP内の2つの処理要素を接続するフォトニックリンク群の一例を示す図である。チップ内光通信のために、オンチップ又はオフチップレーザー光源であり得る光エンジン600は、単一波長λa1でキャリア光を出力する。スプリッタツリー602は、波長λa1を有する光を、異なるタイル及びフォトニックチャネルに関連する変調器につながる複数の光パス604(1つのみが示されている)の間で分割することができる。これらのパス604のそれぞれに沿って、光は、SIPの1つのタイルから別のタイルへの一方向フォトニックチャネルに対応する、結合グループを形成するように一緒に結合された同じ方向の一方向フォトニックリンクのグループに関連する変調器610、612、614、616のグループの間でさらに分割されることができる。変調器610、612、614、616(例えば、EAM)は、単一波長λa1を有する光を変調し、変調された光をそれぞれの導波路620、622、624、626を介して、同じチップの異なるタイルに位置する光検出器630、632、634、636に伝送する。
【0051】
図6Bは、いくつかの実施形態による、チップ間光通信にWDMを使用する2つのSIP100A、100Bのシステム例を示す図である。描かれている例では、SIP100A、100BのPICは、第1のPICのグレーティングカプラ640、第1の光ファイバー641、ファイバーコネクタ642、第2の光ファイバー643、及び第2のPICのグレーティングカプラ645を介して接続されている。第1のSIP100Aでは、オンチップ又はオフチップレーザー光源であり得る光エンジン650が、複数の波長(例えば、2~16の波長)の光、例えば、図示のように4つの波長λb1、λb2、λb3、λb4をPICに供給する。スプリッタツリー602(例えば、図6Aのものと同様)は、複数の波長における光を、SIP100Aの異なるタイルに、及び/又はタイル内の異なるフォトニックチャネルインターフェースに関連付けられた光変調器に導く複数の光パス652(1つのみが示されている)の間で分割してもよい。例えば、波長λb1、λb2、λb3、λb4のキャリア光は、図2Bに示されるインターフェース214のような複数の周辺フォトニックチャネルインターフェースに関連する光変調器に供給されてもよい。
【0052】
これらのパス652のそれぞれに沿って、デマルチプレクサ654が、異なるそれぞれの変調器(例えば、EAM)662、664、666、668の間で波長λb1、λb2、λb3、λb4を分離する。変調器662、664、666、668は、波長λb1、λb2、λb3、λb4でキャリア光を変調し、それぞれの波長λb1、λb2、λb3、λb4を有する変調された光信号を光リンク672A、674A、674A、678A上でWDMマルチプレクサ680に供給する。それぞれが別々の波長λb1、λb2、λb3、λb4で符号化された4つのデータストリームを含むWDMマルチプレクサ680の多重化出力は、単一の導波路上でグレーティングカプラ640に供給され、そこで多重化変調光信号がオフチップでファイバー641に結合される。
【0053】
ファイバーコネクタ642において、多重化変調光信号は、ファイバー641から第2のファイバー643に結合される。第2のファイバー643は、グレーティングカプラ645を介して多重化変調光信号を第2のSIP100BのPICに結合する。いくつかの他の実施態様のエッジ側では、FAU及びグレーティングカプラの代わりに、又はFAU及びグレーティングカプラに加えて、結合ファイバーが使用されてもよい。SIP100Bでは、次に、デマルチプレクサ682が多重化変調光信号をデマルチプレクスし、波長λb1、λb2、λb3、λb4を有する4つの別個の変調信号を出力する。これらの4つの信号は、それぞれの光導波路672B、674B、676B、678Bを介して、SIP100Bのフォトダイオード692、694、696、698に供給される。集合的に、SIP100AのPIC内の変調器662、664、666、668、導波路672A、674A、676A、678A、マルチプレクサ680、及びグレーティングカプラ640、SIP100A、100B間の光ファイバー接続(641、642、643)、及びSIP100BのPIC内のグレーティングカプラ645、デマルチプレクサ682、導波路672B、674B、676B、678B、及び光検出器692、694、696、698は、異なるSIPのタイル間の一方向フォトニックチャネルを形成する。ここで、SIPの同じペアのタイル間の2つのそのような一方向フォトニックチャネルは、チップ間双方向フォトニックチャネルを形成する。
【0054】
上述した実装は、一方向の4つの光リンクと、4つの異なる波長を受信するWDMマルチプレクサとを示すフォトニックチャネルに向けられているが、他の実装では、2つ以上の光リンクと、2つ以上の異なる波長を受信するWDMマルチプレクサとが使用されてもよい。それに応じて、デマルチプレクサは、これらの代替実装に対応する2つ以上の異なる波長を出力する。
【0055】
例えば、上述したような、一般に、方向ごとに1つ又は複数のリンクを含む、チップ内及びチップ間フォトニックチャネルを使用して、1つ又は複数のSIPのEIC内の処理要素(タイル)を、エレクトロフォトニックネットワークに接続することができる。結果として生じるネットワークトポロジーは、一般に、関連するフォトニックチャネルを介して直接接続されるタイルのペアの選択に依存し、様々な例示的なトポロジーが、図7~9を参照して以下に説明される。本開示は一般に双方向フォトニックチャネルに言及しており、これは一方向フォトニックチャネルと比較して、ML及び他の計算モデルを実装するためのより高い柔軟性を提供するネットワーク構造をもたらすが、エレクトロフォトニックネットワークは原理的に一方向フォトニックチャネルでも形成することができ、そのようなネットワークは本明細書で議論される利点の多く(例えば、より長い距離にわたるフォトニックデータ転送による電力節約)を保持することができることに留意されたい。
【0056】
図7は、いくつかの実施形態による、四辺形メッシュトポロジーを有する例示的なエレクトロフォトニックネットワーク700を示す図である。このトポロジーは、図1Bに描かれたSIP100についても示されている。描かれている例では、ネットワークは、四辺形(例えば、図示されているように、長方形)グリッドに配置され、各タイルの出力がそのすぐ隣のタイルのいずれかに入力として提供され得るようにフォトニックチャネル702によって相互接続された16個のタイル104(ネットワークノードを構成する)を含む。代替の実施態様において、他のネットワークトポロジーも、例えば、特定のアプリケーションの要求に基づいて、より密な又はより疎な接続性を提供するためにサポートされ得る。例えば、ネットワークノードをスキップし、隣接していないノード、すなわち矩形メッシュ内で2ホップ以上離れたノードへの直接パスを提供するために、追加のフォトニックチャネルを追加することができる。
【0057】
図8は、いくつかの実施形態による、ラップトロイダルメッシュトポロジーを有する例示的なエレクトロフォトニックネットワーク800を示す図である。ネットワーク800は、図7のネットワーク700と同様に、矩形グリッドに配置された16個のタイル104を含む。このトポロジーにおいては、各タイル104の出力が、フォトニックチャネル802を介して(図7のメッシュトポロジーの場合もそうであるように)そのすぐ隣のタイルのいずれかに入力として提供されることができるように、さらには、アレイの周縁部に沿った各タイルが、フォトニックチャネル804を介して、グリッドの反対側の端にあるタイル、すなわち、垂直の端に沿って配置されたタイルについては同じ行の遠くのタイルであって、水平の端に沿って配置されたタイルについては同じ列の遠くのタイルに、その出力を直接提供することができるように、タイル104間のフォトニックチャネル802、804が構成される。その結果、ラップトロイドは、ネットワークの反対側にあるタイル間の通信に必要なタイル間ホップの数を大幅に減らすという有益な効果をもたらす。例えば、フォトニックチャネル804がなければ、ネットワークの左端のタイルから右端のタイルに送信されるメッセージは、ネットワークのタイルの行全体を横断することになる。
【0058】
いくつかの実施形態では、ラップトロイダルトポロジーは、チップの端部の光リンクを、ファイバー取り付けユニットに適合するグレーティングカプラに、又は代替的に端部カプラに結合することによって物理的に実装され、リボンファイバーに組み立てられたファイバーのアレイのための接続を提供する。リボンファイバーは、パッチファイバーを用いて光リンクの任意のトポロジーを構築できるように設計することができる。パッチファイバーは、PICの片側からの接続を反対側に向け(ラップ)して、ラップトロイダルを形成することを可能にする。光ファイバーを使用する代わりに、対向する端のタイルを接続するフォトニックチャンネル804をPIC内の光導波路として実装することも可能である。オプションとして、フォトニックチャネル804間の導波路交差を避けるために、同じ行の反対側の端のタイルを接続する導波路は、同じ列の反対側の端のタイルを接続する導波路とは別の層に実装されてもよい。
【0059】
図9は、いくつかの実施形態による、拡張可能なラップトロイダルメッシュトポロジーを有する例示的なエレクトロフォトニックネットワーク900を示す図である。この場合、4つのSIP100(例えば、4つのMLプロセッサを有するMLアクセラレータを実装する)は、それぞれがそのEICに矩形グリッドの16個のタイル104を含み、それ自体が2×2グリッドに配置され、その結果、全体として8×8グリッドの64個のタイル104が配置される。示されるように、この構成では、同じSIP100内又は2つの隣接するSIP100内のいずれかにある互いにすぐ隣接するタイル104は、フォトニックチャネル(例えば、チップ内フォトニックチャネル902についてはPIC内の導波路によって実装され、チップ間フォトニックチャネル904については光ファイバーによって実装される)によって接続される。さらに、8×8グリッドの周縁部に沿ったタイル104は、図8のトポロジーと同様に、ラップトロイドとして(チップ間フォトニックチャネル906によって)相互接続され、8×8グリッドの端部に位置する1つのSIP100の各タイル104の出力が、グリッドの反対側の端部に位置する別のSIP100のタイルへの入力として提供され得るようにする。有益なことに、チップ間フォトニックチャネル904、906は、全てのSIP100のタイル104をより大きなエレクトロフォトニックネットワーク900にシームレスに統合する。理解されるように、単一のより大きなネットワークに接続されるSIP100の数は、描かれた4つとは異なってもよく、フォトニック通信の長距離に対するエネルギー効率を利用して、実質的なエネルギー損失を発生させることなく単に増加させることができる。さらに、拡張可能なラップトロイダルトポロジーは、そうでなければグリッドの遠い端のタイル間で通信するために必要とされることとなるタイル間のホップ数を減少させる。
【0060】
図7~9は、可能なネットワークトポロジーの様々な非限定的な例を示している。さらに別の例を提供するために、フォトニックチャネルは、1つ又は複数のSIP内の、及び/又は1つ又は複数のSIPにわたって、タイルを集合的に接続し、3次元の立方格子トポロジーとして構成することもできる。このような実施形態では、タイルは依然として単一平面内にレイアウトされる(すなわち、幾何学的に二次元である)かもしれないが、ネットワークノード間の接続によって三次元ネットワークトポロジーの特徴を備える。図8図9に描かれているラップトロイダルネットワークも、幾何学的には2次元で、トポロジー的には3次元の構成の例でもあることに留意されたい。
【0061】
本明細書で説明する様々な実施形態によるMLアクセラレータシステムでは、フォトニックファブリックを使用したMLモデルの電力効率的な実行をサポートするために、いくつかの技術が使用され得ることに留意されたい。MLモデルの場合、通信のパターンとスケジュールの両方がコンパイル時に既知であり、これは、コンパイラ指向のフォトニックファブリック最適化の機会を提供する。例えば、MLプロセッサやアクセラレータにロードされたMLモデルに基づいて、使用されていないフォトニックファブリック内のフォトニックチャネルや光リンクをシャットダウンして電力を節約することができる。例えば、各方向に4つずつ、計8つのリンクで構成される双方向フォトニックチャネルは、所定のモデルが要求する以上の帯域幅を提供することができる。動的結合を使用すれば、コンパイラが作成したスケジュールに基づいて、MLモデルのニーズに応じてチャネル内の光リンクを選択的にアクティブにしたり非アクティブにしたりできるため、消費電力をさらに低減できる。このアルゴリズムを実装するための前提条件は、EO及びOEインターフェースが静止状態になり、数ビット時間で再起動できることである。これは、ネゴシエーションプロトコルを使用してブート時に各チャネルからマスターリンクを選択することで達成される。チャネルのマスターリンクがシャットダウンされることはない。マスターリンクの送信クロックは、すべてのスレーブリンクの送信クロックとして使用される。受信側では、マスターリンクが受信ビットストリームに対してクロックデータリカバリーを実行し、送信クロックを再構築する。その後、受信クロックはチャネル内の他のスレーブリンクに分配される。トランスミッターとレシーバーの両方でマスターリンクとスレーブリンク間の伝送に遅延が発生するため、各受信リンクでクロックスキューを考慮する必要があり、これはチャネルの立ち上げ時にチャネルアライメントフェーズを実行することで達成される。
【0062】
フォトニックファブリックの構成可能性とその動的結合能力は、さらに、歩留まりの低い部品に起因する製造上の欠陥を修正するためのフォールトトレランスを提供するために使用することができる。変調器(例えば、EAM)及びフォトダイオードは、製造上の欠陥がある可能性があり、これが恒久的な欠陥を引き起こす。MLアクセラレータが初期化されると、フォトニックファブリック内の各チャネルは、データを伝送する準備が整うようにセットアップとキャリブレーションが行われる。通常の動作では、チャネル内のリンクは結合され、1つの論理チャネルとして動作するグループを形成する。チャネル確立の過程で、機能しないリンクは結合グループから除外され、無効にすることができる。チャネル確立プロセスは、各チャネルのポートロジック内のステートマシンによって調整される。
【0063】
チャネル確立ステートマシンは、複数フェーズで進行する。最初のフェーズでは、マスターリンクが選択される。トランスミッターがチャネル内の各リンクをローテーションし、リンク確立フレーミングパターンを送信する。受信チャネルがリンク確立パターンを正常に受信すると、その確立リンクを「マスター発見(master found)」フレーミングパターンに変換する。あるチャネルが「マスター発見」フレーミングパターンを受信すると、対応するトランスミッターはリンクのローテーションを停止し、いくつかの「マスター発見」フレーミングパターンがマスター選択が安定していることを示すのを待つ。そのチャネルが「マスター発見」を受信しなくなると、リンク確立フレーミングパターンの使用に戻る。両方向でマスターリンクが確立されると、結合を進めることができる。現在マスターでない各リンクに対して、システムは「結合準備(ready to bond)」フレーミングパターンを送信する。受信側が「結合準備」フレーミングパターンを正しくデコードすると、マスターリンク上で結合されたフレーミングパターンを送信し、受信チャンネルを結合グループに追加する。このプロセスは、すべての非マスターリンクが破棄されるか、結合グループに追加されるまで続く。結合プロセスの完了時には、完全に機能しているリンクのみが結合グループに含まれることになる。
【0064】
図10は、プロセッサ内のクロック信号分配の従来技術を示す図である。プロセッサ内のクロック信号分配のための従来技術は、かなりのエネルギーを消費する。クロックツリーは一般的に階層的に構築され、クロック信号をリージョナルクロックネットワークに分配するルートクロックネットワークから始まる。典型的なトポロジーは、図10に示す「Hツリーネットワーク」であり、クロックセグメントは、プロセッサリージョンにクロック信号を分配するために、等しい長さのパス上で連続的に分割される。バッファ1044は、プロセッサ全体にわたって長距離伝搬するクロック信号を再生するために使用される。Hツリーを通るパスは、Hツリーネットワークのアーム間のクロックスキューをも均等に維持するために、長さがそろえられる。次に、リージョン内では、リージョンレベルのクロック信号をローカル回路1046に接続するために、さらに階層的なクロック分割が行われる。ルートクロックネットワークは、クロックパスの長さをそろえる必要があるため、しばしばルーティング上の課題が発生し、また、再生バッファ1044で大きな電力を消費する。
【0065】
図11は、いくつかの実施形態による、ルートクロック信号などのクロック信号を分配するためにフォトニックファブリックを使用する例を示す図である。いくつかの実施形態について、本明細書に記載のフォトニックファブリックは、MLプロセッサ(例えば、100)内のクロック信号、例えば、MLプロセッサのASIC(又は他のEIC、例えば、101)によって使用されるルートクロックネットワークのクロック信号を伝送するために使用される。ここで図11を参照すると、マスターリンクは常にチャネル1112、1114、1116、1118で送信されるので、受信タイルは、タイル(例えば、104)のクロックソースを確立するために第1のマスターリンク1130による選択を使用することができる。クロック信号は、クロックデータリカバリー(CDR)回路1120を使用することによって、チャネル1112、1114、1116、1118上の受信データストリームから抽出され、低ジッタクロック信号1126を生成するジッタ減衰PLL1124に供給される。その後、低ジッタクロック信号は、タイル内の他のすべてのチャンネル1132、1134、1136、1138のトランスミッターに使用されるだけでなく、分割されてテンソルプロセッサ、DNN、メッセージルータのデジタルクロック信号1140として使用される。
【0066】
したがって、各タイルはそれ自身のクロックドメインを確立し、タイル間の電気的接続にはメソクロナスクロッキングを使用する。この配置には、デジタルグローバルクロックネットワークを超えるいくつかの利点がある。すなわち、プロセッサの典型的なルートクロックネットワークを排除することで電力を節約し、プロセッサの周囲や複数のプロセッサ間でルーティングされなければならないクロックネットワークの複雑さを軽減し、同期されたグローバルクロックへの移行によるデジタルロジックの電流スパイクを低減する。いくつかの実施形態の新規なクロック信号の分配メカニズムは、単一のMLプロセッサのタイル内だけでなく、MLプロセッサ間にも及ぶ。
【0067】
本明細書では、様々な実施形態を使用して本発明の概念を説明するが、これらの概念の他の実施形態は、本願の範囲から逸脱することなく、当業者によって考案することができる。例えば、1つのアプローチにおいて、DNN自体は、ニューラルネットワーク層がフォトニクスを使用して実装される(例えば、MAC機能が光ビームスプリッタ及び光導波路を使用して実行され、中間出力信号が光出力のために光学的に結合される)PNN(フォトニックニューラルネットワーク)であってもよい。さらに、フォトニックネットワーク及び/又はフォトニックファブリックの一部は、例えば、バックアップ接続として、又は、テスト中に使用するために、又は、MLアクセラレータの初期化中に使用するために、光接続に加えて、又は光接続の代わりに、電気接続を用いて実装されてもよい。
【0068】
まとめると、本発明の概念の様々な実施形態によれば、本発明のMLアクセラレータは、新規なハイブリッドなエレクトロニックフォトニック(又はエレクトロフォトニック)NoCと、新規なDNNと、MLモデルを実行するための全体的にユニークなアーキテクチャと、新規なクロッキングスキームとを含む。ここで開示されているMLアクセラレータは、データ移動で消費される電力を低減し、MAC動作におけるエネルギー消費を低減することにより、処理速度を向上させながら消費電力を大幅に低減する。データ移動のために消費される電力の低減は、各MLプロセッサにおいてデータの局所性を最大化すること(例えば、データ移動を低減すること)によって達成され、さらに、データ移動が必要な場合のエネルギー損失を低減することによって達成される。さらに、本MLアクセラレータにおける新規のクロッキングスキームは、さらなる電力節約をもたらす。
【0069】
いくつかの実施形態では、本明細書で説明するクロック信号の分配は、SIPなどの回路パッケージに関して実施される。例えば、回路パッケージは、フォトニックチャネルインターフェースを含む複数の処理要素(例えば、複数のタイル)を含むASIC(例えば、101)から構成することができる。さらに、回路パッケージは、エレクトロフォトニックネットワーク(例えば、ネットワーク130)の少なくとも一部を形成するために複数の処理要素を接続する複数のフォトニックチャネルから構成され得る。様々な実施形態によれば、複数のフォトニックチャネルのうちの複数のサブフォトニックチャネル(例えば、チャネル1112、1114、1116、1118、1132、1134、1136、1138)が、複数の処理要素の個々の処理要素(例えば、タイル104)に接続される。
【0070】
実施形態のクロック信号の分配を円滑にするために、個々の処理要素は、個々の処理要素のために、複数のサブフォトニックチャネルからマスターフォトニックチャネル(例えば、チャネル1112、1114、1116、1118のうちの1つ)を(例えば、第1のマスターリンク130を介して)選択することができる。いくつかの実施形態では、個々の処理要素は、個々の処理要素のブート時間中に(例えば、ネゴシエーションプロトコルを使用して)マスターフォトニックチャネルを選択する。
【0071】
個々の処理要素は、個々の処理要素のために、複数のサブフォトニックチャネルからスレーブフォトニックチャネルのセット(例えば、チャネル1132、1134、1136、1138)を選択することができる。いくつかの実施形態では、個々の処理要素は、個々の処理要素のブート時間中に(例えば、ネゴシエーションプロトコルを使用して)スレーブフォトニックチャネルのセットを選択する。さらに、いくつかの実施形態では、個々の処理要素は、マスターフォトニックチャネル上でチャネルアライメント動作を実行し、チャネルアライメント動作は、クロックスキューを補償するために個々の処理要素の1つ又は複数の設定を調整するように構成される。
【0072】
個々の処理要素は、選択されたマスターフォトニックチャネルから受信クロック信号を抽出することができる。いくつかの実施形態では、個々の処理要素は、マスターフォトニックチャネルを介して受信された受信ビットストリームに対して(例えば、CDR回路1120によって)クロックデータリカバリーを実行することによって、マスターフォトニックチャネルから受信クロック信号を抽出する。
【0073】
個々の処理要素は、受信クロック信号に基づいて、個々の処理要素上で1つ又は複数のローカル動作を実行するために個々の処理要素(例えば、タイル104)によって使用されるローカルクロック信号(例えば、デジタルクロック信号1140)を生成することができる。個々の処理要素上のローカル動作は、個々の処理要素(例えば、タイル104)のテンソルプロセッサ(例えば、108)、DNN(例えば、106)、又はメッセージルータ(例えば、110)のうちの少なくとも1つによって実行され得る。したがって、個々の処理要素はテンソルプロセッサ(例えば、108)を構成することができ、テンソルプロセッサはローカルクロック信号に基づいて動作することができる。個々の処理要素は、フォトニックチャネルインターフェースを含むメッセージルータを構成することができ、メッセージルータはローカルクロック信号に基づいて動作することができる。個々の処理要素は、少なくとも2つのベクトル間のドット積を計算するためのハードウェア回路(例えば、DNN106)を構成することができ、このハードウェア回路は、ローカルクロック信号に基づいて動作することができる。
【0074】
いくつかの実施形態では、個々の処理要素(例えば、タイル104)は、ジッタ減衰位相ロックループ(PLL)(例えば、1124)を含み、個々の処理要素は、ジッタ減衰PLLを使用して、受信クロック信号に基づいて低ジッタクロック信号を生成する。個々の処理要素は、低ジッタクロック信号に基づいてローカルクロック信号を生成することによって、受信クロック信号に基づいてローカルクロック信号を生成することができる。
【0075】
最終的に、個々の処理要素は、スレーブフォトニックチャネル(例えば、チャネル1132、1134、1136、1138)のセットを介して、個々の処理要素に接続された複数の処理要素のセットに分散クロック信号を送信することができ、分散クロック信号は、受信クロック信号(例えば、CDR回路20の出力)に基づいて生成される。例えば、個々の処理要素は、1つ又は複数の発信ビットストリームを処理要素のセットに送信することによって、分散クロック信号を送信することができ、1つ又は複数の発信ビットストリームは、分散クロック信号に基づいて生成される。このようにして、(スレーブチャネルのセットを介して)発信ビットストリームを受信する1つ又は複数の処理要素は、次に、発信ビットストリームから分散クロック信号を独立して抽出することができる。
【0076】
いくつかの実施形態では、個々の処理要素は、個々の処理要素と同様に動作するように構成された(複数の処理要素の)第2の処理要素に接続される。例えば、第2の処理要素は、(個々の処理要素の)スレーブフォトニックチャネルのセットの個々のフォトニックチャネルを介して個々の処理要素に接続され得る。第2の処理要素は、個々のフォトニックチャネルを、第2の処理要素のための第2のマスターフォトニックチャネルとして選択することができる。第2の処理要素は、第2の処理要素のために、第2の処理要素に接続される第2の複数のサブフォトニックチャネルから第2のスレーブフォトニックチャネルのセットを選択することができる。第2の処理要素は、第2のマスターフォトニックチャネルから(例えば、第2のマスターフォトニックチャネルを介して受信された第2の処理要素によって受信された発信ビットストリームから)第2の受信クロック信号を抽出することができる。第2の処理要素は、第2の受信クロック信号に基づいて、第2の処理要素上で1つ又は複数のローカル動作を実行するために第2の処理要素によって使用される第2のローカルクロック信号を生成することができる。その後、第2の処理要素は、第2のスレーブフォトニックチャネルの第2のセットを介して、第2の分散クロック信号を、第2の処理要素に接続された複数の処理要素の第2のセットに送信することができ、第2の分散クロック信号は、第2の受信クロック信号に基づいて生成される。
【0077】
図12は、いくつかの実施形態による、DNNの例示的なアーキテクチャ1200を示す図である。示されるように、アーキテクチャ1200は、64個のSRAMメモリバンク1210-1~1210-64(以下、SRAMメモリバンク1210と総称する)を含む複数のメモリデバイスと、スイッチファブリック1220(例えば、SRAMファブリック)と、コントローラ1230と、ドット積ユニットのアレイ1240とを備え、各ドット積ユニットは、融合型MAC(FMA)ユニット1250を含む複数のFMAユニットから構成される。
【0078】
アーキテクチャ1200は、(MLモデルの内部ループで典型的に使用される)畳み込みや行列乗算のような計算集約的な機能を、演算あたりのオーバーヘッドを最小にして実行することができる。MLグラフを実行するためのレジスタトランスファーマシンなどの従来技術とは対照的に、アーキテクチャ1200は、一般的なプログラマビリティに関連するオーバーヘッドを除去することによって、少ないオーバーヘッドで特定の計算集約的な機能を最適に実行することができる。アーキテクチャ1200は、スイッチファブリック1220に供給するSRAMメモリバンク1210との密接な関連性を提供することができ、これにより、数学ユニット(例えば、ドット積ユニットのアレイ1240)に対するデータ移動を最小限にすることができる一方で、数学ユニット間で値を交換することができる。このようにして、アーキテクチャ1200は、従来技術と比較して電力消費も節約するニアメモリ・コンピューティング・アーキテクチャを提供することができる。
【0079】
いくつかの実施形態によれば、アーキテクチャ1200は、DNNのハードウェア回路を表し、このハードウェア回路は、(例えば、図4に示されるような)組合せツリーと、シーケンサー(例えば、400)とを備える。組合せツリーは、組合せツリーのトップレベルで受信された入力値に基づいて1つ又は複数のドット積値を生成するために積和演算(MAC)ユニットを使用することができ、シーケンサ1211は、一組のメモリデバイス1210から受信された入力ベクトルのスイッチファブリック1220内の位置を再配置するように構成することができる。このようにして、いくつかの実施形態は、トップレベル(例えば、2次元ドット積アレイ1240の左端の列)に入力ベクトルとして提供される重み値及びオペランド値の順序を制御することができる。組合せツリーは、組合せツリーを流れる値のクロックアライメントを維持するように構成されたレジスタを含むことができる。図12において、値のクロックアライメントは、ドット積ユニットのアレイ1240に接続されたクロック1280に関して維持される。示されるように、ドット積ユニットのアレイ1240の各FMAはクロック1280に接続される。
【0080】
シーケンサ1211は、スイッチファブリック1220又はメモリデバイスに動作可能に結合され、スイッチファブリック1220は、組合せツリーを、この例では、それぞれが32ビットベクトルを提供する64個のメモリバンクとして示されているローカルSRAMメモリデバイスなどのメモリデバイス1210のセットに動作可能に結合する。メモリデバイスのセットは、SRAMメモリバンク1210又は任意の他の適切なローカルメモリから構成され得る。組合せツリーは、ドット積ユニットのアレイ1240のようなドット積ユニットのアレイを含むことができる。アレイの各ドット積ユニットの入力は、入力値(例えば、32ビットベクトル)を受信する組合せツリーのトップレベルを形成する。
【0081】
ドット積ユニットのアレイ1240は、入力値(例えば、入力ベクトル1260)を受信し、組合せツリーのトップレベルによって受信される入力値に基づいて1つ又は複数のドット積値を生成するように構成され得、ここで、単一のドット積ユニットは、MACユニットのうちの2つ又はそれ以上から構成され得る。ドット積ユニットの単一のMACユニットは、少なくとも1つのアキュムレータを有する。いくつかの実施形態では、複数のアキュムレータが、値が単一のMACユニットを流れるときに、単一のMACユニットによって生成された部分的なドット積値を蓄積するように構成される。MACユニットは、FMA1250などの少なくとも1つのFMAユニットで構成され得る。
【0082】
いくつかの実施形態では、シーケンサ1211は、メモリデバイス1210のセットから、スイッチファブリック1220にベクトルを提供するように構成される。いくつかの実施形態では、重み値及びオペランド値(例えば、活性値)は、スイッチファブリック1220によって、コントローラ(例えば、コントローラロジック)にしたがってトップレベルへの入力ベクトルのシーケンスとして提供され、これは、シーケンサ1211、クロック、テンソルエンジン、又はASICに関連する別のコンポーネントの動作又は構成を制御する。例えば、コントローラ1230は、シーケンサ1211をハードウェア、ファームウェア、ソフトウェア、又はこれらのすべての組み合わせで実装することができ、ここで、ドット積ユニットのアレイ1240に提供される入力ベクトル(例えば、1260)のシーケンスは、コントローラ1230によって決定される。実施形態によっては、シーケンサ1211は、パラメータのセットに基づいて、トップレベルに提供される入力ベクトルのシーケンスを決定することができ、ここで、パラメータのセットは、ストライド値、ダイレーション値、又はカーネルサイズ値(例えば、これらはコントローラ1230によって受信又は処理され得る)のうちの少なくとも1つを含む。
【0083】
シーケンサ1211は、単一又は複数のクロックサイクル中に、メモリデバイスのセット(例えば、SRAMメモリバンク1210)から読み出された複数の重み値及び複数のオペランド値を読み出すことによって、(入力ベクトルのシーケンスの)個々の入力ベクトルを生成するように構成され得、ここで、個々の入力ベクトルは、複数の重み値及び複数のオペランド値を含む。様々な実施形態によれば、複数の重み値及び複数のオペランド値は、シーケンサによって初めて読み取られ、ドット積エンジン1240に入力を提供するスイッチファブリック1220内の入力ベクトルが並べ替えられるので、シーケンサによる読み取りの間にメモリバンクの衝突は発生しない。さらに、メモリデバイスのセットがメモリバンクを含む場合、シーケンサは、他のクロックベース方式も可能であるが、単一クロックサイクル中にメモリバンクの各々から読み出すことができる。いくつかの実施形態では、シーケンサによるメモリデバイスのセットの連続する各読み出しは、前のクロックサイクル中にシーケンサによって読み出されなかったメモリデバイスのセットからの新しい重み値及び新しいオペランド値の読み出しをもたらす。具体的には、スイッチファブリック1220は、バンクの競合がないように入力データを並び替えた状態で、重み値及びオペランド値(例えば、活性値)を1回だけ読み出すことができる。個々の重み値及びオペランド値を1回だけ読み出すことによって、メモリデバイスのセットから個々の重み値及びオペランド値にアクセスする回数が減少する。
【0084】
ドット積ユニットのアレイ1240は、少なくとも2つの重み値をアレイの隣接する行の間で入れ替えさせ、重み値をアレイの列の下に伝搬させるデータパスを含むことができる。さらに、ドット積ユニットの単一のMACユニットは、単一のMACユニットによって生成された出力値が少なくとも2つの隣接するMACユニットのそれぞれへの入力値として共有されるように、ドット積ユニットの少なくとも2つの隣接するMACユニットに動作可能に結合され得る。
【0085】
最終的に、ロジック(例えば、コントローラ1230)は、入力ベクトルのシーケンスのすべてが組合せツリーのトップレベルに入力された後に、重み値及びオペランド値に対して最終的なドット積値のセットを生成させることができる。例えば、ロジックによって生成される最終的なドット積値のセットは、組合せツリーのMACユニットのアキュムレータに格納された値から構築することができる。さらに、ロジックは、最後のドット積値のセットをメモリデバイス1210のセットに格納するように構成される。あるいは、システムは、決定論的に実行し、所定の計算サイクル数の後にアキュムレータの値を自動的にメモリに書き戻すようにプログラムすることができる。このようにして、格納された最後のドット積値のセットは、ドット積ユニットのアレイのための別の入力ベクトルを構築するために使用することができる。
【0086】
動作中、1つ又は複数の重み値及び1つ又は複数のオペランド値(例えば、活性値)は、SRAMメモリバンク1210に格納され得る。いくつかの実施形態では、SRAMメモリバンク1210は、32バイト幅のSRAMメモリの64バンクから構成される。SRAMメモリバンク1210は、スイッチファブリック1220の入力に供給することができる。スイッチファブリック1220は、シーケンサ1211を使用して、(SRAMメモリバンク1210から)読み出されたデータを再編成することができ、それにより、各連続的なメモリ読み出しが、計算機能(例えば、畳み込み又は行列乗算)を実行するために、新しい重み値又はオペランド値をドット積ユニットのアレイ1240に送出させる。スイッチファブリック1220は、進行中の演算(例えば、畳み込み又は行列乗算)及び現在実行中の演算のステップの1つ又は複数のパラメータにしたがって、SRAMメモリバンク1210から読み出されたデータを(例えば、コントローラ、シーケンサ、又は両方の組み合わせを使用して)並べ替えることができる。したがって、パラメータは、オペランド値(例えば、活性値)が重み値に適用される順序を決めることができる。例えば、2次元(2D)畳み込み演算のパラメータは、ストライド、ダイレーション、又はカーネルサイズを含むことができる。スイッチファブリック1220の出力は、スイッチファブリック1220から読み出された重み値及びオペランド値で、ドット積ユニットのアレイ1240の入力を動作させることができる。値がSRAMメモリバンク1210から読み出されると、スイッチファブリック1220のパイプラインが値で満たされ、値がスイッチファブリック1220からドット積ユニットのアレイ1240にクロックアウトし始める。
【0087】
いくつかの実施形態では、各クロックサイクル中に、重み値及びオペランド値(例えば、活性値)は、スイッチファブリック1220によってベクトルのセットとして読み取られ、スイッチファブリック1220を通過してドット積ユニットのアレイ1240に到達し、ベクトルのセットがスイッチファブリック1220を通過するときに並べ替えられる。畳み込み演算のために、SRAMメモリバンク1210から読み出されたベクトルのセットは、チャネルベクトルのパッチ(例えば、8x8パッチ)として編成され得る。いくつかの実施形態では、スイッチファブリック1220は、メモリ内のパッチを並べ替えることによって、SRAMメモリバンク1210から読み出す間のバンク衝突を回避する。このようにして、スイッチファブリック1220は、毎クロックサイクルですべてのSRAMメモリバンク1210から読み出すことができる。
【0088】
いくつかの実施形態では、ドット積ユニットのアレイ1240の各ドット積ユニットは、32個のFMAユニットの深さである。さらに、いくつかの実施形態では、ドット積ユニットのアレイ1240は、64行×32列のドット積ユニットから構成される。動作中、ドット積ユニットのアレイ1240は、各クロックサイクルにおいて65536個のFMA動作を実行することができる。示されるように、いくつかの実施形態では、ドット積ユニットのアレイ1240内の各FMAユニット(例えば、FMAユニット1250)は、アキュムレータ1252を構成する。この例では、重み値及びオペランド値(例えば、活性値)がFMAユニットを流れるにつれて部分積値を累積するように構成された一対のアキュムレータ(ACC0及びACC1)として示されている。他の実装では、他のアキュムレータ方式を使用することができる。例えば、FMAユニットは、2つの8ビット値を入力として受け取り、32ビットのドット積値を生成することができる(この値はFMAユニットのアキュムレータ1252に格納される)。さまざまな実施形態では、FMAの出力アキュムレータは、値がFMAユニットを介してストリーミングされる間、静止状態に保たれる。出力アキュムレータを静止させておくことにより、各FMAサイクル及びFMAユニットによって行われる各計算に関連するアルゴリズムロジックユニット及びメモリの読み取り及び書き込み動作が不要になるため、さまざまな実施形態でかなりの量のエネルギー消費が回避される。例えば、FMAのエネルギー消費は130fJであり得る。
【0089】
いくつかの実施形態では、ドット積ユニットのアレイ1240の各レベルは、隣接するFMAユニット間の接続のセット、及びドット積値の間の隣接するFMAユニット間の接続のセットを含み、これは、重み値がFMA間でシャッフルされることを可能にし得る。重み値のシャッフルは、畳み込みパラメータ又は行列乗算次元などの1つ又は複数のパラメータのいずれかによって(例えば、コントローラ1230を介して)制御され得る。様々な実施形態において、ドット積ユニットのアレイ1240は、組み合わせ型であり、これにより、ドット積ユニットのアレイ1240は、ドット積ユニットのアレイ1240内の計算の各段階においてレジスタ内のデータをラッチするエネルギーコストを低減又は回避することができる。いくつかの実施形態では、ドット積ユニットのアレイ1240は、ドット積ユニットのアレイ1240内のデータフローをドット積ユニットのアレイ1240を駆動するクロック信号とアライメントされ続けるために使用されるパイプラインレジスタのセット(例えば、少数のパイプラインレジスタ)から構成される。さらに、いくつかの実施形態では、ドット積ユニットのアレイ1240は、ドット積ユニットのアレイ1240の行間で重み値のスワッピングを可能にし、ドット積ユニットのアレイ1240の列を通して重み値の下への伝搬を可能にするデータパスのセットを含み、これにより、オペランド値がドット積ユニットのアレイ1240を通ってストリーミングされるときに、各オペランド値(例えば、活性値)への正しい重み値の供給が円滑になる。すべての重み値及びオペランド値がドット積ユニットのアレイ1240を通過した後、ドット積ユニットのアレイ1240による重み値及びオペランド値の計算は完了したと考えることができ、ドット積ユニットのアレイ1240内の各FMAユニットのアキュムレータ内の結果として生じる値は、最終ドット積値のセットを構成する。これらの最終的なドット積値は、SRAMメモリバンク1210に書き戻す(例えば、格納する)ことができ、その後、ドット積ユニットのアレイ1240による将来の後続の計算の間に、これらの格納された値のうちの1つ又は複数を、ドット積ユニットのアレイ1240への入力として使用することができる。
【0090】
図13は、いくつかの実施形態による、DNNを動作させるための例示的な方法1300を示すフローチャートである。本明細書で説明する例示的な方法は、スタンドアロンDNNによって、又はMLプロセッサ100のようなDNN(例えば、DNN106)を含むデバイスによって実行されてもよいことが理解されよう。さらに、本明細書で説明する例示的な方法は、機械可読媒体上に格納された実行可能な命令の形態で、又は電子回路(例えば、ロジック)の形態で実装されてもよく、これにより、DNNを方法1300にしたがって動作させることができる。例えば、図13の方法1300の動作は、DNNのコントローラによって実行されると、DNNに方法1300にしたがって実行させる実行可能な命令によって表され得る。実施形態によっては、本明細書に記載される例示的な方法の動作は、異なる方法で繰り返されるか、又は図示されない介在する動作を含むことがある。例示的な方法の動作は、ある特定の順序で描かれ、説明されることがあるが、その動作が実行される順序は、ある特定の動作を並行して実行することを含め、実施形態間で異なることがある。
【0091】
ここで図13を参照すると、動作1302において、DNNのシーケンサが、シーケンサに動作可能に結合されたメモリデバイスのセットから、第1の複数の重み値及び第1の複数のオペランド値を読み取る。動作1304において、シーケンサからの第1の入力ベクトルが、DNNの組合せツリーのトップレベルで受信され、第1の入力ベクトルは、動作1302で読み取られた第1の複数の重み値及び第1の複数のオペランド値から構成される。動作1306において、組合せツリーは、第1の入力ベクトルを処理し、組合せツリーは、MACユニットを使用して、トップレベルを通じて受信された値に基づいて1つ又は複数のドット積値を生成するように構成される。シーケンサは、動作1308において、メモリデバイスのセットから第2の複数の重み値及び第2の複数のオペランド値を読み出す。動作1310において、シーケンサからの第2の入力ベクトルが、組合せツリーのトップレベルで受信され、第2の入力ベクトルは、第2の複数の重み値及び第2の複数のオペランド値から構成される。動作1312の間、組合せツリーは、第2の入力ベクトルを処理し、第1の入力ベクトル及び第2の入力ベクトルは、組合せツリーのトップレベルによって受信される入力ベクトルのシーケンスの一部である。入力ベクトルのシーケンスが組合せツリーのトップレベルによって受信された後、動作1314において、DNNは、組合せツリーのMACユニットのアキュムレータに格納された値から最終的なドット積値のセットを構築する。
【0092】
これは、アキュムレータのサイズに応じて複数のステップから構成され得る。いくつかの実施形態では、アキュムレータは32ビットを保持する。アキュムレータを満たすのに十分な入力ベクトルが、例えば、組合せ木のトップレベル(又はドット積アレイの他の場所)で、ドット積アレイを通って流れると、動作1316で、組合せツリーのMACユニットのアキュムレータ内の値(例えば、満杯になったドット積ユニットのアレイの列のアキュムレータ)を、動作1302で使用されたメモリデバイスのセットに書き戻すことができる。その後、プロセスは任意選択で繰り返すことができる。したがって、アキュムレータ出力は、1つの実施形態によって、別の処理サイクルへの入力として使用され得、それによって、アルゴリズムロジックユニットの使用、又は、組合せツリーの行又は列によって行われた任意の計算の中間結果もしくは最終結果を処理又は格納するために必要とされる任意のメモリアクセスを回避する。
【0093】
図14は、いくつかの実施形態による、エレクトロフォトニックネットワークを使用するクロック信号分配のための例示的な方法1400を示すフローチャートである。本明細書で説明する例示的な方法は、MLプロセッサ(例えば、100)の個々の処理要素(例えば、タイル104)によって実行されてもよいことが理解されよう。さらに、本明細書で説明される例示的な方法は、機械可読媒体上に格納された実行可能な命令の形態で、又は個々の処理要素を方法1400にしたがって動作させることができる電子回路(例えば、ロジック)の形態で実施されてもよい。実施形態によっては、本明細書に記載される例示的な方法の動作は、異なる方法で繰り返されるか、又は図示されない介在する動作を含むことがある。例示的な方法の動作は、ある特定の順序で描かれ、説明されることがあるが、その動作が実行される順序は、ある特定の動作を並行して実行することを含め、実施形態間で異なることがある。
【0094】
ここで図14を参照すると、MLプロセッサの個々の処理要素は、動作1402において、マスターフォトニックチャネル上でチャネルアライメント動作を実行し、チャネルアライメント動作は、クロックスキューを補償するために個々の処理要素の1つ又は複数の設定を調整するように構成される。動作1404において、個々の処理要素は、複数のフォトニックチャネルからマスターフォトニックチャネルを選択し、マスターフォトニックチャネルは、個々の処理要素について選択される。いくつかの実施形態では、複数の処理要素は、回路パッケージのASICの一部であり、複数の処理要素は、複数のフォトニックチャネルによって一緒に接続され、回路パッケージ内のエレクトロフォトニックネットワークの少なくとも一部を形成する。動作1406において、個々の処理要素は、複数のフォトニックチャネルからスレーブフォトニックチャネルのセットを選択し、スレーブフォトニックチャネルのセットは、個々の処理要素について選択される。動作1408において、個々の処理要素は、マスターフォトニックチャネルから受信クロック信号を抽出する。(動作1408で抽出された)受信クロック信号に基づいて、個々の処理要素は、個々の処理要素上で1つ又は複数のローカル動作を実行するために個々の処理要素によって使用されるローカルクロック信号を生成する。(動作1410において生成された)受信クロック信号に基づいて、動作1412において、個々の処理要素は、分散クロック信号を生成する。動作1414において、個々の処理要素は、スレーブフォトニックチャネルのセットを介して、分散クロック信号を、個々の処理要素に接続された複数の処理要素のセットに送信する。様々な実施形態に対して、動作1414は、個々の処理要素のフォトニックチャネルインターフェースを使用して、分散クロック信号を電気的形態から光学的形態に変換することを含む。分散クロック信号は、スレーブフォトニックチャネルのセットにわたった伝送に適している。さらに、いくつかの実施形態では、動作1414は、複数の処理要素のセットにおいて、分散クロック信号を光学的形態から電気的形態に変換することを含み、この分散クロック信号は、複数の処理要素のセットによる関連するローカルクロック信号としての使用に適している。
【0095】
図15は、いくつかの実施形態による、エレクトロフォトニックネットワーク(例えば、SIP100のネットワーク130)内でメッセージを転送するための例示的な方法1500を示すフローチャートである。動作1502において、ネットワークの処理要素104の1つ(本明細書では「第1の処理要素」又は「送信元タイル」とも呼ばれる)でメッセージが生成される。このメッセージは、一連の1と0からなるバイナリ情報のパケットである。パケットに含まれるデータの一部には、オプションとして、重み又は活性値などの、タイルのローカルメモリからのデータが含まれ得る。これは、通常、パケットのペイロードと呼ばれる。パケットに含まれるデータの別の部分はヘッダであり、送信先タイルに関連するアドレスなどのルーティング情報を含むことができる。また、代替的に、ルーティング情報をペイロードの一部として、例えば、データ(例えば、重み又は活性値)を伝送するペイロードの第2の部分とは別の第1の部分で提供することも可能である。したがって、パケット内のルーティング情報は、ネットワークの別の処理要素(本明細書では「第2の処理要素」又は「送信先タイル」とも呼ばれる)をメッセージの送信先として指定することができる。ルーティング情報に基づいて、送信元タイルから送信先タイルまでのネットワークを通るパスを決定することができる。送信元タイル及び送信先タイルがネットワークの双方向フォトニックチャネルを介して直接接続されていない限り、このパスは送信元タイルから送信先タイルへのルート上に1つ又は複数の中間処理要素(本明細書では、「第3の処理要素」又は「中間タイル」とも呼ばれる)を含む。いくつかの実施形態では、パスは、送信元タイル及び中間タイルのルータによって(送信元から送信先へのルートに沿った各ホップにおけるパケットの(例えば、ヘッダ内)ルーティング情報の少なくとも1つの値を修正することによって)集合的に決定される。例えば、送信先タイルのアドレスを現在のタイルからの相対的な位置、すなわち距離で指定する実施形態では、各メッセージルータは、例えば2次元のうちの1つで、その距離を短縮するネットワーク内の隣接タイルにメッセージをルーティングし、それに応じてパケットデータを更新することができる。
【0096】
したがって、動作1504において(その第1の実行中に)、送信元タイルのルータは、(第1の繰り返しにおいて)送信先タイルへのパスに沿って次のタイルを決定し、送信元タイル内のメッセージを、送信元タイルをその次のタイルに接続する双方向フォトニックチャネルにルーティングする。送信元タイルとその双方向フォトニックチャネルとの間のインターフェースにおいて、メッセージは、動作1506において、例えば、送信元タイルの変調器ドライバを操作して、フォトニックチャネルの関連する変調器にメッセージにしたがって光信号を変調させることによって、光信号に付与される。動作1508において、メッセージを伝送する変調された光信号は次のタイルに伝送される。動作1510において、光信号は、フォトニックチャネルと次のタイルとの間のインターフェースにおいて、例えばフォトニックチャネルの端部の光検出器で光信号を測定することによって、電子信号に変換される。いくつかの実施形態では、次のタイルのEICに到着すると、動作1511において、パケット内のルーティング情報は、パケットが複数の次元のうちの1つにおいて送信先に向かって1ステップ移動したことを反映するように修正される。その後、次のタイルのメッセージルータは、送信先タイルに向かって複数の異なる次元において残っている現在のステップ数を示すようにフィールドが修正されたルーティング情報を有するパケットを有する。
【0097】
動作1512において、動作1510でメッセージを受信したタイルが送信先タイルであるか中間タイルであるかが判定される。そのタイルが中間タイルである場合(例えば、一実施形態では、パケットのヘッダ内のルーティング情報フィールドがゼロでない場合)、方法1500は、動作1504にループバックし、その中間タイルは(2回目以降の実行中に)、送信先へのパスに沿った次のタイルを決定する。次いで、メッセージは、(動作1508での)その次のタイルへの送信のために、(動作1506で)光信号に付与され、光信号の変換後に、(動作1510で)結果として生じる電子信号から抽出される。方法1500は、送信先タイルに到着するまで、動作1504~1512を繰り返す。送信先タイルのルータが、メッセージがその送信先にあることを決定すると、動作1514において(例えば、ルーティング情報を有するパケットの両方のフィールドがゼロである場合)、メッセージ(又は、例えば、送信元タイルからストリーミングされた活性値などのそのペイロード)は、例えば、送信先タイルの処理エンジン又はメモリへの送信のために、送信先タイル内のローカルポートにルーティングされる。
【0098】
図16は、いくつかの実施形態による、MLプロセッサ上でANNを実装する例示的な方法1600を示すフローチャートである。ANNは、関連する所定の重みを有する複数のニューラルノードと、ノード間の活性値の所定のフローとを含む。MLプロセッサ(例えば、図1A及び図1BのSIP100によって実装される)は、双方向フォトニックチャネルによって接続された複数の処理要素(例えば、104)を含むエレクトロフォトニックネットワークを含み、各処理要素は、1つ以上の処理ブロックと、1つ以上の処理ブロックに通信可能に結合されたメモリと、2つ以上のフォトニックチャネルインターフェースを含むメッセージルータとを含む。本方法は、動作1602において、重みを含むANNの表現を含む入力データを、機械可読形式でMLプロセッサのエレクトロフォトニックネットワークで受信することを含む。MLプロセッサへの接続は、例えば、PCIE、ARMコア、汎用プロセッサ、又はエレクトロフォトニックネットワークに電子的又は光学的に結合されたMLプロセッサの他のシステムを介して確立されてもよい。動作1602は、例えば、テンソルフローを介してデータを、人間が読み取り可能な形式から機械が読み取り可能な形式に変換するコンパイラに提供することを含み得る。
【0099】
動作1604において、ANNの重みは、ニューラルノードと処理要素との間の割り当てに基づいて、エレクトロフォトニックネットワークの処理要素にロードされる。この割り当ては、コンパイル時に(例えば、動作1602でエレクトロフォトニックネットワークに接続する前に)決定されてもよい。別の実施形態では、ANNの重みは、コンパイル後、推論又はモデルの実行前に動作するスケジューラによって、エレクトロフォトニックネットワークの処理要素のローカルメモリにロードされる。いくつかの実施形態では、各ニューラルノードは処理要素の1つに割り当てられ、各処理要素は1つ又は複数のニューラルノードを実装することができる。他の実施形態では、1つ又は複数のニューラルノードは、ノードを集合的に実装する複数の処理要素にそれぞれ割り当てられる。各ニューラルノードに関連付けられた重みは、例えば、コードがコンパイルされた後、ハードウェアが実行される前に、そのニューラルノードを実装するように割り当てられた1つ以上の処理要素のメモリにロードされる。
【0100】
動作1606において、処理要素、より詳細には、例えば、それらのメッセージルータは、ANN内のノード間の活性値の所定の流れと連動して、処理要素へのノードの割り当てに基づいて構成される。この設定には、例えば、パス設定パケットデータを電子形式で、又は光伝送されたメッセージを介してルータに提供することが含まれる得る。このような構成の結果、各処理要素で計算された出力活性値は、これらの活性値を入力として受け取るANNのニューラルノードを実装するそれぞれの処理要素にルーティングされることになる。この構成では処理要素の異なるものによって実装されるニューラルノード間の活性値が双方向フォトニックチャネルを介して処理要素間で光学的に転送されるのに対し、共有処理要素によって実装されるニューラルノード間の活性値は処理要素内で電子的に転送される。動作1608において、MLプロセッサは、例えば、コードを実行し、処理エンジン内の関連する重み及び入力活性値に対して計算を実行し、本構成のルータによって行われたルーティング決定にしたがって処理要素間で活性値をストリーミングすることによって、ANNのノードを実装するように動作する。
【0101】
以下の番号付けされた例は、例示的な実施形態であり、制限的であることを意図するものではない。
【0102】
1.複数の処理要素を含む電子集積回路であって、各処理要素がフォトニックチャネルインターフェースを含むメッセージルータを含む、電子集積回路と、
前記処理要素をエレクトロフォトニックネットワークに接続する複数の双方向フォトニックチャネルであって、各双方向フォトニックチャネルは、第1の端部において、前記処理要素の中の第1の処理要素のメッセージルータのフォトニックチャネルインターフェースとインターフェース接続し、第2の端部において、前記処理要素の中の第2の処理要素のメッセージルータのフォトニックチャネルインターフェースとインターフェース接続し、前記第1の処理要素のメッセージルータと前記第2の処理要素のメッセージルータとの間でパケットを光学的に転送するように構成されている、複数の双方向フォトニックチャネルと、
を含む回路パッケージ。
【0103】
2.各双方向フォトニックチャネルは、それぞれの方向に向かう1つ以上の一方向フォトニックリンクを含む、例1に記載の回路パッケージ。
【0104】
3.各双方向フォトニックチャネルは、それぞれの方向への複数の一方向フォトニックリンクを含み、それぞれの方向への前記複数の一方向フォトニックリンクは互いに結合されている、例2に記載の回路パッケージ。
【0105】
4.各一方向フォトニックリンクは、入力端の光変調器と、出力端の光検出器と、光変調器と光検出器とを接続する光導波路とを含み、各フォトニックチャンネルインターフェースは、前記入力端でインターフェース接続する各一方向フォトニックリンク用の変調器ドライバと、前記出力端でインターフェース接続する各一方向フォトニックリンク用のトランスインピーダンス増幅器とを含む、例2又は3に記載の回路パッケージ。
【0106】
5.前記光変調器は、電界吸収型変調器(EAM)である、例4に記載の回路パッケージ。
【0107】
6.前記光変調器は、リング変調器、マッハツェンダー変調器、量子閉じ込めシュタルク効果(QCSE)電気吸収変調器の少なくとも1つからなる、例4に記載の回路パッケージ。
【0108】
7.前記電子回路は、電子回路層に実装され、前記複数の双方向フォトニックチャネルは、フォトニック回路層に実装される、例4から6のいずれかに記載の回路パッケージ。
【0109】
8.前記電子回路層は、第1の半導体チップに実装され、前記フォトニック回路層は、第2の半導体チップに実装される、例7に記載の回路パッケージ。
【0110】
9.各変調器ドライバは、それが関連する前記光変調器の真上又は真下に配置され、各トランスインピーダンス増幅器は、それが関連する前記光検出器の真上又は真下に配置される、例7又は8に記載の回路パッケージ。
【0111】
10.前記光変調器とそれに関連する変調器ドライバとの距離、及び、前記光検出器とそれに関連するトランスインピーダンス増幅器との距離は、200μmより小さい、例8に記載の回路パッケージ。
【0112】
11.前記半導体チップの前記フォトニック回路層に、1つ以上のレーザー光源から供給される光キャリア信号を前記フォトニックリンクの前記光変調器に供給する光入力導波路をさらに備え、光キャリア信号は、関連する変調器ドライバによって印加される駆動信号にしたがって前記光変調器によって変調され、パケットを伝送する変調光信号を生成する、例8から10のいずれかに記載の回路パッケージ。
【0113】
12.前記回路パッケージに統合された1つ以上のレーザー光源をさらに含む、例11に記載の回路パッケージ。
【0114】
13.前記1つ以上のレーザー光源は、前記フォトニック回路層において1つ以上のフォトニック集積回路(PIC)の前記光入力導波路と統合されている、例12に記載の回路パッケージ。
【0115】
14.前記1つ以上のレーザー光源は、前記半導体チップと同包されたインターポーザーに実装され、前記光入力導波路を含む前記フォトニック回路層において1つ以上のPICとエッジ結合される、例12に記載の回路パッケージ。
【0116】
15.前記1つ以上のレーザー光源は、前記回路パッケージの外部に実装され、前記回路パッケージにおける1つ以上のPICに1つ以上の光ファイバーを介して光学的に結合される、例11に記載の回路パッケージ。
【0117】
16.前記1つ以上の光ファイバーは、前記PICに実装されたグレーティングカプラ上に配置された1つ以上のファイバーアタッチユニット(FAU)を介して前記1つ以上のPICに結合される、例15に記載の回路パッケージ
【0118】
17.前記1つ以上の光ファイバーは、前記1つ以上のPICにエッジ結合されている、例15に記載の回路パッケージ。
【0119】
18.前記半導体チップの前記フォトニック回路層において、1つ以上の光スプリッタをさらに含み、前記1つ以上の光スプリッタのそれぞれは、前記1つ以上のレーザー光源のうちの関連する1つから受信した入力光キャリア信号を前記複数の入力光導波路間で分割する、例15から17のいずれかに記載の回路パッケージ。
【0120】
19.前記電子集積回路が、特定用途向け集積回路(ASIC)である、例1から18のいずれかに記載の回路パッケージ。
【0121】
20.前記ASICは、デジタル混合信号電子回路を含む、例19に記載の回路パッケージ。
【0122】
21.各処理要素は、ベクトル間のドット積を計算するための乗算器と加算器の組み合わせツリーを実装するドット積エンジンをさらに含む、例19に記載の回路パッケージ。
【0123】
22.各処理要素は、ドット積エンジンの出力として計算されたベクトルを得て処理するためのテンソルエンジンをさらに含む、例21に記載の回路パッケージ。
【0124】
23.各処理要素は、メモリシステムをさらに含む、例21又は22に記載の回路パッケージ。
【0125】
24.周辺コンポーネントインターコネクトエクスプレス(PCIE)インターフェース、先進RISCマシンコア、画像プロセッサ、又は外部メモリコントローラのうちの少なくとも1つをさらに含む、例19から23のいずれかに記載の回路パッケージ。
【0126】
25.高帯域幅メモリ(HBM)をさらに含み、前記ASICは、前記処理要素を前記HBMに通信可能に結合するRAMコントローラをさらに含む、例19から24のいずれかに記載の回路パッケージ。
【0127】
26.前記処理要素の前記メッセージルータは、一部にルーティング情報を有するパケットをルーティングするように構成され、前記ルーティング情報を用いて前記エレクトロフォトニックネットワークを通るパスが決定される、例1から25のいずれかに記載の回路パッケージ。
【0128】
27.各処理要素の前記メッセージルータは、そのフォトニックチャネルインターフェースの1つで受信されたパケット内のルーティング情報に基づいて、パケットの送信先を決定し、送信先が処理要素内のローカルメモリ又は処理エンジンである場合は、ローカルポートに、送信先が処理要素内のローカルメモリ又は処理エンジンでない場合は、フォトニックチャネルインターフェースの別の1つに、パケットをルーティングするように構成される、例26に記載の回路パッケージ。
【0129】
28.前記処理要素は、規則的なグリッドに配置され、前記パケット内のルーティング情報は、前記パケットの送信先である処理要素に対する、前記グリッドに沿った第1の次元及び第2の次元における相対位置を指定する、例26又は27に記載の回路パッケージ。
【0130】
29.各双方向フォトニックチャネルは、前記第1の次元又は前記第2の次元の一方について、前記グリッドの直に隣接する処理要素の対を接続し、各処理要素の前記メッセージルータは、前記パケットを前記第1の次元に沿って直に隣接する処理要素にルーティングするとき、前記第1の次元における相対位置に関連するルーティング情報の値をデクリメントし、前記パケットを前記第2の次元に沿って直に隣接する処理要素にルーティングするとき、前記第2の次元における相対位置に関連するルーティング情報内の値をデクリメントするように構成される、例28に記載の回路パッケージ
【0131】
30.前記複数の双方向フォトニックチャネルは、前記処理要素を、少なくとも2つの次元を定義するグリッドトポロジを有するエレクトロフォトニックネットワークに接続するように構成され、前記パケット内のルーティング情報は、前記パケットの送信先である処理要素に対する、前記少なくとも2つの次元における座標を指定し、各処理要素の前記メッセージルータは、前記少なくとも2つの次元のうちの1つに沿って前記パケットをトポロジー的に直に隣接する処理要素にルーティングするとき、前記少なくとも2つの次元のうちの1つに関連する値をデクリメントすることによってパケット内のルーティング情報を修正する、例26から29のいずれかに記載の回路パッケージ。
【0132】
31.前記電子集積回路は、タイルの配列として構成され、前記タイルのそれぞれが前記処理要素の1つに対応する、例1から30のいずれかに記載の回路パッケージ。
【0133】
32.前記タイルは、矩形グリッドに配置された矩形タイルである、例31に記載の回路パッケージ。
【0134】
33.前記複数の双方向フォトニックチャネルは、前記矩形グリッド内の直に隣接するタイルの各ペアを直接接続して、前記エレクトロフォトニックネットワークの四辺形メッシュトポロジーをもたらすように構成される、例32に記載の回路パッケージ。
【0135】
34.前記複数の双方向フォトニックチャネルは、前記矩形グリッド内の非隣接タイルの1つ以上のペアをさらに直接接続するように構成されている、例33に記載の回路パッケージ。
【0136】
35.前記矩形グリッドの対向するエッジ上のタイルのペアを直接接続して、前記エレクトロフォトニックネットワークのラップトロイダルメッシュトポロジーをもたらすように構成されている双方向フォトニックチャネルをさらに含む、例33から35のいずれかに記載の回路パッケージ。
【0137】
36.前記双方向フォトニックチャネルは、前記処理要素を立方格子トポロジーを有するエレクトロフォトニックネットワークに接続するように構成される、例1から35のいずれかに記載の回路パッケージ。
【0138】
37.エレクトロフォトニックネットワークの第1の電子処理要素において、ヘッダとペイロードとを有する電子パケットを生成するステップであって、前記ヘッダ又は前記ペイロードの一部が、前記エレクトロフォトニックネットワークの送信先電子処理要素に関連するルーティング情報を含む、ステップと、
前記ルーティング情報に基づいて、前記第1の電子処理要素から、エレクトロフォトニックネットワークの1つ以上の中間電子処理要素を経由して送信先電子処理要素に至るパスを決定するステップであって、前記第1の電子処理要素、前記送信先電子処理要素、及び前記中間電子処理要素は、関連するフォトニックチャネルによって接続される、ステップと、
前記第1の電子処理要素において、パケットを、フォトニックチャネルの1つを経由して前記パスに沿った第1の中間電子処理要素に接続されたポートにルーティングし、前記パケットを、前記第1の中間電子処理要素に送信するために電子信号から光信号に変換するステップと、
前記1つ以上の中間電子処理要素のそれぞれにおいて、光信号を電子信号に変換し直し、当該電子信号を、前記フォトニックチャネルの1つを介して、前記中間電子処理要素、及び前記送信先電子処理要素のうち前記パスに沿って次にある処理要素に接続されたポートにルーティングし、電子信号を、前記パスに沿って次にある処理要素への送信のために光信号に変換するステップと、
前記送信先電子処理要素において、前記光信号を前記電子信号に変換するステップと、
を含む方法。
【0139】
38.各電子信号を光信号に変換することは、それぞれの前記電子処理要素の変調器ドライバを操作して、フォトニックチャネルの関連する変調器に前記パケットにしたがって前記光信号を変調させることを含み、前記光信号を電子信号に変換することは、前記フォトニックチャネルの光検出器によって光信号を測定することを含む、例37に記載の方法。
【0140】
39.前記第1の電子処理要素、前記中間電子処理要素、及び前記送信先電子処理要素のそれぞれがルータを含み、前記エレクトロフォトニックネットワークを通る前記パスが、前記第1の電子処理要素、前記中間電子処理要素、及び前記送信先電子処理要素の前記ルータによって集合的に決定される、例37又は38に記載の方法。
【0141】
40.前記ルーティング情報は、前記送信先電子処理要素に対する第1の次元及び第2の次元における相対的な位置の観点から前記送信先を指定し、前記方法は、前記第1の電子処理要素又は前記中間電子処理要素のいずれかから前記パスに沿った前記次の電子処理要素への前記パケットの送信に応答して、前記パケット内の前記ルーティング情報を修正することをさらに含む、例39に記載の方法。
【0142】
41.前記第1の電子処理要素、前記中間電子処理要素、及び前記送信先電子処理要素の前記ルータは、それぞれ、ローカルポートと、それぞれの前記電子処理要素を前記エレクトロフォトニックネットワーク内の複数の他の電子処理要素に接続する複数のフォトニックチャネルに関連するポートとを含み、前記第1の電子処理要素及び前記中間電子処理要素の前記ルータはそれぞれ、前記パケットを、前記パスに沿って前記次の電子処理要素に接続された前記フォトニックチャネルに関連する前記ポートに導き、前記送信先電子処理要素の前記ルータは、前記パケットをそのローカルポートに導く、例39又は40に記載の方法。
【0143】
42.システムであって、
前記システムは、第1の回路パッケージと第2の回路パッケージとを含み、前記第1の回路パッケージと前記第2の回路パッケージはそれぞれ、
複数の処理要素と、メッセージを送受信可能な複数のメッセージルータとを含む電子集積回路(EIC)と、
前記メッセージルータを、前記メッセージについて動作可能なチップ内エレクトロフォトニックネットワークに接続する複数のチップ内双方向フォトニックチャネルを含み、
前記システムは、さらに、前記第1の回路パッケージと前記第2の回路パッケージの前記メッセージルータを、前記第1の回路パッケージのEICから前記第2の回路パッケージのEICにメッセージを送信できるチップ間エレクトロフォトニックネットワークに接続する複数のチップ間双方向フォトニックチャネルと、
を含む、システム。
【0144】
43.それぞれの回路パッケージは、EICが実装される電子回路層と、チップ内双方向フォトニックチャネルが実装されるフォトニック回路層とを含む、例42に記載のシステム。
【0145】
44.それぞれの回路パッケージは、前記電子回路層を実装する第1の半導体チップと、前記フォトニック回路層を実装する第2の半導体チップとを含む、例43に記載のシステム。
【0146】
45.それぞれの回路パッケージの前記複数のチップ内双方向フォトニックチャネルは、前記回路パッケージのフォトニック集積回路(PIC)内の光導波路を使用して実装される、例42から44のいずれかに記載のシステム。
【0147】
46.前記チップ内双方向フォトニックチャネルはそれぞれ、それぞれの方向に1つ以上のフォトニックリンクを含み、各フォトニックリンクは、前記PICにおいて、フォトニックリンクの入力端にある光変調器と、フォトニックリンクの出力端にある光検出器と、光変調器と光検出器とを接続する光導波路とを含む、例42から45のいずれかに記載のシステム。
【0148】
47.前記メッセージルータは、前記双方向フォトニックチャネルの1つとインターフェース接続するためのフォトニック回路インターフェースをそれぞれ含み、各フォトニック回路インターフェースは、フォトニックリンクの入力端でインターフェース接続する各フォトニックリンク用の変調器ドライバと、フォトニックリンクの出力端でインターフェース接続する各フォトニックリンク用のトランスインピーダンス増幅器とを含む、例46に記載のシステム。
【0149】
48.前記複数のチップ間双方向フォトニックチャネルは、光ファイバーを用いて実装される、例46又は47に記載のシステム。
【0150】
49.前記第1の回路パッケージと前記第2の回路パッケージはそれぞれ、光ファイバーを介して前記第1の回路パッケージのエレクトロフォトニックネットワークを前記第2の回路パッケージのエレクトロフォトニックネットワークに結合するための1つ以上の光結合構造を含む、例48に記載のシステム。
【0151】
50.前記光カプラは、前記PICにおけるエッジカプラを含む、例49に記載のシステム。
【0152】
51.前記光結合構造は、前記PICにおけるグレーティングカプラ上に配置されたファイバーアタッチユニット(FAU)を含む、例49又は50に記載のシステム。
【0153】
52.前記チップ間双方向フォトニックチャネルは、多重化された光信号を送信するように構成されている、例48から51のいずれかに記載のシステム。
【0154】
53.前記チップ間双方向フォトニックチャネルはそれぞれ、それぞれの方向への各方向フォトニックチャネルを含み、前記第1の回路パッケージの第1のPICと前記第2の回路パッケージの第2のPICとの間の各方向フォトニックチャネルは、
前記第1のPICにおいて、複数のそれぞれの波長で変調光信号を生成する複数の光変調器と、前記複数の波長で生成された前記変調光信号を単一の多重化された光信号に結合するマルチプレクサと、前記多重化された光信号を前記光ファイバーに結合する光結合構造と、
前記第2のPICにおいて、前記多重化された光信号を前記光ファイバーから前記第2のPICに結合する光結合構造と、多重化された光信号を複数の波長における変調光信号にデマルチプレクスするデマルチプレクサと、前記複数の波長における前記変調光信号を測定する複数のそれぞれの光検出器と、
を含む、例52に記載のシステム。
【0155】
54.前記チップ内双方向フォトニックチャネルの変調器に光キャリア信号を供給するための少なくとも1つの単一波長光源と、前記チップ間双方向フォトニックチャネルの変調器のグループに複数の波長で光キャリア信号を供給するための少なくとも1つの複数波長光源と、
をさらに含む、例42から53のいずれかに記載のシステム。
【0156】
55.前記少なくとも1つの単一波長光源と前記少なくとも1つの複数波長光源は、前記回路パッケージに統合された光源を含む、例54に記載のシステム。
【0157】
56.前記少なくとも1つの単一波長光源と前記少なくとも1つの複数波長光源は、前記回路パッケージの外部に設けられ、1つ以上の複数の光ファイバーを介して前記回路パッケージにおける1つ以上のPICに光学的に結合する光源を含む、例54に記載のシステム。
【0158】
57.複数の関連する処理要素を有する関連するEICを有する複数の追加的な回路パッケージをさらに含み、前記第1の回路パッケージ、前記第2の回路パッケージ、及び前記追加的な回路パッケージは、四辺形グリッドに配置されている、例42から56のいずれかに記載のシステム。
【0159】
58.前記チップ内双方向フォトニックチャネルと前記チップ間双方向フォトニックチャネルはそれぞれ、前記四辺形グリッド内で直に隣接する処理要素のペアを接続し、前記チップ間エレクトロフォトニックネットワークの四辺形メッシュトポロジーをもたらす、例57に記載のシステム。
【0160】
59.前記複数のチップ間双方向フォトニックチャネルは、前記四辺形グリッドの反対側の端にある処理要素のペアを直接接続して、拡張可能なラップトロイダルメッシュトポロジーを有するエレクトロフォトニックネットワークを形成するようにさらに構成される、例58に記載のシステム。
【0161】
60.前記メッセージルータが、前記チップ間エレクトロフォトニックネットワークと前記チップ内エレクトロフォトニックネットワークを介して前記メッセージをルーティングするように構成され、前記メッセージが第1の処理要素から双方向フォトニックチャネルを介して前記第1の処理要素と直接接続されていない第2の処理要素に送信されるとき、前記電子が、1つ以上の第3の処理要素を通るパスに沿って前記第2の処理要素にルーティングされ、前記メッセージが、前記第3の処理要素のそれぞれで光学ドメインから電子ドメインに変換され、前記それぞれの第3の処理要素に関連するメッセージルータで光学ドメインに戻される、例42から59のいずれかに記載のシステム。
【0162】
61.前記メッセージルータは、ルーティング情報に関連する前記メッセージの一部に基づき、各メッセージの前記エレクトロフォトニックネットワークを通るパスを決定するように構成される、例60に記載のシステム。
【0163】
62.関連する重みのセットを有する複数のニューラルノードを含む人工ニューラルネットワーク(ANN)を実装する処理デバイスであって、該処理デバイスは、
双方向フォトニックチャネルによって接続された複数の電子処理要素を含むエレクトロフォトニックネットワークであって、各処理要素は、1つ以上の処理エンジンと、前記1つ以上の処理エンジンに通信可能に結合されたメモリと、前記双方向フォトニックチャネルのうちの2つ以上にインターフェース接続され、前記メモリに通信可能に結合されたメッセージルータと、を含み、
前記ANNの各ニューラルノードは、1つ以上の処理要素によって実装され、
各ニューラルノードに関連する重みのセットが、前記ニューラルノードを実装する1つ以上の処理要素の前記メモリに記憶され、
前記メッセージルータは、前記ニューラルノード間の活性値の所定のフローに基づいて、前記ANNの実行中に前記各ニューラルノードを実装する処理要素間で複数の活性値をストリーミングするように構成され、
各処理要素内の前記1つ以上の処理エンジンは、前記処理要素によって実装された各ニューラルノードについて、前記処理要素の前記メモリに記憶された前記関連する重みのセットと、前記ANNの実行中にノードの出力活性値を生成するために処理要素にストリーミングされたそのノードへの入力活性値とに対する計算を実行するように構成される、処理デバイス。
【0164】
63.各処理要素が1つ以上のニューラルノードを実装する、例62に記載の処理デバイス。
【0165】
64.前記ニューラルノードの少なくとも1つが、前記処理要素の複数によって共同で実装される、例62又は63に記載の処理デバイス。
【0166】
65.同じ処理要素によって実装されたニューラルノード間の活性値は、前記処理要素のメモリを介して交換され、異なる処理要素によって実装されたニューラルノード間の活性値は、双方向フォトニックチャネルのうち関連する双方向フォトニックチャネルを介して交換される、例62から64のいずれかに記載の処理デバイス。
【0167】
66.前記1つ以上の処理エンジンが、積和演算(MAC)を実行するように構成された乗算器と加算器の組合せツリーを実装するドット積エンジンを備える、例62から65のいずれかに記載の処理装置。
【0168】
67.前記1つ以上の処理エンジンは、非線形活性値を計算するように構成されたテンソルエンジンをさらに含む、例66に記載の処理デバイス。
【0169】
68.前記複数の電子処理要素は、複数の前記電子処理要素を含む1つ以上の電子集積回路(EIC)上に実装され、前記電子処理要素と各EICとを接続する前記双方向フォトニックチャネルは、前記EICと積層された関連フォトニック集積回路(PIC)における光導波路として実装される、例62から67のいずれかに記載の処理デバイス。
【0170】
69.各EICとそれに関連するPICがシステムインパッケージ(SIP)として一緒にパッケージされる、例68に記載の処理デバイス。
【0171】
70.前記複数の電子処理要素は複数のEIC上に実装され、前記複数のEICのうち異なる複数のEIC上の電子処理要素を接続する前記双方向フォトニックチャネルは、光ファイバーを用いて実装される、例68又は69に記載の処理装置。
【0172】
71.前記複数の電子処理要素は、四辺形のグリッドに配置され、前記双方向フォトニックチャネルは、前記グリッド内の直に隣接する処理要素のペアを接続して、前記エレクトロフォトニックネットワークの四辺形のメッシュトポロジーをもたらすように集合的に構成される、例68から70のいずれかに記載の処理デバイス。
【0173】
72.関連する所定の重みを有する複数のニューラルノードを含む人工ニューラルネットワーク(ANN)を実装する方法であって、該方法は、
双方向フォトニックチャネルによって接続された複数の処理要素を含むエレクトロフォトニックネットワークに接続するステップであって、各処理要素が、1つ以上の処理エンジンと、前記1つ以上の処理エンジンに通信可能に結合されたメモリと、2つ以上のフォトニックチャネルインターフェースと前記メモリと結合する通信カプリングとを含むメッセージルータとを含む、ステップと、
実行前に、前記ニューラルノードと前記処理要素との間の割り当てに基づいて、各ニューラルノードに関連付けられた所定の重みを、前記ニューラルノードを実装するように割り当てられた1つ以上の処理要素の前記メモリにロードするステップと、
実行時に前記メッセージルータを使用して、前記割り当て及び前記ANN内の前記ニューラルノード間の活性値の所定のフローに基づいて、処理要素によって実装されたニューラルノード間で活性値をルーティングするステップであって、前記処理要素のうちの異なる送信元要素及び送信先要素によって実装されたノード間でルーティングされた活性値が変換され、前記送信元要素から前記送信先要素までのパスに沿った任意の中間処理要素及び前記送信元要素において、双方向フォトニックチャネルを介した送信のために電気的形態から光学的形態に変換され、前記パスに沿った任意の中間処理要素及び前記送信先要素において、光学的形態から電気的形態に変換される、ステップと、
を含む、方法。
【0174】
73.前記重みは、前記エレクトロフォトニックネットワークの外部のメモリからPCIEインターフェースを介して前記処理要素の前記メモリにロードされる、例72に記載の方法。
【0175】
74.共有処理要素によって実装されたニューラルノード間の活性値が、前記処理要素内で電子的に転送される、例72又は73に記載の方法。
【0176】
75.前記ニューラルノードと前記処理要素との間の前記割り当ては、コンパイル時に決定される、例72から74のいずれかに記載の方法。
【0177】
76.前記エレクトロフォトニックネットワークを、
例72に記載のように構成されたルータによって行われるルーティング決定にしたがって、前記処理要素間の活性値をストリームし、
各ノードについて、前記ノードを実装するために割り当てられた前記1つ以上の処理要素の1つ以上の処理エンジンを使用して、関連する重み及び前記ノードにストリーミングされる入力活性値に対して計算を実行する、
ように動作させるステップをさらに含む、例72から75のいずれかに記載の方法。
【0178】
77.電力消費を低減するために、前記活性値のフローに基づいて前記双方向フォトニックチャネル内のフォトニックリンクを選択的に活性化するステップをさらに含む、例72から76のいずれかに記載の方法。
【0179】
78.それぞれの双方向フォトニックチャネルが複数のフォトニックリンクを含み、それぞれのチャネルの前記リンクの1つがマスターリンクとして機能するようにアクティブに維持される、例77記載の方法。
【0180】
79.例72から78のいずれかに記載の方法であって、それぞれの双方向フォトニックチャネルはそれぞれの方向の複数のフォトニックリンクを含み、前記方法はさらに、前記エレクトロフォトニックネットワークの初期化中に、前記双方向フォトニックチャネルの少なくともいくつかに論理チャネルを確立するステップを含み、双方向フォトニックチャネルに論理チャネルを確立するステップは、その双方向フォトニックチャネル内のそれぞれの方向のフォトニックリンクを結合してリンクの結合グループを形成することを含む、方法。
【0181】
80.機能しないフォトニックリンクは結合グループから省かれる、例79に記載の方法。
【0182】
81.前記結合グループにおけるフォトニックリンクの数は、前記ANNの実装に関連する帯域幅要件に基づいて決定される、例79又は80に記載の方法。
【0183】
82.ハードウェア回路であって
複数の行及び複数の列を有する組合せツリーであって、前記組合せツリーは、当該組合せツリーの第1の列で受信された入力値に基づいて1つ以上のドット積値を生成するために複数のハードウェアユニットを使用する、組合せツリーと、
前記入力値を記憶するための第1のメモリデバイスと、
前記第1のメモリデバイスから前記入力値を取得し、スイッチファブリックにおいて前記入力値を再編成するように構成されたシーケンサと、
前記再編成された入力値の一部が前記スイッチファブリックから前記組合せツリーの前記第1の列に提供される時間を制御するように構成されたクロックと、
複数のハードウェアユニットであって、各ハードウェアユニットが、1つ以上のドット積値を累積するように構成されたアキュムレータを含み、前記クロックによって規定される1つ以上の後続の期間中に、前記再編成された入力値の追加の部分が、前記第1の列に関連づけられたハードウェアユニットのアキュムレータに提供され、前記クロックによって制御される1つ以上の追加の期間中に、前記第1の列の前記ハードウェアユニットの前記アキュムレータのそれぞれに関連付けられた値が、前記第1のメモリデバイスに書き込まれる、複数のハードウェアユニットと、
を含む、ハードウェア回路。
【0184】
83.前記ハードウェアユニットは、少なくとも1つの融合型MAC(FMA)ユニットを含む、例82に記載のハードウェア回路。
【0185】
84.前記組合せツリーは、前記入力値を受信し、前記第1の列によって受信された前記入力値に基づいて前記1つ以上のドット積値を生成するように構成されたドット積ユニットのアレイを含み、前記アレイの単一のドット積ユニットは、前記ハードウェアユニットのうちの2つ以上のハードウェアユニットを含む、例82から84のいずれかに記載のハードウェア回路。
【0186】
85.例84に記載のハードウェア回路であって、前記ハードウェア回路は、制御回路をさらに備え、前記ドット積ユニットのアレイは、データパスを含み、前記制御回路は、前記データパスを使用して、前記アレイの2つの隣接する列間で少なくとも2つの重み値を入れ替えさせるか、又は、前記アレイの第1の行から前記アレイの第2の行に重み値を伝搬させるように構成される、ハードウェア回路。
【0187】
86.前記シーケンサは、前記組合せツリーを前記第1のメモリデバイスに動作可能に結合する前記スイッチファブリックを含む、例82から85のいずれかに記載のハードウェア回路。
【0188】
87.前記シーケンサは、パラメータのセットに基づいて前記第1の列に提供される入力ベクトルのシーケンスを決定し、前記パラメータのセットは、ストライド値、ダイレーション値、又はカーネルサイズ値のうちの少なくとも1つを含む、例82から86のいずれかに記載のハードウェア回路。
【0189】
88.前記シーケンサは、1つ以上のクロックサイクル中に前記第1のメモリデバイスから読み出された複数の重み値及び複数のオペランド値を読み出すことによって、入力ベクトルのシーケンスの個々の入力ベクトルを生成するように構成され、前記個々の入力ベクトルは、前記複数の重み値及び前記複数のオペランド値から構成される、例82から87のいずれかに記載のハードウェア回路。
【0190】
89.前記第1のメモリデバイスはメモリバンクを含み、前記1つ以上のクロックサイクルの間に前記シーケンサによって読み出される前記複数の重み値及び前記複数のオペランド値は、
前記複数の重み値及び前記複数のオペランド値が、前記メモリバンクからの受信後に、前記スイッチファブリックにおける前記シーケンサによって並び替えられ、前記重み値及び前記オペランド値のそれぞれは、前記シーケンサによってシングルパスで読み取られるように、
読み出しのために選択される、例88に記載のハードウェア回路。
【0191】
90.前記第1のメモリデバイスはメモリバンクを含み、1つ以上のクロックサイクルの間に前記シーケンサによって読み出される前記複数の重み値及び前記複数のオペランド値は、
前記複数の重み値及び前記複数のオペランド値が、前記メモリバンクからの受信後に、前記スイッチファブリックにおける前記シーケンサによって並べ替えられ、前記重み値及び前記オペランド値のそれぞれは、前記シーケンサによってシングルパスで読み取られ、
データが前記メモリバンクの各々から読み出され、前記メモリバンクの行の数は、組合せツリーの最初の列における行の数と実質的に等しいように、
読み出しのために選択される、例88に記載のハードウェア回路。
【0192】
91.前記シーケンサによる、前記第1のメモリデバイスの連続的な読み出しのそれぞれは、前のクロックサイクルの間に前記シーケンサによって読み出されなかった、前記第1のメモリデバイスからの新しい重み値及び新しいオペランド値の読み出しをもたらす、例88に記載のハードウェア回路。
【0193】
92.単一のハードウェアユニットが、当該単一のハードウェアユニットによって生成された出力値が少なくとも2つの隣接するハードウェアユニットのそれぞれへの入力値として共有されるように、前記少なくとも2つの隣接するハードウェアユニットに動作可能に結合されている、例82から91のいずれかに記載のハードウェア回路。
【0194】
93.前記アキュムレータは、単一のハードウェアユニットを値が流れるときに、前記単一のハードウェアユニットによって生成された部分ドット積値をアキュムレートするように構成された複数のアキュムレータを含む、例82から92のいずれかに記載のハードウェア回路。
【0195】
94.前記組合せツリーは、前記ハードウェアユニットを流れる値のクロックアライメントを維持するように構成された、前記ハードウェアユニットに関連するレジスタを含む、例82から93のいずれかに記載のハードウェア回路。
【0196】
95.例82から94のいずれかに記載のハードウェア回路であって、当該ハードウェア回路は、一連の入力ベクトルのすべてが前記組合せツリーに入力された後に、入力値に対する最終ドット積値のセットを生成するように構成されたロジックを含み、前記最終ドット積値のセットは、前記組合せツリーの前記ハードウェアユニットのアキュムレータに格納された値から構築される、ハードウェア回路。
【0197】
96.前記ロジックは、前記最終ドット積値のセットを前記第1のメモリデバイスに格納するように構成される、例95に記載のハードウェア回路。
【0198】
97.前記入力値は、少なくとも1つの重み値と少なくとも1つのオペランド値を含む、例82から96のいずれかに記載のハードウェア回路。
【0199】
98.前記ハードウェア回路は、光集積回路(PIC)の一部である、例82から97のいずれかに記載のハードウェア回路。
【0200】
99.方法であって、当該方法は、
シーケンサによって、該シーケンサに動作可能に結合されたメモリデバイスのセットから、第1の複数の重み値と第1の複数のオペランド値を読み出すステップと、
組合せツリーの第1の列において、前記シーケンサから複数の第1の入力ベクトルを受信するステップであって、前記第1の複数の入力ベクトルは、前記第1の複数の重み値と前記第1の複数のオペランド値とを含む、ステップと、
前記組合せツリーの前記第1の列において、数学ユニットによって前記第1の複数の入力ベクトルを処理するステップであって、前記数学ユニットは、前記入力ベクトルのそれぞれに関連付けられ、前記数学ユニットのそれぞれは、少なくとも1つのアキュムレータを有し、前記組合せツリーは、該組合せツリーの前記第1の列で前記数学ユニットによって受信された値に基づいて、前記数学ユニットのそれぞれのアキュムレータにドット積値を生成するように構成される、ステップと、
前記シーケンサによって、前記メモリデバイスのセットから第2の複数の重み値と第2の複数のオペランド値を読み出すステップと、
前記組合せツリーの前記第1の列において、前記シーケンサから第2の複数の入力ベクトルを受信するステップであって、前記第2の複数の入力ベクトルは、前記第2の複数の重み値と前記第2の複数のオペランド値とを含む、ステップと、
前記組合せツリーの前記第1の列の前記数学ユニットによって、前記第2の複数の入力ベクトルを処理するステップであって、前記第1の複数の入力ベクトルと前記第2の複数の入力ベクトルは、前記組合せツリーの前記第1の列の前記数学ユニットによって受信される入力ベクトルのシーケンスの一部である、ステップと、
前記入力ベクトルのシーケンスのすべてが、前記組合せツリーの前記第1の列によって受信され、関連する数学ユニットによって処理された後、前記組合せツリーの前記第1の列のすべての行に存在する前記数学ユニットのそれぞれのアキュムレータから値を取得することによって、最終的なドット積値のセットを提供するステップと、
を含む、方法。
【0201】
100.前記少なくとも1つのアキュムレータは、前記数学ユニットのそれぞれにおける複数のアキュムレータを含み、前記複数のアキュムレータは、値が前記数学ユニットのそれぞれを流れるときに、前記数学ユニットのそれぞれによって生成された部分ドット積値をアキュムレートするように構成される、例99に記載の方法。
【0202】
101.ハードウェア回路であって、該ハードウェア回路は、
ドット積ユニットのアレイによって入力として受け取られた重み値と活性値に基づいてドット積値を生成する組合せツリーとして構成されたドット積ユニットのアレイであって、当該ドット積ユニットのアレイは64行×32列のドット積ユニットを含み、各ドット積ユニットは、2つの8ビット値を入力として受け取るように構成され、アキュムレータを有する、ドット積ユニットのアレイと、
前記アレイをメモリデバイスのセットに動作可能に結合するスイッチファブリックであって、前記メモリデバイスのセットは、複数の重み値と複数の活性値を格納し、前記スイッチファブリックは、1つ以上のクロックサイクルからなる第1のクロックシーケンスの間に、前記アレイの第1の列に入力として64個の入力ベクトルを提供するように構成される、スイッチファブリックと、を含み、
1つ以上の追加のクロックシーケンスにより、前記スイッチファブリックは、複数の追加的な64個の入力ベクトルのセットを前記アレイの前記第1の列に提供するものであり、前記アレイの前記第1の列のアキュムレータのそれぞれが32ビットを有する場合に、それぞれのアキュムレータからのそれぞれの値を前記メモリデバイスのセットに書き出すステップを含む、ハードウェア回路。
【0203】
102.前記ドット積ユニットは、複数のFMAユニットを含む、例101に記載のハードウェア回路。
【0204】
103.前記ドット積ユニットは、32バイト入力を受け取るように構成される、例101又は102に記載のハードウェア回路。
【0205】
104.前記メモリデバイスのセットは、64個の32バイト幅メモリデバイスのバンクを含む、例101から103のいずれかに記載のハードウェア回路。
【0206】
105.回路パッケージであって、
フォトニックチャネルインターフェースを含む複数の処理要素を含む特定用途向け集積回路(ASIC)と、
前記フォトニックチャネルインターフェースを介して複数の処理要素を接続し、エレクトロフォトニックネットワークの少なくとも一部を形成する複数のフォトニックチャンネルであって、該複数のフォトニックチャンネルのうちの複数のサブフォトニックチャンネルは、前記複数の処理要素の個々の処理要素に接続されており、個々の処理要素は、
前記個々の処理要素に対して、前記複数のサブフォトニックチャネルからマスターフォトニックチャネルを選択し、
前記個々の処理要素に対して、前記複数のサブフォトニックチャネルからスレーブフォトニックチャネルのセットを選択し、
前記マスターフォトニックチャネルから受信クロック信号を抽出し、
前記受信クロック信号に基づいて、前記個々の処理要素で1つ以上のローカル動作を実行するために前記個々の処理要素によって使用されるローカルクロック信号を生成し、
前記スレーブフォトニックチャネルのセットを介して、分散クロック信号を、前記個々の処理要素に接続された複数の処理要素のセットに送信するように構成され、
前記分散クロック信号を送信することは、前記個々の処理要素のフォトニックチャネルインターフェースを使用して、分散クロック信号を電気的形態から光学的形態に変換することを含み、前記分散クロック信号は、前記スレーブフォトニックチャネルのセットにわたって送信され、前記複数の処理要素のセットによって関連するローカルクロック信号として使用されるのに適しており、前記分散クロック信号は、前記受信クロック信号に基づいて生成されるものである、回路パッケージ。
【0207】
106.前記個々の処理要素は、ジッタ減衰位相ロックループ(PLL)を含み、前記個々の処理要素は、前記ジッタ減衰PLLを使用して、前記受信クロック信号に基づいて低ジッタクロック信号を生成し、前記受信クロック信号に基づいて前記ローカルクロック信号を生成することは、前記低ジッタクロック信号に基づいて前記ローカルクロック信号を生成することを含む、例105に記載の回路パッケージ。
【0208】
107.前記個々の処理要素は、前記個々の処理要素のブート時間中に前記マスターフォトニックチャネルを選択する、例105又は106に記載の回路パッケージ。
【0209】
108.前記個々の処理要素は、前記個々の処理要素のブート時間中に前記スレーブフォトニックチャネルのセットを選択する、例105から107のいずれかに記載の回路パッケージ。
【0210】
109.前記個々の処理要素は
前記マスターフォトニックチャネルに対してチャネルアライメント動作を実行し、前記チャネルアライメント動作は、前記個々の処理要素の1つ以上の設定を調整してクロックスキューを補償するように構成される、例105から108のいずれかに記載の回路パッケージ。
【0211】
110.前記個々の処理要素は、前記マスターフォトニックチャネルを介して受信された受信ビットストリームに対してクロックデータリカバリーを実行することによって、前記マスターフォトニックチャネルから受信クロック信号を抽出する、例105から109のいずれかに記載の回路パッケージ。
【0212】
111.前記個々の処理要素は、前記処理要素のセットに1つ以上の発信ビットストリームを送信することによって、前記分散クロック信号を前記処理要素のセットに送信し、前記1つ以上の発信ビットストリームは、前記分散クロック信号に基づいて生成される、例105から110のいずれかに記載の回路パッケージにおいて、
【0213】
112.前記個々の処理要素は、テンソルプロセッサとDNNとを含み、前記テンソルプロセッサと前記DNNのそれぞれは、前記ローカルクロック信号に基づいて動作するように構成され、前記ローカルクロック信号を用いて、前記DNNと前記テンソルプロセッサとの間でパケットを転送することが可能である、例105から111に記載の回路パッケージ。
【0214】
113.前記個々の処理要素は、前記フォトニックチャネルインターフェースを含むメッセージルータを含み、前記メッセージルータは、前記ローカルクロック信号に基づいて動作するように構成される、例105から112のいずれかに記載の回路パッケージ。
【0215】
114.前記個々の処理要素は、少なくとも2つのベクトル間の1つ以上のドット積を計算するためのハードウェア回路を含み、前記ハードウェア回路は、前記ローカルクロック信号に基づいて動作するように構成される、例105から113のいずれかに記載の回路パッケージ。
【0216】
115.前記個々の処理要素が第1の処理要素であり、前記複数のサブフォトニックチャネルが第1の複数のサブフォトニックチャネルであり、前記マスターフォトニックチャネルが第1のマスターフォトニックチャネルであり、前記スレーブフォトニックチャネルのセットが第1のスレーブフォトニックチャネルのセットであり、前記受信クロック信号が第1の受信クロック信号であり、前記ローカルクロック信号が第1のローカルクロック信号であり、前記分散クロック信号が第1の分散クロック信号であり、
前記複数のフォトニックチャネルの第2の複数のサブフォトニックチャネルが、第2の処理要素に接続され、前記第2の処理要素は、前記第1の処理要素に接続された前記処理要素のセットに含まれ、前記複数のフォトニックチャネルの前記第2の複数のサブフォトニックチャネルが、前記第1の処理要素を前記第2の処理要素に接続する前記スレーブフォトニックチャネルのセットの個々のフォトニックチャネルを含み、前記第2の処理要素は、
前記第2の処理要素に対して、前記個々のフォトニックチャネルから第2のマスターフォトニックチャネルを選択し、
前記第2の処理要素に対して、前記第2の複数のサブフォトニックチャネルから第2のスレーブフォトニックチャネルのセットを選択し、
前記第2のマスターフォトニックチャネルから第2の受信クロック信号を抽出し、
前記第2の受信クロック信号に基づいて、前記第2の処理要素で1つ以上のローカル動作を実行するために前記第2の処理要素によって使用される第2のローカルクロック信号を生成し、
前記第2のスレーブフォトニックチャネルのセットを介して、第2の分散クロック信号を、前記第2の処理要素に接続された第2の複数の処理要素のセットに送信するように構成され、
前記第2の分散クロック信号を送信することは、前記個々の処理要素のフォトニックチャネルインターフェースを使用して、前記第2の分散クロック信号を電気的形態から光学的形態に変換することを含み、前記第2の分散クロック信号を送信することは、前記第2の複数の処理要素のセットにおいて、前記第2の分散クロック信号を光学的形態から電気的形態に変換することをさらに含み、前記第2の分散クロック信号は、前記第2のスレーブフォトニックチャネルのセットにわたって送信され、前記第2の複数の処理要素のセットによって関連するローカルクロック信号として使用するために適しており、前記第2の分散クロック信号は、前記第2の受信クロック信号に基づいて生成されるものである、例105から114のいずれかに記載の回路パッケージ。
【0217】
116.前記第1の処理要素は、第1のコンポーネントのセットを含み、前記第2の処理要素は、第2のコンポーネントのセットからなり、前記第1のコンポーネントのセットは、第1のテンソルプロセッサ、フォトニックチャネルインターフェースを含む第1のメッセージルータ、又は少なくとも2つのベクトル間の1つ以上の第1のドット積を計算するための第1のハードウェア回路のうちの少なくとも1つを含み、前記第2のコンポーネントのセットは、第2のテンソルプロセッサ、フォトニックチャネルインターフェースを含む第2のメッセージルータ、又は少なくとも2つのベクトル間の1つ以上の第2のドット積を計算するための第2のハードウェア回路のうちの少なくとも1つを含み、前記第1のコンポーネントのセットは、前記第1のローカルクロック信号に基づいて動作するように構成され、前記第2のコンポーネントのセットは、前記第2のローカルクロック信号に基づいて動作するように構成される、例115に記載の回路パッケージ。
【0218】
117.方法であって、
複数の処理要素の個々の処理要素によって、複数のフォトニックチャネルからマスターフォトニックチャネルを選択するステップであって、前記マスターフォトニックチャネルは、個々の処理要素のために選択され、前記複数の処理要素は、回路パッケージの特定用途向け集積回路(ASIC)の一部であり、前記複数の処理要素は、複数のフォトニックチャネルによって互いに接続され、前記回路パッケージ内のエレクトロフォトニックネットワークの少なくとも一部を形成する、ステップと、
前記個々の処理要素によって、前記複数のフォトニックチャネルからスレーブフォトニックチャネルのセットを選択するステップであって、前記スレーブフォトニックチャネルのセットは個々の処理要素に対して選択される、ステップと、
前記個々の処理要素によって、前記マスターフォトニックチャネルから受信クロック信号をデジタルフォーマットで抽出するステップと、
前記デジタルフォーマットの前記受信クロック信号に基づいて、前記個々の処理要素によって、前記ASICのデジタル部分を使用して前記個々の処理要素上で1つ以上のローカル動作を実行するために前記個々の処理要素によって使用されるローカルクロック信号を生成するステップと、
前記個々の処理要素によって、かつ前記スレーブフォトニックチャネルのセットを介して、前記個々の処理要素に接続された前記複数の処理要素のセットに分散クロック信号を送信するステップであって、前記分散クロック信号は、前記デジタルフォーマットの前記受信クロック信号に基づいて生成されるものであり、当該ステップは、
前記分散クロック信号をデジタルフォーマットから光フォーマットに変換するステップと、
前記分散クロック信号を光フォーマットで前記スレーブフォトニックチャネルのセットにルーティングするステップと、
前記複数の処理要素のセットのフォトニックインターフェースで光フォーマットの分散クロック信号を受信するステップと、
関連するフォトニックチャネルインターフェースを使用して、前記複数の処理要素のセットにおいて、前記分散クロック信号をデジタルフォーマットに変換するステップと
を含む、方法。
【0219】
118.前記個々の処理要素は、ジッタ減衰位相ロックループ(PLL)を含み、前記個々の処理要素は、前記ジッタ減衰PLLを使用して、前記受信クロック信号に基づいて低ジッタクロック信号を生成し、前記受信クロック信号に基づいて前記ローカルクロック信号を生成することは、前記低ジッタクロック信号に基づいて前記ローカルクロック信号を生成することを含む、例117記載の方法。
【0220】
119.前記マスターフォトニックチャネルを選択するステップは、前記個々の処理要素のブート時間中に実行される、例117又は118に記載の方法。
【0221】
120.前記スレーブフォトニックチャネルのセットを選択するステップは、前記個々の処理要素のブート時間中に実行される、例117から119のいずれかに記載の方法。
【0222】
121.前記個々の処理要素によって、前記マスターフォトニックチャネルに対してチャネルアライメント動作を実行するステップを含み、当該チャネルアライメント動作は、前記個々の処理要素の1つ以上の設定を調整してクロックスキューを補償するように構成される、例117から120のいずれかに記載の方法。
【0223】
122.前記マスターフォトニックチャネルから前記受信クロック信号を抽出するステップは、前記マスターフォトニックチャネルを介して受信された受信ビットストリームに対してクロックデータリカバリーを実行することを含む、例117から121のいずれかに記載の方法。
【0224】
123.前記分散クロック信号を前記処理要素のセットに送信するステップは、前記処理要素のセットに1つ以上の発信ビットストリームを送信することを含み、前記1つ以上の発信ビットストリームは、前記分散クロック信号に基づいて生成される、例117から122のいずれかに記載の方法。
【0225】
124.前記個々の処理要素は、コンポーネントのセットを含み、前記コンポーネントのセットは、テンソルプロセッサ、フォトニックチャネルインターフェースを含むメッセージルータ、又は少なくとも2つのベクトル間のドット積を計算するためのハードウェア回路のうちの少なくとも1つを含み、前記コンポーネントのセットは、前記ローカルクロック信号に基づいて動作するように構成される、例117から123のいずれかに記載の方法。
【0226】
以上の説明から、本願明細書に記載された概念を実施するために、それらの概念の範囲から逸脱することなく、様々な技術を使用できることが明らかである。さらに、概念は、特定の実装を具体的に参照して説明されてきたが、当業者であれば、これらの概念の範囲から逸脱することなく、形態及び詳細に変更を加えることができることを認識するであろう。このように、記載された実装態様は、全ての点で例示的なものであり、制限的なものではないと考えられる。また、本出願は、本明細書に記載された特定の実施態様に限定されるものではなく、本開示の範囲から逸脱することなく、多くの再配置、修正、及び置換が可能であることも理解されるべきである。
図1A
図1B
図1C
図2A
図2B
図3
図4
図5A
図5B
図6A
図6B
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16