(57)【要約】  システムおよび方法は、電子フォーマットで入力情報を提供することと、電子入力情報の少なくとも一部を光入力ベクトルに変換することと、光行列乗算に基づいて光入力ベクトルを光出力ベクトルに光学的に変換することと、光出力ベクトルを電子フォーマットに変換することと、電気的に変換された光出力ベクトルに非線形変換を電子的に適用して、電子フォーマットで出力情報を提供することとを含む。いくつかの例では、複数の入力値のセットは、光導波管によって搬送されるそれぞれの光信号上に符号化される。1つまたは複数の光信号の少なくとも2つのサブセットの各々に対して、1つまたは複数の複製モジュールの対応するセットは、1つまたは複数の光信号のサブセットを光信号の2つ以上の複製に分割する。1つまたは複数の光信号の第1のサブセットの少なくとも2つの複製の各々に対して、対応する乗算モジュールは、光振幅変調を使用して、第1のサブセットの1つまたは複数の光信号を1つまたは複数の行列要素値と乗算する。乗算モジュールのうちの2つ以上の結果に対して、加算モジュールは、乗算モジュールのうちの2つの以上の結果の合計を表す電気信号を生み出す。
2021527287.tif 000002
【特許請求の範囲】
【請求項１】
複数の変調器制御信号を生成するように構成される第1のユニットと、
プロセッサユニットであって、
複数の光出力を提供するように構成される光源と、
前記光源および前記第1のユニットに結合された複数の光変調器であって、前記複数の光変調器が、前記複数の変調器制御信号に基づいて前記光源によって提供される前記複数の光出力を変調することによって光入力ベクトルを生成するように構成され、前記光入力ベクトルが複数の光信号を含む、複数の光変調器と、
前記複数の光変調器および前記第1のユニットに結合された行列乗算ユニットであって、複数の重み制御信号に基づいて前記光入力ベクトルをアナログ出力ベクトルに変換するように構成される、行列乗算ユニットと
を備える、プロセッサユニットと、
前記行列乗算ユニットに結合され、前記アナログ出力ベクトルをデジタル化された出力ベクトルに変換するように構成される、第2のユニットと、
集積回路を備えるコントローラであって、前記集積回路が、
第1のデジタル入力ベクトルを含む入力データセットを含む人工ニューラルネットワーク計算要求を受信することと、
第1の複数のニューラルネットワーク重みを受信することと、
前記第1のユニットを通じて、前記第1のデジタル入力ベクトルに基づく第1の複数の変調器制御信号および前記第1の複数のニューラルネットワーク重みに基づく第1の複数の重み制御信号を生成することと
を含む動作を実行するように構成される、コントローラと
を備える、システム。
【請求項２】
前記第1のユニットがデジタルアナログコンバータ(DAC)を備える、請求項1に記載のシステム。
【請求項３】
前記第2のユニットがアナログデジタルコンバータ(ADC)を備える、請求項1または2に記載のシステム。
【請求項４】
データセットおよび複数のニューラルネットワーク重みを記憶するように構成されるメモリユニットを備える、請求項1から3のいずれか一項に記載のシステム。
【請求項５】
前記コントローラの前記集積回路が、前記入力データセットおよび前記第1の複数のニューラルネットワーク重みを前記メモリユニットに記憶することを含む動作を実行するようにさらに構成される、請求項4に記載のシステム。
【請求項６】
前記第1のユニットが、前記複数の重み制御信号を生成するように構成される、請求項1から5のいずれか一項に記載のシステム。
【請求項７】
前記コントローラが、特定用途向け集積回路(ASIC)を備え、
人工ニューラルネットワーク計算要求を受信することが、汎用データプロセッサから、人工ニューラルネットワーク計算要求を受信することを含む、請求項1から5のいずれか一項に記載のシステム。
【請求項８】
前記第1のユニット、前記プロセッサユニット、前記第2のユニット、および前記コントローラが、マルチチップモジュールまたは集積回路のうちの少なくとも1つに配設され、
人工ニューラルネットワーク計算要求を受信することが、第2のデータプロセッサから、人工ニューラルネットワーク計算要求を受信することを含み、前記第2のデータプロセッサが、前記マルチチップモジュールまたは前記集積回路の外部にあり、前記第2のデータプロセッサが、通信チャネルを通じて前記マルチチップモジュールまたは前記集積回路に結合され、前記プロセッサユニットが、前記通信チャネルのデータレートよりも少なくとも1桁高いデータレートでデータを処理可能である、請求項1から5のいずれか一項に記載のシステム。
【請求項９】
前記第1のユニット、前記プロセッサユニット、前記第2のユニット、および前記コントローラが、複数の反復に対して繰り返される光電子処理ループにおいて使用され、前記光電子処理ループが、
(1)前記複数の変調器制御信号のうちの少なくとも1つに基づく少なくとも第1の光変調動作、および前記重み制御信号のうちの少なくとも1つに基づく少なくとも第2の光変調動作、ならびに、
(2)(a)電気加算動作または(b)電気記憶動作のうちの少なくとも1つ
を含む、請求項1に記載のシステム。
【請求項１０】
前記光電子処理ループが前記電気記憶動作を含み、前記電気記憶動作が、前記コントローラに結合されたメモリユニットを使用して実行され、
前記コントローラによって実行される前記動作が、前記入力データセットおよび前記第1の複数のニューラルネットワーク重みを前記メモリユニットに記憶することをさらに含む、請求項9に記載のシステム。
【請求項１１】
前記光電子処理ループが前記電気加算動作を含み、前記電気加算動作が、前記行列乗算ユニット内の電気加算モジュールを使用して実行され、
前記電気加算モジュールが、それぞれのニューラルネットワーク重みと乗算された前記光入力ベクトルのそれぞれの要素の合計を表す前記アナログ出力ベクトルの要素に対応する電流を生成するように構成される、請求項9に記載のシステム。
【請求項１２】
前記光電子処理ループが少なくとも1つの信号経路を含み、前記少なくとも1つの信号経路では、前記複数の変調器制御信号のうちの少なくとも1つに基づく1回だけの第1の光変調動作と、前記重み制御信号のうちの少なくとも1つに基づく1回だけの第2の光変調動作とが、単一のループ反復において実行される、請求項9に記載のシステム。
【請求項１３】
前記第1の光変調動作が、前記光出力の前記光源および前記行列乗算ユニットに結合された前記複数の光変調器のうちの1つによって実行され、前記第2の光変調動作が、前記行列乗算ユニットに含まれる光変調器によって実行される、請求項12に記載のシステム。
【請求項１４】
前記光電子処理ループが少なくとも1つの信号経路を含み、前記少なくとも1つの信号経路では、1回だけの電気的な記憶が単一のループ反復において実行される、請求項9に記載のシステム。
【請求項１５】
前記光源が、前記複数の光出力を生成するように構成されるレーザーユニットを含む、請求項1に記載のシステム。
【請求項１６】
前記行列乗算ユニットが、
前記光入力ベクトルを受信するための入力導波管の列であって、前記光入力ベクトルが光信号の第1の列を含む、入力導波管の列と、
入力導波管の前記列と光学的に連絡しており、光信号の第2の列への前記光入力ベクトルの線形変換を実行するための、光干渉ユニットと、
前記光干渉ユニットと光学的に連絡しており、光信号の前記第2の列を導くための、出力導波管の列であって、前記入力導波管の列の中の少なくとも1つの入力導波管が、前記光干渉ユニットを介して前記出力導波管の列の中の各出力導波管と光学的に連絡している、出力導波管の列と
を備える、請求項1に記載のシステム。
【請求項１７】
前記光干渉ユニットが、
複数の相互接続されたマッハツェンダー干渉計(MZI)を備え、前記複数の相互接続されたMZIの中の各MZIが、
前記MZIの分割比を変更するように構成される第1の位相シフタと、
前記MZIの1つの出力の位相をシフトするように構成される第2の位相シフタと
を備え、前記第1の位相シフタおよび前記第2の位相シフタが前記複数の重み制御信号に結合される、請求項16に記載のシステム。
【請求項１８】
前記行列乗算ユニットが、
複数の複製モジュールであって、前記複数の複製モジュールの各々が、前記光入力ベクトルの1つまたは複数の光信号のサブセットに対応し、1つまたは複数の光信号の前記サブセットを前記光信号の2つ以上の複製に分割するように構成される、複数の複製モジュールと、
複数の乗算モジュールであって、前記複数の乗算モジュールの各々が、1つまたは複数の光信号のサブセットに対応し、光振幅変調を使用して前記サブセットの前記1つまたは複数の光信号を1つまたは複数の行列要素値と乗算するように構成される、複数の乗算モジュールと、
1つまたは複数の加算モジュールであって、各加算モジュールが、前記複数の乗算モジュールのうちの2つ以上の乗算モジュールの結果の合計を表す電気信号を生み出すように構成される、1つまたは複数の加算モジュールと
を備える、請求項1に記載のシステム。
【請求項１９】
前記複数の乗算モジュールのうちの少なくとも1つの乗算モジュールが、入力ポートおよび2つの出力ポートを含む光振幅変調器を備え、関連する光信号のペアが、前記関連する光信号の振幅間の差が入力値を符号付きの行列要素値と乗算した結果に対応するように、前記2つの出力ポートから提供される、請求項18に記載のシステム。
【請求項２０】
前記行列乗算ユニットが、前記入力ベクトルを、前記1つまたは複数の行列要素値を含む行列と乗算するように構成される、請求項18または19に記載のシステム。
【請求項２１】
複数の出力値のセットが、前記1つまたは複数の加算モジュールによって生み出されるそれぞれの電気信号上に符号化され、複数の出力値の前記セットの中の出力値が、前記入力ベクトルが前記行列と乗算されることに起因する出力ベクトルの要素を表す、請求項20に記載のシステム。
【請求項２２】
前記システムが、前記入力データセットおよび前記ニューラルネットワーク重みを記憶するように構成されるメモリユニットを備え、前記第2のユニットがアナログデジタルコンバータ(ADC)ユニットを備え、前記動作が、
前記ADCユニットから、前記行列乗算ユニットの前記アナログ出力ベクトルに対応する第1の複数のデジタル化された出力を取得することであって、前記第1の複数のデジタル化された出力が第1のデジタル出力ベクトルを形成する、ことと、
前記第1のデジタル出力ベクトルに対して非線形変換を実行して、第1の変換されたデジタル出力ベクトルを生成することと、
前記第1の変換されたデジタル出力ベクトルを前記メモリユニットに記憶することと
をさらに含む、請求項1から21のいずれか一項に記載のシステム。
【請求項２３】
前記システムが、前記入力データセットおよび前記第1の複数のニューラルネットワーク重みを前記メモリユニットに記憶することと、前記第1の変換されたデジタル出力ベクトルを前記メモリユニットに記憶することとの間に経過した時間として定義される、第1のループ期間を有し、
前記第1のループ期間が1ns以下である、請求項22に記載のシステム。
【請求項２４】
前記動作が、
前記第1の変換されたデジタル出力ベクトルに基づいて生成された人工ニューラルネットワーク出力を出力することをさらに含む、請求項22または23に記載のシステム。
【請求項２５】
前記第1のユニットがデジタルアナログコンバータ(DAC)ユニットを備え、前記動作が、
前記DACユニットを通じて、前記第1の変換されたデジタル出力ベクトルに基づいて第2の複数の変調器制御信号を生成することをさらに含む、請求項22から24のいずれか一項に記載のシステム。
【請求項２６】
前記第1のユニットがデジタルアナログコンバータ(DAC)ユニットを備え、前記人工ニューラルネットワーク計算要求が第2の複数のニューラルネットワーク重みをさらに含み、前記動作が、
前記第1の複数のデジタル化された出力を取得したことに基づいて、前記DACユニットを通じて、前記第2の複数のニューラルネットワーク重みに基づいて第2の複数の重み制御信号を生成することをさらに含む、請求項22から25のいずれか一項に記載のシステム。
【請求項２７】
前記第1の複数のニューラルネットワーク重みおよび前記第2の複数のニューラルネットワーク重みが、人工ニューラルネットワークの異なる層に対応する、請求項26に記載のシステム。
【請求項２８】
前記第1のユニットがデジタルアナログコンバータ(DAC)ユニットを備え、前記入力データセットが第2のデジタル入力ベクトルをさらに含み、
前記動作が、
前記DACユニットを通じて、前記第2のデジタル入力ベクトルに基づいて第2の複数の変調器制御信号を生成することと、
前記ADCユニットから、前記行列乗算ユニットの前記出力ベクトルに対応する第2の複数のデジタル化された出力を取得することであって、前記第2の複数のデジタル化された出力が第2のデジタル出力ベクトルを形成する、ことと、
前記第2のデジタル出力ベクトルに対して非線形変換を実行して、第2の変換されたデジタル出力ベクトルを生成することと、
前記第2の変換されたデジタル出力ベクトルを前記メモリユニットに記憶することと、
前記第1の変換されたデジタル出力ベクトルおよび前記第2の変換されたデジタル出力ベクトルに基づいて生成された人工ニューラルネットワーク出力を出力することと
をさらに含み、
前記行列乗算ユニットの前記出力ベクトルが、前記第1の複数の重み制御信号に基づいて前記行列乗算ユニットによって変換される前記第2の複数の変調器制御信号に基づいて生成される、第2の光入力ベクトルに起因する、請求項22から27のいずれか一項に記載のシステム。
【請求項２９】
前記システムが、前記入力データセットおよび前記ニューラルネットワーク重みを記憶するように構成されるメモリユニットを備え、前記第2のユニットがアナログデジタルコンバータ(ADC)ユニットを備え、前記システムが、
前記行列乗算ユニットと前記ADCユニットとの間に配置されるアナログ非線形性ユニットをさらに備え、前記アナログ非線形性ユニットが、前記行列乗算ユニットから複数の出力電圧を受け取り、非線形伝達関数を適用し、複数の変換された出力電圧を前記ADCユニットに出力するように構成され、
前記コントローラの前記集積回路によって実行される前記動作が、
前記ADCユニットから、前記複数の変換された出力電圧に対応する第1の複数の変換されたデジタル化された出力電圧を取得することであって、前記第1の複数の変換されたデジタル化された出力電圧が第1の変換されたデジタル出力ベクトルを形成する、ことと、
前記第1の変換されたデジタル出力ベクトルを前記メモリユニットに記憶することと
をさらに含む、請求項1から28のいずれか一項に記載のシステム。
【請求項３０】
前記コントローラの前記集積回路が、8GHz以上のレートで前記第1の複数の変調制御信号を生成するように構成される、請求項1から29のいずれか一項に記載のシステム。
【請求項３１】
前記第1のユニットがデジタルアナログコンバータ(DAC)ユニットを備え、前記第2のユニットがアナログデジタルコンバータ(ADC)ユニットを備え、前記行列乗算ユニットが、
前記複数の光変調器および前記DACユニットに結合された光行列乗算ユニットであって、前記複数の重み制御信号に基づいて前記光入力ベクトルを光出力ベクトルに変換するように構成される、光行列乗算ユニットと、
前記光行列乗算ユニットに結合され、前記光出力ベクトルに対応する複数の出力電圧を生成するように構成される、光検出ユニットと
を備える、請求項1から17のいずれか一項に記載のシステム。
【請求項３２】
前記DACユニットと前記複数の光変調器との間に配置されるアナログメモリユニットであって、アナログ電圧を記憶し、記憶されている前記アナログ電圧を出力するように構成される、アナログメモリユニットと、
前記光検出ユニットと前記ADCユニットとの間に配置されるアナログ非線形性ユニットであって、前記光検出ユニットから前記複数の出力電圧を受け取り、非線形伝達関数を適用し、複数の変換された出力電圧を出力するように構成される、アナログ非線形性ユニットと
をさらに備える、請求項31に記載のシステム。
【請求項３３】
前記アナログメモリユニットが複数のキャパシタを備える、請求項32に記載のシステム。
【請求項３４】
前記アナログメモリユニットが、前記アナログ非線形性ユニットの前記複数の変換された出力電圧を受け取って記憶し、記憶されている前記複数の変換された出力電圧を前記複数の光変調器に出力するように構成され、
前記動作が、
前記第1の複数の変調器制御信号および前記第1の複数の重み制御信号を生成したことに基づいて、前記アナログ非線形性ユニットの前記複数の変換された出力電圧を前記アナログメモリユニットに記憶することと、
前記アナログメモリユニットを通じて、記憶されている前記複数の変換された出力電圧を出力することと、
前記ADCユニットから、第2の複数の変換されたデジタル化された出力電圧を取得することであって、前記第2の複数の変換されたデジタル化された出力電圧が第2の変換されたデジタル出力ベクトルを形成する、ことと、
前記第2の変換されたデジタル出力ベクトルを前記メモリユニットに記憶することと
をさらに含む、請求項32または33に記載のシステム。
【請求項３５】
前記システムが、前記入力データセットおよび前記ニューラルネットワーク重みを記憶するように構成されるメモリユニットを備え、前記人工ニューラルネットワーク計算要求の前記入力データセットが複数のデジタル入力ベクトルを含み、
前記光源が、複数の波長を生成するように構成され、
前記複数の光変調器が、
複数の光入力ベクトルを生成するように構成される光変調器のバンクであって、前記バンクの各々が、前記複数の波長のうちの1つに対応し、それぞれの波長を有するそれぞれの光入力ベクトルを生成する、バンクと、
前記複数の光入力ベクトルを、前記複数の波長を含む組み合わされた光入力ベクトルに組み合わせるように構成される光マルチプレクサと
を備え、
前記光検出ユニットが、前記複数の波長を逆多重化し、複数の逆多重化された出力電圧を生成するようにさらに構成され、
前記動作が、
前記ADCユニットから、複数のデジタル化された逆多重化された光出力を取得することであって、前記複数のデジタル化された逆多重化された光出力が複数の第1のデジタル出力ベクトルを形成し、前記複数の第1のデジタル出力ベクトルの各々が前記複数の波長のうちの1つに対応する、ことと、
前記複数の第1のデジタル出力ベクトルの各々に対して非線形変換を実行して、複数の変換された第1のデジタル出力ベクトルを生成することと、
前記複数の変換された第1のデジタル出力ベクトルを前記メモリユニットに記憶することと
を含み、
前記複数のデジタル入力ベクトルの各々が、前記複数の光入力ベクトルのうちの1つに対応する、請求項31に記載のシステム。
【請求項３６】
前記システムが、前記入力データセットおよび前記ニューラルネットワーク重みを記憶するように構成されるメモリユニットを備え、前記第2のユニットがアナログデジタルコンバータ(ADC)ユニットを備え、前記人工ニューラルネットワーク計算要求が複数のデジタル入力ベクトルを含み、
前記光源が、複数の波長を生成するように構成され、
前記複数の光変調器が、
複数の光入力ベクトルを生成するように構成される光変調器のバンクであって、前記バンクの各々が、前記複数の波長のうちの1つに対応し、それぞれの波長を有するそれぞれの光入力ベクトルを生成する、バンクと、
前記複数の光入力ベクトルを、前記複数の波長を含む組み合わされた光入力ベクトルに組み合わせるように構成される光マルチプレクサと
を備え、
前記動作が、
前記ADCユニットから、前記複数の波長を含む前記光出力ベクトルに対応する第1の複数のデジタル化された光出力を取得することであって、前記第1の複数のデジタル化された光出力が第1のデジタル出力ベクトルを形成する、ことと、
前記第1のデジタル出力ベクトルに対して非線形変換を実行して、第1の変換されたデジタル出力ベクトルを生成することと、
前記第1の変換されたデジタル出力ベクトルを前記メモリユニットに記憶することと
を含む、請求項1に記載のシステム。
【請求項３７】
前記第1のユニットがデジタルアナログコンバータ(DAC)ユニットを備え、前記第2のユニットがアナログデジタルコンバータ(ADC)ユニットを備え、前記DACユニットが、
複数の1ビット変調器制御信号を生成するように構成される1ビットDACサブユニットを備え、
前記ADCユニットの分解能が1ビットであり、
前記第1のデジタル入力ベクトルの分解能がNビットであり、
前記動作が、
前記第1のデジタル入力ベクトルをN個の1ビット入力ベクトルに分解することであって、前記N個の1ビット入力ベクトルの各々が前記第1のデジタル入力ベクトルの前記Nビットのうちの1つに対応する、ことと、
前記1ビットDACサブユニットを通じて、前記N個の1ビット入力ベクトルに対応するN個の1ビット変調器制御信号のシーケンスを生成することと、
前記ADCユニットから、前記N個の1ビット変調器制御信号の前記シーケンスに対応するN個のデジタル化された1ビット光出力のシーケンスを取得することと、
前記N個のデジタル化された1ビット光出力の前記シーケンスからNビットデジタル出力ベクトルを構築することと、
構築された前記Nビットデジタル出力ベクトルに対して非線形変換を実行して、変換されたNビットデジタル出力ベクトルを生成することと、
前記変換されたNビットデジタル出力ベクトルを前記メモリユニットに記憶することと
を含む、請求項1から36のいずれか一項に記載のシステム。
【請求項３８】
前記システムが、前記入力データセットおよび前記ニューラルネットワーク重みを記憶するように構成されるメモリユニットを備え、前記メモリユニットが、
前記デジタル入力ベクトルを記憶するように構成され、少なくとも1つのSRAMを備える、デジタル入力ベクトルメモリと、
前記複数のニューラルネットワーク重みを記憶するように構成され、少なくとも1つのDRAMを備える、ニューラルネットワーク重みメモリと
を備える、請求項1から37のいずれか一項に記載のシステム。
【請求項３９】
前記第1のユニットがデジタルアナログコンバータ(DAC）ユニットを備え、前記DACユニットが、
前記複数の変調器制御信号を生成するように構成される第1のDACサブユニットと、
前記複数の重み制御信号を生成するように構成される第2のDACサブユニットと
を備え、前記第1のDACサブユニットと前記第2のDACサブユニットとが異なる、請求項1から38のいずれか一項に記載のシステム。
【請求項４０】
前記光源が、
光を生成するように構成されるレーザー源と、
前記レーザー源によって生成された前記光を前記複数の光出力に分割するように構成される光パワー分割器と
を備え、前記複数の光出力の各々が実質的に等しいパワーを有する、請求項1から39のいずれか一項に記載のシステム。
【請求項４１】
前記複数の光変調器が、MZI変調器、リング共振変調器、または電界吸収型変調器のうちの1つを備える、請求項1から40のいずれか一項に記載のシステム。
【請求項４２】
前記光検出ユニットが、
複数の光検出器と、
前記光検出器によって生成された光電流を前記複数の出力電圧に変換するように構成される複数の増幅器と
を備える、請求項31に記載のシステム。
【請求項４３】
前記集積回路が特定用途向け集積回路である、請求項1から42のいずれか一項に記載のシステム。
【請求項４４】
前記光変調器と前記行列乗算ユニットとの間に結合される複数の光導波管を備え、前記光入力ベクトルが、前記複数の光導波管によって搬送されるそれぞれの光信号上に符号化される複数の入力値のセットを含み、前記複数の光導波管のうちの1つによって搬送される前記光信号の各々が、前記光信号のすべてに対して実質的に同一の共通の波長を有する光波を含む、請求項1および18から21のいずれか一項に記載の装置。
【請求項４５】
前記複製モジュールが、入力ポートにおける光波のパワーの所定の割合を第1の出力ポートに送り、前記入力ポートにおける前記光波の前記パワーの残りの割合を第2の出力ポートに送る、光分割器を備える少なくとも1つの複製モジュールを含む、請求項18から21および44のいずれか一項に記載の装置。
【請求項４６】
前記光分割器が、入力光導波管によって導かれる光波のパワーの所定の割合を第1の出力光導波管に送り、前記入力光導波管によって導かれる前記光波の前記パワーの残りの割合を第2の出力光導波管に送る、導波管光分割器を備える、請求項45に記載の装置。
【請求項４７】
前記入力光導波管の導波モードが、前記第1の出力光導波管および前記第2の出力光導波管の各々の伝搬モードに導波モードに断熱的に結合される、請求項46に記載の装置。
【請求項４８】
前記光分割器が、前記入力ポートにおける前記光波の前記パワーの前記所定の割合を伝達し、前記入力ポートにおける前記光波の前記パワーの前記残りの割合を反射する、少なくとも1つの面を含むビーム分割器を備える、請求項45から47のいずれか一項に記載の装置。
【請求項４９】
前記複数の光導波管のうちの少なくとも1つが、光ファイバの導波モードを自由空間の伝搬モードに結合する光カプラに結合された前記光ファイバを備える、請求項44から48のいずれか一項に記載の装置。
【請求項５０】
前記乗算モジュールが、少なくとも1つのコヒーレンスの影響を受けやすい乗算モジュールを含み、前記コヒーレンスの影響を受けやすい乗算モジュールが、前記コヒーレンスの影響を受けやすい乗算モジュールを通る伝播距離と少なくとも同じ長さのコヒーレンス長を有する光波間の干渉に基づく光振幅変調を使用して、前記第1のサブセットの前記1つまたは複数の光信号を1つまたは複数の行列要素値と乗算するように構成される、請求項1、18から21、および44から49のいずれか一項に記載の装置。
【請求項５１】
前記コヒーレンスの影響を受けやすい乗算モジュールが、マッハツェンダー干渉計(MZI)を備え、前記MZIが、入力光導波管によって導かれる光波を、前記MZIの第1の光導波管アームおよび前記MZIの第2の光導波管アームに分割し、前記第1の光導波管アームが、前記第2の光導波管アームの位相遅れに関する相対的な位相シフトを与える位相シフタを含み、前記MZIが、前記第1の光導波管アームおよび前記第2の光導波管アームからの光波を、少なくとも1つの出力光導波管へと組み合わせる、請求項50に記載の装置。
【請求項５２】
前記MZIが、前記第1の光導波管アームおよび前記第2の光導波管アームからの光波を、第1の出力光導波管および第2の出力光導波管の各々へと組み合わせ、第1の光検出器が、前記第1の出力光導波管からの光波を受信して第1の光電流を生成し、第2の光検出器が、前記第2の出力光導波管からの光波を受信して第2の光電流を生成し、前記コヒーレンスの影響を受けやすい乗算モジュールの結果が、前記第1の光電流と前記第2の光電流との差を含む、請求項51に記載の装置。
【請求項５３】
前記コヒーレンスの影響を受けやすい乗算モジュールが、第1の光導波管に結合された少なくとも1つのリング共振器および第2の光導波管に結合された少なくとも1つのリング共振器を含む、1つまたは複数のリング共振器を備える、請求項50から52のいずれか一項に記載の装置。
【請求項５４】
第1の光検出器が、前記第1の光導波管から光波を受信して第1の光電流を生成し、第2の光検出器が、前記第2の光導波管から光波を受信して第2の光電流を生成し、前記コヒーレンスの影響を受けやすい乗算モジュールの結果が、前記第1の光電流と前記第2の光電流との差を含む、請求項53に記載の装置。
【請求項５５】
前記乗算モジュールが、少なくとも1つのコヒーレンスの影響を受けにくい乗算モジュールを含み、前記コヒーレンスの影響を受けにくい乗算モジュールが、光波内のエネルギーの吸収に基づく光振幅変調を使用して、前記第1のサブセットの前記1つまたは複数の光信号を1つまたは複数の行列要素値と乗算するように構成される、請求項1、18から21、および44から54のいずれか一項に記載の装置。
【請求項５６】
前記コヒーレンスの影響を受けにくい乗算モジュールが電界吸収型変調器を備える、請求項55に記載の装置。
【請求項５７】
前記1つまたは複数の加算モジュールが、(1)その振幅が前記乗算モジュールのそれぞれ1つのそれぞれの結果を表す、入力電流の形式の電気信号を各々搬送する2つ以上の入力導体と、(2)前記入力電流の合計に比例する出力電流の形式で前記それぞれの結果の合計を表す電気信号を搬送する少なくとも1つの出力導体とを備える、少なくとも1つの加算モジュールを含む、請求項1、18から21、および44から56のいずれか一項に記載の装置。
【請求項５８】
前記2つ以上の入力導体および前記出力導体が、配線の1つまたは複数の交点において交わる前記配線を備え、前記出力電流が、前記入力電流の前記合計に実質的に等しい、請求項57に記載の装置。
【請求項５９】
前記入力電流のうちの少なくとも第1の入力電流が、前記乗算モジュールのうちの第1の乗算モジュールによって生成される光信号を受信する少なくとも1つの光検出器によって生成される少なくとも1つの光電流の形式で提供される、請求項57または58に記載の装置。
【請求項６０】
前記第1の入力電流が、前記第1の乗算モジュールによって両方とも生成される異なるそれぞれの光信号を受信する異なるそれぞれの光検出器によって生成される、2つの光電流間の差の形式で提供される、請求項59に記載の装置。
【請求項６１】
1つまたは複数の光信号の前記第1のサブセットの前記複製のうちの1つが、前記入力値のうちの1つがその上で符号化される単一の光信号からなる、請求項1から60のいずれか一項に記載の装置。
【請求項６２】
前記第1のサブセットの前記複製に対応する前記乗算モジュールが、符号化された前記入力値を単一の行列要素値と乗算する、請求項61に記載の装置。
【請求項６３】
1つまたは複数の光信号の前記第1のサブセットの前記複製のうちの1つが、それらの上で複数の入力値が符号化される、前記光信号のうちの1つよりも多数かつ前記光信号のすべてよりも少数を含む、請求項1、18から21、および44から62のいずれか一項に記載の装置。
【請求項６４】
前記第1のサブセットの前記複製に対応する前記乗算モジュールが、符号化された前記入力値を異なるそれぞれの行列要素値と乗算する、請求項63に記載の装置。
【請求項６５】
1つまたは複数の光信号の前記第1のサブセットの異なるそれぞれの複製に対応する異なる乗算モジュールが、前記異なるデバイス間で1つまたは複数の光信号の前記第1のサブセットの前記複製のうちの1つを送信するために光学的に連絡している異なるデバイスに格納される、請求項64に記載の装置。
【請求項６６】
前記複数の光導波管のうちの2つ以上、前記複数の複製モジュールのうちの2つ以上、前記複数の乗算モジュールのうちの2つ以上、および前記1つまたは複数の加算モジュールのうちの少なくとも1つが、共通のデバイスの基板上に配置される、請求項1、18から21、および44から65のいずれか一項に記載の装置。
【請求項６７】
前記デバイスが、ベクトル行列乗算を実行し、入力ベクトルが光信号のセットとして提供され、出力ベクトルが電気信号のセットとして提供される、請求項66に記載の装置。
【請求項６８】
乗算モジュールまたは加算モジュールの出力に対応する入力電気信号を統合する累算器をさらに備え、前記入力電気信号が、複数のタイムスロットの各々内でオンオフ振幅変調を使用する時間領域符号化を使用して符号化され、前記累算器が、前記複数のタイムスロットにわたり、前記時間領域符号化の異なるデューティ比に対応する2つよりも多くの振幅レベルを用いて符号化される、出力電気信号を生み出す、請求項1、18から21、および44から67のいずれか一項に記載の装置。
【請求項６９】
前記乗算モジュールの2つ以上が各々、1つまたは複数の光信号の異なるサブセットに対応する、請求項1、18から21、および44から68のいずれか一項に記載の装置。
【請求項７０】
1つまたは複数の光信号の前記第1のサブセットの中の光信号と異なる、1つまたは複数の光信号の第2のサブセットの各複製に対して、光振幅変調を使用して前記第2のサブセットの前記1つまたは複数の光信号を1つまたは複数の行列要素値と乗算するように構成される乗算モジュールをさらに備える、請求項1、18から21、および44から69のいずれか一項に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、2018年6月5日に出願された米国仮出願第62/680,944号、2018年10月12日に出願された米国仮出願第62/744,706号、2019年1月14日に出願された米国仮出願第62/792,144号、および2019年3月19日に出願された米国仮出願第62/820,562号の優先権を主張する。上記の出願の開示全体が、参照によって本明細書に組み込まれる。
【０００２】
本開示は、光電子コンピューティングシステムに関する。
【背景技術】
【０００３】
ニューロモルフィックコンピューティングは、脳の動作を電子領域で模擬する手法である。ニューロモルフィックコンピューティングに対する著名な手法は人工ニューラルネットワーク(ANN)であり、これは、脳の機能の仕方と類似した方法で情報を処理するように特定の方法で相互接続される人工ニューロンの集合体である。ANNは、人工知能、発話認識、テキスト認識、自然言語処理、および様々な形式のパターン認識を含む、広範囲の応用において用途を見出してきた。
【０００４】
ANNは、入力層、1つまたは複数の隠れ層、および出力層を有する。層の各々はノードまたは人工ニューロンを有し、ノードは層間で相互接続される。隠れ層の各ノードは、前の層のノードから受信された信号の加重和を実行し、加重和の非線形変換(「活性化」)を実行して出力を生成する。加重和は、行列乗算ステップを実行することによって計算され得る。したがって、ANNを計算することは複数の行列乗算ステップを通常は伴い、これは電子集積回路を使用して通常は実行される。
【０００５】
電気信号(たとえば、電圧または電流)上にアナログまたはデジタル形式で符号化される、電子データに対して実行される計算は、集積回路(たとえば、プロセッサ、特定用途向け集積回路(ASIC)、またはシステムオンチップ(SoC))において実装されるアナログもしくはデジタル電子装置、電子回路基板、または他の電子回路などの、電子コンピューティングハードウェアを使用して通常は実装される。長い距離にわたって、およびより短い距離(たとえば、データセンター内)にわたってデータを輸送するために、光信号が使用されてきた。そのような光信号に対して実行される動作は、ネットワークにおいて光信号を切り替えるため、またはフィルタリングするために使用されるデバイス内などでの、光データ輸送の文脈で発生することが多い。コンピューティングプラットフォームにおける光信号の使用はより限定的であった。全光コンピューティングのための様々なコンポーネントおよびシステムが提案されている。そのようなシステムは、入力において電気信号からの変換と、出力において電気信号への変換を含むことがあるが、計算において実行される重要な演算のために両方のタイプの信号(電気および光)を使用しないことがある。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】米国特許出願公開第2017/0351293号明細書
【発明の概要】
【課題を解決するための手段】
【０００７】
一般に、第1の態様において、システムは、データセットおよび複数のニューラルネットワーク重みを記憶するように構成されるメモリユニットと、複数の変調器制御信号を生成し複数の重み制御信号を生成するように構成されるデジタルアナログコンバータ(DAC)ユニットと、光プロセッサであって、複数の光出力を生成するように構成されるレーザーユニットと、レーザーユニットおよびDACユニットに結合される複数の光変調器であって、複数の変調器制御信号に基づいてレーザーユニットによって生成された複数の光出力を変調することによって光入力ベクトルを生成するように構成される、複数の光変調器と、複数の光変調器およびDACユニットに結合された光行列乗算ユニットであって、複数の重み制御信号に基づいて光入力ベクトルを光出力ベクトルに変換するように構成される、光行列乗算ユニットと、光行列乗算ユニットに結合され、光出力ベクトルに対応する複数の出力電圧を生成するように構成される、光検出ユニットとを含む、光プロセッサと、光検出ユニットに結合され、複数の出力電圧を複数のデジタル化された光出力に変換するように構成される、アナログデジタル変換(ADC)ユニットと、コンピュータから、入力データセットおよび第1の複数のニューラルネットワーク重みを含む人工ニューラルネットワーク計算要求を受信することであって、入力データセットが第1のデジタル入力ベクトルを含む、受信することと、メモリユニットに、入力データセットおよび第1の複数のニューラルネットワーク重みを記憶することと、DACユニットを通じて、第1のデジタル入力ベクトルに基づく第1の複数の変調器制御信号および第1の複数のニューラルネットワーク重みに基づく第1の複数の重み制御信号を生成することとを含む動作を実行するように構成される集積回路を含むコントローラとを含む。
【０００８】
システムの実施形態は、以下の特徴のうちの1つまたは複数を含み得る。たとえば、動作はさらに、ADCユニットから、光行列乗算ユニットの光出力ベクトルに対応する第1の複数のデジタル化された光出力を取得することであって、第1の複数のデジタル化された光出力が第1のデジタル出力ベクトルを形成する、取得することと、第1のデジタル出力ベクトルに対して非線形変換を実行して第1の変換されたデジタル出力ベクトルを生成することと、メモリユニットに、第1の変換されたデジタル出力ベクトルを記憶することとを含み得る。
【０００９】
システムは、メモリユニットに、入力データセットおよび第1の複数のニューラルネットワーク重みを記憶するステップと、メモリユニットに、第1の変換されたデジタル出力ベクトルを記憶するステップとの間に経過した時間として定義される、第1のループ期間を有し得る。第1のループ期間は1ns以下であり得る。
【００１０】
いくつかの実装形態では、動作はさらに、第1の変換されたデジタル出力ベクトルに基づいて生成された人工ニューラルネットワーク出力を出力するステップを含み得る。
【００１１】
いくつかの実装形態では、動作はさらに、DACユニットを通じて、第1の変換されたデジタル出力ベクトルに基づいて第2の複数の変調器制御信号を生成するステップを含み得る。
【００１２】
いくつかの実装形態では、人工ニューラルネットワーク計算要求はさらに、第2の複数のニューラルネットワーク重みを含むことができ、動作はさらに、第1の複数のデジタル化された光出力の取得に基づいて、DACユニットを通じて、第2の複数のニューラルネットワーク重みに基づいて第2の複数の重み制御信号を生成することを含むことができる。第1の複数のニューラルネットワーク重みおよび第2の複数のニューラルネットワーク重みは、人工ニューラルネットワークの異なる層に対応し得る。
【００１３】
いくつかの実装形態では、入力データセットはさらに、第2のデジタル入力ベクトルを含んでもよく、動作はさらに、DACユニットを通じて、第2のデジタル入力ベクトルに基づいて第2の複数の変調器制御信号を生成することと、ADCユニットから、光行列乗算ユニットの光出力ベクトルに対応する第2の複数のデジタル化された光出力を取得することであって、第2の複数のデジタル化された光出力が第2のデジタル出力ベクトルを形成する、取得することと、第2のデジタル出力ベクトルに対して非線形変換を実行して第2の変換されたデジタル出力ベクトルを生成することと、メモリユニットに、第2の変換されたデジタル出力ベクトルを記憶することと、第1の変換されたデジタル出力ベクトルおよび第2の変換されたデジタル出力ベクトルに基づいて生成された人工ニューラルネットワーク出力を出力することとを含み得る。光行列乗算ユニットの光出力ベクトルは、第1の言及された複数の重み制御信号に基づいて光行列乗算ユニットによって変換される第2の複数の変調器制御信号に基づいて生成される第2の光入力ベクトルに起因する。
【００１４】
いくつかの実装形態では、システムはさらに、光検出ユニットとADCユニットとの間に配置されたアナログ非線形性ユニットを含んでもよく、アナログ非線形性ユニットは、光検出ユニットから複数の出力電圧を受け取り、非線形伝達関数を適用し、複数の変換された出力電圧をADCユニットに出力するように構成され、動作はさらに、ADCユニットから、複数の変換された出力電圧に対応する第1の複数の変換されたデジタル化された出力電圧を取得することであって、第1の複数の変換されたデジタル化された出力電圧が第1の変換されたデジタル出力ベクトルを形成する、取得することと、メモリユニットに、第1の変換されたデジタル出力ベクトルを記憶することとを含む。
【００１５】
いくつかの実装形態では、コントローラの集積回路は、8GHz以上のレートで第1の複数の変調器制御信号を生成するように構成され得る。
【００１６】
いくつかの実装形態では、システムはさらに、DACユニットと複数の光変調器との間に配置されたアナログメモリユニットであって、アナログ電圧を記憶して記憶されているアナログ電圧を出力するように構成される、アナログメモリユニットと、光検出ユニットとADCユニットとの間に配置されたアナログ非線形性ユニットであって、光検出ユニットから複数の出力電圧を受け取り、非線形伝達関数を適用し、複数の変換された出力電圧を出力するように構成される、アナログ非線形性ユニットとを含み得る。アナログメモリユニットは、複数のキャパシタを含み得る。
【００１７】
いくつかの実装形態では、アナログメモリユニットは、アナログ非線形性ユニットの複数の変換された出力電圧を受け取って記憶し、記憶されている複数の変換された出力電圧を複数の光変調器に出力するように構成されてもよく、動作はさらに、第1の複数の変調器制御信号および第1の複数の重み制御信号を生成したことに基づいて、アナログメモリユニットに、アナログ非線形性ユニットの複数の変換された出力電圧を記憶することと、アナログメモリユニットを通じて、記憶されている変換された出力電圧を出力することと、ADCユニットから、第2の複数の変換されたデジタル化された出力電圧を取得することであって、第2の複数の変換されたデジタル化された出力電圧が第2の変換されたデジタル出力ベクトルを形成する、取得することと、メモリユニットに、第2の変換されたデジタル出力ベクトルを記憶することとを含み得る。
【００１８】
いくつかの実装形態では、人工ニューラルネットワーク計算要求の入力データセットは、複数のデジタル入力ベクトルを含み得る。レーザーユニットは、複数の波長を生成するように構成され得る。複数の光変調器は、複数の光入力ベクトルを生成するように構成される光変調器のバンクであって、バンクの各々が、複数の波長のうちの1つに対応し、それぞれの波長を有するそれぞれの光入力ベクトルを生成する、バンクと、複数の光入力ベクトルを、複数の波長を含む組み合わされた光入力ベクトルへと組み合わせるように構成される、光マルチプレクサとを含み得る。光検出ユニットはさらに、複数の波長を逆多重化し、複数の逆多重化された出力電圧を生成するように構成され得る。動作は、ADCユニットから、複数のデジタル化された逆多重化された光出力を取得することであって、複数のデジタル化された逆多重化された光出力が複数の第1のデジタル出力ベクトルを形成し、複数の第1のデジタル出力ベクトルの各々が複数の波長のうちの1つに対応する、取得することと、複数の第1のデジタル出力ベクトルの各々に対して非線形変換を実行して、複数の変換された第1のデジタル出力ベクトルを生成することと、メモリユニットに、複数の変換された第1のデジタル出力ベクトルを記憶することとを含み得る。複数のデジタル入力ベクトルの各々は、複数の光入力ベクトルのうちの1つに対応し得る。
【００１９】
いくつかの実装形態では、人工ニューラルネットワーク計算要求は、複数のデジタル入力ベクトルを含み得る。レーザーユニットは、複数の波長を生成するように構成され得る。複数の光変調器は、複数の光入力ベクトルを生成するように構成される光変調器のバンクであって、バンクの各々が、複数の波長のうちの1つに対応し、それぞれの波長を有するそれぞれの光入力ベクトルを生成する、バンクと、複数の光入力ベクトルを、複数の波長を含む組み合わされた光入力ベクトルへと組み合わせるように構成される、光マルチプレクサとを含み得る。動作は、ADCユニットから、複数の波長を含む光出力ベクトルに対応する第1の複数のデジタル化された光出力を取得することであって、第1の複数のデジタル化された光出力が第1のデジタル出力ベクトルを形成する、取得することと、第1のデジタル出力ベクトルに対して非線形変換を実行して、第1の変換されたデジタル出力ベクトルを生成することと、メモリユニットに、第1の変換されたデジタル出力ベクトルを記憶することとを含み得る。
【００２０】
いくつかの実装形態では、DACユニットは、複数の1ビット変調器制御信号を生成するように構成される1ビットDACサブユニットを含み得る。ADCユニットの分解能は1ビットであり得る。第1のデジタル入力ベクトルの分解能はNビットであり得る。動作は、第1のデジタル入力ベクトルをN個の1ビット入力ベクトルに分解することであって、N個の1ビット入力ベクトルの各々が第1のデジタル入力ベクトルのNビットのうちの1つに対応する、分解することと、1ビットDACサブユニットを通じて、N個の1ビット入力ベクトルに対応するN個の1ビット変調器制御信号のシーケンスを生成することと、ADCユニットから、N個の1ビット変調器制御信号のシーケンスに対応するN個のデジタル化された1ビット光出力のシーケンスを取得することと、N個のデジタル化された1ビット光出力のシーケンスからNビットデジタル出力ベクトルを構築することと、構築されたNビットデジタル出力ベクトルに対して非線形変換を実行して、変換されたNビットデジタル出力ベクトルを生成することと、メモリユニットに、変換されたNビットデジタル出力ベクトルを記憶することとを含み得る。
【００２１】
いくつかの実装形態では、メモリユニットは、デジタル入力ベクトルを記憶するように構成され少なくとも1つのSRAMを含む、デジタル入力ベクトルメモリと、複数のニューラルネットワーク重みを記憶するように構成され少なくとも1つのDRAMを含む、ニューラルネットワーク重みメモリとを含み得る。
【００２２】
いくつかの実装形態では、DACユニットは、複数の変調器制御信号を生成するように構成される第1のDACサブユニットと、複数の重み制御信号を生成するように構成される第2のDACサブユニットとを含んでもよく、第1のDACサブユニットおよび第2のDACサブユニットは異なる。
【００２３】
いくつかの実装形態では、レーザーユニットは、光を生成するように構成されるレーザー源と、レーザー源によって生成された光を複数の光出力に分割するように構成される光パワー分割器とを含んでもよく、複数の光出力の各々は実質的に等しいパワーを有する。
【００２４】
いくつかの実装形態では、複数の光変調器は、MZI変調器、リング共振変調器、または電界吸収型変調器のうちの1つを含み得る。
【００２５】
いくつかの実装形態では、光検出ユニットは、複数の光検出器と、光検出器によって生成された光電流を複数の出力電圧に変換するように構成される複数の増幅器とを含み得る。
【００２６】
いくつかの実装形態では、集積回路は、特定用途向け集積回路であり得る。
【００２７】
いくつかの実装形態では、光行列乗算ユニットは、光入力ベクトルを受信するための入力導波管の列と、光信号の第2の列への光入力ベクトルの線形変換を実行するための、入力導波管の列と光学的に連絡している光干渉ユニットと、光信号の第2の列を導くための、光干渉ユニットと光学的に連絡している出力導波管の列とを含んでもよく、入力導波管の列の中の少なくとも1つの入力導波管は、光干渉ユニットを介して、出力導波管の列の中の各出力導波管と光学的に連絡している。
【００２８】
いくつかの実装形態では、光干渉ユニットは、複数の相互接続されたマッハツェンダー干渉計(MZI)を含んでもよく、複数の相互接続されたMZIの中の各MZIは、MZIの分割比を変更するように構成される第1の位相シフタと、MZIの1つの出力の位相をシフトするように構成される第2の位相シフタとを含み、第1の位相シフタおよび第2の位相シフタは、複数の重み制御信号に結合される。
【００２９】
別の態様では、システムは、データセットおよび複数のニューラルネットワーク重みを記憶するように構成されるメモリユニットと、複数の変調器制御信号を生成し複数の重み制御信号を生成するように構成されるドライバユニットと、光プロセッサであって、複数の光出力を生成するように構成されるレーザーユニットと、レーザーユニットおよびドライバユニットに結合された複数の光変調器であって、レーザーユニットによって生成された複数の光出力を複数の変調器制御信号に基づいて変調することによって光入力ベクトルを生成するように構成される、複数の光変調器と、複数の光変調器およびドライバユニットに結合された光行列乗算ユニットであって、複数の重み制御信号に基づいて光入力ベクトルを光出力ベクトルに変換するように構成される、光行列乗算ユニットと、光行列乗算ユニットに結合され光出力ベクトルに対応する複数の出力電圧を生成するように構成される、光検出ユニットとを含む、光プロセッサと、光検出ユニットに結合され、複数の出力電圧を複数のデジタル化された1ビット光出力に変換するように構成される、比較器ユニットと、コンピュータから、入力データセットおよび第1の複数のニューラルネットワーク重みを含む人工ニューラルネットワーク計算要求を受信することであって、入力データセットがNビットの分解能を有する第1のデジタル入力ベクトルを含む、受信することと、メモリユニットに、入力データセットおよび第1の複数のニューラルネットワーク重みを記憶することと、第1のデジタル入力ベクトルをN個の1ビット入力ベクトルに分解することであって、N個の1ビット入力ベクトルの各々が第1のデジタル入力ベクトルのNビットのうちの1つに対応する、分解することと、ドライバユニットを通じて、N個の1ビット入力ベクトルに対応するN個の1ビット変調器制御信号のシーケンスを生成することと、比較器ユニットから、N個の1ビット変調器制御信号のシーケンスに対応するN個のデジタル化された1ビット光出力のシーケンスを取得することと、N個のデジタル化された1ビット光出力のシーケンスからNビットデジタル出力ベクトルを構築することと、構築されたNビットデジタル出力ベクトルに対して非線形変換を実行して、変換されたNビットデジタル出力ベクトルを生成することと、メモリユニットに、変換されたNビットデジタル出力ベクトルを記憶することとを含む動作を実行するように構成される集積回路を含むコントローラとを含む。
【００３０】
別の態様では、複数の重み制御信号に基づいて光入力ベクトルを光出力ベクトルに変換するように構成される光行列乗算ユニットを有するシステムにおいて人工ニューラルネットワーク計算を実行するための方法は、コンピュータから、入力データセットおよび第1の複数のニューラルネットワーク重みを含む人工ニューラルネットワーク計算要求を受信するステップであって、入力データセットが第1のデジタル入力ベクトルを含む、ステップと、メモリユニットに、入力データセットおよび第1の複数のニューラルネットワーク重みを記憶するステップと、デジタルアナログコンバータ(DAC)ユニットを通じて、第1のデジタル入力ベクトルに基づく第1の複数の変調器制御信号および第1の複数のニューラルネットワーク重みに基づく第1の複数の重み制御信号を生成するステップと、アナログデジタル変換(ADC)ユニットから、光行列乗算ユニットの光出力ベクトルに対応する第1の複数のデジタル化された光出力を取得するステップであって、第1の複数のデジタル化された光出力が第1のデジタル出力ベクトルを形成する、ステップと、コントローラによって、第1のデジタル出力ベクトルに対して非線形変換を実行して、第1の変換されたデジタル出力ベクトルを生成するステップと、メモリユニットに、第1の変換されたデジタル出力ベクトルを記憶するステップと、コントローラによって、第1の変換されたデジタル出力ベクトルに基づいて生成された人工ニューラルネットワーク出力を出力するステップとを含む。
【００３１】
別の態様では、方法は、電子フォーマットで入力情報を提供するステップと、電子入力情報の少なくとも一部を光入力ベクトルに変換するステップと、光行列乗算に基づいて光入力ベクトルを光出力ベクトルに光学的に変換するステップと、光出力ベクトルを電子フォーマットに変換するステップと、非線形変換を電子的に変換された光出力ベクトルに電子的に適用して電子フォーマットで出力情報を提供するステップとを含む。
【００３２】
方法の実施形態は以下の特徴のうちの1つまたは複数を含み得る。たとえば、方法はさらに、電子フォーマットの提供された出力情報に対応する新しい電子入力情報に関して、電気から光への変換、光変換、光から電気への変換、および電子的に適用される非線形変換を繰り返すステップを含み得る。
【００３３】
いくつかの実装形態では、最初の光変換のための光行列乗算および繰り返される光変換の光行列乗算は同じであってもよく、人工ニューラルネットワークの同じ層に対応してもよい。
【００３４】
いくつかの実装形態では、最初の光変換のための光行列乗算および繰り返される光変換の光行列乗算は異なっていてもよく、人工ニューラルネットワークの異なる層に対応してもよい。
【００３５】
いくつかの実装形態では、方法はさらに、電子入力情報の異なる部分に関して、電気から光への変換、光変換、光から電気への変換、および電子的に適用される非線形変換を繰り返すステップを含んでもよく、最初の光変換のための光行列乗算および繰り返される光変換の光行列乗算は同じであり、人工ニューラルネットワークの第1の層に対応する。
【００３６】
いくつかの実装形態では、方法はさらに、人工ニューラルネットワークの第1の層によって電子入力情報の複数の部分に対して生み出された電子出力情報に基づいて、電子フォーマットで中間情報を提供するステップと、電子中間情報の異なる部分の各々に関して、電気から光への変換、光変換、光から電気への変換、および電子的に適用される非線形変換を繰り返すステップとを含んでもよく、最初の光変換のための光行列乗算および電子中間情報の異なる部分に関する繰り返される光変換の光行列乗算は同じであり、人工ニューラルネットワークの第2の層に対応する。
【００３７】
別の態様では、システムは、受動回折光学素子を含む光プロセッサを含み、受動回折光学素子は、光入力ベクトルまたは行列を、光入力ベクトルまたは行列および回折光学素子の配置により定義される所定のベクトルに適用される行列処理の結果を表す光出力ベクトルまたは行列に変換するように構成される。
【００３８】
システムの実施形態は、以下の特徴のうちの1つまたは複数を含み得る。たとえば、行列処理は、光入力ベクトルまたは行列と、回折光学素子の配置により定義される所定のベクトルとの行列乗算を含み得る。
【００３９】
いくつかの実装形態では、光プロセッサは、光入力ベクトルを受信するための入力導波管の列と、受動回折光学素子を備える光干渉ユニットであって、入力導波管の列と光学的に連絡しており、光信号の第2の列への光入力ベクトルの線形変換を実行するように構成される、光干渉ユニットと、光信号の第2の列を導くための、光干渉ユニットと光学的に連絡している出力導波管の列とを含む、光行列処理ユニットを含んでもよく、入力導波管の列の中の少なくとも1つの入力導波管は、光学干渉ユニットを介して、出力導波管の列の中の各出力導波管と光学的に連絡している。
【００４０】
いくつかの実装形態では、光干渉ユニットは、穴または縞のうちの少なくとも1つの有する基板を含んでもよく、穴は100nmから10μmの範囲の寸法を有し、縞の幅は100nmから10μmの範囲にある。
【００４１】
いくつかの実装形態では、光干渉ユニットは、2次元構成で配置される受動回折光学素子を有する基板を含んでもよく、基板は平面基板または曲面基板のうちの少なくとも1つを備える。
【００４２】
いくつかの実装形態では、基板は、入力導波管の列から出力導波管の列への光伝播の方向と平行な平面基板を含み得る。
【００４３】
いくつかの実装形態では、光プロセッサは、光入力行列を受信するための入力導波管の行列と、受動回折光学素子を備える光干渉ユニットであって、入力導波管の行列と光学的に連絡しており、光信号の第2の行列への光入力行列の線形変換を実行するように構成される、光干渉ユニットと、光信号の第2の行列を導くための、光干渉ユニットと光学的に連絡している出力導波管の行列とを含む、光行列処理ユニットを含んでもよく、入力導波管の行列の中の少なくとも1つの入力導波管は、光干渉ユニットを介して、出力導波管の行列の中の各出力導波管と光学的に連絡している。
【００４４】
いくつかの実装形態では、光干渉ユニットは、穴または縞のうちの少なくとも1つの有する基板を含んでもよく、穴は100nmから10μmの範囲の寸法を有し、縞の幅は100nmから10μmの範囲にある。
【００４５】
いくつかの実装形態では、光干渉ユニットは、3次元構成で配置される受動回折光学素子を有する基板を含み得る。
【００４６】
いくつかの実装形態では、基板は、立方体、円柱、角柱、または不規則な容積のうちの少なくとも1つの形状を有し得る。
【００４７】
いくつかの実装形態では、光プロセッサは、受動回折光学素子を有するホログラムを含む光干渉ユニットを含んでもよく、光プロセッサは、光入力行列を表す変調された光を受信し、光が光出力行列としてホログラムから出てくるまで、光がホログラムを通過するにつれて光を継続的に変換するように構成される。
【００４８】
いくつかの実装形態では、光干渉ユニットは、受動回折光学素子を有する基板を含んでもよく、基板は、シリコン、酸化シリコン、窒化シリコン、クォーツ、ニオブ酸リチウム、相変化材料、またはポリマーのうちの少なくとも1つを備える。
【００４９】
いくつかの実装形態では、光干渉ユニットは、受動回折光学素子を有する基板を含んでもよく、基板は、ガラス基板またはアクリル基板のうちの少なくとも1つを備える。
【００５０】
いくつかの実装形態では、受動回折光学素子は、ドーパントによって部分的に形成され得る。
【００５１】
いくつかの実装形態では、行列処理は、ニューラルネットワークによる、光入力ベクトルによって表される入力データの処理を表し得る。
【００５２】
いくつかの実装形態では、光プロセッサは、複数の光出力を生成するように構成されるレーザーユニットと、レーザーユニットに結合され、レーザーユニットによって生成された複数の光出力を複数の変調器制御信号に基づいて変調することによって光入力ベクトルを生成するように構成される、複数の光変調器と、複数の光変調器に結合された光行列処理ユニットであって、受動回折光学素子によって定義される複数の重みに基づいて光入力ベクトルを光出力ベクトルに変換するように構成される受動回折光学素子を備える、光行列処理ユニットと、光行列処理ユニットに結合され、光出力ベクトルに対応する複数の出力電気信号を生成するように構成される、光検出ユニットとを含み得る。
【００５３】
いくつかの実装形態では、受動回折光学素子は3次元構成で配置されてもよく、複数の光変調器は光変調器の2次元の列を備え、光検出ユニットは光検出器の2次元の列を備える。
【００５４】
いくつかの実装形態では、光行列処理ユニットは、入力導波管の列、光干渉ユニット、および出力導波管の列を支持して保護するためのハウジングモジュールを含んでもよく、光プロセッサは、光行列処理ユニットを受信するように構成される受信モジュールを備え、受信モジュールは、光行列処理ユニットが複数の光変調器から光入力ベクトルを受信することを可能にするための第1のインターフェースと、光行列処理ユニットが光出力ベクトルを光検出ユニットに送信することを可能にするための第2のインターフェースとを備える。
【００５５】
いくつかの実装形態では、複数の出力電気信号は、複数の電圧信号または複数の電流信号のうちの少なくとも1つを含み得る。
【００５６】
いくつかの実装形態では、システムは、メモリユニットと、複数の変調器制御信号を生成するように構成されるデジタルアナログコンバータ(DAC)ユニットと、光検出ユニットに結合され、複数の出力電気信号を複数のデジタル化された出力に変換するように構成される、アナログデジタル変換(ADC)ユニットと、コンピュータから、入力データセットを備える人工ニューラルネットワーク計算要求を受信することであって、入力データセットが第1のデジタル入力ベクトルを備える、受信することと、メモリユニットに、入力データセットを記憶することと、DACユニットを通じて、第1のデジタル入力ベクトルに基づいて第1の複数の変調器制御信号を生成することとを含む動作を実行するように構成される集積回路を含むコントローラとを含み得る。
【００５７】
別の態様では、方法は、受動回折光学素子を備える光行列処理ユニットを3D印刷するステップを含み、受動回折光学素子は、光入力ベクトルまたは行列を、光入力ベクトルまたは行列および回折光学素子の配置により定義される所定のベクトルに適用される行列処理の結果を表す光出力ベクトルまたは行列に変換するように構成される。
【００５８】
別の態様では、方法は、1つまたは複数のレーザービームを使用して、受動回折光学素子を備えるホログラムを生成するステップを含み、受動回折光学素子は、光入力ベクトルまたは行列を、光入力ベクトルまたは行列および回折光学素子の配置により定義される所定のベクトルに適用される行列処理の結果を表す光出力ベクトルまたは行列に変換するように構成される。
【００５９】
別の態様では、システムは、1次元に配置された受動回折光学素子を備える光プロセッサを含み、受動回折光学素子は、光入力を、光入力および回折光学素子の配置により定義される所定のベクトルに適用される行列処理の結果を表す光出力に変換するように構成される。
【００６０】
システムの実装形態は、以下の特徴のうちの1つまたは複数を含み得る。たとえば、行列処理は、光入力と、回折光学素子の配置により定義される所定のベクトルとの行列乗算を含み得る。
【００６１】
いくつかの実装形態では、光プロセッサは、光入力を受信するための入力導波管と、受動回折光学素子を備える光干渉ユニットであって、入力導波管と光学的に連絡しており、光入力の線形変換を実行するように構成される、光干渉ユニットと、光出力を導くための、光干渉ユニットと光学的に連絡している出力導波管とを含む、光行列処理ユニットを含み得る。
【００６２】
いくつかの実装形態では、光干渉ユニットは、穴または格子のうちの少なくとも1つを有する基板を含んでもよく、穴または格子要素は、100nmから10μmの範囲の寸法を有し得る。
【００６３】
別の態様では、システムは、メモリユニットと、複数の変調器制御信号を生成するように構成されるデジタルアナログコンバータ(DAC)ユニットと、光プロセッサであって、複数の光出力を生成するように構成されるレーザーユニットと、レーザーユニットおよびDACユニットに結合される複数の光変調器であって、レーザーユニットによって生成された複数の光出力を複数の変調器制御信号に基づいて変調することによって光入力ベクトルを生成するように構成される、複数の光変調器と、複数の光変調器に結合される光行列処理ユニットであって、受動回折光学素子によって定義される複数の重みに基づいて光入力ベクトルを光出力ベクトルに変換するように構成される受動回折光学素子を備える、光行列処理ユニットと、光行列処理ユニットに結合され、光出力ベクトルに対応する複数の出力電気信号を生成するように構成される、光検出ユニットとを含む、光プロセッサとを含む。システムはさらに、光検出ユニットに結合され、複数の出力電気信号を複数のデジタル化された光出力に変換するように構成される、アナログデジタル変換(ADC)ユニットと、コンピュータから、入力データセットを備える人工ニューラルネットワーク計算要求を受信することであって、入力データセットが第1のデジタル入力ベクトルを備える、受信することと、メモリユニットに、入力データセットを記憶することと、DACユニットを通じて、第1のデジタル入力ベクトルに基づいて第1の複数の変調器制御信号を生成することとを含む動作を実行するように構成される集積回路を含むコントローラとを含む。
【００６４】
システムの実施形態は、以下の特徴のうちの1つまたは複数を含み得る。たとえば、行列処理ユニットは、光入力ベクトルを、デジタル入力ベクトルと受動回折光学素子により定義される所定のベクトルとの行列乗算の積を表す光出力ベクトルに変換するように構成される、受動回折光学素子を含み得る。
【００６５】
いくつかの実装形態では、動作はさらに、ADCユニットから、光行列処理ユニットの光出力ベクトルに対応する第1の複数のデジタル化された光出力を取得することであって、第1の複数のデジタル化された光出力が第1のデジタル出力ベクトルを形成する、取得することと、第1のデジタル出力ベクトルに対して非線形変換を実行して、第1の変換されたデジタル出力ベクトルを生成することと、メモリユニットに、第1の変換されたデジタル出力ベクトルを記憶することとを含む。
【００６６】
いくつかの実装形態では、システムは、メモリユニットに入力データセットを記憶するステップと、メモリユニットに第1の変換されたデジタル出力ベクトルを記憶するステップとの間に経過した時間として定義される、第1のループ期間を有してもよく、第1のループ期間は1ns以下であってもよい。
【００６７】
いくつかの実装形態では、動作はさらに、第1の変換されたデジタル出力ベクトルに基づいて生成された人工ニューラルネットワーク出力を出力することを含み得る。
【００６８】
いくつかの実装形態では、動作はさらに、DACユニットを通じて、第1の変換されたデジタル出力ベクトルに基づいて第2の複数の変調器制御信号を生成することを含み得る。
【００６９】
いくつかの実装形態では、入力データセットはさらに第2のデジタル入力ベクトルを含んでもよく、動作はさらに、DACユニットを通じて、第2のデジタル入力ベクトルに基づいて第2の複数の変調器制御信号を生成することと、ADCユニットから、光行列処理ユニットの光出力ベクトルに対応する第2の複数のデジタル化された光出力を取得することであって、第2の複数のデジタル化された光出力が第2のデジタル出力ベクトルを形成する、取得することと、第2のデジタル出力ベクトルに対して非線形変換を実行して、第2の変換されたデジタル出力ベクトルを生成することと、メモリユニットに、第2の変換されたデジタル出力ベクトルを記憶することと、第1の変換されたデジタル出力ベクトルおよび第2の変換されたデジタル出力ベクトルに基づいて生成された人工ニューラルネットワーク出力を出力することとを含んでもよく、光行列処理ユニットの光出力ベクトルは、受動回折光学素子によって定義される複数の重みに基づいて光行列処理ユニットによって変換される第2の複数の変調器制御信号に基づいて生成される第2の光入力ベクトルに起因する。
【００７０】
いくつかの実装形態では、システムはさらに、光検出ユニットとADCユニットとの間に配置されるアナログ非線形性ユニットを含んでもよく、アナログ非線形性ユニットは、光検出ユニットから複数の出力電気信号を受信し、非線形伝達関数を適用し、複数の変換された出力電気信号をADCユニットに出力するように構成され、動作はさらに、ADCユニットから、複数の変換された出力電気信号に対応する第1の複数の変換されたデジタル化された出力電気信号を取得することであって、第1の複数の変換されたデジタル化された出力電気信号が第1の変換されたデジタル出力ベクトルを形成する、取得することと、メモリユニットに、第1の変換されたデジタル出力ベクトルを記憶することとを含み得る。
【００７１】
いくつかの実装形態では、コントローラの集積回路は、8GHz以上のレートで第1の複数の変調器制御信号を生成するように構成され得る。
【００７２】
いくつかの実装形態では、システムはさらに、DACユニットと複数の光変調器との間に配置されるアナログメモリユニットであって、アナログ電圧を記憶し、記憶されているアナログ電圧を出力するように構成される、アナログメモリユニットと、光検出ユニットとADCユニットとの間に配置されるアナログ非線形性ユニットであって、光検出ユニットから複数の出力電気信号を受信し、非線形伝達関数を適用し、複数の変換された出力電気信号を出力するように構成される、アナログ非線形性ユニットとを含み得る。
【００７３】
いくつかの実装形態では、アナログメモリユニットは複数のキャパシタを含み得る。
【００７４】
いくつかの実装形態では、アナログメモリユニットは、アナログ非線形性ユニットの複数の変換された出力電気信号を受信して記憶し、記憶されている複数の変換された出力電気信号を複数の光変調器に出力するように構成されてもよく、動作はさらに、第1の複数の変調器制御信号を生成したことに基づいて、アナログメモリユニットに、アナログ非線形性ユニットの複数の変換された出力電気信号を記憶することと、アナログメモリユニットを通じて、記憶されている変換された出力電気信号を出力することと、ADCユニットから、第2の複数の変換されたデジタル化された出力電気信号を取得することであって、第2の複数の変換されたデジタル化された出力電気信号が第2の変換されたデジタル出力ベクトルを形成する、取得することと、メモリユニットに、第2の変換されたデジタル出力ベクトルを記憶することとを含み得る。
【００７５】
いくつかの実装形態では、人工ニューラルネットワーク計算要求の入力データセットは、複数のデジタル入力ベクトルを含んでもよく、レーザーユニットは複数の波長を生成するように構成されてもよく、複数の光変調器は、複数の光入力ベクトルを生成するように構成される光変調器のバンクであって、バンクの各々が複数の波長のうちの1つに対応し、それぞれの波長を有するそれぞれの光入力ベクトルを生成する、バンクと、複数の光入力ベクトルを、複数の波長を備える組み合わされた光入力ベクトルへと組み合わせるように構成される、光マルチプレクサとを含み得る。光検出ユニットはさらに、複数の波長を逆多重化し、複数の逆多重化された出力電気信号を生成するように構成されてもよく、動作は、ADCユニットから、複数のデジタル化された逆多重化された光出力を取得することであって、複数のデジタル化された逆多重化された光出力が複数の第1のデジタル出力ベクトルを形成し、複数の第1のデジタル出力ベクトルの各々が複数の波長のうちの1つに対応する、取得することと、複数の第1のデジタル出力ベクトルの各々に対して非線形変換を実行して、複数の変換された第1のデジタル出力ベクトルを生成することと、メモリユニットに、複数の変換された第1のデジタル出力ベクトルを記憶することとを含んでもよく、複数のデジタル入力ベクトルの各々は、複数の光入力ベクトルのうちの1つに対応し得る。
【００７６】
いくつかの実装形態では、人工ニューラルネットワーク計算要求は、複数のデジタル入力ベクトルを含んでもよく、レーザーユニットは複数の波長を生成するように構成され、複数の光変調器は、複数の光入力ベクトルを生成するように構成される光変調器のバンクであって、バンクの各々が複数の波長のうちの1つに対応し、それぞれの波長を有するそれぞれの光入力ベクトルを生成する、バンクと、複数の光入力ベクトルを、複数の波長を備える組み合わされた光入力ベクトルへと組み合わせるように構成される、光マルチプレクサとを含み得る。動作は、ADCユニットから、複数の波長を備える光出力ベクトルに対応する第1の複数のデジタル化された光出力を取得することであって、第1の複数のデジタル化された光出力が第1のデジタル出力ベクトルを形成する、取得することと、第1のデジタル出力ベクトルに対して非線形変換を実行して、第1の変換されたデジタル出力ベクトルを生成することと、メモリユニットに、第1の変換されたデジタル出力ベクトルを記憶することとを含み得る。
【００７７】
いくつかの実装形態では、DACユニットは、複数の1ビット変調器制御信号を生成するように構成される1ビットDACユニットを含んでもよく、ADCユニットの分解能は1ビットであってもよく、第1のデジタル入力ベクトルの分解能はNビットであってもよい。動作は、第1のデジタル入力ベクトルをN個の1ビット入力ベクトルに分解することであって、N個の1ビット入力ベクトルの各々が、第1のデジタル入力ベクトルのNビットのうちの1つに対応する、分解することと、1ビットDACユニットを通じて、N個の1ビット入力ベクトルに対応するN個の1ビット変調器制御信号のシーケンスを生成することと、ADCユニットから、N個の1ビット変調器制御信号のシーケンスに対応するN個のデジタル化された1ビット光出力のシーケンスを取得することと、N個のデジタル化された1ビット光出力のシーケンスからNビットデジタル出力ベクトルを構築することと、構築されたNビットデジタル出力ベクトルに対して非線形変換を実行して、変換されたNビットデジタル出力ベクトルを生成することと、メモリユニットに、変換されたNビットのデジタル出力ベクトルを記憶することとを含み得る。
【００７８】
いくつかの実装形態では、メモリユニットは、デジタル入力ベクトルを記憶するように構成され少なくとも1つのSRAMを備える、デジタル入力ベクトルメモリを含み得る。
【００７９】
いくつかの実装形態では、レーザーユニットは、光を生成するように構成されるレーザー源と、レーザー源によって生成された光を複数の光出力に分割するように構成される光パワー分割器とを含んでもよく、複数の光出力の各々は実質的に等しいパワーを有する。
【００８０】
いくつかの実装形態では、複数の光変調器は、MZI変調器、リング共振変調器、または電界吸収型変調器のうちの1つを含み得る。
【００８１】
いくつかの実装形態では、光検出ユニットは、複数の光検出器と、光検出器によって生成された光電流を複数の出力電気信号に変換するように構成される複数の増幅器とを含み得る。
【００８２】
いくつかの実装形態では、集積回路は、特定用途向け集積回路を含み得る。
【００８３】
いくつかの実装形態では、光行列処理ユニットは、光入力ベクトルを受信するための入力導波管の列と、光信号の第2の列への光入力ベクトルの線形変換を実行するための、入力導波管の列と光学的に連絡している光干渉ユニットであって、受動回折光学素子を備える、光干渉ユニットと、光信号の第2の列を導くための、光干渉ユニットと光学的に連絡している出力導波管の列とを含んでもよく、入力導波管の列の中の少なくとも1つの入力導波管は、光干渉ユニットを介して、出力導波管の列の中の各出力導波管と光学的に連絡している。
【００８４】
別の態様では、システムは、メモリユニットと、複数の変調器制御信号を生成するように構成されるドライバユニットと、光プロセッサであって、複数の光出力を生成するように構成されるレーザーユニットと、レーザーユニットおよびドライバユニットに結合された複数の光変調器であって、レーザーユニットによって生成された複数の光出力を複数の変調器制御信号に基づいて変調することによって光入力ベクトルを生成するように構成される、複数の光変調器と、複数の光変調器およびドライバユニットに結合された光行列処理ユニットであって、受動回折光学素子を備える光行列処理ユニットが、受動回折光学素子により定義される複数の重み制御信号に基づいて光入力ベクトルを光出力ベクトルに変換するように構成される、光行列処理ユニットと、光行列処理ユニットに結合され光出力ベクトルに対応する複数の出力電気信号を生成するように構成される、光検出ユニットとを含む、光プロセッサとを含む。システムはまた、光検出ユニットに結合され、複数の出力電気信号を複数のデジタル化された1ビット光出力に変換するように構成される、比較器ユニットと、コンピュータから、入力データセットを備える人工ニューラルネットワーク計算要求を受信することであって、入力データセットがNビットの分解能を有する第1のデジタル入力ベクトルを備える、受信することと、メモリユニットに入力データセットを記憶することと、第1のデジタル入力ベクトルをN個の1ビット入力ベクトルに分解することであって、N個の1ビット入力ベクトルの各々が第1のデジタル入力ベクトルのNビットのうちの1つに対応する、分解することと、ドライバユニットを通じて、N個の1ビット入力ベクトルに対応するN個の1ビット変調器制御信号のシーケンスを生成することと、比較器ユニットから、N個の1ビット変調器制御信号のシーケンスに対応するN個のデジタル化された1ビット光出力のシーケンスを取得することと、N個のデジタル化された1ビット光出力のシーケンスからNビットデジタル出力ベクトルを構築することと、構築されたNビットデジタル出力ベクトルに対して非線形変換を実行して、変換されたNビットデジタル出力ベクトルを生成することと、メモリユニットに、変換されたNビットデジタル出力ベクトルを記憶することとを含む動作を実行するように構成される集積回路を含むコントローラとを含む。
【００８５】
システムの実施形態は、以下の特徴のうちの1つまたは複数を含み得る。たとえば、光行列処理ユニットは、光入力ベクトルを、光入力ベクトルによって表される入力ベクトルと、回折光学素子により定義される所定のベクトルとの行列乗算の積を表す光出力ベクトルに変換するように構成される、光行列乗算ユニットを含み得る。
【００８６】
別の態様では、光行列処理ユニットを有するシステムにおいて人工ニューラルネットワーク計算を実行するための方法は、コンピュータから、第1のデジタル入力ベクトルを備える入力データセットを備える人工ニューラルネットワーク計算要求を受信するステップと、メモリユニットに入力データセットを記憶するステップと、デジタルアナログコンバータ(DAC)ユニットを通じて、第1のデジタル入力ベクトルに基づいて第1の複数の変調器制御信号を生成するステップと、回折光学素子のある配置を備える光行列処理ユニットを使用することによって、光入力ベクトルを光出力ベクトルに変換するステップであって、光出力ベクトルが、光入力ベクトルおよび回折光学素子の配置によって定義される所定のベクトルに適用された行列処理の結果を表す、ステップと、アナログデジタル変換(ADC)ユニットから、光行列処理ユニットの光出力ベクトルに対応する第1の複数のデジタル化された光出力を取得するステップであって、第1の複数のデジタル化された光出力が第1のデジタル出力ベクトルを形成する、ステップと、コントローラによって、第1のデジタル出力ベクトルに対して非線形変換を実行して、第1の変換されたデジタル出力ベクトルを生成するステップと、メモリユニットに、第1の変換されたデジタル出力ベクトルを記憶するステップと、コントローラによって、第1の変換されたデジタル出力ベクトルに基づいて生成された人工ニューラルネットワーク出力を出力するステップとを含む。
【００８７】
方法の実施形態は、以下の特徴のうちの1つまたは複数を含み得る。たとえば、光入力ベクトルを光出力ベクトルに変換することは、光入力ベクトルを、デジタル入力ベクトルと回折光学素子の配置により定義される所定のベクトルとの行列乗算の積を表す光出力ベクトルに変換することを含み得る。
【００８８】
別の態様では、方法は、電子フォーマットで入力情報を提供するステップと、電子入力情報の少なくとも一部を光入力ベクトルに変換するステップと、受動回折光学素子を備える光プロセッサによる光行列処理に基づいて光入力ベクトルを光出力ベクトルに光学的に変換するステップと、光出力ベクトルを電子フォーマットに変換するステップと、非線形変換を電子的に変換された光出力ベクトルに電子的に適用して電子フォーマットで出力情報を提供するステップとを含む。
【００８９】
方法の実施形態は、以下の特徴のうちの1つまたは複数を含み得る。たとえば、光入力ベクトルを光出力ベクトルに光学的に変換することは、光入力ベクトルによって表されるデジタル入力ベクトルと、受動回折光学素子により定義される所定のベクトルとの光行列乗算に基づいて、光入力ベクトルを光出力ベクトルに光学的に変換することを含み得る。
【００９０】
いくつかの実装形態では、方法はさらに、電子フォーマットの提供された出力情報に対応する新しい電子入力情報に関して、電気から光への変換、光変換、光から電気への変換、および電子的に適用される非線形変換を繰り返すステップを含み得る。
【００９１】
いくつかの実装形態では、最初の光変換のための光行列処理および繰り返される光変換の光行列処理は同じであってもよく、人工ニューラルネットワークの同じ層に対応してもよい。
【００９２】
いくつかの実装形態では、方法はさらに、電子入力情報の異なる部分に関して、電気から光への変換、光変換、光から電気への変換、および電子的に適用される非線形変換を繰り返すステップを含んでもよく、最初の光変換のための光行列処理および繰り返される光変換の光行列処理は同じであり、人工ニューラルネットワークのある層に対応し得る。
【００９３】
別の態様では、システムは、長さNの入力ベクトルを処理するように構成される光行列処理ユニットを含み、光行列処理ユニットは、指向性カプラのN+2個の層および位相シフタのN個の層を備え、Nは正の整数である。
【００９４】
システムの実施形態は、以下の特徴のうちの1つまたは複数を含み得る。たとえば、光行列処理ユニットは、指向性カプラのN+2個の層しか含まなくてもよい。
【００９５】
いくつかの実装形態では、光行列処理ユニットは、光行列乗算ユニットを含み得る。
【００９６】
いくつかの実装形態では、光行列処理ユニットは、基板と、基板上に配設された相互接続された干渉計とを含んでもよく、各干渉計は基板上に配設された光導波管を備え、指向性カプラおよび位相シフタは相互接続された干渉計の一部である。
【００９７】
いくつかの実装形態では、光行列処理ユニットは、指向性カプラの最後の層に続く減衰器の層を含み得る。
【００９８】
いくつかの実装形態では、減衰器の層はN個の減衰器を含み得る。
【００９９】
いくつかの実装形態では、システムは、減衰器からの出力を検出するための1つまたは複数のホモダイン検出器を含み得る。
【０１００】
いくつかの実装形態では、N=3であり、光行列処理ユニットは、入力ベクトルを受信するように構成される入力端子と、入力端子に結合された指向性カプラの第1の層と、指向性カプラの第1の層に結合された位相シフタの第1の層と、位相シフタの第1の層に結合された指向性カプラの第2の層と、指向性カプラの第2の層に結合された位相シフタの第2の層と、位相シフタの第2の層に結合された指向性カプラの第3の層と、指向性カプラの第3の層に結合された位相シフタの第3の層と、位相シフタの第3の層に結合された指向性カプラの第4の層と、指向性カプラの第4の層に結合された指向性カプラの第5の層とを含み得る。
【０１０１】
いくつかの実装形態では、N=4であり、光行列処理ユニットは、入力ベクトルを受信するように構成される入力端子と、各々の後に位相シフタの層がある、指向性カプラの第1の層、第2の層、第3の層、および第4の層とを含んでもよく、指向性カプラの第1の層は入力端子に結合され、指向性カプラの第2から最後の層は位相シフタの第4の層に結合され、指向性カプラの最終の層は指向性カプラの第2から最後の層に結合される。
【０１０２】
いくつかの実装形態では、N=8であり、光行列処理ユニットは、入力ベクトルを受信するように構成される入力端子と、各々の後に位相シフタの層がある指向性カプラの8つの層とを含んでもよく、指向性カプラの第1の層は入力端末に結合され、指向性カプラの第2から最後の層は位相シフタの第8の層に結合され、指向性カプラの最終の層は指向性カプラの第2から最後の層に結合される。
【０１０３】
いくつかの実装形態では、光行列乗算ユニットは、入力ベクトルを受信するように構成される入力端子と、各々の後に位相シフタの層がある指向性カプラのN個の層とを含んでもよく、指向性カプラの第1の層は入力端子に結合され、指向性カプラの第2から最後の層は位相シフタの第Nの層に結合され、指向性カプラの最終の層は指向性カプラの第2から最後の層に結合される。
【０１０４】
いくつかの実装形態では、Nは偶数である。
【０１０５】
いくつかの実装形態では、指向性カプラの第iの層の各々がN/2個の指向性カプラを含み、iは奇数であり、指向性カプラの第jの層の各々がN/2-1個の指向性カプラを含み、jは偶数である。
【０１０６】
いくつかの実装形態では、iが奇数である指向性カプラの第iの層の各々に対して、第kの指向性カプラは、前の層の第(2k-1)の出力および第2kの出力に結合されてもよく、kは1からN/2の整数である。
【０１０７】
いくつかの実装形態では、jが偶数である指向性カプラの第jの層の各々に対して、第mの指向性カプラは、前の層の第2mの出力および第(2m+1)の出力に結合されてもよく、mは1からN/2-1の整数である。
【０１０８】
いくつかの実装形態では、位相シフタの第iの層の各々は、iが奇数であるN個の位相シフタを含んでもよく、位相シフタの第jの層の各々は、jが偶数であるN-2個の位相シフタを含んでもよい。
【０１０９】
いくつかの実装形態では、Nは奇数であり得る。
【０１１０】
いくつかの実装形態では、指向性カプラの各層は(N-1)/2個の指向性カプラを含み得る。
【０１１１】
いくつかの実装形態では、位相シフタの各層はN-1個の位相シフタを含み得る。
【０１１２】
別の態様では、システムは、第1のデータセットを生成するように構成される生成器であって、光行列処理ユニットを備える、生成器と、第1のデータセットからのデータおよび第3のデータセットからのデータを備える第2のデータセットを受信し、第1のデータセットの中のデータが第3のデータセットの中のデータの特性と同様の特性を有し、第2のデータセットの中のデータを、第1のデータセットからのデータまたは第3のデータセットからのデータとして分類するように構成される、区別器とを含む。
【０１１３】
方法の実施形態は、以下の特徴のうちの1つまたは複数を含み得る。たとえば、光行列処理ユニットは、(i)上に記載された光行列乗算ユニット、(ii)上に記載された受動回折光学素子、または(iii)上に記載された光行列処理ユニットのうちの少なくとも1つを含み得る。
【０１１４】
いくつかの実装形態では、第3のデータセットは実データを含んでもよく、生成器は、実データに似た合成データを生成するように構成され、区別器は、データを実データまたは合成データとして分類するように構成される。
【０１１５】
いくつかの実装形態では、生成器は、自律車両、医療診断システム、不正検出システム、気象予報システム、金融予測システム、顔認識システム、発話認識システム、または製品欠陥検出システムのうちの少なくとも1つを訓練するためのデータセットを生成するように構成され得る。
【０１１６】
いくつかの実装形態では、生成器は、実際の物体または実際のシーンのうちの少なくとも1つの画像に似た画像を生成するように構成されてもよく、区別器は、(i)実際の物体もしくは実際のシーンの画像、または(ii)生成器によって生成された合成画像として、受信された画像を分類するように構成される。
【０１１７】
いくつかの実装形態では、実際の物体は、人々、動物、細胞、組織、または製品のうちの少なくとも1つを含んでもよく、実際のシーンは、車両が遭遇するシーンを備える。
【０１１８】
いくつかの実装形態では、区別器は、受信された画像が(i)実際の人々、実際の動物、実際の細胞、実際の組織、実際の製品、もしくは車両が遭遇する実際のシーンの画像であるか、または(ii)生成器によって生成された合成画像であるかを分類するように構成され得る。
【０１１９】
いくつかの実装形態では、車両は、自動二輪車、車、トラック、列車、ヘリコプター、航空機、潜水艦、船舶、またはドローンのうちの少なくとも1つを含み得る。
【０１２０】
いくつかの実装形態では、生成器は、人の疾患、動物の疾患、または植物の疾患のうちの少なくとも1つと関連付けられる、組織または細胞の画像を生成するように構成され得る。
【０１２１】
いくつかの実装形態では、生成器は、人の疾患と関連付けられる組織または細胞の画像を生成するように構成されてもよく、疾患は、癌、パーキンソン病、鎌状赤血球貧血、心疾患、循環器疾患、糖尿病、胸部疾患、または皮膚疾患のうちの少なくとも1つを備える。
【０１２２】
いくつかの実装形態では、生成器は、癌と関連付けられる組織または細胞の画像を生成するように構成されてもよく、癌は、皮膚癌、乳癌、肺癌、肝臓癌、前立腺癌、または脳癌のうちの少なくとも1つを含み得る。
【０１２３】
いくつかの実装形態では、システムはさらに、入力として生成器に提供されるランダムノイズを生成するように構成されるランダムノイズ生成器を含んでもよく、生成器は、ランダムノイズに基づいて第1のデータセットを生成するように構成される。
【０１２４】
別の態様では、システムは、ランダムノイズを生成するように構成されるランダムノイズ生成器と、ランダムノイズに基づいてデータを生成するように構成される生成器とを含み、生成器は光行列処理ユニットを備える。
【０１２５】
システムの実施形態は、以下の特徴のうちの1つまたは複数を含み得る。たとえば、光行列処理ユニットは、(i)上で説明された光行列乗算ユニット、(ii)上で説明された受動回折光学素子、または(iii)上で説明された光行列処理ユニットのうちの少なくとも1つを含み得る。
【０１２６】
別の態様では、システムは、2つの入力信号に対して論理関数を実行するように構成されるフォトニクス回路を含み、フォトニクス回路は、2つの入力端子および2つの出力端子を有する第1の指向性カプラであって、2つの入力端子が2つの入力信号を受信するように構成される、第1の指向性カプラと、第1の指向性カプラの2つの出力端子における信号の位相を修正するように構成される位相シフタの第1のペアと、2つの入力端子および2つの出力端子を有する第2の指向性カプラであって、2つの入力端子が位相シフタの第1のペアから信号を受信するように構成される、第2の指向性カプラと、第2の指向性カプラの2つの出力端子における信号の位相を修正するように構成される位相シフタの第2のペアとを含む。
【０１２７】
方法の実施形態は、以下の特徴のうちの1つまたは複数を含み得る。たとえば、位相シフタは、フォトニクス回路に回転
【０１２８】
【数１】
2021527287.tif 000003
【０１２９】
を実施させるように構成され得る。
【０１３０】
いくつかの実装形態では、入力信号x1およびx2が第1の指向性カプラの2つの入力端子に提供されるとき、位相シフタは、フォトニクス回路に回転
【０１３１】
【数２】
2021527287.tif 000004
【０１３２】
を実施させるように構成され得る。
【０１３３】
いくつかの実装形態では、フォトニクス回路は、フォトニクス回路に回転
【０１３４】
【数３】
2021527287.tif 000005
【０１３５】
を実施させるために位相シフタの第2のペアから信号の絶対値を生成するように構成される第1の光検出器を含み得る。
【０１３６】
いくつかの実装形態では、フォトニクス回路は、第1の光検出器の出力信号を閾値と比較してバイナリ値を生成し、フォトニクス回路に出力
【０１３７】
【数４】
2021527287.tif 000006
【０１３８】
を生成させるように構成される、比較器を含み得る。
【０１３９】
いくつかの実装形態では、フォトニクス回路は、光検出器の出力信号が第1の指向性カプラの入力端子にフィードバックされ、第1の指向性カプラ、位相シフタの第1のペア、第2の指向性カプラ、および位相シフタの第2のペアを通され、光検出器により検出されて、フォトニクス回路に演算
【０１４０】
【数５】
2021527287.tif 000007
【０１４１】
を実施させるように構成される、フィードバック機構を含んでもよく、この演算はAND(x1,x2)およびOR(x1,x2)を生み出す。
【０１４２】
いくつかの実装形態では、フォトニクス回路は、2つの入力端子および2つの出力端子を有する第3の指向性カプラであって、2つの入力端子は位相シフタの第2のペアから信号を受信するように構成される、第3の指向性カプラ、第3の指向性カプラの2つの出力端子において信号の位相を修正するように構成される位相シフタの第3のペア、2つの入力端子および2つの出力端子を有する第4の指向性カプラであって、2つの入力端子は位相シフタの第3のペアから信号を受信するように構成される、第4の指向性カプラ、第4の指向性カプラの2つの出力端子において信号の位相を修正するように構成される位相シフタの第4のペア、および位相シフタの第4のペアから信号の絶対値を生成して、フォトニクス回路に演算
【０１４３】
【数６】
2021527287.tif 000008
【０１４４】
を実施させるように構成される第2の光検出器とを含んでもよく、この演算はAND(x1,x2)およびOR(x1,x2)を生み出す。
【０１４５】
いくつかの実装形態では、システムは、バイトニックソータのソート機能がフォトニクス回路を使用して実行されるように構成される、バイトニックソータを含み得る。
【０１４６】
いくつかの実装形態では、システムは、フォトニクス回路を使用してハッシュ関数を実行するように構成されるデバイスを含み得る。
【０１４７】
いくつかの実装形態では、ハッシュ関数はセキュアハッシュアルゴリズム2(SHA-2)を含み得る。
【０１４８】
一般に、計算を実行するためのシステムは、演算の根本的な物理的性質(たとえば、エネルギー消費および/または速度に関する)が信号(たとえば、電気信号または光信号)について最も適している、その信号に対して各々実行される異なるタイプの演算を使用して計算結果を生み出す。たとえば、3つのそのような演算は、複製、加算、および乗算である。以下でより詳しく説明されるように、複製は光パワーの分割を使用して実行されてもよく、加算は電流ベースの加算を使用して実行されてもよく、乗算は光振幅変調を使用して実行されてもよい。これらの3つのタイプの演算を使用して実行され得る計算の例は、(たとえば、人工ニューラルネットワーク計算により利用されるように)ベクトルを行列と乗算することである。種々の他の計算がこれらの演算を使用して実行されてもよく、これらは、限定はされないが、ベクトルとベクトルのドット積、ベクトルとベクトルの要素ごとの乗算、ベクトルとスカラーの要素ごとの乗算、または行列と行列の要素ごとの乗算を含む、種々の計算をそれにより実行することができる一般的な線形演算のセットを表す。本明細書で説明される例のいくつかは、ベクトル行列乗算のための技法および構成を示すが、対応する技法および構成は、これらのタイプの計算のいずれにも使用され得る。
【０１４９】
態様は、以下の特徴のうちの1つまたは複数を有し得る。
【０１５０】
本明細書で説明されるような電気信号と光信号の両方を使用する光電子コンピューティングシステムは、フレキシビリティおよび/または効率性の向上を促進し得る。過去には、光(またはフォトニクス)集積デバイスを電気(または電子)集積デバイスと共通のプラットフォーム(たとえば、共通の半導体ダイ、またはcontrolled collapsed chip connectionまたは「フリップチップ」構成で組み合わされた複数の半導体ダイ)上で組み合わせることに関連する、潜在的な課題があることがあった。そのような潜在的な課題には、たとえば入力/出力(I/O)パッケージング、または温度制御があり得る。本明細書で説明されるものなどのシステムでは、この潜在的な課題は、比較的多数の光入力ポートおよび比較的多数の電気出力ポート(たとえば、4つ以上の光入力/出力ポート、200個以上の電気入力/出力ポート)とともに使用されるとき、増えることがある。これらの潜在的な課題は、適切なシステム設計を使用して軽減され得る。たとえば、システムは、温度制御(たとえば、熱電冷却)および/またはヒートシンクとして機能してある程度の密閉をもたらす封入ハウジングを使用して、異なる材料タイプ(たとえば、シリコンなどの半導体材料、二酸化シリコンまたは「シリカ」などのガラス材料、セラミック材料など)の間での熱膨張を制御する高密度パッケージング構成を使用し得る。そのような温度安定技術により、異なる熱膨張係数(CTE)、およびその結果としての、システムポートとパッケージングされた高密度ファイバーアレイのポートとの間のずれを、限定的にすることができる。
【０１５１】
複製演算について、光パワーの分割は受動的であるので、演算を実行するために電力が消費される必要はない。加えて、電気分割器の周波数帯域幅には、RC時定数と関連付けられる限界がある。それと比較して、光分割器の周波数帯域幅は実質的に無限である。以下でより詳しく説明されるように、導波管光分割器または自由空間ビーム分割器を含む、異なるタイプの光パワー分割器が使用され得る。
【０１５２】
乗算演算について、一方の値が光信号として符号化されてもよく、他方の値が振幅スケーリング係数(たとえば、0から1の範囲にある値による乗算)として符号化されてもよい。スケーリング係数が設定された後、光領域における乗算には、電気信号の調整のための要件が少ない(またはない)ので、電気ノイズ、電力消費、および帯域幅制限による制約が少ない。検出方式の適切な選択によって、以下でより詳しく説明されるように、符号付きの結果を得ることができる(たとえば、-1と+1の間の値による乗算)。
【０１５３】
加算演算について、導体を流れる電流の大きさが異なる寄与の合計に基づいて決定されるような結果を達成するために、異なる技法が使用され得る。電流信号が入来する状況では、それらの入来する電流信号を搬送する2つ以上の導体がある交点において重なるとき、出ていく電流信号を搬送する単一の導体は、それらの入力電流信号の合計を表す。光信号が入来する状況では、異なる波長の2つ以上の光波が検出器に衝突し、検出器により生み出される光電流上で搬送される電流信号は、入来する光信号におけるパワーの合計を表す。両方が、合計を表す出力として電気信号(たとえば、電流)を生み出すが、一方は入力として電流を使用し(電流入力ベースの加算、「電気領域」において実行される「電気加算」とも呼ばれる)、他方は入力として光波を使用する(光入力ベースの加算、「光電子領域」において実行される「光電子加算」とも呼ばれる)。しかし、いくつかの実施形態では、電流入力ベースの加算が光入力ベースの加算の代わりに使用され、これは、単一の光波長がシステムにおいて使用されることを可能にし、複数の波長を提供して維持するために必要とされ得るシステムの複雑である可能性のある要素をなくす。
【０１５４】
任意の行列要素の規模を伴うベクトル行列乗算などの線形演算を実行するデバイスを提供するために、これらのモジュールによって実施されるこれらの基本演算の組合せが準備され得る。光信号と、光干渉を使用して光信号を組み合わせるための干渉計とを使用した、行列乗算の他の実装形態(ここで説明されるような複製モジュールまたは加算モジュールを使用しない)は、何らかの制約を有するベクトル行列乗算(たとえば、ユニタリ行列、または対角行列)を提供することに限られてきた。加えて、いくつかの他の実装形態は、複数の光信号が比較的多数の光学素子(たとえば、光変調器)を通って伝播するときに、複数の光信号の大規模な位相揃えに依存することがある。代替的に、本明細書で説明される実装形態は、より少数の光学素子を通る伝播の後で(たとえば、単一の光振幅変調器しか通らない伝播の後で)光信号を電気信号に変換することによって、そのような位相揃えの制約を緩和することが可能であることがあり、これは、強めあう/弱めあう干渉に依存しない光変調器のために、コヒーレンスが低下した、またはコヒーレントではない光信号すら有する、光信号を使用することを可能にする。
【０１５５】
光信号および電気信号の時間領域の符号化のために、以下でより詳しく説明されるように、アナログ電子回路が、特定のパワーレベルにおける動作に最適化されてもよく、これは、回路が高速で動作している場合には有用であり得る。そのような時間領域の符号化は、たとえば、各シンボルの比較的多数の明確に区別可能な強度レベルを正確に制御することと関連付けられ得るあらゆる課題を減らすのに有用であり得る。代わりに、比較的一定の振幅が(「オン」レベルに対して)使用されてもよく(「オフ」レベルでは振幅は0またはほぼ0である)、一方、デューティ比の正確な制御が、単一のシンボル時間長内の複数のタイムスロットにわたって時間領域において適用される。
【０１５６】
モジュールは都合のよいことに、共通の基板(たとえば、シリコンチップ)上に光装置と電子装置を集積することによって大規模に製造され得る。電気信号の代わりに光信号として基板上の信号をルーティングし、基板のある部分に光検出器をまとめることは、長い電子配線と、それに関連する課題(たとえば、寄生容量、インダクタンス、およびクロストーク)をなくすのを助け得る。
【０１５７】
部分行列乗算を使用するシステムの実施形態に対して、出力ベクトルの各要素は、異なるデバイス(たとえば、異なるコア、異なるプロセッサ、異なるコンピュータ、異なるサーバ)を使用して同時に計算され、メモリウォールなどの何らかの潜在的な制約を軽減するのを助け、システム全体が非常に大きい行列に対してスケーリングするのを助けることができる。いくつかの実施形態では、各部分行列は、異なるデバイスを使用して対応する部分ベクトルによって乗算され得る。次いで、異なるデバイスからの被加数を集め、または累積することによって、総計が計算され得る。都合の良いことに、光信号の形式の中間結果は、デバイスが比較的長い距離離れている場合であっても、デバイス間で輸送することができる。
【０１５８】
他の態様は、方法、装置、システム、プログラム製品として、および他の方法で表現される、上で列挙された特徴と他の特徴の他の組合せを含む。
【０１５９】
本明細書で説明される主題の特定の実施形態は、以下の利点のうちの1つまたは複数を実現するように実装され得る。ANN計算のスループット、レイテンシ、または両方が改善され得る。ANN計算の電力効率が改善され得る。
【０１６０】
別の態様では、装置は、複数の光導波管であって、複数の入力値のセットが光導波管によって搬送されるそれぞれの光信号上に符号化される、複数の光導波管と、複数の複製モジュールであって、1つまたは複数光信号の少なくとも2つのサブセットの各々に対して、複製モジュールのうちの1つまたは複数の対応するセットが、1つまたは複数の光信号のサブセットを光信号の2つ以上の複製に分割するように構成される、複数の複製モジュールと、複数の乗算モジュールであって、1つまたは複数の光信号の第1のサブセットの少なくとも2つの複製の各々に対して、対応する乗算モジュールが、光振幅変調を使用して第1のサブセットの1つまたは複数の光信号を1つまたは複数の行列要素値と乗算するように構成され、乗算モジュールのうちの少なくとも1つが入力ポートおよび2つの出力ポートを含む光振幅変調器を含み、関連する光信号のペアが、関連する光信号の振幅間の差が入力値を符号付きの行列要素値と乗算した結果に対応するように2つの出力ポートから提供される、複数の乗算モジュールと、1つまたは複数の加算モジュールであって、乗算モジュールのうちの2つ以上の結果に対して、加算モジュールの対応する1つが、乗算モジュールの2つ以上の結果の合計を表す電気信号を生み出すように構成される、1つまたは複数の加算モジュールとを含む。
【０１６１】
装置の実施形態は、以下の特徴のうちの1つまたは複数を含み得る。たとえば、それぞれの光信号上に符号化された複数の入力値のセットの中の入力値は、1つまたは複数の行列要素値を含む行列と乗算されている、入力ベクトルの要素を表すことができる。
【０１６２】
いくつかの実装形態では、複数の出力値のセットは、1つまたは複数の加算モジュールによって生み出されるそれぞれの電気信号上に符号化されてもよく、複数の出力値のセットの中の出力値は、入力ベクトルが行列と乗算されることに起因する出力ベクトルの要素を表すことができる。
【０１６３】
いくつかの実装形態では、光導波管によって搬送される光信号の各々は、光信号のすべてに対して実質的に同一である共通の波長を有する光波を含み得る。
【０１６４】
いくつかの実装形態では、複製モジュールは、入力ポートにおける光波のパワーの所定の割合を第1の出力ポートに送り、入力ポートにおける光波のパワーの残りの割合を第2の出力ポートに送る、光分割器を含む少なくとも1つの複製モジュールを含み得る。
【０１６５】
いくつかの実装形態では、光分割器は、入力光導波管によって導かれる光波のパワーの所定の割合を第1の出力光導波管に送り、入力光導波管によって導かれる光波のパワーの残りの割合を第2の出力光導波管に送る、導波管光分割器を含み得る。
【０１６６】
いくつかの実装形態では、入力光導波管の導波モード(guided mode)は、第1の出力光導波管および第2の出力光導波管の各々の導波モードに断熱的に結合され得る。
【０１６７】
いくつかの実装形態では、光分割器は、入力ポートにおける光波のパワーの所定の割合を伝導し、入力ポートにおける光波のパワーの残りの割合を反射する、少なくとも1つの面を含むビーム分割器を含み得る。
【０１６８】
いくつかの実装形態では、複数の光導波管のうちの少なくとも1つは、光ファイバの導波モードを自由空間の伝搬モードに結合する、光カプラに結合された光ファイバを含み得る。
【０１６９】
いくつかの実装形態では、乗算モジュールは、少なくとも1つのコヒーレンスの影響を受けやすい乗算モジュールを含み得、このコヒーレンスの影響を受けやすい乗算モジュールは、コヒーレンスの影響を受けやすい乗算モジュールを通る伝播距離と少なくとも同じ長さのコヒーレンス長を有する光波間の干渉に基づく光振幅変調を使用して、第1のサブセットの1つまたは複数の光信号を1つまたは複数の行列要素値と乗算するように構成される。
【０１７０】
いくつかの実装形態では、コヒーレンスの影響を受けやすい乗算モジュールは、マッハツェンダー干渉計(MZI)を含んでもよく、このMZIは、入力光導波管によって導かれる光波をMZIの第1の光導波管アームおよびMZIの第2の光導波管アームに分割し、第1の光導波管アームは、第2の光導波管アームの位相遅れに関する相対的な位相シフトを与える位相シフタを含み、MZIは、第1の光導波管アームおよび第2の光導波管アームからの光波を、少なくとも1つの出力光導波管へと組み合わせる。
【０１７１】
いくつかの実装形態では、MZIは、第1の光導波管アームおよび第2の光導波管アームからの光波を、第1の出力光導波管および第2の出力光導波管の各々へと組み合わせることができ、第1の光検出器は、第1の出力光導波管からの光波を受信して第1の光電流を生成することができ、第2の光検出器は、第2の出力光導波管からの光波を受信して第2の光電流を生成することができ、コヒーレンスの影響を受けやすい乗算モジュールの結果は、第1の光電流と第2の光電流との差を含み得る。
【０１７２】
いくつかの実装形態では、コヒーレンスの影響を受けやすい乗算モジュールは、第1の光導波管に結合された少なくとも1つのリング共振器および第2の光導波管に結合された少なくとも1つのリング共振器を含む、1つまたは複数のリング共振器を含み得る。
【０１７３】
いくつかの実装形態では、第1の光検出器は、第1の光導波管から光波を受信して第1の光電流を生成することができ、第2の光検出器は、第2の光導波管から光波を受信して第2の光電流を生成することができ、コヒーレンスの影響を受けやすい乗算モジュールの結果は、第1の光電流と第2の光電流との差を含み得る。
【０１７４】
いくつかの実装形態では、乗算モジュールは、少なくとも1つのコヒーレンスの影響を受けにくい乗算モジュールを含み得、このコヒーレンスの影響を受けにくい乗算モジュールは、光波内のエネルギーの吸収に基づく光振幅変調を使用して、第1のサブセットの1つまたは複数の光信号を1つまたは複数の行列要素値と乗算するように構成される。
【０１７５】
いくつかの実装形態では、コヒーレンスの影響を受けにくい乗算モジュールは、電界吸収型変調器を含み得る。
【０１７６】
いくつかの実装形態では、1つまたは複数の加算モジュールは、(1)その振幅が乗算モジュールのそれぞれ1つのそれぞれの結果を表す、入力電流の形式の電気信号を各々搬送する2つ以上の入力導体と、(2)入力電流の合計に比例する出力電流の形式でそれぞれの結果の合計を表す電気信号を搬送する少なくとも1つの出力導体とを含む、少なくとも1つの加算モジュールを含み得る。
【０１７７】
いくつかの実装形態では、2つ以上の入力導体および出力導体は、配線間の1つまたは複数の交点において交わる配線を含んでもよく、出力電流は入力電流の合計に実質的に等しくてもよい。
【０１７８】
いくつかの実装形態では、入力電流の少なくとも第1の入力電流は、乗算モジュールのうちの第1の乗算モジュールによって生成される光信号を受信する少なくとも1つの光検出器によって生成される少なくとも1つの光電流の形式で提供され得る。
【０１７９】
いくつかの実装形態では、第1の入力電流は、第1の乗算モジュールによって両方とも生成される異なる光信号を受信する異なるそれぞれの光検出器によって生成される、2つの光電流間の差の形式で提供され得る。
【０１８０】
いくつかの実装形態では、1つまたは複数の光信号の第1のサブセットの複製のうちの1つは、入力値のうちの1つがその上で符号化される単一の光信号からなり得る。
【０１８１】
いくつかの実装形態では、第1のサブセットの複製に対応する乗算モジュールは、符号化された入力値を単一の行列要素値と乗算することができる。
【０１８２】
いくつかの実装形態では、1つまたは複数の光信号の第1のサブセットの複製のうちの1つは、光信号のうちの1つよりも多数かつ光信号のすべてよりも少数を含んでもよく、それらの上で複数の入力値が符号化される。
【０１８３】
いくつかの実装形態では、第1のサブセットの複製に対応する乗算モジュールは、符号化された入力値を異なるそれぞれの行列要素値と乗算することができる。
【０１８４】
いくつかの実装形態では、1つまたは複数の光信号の第1のサブセットの異なるそれぞれの複製に対応する異なる乗算モジュールは、異なるデバイス間で1つまたは複数の光信号の第1のサブセットの複製のうちの1つを送信するために光学的に連絡している異なるデバイスに格納され得る。
【０１８５】
いくつかの実装形態では、複数の光導波管のうちの2つ以上、複数の複製モジュールのうちの2つ以上、複数の乗算モジュールのうちの2つ以上、および1つまたは複数の加算モジュールのうちの少なくとも1つが、共通のデバイスの基板上に配置され得る。
【０１８６】
いくつかの実装形態では、デバイスは、ベクトル行列乗算を実行することができ、入力ベクトルが光信号のセットとして提供されてもよく、出力ベクトルが電気信号のセットとして提供されてもよい。
【０１８７】
いくつかの実装形態では、装置はさらに、乗算モジュールまたは加算モジュールの出力に対応する入力電気信号を統合する累算器を含んでもよく、入力電気信号は、複数のタイムスロットの各々内でオンオフ振幅変調を使用する時間領域符号化を使用して符号化されてもよく、累算器は、複数のタイムスロットにわたり、時間領域符号化の異なるデューティ比に対応する2つよりも多くの振幅レベルを用いて符号化される、出力電気信号を生み出すことができる。
【０１８８】
いくつかの実装形態では、乗算モジュールの2つ以上が各々、1つまたは複数の光信号の異なるサブセットに対応する。
【０１８９】
いくつかの実装形態では、装置はさらに、1つまたは複数の光信号の第1のサブセットの中の光信号と異なる、1つまたは複数の光信号の第2のサブセットの各複製に対して、光振幅変調を使用して第2のサブセットの1つまたは複数の光信号を1つまたは複数の行列要素値と乗算するように構成される乗算モジュールを含み得る。
【０１９０】
別の態様では、方法は、それぞれの光信号に対して複数の入力値のセットを符号化するステップと、1つまたは複数の光信号の少なくとも2つのサブセットの各々に対して、1つまたは複数の複製モジュールの対応するセットを使用して1つまたは複数の光信号のサブセットを光信号の2つ以上の複製に分割するステップと、1つまたは複数の光信号の第1のサブセットの少なくとも2つの複製の各々に対して、対応する乗算モジュールを使用して、光振幅変調を使用して第1のサブセットの1つまたは複数の光信号を1つまたは複数の行列要素値と乗算するステップであって、乗算モジュールのうちの少なくとも1つが、入力ポートおよび2つの出力ポートを含む光振幅変調器を含み、関連する光信号のペアが、関連する光信号の振幅間の差が入力値を符号付きの行列要素値と乗算した結果に対応するように2つの出力ポートから提供される、ステップと、乗算モジュールのうちの2つ以上の結果に対して、乗算モジュールのうちの2つ以上の結果の合計を表す電気信号を生み出すように構成される加算モジュールを使用するステップとを含む。
【０１９１】
別の態様では、方法は、それぞれの光信号上に入力ベクトルの要素を表す入力値のセットを符号化するステップと、光信号に結合された光振幅変調器のセットの振幅変調レベルとして行列の要素を表す係数のセットを符号化するステップであって、入力ポートおよび2つの出力ポートを含む光振幅変調器のうちの少なくとも1つが、関連する光信号の振幅間の差が入力値を符号付きの行列要素値と乗算した結果に対応するように2つの出力ポートから関連する光信号のペアを提供する、ステップと、それぞれの電気信号上に出力ベクトルの要素を表す出力値のセットを符号化するステップであって、電気信号のうちの少なくとも1つが、その振幅が入力ベクトルのそれぞれの要素の合計と行列の行のそれぞれの要素を乗じたものに対応する電流の形式である、ステップとを含む。
【０１９２】
方法の実施形態は、以下の特徴のうちの1つまたは複数を含み得る。たとえば、光信号のうちの少なくとも1つは第1の光導波管によって提供されてもよく、第1の光導波管は、第1の光導波管によって導かれる光波のパワーの所定の割合を第2の出力光導波管に送り、第1の光導波管によって導かれる光波のパワーの残りの割合を第3の光導波管に送る、光分割器に結合され得る。
【０１９３】
別の態様では、装置は、光導波管によって搬送されるそれぞれの光信号上で入力ベクトルの要素を表す入力値のセットを符号化する複数の光導波管と、行列の要素を表す係数のセットを振幅変調レベルとして符号化する光信号に結合された光振幅変調器のセットであって、入力ポートおよび2つの出力ポートを含む光振幅変調器のうちの少なくとも1つが、関連する光信号の振幅間の差が入力値を符号付きの行列要素値と乗算した結果に対応するように2つの出力ポートから関連する光信号のペアを提供する、光振幅変調器のセットと、それぞれの電気信号上に出力ベクトルの要素を表す出力値のセットを符号化する複数の加算モジュールであって、電気信号のうちの少なくとも1つが、その振幅が入力ベクトルのそれぞれの要素の合計と行列の行のそれぞれの要素を乗じたものに対応する電流の形式である、複数の加算モジュールとを含む。
【０１９４】
別の態様では、入力ベクトルを所与の行列と乗算するための方法は、光信号のセットのそれぞれの光信号上に入力ベクトルの要素を表す入力値のセットを符号化するステップと、1つまたは複数のデバイスの第1のセットを、光信号のセットの第1のサブセットを提供する1つまたは複数の導波管の第1のセットに結合するステップと、光信号のセットの第1のサブセット上に符号化された値と所与の行列の第1の部分行列を乗算した結果を生成するステップと、1つまたは複数のデバイスの第2のセットを、光信号のセットの第2のサブセットを提供する1つまたは複数の導波管の第2のセットに結合するステップと、光信号のセットの第2のサブセット上に符号化された値を所与の行列の第2の部分行列と乗算した結果を生成するステップと、1つまたは複数のデバイスの第3のセットを、第1の光分割器によって生成される光信号のセットの第1のサブセットの複製を提供する1つまたは複数の導波管の第3のセットに結合するステップと、光信号のセットの第1のサブセット上に符号化された値と所与の行列の第3の部分行列を乗算した結果を生成するステップと、1つまたは複数のデバイスの第4のセットを、第2の光分割器によって生成された光信号のセットの第2のサブセットの複製を提供する1つまたは複数の導波管の第4のセットに結合するステップと、光信号のセットの第2のサブセット上に符号化された値と所与の行列の第4の部分行列を乗算した結果を生成するステップとを含み、一緒に連結された第1、第2、第3、および第4の部分行列は所与の行列を形成し、所与の行列と乗算された入力ベクトルに対応する出力ベクトルの要素を表す少なくとも1つの出力値は、1つまたは複数のデバイスの第1のセットおよび1つまたは複数のデバイスの第2のセットと通信しているデバイスによって生成される電気信号上に符号化される。
【０１９５】
方法の実施形態は、以下の特徴のうちの1つまたは複数を含み得る。たとえば、1つまたは複数のデバイスの第1のセット、1つまたは複数のデバイスの第2のセット、1つまたは複数のデバイスの第3のセット、および1つまたは複数のデバイスの第4のセットのセットの各ペアは、相互に排他的であり得る。
【０１９６】
別の態様では、装置は、光信号の第1のセットを受信し、光信号の第1のセット上に符号化された値を第1の行列と乗算した結果を生成するように構成される、1つまたは複数のデバイスの第1のセットと、光信号の第2のセットを受信し、光信号の第2のセット上に符号化された値を第2の行列と乗算した結果を生成するように構成される、1つまたは複数のデバイスの第2のセットと、光信号の第3のセットを受信し、光信号の第3のセット上に符号化された値を第3の行列と乗算した結果を生成するように構成される、1つまたは複数のデバイスの第3のセットと、光信号の第4のセットを受信し、光信号の第4のセット上に符号化された値を第4の行列と乗算した結果を生成するように構成される、1つまたは複数のデバイスの第4のセットと、1つもしくは複数のデバイスの第1のセット、1つもしくは複数のデバイスの第2のセット、1つもしくは複数のデバイスの第3のセット、または1つもしくは複数のデバイスの第4のセットのうちの2つ以上の間の構成可能な接続経路とを含み、構成可能な接続経路の第1の構成は、(1)光信号の第2のセット、光信号の第3のセット、または光信号の第4のセットのうちの少なくとも1つとして光信号の第1のセットの複製を提供し、(2)加算モジュールによって受信された信号上に符号化された値の合計を表す電気信号を生み出すように構成される加算モジュールに、1つまたは複数のデバイスの第1のセットからの1つまたは複数の信号および1つまたは複数のデバイスの第2のセットからの1つまたは複数の信号を提供するように構成される。
【０１９７】
別の態様では、装置は、光信号の第1のセットを受信し、光信号の第1のセットの光信号のうちの1つまたは複数の光振幅変調に基づく結果を生成するように構成される、1つまたは複数のデバイスの第1のセットと、光信号の第2のセットを受信し、光信号の第2のセットの光信号のうちの1つまたは複数の光振幅変調に基づく結果を生成するように構成される、1つまたは複数のデバイスの第2のセットと、光信号の第3のセットを受信し、光信号の第3のセットの光信号のうちの1つまたは複数の光振幅変調に基づく結果を生成するように構成される、1つまたは複数のデバイスの第3のセットと、光信号の第4のセットを受信し、光信号の第4のセットの光信号のうちの1つまたは複数の光振幅変調に基づく結果を生成するように構成される、1つまたは複数のデバイスの第4のセットと、1つもしくは複数のデバイスの第1のセット、1つもしくは複数のデバイスの第2のセット、1つもしくは複数のデバイスの第3のセット、または1つもしくは複数のデバイスの第4のセットのうちの2つ以上の間の構成可能な接続経路とを含み、構成可能な接続経路の第1の構成は、(1)光信号の第1のセットの複製を光信号の第3のセットとして提供し、または(2)加算モジュールによって受信された信号上に符号化される値の合計を表す電気信号を生み出すように構成される加算モジュールに、1つまたは複数のデバイスの第1のセットからの1つまたは複数の信号および1つまたは複数のデバイスの第2のセットからの1つまたは複数の信号を提供するように構成される。
【０１９８】
装置の実施形態は、以下の特徴のうちの1つまたは複数を含み得る。たとえば、1つまたは複数のデバイスの第1のセット、1つまたは複数のデバイスの第2のセット、1つまたは複数のデバイスの第3のセット、および1つまたは複数のデバイスの第4のセットのセットの各ペアは、相互に排他的であり得る。
【０１９９】
いくつかの実装形態では、構成可能な接続経路の第1の構成は、(1)光信号の第1のセットの複製を光信号の第3のセットとして提供し、(2)加算モジュールによって受信された少なくとも2つの異なる信号上に符号化される値の合計を表す電気信号を生み出すように構成される加算モジュールに、1つまたは複数のデバイスの第1のセットからの1つまたは複数の信号および1つまたは複数のデバイスの第2のセットからの1つまたは複数の信号を提供するように構成され得る。
【０２００】
いくつかの実装形態では、構成可能な接続経路の第1の構成は、光信号の第1のセットの複製を光信号の第3のセットとして提供するように構成されてもよく、構成可能な接続経路の第2の構成は、加算モジュールによって受信された信号上に符号化される値の合計を表す電気信号を生み出すように構成される加算モジュールに、1つまたは複数のデバイスの第1のセットからの1つまたは複数の信号および1つまたは複数のデバイスの第2のセットからの1つまたは複数の信号を提供するように構成され得る。
【０２０１】
別の態様では、装置は、複数の光導波管であって、複数の入力値のセットが光導波管によって搬送されるそれぞれの光信号上に符号化される、複数の光導波管と、1つまたは複数の光信号の少なくとも2つのサブセットの各々に対して、1つまたは複数の光信号のサブセットを光信号の2つ以上の複製に分割するように構成される1つまたは複数の複製モジュールの対応するセットを含む、複数の複製モジュールと、1つまたは複数の光信号の第1のサブセットの少なくとも2つの複製の各々に対して、光振幅変調を使用して第1のサブセットの1つまたは複数の光信号を1つまたは複数の値と乗算するように構成される対応する乗算モジュールを含む、複数の乗算モジュールと、乗算モジュールのうちの2つ以上の結果に対して、乗算モジュールのうちの2つ以上の結果の合計を表す電気信号を生み出すように構成される加算モジュールを含む、1つまたは複数の加算モジュールとを含み、結果は、電気信号上に符号化され、電気信号に変換される前に単一の光振幅変調器だけを通って伝播した光信号の複製のうちの1つから導出された、少なくとも1つの結果を含む。
【０２０２】
別の態様では、システムは、複数の変調器制御信号を生成するように構成される第1のユニットと、プロセッサユニットとを含み、プロセッサユニットは、複数の光出力を提供するように構成される光源と、光源および第1のユニットに結合された複数の光変調器であって、複数の変調器制御信号に基づいて光源によって提供された複数の光出力を変調することによって光入力ベクトルを生成するように構成され、光入力ベクトルが複数の光信号を備える、複数の光変調器と、複数の光変調器および第1のユニットに結合された行列乗算ユニットであって、複数の重み制御信号に基づいて光入力ベクトルをアナログ出力ベクトルに変換するように構成される、行列乗算ユニットとを含む。システムはまた、行列乗算ユニットに結合され、アナログ出力ベクトルをデジタル化された出力ベクトルに変換するように構成される、第2のユニットと、集積回路を含むコントローラとを含み、このコントローラは、第1のデジタル入力ベクトルを備える入力データセットを備える人工ニューラルネットワーク計算要求を受信することと、第1の複数のニューラルネットワーク重みを受信することと、第1のユニットを通じて、第1のデジタル入力ベクトルに基づく第1の複数の変調器制御信号と、第1の複数のニューラルネットワーク重みに基づく第1の複数の重み制御信号とを生成することとを含む、動作を実行するように構成される。
【０２０３】
システムの実施形態は、以下の特徴のうちの1つまたは複数を含み得る。たとえば、第1のユニットはデジタルアナログコンバータ(DAC)を含み得る。
【０２０４】
いくつかの実装形態では、第2のユニットはアナログデジタルコンバータ(ADC)を含み得る。
【０２０５】
いくつかの実装形態では、システムは、データセットおよび複数のニューラルネットワーク重みを記憶するように構成されるメモリユニットを含み得る。
【０２０６】
いくつかの実装形態では、コントローラの集積回路はさらに、メモリユニットに、入力データセットおよび第1の複数のニューラルネットワーク重みを記憶することを含む動作を実行するように構成され得る。
【０２０７】
いくつかの実装形態では、第1のユニットは、複数の重み制御信号を生成するように構成され得る。
【０２０８】
いくつかの実装形態では、コントローラは特定用途向け集積回路(ASIC)を含んでもよく、人工ニューラルネットワーク計算要求を受信することは、汎用データプロセッサから、人工ニューラルネットワーク計算要求を受信することを含み得る。
【０２０９】
いくつかの実装形態では、第1のユニット、処理ユニット、第2のユニット、およびコントローラは、マルチチップモジュールまたは集積回路のうちの少なくとも1つに配設され得る。人工ニューラルネットワーク計算要求を受信することは、第2のデータプロセッサから、人工ニューラルネットワーク計算要求を受信することを含んでもよく、第2のデータプロセッサはマルチチップモジュールまたは集積回路の外部にあってもよく、第2のデータプロセッサは通信チャネルを通じてマルチチップモジュールまたは集積回路に結合されてもよく、プロセッサユニットは、通信チャネルのデータレートよりも少なくとも1桁(at least an order of magnitude)高いデータレートでデータを処理することができる。
【０２１０】
いくつかの実装形態では、第1のユニット、プロセッサユニット、第2のユニット、およびコントローラは、複数の反復について繰り返される光電子処理ループにおいて使用されてもよく、光電子処理ループは、(1)複数の変調器制御信号のうちの少なくとも1つに基づく少なくとも第1の光変調動作、および重み制御信号のうちの少なくとも1つに基づく少なくとも第2の光変調動作、ならびに(2)(a)電気加算動作または(b)電気記憶動作のうちの少なくとも1つを含む。
【０２１１】
いくつかの実装形態では、光電子処理ループは電気記憶動作を含んでもよく、電気記憶動作は、コントローラに結合されたメモリユニットを使用して実行されてもよく、コントローラによって実行される動作はさらに、メモリユニットに、入力データセットおよび第1の複数のニューラルネットワーク重みを記憶することを含み得る。
【０２１２】
いくつかの実装形態では、光電子処理ループは電気加算動作を含んでもよく、電気加算動作は、行列乗算ユニット内の電気加算モジュールを使用して実行されてもよく、電気加算モジュールは、それぞれのニューラルネットワーク重みと乗算された光入力ベクトルのそれぞれの要素の合計を表すアナログ出力ベクトルの要素に対応する電流を生成するように構成され得る。
【０２１３】
いくつかの実装形態では、光電子処理ループは、少なくとも1つの信号経路を含み得、この少なくとも1つの信号経路では、複数の変調器制御信号のうちの少なくとも1つに基づく1回だけの第1の光変調動作、および重み制御信号のうちの少なくとも1つに基づく1回だけの第2の光変調動作が、単一のループ反復において実行される。
【０２１４】
いくつかの実装形態では、第1の光変調動作は、光出力の源に、および行列乗算ユニットに結合された複数の光変調器のうちの1つによって実行されてもよく、第2の光変調動作は、行列乗算ユニットに含まれる光変調器によって実行されてもよい。
【０２１５】
いくつかの実装形態では、光電子処理ループは、少なくとも1つの信号経路を含み得、この少なくとも1つの信号経路では、1回だけの電気的な記憶が単一のループ反復において実行される。
【０２１６】
いくつかの実装形態では、源は、複数の光出力を生成するように構成されるレーザーユニットを含み得る。
【０２１７】
いくつかの実装形態では、行列乗算ユニットは、光入力ベクトルを受信するための入力導波管の列であって、光入力ベクトルが光信号の第1の列を備える、入力導波管の列と、光信号の第2の列への光入力ベクトルの線形変換を実行するための、入力導波管の列と光学的に連絡している光干渉ユニットと、光信号の第2の列を導くための、光干渉ユニットと光学的に連絡している出力導波管の列とを含んでもよく、入力導波管の列の中の少なくとも1つの入力導波管は、光干渉ユニットを介して出力導波管の列の中の各出力導波管と光学的に連絡している。
【０２１８】
いくつかの実装形態では、光干渉ユニットは、複数の相互接続されたマッハツェンダー干渉計(MZI)を含んでもよく、複数の相互接続されたMZIの中の各MZIは、MZIの分割比を変更するように構成される第1の位相シフタと、MZIの1つの出力の位相をシフトするように構成される第2の位相シフタとを含み、第1の位相シフタおよび第2の位相シフタは、複数の重み制御信号に結合される。
【０２１９】
いくつかの実装形態では、行列乗算ユニットは、複数の複製モジュールであって、複製モジュールの各々が、光入力ベクトルの1つまたは複数の光信号のサブセットに対応し、1つまたは複数の光信号のサブセットを光信号の2つ以上の複製に分割するように構成される、複製モジュールと、複数の乗算モジュールであって、乗算モジュールの各々が、光振幅変調を使用してサブセットの1つまたは複数の光信号を1つまたは複数の行列要素値と乗算するように構成される1つまたは複数の光信号のサブセットに対応する、複数の乗算モジュールと、1つまたは複数の加算モジュールであって、各加算モジュールが、乗算モジュールのうちの2つ以上の結果の合計を表す電気信号を生み出すように構成される、1つまたは複数の加算モジュールとを含み得る。
【０２２０】
いくつかの実装形態では、乗算モジュールのうちの少なくとも1つは、入力ポートおよび2つの出力ポートを含む光振幅変調器を含み、関連する光信号のペアは、関連する光信号の振幅間の差が入力値を符号付きの行列要素値と乗算した結果に対応するように、2つの出力ポートから提供され得る。
【０２２１】
いくつかの実装形態では、行列乗算ユニットは、1つまたは複数の行列要素値を含む行列と入力ベクトルを乗算するように構成され得る。
【０２２２】
いくつかの実装形態では、複数の出力値のセットは、1つまたは複数の加算モジュールによって生み出されるそれぞれの電気信号上で符号化されてもよく、複数の出力値のセットの中の出力値は、入力ベクトルが行列と乗算されることに起因する出力ベクトルの要素を表すことができる。
【０２２３】
いくつかの実装形態では、システムは、入力データセットおよびニューラルネットワーク重みを記憶するように構成されるメモリユニットを含んでもよく、第2のユニットはアナログデジタルコンバータ(ADC)ユニットを含んでもよく、動作はさらに、ADCユニットから、行列乗算ユニットのアナログ出力ベクトルに対応する第1の複数のデジタル化された出力を取得することであって、第1の複数のデジタル化された出力が第1のデジタル出力ベクトルを形成する、取得することと、第1のデジタル出力ベクトルに対して非線形変換を実行して、第1の変換されたデジタル出力ベクトルを生成することと、メモリユニットに、第1の変換されたデジタル出力ベクトルを記憶することとを含み得る。
【０２２４】
いくつかの実装形態では、システムは、メモリユニットに、入力データセットおよび第1の複数のニューラルネットワーク重みを記憶するステップと、メモリユニットに、第1の変換されたデジタル出力ベクトルを記憶するステップとの間に経過した時間として定義される、第1のループ期間を有してもよく、第1のループ期間は1ns以下である。
【０２２５】
いくつかの実装形態では、動作はさらに、第1の変換されたデジタル出力ベクトルに基づいて生成された人工ニューラルネットワーク出力を出力することを含み得る。
【０２２６】
いくつかの実装形態では、第1のユニットはデジタルアナログコンバータ(DAC)ユニットを含んでもよく、動作はさらに、DACユニットを通じて、第1の変換されたデジタル出力ベクトルに基づいて第2の複数の変調器制御信号を生成することを含み得る。
【０２２７】
いくつかの実装形態では、第1のユニットはデジタルアナログコンバータ(DAC)ユニットを含んでもよく、人工ニューラルネットワーク計算要求はさらに、第2の複数のニューラルネットワーク重みを含んでもよく、動作はさらに、第1の複数のデジタル化された出力の取得に基づいて、DACユニットを通じて、第2の複数のニューラルネットワーク重みに基づいて第2の複数の重み制御信号を生成することを含み得る。
【０２２８】
いくつかの実装形態では、第1および第2の複数のニューラルネットワーク重みは、人工ニューラルネットワークの異なる層に対応し得る。
【０２２９】
いくつかの実装形態では、第1のユニットはデジタルアナログコンバータ(DAC)ユニットを含んでもよく、入力データセットはさらに第2のデジタル入力ベクトルを含んでもよい。動作はさらに、DACユニットを通じて、第2のデジタル入力ベクトルに基づいて第2の複数の変調器制御信号を生成することと、ADCユニットから、行列乗算ユニットの出力ベクトルに対応する第2の複数のデジタル化された出力を取得することであって、第2の複数のデジタル化された出力が第2のデジタル出力ベクトルを形成する、取得することと、第2のデジタル出力ベクトルに対して非線形変換を実行して、第2の変換されたデジタル出力ベクトルを生成することと、メモリユニットに、第2の変換されたデジタル出力ベクトルを記憶することと、第1の変換されたデジタル出力ベクトルおよび第2の変換されたデジタル出力ベクトルに基づいて生成された人工ニューラルネットワーク出力を出力することとを含み得る。行列乗算ユニットの出力ベクトルは、第1の言及された複数の重み制御信号に基づく行列乗算ユニットによって変換される第2の複数の変調器制御信号に基づいて生成される、第2の光入力ベクトルに起因し得る。
【０２３０】
いくつかの実装形態では、システムは、入力データセットおよびニューラルネットワーク重みを記憶するように構成されるメモリユニットを含んでもよく、第2のユニットは、アナログデジタルコンバータ(ADC)ユニットを含んでもよい。システムはさらに、行列乗算ユニットとADCユニットとの間に配置されるアナログ非線形性ユニットを含んでもよく、アナログ非線形性ユニットは、行列乗算ユニットから複数の出力電圧を受け取り、非線形伝達関数を適用し、複数の変換された出力電圧をADCユニットに出力するように構成され得る。コントローラの集積回路によって実行される動作はさらに、ADCユニットから、複数の変換された出力電圧に対応する第1の複数の変換されたデジタル化された出力電圧を取得することであって、第1の複数の変換されたデジタル化された出力電圧が第1の変換されたデジタル出力ベクトルを形成する、取得することと、メモリユニットに、第1の変換されたデジタル出力ベクトルを記憶することとを含み得る。
【０２３１】
いくつかの実装形態では、コントローラの集積回路は、8GHz以上のレートで第1の複数の変調制御信号を生成するように構成され得る。
【０２３２】
いくつかの実装形態では、第1のユニットはデジタルアナログコンバータ(DAC)ユニットを含んでもよく、第2のユニットはアナログデジタルコンバータ(ADC)ユニットを含んでもよい。行列乗算ユニットは、複数の光変調器およびDACユニットに結合された光行列乗算ユニットであって、複数の重み制御信号に基づいて光入力ベクトルを光出力ベクトルに変換するように構成される、光行列乗算ユニットと、光行列乗算ユニットに結合され、光出力ベクトルに対応する複数の出力電圧を生成するように構成される、光検出ユニットとを含み得る。
【０２３３】
いくつかの実装形態では、システムはさらに、DACユニットと複数の光変調器との間に配置されるアナログメモリユニットであって、アナログ電圧を記憶して記憶されているアナログ電圧を出力するように構成される、アナログメモリユニットと、光検出ユニットとADCユニットとの間に配置されるアナログ非線形性ユニットであって、光検出ユニットから複数の出力電圧を受け取り、非線形伝達関数を適用し、複数の変換された出力電圧を出力するように構成される、アナログ非線形性ユニットとを含み得る。
【０２３４】
いくつかの実装形態では、アナログメモリユニットは複数のキャパシタを含み得る。
【０２３５】
いくつかの実装形態では、アナログメモリユニットは、アナログ非線形性ユニットの複数の変換された出力電圧を受け取って記憶し、記憶されている複数の変換された出力電圧を複数の光変調器に出力するように構成され得る。動作はさらに、第1の複数の変調器制御信号および第1の複数の重み制御信号を生成したことに基づいて、アナログメモリユニットに、アナログ非線形性ユニットの複数の変換された出力電圧を記憶することと、アナログメモリユニットを通じて、記憶されている変換された出力電圧を出力することと、ADCユニットから、第2の複数の変換されたデジタル化された出力電圧を取得することであって、第2の複数の変換されたデジタル化された出力電圧が第2の変換されたデジタル出力ベクトルを形成する、取得することと、メモリユニットに、第2の変換されたデジタル出力ベクトルを記憶することとを含み得る。
【０２３６】
いくつかの実装形態では、システムは、入力データセットおよびニューラルネットワーク重みを記憶するように構成されるメモリユニットを含んでもよく、人工ニューラルネットワーク計算要求の入力データセットは複数のデジタル入力ベクトルを含んでもよい。源は複数の波長を生成するように構成され得る。複数の光変調器は、複数の光入力ベクトルを生成するように構成される光変調器のバンクであって、バンクの各々が、複数の波長のうちの1つに対応し、それぞれの波長を有するそれぞれの光入力ベクトルを生成する、バンクと、複数の光入力ベクトルを、複数の波長を備える組み合わされた光入力ベクトルに組み合わせるように構成される光マルチプレクサとを含み得る。光検出ユニットはさらに、複数の波長を逆多重化し、複数の逆多重化された出力電圧を生成するように構成され得る。動作はさらに、ADCユニットから、複数のデジタル化された逆多重化された光出力を取得することであって、複数のデジタル化された逆多重化された光出力が複数の第1のデジタル出力ベクトルを形成し、複数の第1のデジタル出力ベクトルの各々が複数の波長のうちの1つに対応する、取得することと、複数の第1のデジタル出力ベクトルの各々に対して非線形変換を実行して、複数の変換された第1のデジタル出力ベクトルを生成することと、メモリユニットに、複数の変換された第1のデジタル出力ベクトルを記憶することとを含み得る。複数のデジタル入力ベクトルの各々が、複数の光入力ベクトルのうちの1つに対応し得る。
【０２３７】
いくつかの実装形態では、システムは、入力データセットおよびニューラルネットワーク重みを記憶するように構成されるメモリユニットを含んでもよく、第2のユニットはアナログデジタルコンバータ(ADC)ユニットを含んでもよく、人工ニューラルネットワーク計算要求は複数のデジタル入力ベクトルを含んでもよい。源は複数の波長を生成するように構成され得る。複数の光変調器は、複数の光入力ベクトルを生成するように構成される光変調器のバンクであって、バンクの各々が、複数の波長のうちの1つに対応し、それぞれの波長を有するそれぞれの光入力ベクトルを生成する、バンクと、複数の光入力ベクトルを、複数の波長を備える組み合わされた光入力ベクトルに組み合わせるように構成される光マルチプレクサとを含み得る。動作は、ADCユニットから、複数の波長を備える光出力ベクトルに対応する第1の複数のデジタル化された光出力を取得することであって、第1の複数のデジタル化された光出力が第1のデジタル出力ベクトルを形成する、取得することと、第1のデジタル出力ベクトルに対して非線形変換を実行して、第1の変換されたデジタル出力ベクトルを生成することと、メモリユニットに、第1の変換されたデジタル出力ベクトルを記憶することとを含み得る。
【０２３８】
いくつかの実装形態では、第1のユニットはデジタルアナログコンバータ(DAC)ユニットを含んでもよく、第2のユニットはアナログデジタルコンバータ(ADC)ユニットを含んでもよく、DACユニットは、複数の1ビット変調器制御信号を生成するように構成される1ビットDACサブユニットを含んでもよい。ADCユニットの分解能は1ビットであってもよく、第1のデジタル入力ベクトルの分解能はNビットであってもよい。動作は、第1のデジタル入力ベクトルをN個の1ビット入力ベクトルに分解することであって、N個の1ビット入力ベクトルの各々が第1のデジタル入力ベクトルのNビットのうちの1つに対応する、分解することと、1ビットDACサブユニットを通じて、N個の1ビット入力ベクトルに対応するN個の1ビット変調器制御信号のシーケンスを生成することと、ADCユニットから、N個の1ビット変調器制御信号のシーケンスに対応するN個のデジタル化された1ビット光出力のシーケンスを取得することと、N個のデジタル化された1ビット光出力のシーケンスからNビットデジタル出力ベクトルを構築することと、構築されたNビットデジタル出力ベクトルに対して非線形変換を実行して、変換されたNビットデジタル出力ベクトルを生成することと、メモリユニットに、変換されたNビットデジタル出力ベクトルを記憶することとを含み得る。
【０２３９】
いくつかの実装形態では、システムは、入力データセットおよびニューラルネットワーク重みを記憶するように構成されるメモリユニットを含み得る。メモリユニットは、デジタル入力ベクトルを記憶するように構成され少なくとも1つのSRAMを備えるデジタル入力ベクトルメモリと、複数のニューラルネットワーク重みを記憶するように構成され少なくとも1つのDRAMを備えるニューラルネットワーク重みメモリとを含み得る。
【０２４０】
いくつかの実装形態では、第1のユニットは、複数の変調器制御信号を生成するように構成される第1のデジタルアナログコンバータ(DAC)サブユニットと、複数の重み制御信号を生成するように構成される第2のDACサブユニットとを含む、DACユニットを含んでもよく、第1のDACサブユニットおよび第2のDACサブユニットは異なる。
【０２４１】
いくつかの実装形態では、光源は、光を生成するように構成されるレーザー源と、レーザー源によって生成された光を複数の光出力に分割するように構成される光パワー分割器とを含んでもよく、複数の光出力の各々は実質的に等しいパワーを有する。
【０２４２】
いくつかの実装形態では、複数の光変調器は、MZI変調器、リング共振変調器、または電界吸収型変調器のうちの1つを含み得る。
【０２４３】
いくつかの実装形態では、光検出ユニットは、複数の光検出器と、光検出器によって生成された光電流を複数の出力電圧に変換するように構成される複数の増幅器とを含み得る。
【０２４４】
いくつかの実装形態では、集積回路は特定用途向け集積回路であり得る。
【０２４５】
いくつかの実装形態では、装置は、光変調器と行列乗算ユニットとの間に結合される複数の光導波管を含んでもよく、光入力ベクトルは、光導波管によって搬送されるそれぞれの光信号上に符号化される複数の入力値のセットを含んでもよく、光導波管のうちの1つによって搬送される光信号の各々は、光信号のすべてに対して実質的に同一の共通の波長を有する光波を含んでもよい。
【０２４６】
いくつかの実装形態では、複製モジュールは、入力ポートにおける光波のパワーの所定の割合を第1の出力ポートに送り、入力ポートにおける光波のパワーの残りの割合を第2の出力ポートに送る、光分割器を含む少なくとも1つの複製モジュールを含み得る。
【０２４７】
いくつかの実装形態では、光分割器は、入力光導波管によって導かれる光波のパワーの所定の割合を第1の出力光導波管に送り、入力光導波管によって導かれる光波のパワーの残りの割合を第2の出力光導波管に送る、導波管光分割器を含み得る。
【０２４８】
いくつかの実装形態では、入力光導波管の導波モードは、第1および第2の出力光導波管の各々の伝搬モードに導波モードに断熱的に結合され得る。
【０２４９】
いくつかの実装形態では、光分割器は、入力ポートにおける光波のパワーの所定の割合を伝達し、入力ポートにおける光波のパワーの残りの割合を反射する、少なくとも1つの面を含むビーム分割器を含み得る。
【０２５０】
いくつかの実装形態では、複数の光導波管の少なくとも1つは、光ファイバの導波モードを自由空間の伝搬モードに結合する光カプラに結合された光ファイバを含み得る。
【０２５１】
いくつかの実装形態では、乗算モジュールは、少なくとも1つのコヒーレンスの影響を受けやすい乗算モジュールを含み得、このコヒーレンスの影響を受けやすい乗算モジュールは、コヒーレンスの影響を受けやすい乗算モジュールを通る伝播距離と少なくとも同じ長さのコヒーレンス長を有する光波間の干渉に基づく光振幅変調を使用して、第1のサブセットの1つまたは複数の光信号を1つまたは複数の行列要素値と乗算するように構成される。
【０２５２】
いくつかの実装形態では、コヒーレンスの影響を受けやすい乗算モジュールは、マッハツェンダー干渉計(MZI)を含んでもよく、このMZIは、入力光導波管によって導かれる光波をMZIの第1の光導波管アームおよびMZIの第2の光導波管アームに分割し、第1の光導波管アームは、第2の光導波管アームの位相遅れに関する相対的な位相シフトを与える位相シフタを含み、MZIは、第1の光導波管アームおよび第2の光導波管アームからの光波を、少なくとも1つの出力光導波管へと組み合わせることができる。
【０２５３】
いくつかの実装形態では、MZIは、第1の光導波管アームおよび第2の光導波管アームからの光波を、第1の出力光導波管および第2の出力光導波管の各々へと組み合わせることができ、第1の光検出器は、第1の出力光導波管からの光波を受信して第1の光電流を生成することができ、第2の光検出器は、第2の出力光導波管からの光波を受信して第2の光電流を生成することができ、コヒーレンスの影響を受けやすい乗算モジュールの結果は、第1の光電流と第2の光電流との差を含み得る。
【０２５４】
いくつかの実装形態では、コヒーレンスの影響を受けやすい乗算モジュールは、第1の光導波管に結合された少なくとも1つのリング共振器および第2の光導波管に結合された少なくとも1つのリング共振器を含む、1つまたは複数のリング共振器を含み得る。
【０２５５】
いくつかの実装形態では、第1の光検出器は、第1の光導波管から光波を受信して第1の光電流を生成することができ、第2の光検出器は、第2の光導波管から光波を受信して第2の光電流を生成することができ、コヒーレンスの影響を受けやすい乗算モジュールの結果は、第1の光電流と第2の光電流との差を含み得る。
【０２５６】
いくつかの実装形態では、乗算モジュールは、少なくとも1つのコヒーレンスの影響を受けにくい乗算モジュールを含み得、このコヒーレンスの影響を受けにくい乗算モジュールは、光波内のエネルギーの吸収に基づく光振幅変調を使用して、第1のサブセットの1つまたは複数の光信号を1つまたは複数の行列要素値と乗算するように構成される。
【０２５７】
いくつかの実装形態では、コヒーレンスの影響を受けにくい乗算モジュールは、電界吸収型変調器を含み得る。
【０２５８】
いくつかの実装形態では、1つまたは複数の加算モジュールは、(1)その振幅が乗算モジュールのそれぞれ1つのそれぞれの結果を表す、入力電流の形式の電気信号を各々搬送する2つ以上の入力導体と、(2)入力電流の合計に比例する出力電流の形式でそれぞれの結果の合計を表す電気信号を搬送する少なくとも1つの出力導体とを含む、少なくとも1つの加算モジュールを含み得る。
【０２５９】
いくつかの実装形態では、2つ以上の入力導体および出力導体は、配線間の1つまたは複数の交点において交わる配線を含んでもよく、出力電流は入力電流の合計に実質的に等しくてもよい。
【０２６０】
いくつかの実装形態では、入力電流のうちの少なくとも第1の入力電流は、乗算モジュールのうちの第1の乗算モジュールによって生成される光信号を受信する少なくとも1つの光検出器によって生成される少なくとも1つの光電流の形式で提供され得る。
【０２６１】
いくつかの実装形態では、第1の入力電流は、第1の乗算モジュールによって両方とも生成される異なるそれぞれの光信号を受信する異なるそれぞれの光検出器によって生成される、2つの光電流間の差の形式で提供され得る。
【０２６２】
いくつかの実装形態では、1つまたは複数の光信号の第1のサブセットの複製のうちの1つは、入力値のうちの1つがその上で符号化される単一の光信号からなり得る。
【０２６３】
いくつかの実装形態では、第1のサブセットの複製に対応する乗算モジュールは、符号化された入力値を単一の行列要素値と乗算することができる。
【０２６４】
いくつかの実装形態では、1つまたは複数の光信号の第1のサブセットの複製のうちの1つは、それらの上で複数の入力値が符号化される、光信号のうちの1つよりも多数かつ光信号のすべてよりも少数を含んでもよい。
【０２６５】
いくつかの実装形態では、第1のサブセットの複製に対応する乗算モジュールは、符号化された入力値を異なるそれぞれの行列要素値と乗算することができる。
【０２６６】
いくつかの実装形態では、1つまたは複数の光信号の第1のサブセットの異なるそれぞれの複製に対応する異なる乗算モジュールは、異なるデバイス間で1つまたは複数の光信号の第1のサブセットの複製のうちの1つを送信するために光学的に連絡している異なるデバイスに格納され得る。
【０２６７】
いくつかの実装形態では、複数の光導波管のうちの2つ以上、複数の複製モジュールのうちの2つ以上、複数の乗算モジュールのうちの2つ以上、および1つまたは複数の加算モジュールのうちの少なくとも1つが、共通のデバイスの基板上に配置され得る。
【０２６８】
いくつかの実装形態では、デバイスは、ベクトル行列乗算を実行することができ、入力ベクトルが光信号のセットとして提供されてもよく、出力ベクトルが電気信号のセットとして提供されてもよい。
【０２６９】
いくつかの実装形態では、装置はさらに、乗算モジュールまたは加算モジュールの出力に対応する入力電気信号を統合する累算器を含んでもよく、入力電気信号は、複数のタイムスロットの各々内でオンオフ振幅変調を使用する時間領域符号化を使用して符号化されてもよく、累算器は、複数のタイムスロットにわたり、時間領域符号化の異なるデューティ比に対応する2つよりも多くの振幅レベルを用いて符号化される、出力電気信号を生み出すことができる。
【０２７０】
いくつかの実装形態では、乗算モジュールの2つ以上が各々、1つまたは複数の光信号の異なるサブセットに対応する。
【０２７１】
いくつかの実装形態では、装置はさらに、1つまたは複数の光信号の第1のサブセットの中の光信号と異なる、1つまたは複数の光信号の第2のサブセットの各複製に対して、光振幅変調を使用して第2のサブセットの1つまたは複数の光信号を1つまたは複数の行列要素値と乗算するように構成される乗算モジュールを含み得る。
【０２７２】
別の態様では、システムは、データセットおよび複数のニューラルネットワーク重みを記憶するように構成されるメモリユニットと、複数の変調器制御信号を生成するように構成されるドライバユニットとを含む。システムは、複数の光出力を提供するように構成される光源と、光源およびドライバユニットに結合された複数の光変調器であって、複数の変調器制御信号に基づいて光源によって生成された複数の光出力を変調することによって光入力ベクトルを生成するように構成される、複数の光変調器と、複数の光変調器およびドライバユニットに結合された行列乗算ユニットであって、複数の重み制御信号に基づいて光入力ベクトルをアナログ出力ベクトルに変換するように構成される、行列乗算ユニットと、行列乗算ユニットに結合されアナログ出力ベクトルを複数のデジタル化された1ビット出力に変換するように構成される比較器ユニットとを含む、光電子プロセッサを含む。システムは、集積回路を含むコントローラを含み、このコントローラは、入力データセットおよび第1の複数のニューラルネットワーク重みを備える人工ニューラルネットワーク計算要求を受信することであって、入力データセットがNビットの分解能を有する第1のデジタル入力ベクトルを備える、受信することと、メモリユニットに、入力データセットおよび第1の複数のニューラルネットワーク重みを記憶することと、第1のデジタル入力ベクトルをN個の1ビット入力ベクトルに分解することであって、N個の1ビット入力ベクトルの各々が第1のデジタル入力ベクトルのNビットのうちの1つに対応する、分解することと、ドライバユニットを通じて、N個の1ビット入力ベクトルに対応するN個の1ビット変調器制御信号のシーケンスを生成することと、比較器ユニットから、N個の1ビット変調器制御信号のシーケンスに対応するN個のデジタル化された1ビット出力のシーケンスを取得することと、N個のデジタル化された1ビット出力のシーケンスからNビットデジタル出力ベクトルを構築することと、構築されたNビットデジタル出力ベクトルに対して非線形変換を実行して、変換されたNビットデジタル出力ベクトルを生成することと、メモリユニットに、変換されたNビットデジタル出力ベクトルを記憶することとを含む、動作を実行するように構成される。
【０２７３】
システムの実施形態は、以下の特徴のうちの1つまたは複数を含み得る。たとえば、人工ニューラルネットワーク計算要求を受信することは、汎用コンピュータから、人工ニューラルネットワーク計算要求を受信することを含み得る。
【０２７４】
いくつかの実装形態では、ドライバユニットは、複数の重み制御信号を生成するように構成され得る。
【０２７５】
いくつかの実装形態では、行列乗算ユニットは、複数の光変調器およびドライバユニットに結合された光行列乗算ユニットであって、複数の重み制御信号に基づいて光入力ベクトルを光出力ベクトルに変換するように構成される、光行列乗算ユニットと、光行列乗算ユニットに結合され光出力ベクトルに対応する複数の出力電圧を生成するように構成される、光検出ユニットとを含み得る。
【０２７６】
いくつかの実装形態では、行列乗算ユニットは、光入力ベクトルを受信するための入力導波管の列と、光信号の第2の列への光入力ベクトルの線形変換を実行するための、入力導波管の列と光学的に連絡している光干渉ユニットと、光信号の第2の列を導くための、光干渉ユニットと光学的に連絡している出力導波管の列とを含んでもよく、入力導波管の列の中の少なくとも1つの入力導波管は、光干渉ユニットを介して、出力導波管の列の中の各出力導波管と光学的に連絡している。
【０２７７】
いくつかの実装形態では、光干渉ユニットは、複数の相互接続されたマッハツェンダー干渉計(MZI)を含んでもよく、複数の相互接続されたMZIの中の各MZIは、MZIの分割比を変更するように構成される第1の位相シフタと、MZIの1つの出力の位相をシフトするように構成される第2の位相シフタとを含み、第1の位相シフタおよび第2の位相シフタは、複数の重み制御信号に結合され得る。
【０２７８】
いくつかの実装形態では、行列乗算ユニットは、光入力ベクトルの1つまたは複数の光信号の少なくとも2つのサブセットの各々に対する、1つまたは複数の光信号のサブセットを光信号の2つ以上の複製に分割するように構成される1つまたは複数の複製モジュールの対応するセットを含む、複数の複製モジュールと、1つまたは複数の光信号の第1のサブセットの少なくとも2つの複製の各々に対する、光振幅変調を使用して第1のサブセットの1つまたは複数の光信号を1つまたは複数の行列要素値と乗算するように構成される対応する乗算モジュールを含む、複数の乗算モジュールと、乗算モジュールのうちの2つ以上の結果に対する、乗算モジュールのうちの2つ以上の結果の合計を表す電気信号を生み出すように構成される加算モジュールを含む、1つまたは複数の加算モジュールとを含み得る。
【０２７９】
いくつかの実装形態では、乗算モジュールのうちの少なくとも1つは、入力ポートおよび2つの出力ポートを含む光振幅変調器を含んでもよく、関連する光信号のペアは、関連する光信号の振幅間の差が、入力値を符号付きの行列要素値と乗算した結果に対応するように、2つの出力ポートから提供されてもよい。
【０２８０】
いくつかの実装形態では、行列乗算ユニットは、入力ベクトルを1つまたは複数の行列要素値を含む行列と乗算するように構成され得る。
【０２８１】
いくつかの実装形態では、複数の出力値のセットは、1つまたは複数の加算モジュールによって生み出されるそれぞれの電気信号上で符号化されてもよく、複数の出力値のセットの中の出力値は、入力ベクトルが行列によって乗算されたことに起因する出力ベクトルの要素を表すことができる。
【０２８２】
別の態様では、複数の重み制御信号に基づいて光入力ベクトルをアナログ出力ベクトルに変換するように構成される行列乗算ユニットを有するシステムにおいて、人工ニューラルネットワーク計算を実行するための方法が提供される。方法は、入力データセットおよび第1の複数のニューラルネットワーク重みを備える人工ニューラルネットワーク計算要求を受信するステップであって、入力データセットが第1のデジタル入力ベクトルを備える、ステップと、メモリユニットに、入力データセットおよび第1の複数のニューラルネットワーク重みを記憶するステップと、第1のデジタル入力ベクトルに基づく第1の複数の変調器制御信号と、第1の複数のニューラルネットワーク重みに基づく第1の複数の重み制御信号とを生成するステップと、行列乗算ユニットの出力ベクトルに対応する第1の複数のデジタル化された出力を取得するステップであって、第1の複数のデジタル化された出力が第1のデジタル出力ベクトルを形成する、ステップと、コントローラによって、第1のデジタル出力ベクトルに対して非線形変換を実行して、第1の変換されたデジタル出力ベクトルを生成するステップと、メモリユニットに、第1の変換されたデジタル出力ベクトルを記憶するステップと、コントローラによって、第1の変換されたデジタル出力ベクトルに基づいて生成された人工ニューラルネットワーク出力を出力するステップとを含む。
【０２８３】
方法の実施形態は、以下の特徴のうちの1つまたは複数を含み得る。たとえば、人工ニューラルネットワーク計算要求を受信するステップは、通信チャネルを通じてコンピュータから人工ニューラルネットワーク計算要求を受信するステップを含み得る。
【０２８４】
いくつかの実装形態では、第1の複数の変調器制御信号を生成するステップは、デジタルアナログコンバータ(DAC)ユニットを通じて、第1の複数の変調器制御信号を生成するステップを含み得る。
【０２８５】
いくつかの実装形態では、第1の複数のデジタル化された出力を取得するステップは、アナログデジタル変換(ADC)ユニットから、第1の複数のデジタル化された出力を取得するステップを含み得る。
【０２８６】
いくつかの実装形態では、方法は、第1の複数の変調器制御信号を、光源およびDACユニットに結合された複数の光変調器に適用するステップと、複数の光変調器を使用して、複数の変調器制御信号に基づいてレーザーユニットによって生成された複数の光出力を変調することによって光入力ベクトルを生成することとを含み得る。
【０２８７】
いくつかの実装形態では、行列乗算ユニットは、複数の光変調器およびDACユニットに結合されてもよく、方法は、行列乗算ユニットを使用して、複数の重み制御信号に基づいて光入力ベクトルをアナログ出力ベクトルに変換するステップを含んでもよい。
【０２８８】
いくつかの実装形態では、ADCユニットは、行列乗算ユニットに結合されてもよく、方法は、ADCユニットを使用して、アナログ出力ベクトルを第1の複数のデジタル化された出力に変換するステップを含んでもよい。
【０２８９】
いくつかの実装形態では、行列乗算ユニットは、複数の光変調器およびDACユニットに結合された光行列乗算ユニットを含み得る。光入力ベクトルをアナログ出力ベクトルに変換するステップは、光行列乗算ユニットを使用して、複数の重み制御信号に基づいて光入力ベクトルを光出力ベクトルに変換するステップを含み得る。方法は、光行列乗算ユニットに結合された光検出ユニットを使用して、光出力ベクトルに対応する複数の出力電圧を生成するステップを含み得る。
【０２９０】
いくつかの実装形態では、方法は、入力導波管の列において光入力ベクトルを受信するステップと、入力導波管の列と光学的に連絡している光干渉ユニットを使用して、光信号の第2の列への光入力ベクトルの線形変換を実行するステップと、光干渉ユニットと光学的に連絡している出力導波管の列を使用して、光信号の第2の列を導くステップとを含んでもよく、入力導波管の列の中の少なくとも1つの入力導波管が、光干渉ユニットを介して出力導波管の列の中の各出力導波管と光学的に連絡している。
【０２９１】
いくつかの実装形態では、光干渉ユニットは、複数の相互接続されたマッハツェンダー干渉計(MZI)を含んでもよく、複数の相互接続されたMZIの中の各MZIは第1の位相シフタおよび第2の位相シフタを含んでもよく、第1の位相シフタおよび第2の位相シフタは複数の重み制御信号に結合されてもよい。方法は、第1の位相シフタを使用してMZIの分割比を変更するステップと、第2の位相シフタを使用してMZIの1つの出力の位相をシフトするステップとを含み得る。
【０２９２】
いくつかの実装形態では、方法は、光入力ベクトルの1つまたは複数の光信号の少なくとも2つのサブセットの各々に対して、1つまたは複数の複製モジュールの対応するセットを使用して、1つまたは複数の光信号のサブセットを光信号の2つ以上の複製に分割するステップと、1つまたは複数の光信号の第1のサブセットの少なくとも2つの複製の各々に対して、対応する乗算モジュールを使用して、光振幅変調を使用して第1のサブセットの1つまたは複数の光信号を1つまたは複数の行列要素値と乗算するステップと、乗算モジュールのうちの2つ以上の結果に対して、加算モジュールを使用して、乗算モジュールのうちの2つ以上の結果の合計を表す電気信号を生み出すステップとを含み得る。
【０２９３】
いくつかの実装形態では、乗算モジュールのうちの少なくとも1つは、入力ポートおよび2つの出力ポートを含む光振幅変調器を含んでもよく、関連する光信号のペアは、関連する光信号の振幅間の差が、入力値を符号付きの行列要素値と乗算した結果に対応するように、2つの出力ポートから提供され得る。
【０２９４】
いくつかの実装形態では、方法は、行列乗算ユニットを使用して、入力ベクトルを、1つまたは複数の行列要素値を含む行列と乗算するステップを含み得る。
【０２９５】
いくつかの実装形態では、方法は、1つまたは複数の加算モジュールによって生み出されたそれぞれの電気信号に対して複数の出力値のセットを符号化するステップと、複数の出力値のセットの中の出力値を使用して、入力ベクトルが行列と乗算されたことに起因する出力ベクトルの要素を表すステップとを含み得る。
【０２９６】
別の態様では、方法は、電子フォーマットで入力情報を提供するステップと、電子入力情報の少なくとも一部を光入力ベクトルに変換するステップと、行列乗算に基づいて光入力ベクトルをアナログ出力ベクトルに光電子的に変換するステップと、非線形変換をアナログ出力ベクトルに電子的に適用して電子フォーマットで出力情報を提供するステップとを含む。
【０２９７】
方法の実施形態は、以下の特徴のうちの1つまたは複数を含み得る。たとえば、方法はさらに、電子フォーマットの提供された出力情報に対応する新しい電子入力情報に関して、電気から光への変換、光電子変換、および電子的に適用される非線形変換を繰り返すステップを含み得る。
【０２９８】
いくつかの実装形態では、最初の光電子変換のための行列乗算および繰り返される光電子変換の行列乗算は、同じであってもよく、人工ニューラルネットワークの同じ層に対応してもよい。
【０２９９】
いくつかの実装形態では、最初の光電子変換のための行列乗算および繰り返される光電子変換の行列乗算は、異なっていてもよく、人工ニューラルネットワークの異なる層に対応してもよい。
【０３００】
いくつかの実装形態では、方法はさらに、電子入力情報の異なる部分に関して、電気から光への変換、光電子変換、および電子的に適用される非線形変換を繰り返すステップを含んでもよく、最初の光電子変換のための行列乗算および繰り返される光電子変換の行列乗算は、同じであり、人工ニューラルネットワークの第1の層に対応する。
【０３０１】
いくつかの実装形態では、方法はさらに、人工ニューラルネットワークの第1の層によって電子入力情報の複数の部分のために生み出された電子出力情報に基づいて、電子フォーマットで中間情報を提供するステップと、電子中間情報の異なる部分の各々に関して、電気から光への変換、光電子変換、および電子的に適用される非線形変換を繰り返すステップとを含んでもよく、最初の光電子変換のための行列乗算および電子中間情報の異なる部分に関する繰り返される光電子変換の行列乗算は、同じであってもよく、人工ニューラルネットワークの第2の層に対応してもよい。
【０３０２】
別の態様では、人工ニューラルネットワーク計算を実行するためのシステムが提供される。システムは、複数のベクトル制御信号を生成し複数の重み制御信号を生成するように構成される第1のユニットと、複数のベクトル制御信号に基づいて光入力ベクトルを提供するように構成される第2のユニットと、第2のユニットおよび第1のユニットに結合された行列乗算ユニットとを含み、行列乗算ユニットは、複数の重み制御信号に基づいて光入力ベクトルを出力ベクトルに変換するように構成される。システムは、集積回路を含むコントローラを含み、このコントローラは、入力データセットおよび第1の複数のニューラルネットワーク重みを備える人工ニューラルネットワーク計算要求を受信することであって、入力データセットが第1のデジタル入力ベクトルを備える、受信することと、第1のユニットを通じて、第1のデジタル入力ベクトルに基づく第1の複数のベクトル制御信号および第1の複数のニューラルネットワーク重みに基づく第1の複数の重み制御信号を生成することとを含む、動作を実行するように構成され、第1のユニット、第2のユニット、行列乗算ユニット、およびコントローラは、複数の反復に対して繰り返される光電子処理ループにおいて使用され、光電子処理ループは、(1)少なくとも2つの光変調動作と、(2)(a)光加算動作または(b)光記憶動作のうちの少なくとも1つを含む。
【０３０３】
別の態様では、人工ニューラルネットワーク計算を実行するための方法が提供される。方法は、電子フォーマットで入力情報を提供するステップと、電子入力情報の少なくとも一部を光入力ベクトルに変換するステップと、ニューラルネットワーク重みのセットを使用して行列乗算に基づいて光入力ベクトルを出力ベクトルに転換するステップとを含む。提供するステップ、変換するステップ、および転換するステップは、ニューラルネットワーク重みの異なるそれぞれのセットおよび異なるそれぞれの入力情報を使用して複数の反復に対して繰り返される光電子処理ループにおいて実行され、光電子処理ループは、(1)少なくとも2つの光変調動作と、(2)(a)光加算動作または(b)光記憶動作のうちの少なくとも1つを含む。
【０３０４】
本明細書において説明される主題の1つまたは複数の実施形態の詳細は、添付の図面および以下の説明に記載される。本発明の他の特徴、態様、および利点は、説明、図面、および特許請求の範囲から明らかになるであろう。
【０３０５】
別段定義されない限り、本明細書で使用されるすべての技術用語および科学用語は、本発明が属する分野の当業者により一般に理解されるのと同じ意味を有する。参照によって本明細書に組み込まれる特許出願または特許出願公開と矛盾する場合、定義を含めて本明細書が優先される。
【０３０６】
本開示は、添付の図面とともに以下の詳細な説明を読むと最良に理解される。当然、図面の様々な特徴は縮尺通りではないことが強調される。対照的に、様々な特徴の寸法は、わかりやすくするために任意に拡張または縮小される。
【図面の簡単な説明】
【０３０７】
【図１Ａ】人工ニューラルネットワーク(ANN)計算システムの例の概略図である。
【図１Ｂ】光行列乗算ユニットの例の概略図である。
【図１Ｃ】相互接続されたマッハツェンダー干渉計(MZI)の例示的な構成の概略図である。
【図１Ｄ】相互接続されたマッハツェンダー干渉計(MZI)の例示的な構成の概略図である。
【図１Ｅ】MZIの例の概略図である。
【図１Ｆ】波長分割多重化ANN計算システムの例の概略図である。
【図２Ａ】ANN計算を実行するための方法の例を示すフローチャートである。
【図２Ｂ】図2Aの方法の態様を示す図である。
【図３Ａ】ANN計算システムの例の概略図である。
【図３Ｂ】ANN計算システムの例の概略図である。
【図４Ａ】1ビットの内部分解能を伴うANN計算システムの例の概略図である。
【図４Ｂ】図4AのANN計算システムの動作の数学的表現の図である。
【図５】人工ニューラルネットワーク(ANN)計算システムの例の概略図である。
【図６】光行列乗算ユニットの例の図である。
【図７】人工ニューラルネットワーク(ANN)計算システムの例の概略図である。
【図８】光行列乗算ユニットの例の図である。
【図９】人工ニューラルネットワーク(ANN)計算システムの例の概略図である。
【図１０】光行列乗算ユニットの例の図である。
【図１１】小型の行列乗算器ユニットの例の図である。
【図１２Ａ】フォトニクス行列乗算器ユニットを比較する図である。
【図１２Ｂ】小型の相互接続された干渉計の図である。
【図１３】小型の行列乗算器ユニットの図である。
【図１４】光生成対立ネットワークの図である。
【図１５】マッハツェンダー干渉計の図である。
【図１６】フォトニクス回路の図である。
【図１７Ａ】フォトニクス回路の図である。
【図１７Ｂ】フォトニクス回路の図である。
【図１８】例示的な光電子コンピューティングシステムの概略図である。
【図１９Ａ】例示的なシステム構成の概略図である。
【図１９Ｂ】例示的なシステム構成の概略図である。
【図２０Ａ】対称差動構成の例の概略図である。
【図２０Ｂ】システムモジュールの例の回路図である。
【図２０Ｃ】システムモジュールの例の回路図である。
【図２１Ａ】対称差動構成の例の概略図である。
【図２１Ｂ】システム構成の例の概略図である。
【図２２Ａ】例示的な光振幅変調器の概略図である。
【図２２Ｂ】対称差動構成における光検出を伴う光振幅変調器の例の概略図である。
【図２２Ｃ】対称差動構成における光検出を伴う光振幅変調器の例の概略図である。
【図２２Ｄ】対称差動構成における光検出を伴う光振幅変調器の例の概略図である。
【図２３Ａ】例示的なシステム構成の光電子回路図である。
【図２３Ｂ】例示的なシステム構成の光電子回路図である。
【図２３Ｃ】例示的なシステム構成の光電子回路図である。
【図２４Ａ】複数の光電子サブシステムを使用した例示的なコンピューティングシステムの概略図である。
【図２４Ｂ】複数の光電子サブシステムを使用した例示的なコンピューティングシステムの概略図である。
【図２４Ｃ】複数の光電子サブシステムを使用した例示的なコンピューティングシステムの概略図である。
【図２４Ｄ】複数の光電子サブシステムを使用した例示的なコンピューティングシステムの概略図である。
【図２４Ｅ】複数の光電子サブシステムを使用した例示的なコンピューティングシステムの概略図である。
【図２５】ANN計算を実行するための方法の例を示すフローチャートである。
【図２６】ANN計算システムの例の概略図である。
【図２７】ANN計算システムの例の概略図である。
【図２８】受動2D光行列乗算ユニットを使用するニューラルネットワーク計算システムの例の概略図である。
【図２９】受動3D光行列乗算ユニットを使用するニューラルネットワーク計算システムの例の概略図である。
【図３０】1ビットの内部分解能を伴い、受動2D光行列乗算ユニットを使用する、人工ニューラルネットワーク計算システムの例の概略図である。
【図３１】1ビットの内部分解能を伴い、受動3D光行列乗算ユニットを使用する、人工ニューラルネットワーク計算システムの例の概略図である。
【図３２Ａ】人工ニューラルネットワーク(ANN)計算システムの例の概略図である。
【図３２Ｂ】光電子行列乗算ユニットの例の概略図である。
【図３３】光電子プロセッサを使用してANN計算を実行するための方法の例を示す流れ図である。
【図３４】図33の方法の態様を示す図である。
【図３５Ａ】光電子プロセッサを使用する波長分割多重化ANN計算システムの例の概略図である。
【図３５Ｂ】波長分割多重化光行列乗算ユニットの例の概略図である。
【図３５Ｃ】波長分割多重化光行列乗算ユニットの例の概略図である。
【図３６】光電子行列乗算ユニットを使用するANN計算システムの例の概略図である。
【図３７】光電子行列乗算ユニットを使用するANN計算システムの例の概略図である。
【図３８】1ビットの内部分解能を伴い、光電子行列乗算ユニットを使用する、人工ニューラルネットワーク計算システムの例の概略図である。
【図３９Ａ】マッハツェンダー変調器の例の図である。
【図３９Ｂ】図39Aのマッハツェンダー変調器の強度対電圧曲線を示すグラフである。
【図４０】ホモダイン検出器の概略図である。
【図４１】複数の波長を有する信号を各々搬送する光ファイバを含む計算システムの概略図である。
【発明を実施するための形態】
【０３０８】
様々な図面における同様の参照番号および指定は同様の要素を示す。
【０３０９】
図1Aは、人工ニューラルネットワーク(ANN)計算システム100の例の概略図を示す。システム100は、コントローラ110、メモリユニット120、デジタルアナログコンバータ(DAC)ユニット130、光プロセッサ140、およびアナログデジタルコンバータ(ADC)ユニット160を含む。コントローラ110は、コンピュータ102、メモリユニット120、DACユニット130、およびADCユニット160に結合される。コントローラ110は、ANN計算を実行するようにANN計算システム100の動作を制御するように構成される集積回路を含む。
【０３１０】
コントローラ110の集積回路は、ANN計算処理のステップを実行するように特に構成される特定用途向け集積回路であり得る。たとえば、集積回路は、ANN計算処理を実行することに特有のマイクロコードまたはファームウェアを実装し得る。したがって、コントローラ110は、コンピュータ102などの従来のコンピュータにおいて使用される汎用プロセッサと比較して、少ない命令のセットを有し得る。いくつかの実装形態では、コントローラ110の集積回路は、ANN計算処理の異なるステップを実行するように構成される2つ以上の回路を含み得る。
【０３１１】
ANN計算システム100の例示的な動作において、コンピュータ102は、人工ニューラルネットワーク計算要求をANN計算システム100に出し得る。ANN計算要求は、ANNを定義するニューラルネットワーク重み、および提供されたANNによって処理されるべき入力データセットを含み得る。コントローラ110は、ANN計算要求を受信し、入力データセットおよびニューラルネットワーク重みをメモリユニット120に記憶する。
【０３１２】
入力データセットは、ANNによって処理されるべき様々なデジタル情報に対応し得る。入力データセットの例には、画像ファイル、オーディオファイル、LiDARポイントクラウド、およびGPS座標シーケンスがあり、ANN計算システム100の動作は、画像ファイルを入力データセットとして受け取ることに基づいて説明される。一般に、入力データセットのサイズは、数百個のデータ点から数百万万個以上のデータ点まで、大きな幅があり得る。たとえば、1メガピクセルの分解能をもつデジタル画像ファイルは約100万個のピクセルを有し、100万個のピクセルの各々が、ANNによって処理されるべきデータ点であり得る。典型的な入力データセットの中に多数のデータ点があることにより、入力データセットは通常、光プロセッサ140によって個別に処理されることになるより小さいサイズの複数のデジタル入力ベクトルに分割される。例として、グレースケールデジタル画像について、デジタル入力ベクトルの要素は、画像の強度を表す8ビット値であってもよく、デジタル入力ベクトルは、数十個の要素(たとえば、32個の要素、64個の要素)から数百個の要素(たとえば、256個の要素、512個の要素)の範囲の長さを有し得る。一般に、任意のサイズの入力データセットが、光プロセッサ140による処理に適したサイズのデジタル入力ベクトルに分割され得る。入力データセットの要素の数がデジタル入力ベクトルの長さで割り切れない場合、デジタル入力ベクトルの長さで割り切れるようにデータセットを埋めるために、ゼロパディングが使用され得る。個別のデジタル入力ベクトルの処理された出力は、ANNを通じて入力データセットを処理した結果である完成した出力を再構築するために処理され得る。いくつかの実装形態では、入力データセットを複数の入力ベクトルに分割することおよび後続のベクトルレベル処理は、ブロック行列乗算技法を使用して実施され得る。
【０３１３】
ニューラルネットワーク重みは、それらの接続の相対的な重要性または重みを含めた、ANNの人工ニューロンの接続性を定義する値のセットである。ANNは、ノードのそれぞれのセットを伴う1つまたは複数の隠れ層を含み得る。単一の隠れ層を伴うANNの場合、ANNは、ニューラルネットワーク重みの2つのセット、すなわち、入力ノードと隠れ層のノードとの間の接続性に対応する1つのセット、および隠れ層と出力ノードとの間の接続性に対応する第2のセットによって定義され得る。接続性を記述するニューラルネットワーク重みの各セットは、光プロセッサ140によって実装されるべき行列に対応する。2つ以上の隠れ層を伴うANNに対して、ニューラルネットワーク重みの追加のセットが、追加の隠れ層間の接続性を定義するために必要とされる。したがって、一般に、ANN計算要求に含まれるニューラルネットワーク重みは、ANNの様々な層間の接続性を表すニューラルネットワーク重みの複数のセットを含み得る。
【０３１４】
処理されるべき入力データセットは、通常は個別の処理のための複数のより小さいデジタル入力ベクトルに分割されるので、入力データセットは、デジタルメモリに通常は記憶される。しかしながら、メモリとコンピュータ102のプロセッサとの間のメモリ動作の速度は、ANN計算システム100がANN計算を実行できるレートよりもはるかに遅い。たとえば、ANN計算システム100は、コンピュータ102の典型的なメモリ読み取りサイクルの間に数十個から数百個のANN計算を実行することができる。したがって、ANN計算がANN計算システム100によって実行され得るレートは、ANN計算システム100によるANN計算がANN計算要求を処理する過程でシステム100とコンピュータ102との間での複数のデータ転送を伴う場合、完全な処理レートよりも低く制限され得る。たとえば、コンピュータ102が、自身のメモリから入力データセットにアクセスし、要求されるとデジタル入力ベクトルをコントローラ110に提供するとすれば、ANN計算システム100の動作は、コンピュータ102とコントローラ110との間で必要とされるであろう一連のデータ転送のために必要な時間だけ大幅に遅くなる。コンピュータ102のメモリアクセスレイテンシは通常は非確定的であり、これは、デジタル入力ベクトルがANN計算システム100に提供され得る速度をさらに複雑にして低下させることに留意されたい。さらに、コンピュータ102のプロセッササイクルが、コンピュータ102とANN計算システム100との間のデータ転送を管理することに浪費されることがある。
【０３１５】
代わりに、いくつかの実装形態では、ANN計算システム100は、メモリユニット120に入力データセット全体を記憶し、これは、ANN計算システム100の一部であり、それによる使用に専用である。専用メモリユニット120は、メモリユニット120とコントローラ110との間のトランザクションが、メモリユニット120とコントローラ110との間のデータの円滑で中断されない流れを可能にするように、特別に適合されることを可能にする。そのようなデータの中断されない流れは、光プロセッサ140がコンピュータ102などの従来のコンピュータの遅いメモリ動作により制限されるのではなくその最高の処理レートで行列乗算を実行することを可能にすることによって、ANN計算システム100の全体のスループットを大きく向上させ得る。さらに、ANN計算を実行する際に必要とされるデータのすべてが単一のトランザクションでANN計算システム100へコンピュータ102によって提供されるので、ANN計算システム100は、コンピュータ102とは独立な自己完結した方式でANN計算を実行し得る。ANN計算システム100のこの自己完結した動作は、コンピュータ102から計算負荷をオフロードし、ANN計算システム100の動作において外部への依存をなくし、システム100とコンピュータ102の両方の性能を高める。
【０３１６】
ANN計算システム100の内部動作がここで説明される。光プロセッサ140は、レーザーユニット142、変調器の列144、検出ユニット146、および光行列乗算(OMM)ユニット150を含む。光プロセッサ140は、長さNのデジタル入力ベクトルを長さNの光入力ベクトルへと符号化し、OMMユニット150を通じて光入力ベクトルを伝播することによって、動作する。OMMユニット150は、長さNの光入力ベクトルを受信し、光領域において、受信された光入力ベクトルに対してN×N行列乗算を実行する。OMMユニット150によって実行されるN×N行列乗算は、OMMユニット150の内部構成によって決定される。OMMユニット150の内部構成は、DACユニット130によって生成されるものなどの、電気信号によって制御され得る。
【０３１７】
OMMユニット150は様々な方法で実装され得る。図1Bは、OMMユニット150の例の概略図を示す。OMMユニット150は、光入力ベクトルを受信するための入力導波管152の列と、入力導波管152の列と光学的に連絡している光干渉ユニット154と、光干渉ユニット154と光学的に連絡している出力導波管156の列とを含み得る。光干渉ユニット154は、光信号の第2の列への光入力ベクトルの線形変換を実行する。出力導波管156の列は、光干渉ユニット154によって出力される光信号の第2の列を導く。入力導波管152の列の中の少なくとも1つの入力導波管は、光干渉ユニット154を介して出力導波管156の列の中の各出力導波管と光学的に連絡している。たとえば、長さNの光入力ベクトルに対して、OMMユニット152はN個の入力導波管152およびN個の出力導波管156を含み得る。
【０３１８】
光干渉ユニットは、複数の相互接続されたマッハツェンダー干渉計(MZI)を含み得る。図1Cおよび図1Dは、相互接続されたMZIの例示的な構成157および158の概略図を示す。MZIは、入力導波管152の列を通じて受信された光入力ベクトルの線形変換を達成するために、構成157または158などにおいて、様々な方法で相互接続され得る。
【０３１９】
図1Eは、MZI170の例の概略図を示す。MZIは、第1の入力導波管171、第2の入力導波管172、第1の出力導波管178、および第2の出力導波管179を含む。さらに、複数の相互接続されたMZIの中の各MZI170は、MZI170の分割比を変更するように構成される第1の位相シフタ174と、第2の出力導波管179を通ってMZI170から出る光などの、MZIの1つの出力の位相をシフトするように構成される第2の位相シフタ176とを含む。MZI170の第1の位相シフタ174および第2の位相シフタ176は、DACユニット130によって生成される複数の重み制御信号に結合される。第1の位相シフタ174および第2の位相シフタ176は、OMMユニット150の再構成可能な要素の例である。要素を再構成することの例は、熱光学位相シフタまたは電気光学位相シフタを含む。熱光学位相シフタは、導波管を加熱して導波管と被覆材の屈折率を変えることによって動作し、屈折率の変化は位相の変化になる。電気光学位相シフタは、電界(たとえば、LiNbO3、逆バイアスPN接合)または電流(たとえば、順バイアスPIN接合)を印加することによって動作し、これは、導波管材料の屈折率を変える。重み制御信号を変動させることによって、相互接続されるMZI170の各々の第1の位相シフタ174および第2の位相シフタ176の位相遅延を変動させることができ、このことは、光干渉ユニット154全体にわたって設定される位相遅延により決定される特定の行列乗算を実施するように、OMMユニット150の光干渉ユニット154を再構成する。OMMユニット150および光干渉ユニットの追加の実施形態は、「APPARATUS AND METHODS FOR OPTICAL NEURAL NETWORK」という表題の米国特許出願公開第2017/0351293(A1)号明細書において開示されており、これは参照によって本明細書に完全に組み込まれる。
【０３２０】
光入力ベクトルは、レーザーユニット142および変調器の列144を通じて生成される。長さNの光入力ベクトルは、長さNのデジタル入力ベクトルのそれぞれの要素の値に対応する強度を各々有するN個の独立の光信号を有する。例として、レーザーユニット142はN個の光出力を生成し得る。N個の光出力は、波長が同じであり、光学的にコヒーレントである。光出力の光学的なコヒーレンスにより、光出力は互いに光学的に干渉することが可能になり、このことは、OMMユニット150によって(たとえば、MZIの動作において)適切に利用される。さらに、レーザーユニット142の光出力は、互いに実質的に同一であり得る。たとえば、N個の光出力は、それらの強度が実質的に均一(たとえば、5%、3%、1%、0.5%、0.1%、または0.01%以内)であってもよく、それらの相対的な位相が実質的に均一(たとえば、10度、5度、3度、1度、または0.1度以内)であってもよい。光出力の均一性は、デジタル入力ベクトルに対する光入力ベクトルの忠実性を高め、光プロセッサ140の全体の正確さを高め得る。いくつかの実装形態では、レーザーユニット142の光出力は、出力当たり0.1mWから50mWにわたる光パワー、近赤外線の範囲の波長(たとえば、900nmと1600nmとの間)、および1nm未満の線幅を有し得る。レーザーユニット142の光出力は、単一の横モード光出力であり得る。
【０３２１】
いくつかの実装形態では、レーザーユニット142は、単一のレーザー源および光パワー分割器を含む。単一のレーザー源は、レーザー光を生成するように構成される。光パワー分割器は、レーザー源によって生成される光を、強度および位相が実質的に等しいN個の光出力に分割するように構成される。単一のレーザー出力を複数の出力に分割することによって、複数の光出力の光学的なコヒーレンスが達成され得る。単一のレーザー源は、たとえば、半導体レーザーダイオード、垂直共振器面発光レーザー(VCSEL)、分布帰還型(DFB)レーザー、または分布ブラッグ反射型(DBR)レーザーであり得る。光パワー分割器は、たとえば、1:Nマルチモード干渉(MMI)分割器、複数の1:2MMI分割器もしくは指向性カプラを含む多段分割器、またはスターカプラであり得る。いくつかのの他の実装形態では、マスタースレーブレーザー構成が使用されてもよく、スレーブレーザーは、マスターレーザーに対して安定した位相関係を有するようにマスターレーザーによって注入同期される。
【０３２２】
レーザーユニット142の光出力は、変調器の列144に結合される。変調器の列144は、レーザーユニット142から光入力を受信し、電気信号である変調器制御信号に基づいて受信された光入力の強度を変調するように構成される。変調器の例には、マッハツェンダー干渉計(MZI)変調器、リング共振変調器、および電界吸収型変調器がある。変調器の列144は、レーザーユニット142のN個の光出力のうちの1つを各々受信するN個の変調器を有する。変調器は、デジタル入力ベクトルの要素に対応する制御信号を受信し、光の強度を変調する。制御信号は、DACユニット130によって生成され得る。
【０３２３】
DACユニット130は、複数の変調器制御信号を生成し、コントローラ110の制御下で複数の重み制御信号を生成するように構成される。たとえば、DACユニット130は、コントローラ110から、光プロセッサ140によって処理されるべきデジタル入力ベクトルに対応する第1のDAC制御信号を受信する。DACユニット130は、第1のDAC制御信号に基づいて、変調器制御信号を生成し、これは、変調器の列144を駆動するのに適したアナログ信号である。アナログ信号は、たとえば列144の変調器の技術および設計に応じて、電圧または電流であり得る。電圧は、たとえば±0.1Vから±10Vにわたる振幅を有してもよく、電流は、たとえば100μAから100mAにわたる振幅を有してもよい。いくつかの実装形態では、DACユニット130は、列144の変調器が適切に駆動され得るように、アナログ信号をバッファリングし、増幅し、または調整するように構成される変調器ドライバを含み得る。たとえば、いくつかのタイプの変調器は、差動制御信号を用いて駆動され得る。そのような場合、変調器ドライバは、シングルエンドの入力信号に基づいて差動電気出力を生み出す差動ドライバであり得る。別の例として、いくつかのタイプの変調器は、光プロセッサ140の所望の処理レート未満である3dBの帯域幅を有し得る。そのような場合、変調器ドライバは、変調器の動作帯域幅を広げるように設計される、プリエンファシス回路または他の帯域幅増強回路を含み得る。
【０３２４】
いくつかの場合、列144の変調器は、非線形伝達関数を有し得る。たとえば、MZI光変調器は、印加される制御電圧とその送信との間に非線形の関係(たとえば、正弦波の依存性)を有し得る。そのような場合、第1のDAC制御信号は、デジタル入力ベクトルと生成される光入力ベクトルとの間に線形の関係が維持され得るように、変調器の非線形伝達関数に基づいて、調整または補償され得る。通常は、そのような線形性を維持することが、OMMユニット150への入力がデジタル入力ベクトルの正確な表現となることを確実にするのに重要である。いくつかの実装形態では、第1のDAC制御信号の補償は、得られた変調された光信号がデジタル入力ベクトルの要素に線形に比例するように、DACユニット130によって出力されるべき値にデジタル入力ベクトルの値を対応付けるルックアップテーブルによって、コントローラ110によって実行され得る。ルックアップテーブルは、変調器の非線形伝達関数を特徴付けて、非線形伝達関数の逆関数を計算することによって生成され得る。
【０３２５】
いくつかの実装形態では、変調器の非線形性および生成された光入力ベクトルにおいて生じる非線形性は、ANN計算アルゴリズムによって補償され得る。
【０３２６】
変調器の列144によって生成される光入力ベクトルは、OMMユニット150に入力される。光入力ベクトルは、デジタル入力ベクトルの要素に対応する光パワーを各々有する、N個の空間的に分離された光信号であり得る。光信号の光パワーは通常、たとえば1μWから10mWにわたる。OMMユニット150は、光入力ベクトルを受信し、その内部構成に基づいてN×N行列乗算を実行する。内部構成は、DACユニット130によって生成される電気信号により制御される。たとえば、DACユニット130は、コントローラ110から、OMMユニット150によって実装されるべきニューラルネットワーク重みに対応する第2のDAC制御信号を受信する。DACユニット130は、第2のDAC制御信号に基づいて、OMMユニット150内の再構成可能な要素を制御するのに適したアナログ信号である重み制御信号を生成する。アナログ信号は、たとえば、OMMユニット150の再構成要素のタイプに応じて、電圧または電流であり得る。電圧は、たとえば0.1Vから10Vにわたる振幅を有してもよく、電流は、たとえば100μAから10mAにわたる振幅を有してもよい。
【０３２７】
変調器の列144は、OMMユニット150が再構成され得る再構成レートと異なる変調レートで動作し得る。変調器の列144によって生成される光入力ベクトルは、OMMユニット150の光学的性質(たとえば、実効屈折率)に応じて、光の速度のかなりの割合(たとえば、光の速度の80%、50%、または25%)でOMMユニットを通って伝播する。典型的なOMMユニット150では、光入力ベクトルの伝搬時間は、1ピコ秒から数十ピコ秒の範囲にあり、これは数十GHzから数百GHzの処理レートに相当する。したがって、光プロセッサ140が行列乗算動作を実行できるレートは、光入力ベクトルを生成できるレートにより一部制限される。数十GHzの帯域幅を有する変調器は容易に入手可能であり、100GHzを超える帯域幅を有する変調器が開発中である。したがって、変調器の列144の変調レートは、5GHz、8GHz、または数十GHzから数百GHzにわたり得る。変調器の列144の動作をそのような変調レートに維持するために、コントローラ110の集積回路は、たとえば、5GHz、8GHz、10GHz、20GHz、25GHz、50GHz、または100GHz以上のレートでDACユニット130のための制御信号を出力するように構成され得る。
【０３２８】
OMMユニット150の再構成レートは、OMMユニット150によって実装される再構成可能な要素のタイプに応じて、変調レートよりもはるかに遅いことがある。たとえば、OMMユニット150の再構成可能な要素は、OMMユニット150の光導波管の温度を調整するためにマイクロヒーターを使用する熱光学タイプであってもよく、この温度の調整は、次いでOMMユニット150内の光信号の位相に影響し、行列乗算につながる。構造物の加熱および冷却と関連付けられる熱時定数により、再構成レートは、たとえば数百kHzから数十MHzに制限され得る。したがって、変調器の列144を制御するための変調器制御信号およびOMMユニット150を再構成するための重み制御信号は、大きく異なる速度の要件を有し得る。さらに、変調器の列144の電気的な特性は、OMMユニット150の再構成可能な要素の特性とは大きく異なり得る。
【０３２９】
変調器制御信号および重み制御信号の異なる特性に対応するために、いくつかの実装形態では、DACユニット130は、第1のDACサブユニット132および第2のDACサブユニット134を含み得る。第1のDACサブユニット132は、変調器制御信号を生成するように特に構成されてもよく、第2のDACサブユニット134は、重み制御信号を生成するように特に構成されてもよい。たとえば、変調器の列144の変調レートは25GHzであってもよく、第1のDACサブユニット132は、25ギガサンプル毎秒(GSPS)のチャネル当たり出力更新レートおよび8ビット以上の分解能を有し得る。OMMユニット150の再構成レートは1MHzであってもよく、第2のDACサブユニット134は、1メガサンプル毎秒(MSPS)の出力更新レートおよび10ビットの分解能を有し得る。別々のDACサブユニット132および134を実装することで、それぞれの信号に対するDACサブユニットの独立した最適化が可能になり、これは、DACユニット130の全体の電力消費、複雑さ、コスト、またはそれらの組合せを下げることができる。DACサブユニット132および134はDACユニット130の部分要素として説明されているが、一般には、DACサブユニット132および134は、共通のチップに集積されてもよく、または別々のチップとして実装されてもよいことに留意されたい。
【０３３０】
第1のDACサブユニット132および第2のDACサブユニット134の異なる特性に基づいて、いくつかの実装形態では、メモリユニット120は、第1のメモリサブユニットおよび第2のメモリサブユニットを含み得る。第1のメモリサブユニットは、入力データセットおよびデジタル入力ベクトルの記憶に専用のメモリであってもよく、変調レートをサポートするのに十分な動作速度を有してもよい。第2のメモリサブユニットは、ニューラルネットワーク重みの記憶に専用のメモリであってもよく、OMMユニット150の再構成レートをサポートするのに十分な動作速度を有してもよい。いくつかの実装形態では、第1のメモリサブユニットはSRAMを使用して実装されてもよく、第2のメモリサブユニットはDRAMを使用して実装されてもよい。いくつかの実装形態では、第1のメモリサブユニットおよび第2のメモリサブユニットは、DRAMを使用して実装され得る。いくつかの実装形態では、第1のメモリユニットは、コントローラ110の一部またはコントローラ110のキャッシュとして実装され得る。いくつかの実装形態では、第1のメモリサブユニットおよび第2のメモリサブユニットは、異なるアドレス空間として単一の物理メモリデバイスによって実装され得る。
【０３３１】
OMMユニット150は、長さNの光出力ベクトルを出力し、これは、光入力ベクトルとニューラルネットワーク重みのN×N行列乗算の結果に相当する。OMMユニット150は検出ユニット146に結合され、検出ユニット146は、光出力ベクトルのN個の光信号に対応するN個の出力電圧を生成するように構成される。たとえば、検出ユニット146は、光信号を吸収して光電流を生成するように構成されるN個の光検出器の列と、光電流を出力電圧に変換するように構成されるN個のトランスインピーダンスアンプの列とを含み得る。光検出器およびトランスインピーダンスアンプの帯域幅は、変調器の列144の変調レートに基づいて設定され得る。光検出器は、検出されている光出力ベクトルの波長に基づいて、様々な材料から形成され得る。光検出器のための材料の例には、ゲルマニウム、シリコンゲルマニウム合金、およびインジウムガリウムヒ素(InGaAS)がある。
【０３３２】
検出ユニット146はADCユニット160に結合される。ADCユニット160は、N個の出力電圧をN個のデジタル化された光出力に変換するように構成され、N個のデジタル化された光出力は出力電圧の量子化されたデジタル表現である。たとえば、ADCユニット160はNチャネルのADCであり得る。コントローラ110は、ADCユニット160から、光行列乗算ユニット150の光出力ベクトルに対応するN個のデジタル化された光出力を取得し得る。コントローラ110は、N個のデジタル化された光出力から、長さNの入力デジタルベクトルのN×N行列乗算の結果に対応する長さNのデジタル出力ベクトルを形成し得る。
【０３３３】
ANN計算システム100の様々な電気コンポーネントは、様々な方法で統合され得る。たとえば、コントローラ110は、半導体ダイ上に製造される特定用途向け集積回路であり得る。メモリユニット120、DACユニット130、ADCユニット160、またはそれらの組合せなどの他の電気コンポーネントは、コントローラ110がその上に製造される半導体ダイ上でモノリシックに集積され得る。別の例として、2つ以上の電気コンポーネントがシステムオンチップ(SoC)として集積され得る。SoCの実装形態では、コントローラ110、メモリユニット120、DACユニット130、およびADCユニット160は、それぞれのダイ上に製造されてもよく、それぞれのダイは、集積されたコンポーネント間の電気的な接続を提供する共通のプラットフォーム(たとえば、インターポーザ)上に集積され得る。そのようなSoCの手法は、コンポーネントがプリント回路基板(PCB)上で別々に配置されてルーティングされる手法と比較して、ANN計算システム100の電気コンポーネント間のより高速なデータ転送を可能にでき、それにより、ANN計算システム100の動作速度を高める。さらに、SoCの手法は、様々な電気コンポーネントに対して最適化された様々な製造技術の使用を可能にでき、これは、モノリシック集積手法よりも、様々なコンポーネントの性能を高め、全体のコストを下げることができる。コントローラ110、メモリユニット120、DACユニット130、およびADCユニット160の統合が説明されたが、一般に、コンポーネントのサブセットが統合されてもよく、一方で他のコンポーネントが性能またはコストなどの様々な理由でディスクリートコンポーネントとして実装される。たとえば、いくつかの実装形態では、メモリユニット120は、コントローラ110内の機能ブロックとしてコントローラ110と統合され得る。
【０３３４】
ANN計算システム100の様々な光コンポーネントも、様々な方法で統合され得る。ANN計算システム100の光コンポーネントの例には、レーザーユニット142、変調器の列144、OMMユニット150、および検出ユニット146の光検出器がある。これらの光コンポーネントは、性能を高めるために、および/またはコストを下げるために、様々な方法で統合され得る。たとえば、レーザーユニット142、変調器の列144、OMMユニット150、および光検出器は、フォトニクス集積回路(PIC)として共通の半導体基板上にモノリシックに集積され得る。化合物半導体材料系統(たとえば、InPなどのIII-V族化合物半導体)に基づいて形成されるフォトニクス集積回路上では、レーザー、電界吸収型変調器などの変調器、導波管、および光検出器は、単一のダイ上にモノリシックに集積され得る。そのようなモノリシック集積手法は、1ミクロン未満から数ミクロンの範囲の整列の正確さを必要とし得る、様々なディスクリート光コンポーネントの入力と出力を揃えることの複雑さを低減することができる。別の例として、レーザーユニット142のレーザー源は、化合物半導体ダイ上で製造され得るが、レーザーユニット142の光パワー分割器、変調器の列144、OMMユニット150、および検出ユニット146の光検出器は、シリコンダイ上で製造され得る。シリコンフォトニクス技術と呼ばれ得る、シリコンウェハ上で製造されるPICは通常、III-V族ベースのPICと比較して、より高い集積密度、より高いリソグラフィ分解能、およびより低いコストを有する。そのようなより高い集積密度は、OMMユニット150の製造において有益であることがあり、それは、OMMユニット150は通常、パワー分割器および位相シフタなどの数十個から数百個の光コンポーネントを含むからである。さらに、シリコンフォトニクス技術のより高いリソグラフィ分解能は、OMMユニット150の製造のばらつきを低減し、OMMユニット150の正確さを高めることができる。
【０３３５】
ANN計算システム100は、様々なフォームファクタで実装され得る。たとえば、ANN計算システム100は、ホストコンピュータに差し込まれるコプロセッサとして実装され得る。そのようなシステム100は、たとえば、PCIエクスプレスのフォームファクタを有し、PCIeバスを介してホストコンピュータと通信し得る。ホストコンピュータは、複数のコプロセッサタイプのANN計算システム100をホストし、ネットワークを介してコンピュータ102に接続され得る。このタイプの実装形態は、サーバのラックが他のコンピュータまたはサーバから受信されたANN計算要求を処理することに専用であり得る、クラウドデータセンターにおける使用に適していることがある。別の例として、コプロセッサタイプのANN計算システム100は、ANN計算要求を出すコンピュータ102へと直接差し込まれ得る。
【０３３６】
いくつかの実装形態では、ANN計算システム100は、リアルタイムのANN計算能力を要求する物理システムへと統合され得る。たとえば、自律車両、自律ドローン、物体または顔認識防犯カメラ、および様々なInternet-of-Things(IoT)デバイスなどの、リアルタイムの人工知能タスクに大きく依存するシステムは、そのようなシステムの他のサブシステムと直接統合されているANN計算システム100があることにより利益を得ることができる。直接統合されているANN計算システム100があることは、インターネット接続が貧弱である、またはないデバイスにおいて、リアルタイムの人工知能を可能にし、ミッションクリティカルな人工知能システムの信頼性と可用性を高めることができる。
【０３３７】
DACユニット130およびADCユニット160はコントローラ110に結合されるものとして示されているが、いくつかの実装形態では、代替として、または追加で、DACユニット130、ADCユニット160、または両方が、メモリユニット120に結合され得る。たとえば、DACユニット130またはADCユニット160によるダイレクトメモリアクセス(DMA)動作は、コントローラ110の計算負荷を減らし、メモリユニット120からの読み取りおよびメモリユニット120への書き込みにおけるレイテンシを減らし、さらに、ANN計算ユニット100の動作速度を高めることができる。
【０３３８】
図2は、ANN計算を実行するための方法200の例のフローチャートを示す。プロセス200のステップは、コントローラ110によって実行され得る。いくつかの実装形態では、方法200の様々なステップは、並行して、組み合わせて、ループで、または任意の順序で行われ得る。
【０３３９】
210において、入力データセットおよび第1の複数のニューラルネットワーク重みを備える人工ニューラルネットワーク(ANN)計算要求が受信される。入力データセットは第1のデジタル入力ベクトルを含む。第1のデジタル入力ベクトルは入力データセットのサブセットである。たとえば、それは画像の部分領域であり得る。ANN計算要求は、コンピュータ102などの様々なエンティティによって生成され得る。コンピュータは、パーソナルコンピュータ、サーバコンピュータ、車両コンピュータ、およびフライトコンピュータなどの、様々なタイプのコンピューティングデバイスのうちの1つまたは複数を含み得る。ANN計算要求は一般に、実行されるべきANN計算をANN計算システム100に通知する、または知らせる電気信号を指す。いくつかの実装形態では、ANN計算要求は、2つ以上の信号に分割され得る。たとえば、第1の信号は、システム100が入力データセットおよび第1の複数のニューラルネットワーク重みを受信する準備ができているかどうかを確認するために、ANN計算システム100に問い合わせ得る。システム100による肯定的な応答に応じて、コンピュータは、入力データセットおよび第1の複数のニューラルネットワーク重みを含む第2の信号を送信し得る。
【０３４０】
220において、入力データセットおよび第1の複数のニューラルネットワーク重みが記憶される。コントローラ110は、入力データセットおよび第1の複数のニューラルネットワーク重みをメモリユニット120に記憶し得る。メモリユニット120への入力データセットおよび第1の複数のニューラルネットワーク重みの記憶は、ANN計算システム100の動作のフレキシビリティを可能にすることがあり、これは、たとえばシステムの全体の性能を高めることができる。たとえば、入力データセットは、メモリユニット120から入力データセットの所望の部分を取り出すことによって、設定されたサイズおよびフォーマットのデジタル入力ベクトルに分割され得る。入力データセットの異なる部分は、様々なタイプのANN計算が実行されることを可能にするために、様々な順序で処理され、またはシャッフルされ得る。たとえば、シャッフルすることで、入力と出力の行列のサイズが異なる場合に、ブロック行列乗算技法による行列乗算が可能になり得る。別の例として、メモリユニット120への入力データセットおよび第1の複数のニューラルネットワーク重みの記憶は、ANN計算システム100による複数のANN計算要求の待ち行列作成を可能にすることがあり、これは、システム100が不活動の期間なしで最高の速度での動作を維持することを可能にし得る。
【０３４１】
いくつかの実装形態では、入力データセットは第1のメモリサブユニットに記憶されてもよく、第1の複数のニューラルネットワーク重みは第2のメモリサブユニットに記憶されてもよい。
【０３４２】
230において、第1の複数の変調器制御信号は第1のデジタル入力ベクトルに基づいて生成され、第1の複数の重み制御信号は第1の複数のニューラルネットワーク重みに基づいて生成される。コントローラ110は、第1の複数の変調器制御信号を生成するためのDACユニット130に第1のDAC制御信号を送信し得る。DACユニット130は、第1のDAC制御信号に基づいて第1の複数の変調器制御信号を生成し、変調器の列144は、第1のデジタル入力ベクトルを表す光入力ベクトルを生成する。
【０３４３】
第1のDAC制御信号は、第1の複数の変調器制御信号へとDACユニット130によって変換されるべき複数のデジタル値を含み得る。複数のデジタル値は一般に、第1のデジタル入力ベクトルに従い、様々な数学的な関係またはルックアップテーブルを通じて関連付けられ得る。たとえば、複数のデジタル値は、第1のデジタル入力ベクトルの要素の値に線形に比例し得る。別の例として、複数のデジタル値は、デジタル入力ベクトルと変調器の列144によって生成される光入力ベクトルとの間に線形の関係を維持するように構成されるルックアップテーブルを通じて、第1のデジタル入力ベクトルの要素に関連付けられ得る。
【０３４４】
コントローラ110は、第1の複数の重み制御信号を生成するためのDACユニット130に第2のDAC制御信号を送信し得る。DACユニット130は、第2のDAC制御信号に基づいて第1の複数の重み制御信号を生成し、OMMユニット150は、第1の複数の重み制御信号に従って再構成され、第1の複数のニューラルネットワーク重みに対応する行列を実装する。
【０３４５】
第2のDAC制御信号は、第1の複数の重み制御信号へとDACユニット130によって変換されるべき複数のデジタル値を含み得る。複数のデジタル値は一般に、第1の複数のニューラルネットワーク重みに従い、様々な数学的な関係またはルックアップテーブルを通じて関連付けられ得る。たとえば、複数のデジタル値は、第1の複数のニューラルネットワーク重みに線形に比例し得る。別の例として、複数のデジタル値は、第1の複数のニューラルネットワーク重みに対応する行列乗算を実行するようにOMMユニット150を構成することができる重み制御信号を生成するために、第1の複数のニューラルネットワーク重みに対して様々な数学的演算を実行することによって、計算され得る。
【０３４６】
いくつかの実装形態では、行列Mを表す第1の複数のニューラルネットワーク重みは、特異値分解(SVD)法を通じてM=USV*へと分解されてもよく、UはM×Mのユニタリ行列であり、Sは対角線上に非負の実数を伴うM×Nの対角行列であり、V*はN×Nのユニタリ行列Vの複素共役である。そのような場合、第1の複数の重み制御信号は、行列Vに対応する第1の複数のOMMユニット制御信号と、行列Sに対応する第2の複数のOMMユニット制御信号とを含み得る。さらに、OMMユニット150は、OMMユニット150全体が行列Mを実装するように、行列Vを実装するように構成される第1のOMMサブユニット、行列Sを実装するように構成される第2のOMMサブユニット、および行列Uを実装するように構成される第3のOMMサブユニットを有するように構成され得る。SVD法はさらに、「APPARATUS AND METHODS FOR OPTICAL NEURAL NETWORK」という表題の米国特許出願公開第2017/0351293(A1)号明細書において説明されており、この出願は参照によって本明細書に完全に組み込まれる。
【０３４７】
240において、光行列乗算ユニットの光出力ベクトルに対応する第1の複数のデジタル化された光出力が取得される。変調器の列144によって生成される光入力ベクトルは、OMMユニット150によって処理され、光出力ベクトルに変換される。光出力ベクトルは、検出ユニット146によって検出され、ADCユニット160によってデジタル化された値へと変換され得る電気信号に変換される。コントローラ110は、たとえば、デジタル化された光出力への検出ユニット146により出力された電圧の変換を開始するために、変換要求をADCユニット160に送信し得る。変換が完了すると、ADCユニット160は変換の結果をコントローラ110に送信し得る。代替的に、コントローラ110は、ADCユニット160から変換の結果を取り出し得る。コントローラ110は、デジタル化された光出力から、入力デジタルベクトルの行列乗算の結果に対応するデジタル出力ベクトルを形成し得る。たとえば、デジタル化された光出力は、ベクトルフォーマットを有するように編成され、または連結され得る。
【０３４８】
いくつかの実装形態では、ADCユニット160は、コントローラ110によってDACユニット130に出されるDAC制御信号に基づいて、ADC変換を実行するように設定または制御され得る。たとえば、ADC変換は、DACユニット130による変調制御信号の生成からあるあらかじめ設定された時間後に開始するように設定され得る。ADC変換のそのような制御は、コントローラ110の動作を簡単にし、必要な制御動作の数を減らすことができる。
【０３４９】
250において、非線形変換が、第1の変換されたデジタル出力ベクトルを生成するように第1のデジタル出力ベクトルに対して実行される。ANNのノードまたは人口ニューロンは、前の層のノードから受信された信号の加重和をまず実行して、次いで、加重和の非線形変換(「活性化」)を実行して出力を生成することによって動作する。様々なタイプのANNには、様々なタイプの区別可能な非線形変換を実施し得る。非線形伝達関数の例には、正規化線形ユニット(RELU)関数、シグモイド関数、双曲線正接関数、X^2関数、および|X|関数がある。そのような非線形変換は、第1の変換されたデジタル出力ベクトルを生成するために、コントローラ110によって第1のデジタル出力に対して実行される。いくつかの実装形態では、非線形変換は、コントローラ110内の特別なデジタル集積回路によって実行され得る。たとえば、コントローラ110は、1つまたは複数のタイプの非線形変換の計算を加速するように特に適合された、1つまたは複数のモジュールまたは回路ブロックを含み得る。
【０３５０】
260において、第1の変換されたデジタル出力ベクトルが記憶される。コントローラ110は、メモリユニット120に第1の変換されたデジタル出力ベクトルを記憶し得る。入力データセットが複数のデジタル入力ベクトルに分割される場合、第1の変換されたデジタル出力ベクトルは、第1のデジタル入力ベクトルなどの、入力データセットの一部分のANN計算の結果に対応する。したがって、第1の変換されたデジタル出力ベクトルの記憶は、ANN計算システム100が、単一のANN出力へと後で集約されることになる入力データセットの他のデジタル入力ベクトルに対する追加の計算を実行して記憶することを可能にする。
【０３５１】
270において、第1の変換されたデジタル出力ベクトルに基づいて生成された人工ニューラルネットワーク出力が出力される。コントローラ110はANN出力を生成し、ANN出力は、第1の複数のニューラルネットワーク重みによって定義されるANNを通じて入力データセットを処理した結果である。入力データセットが複数のデジタル入力ベクトルに分割される場合、生成されるANN出力は、第1の変換されたデジタル出力を含む集約された出力であるが、さらに、入力データセットの他の部分に対応する追加の変換されたデジタル出力を含み得る。ANN出力が生成されると、生成された出力は、ANN計算要求を出したコンピュータ102などのコンピュータに送信される。
【０３５２】
様々な性能尺度が、方法200を実施するANN計算システム100のために定義され得る。性能尺度を定義することは、光プロセッサ140を実装するANN計算システム100の性能と、電子行列乗算ユニットを代わりに実装するANN計算のための他のシステムの性能との比較を可能にし得る。一態様では、ANN計算が実行され得るレートは、メモリユニットに入力データセットおよび第1の複数のニューラルネットワーク重みを記憶するステップ220と、メモリユニットに第1の変換されたデジタル出力ベクトルを記憶するステップ260との間に経過した時間として定義される第1のループ期間によって、一部が示され得る。したがって、この第1のループ期間は、電気信号を光信号に変換し(たとえば、ステップ230)、光領域において行列乗算を実行し、結果を変換して電気領域に戻す(たとえば、ステップ240)のにかかる時間を含む。ステップ220および260はともに、メモリユニット120へのデータの記憶を伴い、これらは、ANN計算システム100と光プロセッサ140を伴わない従来のANN計算システムとの間で共有されるステップである。したがって、メモリ間のトランザクション時間を測る第1のループ期間は、ANN計算スループットの現実的なまたは公平な比較が、ANN計算システム100と、電子行列乗算ユニットを実装するシステムなどの光プロセッサ140を伴わないANN計算システムとの間で行われることを可能にし得る。
【０３５３】
光入力ベクトルが変調器の列144によって生成され得るレート(たとえば、25GHz)およびOMMユニット150の処理レート(たとえば、>100GHz)により、単一のデジタル入力ベクトルの単一のANN計算を実行するためのANN計算システム100の第1のループ期間は、変調器の列144の速度の逆数、たとえば40psに近づき得る。DACユニット130による信号生成およびADCユニット160によるADC変換と関連付けられるレイテンシを考慮した後、第1のループ期間は、たとえば、100ps以下、200ps以下、500ps以下、1ns以下、2ns以下、5ns以下、または10ns以下であり得る。
【０３５４】
比較として、電子行列乗算ユニットによるM×1ベクトルとM×M行列の乗算の実行時間は、通常はM^2-1回のプロセッサクロックサイクルに比例する。M=32の場合、そのような乗算には約1024サイクルかかり、これは3GHzのクロック速度では、300nsを超える実行時間となり、ANN計算システム100の第1のループ期間よりも数桁(orders of magnitude)遅い。
【０３５５】
いくつかの実装形態では、方法200はさらに、第1の変換されたデジタル出力ベクトルに基づいて第2の複数の変調器制御信号を生成するステップを含む。いくつかのタイプのANN計算では、単一のデジタル入力ベクトルが、同じANNを通って繰り返し伝搬され、または同じANNによって処理され得る。マルチパス処理を実装するANNは、再帰型ニューラルネットワーク(RNN)と呼ばれ得る。RNNは、ニューラルネットワークを通る第kのパスの間のネットワークの出力が、ニューラルネットワークの入力に再循環されて第k+1のパスの間に入力として使用されるような、ニューラルネットワークである。RNNは、発話認識または筆跡認識などの、パターン認識タスクにおいて様々な用途があり得る。第2の複数の変調器制御信号が生成されると、方法200は、ステップ240からステップ260に進み、ANNを通じた第1のデジタル入力ベクトルの第2のパスを完了し得る。一般に、変換されたデジタル出力をデジタル入力ベクトルとなるように再循環することは、ANN計算要求において受信されたRNNの特性に応じたあらかじめ設定された回数のサイクルの間繰り返され得る。
【０３５６】
いくつかの実装形態では、方法200はさらに、第2の複数のニューラルネットワーク重みに基づいて第2の複数の重み制御信号を生成するステップを含む。いくつかの場合、人工ニューラルネットワーク計算要求はさらに、第2の複数のニューラルネットワーク重みを含む。一般に、ANNは、入力層および出力層に加えて、1つまたは複数の隠れ層を有する。2つの隠れ層を伴うANNでは、第2の複数のニューラルネットワーク重みは、たとえば、ANNの第1の層とANNの第2の層との間の接続性に対応し得る。ANNの2つの隠れ層を通じて第1のデジタル入力ベクトルを処理するために、第1のデジタル入力ベクトルはまず、方法200に従ってステップ260まで処理されてもよく、ステップ260において、ANNの第1の隠れ層を通じて第1のデジタル入力ベクトルを処理した結果がメモリユニット120に記憶される。コントローラ110は次いで、ANNの第2の隠れ層と関連付けられる第2の複数のニューラルネットワーク重みに対応する行列乗算を実行するようにOMMユニット150を再構成する。OMMユニット150が再構成されると、方法200は、第1の変換されたデジタル出力ベクトルに基づいて複数の変調器制御信号を生成することができ、これにより、第1の隠れ層の出力に対応する更新された光入力ベクトルが生成される。更新された光入力ベクトルは次いで、ANNの第2の隠れ層に対応する再構成されたOMMユニット150によって処理される。一般に、説明されるステップは、デジタル入力ベクトルがANNのすべての隠れ層を通じて処理されるまで繰り返され得る。
【０３５７】
前に説明されたように、OMMユニット150のいくつかの実装形態では、OMMユニット150の再構成レートは、変調器の列144の変調レートよりもはるかに遅いことがある。そのような場合、ANN計算システム100のスループットは、ANN計算をその間は実行できない、OMMユニット150を再構成するのにかかる時間の長さにより、悪い影響を受けることがある。OMMユニット150の比較的遅い再構成時間の影響を軽減するために、多数のデジタル入力ベクトルにわたり再構成時間を償却するための構成変更なしで2つ以上のデジタル入力ベクトルがOMMユニット150を通じて伝播される、バッチ処理技法が利用され得る。
【０３５８】
図2Bは、図2Aの方法200の態様を示す図290を示す。2つの隠れ層を伴うANNでは、第1の隠れ層を通じて第1のデジタル入力ベクトルを処理し、第2の隠れ層のためにOMMユニット150を再構成し、再構成されたOMMユニット150を通じて第1のデジタル入力ベクトルを処理し、残りのデジタル入力ベクトルに対して同じことを繰り返す代わりに、入力データセットのすべてのデジタル入力ベクトルがまず、図290の上側部分に示されるように、第1の隠れ層のために構成されるOMMユニット150(構成#1)を通じて処理され得る。すべてのデジタル入力ベクトルが構成#1を有するOMMユニット150によって処理されると、OMMユニット150は構成#2へと再構成され、これはANNの第2の隠れ層に相当する。この再構成は、OMMユニット150によって入力ベクトルが処理され得るレートよりもはるかに遅いことがある。OMMユニット150が第2の隠れ層のために再構成されると、前の隠れ層からの出力ベクトルは、バッチでOMMユニット150によって処理され得る。数万個または数十万個のデジタル入力ベクトルを有する大きい入力データセットに対しては、再構成時間の影響は、ほぼ同じ係数により低減されることがあり、これは、再構成においてANN計算システム100により費やされる時間の部分をかなり減らすことがある。
【０３５９】
バッチ処理を実施するために、いくつかの実装形態では、方法200はさらに、DACユニットを通じて、第2のデジタル入力ベクトルに基づいて第2の複数の変調器制御信号を生成するステップと、ADCユニットから、光行列乗算ユニットの光出力ベクトルに対応する第2の複数のデジタル化された光出力を取得するステップであって、第2の複数のデジタル化された光出力が第2のデジタル出力ベクトルを形成する、ステップと、第2の変換されたデジタル出力ベクトルを生成するために第2のデジタル出力ベクトルに対して非線形変換を実行するステップと、メモリユニットに、第2の変換されたデジタル出力ベクトルを記憶するステップとを含む。第2の複数の変調器制御信号の生成は、たとえばステップ260の後にあり得る。さらに、この場合のステップ270のANN出力は今や、第1の変換されたデジタル出力ベクトルと第2の変換されたデジタル出力ベクトルの両方に基づく。取得するステップ、実行するステップ、および記憶するステップは、ステップ240から260と類似している。
【０３６０】
バッチ処理技法は、ANN計算システム100のスループットを高めるためのいくつかの技法の1つである。ANN計算システム100のスループットを高めるための別の技法は、波長分割多重化(WDM)を利用することによる複数のデジタル入力ベクトルの並列処理を通じたものである。WDMは、OMMユニット150の導波管などの、共通の伝播チャネルを通じて異なる波長の複数の光信号を同時に伝播する技法である。電気信号とは異なり、異なる波長の光信号は、同じチャネル上の異なる波長の他の光信号に影響を及ぼすことなく、共通のチャネルを通じて伝播することができる。さらに、光信号は、光マルチプレクサおよびデマルチプレクサなどの、よく知られている構造を使用して共通の伝播チャネルから追加され(多重化され)、または除去される(逆多重化される)。
【０３６１】
ANN計算システム100の文脈において、異なる波長の複数の光入力ベクトルは、独立に生成され、OMMユニット150を通じて同時に伝播され、ANN計算システム100のスループットを高めるために独立に検出され得る。図1Fを参照すると、波長分割多重化(WDM)人工ニューラルネットワーク(ANN)計算システム104の例の概略図が示されている。WDM ANN計算システム104は、別段説明されない限り、ANN計算システム100と同様である。WDM技法を実施するために、ANN計算システム104のいくつかの実装形態では、レーザーユニット142は、λ1、λ2、およびλ3などの複数の波長を生成するように構成される。複数の波長は好ましくは、共通の伝播チャネル上への簡単な多重化および逆多重化を可能にするのに十分大きい波長間隔により分離され得る。たとえば、0.5nm、1.0nm、2.0nm。3.0nm、または5.0nmよりも長い波長間隔は、簡単な多重化および逆多重化を可能にし得る。一方、複数の波長のうちの最短の波長と最長の波長の間の範囲(「WDM帯域幅」)は好ましくは、OMMユニット150の特性または性能が複数の波長にわたって実質的に同じままであるように、十分に小さいことがある。光コンポーネントは通常は分散性であり、これは、それらの光学的特性が波長に依存して変化することを意味する。たとえば、MZIのパワー分割比は波長にわたって変化し得る。しかしながら、十分に大きい動作波長区間を有するようにOMMユニット150を設計することによって、および、その動作波長区間内にあるように波長を制限することによって、各波長においてOMMユニット150によって出力される光出力ベクトルは、OMMユニット150によって実施される行列乗算の十分に正確な結果であり得る。動作波長区間は、たとえば、1nm、2nm、3nm、4nm、5nm、10nm、または20nmであり得る。
【０３６２】
図39Aは、光信号の振幅を変調するために使用され得るマッハツェンダー変調器3900の例の図を示す。マッハツェンダー変調器3900は、2つの1x2ポートマルチモード干渉カプラ(MMI_1x2)3902aおよび3902b、2つのバランスアーム3904aおよび3904b、ならびに1つのアームの中の位相シフタ3906(または各アームの中の1つの位相シフタ)を含む。電圧が信号線3908を通じて1つのアームの中の位相シフタに印加されると、2つのアーム3904aと3904bとの間には、振幅変調に変換される位相差がある。1x2ポートマルチモード干渉カプラ3902aおよび3902b、ならびに位相シフタ3906は、ブロードバンドフォトニックコンポーネントとして構成され、2つのアーム3904aおよび3904bの光経路長は等しくなるように構成される。これにより、マッハツェンダー変調器3900は、広い波長範囲で動作することが可能になる。
【０３６３】
図39Bは、波長1530nm、1550nm、および1570nmに対する、図39Aに示される構成を使用したマッハツェンダー変調器3900の強度対電圧曲線を示すグラフ3910である。グラフ3910は、マッハツェンダー変調器3900が1530nmから1570nmの範囲にある様々な波長に対して類似する強度対電圧特性を有することを示している。
【０３６４】
図1Fに戻ると、WDM ANN計算システム104の変調器の列144は、複数の光入力ベクトルを生成するように構成される光変調器のバンクを含み、バンクの各々は、複数の波長のうちの1つに対応し、それぞれの波長を有するそれぞれの光入力ベクトルを生成する。たとえば、長さ32の光入力ベクトルおよび3つの波長(たとえば、λ1、λ2、およびλ3)を伴うシステムでは、変調器の列144は、各々32個の変調器の3つのバンクを有し得る。さらに、変調器の列144はまた、複数の光入力ベクトルを、複数の波長を含む組み合わされた光入力ベクトルへと組み合わせるように構成される、光マルチプレクサを含む。たとえば、光マルチプレクサは、3つの異なる波長における変調器の3つのバンクの出力を、光入力ベクトルの各要素のための、導波管などの単一の伝播チャネルへと組み合わせ得る。したがって、上の例に戻ると、組み合わされた光入力ベクトルは32個の光信号を有し、各信号は3つの波長を含む。
【０３６５】
加えて、WDM ANN計算システム104の検出ユニット146はさらに、複数の波長を逆多重化して複数の逆多重化された出力電圧を生成するように構成される。たとえば、検出ユニット146は、複数波長の光出力ベクトルの32個の信号の各々に含まれる3つの波長を逆多重化し、3つの単一波長の光出力ベクトルをトランスインピーダンスアンプの3つのバンクに結合された光検出器の3つのバンクにルーティングするように構成される、デマルチプレクサを含み得る。
【０３６６】
加えて、WDM ANN計算システム104のADCユニット160は、検出ユニット146の複数の逆多重化された出力電圧を変換するように構成されるADCのバンクを含む。バンクの各々は、複数の波長のうちの1つに対応し、それぞれのデジタル化された逆多重化された光出力を生成する。たとえば、ADCのバンクは、検出ユニット146のトランスインピーダンスアンプのバンクに結合され得る。
【０３６７】
コントローラ110は、方法200と類似しているが複数波長動作をサポートするように拡張された方法を実施し得る。たとえば、方法は、ADCユニット160から、複数のデジタル化された逆多重化された光出力を取得するステップであって、複数のデジタル化された逆多重化された光出力が複数の第1のデジタル出力ベクトルを形成し、複数の第1のデジタル出力ベクトルの各々が複数の波長のうちの1つに対応する、ステップと、複数の第1のデジタル出力ベクトルの各々に対して非線形変換を実行して、複数の変換された第1のデジタル出力ベクトルを生成するステップと、メモリユニットに、複数の変換された第1のデジタル出力ベクトルを記憶するステップとを含み得る。
【０３６８】
いくつかの場合、複数波長の光出力ベクトルが逆多重化なしで検出され得るように、ANNが特別に設計されてもよく、デジタル入力ベクトルが特別に形成されてもよい。そのような場合、検出ユニット146は、複数波長の光出力ベクトルの複数の波長を逆多重化しない、波長無依存検出ユニットであり得る。したがって、検出ユニット146の光検出器の各々は、光信号の複数の波長を実質的に合計して単一の光電流にし、検出ユニット146によって出力される電圧の各々は、複数のデジタル入力ベクトルの行列乗算結果の要素ごとの合計に対応する。
【０３６９】
これまでに、ANN計算の一部として実行された加重和の非線形変換は、コントローラ110によってデジタル領域において実行された。いくつかの場合、非線形変換は、計算集約的であり、もしくは多くの電力を必要とし、コントローラ110の複雑さを大きく高め、または、スループットもしくは電力効率の点でANN計算システム100の性能を別様に制約し得る。したがって、ANN計算システムのいくつかの実装形態では、非線形変換が、アナログ電子回路を通じてアナログ領域において実行され得る。
【０３７０】
図3Aは、ANN計算システム300の例の概略図を示す。ANN計算システム300は、ANN計算システム100と類似しているが、アナログ非線形性ユニット310が追加されているという点で異なる。アナログ非線形性ユニット310は、検出ユニット146とADCユニット160との間に配置される。アナログ非線形性ユニット310は、検出ユニット146から出力電圧を受け取り、非線形伝達関数を適用し、変換された出力電圧をADCユニット160に出力するように構成される。
【０３７１】
ADCユニット160がアナログ非線形性ユニット310によって非線形に変換された電圧を受け取るにつれて、コントローラ110は、ADCユニット160から、変換された出力電圧に対応する変換されたデジタル化された出力電圧を取得し得る。ADCユニット160から取得されるデジタル化された出力電圧はすでに非線形に変換されている(「活性化されている」)ので、コントローラ110による非線形変換ステップを省略することができ、コントローラ110による計算負荷が減る。ADCユニット160から直接取得される第1の変換された電圧は次いで、メモリユニット120に、第1の変換されたデジタル出力ベクトルとして記憶され得る。
【０３７２】
アナログ非線形性ユニット310は、様々な方法で実装され得る。たとえば、フィードバック構成における高利得増幅器、調整可能な基準電圧をもつ比較器、ダイオードの非線形IV特性、ダイオードのブレークダウン挙動、バリアブルキャパシタの非線形CV特性、または可変抵抗の非線形IV特性が、アナログ非線形性ユニット310を実装するために使用され得る。
【０３７３】
アナログ非線形性ユニット310の使用は、デジタル領域において実行されることになるステップを減らすことによって、スループットまたは電力効率などの、ANN計算システム300の性能を高めることができる。非線形変換ステップをデジタル領域から出すことで、ANN計算システムの動作のさらなるフレキシビリティと改善が可能になり得る。たとえば、再帰型ニューラルネットワークにおいて、OMMユニット150の出力が活性化され、OMMユニット150の入力に再循環される。活性化は、ANN計算システム100の中のコントローラ110によって実行され、これは、OMMユニット150を通る1つ1つのパスにおいて検出ユニット146の出力電圧をデジタル化することを必要とする。しかしながら、活性化は今やADCユニット160によるデジタル化の前に実行されるので、再帰型ニューラルネットワーク計算を実行する際に必要とされるADC変換の数を減らすことが可能であり得る。
【０３７４】
いくつかの実装形態では、アナログ非線形性ユニット310は、非線形ADCユニットとしてADCユニット160へと統合され得る。たとえば、非線形ADCユニットは、線形ADCユニットの線形のデジタル化された出力を所望の非線形に変換されたデジタル化された出力と対応付ける非線形ルックアップテーブルを伴う線形ADCユニットであり得る。
【０３７５】
図3Bは、ANN計算システム302の例の概略図を示す。ANN計算システム302は、図3Aのシステム300と類似しているが、アナログメモリユニット320をさらに含むという点で異なる。アナログメモリユニット320は、DACユニット130(たとえば、第1のDACサブユニット132を通じて)、変調器の列144、およびアナログ非線形性ユニット310に結合される。アナログメモリユニット320は、DACユニット130に結合された第1の入力およびアナログ非線形性ユニット310に結合された第2の入力を有するマルチプレクサを含む。これは、アナログメモリユニット320が、DACユニット130またはアナログ非線形性ユニット310のいずれかから信号を受信することを可能にする。アナログメモリユニット320は、アナログ電圧を記憶し、記憶されているアナログ電圧を出力するように構成される。
【０３７６】
アナログメモリユニット320は、様々な方法で実装され得る。たとえば、キャパシタのアレイが、アナログ電圧記憶素子として使用され得る。アナログメモリユニット320のキャパシタは、充電回路によって入力電圧まで充電され得る。入力電圧の記憶は、コントローラ110から受信された制御信号に基づいて制御され得る。キャパシタは、キャパシタの望ましくない放電を引き起こす電荷漏洩を減らすために、周囲の環境から電気的に絶縁され得る。追加で、または代替的に、キャパシタに記憶されている電圧を維持するために、フィードバック増幅器が使用され得る。キャパシタの記憶されている電圧は、バッファ増幅器によって読み取られてもよく、これは、記憶されている電圧を出力しながらキャパシタにより記憶されている電荷が保存されることを可能にする。アナログメモリユニット320のこれらの態様は、サンプルおよびホールド回路の動作と類似していることがある。バッファ増幅器は、変調器の列144を駆動するための変調器ドライバの機能を実装し得る。
【０３７７】
ANN計算システム302の動作がここで説明される。DACユニット130によって(たとえば、第1のDACサブユニット132によって)出力される第1の複数の変調器制御信号はまず、アナログメモリユニット320を通じて変調器の列144に入力される。このステップにおいて、アナログメモリユニット320は、第1の複数の変調器制御信号を単に渡し、またはバッファリングし得る。変調器の列144は、第1の複数の変調器制御信号に基づいて光入力ベクトルを生成し、これは、OMMユニット150を通じて伝播し、検出ユニット146によって検出される。検出ユニット146の出力電圧は、アナログ非線形性ユニット310によって非線形に変換される。この時点で、ADCユニット160によってデジタル化される代わりに、検出ユニット146の出力電圧がアナログメモリユニット320によって記憶され、これは次いで、変調器の列144に出力されて、OMMユニット150を通じて伝播されることになる次の光入力ベクトルへと変換される。この再帰的な処理は、コントローラ110の制御下で、あらかじめ設定された長さの時間、またはあらかじめ設定された回数のサイクルの間、実行され得る。再帰的な処理が所与のデジタル入力ベクトルに対して完了すると、アナログ非線形性ユニット310の変換された出力電圧は、ADCユニット160によって変換される。
【０３７８】
アナログメモリユニット320の使用は、再帰型ニューラルネットワーク計算の間のADC変換の数を、所与のデジタル入力ベクトルのRNN計算ごとの単一のADC変換などへと大きく減らすことができる。各ADC変換は、ある時間がかかり、ある量のエネルギーを消費する。したがって、ANN計算システム302によるRNN計算のスループットは、ANN計算システム100によるRNN計算のスループットよりも高いことがある。
【０３７９】
再帰型ニューラルネットワーク計算の実行は、たとえば、アナログメモリユニット320を制御することによって制御され得る。たとえば、コントローラは、ある時間において電圧を記憶し、記憶されている電圧を異なる時間において出力するように、アナログメモリユニット320を制御し得る。したがって、アナログメモリユニット320から、アナログ非線形性ユニット310を通じた変調器の列144への、およびアナログメモリユニット320に戻る信号の循環は、アナログメモリユニット320の記憶および読み取りを制御することによってコントローラ110により制御され得る。
【０３８０】
したがって、いくつかの実装形態では、ANN計算システム302のコントローラ110は、第1の複数の変調器制御信号および第1の複数の重み制御信号を生成することに基づいて、アナログメモリユニットを通じて、アナログ非線形性ユニットの複数の変換された出力電圧を記憶するステップと、アナログメモリユニットを通じて、記憶されている変換された出力電圧を出力するステップと、ADCユニットから、第2の複数の変換されたデジタル化された出力電圧を取得するステップであって、第2の複数の変換されたデジタル化された出力電圧が第2の変換されたデジタル出力ベクトルを形成する、ステップと、メモリユニットに、第2の変換されたデジタル出力ベクトルを記憶するステップとを実行し得る。
【０３８１】
ANN計算システムによって処理されるべき入力データセットは通常、分解能が1ビットよりも大きいデータを含む。たとえば、グレースケールデジタル画像の典型的なピクセルは、8ビットの分解能、すなわち256個の異なるレベルを有し得る。光領域においてこのデータを表現して処理する1つの方法は、ピクセルの256個の異なる強度レベルを、OMMユニット150に入力される光信号の256個の異なるパワーレベルとして符号化することである。光信号は本質的にアナログ信号であるので、ノイズおよび検出誤差の影響を受けやすい。図1Aに戻ると、ANN計算システム100全体でデジタル入力ベクトルの8ビットの分解能を維持し、ADCユニット160の出力において真の8ビットのデジタル化された光出力を生成するために、好ましくは、信号チェーンの1つ1つの部分が、8ビットの分解能を再現して維持するように設計され得る。
【０３８２】
たとえば、好ましくは、DACユニット130は、変調器の列144が、デジタル入力ベクトルの8ビットを忠実に表現する光入力ベクトルを生成できるように、少なくとも8ビットの分機能の変調器制御信号への、8ビットのデジタル入力ベクトルの変換をサポートするように設計され得る。一般に、変調器制御信号は、変調器の列144の非線形応答を補償するために、デジタル入力ベクトルの8ビットを超える追加の分解能を有する必要があり得る。さらに、好ましくは、OMMユニット150の内部構成は、光出力ベクトルの値がOMMユニット150の構成においてどのような変動によっても破損しないことを確実にするのに、十分に安定化され得る。たとえば、OMMユニット150の温度は、たとえば、5度、2度、1度、または0.1度以内に安定化される必要があり得る。またさらに、検出ユニット146は好ましくは、光出力ベクトルの8ビットの分解能を損なわないように十分にノイズが小さいことがあり、ADCユニット160は好ましくは、少なくとも8ビットの分解能をもつアナログ電圧のデジタル化をサポートするように設計されることがある。
【０３８３】
様々な電子コンポーネントの電力消費と設計の複雑さは、ビット分解能、動作速度、および帯域幅とともに通常は増大する。たとえば、一次近似として、ADCユニット160の電力消費は、サンプリングレートと線形にスケーリングし、2^Nの係数によりスケーリングすることがあり、Nは変換結果のビット分解能である。さらに、DACユニット130およびADCユニット160の設計検討事項は通常、サンプリングレートとビット分解能のトレードオフをもたらす。したがって、いくつかの場合、ANN計算出力の分解能を維持しながら、入力データセットの分解能よりも低いビット分解能で内部的に動作する、ANN計算システムが望まれ得る。
【０３８４】
図4Aを参照すると、1ビットの内部分解能を伴う人工ニューラルネットワーク(ANN)計算システム400の例の概略図が示されている。ANN計算システム400は、ANN計算システム100と類似しているが、DACユニット130がここではドライバユニット430に置き換えられ、ADCユニット160がここでは比較器ユニット460に置き換えられているという点で異なる。
【０３８５】
ドライバユニット430は、1ビット変調器制御信号および複数ビット重み制御信号を生成するように構成される。たとえば、ドライバユニット430のドライバ回路は、コントローラ110からバイナリデジタル出力を直接受信し、バイナリ信号を変調器の列144を駆動するのに適した2レベルの電圧または電流出力へと調整し得る。
【０３８６】
比較器ユニット460は、検出ユニット146の出力電圧をデジタル化された1ビット光出力に変換するように構成される。たとえば、比較器ユニット460の比較器回路は、検出ユニット146から電圧を受け取り、電圧をあらかじめ設定された閾値電圧と比較し、受け取られた電圧があらかじめ設定された閾値電圧よりも小さいときにはデジタル0、または閾値電圧よりも大きいときにはデジタル1の、いずれかを出力し得る。
【０３８７】
図4Bを参照すると、ANN計算システム400の動作の数学的表現が示されている。ANN計算システム400の動作はここで、図4Bを参照して説明される。ANN計算システム400によって実行されることになる所与のANN計算に対して、対応するデジタル入力ベクトルVおよびニューラルネットワーク重み行列Uが存在する。この例では、入力ベクトルVは要素V0からV3を有する長さ4のベクトルであり、行列Uは重みU00からU33を伴う4×4行列である。ベクトルVの各要素は4ビットの分解能を有する。各々の4ビットベクトル要素は、2^0から2^3の位置に対応する第0のビット(bit0)から第3のビット(bit3)を有する。したがって、4ビットベクトル要素の十進(底10)値は、2^0*bit0+2^1*bit1+2^2*bit2+2^3*bit3という加算によって計算される。したがって、入力ベクトルVは同様に、示されるように、コントローラ110によってVbit0からVbit3へと分解され得る。
【０３８８】
次いで、あるANN計算が、個々の行列乗算結果の加算に続く1ビットベクトルの一連の行列乗算を実行することによって実行され得る。たとえば、分解された入力ベクトルVbit0からVbit3の各々は、ドライバユニット430を通じて、4つの1ビット入力ベクトルに対応する4つの1ビット変調器制御信号のシーケンスを生成することによって、行列Uと乗算され得る。これは次いで、4つの1ビット光入力ベクトルのシーケンスを生成し、このシーケンスは、行列Uの行列乗算を実施するようにドライバユニット430を通じて構成されるOMMユニット150を通って伝播する。コントローラ110は次いで、比較器ユニット460から、4つの1ビット変調器制御信号のシーケンスに対応する4つのデジタル化された1ビット光出力のシーケンスを取得し得る。
【０３８９】
4ビットベクトルが4つの1ビットベクトルに分解されるこの場合、各ベクトルは、同じ実効ANN計算スループットを維持するために、単一の4ビットベクトルがシステム100などの他のANN計算システムにより処理され得る速度の4倍で、ANN計算システム400によって処理されるべきである。そのような内部処理速度の向上は、4ビットベクトルを処理するための単一のタイムスロットへの4つの1ビットベクトルの時分割多重化と見なされ得る。処理速度の必要な向上は、DACユニット130およびADCユニット160と比較したときのドライバユニット430および比較器ユニット460の動作速度の向上によって少なくとも一部達成されてもよく、それは、信号変換処理の分解能の低下が通常は、達成され得る信号変換のレートの向上につながるからである。
【０３９０】
信号変換レートは1ビット演算においては4倍向上するが、生じる電力消費は4ビット演算と比較して大きく減り得る。前に説明されたように、信号変換処理の電力消費は通常、ビット分解能に対して指数関数的にスケーリングするが、変換レートに対して線形にスケーリングする。したがって、変換当たりの電力の16分の1の低減は、ビット分解能の4分の1の低減と、それに続く、変換レートの向上による電力の4倍の増大とに起因し得る。全体として、たとえばANN計算システム100と比較して、同じ実効ANN計算スループットを維持しながら、動作電力の4分の1の低減がANN計算システム400によって達成され得る。
【０３９１】
コントローラ110は次いで、デジタル化された1ビット光出力の各々を2^0から2^3のそれぞれの重みと乗算することによって、4つのデジタル化された1ビット光出力から4ビットデジタル出力ベクトルを構築し得る。4ビットデジタル出力ベクトルが構築されると、ANN計算は、構築された4ビットデジタル出力ベクトルに対して非線形変換を実行して、変換された4ビットデジタル出力ベクトルを生成し、メモリユニット120に、変換された4ビットデジタル出力ベクトルを記憶することによって、進み得る。
【０３９２】
代替的に、または追加で、いくつかの実装形態では、4つのデジタル化された1ビット光出力の各々は、非線形変換され得る。たとえば、ステップ関数非線形関数が、非線形変換のために使用され得る。変換された4ビットデジタル出力ベクトルが次いで、非線形変換されたデジタル化された1ビット光出力から構築され得る。
【０３９３】
別個のANN計算システム400が例示され説明されたが、一般に、図1AのANN計算システム100は、ANN計算システム400の機能と類似する機能を実装するように設計され得る。たとえば、DACユニット130は、1ビット変調器制御信号を生成するように構成される1ビットDACサブユニットを含んでもよく、ADCユニット160は、1ビットの分解能を有するように設計されてもよい。そのような1ビットADCは、比較器と類似していてもよく、またはそれと実質的に等価であってもよい。
【０３９４】
さらに、1ビットの内部分解能を伴うANN計算システムの動作が説明されたが、一般に、ANN計算システムの内部分解能は、入力データセットのNビット分解能よりも低い中間レベルまで低減され得る。たとえば、内部分解能は2^Yビットまで低減されてもよく、Yは0以上の整数である。
【０３９５】
本明細書で説明される主題および機能動作の実施形態は、デジタル電子回路において、または、本明細書で開示される構造物およびそれらの構造的な均等物を含めて、コンピュータソフトウェア、ファームウェア、もしくはハードウェアにおいて、または、それらの1つもしくは複数の組合せにおいて実装され得る。本明細書で説明される主題の実施形態は、データ処理装置による実行のために、またはその動作を制御するために、コンピュータ可読媒体上に符号化されたコンピュータプログラム命令の1つまたは複数のモジュールを使用して実装され得る。コンピュータ可読媒体は、コンピュータシステムの中のハードドライブもしくは小売店で販売される光学ディスクなどの製造された製品、または組込みシステムであり得る。コンピュータ可読媒体は、別々に入手され、その後で、有線ネットワークまたはワイヤレスネットワークを介したコンピュータプログラム命令の1つまたは複数のモジュールの配信などによって、コンピュータプログラム命令の1つまたは複数のモジュールを符号化されてもよい。コンピュータ可読媒体は、機械可読記憶デバイス、機械可読記憶基板、メモリデバイス、またはそれらの1つもしくは複数の組合せであり得る。
【０３９６】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコードとしても知られている)は、コンパイル型言語またはインタプリタ型言語、宣言型言語または手続型言語を含む、任意の形式のプログラミング言語で書かれてもよく、スタンドアロンプログラムとして、または、モジュール、コンポーネント、サブルーチン、もしくはコンピューティング環境において使用するのに適した他のユニットとしてを含めて、任意の形式で展開されてもよい。コンピュータプログラムは、必ずしもファイルシステムにおけるファイルに相当しない。プログラムは、他のプログラムまたはデータ(たとえば、マークアップ言語ドキュメントに記憶されている1つまたは複数のスクリプト)を保持するファイルの一部分に、対象のプログラムに専用の単一のファイルに、または複数の協調したファイル(たとえば、1つもしくは複数のモジュール、サブプログラム、またはコードの部分を記憶するファイル)に記憶され得る。コンピュータプログラムは、1つのコンピュータ上で、または、1つの場所に配置される、もしくは複数の場所に分散しており通信ネットワークにより相互接続される複数のコンピュータ上で実行されるように、展開され得る。
【０３９７】
本明細書において説明される処理および論理フローは、入力データに対して動作して出力を生成することにより機能を実行するための、1つまたは複数のコンピュータプログラムを実行する1つまたは複数のプログラマブルプロセッサによって実行され得る。専用論理回路、たとえばFPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)によって、処理および論理フローが実行されてもよく、それらとして装置が実装されてもよい。
【０３９８】
本明細書は多くの実装の詳細を含むが、これらは、本発明の範囲または特許請求され得るものの範囲に対する限定として解釈されるべきではなく、むしろ、本発明の特定の実施形態に特有の特徴の説明として解釈されるべきである。別個の実施形態の文脈で本明細書において説明されるいくつかの特徴は、単一の実施形態において組み合わせて実装されてもよい。逆に、単一の実施形態の文脈で説明される様々な特徴が、複数の実施形態において別々に、または任意の適切な部分組合せにおいて実装されてもよい。その上、特徴は、ある組合せで行動するものとして上で説明されることがあり、そのように最初に特許請求されることすらあるが、特許請求される組合せからの1つまたは複数の特徴は、いくつかの場合には組合せから削除されてもよく、特許請求される組合せは、部分組合せまたは部分組合せの変形を対象としてもよい。
【０３９９】
同様に、動作は特定の順序で図面に示されているが、これは、望ましい結果を達成するために、そのような動作が示される特定の順序もしくは逐次的な順序で実行されること、またはすべての示される動作が実行されることを必要とするものとして理解されるべきではない。いくつかの状況では、マルチタスキングおよび並列処理が有利であり得る。その上、上で説明された実施形態における様々なシステムコンポーネントの分離は、すべての実施形態においてそのような分離を必要とするものとして理解されるべきではなく、説明されるプログラムコンポーネントおよびシステムは一般に、単一のソフトウェア製品において一緒に統合され、または複数のソフトウェア製品へとパッケージングされ得ることを理解されたい。
【０４００】
したがって、本発明の特定の実施形態が説明された。他の実施形態が、以下の特許請求の範囲の範囲内にある。加えて、請求項に記載される行動は、異なる順序で実行され、それでも望ましい結果を達成することができる。たとえば、図1Aの光行列乗算ユニット150は、複数の相互接続されたマッハツェンダー干渉計を含む光干渉ユニット154を含む。いくつかの実装形態では、光干渉ユニットは、ほとんど電力を消費しない1次元、2次元、または3次元の受動回折光学素子を使用して実装され得る。マッハツェンダー干渉計を含む光干渉ユニットと比較して、受動回折光学素子を使用する光干渉ユニットは、入力/出力の数が同じままである場合、よりサイズを小さくすることができ、または、同じチップサイズに対して、より多数の入力/出力を処理することができる。受動回折光学素子は、マッハツェンダー干渉計と比較してより低いコストで作ることができる。
【０４０１】
図5を参照すると、いくつかの実装形態において、人工ニューラルネットワーク計算システム500は、コントローラ110、メモリユニット120、DACユニット506、光プロセッサ504、およびADCユニット160を含む。メモリユニット120およびADCユニット160は、図1Aのシステム100の対応するコンポーネントと同様である。光プロセッサ504は、光コンポーネントを使用して行列計算を実行するように構成される。システム500において、光行列乗算ユニット502に対する重みは固定されている。DACユニット506は、図1Aのシステム100の第1のDACサブユニット132と同様である。
【０４０２】
ANN計算システム500の例示的な動作において、コンピュータ102は、人工ニューラルネットワーク計算要求をANN計算システム500に出し得る。ANN計算要求は、提供されたANNによって処理されるべき入力データセットを含み得る。コントローラ110は、ANN計算要求を受信し、メモリユニット120に入力データセットを記憶する。
【０４０３】
いくつかの実装形態では、光行列乗算ユニット150の一部分がマッハツェンダー干渉計を含み、光行列乗算ユニット150の別の部分が受動回折素子を含むような、ハイブリッド手法が使用される。
【０４０４】
ANN計算システム500の内部動作がここで説明される。光プロセッサ504は、レーザーユニット142、変調器の列144、検出ユニット146、および光行列乗算(OMM)ユニット502を含む。レーザーユニット142、変調器の列144、および検出ユニット146は、図1Aのシステム100の対応するコンポーネントと同様である。この例では、OMMユニット502は、2次元回折光学素子を含み、受動集積シリコンフォトニックチップとして実装され得る。光行列乗算ユニット502は、回折ニューラルネットワークを実装するように構成されてもよく、ほとんど電力消費なしで行列乗算を実行することができる。
【０４０５】
光プロセッサ504は、長さNのデジタル入力ベクトルを長さNの光入力ベクトルへと符号化し、OMMユニット502を通って光入力ベクトルを伝播させることによって動作する。OMMユニット502は、長さNの光入力ベクトルを受信し、光領域において、受信された光入力ベクトルに対してN×N行列乗算を実行する。OMMユニット502によって実行されるN×N行列乗算は、OMMユニット502の内部構成によって決定される。OMMユニット502の内部構成は、たとえば、回折光学素子の寸法、配置、および幾何学的形状、ならびに、もしあれば不純物のドーピングを含む。
【０４０６】
OMMユニット502は、様々な方法で実装され得る。図6は、回折素子の2次元配列を使用するOMMユニット502の例の概略図を示す。OMMユニット502は、光入力ベクトルを受信するための入力導波管602の列と、入力導波管602の列と光学的に連絡している2次元光干渉ユニット600と、光干渉ユニット600と光学的に連絡している出力導波管604の列とを含み得る。光干渉ユニット600は、複数の回折光学素子を含み、光信号の第2の列への光入力ベクトルの変換(たとえば、線形変換)を実行する。出力導波管604の列は、光干渉ユニット600によって出力される光信号の第2の列を導く。入力導波管602の列の中の少なくとも1つの入力導波管は、光干渉ユニット600を介して、出力導波管604の列の中の各出力導波管と光学的に連絡している。たとえば、長さNの光入力ベクトルに対して、OMMユニット502は、N個の入力導波管602およびN個の出力導波管604を含み得る。
【０４０７】
いくつかの実装形態では、光干渉ユニット600は、2次元に(たとえば、2D配列に)配置される回折素子を有する基板を含む。たとえば、複数の円形の穴が基板にあけられてもよく、またはエッチングされてもよい。穴は、光が穴(または穴を画定する構造物)によって回折されるように、入力光の波長の寸法と同等の桁の寸法を有する。たとえば、穴の寸法は100nmから2μmの範囲にあり得る。穴は同じまたは異なるサイズを有し得る。穴はまた、三角形、正方形、長方形、六角形、または不規則な形状などの、他の断面形状を有し得る。基板は、たとえば入力光に関して1%から99%の範囲の透過率を有する、入力光に対して透過的な、または半透過的な材料からできていてもよい。たとえば、基板は、シリコン、酸化シリコン、窒化シリコン、クォーツ、水晶(たとえば、ニオブ酸リチウム、LiNbO3)、ガリウムヒ素もしくはリン化インジウムなどのIII-V族材料、エルビウム添加半導体、またはポリマーからできていてもよい。
【０４０８】
いくつかの実装形態では、基板の中に2次元回折光学素子を形成するために、ホログラフィック法が使用され得る。基板は、ガラス、水晶、または光屈折性材料からできていてもよい。
【０４０９】
OMMユニット502を設計するとき、第3の次元(たとえば、z方向)における回折素子の相対的な配置を考慮せずに、2次元(たとえば、xおよびy方向)における回折素子の寸法と配置を考慮する。各回折素子は、穴、円柱、または、基板に形成されるある深さを有する縞などの、3次元構造であり得る。
【０４１０】
図6において、回折光学素子は丸によって表される。回折光学素子はまた、三角形、正方形、長方形、または不規則な形状などの、他の形状を有し得る。回折光学素子は、様々なサイズを有し得る。回折光学素子は、格子点上に位置していなくてもよく、それらの位置は可変であり得る。図6の図解は例示を目的とするものにすぎない。実際の回折光学素子は、図に示されるものとは異なっていてもよい。回折光学素子の異なる構成が、異なる行列乗算機能などの異なる行列演算を実施するために使用され得る。
【０４１１】
回折光学素子の構成は、最適化処理を使用して決定され得る。たとえば、基板がピクセルの列へと分割されてもよく、各ピクセルは、基板材料で満たされる(穴なし)か、または空気で満たされる(穴)かのいずれかであり得る。ピクセルの構成は、繰り返し修正されてもよく、ピクセルの各構成に対して、回折光学素子に光を通して出力を評価することによって、シミュレーションが実行されてもよい。ピクセルのすべての可能な構成のシミュレーションが実行された後で、所望の行列処理に最もよく似ている結果をもたらす構成が、OMMユニット502のための回折光学素子構成として選ばれる。
【０４１２】
別の例として、回折素子は穴の列として最初は構成される。穴の配置、寸法、および形状は、それらの最初の構成からわずかに変えられてもよい。各穴のパラメータは繰り返し調整されてもよく、穴に対する最適な構成を見つけるためにシミュレーションが実行されてもよい。
【０４１３】
いくつかの実装形態では、機械学習処理が、回折光学素子を設計するために使用される。ピクセルが入力光にどのように影響して出力光を生成するかについての解析関数が決定され、ピクセルの最適な構成を決定するために最適化処理(たとえば、勾配降下法)が使用される。
【０４１４】
いくつかの実装形態では、OMMユニット502はユーザにより変更可能なコンポーネントとして実装されてもよく、異なる光干渉ユニット600を有する異なるOMMユニット502が異なる用途のために設置されてもよい。たとえば、システム500は、光文字認識システムとして構成されてもよく、光干渉ユニット600は、光文字認識を実行するためのニューラルネットワークを実装するように構成されてもよい。たとえば、第1のOMMユニットは、書かれた言語およびフォントの第1のセットに対する光文字認識エンジンのための第1のニューラルネットワークを実装するように構成される、受動回折光学素子を含む第1の光干渉ユニットを有し得る。第2のOMMユニットは、書かれた言語およびフォントの第2のセットに対する光文字認識エンジンのための第2のニューラルネットワークを実装するように構成される、受動回折光学素子を含む第2の光干渉ユニットを有してもよい、などである。ユーザが、書かれた言語およびフォントの第1のセットに光文字認識を適用するためにシステム500を使用することを望むとき、ユーザは第1のOMMユニットをシステムに挿入することができる。ユーザが、書かれた言語およびフォントの第2のセットに光文字認識を適用するためにシステム500を使用することを望むとき、ユーザは、第1のOMMユニットを交換し、第2のOMMユニットをシステムに挿入することができる。
【０４１５】
たとえば、システム500は発話認識システムとして構成されてもよく、光干渉ユニット600は、発話認識を実行するためのニューラルネットワークを実装するように構成されてもよい。たとえば、第1のOMMユニットは、第1の話される言語に対する発話認識エンジンのための第1のニューラルネットワークを実装するように構成される受動回折光学素子を含む、第1の光干渉ユニットを有し得る。第2のOMMユニットは、第2の話される言語に対する発話認識エンジンのための第2のニューラルネットワークを実装するように構成される受動回折光学素子を含む、第2の光干渉ユニットを有し得る、などである。ユーザが、第1の話される言語の発話を認識するためにシステム500を使用することを望むとき、ユーザは第1のOMMユニットをシステムに挿入することができる。ユーザが、第2の話される言語の発話を認識するためにシステム500を使用することを望むとき、ユーザは第1のOMMユニットを交換し、第2のOMMユニットをシステムに挿入することができる。
【０４１６】
たとえば、システム500は、自律車両の制御ユニットの一部であってもよく、光干渉ユニット600は、道路状況の認識を実行するためのニューラルネットワークを実装するように構成されてもよい。たとえば、第1のOMMユニット502は、米国における道路標識を含む道路状況を認識するための第1のニューラルネットワークを実装するように構成される受動回折光学素子を含む、第1の光干渉ユニットを有し得る。第2のOMMユニット502は、カナダにおける道路標識を含む道路状況を認識するための第2のニューラルネットワークを実装するように構成される受動回折光学素子を含む、第2の光干渉ユニットを有し得る。第3のOMMユニット502は、メキシコにおける道路標識を含む道路状況を認識するための第3のニューラルネットワークを実装するように構成される受動回折光学素子を含む、第3の光干渉ユニットを有し得る、などである。自律車両が米国において使用されるとき、第1のOMMユニットがシステムに挿入される。自律車両が国境を渡りカナダに入ると、第1のOMMユニットが交換され、第2のOMMユニットがシステムに挿入される。一方、自律車両が国境を渡りメキシコに入ると、第1のOMMユニットが交換され、第3のOMMユニットがシステムに挿入される。
【０４１７】
たとえば、システム500は遺伝子シーケンシングのために使用され得る。DNA配列は、受動回折光学素子を含むシステム500を使用して実装される畳み込みニューラルネットワークを使用して分類され得る。たとえば、システム500は、腫瘍タイプを区別すること、腫瘍悪性度を予測すること、遺伝子発現パターンから患者の生存を予測することのための、ニューラルネットワークを実装することができる。たとえば、システム500は、分析されている特性を最も予測する遺伝子またはシグネチャのサブセットを特定するための、ニューラルネットワークを実装することができる。たとえば、システム500は、遺伝子のサブセットのプロファイルからすべての遺伝子の発現レベルを予測または推測するための、ニューラルネットワークを実装することができる。たとえば、システム500は、転写因子結合部位、エンハンサー領域、およびクロマチン接近可能性を遺伝子配列から予測することなどの、エピジェノミック分析のためのニューラルネットワークを実装することができる。たとえば、システム500は、遺伝子配列内の構造を捉えるためのニューラルネットワークを実装することができる。
【０４１８】
たとえば、システム500は、医療診断システムとして構成されてもよく、OMMユニット502は、疾病のスクリーニングを実行するための生理学的パラメータを分析するためのニューラルネットワークを実装するように構成され得る。たとえば、システム500はバクテリア検出システムとして構成されてもよく、OMMユニット502は、DNA配列を分析してバクテリアの何らかの系統を検出するための乗算関数を実装するように構成されてもよい。
【０４１９】
いくつかの実装形態では、OMMユニット502は、回折光学素子を有する基板を保護するハウジング(たとえば、カートリッジ)を含む。ハウジングは、入力導波管602に結合された入力インターフェースと、出力導波管604に結合された出力インターフェースとを支持する。入力インターフェースは、変調器の列144から出力を受信するように構成され、出力インターフェースは、OMMユニット502の出力を検出ユニット146に送信するように構成される。OMMユニット502は、平均的な消費者により扱われるのに適したモジュールとして設計されてもよく、ユーザがあるOMMユニット502から別のOMMユニット502に簡単に切り替えることを可能にする。機械学習技術は時間とともに進化する。ユーザは、古いOMMユニット502を交換して新しい更新されたバージョンを挿入することによって、システム500を更新することができる。
【０４２０】
光コンパクトディスクが、CDプレーヤーによって取り出され得るデジタル情報を記憶できるのと同様に、OMMユニットは、光プロセッサにおいて使用され得るニューラルネットワーク構成を記憶することができる。光コンパクトディスクがデジタル情報(オーディオ、ビデオ、およびソフトウェアプログラムを含む)を消費者に配布するための低コストの媒体であるように、OMMユニットは、あらかじめ構成されたニューラルネットワークまたは行列処理機能(たとえば、乗算、畳み込み、または任意の他の線形演算)を消費者に配布するための低コストの媒体であり得る。
【０４２１】
いくつかの実装形態では、システム500は、異なる会社により提供されるOMMユニットとともに動作可能であるように構成される、光コンピューティングプラットフォームである。これは、異なる会社が、多様な用途に対して異なる受動光ニューラルネットワークを開発することを可能にする。受動光ニューラルネットワークは、光コンピューティングプラットフォームにインストールされ得る標準化されたパッケージとしてエンドユーザに販売され、システム500が様々なインテリジェント機能を実行することを可能にする。
【０４２２】
いくつかの実装形態では、システムは、複数のOMMユニット502を支持するためのホルダ機構を有してもよく、OMMユニット502を自動的に交換するための、機械的な取り扱い機構が設けられてもよい。システムは、どのOMMユニット502が現在の用途に必要であるかを決定し、機械的な取り扱い機構を使用して、ホルダ機構から適切なOMMユニットを自動的に取り出し、それを光プロセッサ504に挿入する。
【０４２３】
指定されたサイズの光チップに対し、マッハツェンダー干渉計などの能動干渉計を使用する場合と比較して、より多くの受動回折素子を基板に収めることができる。たとえば、マッハツェンダー干渉計を使用する図1Bの光干渉ユニット154は、200×200の行列乗算を処理するように構成され得るが、同じ全体サイズを有し受動回折素子(各々が約100nm×100nmの寸法を有する)を使用する光干渉ユニット600は、5000×5000の行列乗算を処理するように構成され得る。
【０４２４】
受動回折光学素子は、ほとんど電力を消費しないので、OMMユニット502は、バッテリーで動作するデバイスなどの、低電力のデバイスにおいて使用され得る。OMMユニット502はエッジコンピューティングに適している。たとえば、OMMユニット502は、センサからの生データが、OMMユニット502を使用する光プロセッサを使用して処理されるような、スマートセンサにおいて使用され得る。スマートセンサは、中央コンピュータサーバに処理されたデータを送信するように構成され得るので、中央コンピュータサーバに送信される生データの量が減る。スマートセンサにインテリジェント処理能力を持たせることによって、障害および異常がより早く検出され、より効果的に対処され得る。OMMユニット502は、大きな行列乗算の処理を必要とする用途に適している。OMMユニット502は、ニューラルネットワークがすでに訓練されており、かつ重みがすでに決定されており修正される必要のない、用途に適している。
【０４２５】
回折光学素子が形成される基板は、平坦であるか、または湾曲しているかのいずれかであり得る。図6Aの例では、入力光は左から光干渉ユニット600に入り、出力光は右から光干渉ユニット600を出る(「左」、「右」、「上」、および「下」という用語は図に示される方向を指す)。いくつかの例では、受動回折光学素子は、上もしくは下から、または光干渉ユニット600の左側、右側、上側、および下側の任意の組合せから、出力光の一部が光干渉ユニット600を出るようにするように構成され得る。光干渉ユニット600の基板は、正方形、長方形、三角形、円、または楕円などの、種々の形状のいずれを有してもよい。光干渉ユニット600は、光伝播の方向を変えるための、反射素子または鏡を組み込み得る。
【０４２６】
いくつかの実装形態では、人工ニューラルネットワーク計算システム500は、検出ユニット146とADCユニット160との間にアナログ非線形ユニット310を追加することによって修正され得る。アナログ非線形性ユニット310は、検出ユニット146から出力電圧を受け取り、非線形伝達関数を適用し、変換された出力電圧をADCユニット160に出力するように構成される。コントローラ110は、ADCユニット160から、変換された出力電圧に対応する変換されたデジタル化された出力電圧を取得し得る。ADCユニット160から取得されたデジタル化された出力電圧はすでに非線形変換(「活性化」)されているので、コントローラ110による非線形変換ステップを省略することができ、コントローラ110による計算負荷が減る。ADCユニット160から直接取得された第1の変換された電圧は次いで、メモリユニット120に第1の変換されたデジタル出力ベクトルとして記憶され得る。
【０４２７】
光干渉ユニットは、3次元に配置された受動回折光学素子を使用して実装され得る。図7を参照すると、いくつかの実装形態では、人工ニューラルネットワーク計算システム700は、3次元OMMユニット708を含む光プロセッサ702を有する。システム700は、メモリユニット120と、図5のシステム500の対応するコンポーネントと類似しているADCユニット160とを含む。光プロセッサ702は、3次元に配置された回折光学素子を使用して行列計算を実行するように構成される。
【０４２８】
光プロセッサ702は、光線714の2次元配列を出力するように構成されるレーザーユニット704と、光線714の2次元配列を変調して光線716の変調された二次元配列を生成するように構成される2次元変調器の列706とを含む。光プロセッサ702は、3次元に配置された回折光学素子を有し、光線716の変調された2次元配列を処理して出力光線718の2次元配列を生成するように構成される、光行列乗算(OMM)ユニット708を含む。光プロセッサ702は、出力光線718の2次元配列を検出するための光センサの2次元配列を有する検出ユニット710を含む。検出ユニット710の出力は、ADCユニット160によってデジタル信号に変換される。
【０４２９】
たとえば、3D OMMユニット708は、受動集積シリコンフォトニックコラムまたはキューブとして実装され得る。光行列乗算ユニット708は、回折ニューロンネットワークを実装するように構成されてもよく、ほぼ電力消費なしで行列乗算を実行することができる。
【０４３０】
光プロセッサ702による使用のために入力データを符号化する多くの方法がある。たとえば、長さN×Nのデジタル入力ベクトルは、サイズN×Nの光入力行列へと符号化されてもよく、これはOMMユニット708を通って伝播される。OMMユニット708は、受信された光入力行列に対する(N×N)×(N×N)行列乗算を、光領域において実行する。OMMユニット708によって実行される(N×N)×(N×N)行列乗算は、たとえば、3次元に配置された回折光学素子の寸法、配置および幾何学的形状、ならびにもしあれば不純物のドーピングを含む、OMMユニット708の内部構成によって決定される。
【０４３１】
OMMユニット708は、様々な方法で実装され得る。図8は、回折素子の3次元構成を使用するOMMユニット708の例の概略図を示す。OMMユニット708は、光入力行列802を受信するための入力導波管の行列と、入力導波管の行列と光学的に連絡している3次元光干渉ユニット804と、光出力行列806を提供するための光干渉ユニット804と光学的に連絡している出力導波管の行列とを含み得る。光干渉ユニット804は、複数の回折光学素子を含み、光出力(たとえば、N×Nベクトルまたは行列)への光入力(たとえば、N×Nベクトルまたは行列)の変換(たとえば、線形変換)を実行する。出力導波管の行列は、光干渉ユニット804によって出力される光信号を導く。入力導波管の行列の中の少なくとも1つの入力導波管は、光干渉ユニット804を介して、出力導波管の行列の中の各出力導波管と光学的に連絡している。たとえば、長さN×Nの光入力ベクトルに対して、OMMユニット708は、N×N個の入力導波管およびN×N個の出力導波管を含み得る。
【０４３２】
いくつかの実装形態では、光干渉ユニット804は、3次元に(たとえば、3D行列に)配置された回折素子を有する基板のブロックを含む。たとえば、複数の穴が、複数枚の基板の各々にあけられてもよく、またはエッチングされてもよく、複数枚の基板は、基板のブロックを形成するように組み合わされてもよい。穴は、光が穴(または穴を画定する構造)によって回折されるように、入力光の波長の寸法と同等の桁の寸法を有する。穴は、同じまたは異なるサイズを有し得る。穴はまた、三角形、正方形、長方形、六角形、または不規則な形状などの、他の断面形状を有し得る。いくつかの実装形態では、基板のブロック全体に3次元回折光学素子を形成するために、ホログラフィック法が使用され得る。基板は、たとえば入力光に関して1%から99%の範囲の透過率を有する、入力光に対して透過的な、または半透過的な材料からできていてもよい。
【０４３３】
OMMユニット708を設計するとき、x方向、y方向、およびz方向における回折素子の寸法および配置を考慮する。回折光学素子の構成は、最適化処理を使用して決定され得る。たとえば、基板のブロックは、ピクセルの3次元行列へと分割されてもよく、各ピクセルは、基板材料で満たされる(穴なし)か、または空気で満たされる(穴)かのいずれかであり得る。ピクセルの構成は、繰り返し修正されてもよく、ピクセルの各構成に対して、回折光学素子に光を通して出力を評価することによって、シミュレーションが実行されてもよい。ピクセルのすべての可能な構成のシミュレーションが実行された後で、所望の行列処理に最もよく似ている結果をもたらす構成が、OMMユニット708のための回折光学素子構成として選ばれる。
【０４３４】
別の例として、回折素子は、穴の3次元行列として最初に構成される。穴の配置、寸法、および形状は、それらの最初の構成からわずかに変えられてもよい。各穴のパラメータは繰り返し調整されてもよく、穴に対する最適な構成を見つけるためにシミュレーションが実行されてもよい。
【０４３５】
いくつかの実装形態では、機械学習処理が、3次元回折光学素子を設計するために使用される。ピクセルが入力光にどのように影響するかについての解析関数が決定され、ピクセルの最適な構成を決定するために勾配降下法が使用される。
【０４３６】
いくつかの実装形態では、OMMユニット708はユーザにより変更可能なコンポーネントとして実装されてもよく、異なる光干渉ユニット804を有する異なるOMMユニット708が異なる用途のために設置されてもよい。たとえば、システム700は、医療診断システムとして構成されてもよく、光干渉ユニット804は、疾病のスクリーニングを実行するための生理学的パラメータを分析するためのニューラルネットワークを実装するように構成されてもよい。たとえば、第1のOMMユニットは、疾病の第1のセットをスクリーニングするための第1のニューラルネットワークを実装するように構成される、3D受動回折光学素子を含む第1の光干渉ユニットを有し得る。第2のOMMユニットは、疾病の第2のセットをスクリーニングするための第2のニューラルネットワークを実装するように構成される、3D受動回折光学素子を含む第2の光干渉ユニットを有してもよい、などである。第1のOMMユニットおよび第2のOMMユニットは、異なる疾病をスクリーニングするための技法を開発することに特化した異なる会社により開発され得る。ユーザが、疾病の第1のセットをスクリーニングするためにシステム700を使用することを望むとき、ユーザは第1のOMMユニットをシステムに挿入することができる。ユーザが、疾病の第2のセットをスクリーニングするためにシステム700を使用することを望むとき、ユーザは、第1のOMMユニットを交換し、第2のOMMユニットをシステムに挿入することができる。
【０４３７】
たとえば、システム700は、光文字認識システムとして構成されてもよく、光干渉ユニット804は、光文字認識を実行するためのニューラルネットワークを実装するように構成されてもよい。たとえば、システム700は発話認識システムとして構成されてもよく、光干渉ユニット804は発話認識を実行するためのニューラルネットワークを実装するように構成されてもよい。たとえば、システム700は自律車両の制御ユニットの一部であってもよく、光干渉ユニット804は道路状況の認識を実行するためのニューラルネットワークを実装するように構成されてもよい。
【０４３８】
たとえば、システム700は、遺伝子シーケンシングのために使用され得る。DNA配列は、受動回折光学素子を含むシステム700を使用して実装される畳み込みニューラルネットワークを使用して分類され得る。たとえば、システム700は、腫瘍タイプを区別すること、腫瘍悪性度を予測すること、遺伝子発現パターンから患者の生存を予測することのための、ニューラルネットワークを実装することができる。たとえば、システム700は、分析されている特性を最も予測する遺伝子またはシグネチャのサブセットを特定するための、ニューラルネットワークを実装することができる。たとえば、システム700は、遺伝子のサブセットのプロファイルからすべての遺伝子の発現レベルを予測または推測するための、ニューラルネットワークを実装することができる。たとえば、システム700は、転写因子結合部位、エンハンサー領域、およびクロマチン接近可能性を遺伝子配列から予測することなどのエピジェノミック分析のためのニューラルネットワークを実装することができる。たとえば、システム700は、遺伝子配列内の構造を捉えるためのニューラルネットワークを実装することができる。たとえば、システム700は、バクテリア検出システムとして構成されてもよく、光干渉ユニット804は、バクテリアの何らかの系統を検出するためにDNA配列を分析するための乗算関数を実装するように構成されてもよい。
【０４３９】
いくつかの実装形態では、OMMユニット700は、3D回折光学素子を有する基板を保護するハウジング(たとえば、カートリッジ)を含む。ハウジングは、入力導波管に結合された入力インターフェースと、出力導波管に結合された出力インターフェースとを支持する。入力インターフェースは、変調器の列706から出力を受信するように構成され、出力インターフェースは、OMMユニット708の出力を検出ユニット710に送信するように構成される。OMMユニット708は、平均的な消費者により扱われるのに適したモジュールとして設計されてもよく、ユーザがあるOMMユニット708から別のOMMユニット708に簡単に切り替えることを可能にする。機械学習技術は時間とともに進化する。ユーザは、古いOMMユニット708を交換して新しい更新されたバージョンを挿入することによって、システム700を更新することができる。
【０４４０】
いくつかの実装形態では、システム700は、異なる会社によって提供されたOMMユニットとともに動作可能であるように構成される、光コンピューティングプラットフォームである。これは、これは、異なる会社が、多様な用途に対して異なる3D受動光ニューラルネットワークを開発することを可能にする。3D受動光ニューラルネットワークは、光コンピューティングプラットフォームにインストールされ得る標準化されたパッケージとしてエンドユーザに販売され、システム700が様々なインテリジェント機能を実行することを可能にする。
【０４４１】
いくつかの実装形態では、システムは、複数のOMMユニット708を支持するためのホルダ機構を有してもよく、OMMユニット708を自動的に交換するための、機械的な取り扱い機構が設けられてもよい。システムは、どのOMMユニット708が現在の用途に必要であるかを決定し、機械的な取り扱い機構を使用して、ホルダ機構から適切なOMMユニット708を自動的に取り出し、それを光プロセッサ702に挿入する。
【０４４２】
いくつかの実装形態では、人工ニューラルネットワーク計算システム700は、検出ユニット710とADCユニット160との間にアナログ非線形ユニットを追加することによって修正され得る。アナログ非線形ユニットは、検出ユニット710から出力電圧を受け取り、非線形伝達関数を適用し、変換された出力電圧をADCユニット160に出力するように構成される。コントローラ110は、ADCユニット160から、変換された出力電圧に対応する変換されたデジタル化された出力電圧を取得し得る。ADCユニット160から取得されたデジタル化された出力電圧はすでに非線形変換(「活性化」)されているので、コントローラ110による非線形変換ステップを省略することができ、コントローラ110による計算負荷が減る。ADCユニット160から直接取得された第1の変換された電圧は次いで、メモリユニット120に第1の変換されたデジタル出力ベクトルとして記憶され得る。
【０４４３】
光干渉ユニットは、1次元に配置された受動回折光学素子を使用して実装され得る。図9を参照すると、いくつかの実装形態では、人工ニューラルネットワーク計算システム900は、1次元光乗算ユニット916を含む光プロセッサ906を有する。システム900は、図1Aのシステム100の対応するコンポーネントと類似するメモリユニット120を含む。光プロセッサ906は、1次元に、光伝播の軸に沿って配置された回折光学素子を使用して、乗算の計算を実行するように構成される。
【０４４４】
光プロセッサ906は、レーザー光線910を出力するように構成されるレーザーユニット908と、光線910を変調して変調された光線914を生成するように構成される変調器912とを含む。光プロセッサ906は、1次元に配置され、変調された光線914を処理して出力光線918を生成するように構成される、回折光学素子を有する1次元光乗算ユニット916を含む。光プロセッサ906は、出力光線916を検出するための光センサを有する検出ユニット920を含む。検出ユニット920の出力は、ADCユニット930によってデジタル信号に変換される。
【０４４５】
たとえば、光乗算ユニット916は、回折光学素子(たとえば、格子または穴)を有する受動集積シリコンフォトニック導波管として実装され得る。光乗算ユニット916は、ほぼ電力消費なしで乗算演算を実行するように構成され得る。
【０４４６】
光プロセッサ906による使用のために入力データを符号化するための多くの方法がある。たとえば、デジタル入力ベクトルは、光乗算ユニット916を通じて伝播される光入力として符号化され得る。光乗算ユニット916は、受信された光入力に対する乗算を光領域において実行する。光乗算ユニット916によって実行される乗算は、たとえば、光伝播経路に沿って1次元に配置された回折光学素子の寸法、配置、および幾何学的形状、ならびにもしあれば不純物のドーピングを含む、光乗算ユニット916の内部構成によって決定される。
【０４４７】
光乗算ユニット916は、様々な方法で実装され得る。図10は、回折素子の1次元配置を使用する光乗算ユニット916の例の概略図を示す。光乗算ユニット916は、光入力1002を受信するための入力導波管と、入力導波管と光学的に連絡している1次元光干渉ユニット1004と、光出力1006を提供するための光干渉ユニット1004と光学的に連絡している出力導波管とを含み得る。光干渉ユニット1004は、複数の回折光学素子を含み、光出力への光入力の変換(たとえば、線形変換)を実行する。出力導波管は、光干渉ユニット1004によって出力される光信号を導く。
【０４４８】
いくつかの実装形態では、光干渉ユニット1004は、光伝播経路に沿って1次元に配置された回折素子を有する細長い基板を含む。たとえば、複数の穴が基板にあけられてもよく、またはエッチングされてもよい。穴は、光が穴(または穴を画定する構造)によって回折されるように、入力光の波長の寸法と同等の桁の寸法を有する。穴は同じまたは異なるサイズを有し得る。基板は、たとえば入力光に関して1%から99%の範囲の透過率を有する、入力光に対して透過的な、または半透過的な材料からできていてもよい。いくつかの実装形態では、基板に回折光学素子を形成するために、ホログラフィック法が使用されてもよい。
【０４４９】
光乗算ユニット1004を設計するとき、光線の伝播経路に沿った回折素子の寸法および配置を考慮する。回折光学素子の構成は、最適化処理を使用して決定され得る。たとえば、基板は一連のピクセルへと分割されてもよく、各ピクセルは、基板材料で満たされる(穴なし)か、または空気で満たされる(穴)かのいずれかであり得る。ピクセルの構成は、繰り返し修正されてもよく、ピクセルの各構成に対して、回折光学素子に光を通して出力を評価することによって、シミュレーションが実行されてもよい。ピクセルのすべての可能な構成のシミュレーションが実行された後で、所望の乗算処理に最もよく似ている結果をもたらす構成が、光乗算ユニット1004のための回折光学素子構成として選ばれる。
【０４５０】
別の例として、回折素子は最初、一連の穴として構成される。穴の配置および寸法は、それらの最初の構成からわずかに変えられてもよい。各穴のパラメータは繰り返し調整されてもよく、穴に対する最適な構成を見つけるためにシミュレーションが実行されてもよい。
【０４５１】
いくつかの実装形態では、機械学習処理が、1次元回折光学素子を設計するために使用される。ピクセルが入力光にどのように影響するかについての解析関数が決定され、ピクセルの最適な構成を決定するために勾配降下法が使用される。
【０４５２】
いくつかの実装形態では、光乗算ユニット916は、ユーザが変更可能なコンポーネントとして実装されてもよく、異なる光干渉ユニット1004を有する異なる光乗算ユニット916は、異なる用途のために設置され得る。たとえば、システム900はバクテリア検出システムとして構成されてもよく、光干渉ユニット1004は、バクテリアの何らかの系統を検出するためにDNA配列を分析するための乗算関数を実装するように構成されてもよい。たとえば、第1の光乗算ユニットは、バクテリアの第1のグループを検出するための第1の乗算関数を実装するように構成される1D受動回折光学素子を含む、第1の光干渉ユニットを有し得る。第2の光乗算ユニットは、バクテリアの第2のグループを検出するための第2の乗算関数を実装するように構成される1D受動回折光学素子を含む、第2の光干渉ユニットを有してもよい、などである。第1の光乗算ユニットおよび第2の光乗算ユニットは、異なるバクテリアを検出するための技法を開発するのに特化した異なる会社によって開発され得る。ユーザがバクテリアの第1のグループを検出するためにシステム900を使用することを望むとき、ユーザは第1の光乗算ユニットをシステムに挿入することができる。ユーザがバクテリアの第2のグループを検出するためにシステム900を使用することを望むとき、ユーザは、第1の光乗算ユニットを交換して、第2の光乗算ユニットをシステムに挿入することができる。1次元回折光学素子を使用することによって、レーザーユニット908、変調器912、検出ユニット920、およびADCユニット930を低コストで作ることができる。
【０４５３】
いくつかの実装形態では、光乗算ユニット916は、1D回折光学素子を有する基板を保護するハウジング(たとえば、カートリッジ)を含む。ハウジングは、入力導波管に結合された入力インターフェースと、出力導波管に結合された出力インターフェースとを支持する。入力インターフェースは、変調器912から出力を受信するように構成され、出力インターフェースは、光乗算ユニット916の出力を検出ユニット920に送信するように構成される。光乗算ユニット916は、平均的な消費者により扱われるのに適したモジュールとして設計されてもよく、ユーザがある光乗算ユニット916から別の光乗算ユニット916に簡単に切り替えることを可能にする。機械学習技術は時間とともに進化する。ユーザは、古い光乗算ユニット916を交換して新しい更新されたバージョンを挿入することによって、システム900を更新することができる。
【０４５４】
いくつかの実装形態では、システム900は、異なる会社により提供される光乗算ユニットとともに動作可能であるように構成される、光コンピューティングプラットフォームである。これは、異なる会社が、多様な用途に対して異なる1D受動光乗算機能を開発することを可能にする。1D受動光乗算機能は、光コンピューティングプラットフォームにインストールされ得る標準化されたパッケージとしてエンドユーザに販売され、システム900が様々なインテリジェント機能を実行することを可能にする。
【０４５５】
いくつかの実装形態では、システムは、複数の光乗算ユニット916を支持するためのホルダ機構を有してもよく、光乗算ユニット916を自動的に交換するための、機械的な取り扱い機構が設けられてもよい。システムは、どの光乗算ユニット916が現在の用途に必要であるかを決定し、機械的な取り扱い機構を使用して、ホルダ機構から適切な光乗算ユニット916を自動的に取り出し、それを光プロセッサ906に挿入する。
【０４５６】
いくつかの実装形態では、人工ニューラルネットワーク計算システム900は、検出ユニット920とADCユニット930との間にアナログ非線形ユニットを追加することによって修正され得る。アナログ非線形性ユニットは、検出ユニット920から出力電圧を受け取り、非線形伝達関数を適用し、変換された出力電圧をADCユニット930に出力するように構成される。コントローラ110は、ADCユニット930から、変換された出力電圧に対応する変換されたデジタル化された出力電圧を取得し得る。ADCユニット930から取得されたデジタル化された出力電圧はすでに非線形変換(「活性化」)されているので、コントローラ110による非線形変換ステップを省略することができ、コントローラ110による計算負荷が減る。ADCユニット930から直接取得された第1の変換された電圧は次いで、メモリユニット120に第1の変換されたデジタル出力ベクトルとして記憶され得る。
【０４５７】
受動回折光学素子を有する受動チップには、いくつかの利点がある。まず、通常は最も体積の大きい部品である能動コンポーネントが除去されているので、どのような所与のサイズのチップも、より大きいニューラルネットワークを格納することができる。一般に有用なニューラルネットワークは、能動チップ上で実装するのが困難である数百万個の重みを含むことがあり、チップおよびチップの再プログラミングを通じたデータの複数回の実行を必要とし得る。それと比較して、単一の受動チップは、ニューラルネットワーク全体をサポートすることが可能であり得る。第2に、受動チップの非常に低い電力消費が「エッジ」用途に重要であり、それは、そのような用途が小さいフットプリントおよび低い電力消費を必要とし得るからである。第3に、受動チップは、能動コンポーネントを含まないので、さらにより低いコストで製造され得る。
【０４５８】
受動回折光学素子を有する光行列乗算ユニットはまた、波長分割多重化された人工ニューラルネットワーク計算システムにおいて使用され得る。たとえば、図1Fのシステム104のOMMユニット150は、受動回折光学素子を使用するOMMユニットで置き換えられ得る。この例では、第2のDACサブユニット134は削除され得る。
【０４５９】
いくつかの実装形態では、光プロセッサ(たとえば、504、702)は、行列乗算以外の行列処理を実行することができる。光行列乗算ユニット502および708は、他のタイプの行列処理を実行する光行列処理ユニットによって置き換えられ得る。
【０４６０】
図25は、2D OMMユニット502、3D OMMユニット708、または1D OMユニット916などの、受動回折素子を有する1つまたは複数の光行列乗算ユニットまたは光乗算ユニットを含むANN計算システム500、700、または900を使用してANN計算を実行するための方法2500の例のフローチャートを示す。処理2500のステップは、コントローラ110または902によって少なくとも一部実行され得る。いくつかの実装形態では、方法2500の様々なステップは、並列に、組合せで、ループで、または任意の順序で行われ得る。
【０４６１】
2510において、入力データセットを備える人工ニューラルネットワーク(ANN)計算要求が受信される。入力データセットは第1のデジタル入力ベクトルを含む。第1のデジタル入力ベクトルは入力データセットのサブセットである。たとえば、それは画像の部分領域であり得る。ANN計算要求は、コンピュータ102などの様々なエンティティによって生成され得る。コンピュータは、パーソナルコンピュータ、サーバコンピュータ、車両コンピュータ、およびフライトコンピュータなどの、様々なタイプのコンピューティングデバイスのうちの1つまたは複数を含み得る。ANN計算要求は一般に、実行されるべきANN計算をANN計算システム500、700、または900に通知する、または知らせる、電子信号を指す。いくつかの実装形態では、ANN計算要求は、2つ以上の信号に分割され得る。たとえば、第1の信号は、ANN計算システム500、700、または900が入力データセットを受信する準備ができているかどうかを確認するために、ANN計算システム500、700、または900に問い合わせ得る。システム500、700、または900による肯定的な応答に応じて、コンピュータは入力データセットを含む第2の信号を送信し得る。
【０４６２】
2520において、入力データセットが記憶される。コントローラ110は、メモリユニット120に入力データセットを記憶し得る。メモリユニット120への入力データセットの記憶は、ANN計算システム500、700、または900の動作においてフレキシビリティを可能にすることがあり、これは、たとえばシステムの性能全体を高めることができる。たとえば、入力データセットは、メモリユニット120から入力データセットの所望の部分を取り出すことによって、ある設定されたサイズおよびフォーマットのデジタル入力ベクトルに分割され得る。入力データセットの異なる部分は、様々なタイプのANN計算が実行されることを可能にするために、様々な順序で処理され、またはシャッフルされ得る。たとえば、シャッフルすることで、入力行列サイズおよび出力行列サイズが異なる場合に、ブロック行列乗算技法による行列乗算が可能になり得る。別の例として、メモリユニット120への入力データセットの記憶は、ANN計算システム500、700、または900による複数のANN計算要求の待ち行列作成を可能にすることがあり、これは、システム500、700、または900が不活動の期間なしで最高の速度での動作を維持することを可能にし得る。
【０４６３】
2530において、第1の複数の変調器制御信号は、第1のデジタル入力ベクトルに基づいて生成される。コントローラ110は、第1の複数の変調器制御信号を生成するためのDACユニット506、712、または904に、DAC制御信号を送信し得る。DACユニット506、712、または904は、第1のDAC制御信号に基づいて第1の複数の変調器制御信号を生成し、変調器の列144、706、または912は、第1のデジタル入力ベクトルを表す光入力ベクトルを生成する。
【０４６４】
第1のDAC制御信号は、DACユニット506、712、または904によって第1の複数の変調器制御信号に変換されることになる複数のデジタル値を含み得る。複数のデジタル値は一般に、第1のデジタル入力ベクトルに対応しており、様々な数学的関係またはルックアップテーブルを通じて関連付けられ得る。たとえば、複数のデジタル値は、第1のデジタル入力ベクトルの要素の値に線形に比例し得る。別の例として、複数のデジタル値は、デジタル入力ベクトルと、変調器の列144、706、または912によって生成される光入力ベクトルとの線形関係を維持するように構成されるルックアップテーブルを通じて、第1のデジタル入力ベクトルの要素と関連付けられ得る。
【０４６５】
いくつかの実装形態では、2D OMMユニット502、3D OMMユニット708、または1D OMユニット916は、光入力ベクトルと、受動回折素子を使用して実装される複数のニューラルネットワーク重みとに基づいて、光行列処理または光乗算を実行するように構成される。行列Mを表す複数のニューラルネットワーク重みは、特異値分解(SVD)法を通じてM=USV*へと分解されてもよく、UはM×Mのユニタリ行列であり、Sは対角線上に非負の実数を伴うM×Nの対角行列であり、V*はN×Nのユニタリ行列Vの複素共役である。そのような場合、受動回折素子は、OMMユニット502または708が全体として行列Mを実装するように、行列V、行列S、および行列Uを実装するように構成され得る。
【０４６６】
2540において、光行列乗算ユニットまたは光乗算の光出力ベクトルに対応する第1の複数のデジタル化された光出力が取得される。変調器の列144、706、または912によって生成される光入力ベクトルは、2D OMMユニット502、3D OMMユニット708、または1D OMユニット916によって処理され、光出力ベクトルに変換される。光出力ベクトルは、検出ユニット146、710、または920によって検出され、ADCユニット160または930によってデジタル化された値に変換され得る電気信号に変換される。コントローラ110または902は、たとえば、検出ユニット146、710、または920によって出力された電圧のデジタル化された光出力への変換を開始するために、変換要求をADCユニット160または930に送信し得る。変換が完了すると、ADCユニット160または930は、変換結果をコントローラ110または902に送信し得る。代替的に、コントローラ110または902は、ADCユニット160または930から変換結果を取り出し得る。コントローラ110または902は、デジタル化された光出力から、入力デジタルベクトルの行列乗算またはベクトル乗算の結果に対応するデジタル出力ベクトルを形成し得る。たとえば、デジタル化された光出力は、ベクトルフォーマットを有するように編成され、または連結され得る。
【０４６７】
いくつかの実装形態では、ADCユニット160または930は、コントローラ110または902によってDACユニット506、712、または904に出されるDAC制御信号に基づいてADC変換を実行するように、設定または制御され得る。たとえば、ADC変換は、DACユニット506、712、または904による変調制御信号の生成からあるあらかじめ設定された時間後に開始するように設定され得る。ADC変換のそのような制御は、コントローラ110または902の動作を簡単にし、必要な制御動作の数を減らし得る。
【０４６８】
2550において、第1の変換されたデジタル出力ベクトルを生成するために、第1のデジタル出力ベクトルに対して非線形変換が実行される。ANNのノード、または人工ニューロンは、前の層のノードから受信された信号の加重和をまず実行し、次いで加重和の非線形変換(「活性化」)を実行して出力を生成することによって動作する。様々なタイプのANNが、様々なタイプの区別可能な非線形変換を実装し得る。非線形変換関数の例には、正規化線形ユニット(RELU)関数、シグモイド関数、双曲線正接関数、X^2関数、および|X|関数がある。そのような非線形変換は、第1の変換されたデジタル出力ベクトルを生成するために、コントローラ110または902によって第1のデジタル出力に対して実行される。いくつかの実装形態では、非線形変換は、コントローラ110または902内の特別なデジタル集積回路によって実行され得る。たとえば、コントローラ110または902は、1つまたは複数のタイプの非線形変換の計算を加速するように特に適合された、1つまたは複数のモジュールまたは回路ブロックを含み得る。
【０４６９】
2560において、第1の変換されたデジタル出力ベクトルが記憶される。コントローラ110または902は、メモリユニット120に第1の変換されたデジタル出力ベクトルを記憶し得る。入力データセットが複数のデジタル入力ベクトルに分割される場合、第1の変換されたデジタル出力ベクトルは、第1のデジタル入力ベクトルなどの、入力データセットの一部分のANN計算の結果に対応する。したがって、第1の変換されたデジタル出力ベクトルの記憶は、ANN計算システム500、700、または900が、単一のANN出力へと後で集約されることになる入力データセットの他のデジタル入力ベクトルに対する追加の計算を実行して記憶することを可能にする。
【０４７０】
2570において、第1の変換されたデジタル出力ベクトルに基づいて生成された人工ニューラルネットワーク出力が出力される。コントローラ110または902はANN出力を生成し、ANN出力は、第1の複数のニューラルネットワーク重みによって定義されるANNを通じて入力データセットを処理した結果である。入力データセットが複数のデジタル入力ベクトルに分割される場合、生成されるANN出力は、第1の変換されたデジタル出力を含む集約された出力であり、さらに、入力データセットの他の部分に対応する追加の変換されたデジタル出力を含み得る。ANN出力が生成されると、生成された出力は、ANN計算要求を出したコンピュータ102などのコンピュータに送信される。
【０４７１】
2D OMMユニット502、3D OMMユニット708、または1D OMユニット916は、ニューラルネットワークの1つの隠れ層の重み係数を表すことができる。ニューラルネットワークがいくつかの隠れ層を有する場合、追加の2D OMMユニット502、3D OMMユニット708、または1D OMユニット916が直列に結合され得る。図26は、2つの隠れ層を有するニューラルネットワークを実装するためのANN計算システム2600の例を示す。第1の2D光行列乗算ユニット2604は、第1の隠れ層の重み係数を表し、第2の2D光行列乗算ユニット2606は、第2の隠れ層の重み係数を表す。ANN計算システム2600は、コントローラ110、メモリユニット120、DACユニット506、および光電子プロセッサ2602を含む。メモリユニット120およびDACユニット506は、図5のシステム500の対応するコンポーネントと同様である。光電子プロセッサ2602は、光コンポーネントおよび電子コンポーネントを使用して行列計算を実行するように構成される。
【０４７２】
光電子プロセッサ2602は、第1のレーザーユニット142、第1の変調器の列144a、第1の2D光行列乗算ユニット2604、第1の検出ユニット146a、第1のアナログ非線形ユニット310a、アナログメモリユニット320、第2のレーザーユニット142b、第2の変調器の列144b、第2の2D光行列乗算ユニット2606、第2の検出ユニット146b、第2のアナログ非線形ユニット310b、およびADCユニット160を含む。第1のレーザーユニット142、第1の変調器の列144a、第1の検出ユニット146a、第1のアナログ非線形ユニット310a、およびアナログメモリユニット320の動作は、図3Bに示される対応するコンポーネントと同様である。第1の2D OMMユニット2604は図5の2D OMM502と同様である。アナログメモリユニット320の出力は第2の変調器の列144bを駆動し、これは、第2のレーザーユニット142bからのレーザー光を変調して光ベクトルを生成する。第2の変調器の列144bからの光ベクトルは、第2の2D OMMユニット2606によって処理され、これは、行列乗算を実行し、第2の検出ユニット246bによって検出される光出力ベクトルを生成する。第2の検出ユニット246bは、2D OMMユニット2606から光出力ベクトルの光信号に対応する出力電圧を生成するように構成される。ADCユニット160は、出力電圧をデジタル化された出力電圧に変換するように構成される。コントローラ110は、ADCユニット160から、第2の2D OMMユニット2606の光出力ベクトルに対応するデジタル化された出力を取得し得る。コントローラ110は、デジタル化された出力から、入力デジタルベクトルの第1の行列乗算の結果の非線形変換の第2の行列乗算の結果に対応する、デジタル出力ベクトルを形成し得る。第2のレーザーユニット142bは、第1のレーザーユニット142aからの光の一部を第2の変調器の列144bに向け直すために光分割器を使用することによって、第1のレーザーユニット142aと組み合わされ得る。
【０４７３】
上で説明された原理は、3つ以上の隠れ層を有するニューラルネットワークを実装することに適用されてもよく、このとき、各隠れ層の重み係数は、対応する2D OMMユニットによって表される。
【０４７４】
図27は、2つの隠れ層を有するニューラルネットワークを実装するためのANN計算システム2700の例を示す。第1の3D光行列乗算ユニット2704は第1の隠れ層の重み係数を表し、第2の3D光行列乗算ユニット2706は第2の隠れ層の重み係数を表す。ANN計算システム2700は、コントローラ110、メモリユニット120、DACユニット712、および光電子プロセッサ2702を含む。メモリユニット120およびDACユニット712は、図7のシステム700の対応するコンポーネントと同様である。光電子プロセッサ2702は、光コンポーネントおよび電子コンポーネントを使用して行列計算を実行するように構成される。
【０４７５】
光電子プロセッサ2702は、第1のレーザーユニット704a、第1の変調器の列706a、第1の3D光行列乗算ユニット2704、第1の検出ユニット710a、第1のアナログ非線形ユニット310a、アナログメモリユニット320、第2のレーザーユニット704b、第2の変調器の列706b、第2の3D光行列乗算ユニット2706、第2の検出ユニット710b、第2のアナログ非線形ユニット310b、およびADCユニット160を含む。第1のレーザーユニット704a、第1の変調器の列706a、第1の検出ユニット710a、第1のアナログ非線形ユニット310a、およびアナログメモリユニット320の動作は、図3Bに示される対応するコンポーネントと同様である。第1の3D OMMユニット2704は図7の3D OMM708と同様である。アナログメモリユニット320の出力は第2の変調器の列706bを駆動し、これは、第2のレーザーユニット704bからのレーザー光を変調して光ベクトルを生成する。第2の変調器の列706bからの光ベクトルは第2の3D OMMユニット2706によって処理され、これは、行列乗算を実行し、第2の検出ユニット710bによって検出される光出力ベクトルを生成する。第2の検出ユニット710bは、3D OMMユニット2706からの光出力ベクトルの光信号に対応する出力電圧を生成するように構成される。ADCユニット160は、出力電圧をデジタル化された出力電圧に変換するように構成される。コントローラ110は、ADCユニット160から、第2の3D OMMユニット2706の光出力ベクトルに対応するデジタル化された出力を取得し得る。コントローラ110は、デジタル化された出力から、入力デジタルベクトルの第1の行列乗算の結果の非線形変換の第2の行列乗算の結果に対応する、デジタル出力ベクトルを形成し得る。第2のレーザーユニット704bは、第1のレーザーユニット704aからの光の一部を第2の変調器の列706bに向け直すために光分割器を使用することによって、第1のレーザーユニット704aと組み合わされ得る。
【０４７６】
上で説明された原理は、3つ以上の隠れ層を有するニューラルネットワークを実装することに適用されてもよく、この場合、各隠れ層の重み係数は対応する3D OMMユニットによって表される。
【０４７７】
受動回折光学素子を有する2D OMMユニット502および3D OMMユニット708は、ニューラルネットワークを通る第kのパスの間のネットワークの出力がニューラルネットワークの入力に再循環され、第k+1のパスの間の入力として使用されて、それにより、ニューラルネットワークの重み係数が複数のパスの間同じままであるような、再帰型ニューラルネットワーク(RNN)において使用するのに適している。
【０４７８】
図28は、ニューラルネットワーク計算システム2800の例を示し、これは、再帰型ニューラルネットワークを実装するために使用されてもよい。システム2800は、OMMユニット150が図6の2D OMMユニット502と同様であってもよい2D OMMユニット2804により置き換えられることを除き、図3Bの光プロセッサ140と同様の方式で動作する光プロセッサ2802を含む。2D OMMユニット2804のニューラルネットワーク重みは固定されているので、システム2800は、図3Bのシステム302において使用される第2のDACサブユニット134を必要としない。
【０４７９】
図29は、ニューラルネットワーク計算システム2900の例を示し、これは、再帰型ニューラルネットワークを実装するために使用され得る。システム2900は、レーザーユニット142、変調器の列144、OMMユニット150、および決定ユニット146が、図7のレーザーユニット704、変調器の列706、3D OMMユニット2904、および検出ユニット710によってそれぞれ置き換えられることを除き、図3Bの光プロセッサ140と同様の方式で動作する光プロセッサ2902を含む。3D OMMユニット2904のためのニューラルネットワーク重みは固定されているので、システム2900は、図3Bのシステム302において使用される第2のDACサブユニット134を必要としない。
【０４８０】
図30は、1ビットの内部分解能を伴う人工ニューラルネットワーク計算システム3000の例の概略図を示す。ANN計算システム3000は、OMMユニット150が2D OMMユニット3004(図5の2D OMMユニット502と同様である)によって置き換えられ、第2のドライバサブユニット434が省略されることを除き、図4AのANN計算システム400と同様である。ANN計算システム3000は、ANN計算システム400と同様の方式で動作し、このとき、入力ベクトルはいくつかの1ビットベクトルに分解され、あるANN計算が次いで、1ビットベクトルの一連の行列乗算に続いて個別の行列乗算結果の加算を実行することによって実行され得る。
【０４８１】
図31は、1ビットの内部分解能を伴う人工ニューラルネットワーク計算システム3100の例の概略図を示す。ANN計算システム3100は、OMMユニット150が3D OMMユニット3104(図7の3D OMMユニット708と同様である)によって置き換えられ、第2のドライバサブユニット434が省略されることを除き、図4AのANN計算システム400と同様である。図31の例では、図4Aのレーザーユニット142、変調器の列144、および検出ユニット146は、図7のレーザーユニット704、変調器の列706、および検出ユニット710によってそれぞれ置き換えられる。ANN計算システム3100は、ANN計算システム400と同様の方式で動作し、入力ベクトルはいくつかの1ビットベクトルに分解され、あるANN計算が次いで、1ビットベクトルの一連の行列乗算に続いて個々の行列乗算結果の加算を実行することによって実行され得る。
【０４８２】
以下は、光回折ニューラルネットワークの原理を説明する。光回折ニューラルネットワークは、回折光学媒体または伝達光学媒体の少数の層として実装され得る。ホイヘンス=フレネルの原理に基づいて、回折媒体の中の各点が、二次的な光源と見なされ得る。各光源に対して、遠視野回折が以下の式において記述され得る。
【０４８３】
【数７】
2021527287.tif 000009
【０４８４】
ここで、インデックスlおよびiは、ニューラルネットワークの第lの層の中のi番目のニューロンを示し、λは光の波長であり、rは
【０４８５】
【数８】
2021527287.tif 000010
【０４８６】
であるような距離である。各々の二次的な光源からの出力は、入力と光源からの位相および強度の変調とを乗じたものとして書かれ得る。
【０４８７】
【数９】
2021527287.tif 000011
【０４８８】
ここで、tは伝達変調であり、これは振幅変調と位相変調の両方を含む複素項であり、
【数１０】
2021527287.tif 000012
はすべての前の光源からの入力の加算である。全体として、出力は、遠視野回折wの時間および振幅|A|と追加の位相の項へと統合され得る。したがって、各層の中の各点は、前の層からの複数のニューロンから入力を取り込んで、次の層に出力する前に追加の位相変調および強度変調を追加する、ニューロンであると見なされ得る。
【０４８９】
以下は、一般的なユニタリ行列乗算を実施することができる、小型のフォトニック行列乗算器ユニットの小型設計を説明する。図11を参照すると、フォトニック行列乗算器ユニット1100は、変調器1102、複数の相互接続された干渉計1104、および減衰器1106を含む。相互接続された干渉計1104は、指向性カプラ1108a、1108b、1108c、1108d、および1108e(まとめて1108)の層(またはグループまたはセット)および位相シフタ1110a、1110b、1110c、および1110d(まとめて1110)の層(またはグループまたはセット)を含む。指向性カプラの各層(またはグループまたはセット)は、1つまたは複数の指向性カプラを含み得る。位相シフタの各層は、1つまたは複数の位相シフタを含み得る。この例では、相互接続された干渉計1104は、指向性カプラ1108の5つの層および位相シフタの4つの層を含む。他の例では、フォトニック行列乗算器ユニット1100は、指向性カプラおよび位相シフタの異なる層を有し得る。フォトニック行列乗算器ユニット1100は、指向性カプラ1108の層の数が、相互接続されたマッハツェンダー干渉計を使用する従来の行列乗算器ユニットと比較して減るような方法で配置される、指向性カプラ1108を有する。
【０４９０】
ここで、「指向性カプラの層」および「位相シフタの層」という語句の中の「層」という用語は、入力ポートおよび出力ポートに対する相対的なフォトニック行列乗算器ユニット110における指向性カプラまたは位相シフタの配置に基づく、指向性カプラまたは位相シフタのグループまたはセットを指す。図11の例では、入力光信号は、指向性カプラ1108aの第1の層によって処理され、次いで位相シフタ1110aの第2の層によって処理され、次いで指向性カプラ1108bの第3の層によって処理され、次いで位相シフタ1110bの第4の層によって処理される、などである。
【０４９１】
たとえば、相互接続されたマッハツェンダー干渉計を使用する従来の行列乗算器ユニットは、指向性カプラの2N個の層を必要とし得るが、フォトニック行列乗算器ユニット1100は、指向性カプラのN+2個の層しか必要としない。Nは、入力信号の数を指し、または入力ベクトルの桁の数を指す。フォトニック行列乗算器ユニット1100において使用されるメッシュアーキテクチャは、一般的な行列計算を実行できる相互接続されたフォトニック干渉計に対して最も小型の幾何学的形状を有することが可能である。
【０４９２】
図12Aは、フォトニック行列乗算器ユニット1100の相互接続された干渉計1104と、様々な数の入力信号に対する従来の設計を比較する図を示す。4つの入力信号があるとき、従来の設計に従った相互接続されたマッハツェンダー干渉計1200は、指向性カプラの8つの層を必要とし、一方で、新しい小型設計に従った相互接続された干渉計1202は、指向性カプラの6つの層しか必要としない。3つの入力信号があるとき、従来の設計に従った相互接続されたマッハツェンダー干渉計1204は、指向性カプラの6つの層を必要とし、一方で、新しい小型設計に従った相互接続された干渉計1206は、指向性カプラの5つの層しか必要としない。8つの入力信号があるとき、従来の設計に従った相互接続されたマッハツェンダー干渉計1208は、指向性カプラの16個の層を必要とし、新しい小型設計に従った相互接続された干渉計1210は、指向性カプラの10個の層しか必要としない。
【０４９３】
一般に、n個の入力信号があるとき、従来の設計に従った相互接続されたマッハツェンダー干渉計は指向性カプラの2n個の層を必要とするが、新しい小型設計に従った相互接続された干渉計は、指向性カプラのn+2個の層しか必要としない。
【０４９４】
従来の設計では、n個の入力信号に対して、マッハツェンダー干渉計のn個の層があり、各マッハツェンダー干渉計は、指向性カプラと、それに続く一対の位相シフタと、それに続く別の指向性カプラとを含む。したがって、マッハツェンダー干渉計のn個の層は、指向性カプラの2n個の層を有する。結果として、従来の設計では、n個の入力信号に対して、位相シフタのn個の層および指向性カプラの2n個の層が必要である。
【０４９５】
比較によって、新しい小型設計では、指向性カプラの層の後に位相シフタの第1の層があり、その後に指向性カプラの層があり、その後に位相シフタの第2の層があり、その後に指向性カプラの層があり、その後に位相シフタの第3の層がある、などである。位相シフタの最後の層の後に、指向性カプラの2つの層がある。結果として、n個の入力信号に対して、位相シフタのn個の層および指向性カプラのn+2個の層がある。
【０４９６】
指向性カプラは大量の空間を占有するので、指向性カプラの数を2nからn+2に減らすと、従来の設計と比較して、フォトニック行列乗算器ユニット1100のサイズの大きな低減が生じる。
【０４９７】
図12Bは、入力信号の数が5である新しい設計に従った小型の相互接続された干渉計1212を示す図である。
【０４９８】
以下は、勾配降下を使用する小型設計の分解を説明する。上で説明されたフォトニック行列乗算器の小型設計は、あらゆるユニタリ行列Uを取り込み、分析的な分解アルゴリズムを使用して、位相シフタとともに実装するために、および従って、行列Uを実装するために、どの位相が必要とされるかを決定することができる。たとえば、勾配降下を使用することによって、所与の行列Uから位相を取り出すことができる。勾配降下処理は次の通りである。小型設計の位相シフタに対して、固定された行列Uから開始し、ランダムな重みθを初期化する。小型設計を使用して行列U'を構築し、すなわち、U'=CompactDesign(θ)である。次いで、損失関数L=|U-U'|^2(これは行列のフロベニウスノルムである)を見て、勾配降下を用いてその関数を最小にする(すなわち、勾配更新を使用することによってθを更新する)。
【０４９９】
図13を参照すると、ホモダイン検出を使用する(たとえば、出力の実部を取り込む)ので、直交行列をシミュレートするために、検出の前に減衰器1302の余剰の層が設けられる。これは、θとともに、減衰器のための対角重みxを知る必要もあることを意味する。このようにして、Uに対して必要とされる位相および対角重みを知ることができ、分解を数値的に得ることができる。
【０５００】
以下は、忠実なデータを効率的に生成するように構成される生成器を含む、光生成対立ネットワーク(OGAN)を生成する。図14は、生成器1404が、現実の画像と似ている合成画像1410を生み出すように構成または訓練されるニューラルネットワークを生成器1404が備え、入力画像が現実であるか合成であるかを決定するように訓練されるニューラルネットワークを区別器1402が備えるような、光生成対立ネットワーク1400の例を示す。区別器1402が現実の画像の特徴を知るように、区別器1402を訓練するために訓練画像1406の初期セットが提供される。同様に、生成器1404は、生成器1404が現実の画像の特徴に似ている特徴を有する合成画像1410を生成できるように、訓練画像(図示せず)のセットを使用して訓練される。
【０５０１】
いくつかの実装形態では、区別器1402の訓練は、区別器1402のニューラル層の重みを計算するために、たとえばトランジスタベースのデータプロセッサ(中央処理装置または汎用グラフィック処理装置など)を使用して、電子的に実行される。同様に、生成器1404の訓練も、生成器1404のニューラル層の重みを計算するために電子的に実行される。
【０５０２】
生成器1404によって生成される合成画像1410が、区別器1402をさらに訓練するために区別器1402に提供され得るので、区別器1402は現実の画像をより正確に検出することができる。区別器1402による検出の結果も生成器1404をさらに訓練するために使用され得るので、生成器1404は、より現実的な、すなわち現実の画像により似ている、合成画像1410を生成することができる。
【０５０３】
光生成対立ネットワーク1400には多くの用途がある。たとえば、いくつかの実装形態では、区別器1402を訓練する際に使用する多数の現実の画像を得ることが難しく、または高価であることがある。たとえば癌細胞を検出するように区別器1402を訓練するために、多数の癌細胞の画像が訓練段階の間に必要とされる。癌患者から癌細胞の多数の画像を得ることは、難しく高価であり得るので、十分な正確さで区別器1402を訓練するための十分なサンプルがないことがある。区別器1402を改善するために、生成器1404は、癌細胞の写実的な画像を生成するように訓練され、癌細胞の合成された写実的な画像1410が、区別器1402をさらに訓練するために使用され、それにより、区別器1402が癌細胞を検出する能力を高める。
【０５０４】
いくつかの実装形態では、生成器1404は、ニューラルネットワークの重みを修正するための能動位相シフタなどの、能動素子を含む光チップであり得る。生成器1404が訓練された後、重みが固定されるように能動素子は固定される。ランダムノイズ1408が生成器1404に供給され、生成器1404は次いで、ランダムノイズ1408に基づいて合成画像1410を生成し、このとき、合成画像1410は癌細胞の現実の画像に似ている。
【０５０５】
いくつかの実装形態では、生成器1404は、図5、図7、および/または図9に示されている光行列乗算ユニットを使用して実装される。ニューラルネットワークの重みが決定された後で、光行列乗算ユニットは、ニューラルネットワークを実装するための決定された重みに基づいて構成される。生成器1404への入力はランダムノイズ1408であるので、変調器の列はなくてもよく、生成器1404が小さいフットプリントを有することが可能になる。
【０５０６】
生成器1404が受動光チップを使用して実装されるか、または能動素子を有する光チップを使用して実装されるかにかかわらず、訓練された生成器1404は、区別器1402をさらに訓練して改善するために区別器1402へと次いで提供され得る、写実的な画像(たとえば、癌細胞の現実の画像と似ている)を生成することができる。生成器1404は、高いスループットを有し、汎用グラフィック処理装置などの従来の電子データプロセッサを使用するよりも、場合によっては数桁速いレートで合成画像1410を生成することができる。生成器1404は消費電力が少なく、従来の電子データプロセッサを使用する場合と比較して場合によっては消費電力が数桁小さい。
【０５０７】
生成器1404は、多様な用途を有する。たとえば、生成器1404によって生み出された合成画像には、医療分野において多くの用途があり得る。生成器1404は、ある疾病と関連付けられる組織の画像を合成するように構成されてもよく、合成画像は、疾病と関連付けられる組織を認識するように区別器1402を訓練するために使用されてもよい。たとえば、生成器1404によって生成された合成画像には、自律運転またはナビゲーションの分野において多くの用途があり得る。たとえば、生成器1404は、様々な交通状況の合成画像を生成するように構成されてもよく、合成画像は、交通状況を認識するように区別器1402を訓練するために使用されてもよい。たとえば、生成器1404によって生成される合成画像には、製造品質管理の分野において多くの用途があり得る。たとえば、生成器1404は、欠陥を有する製品の合成画像を生成するように構成されてもよく、合成画像は、欠陥のある製品を検出するように区別器1402を訓練するために使用されてもよい。
【０５０８】
いくつかの実装形態では、光生成対立ネットワーク1400は、コヒーレント光源と、ランダムな振幅および位相の入力のためのフィルタとを含み、振幅と位相の両方が既知の分布に従う。光生成対立ネットワーク1400は、情報の高速な処理のための干渉計のメッシュを含む。光生成対立ネットワーク1400は、重みをシャッフルする必要のない、すなわち干渉計の再プログラミングのないアーキテクチャを有するように設計され得る。光生成対立ネットワーク1400はまた、1GHzよりも高い動作周波数を有する高速位相シフタを含むように設計され得る。光生成対立ネットワーク1400は、非線形性の高速な実行を有し得る。たとえば、それは、(i)アナログ電子回路領域における非線形性、(ii)単純な光学的な非線形性、または(iii)デジタル電子回路領域における非線形性を有し得る。
【０５０９】
以下は、相互接続されたマッハツェンダー干渉計を有し論理ゲートを実装するように構成される、新規のフォトニック回路を説明する。図15を参照すると、マッハツェンダー干渉計1500は、マッハツェンダー干渉計1500が以下の回転を実施するような方法で構成される位相シフタ1502を含む。
【０５１０】
【数１１】
2021527287.tif 000013
【０５１１】
図16を参照すると、フォトニック回路1600は、XORゲートおよびORゲートを実装することができる。フォトニック回路1600は、マッハツェンダー干渉計1500と、検出器1602と、アナログ電子閾値を有する比較器1604とを含む。入力信号x1およびx2がフォトニック回路1600に提供されるとき、マッハツェンダー干渉計1500は演算
【０５１２】
【数１２】
2021527287.tif 000014
【０５１３】
を実行する。検出器1602は、検出された信号の絶対値を表す出力を生成し、検出器1602の出力は
【０５１４】
【数１３】
2021527287.tif 000015
【０５１５】
である。比較器1604のアナログ電子閾値は、係数
【数１４】
2021527287.tif 000016
をなくすために1/2においてバイアスされるので、比較器1604の出力は
【０５１６】
【数１５】
2021527287.tif 000017
【０５１７】
である。
【０５１８】
フォトニック回路1600は、入力信号x1、x2の様々な組合せについて以下の結果を生み出す。
【０５１９】
【数１６】
2021527287.tif 000018
【０５２０】
上記では、数の第1のペアは入力信号であり、数の第2のペアは検出器1602の出力であり、数の第3のペアは比較器1604の出力である。入力(x1,x2)=(0,0)であるとき、マッハツェンダー干渉計1500は、結果(0,0)を生み出す乗算を実行し、検出器1602は(0,0)を出力し、比較器1604は結果(0,0)を生み出す。入力(x1,x2)=(0,1)であるとき、マッハツェンダー干渉計1500は、結果
【数１７】
2021527287.tif 000019
を生み出す乗算を実行し、検出器1602は
【数１８】
2021527287.tif 000020
を出力し、比較器1604は結果(1,1)を生み出す。入力(x1,x2)=(1,0)であるとき、マッハツェンダー干渉計1500は、結果
【数１９】
2021527287.tif 000021
を生み出す乗算を実行し、検出器1602は
【数２０】
2021527287.tif 000022
を出力し、比較器1604は結果(1,1)を生み出す。入力(x1,x2)=(1,1)であるとき、マッハツェンダー干渉計1500は、結果
【数２１】
2021527287.tif 000023
を生み出す乗算を実行し、検出器1602は
【数２２】
2021527287.tif 000024
を出力し、比較器1604は結果(0,1)を生み出す。上の結果は、検出器1602が、第1の出力1606aにおいて
【数２３】
2021527287.tif 000025
を生成し、第2の出力1606bにおいて
【数２４】
2021527287.tif 000026
を生成することを示す。比較器1604は、係数
【数２５】
2021527287.tif 000027
を除去して、第1の出力1608aにおいてXOR(x1,x2)を、第2の出力1608bにおいてOR(x1,x2)を生成する。
【０５２１】
図17Aを参照すると、フォトニック回路1700は、ANDゲートおよびORゲートを実装することができる。フォトニック回路1700は、マッハツェンダー干渉計1500および検出器1602を含み、検出器1602の出力は一度再利用される。入力信号x1およびx2がフォトニック回路1700に提供されるとき、マッハツェンダー干渉計1500および検出器1602は、出力
【０５２２】
【数２６】
2021527287.tif 000028
【０５２３】
を生成する。検出器1602の出力は、フォトニック回路1600の入力に戻って再利用され、信号がマッハツェンダー干渉計1500および検出器1602を通る第2のパスを通った後で、検出器1602は最終的な出力
【０５２４】
【数２７】
2021527287.tif 000029
【０５２５】
を生み出す。
【０５２６】
フォトニック回路1700は、入力信号x1、x2の様々な組合せに対して以下の結果を生み出す。
【０５２７】
【数２８】
2021527287.tif 000030
【０５２８】
上では、数の第1のペアは入力信号であり、数の第2のペアは第1のパスの後の検出器1602の出力であり、数の第3のペアは第2のパスの後の検出器1602の出力である。入力(x1,x2)=(0,0)であるとき、マッハツェンダー干渉計1500を通る第1のパスの後で、検出器1602は(0,0)を出力し、マッハツェンダー干渉計1500を通る第2のパスの後で、検出器1602は(0,0)を出力する。入力(x1,x2)=(0,1)であるとき、マッハツェンダー干渉計1500を通る第1のパスの後で、検出器1602は
【数２９】
2021527287.tif 000031
を出力し、マッハツェンダー干渉計1500を通る第2のパスの後で、検出器1602は(0,1)を出力する。入力(x1,x2)=(1,0)であるとき、マッハツェンダー干渉計1500を通る第1のパスの後で、検出器1602は
【数３０】
2021527287.tif 000032
を出力し、マッハツェンダー干渉計1500を通る第2のパスの後で、検出器1602は(0,1)を出力する。入力(x1,x2)=(1,1)であるとき、マッハツェンダー干渉計1500を通る第1のパスの後で、検出器1602は
【数３１】
2021527287.tif 000033
を出力し、マッハツェンダー干渉計1500を通る第2のパスの後で、検出器1602は(1,1)を出力する。上の結果は、2つのパスの後で、検出器1602が、第1の出力1704においてAND(x1,x2)を表す信号を、第2の出力1706においてOR(x1,x2)を表す信号を生成することを示す。
【０５２９】
図17Bは、第1のマッハツェンダー干渉計1712、第1の検出器1714、第2のマッハツェンダー干渉計1716、および第2の検出器1718を含むフォトニック回路1710の別の実装形態を示す。第2の検出器1718は、AND(x1,x2)を表す第1の出力1720と、OR(x1,x2)を表す第2の出力1722とを生み出す。
【０５３０】
上記は、ANDゲート、ORゲート、またはXORゲートなどの論理ゲートを実装するために、マッハツェンダー干渉計、指向性カプラ、平面光導波管、および光検出器を含む、フォトニック回路を使用することを説明する。論理ゲートは、ソートアルゴリズム、たとえば、リンクURL<https://en.wikipedia.org/wiki/Bitonic_sorter>において説明されているバイトニックソータに類似したアルゴリズムのために使用され得る、比較器を生成するために使用され得る。別の例として、論理ゲートは、リンクURL<https://en.wikipedia.org/wiki/SHA-2>におい説明されているSHA-2に類似したハッシュアルゴリズムを構築するために使用されてもよく、これは、NISTによって提案される規格であり、たとえば、ビットコインマイニングおよびビットコインアドレスの作成を含む、多くの用途がある。上で説明されたフォトニック回路を使用して実装される論理回路は大半が受動的であるので、CMOS論理ゲートと比較して、レイテンシおよび電力消費が少なくなり得る。光論理ゲートの設計において、光学的な非線形性はない。非線形な応答は、光検出器を使用した信号の検出に由来する。
【０５３１】
非コヒーレントまたは低コヒーレント光コンピューティングシステム
以下は、行列計算を実行する際に、非コヒーレントまたは低コヒーレント光信号を処理する光電子コンピューティングシステムを説明する。図1のANN計算システム100の光プロセッサ140は、同じ波長を有し光学的にコヒーレントであるN個の光出力を生成するレーザーユニット142を含む。光行列乗算ユニット150は、光領域においてN×N行列乗算を実行し、このとき、光信号は、OMMユニット150の入力からOMMユニット150の出力までコヒーレントなままである。光領域において行列乗算を実行する際のOMMユニット150の利点は上で説明された。以下は、行列乗算処理全体にわたって光信号がコヒーレントであることを要求しない光電子コンピューティングシステムを説明し、このような光電子コンピューティングシステムにおいて、計算のいくつかの部分は光領域において実行され、計算のいくつかの部分は電子領域において実行される。光電子コンピューティングシステムの利点は、上の概要セクションにおいて説明された。
【０５３２】
光電子コンピューティングシステムは、演算の背後にある物理的性質が最も適している(たとえば、エネルギー消費および/または速度に関して)信号(たとえば、電気信号または光信号)に対して各々実行される異なるタイプの演算を使用して、計算結果を生み出す。たとえば、複製は光パワー分割を使用して実行されてもよく、加算は電流ベースの加算を使用して実行されてもよく、乗算は光振幅変調を使用して実行されてもよい。これらの3つのタイプの演算を使用して実行され得る計算の例は、ベクトルを行列(たとえば、人工ニューラルネットワーク計算によって利用されるような)と乗算することである。種々の他の計算がこれらの演算を使用して実行されてもよく、それらの演算は、限定はされないが、ベクトルとベクトルのドット積、ベクトルとベクトルの要素ごとの乗算、ベクトルとスカラーの要素ごとの乗算、または行列と行列の要素ごとの乗算を含む、種々の計算がそれから実行され得る一般的な線形演算のセットを表す。
【０５３３】
図18を参照すると、光電子コンピューティングシステム1800の例は、光信号を提供する光ポートまたは光源1802A、1802Bなどのセットを含む。たとえば、いくつかの実装形態では、光ポート/光源1802Aは、光経路1803に結合される光信号を提供する光入力カプラを含み得る。他の実装形態では、光ポート/光源1802Aは、レーザー(たとえば、コヒーレンスの影響を受けやすい実装形態のための)または発光ダイオード(LED)(たとえば、コヒーレンスの影響を受けにくい実装形態のための)などの、変調された光源を含んでもよく、これは、光経路1803に結合された光信号を生成する。いくつかの実装形態は、光信号をシステム1800に結合するポートと、システム1800内で光信号を生成する源との組合せを含み得る。光信号は、種々の形式の変調のいずれかを使用して情報により変調された、または変調される過程にある、任意の光波(たとえば、約100nmと約1mmの間の範囲にある波長を含むスペクトルを有する電磁波)を含み得る。光経路1803は、たとえば、光導波管(たとえば、フォトニック集積回路(PIC)または光ファイバに埋め込まれた導波管)の導波モードに基づいて、または、光ポート/光源1802Aとシステム1800の別のモジュールとの間の所定の自由空間経路に基づいて、定義され得る。
【０５３４】
いくつかの実装形態では、光電子コンピューティングシステム1800は、光ポートまたは光源1802A、1802Bなどによって提供されるそれぞれの光信号上に符号化される、入力値の列に対して計算を実行するように構成される。たとえば、ニューラルネットワークに基づく様々な機械学習の用途に対して、計算は、入力ベクトルが行列と乗算されて出力ベクトルを結果として生み出すような、ベクトル行列乗算(またはベクトル対行列乗算)を実施することができる。光信号は、場合によってはベクトルの選択された要素のサブセットのみを含む、ベクトルの要素を表し得る。たとえば、一部のニューラルネットワークモデルでは、計算において使用される行列のサイズは、計算のベクトル行列乗算部分を実行するハードウェアシステム(たとえば、より大きいシステムのエンジンまたはコプロセッサ)へとロードされ得る行列のサイズよりも大きいことがある。よって、計算を実行する部分は、ハードウェアシステムに別々に提供され得るより小さいセグメントへの行列とベクトルの分割を伴い得る。
【０５３５】
図18に示されるモジュールは、64×64要素の行列などの、比較的大きい行列(または部分行列)に対してベクトル行列乗算を実行するより大きいシステムの部分であり得る。しかし、例示を目的に、モジュールは、2×2要素の行列を使用してベクトル行列乗算を実行する例示的な計算の文脈で説明される。この例において言及されるモジュールは、2つの複製モジュール104Aおよび104B、4つの乗算モジュール1806A、1806B、1806C、および1806D、ならびにそのうちの1つの加算モジュール1808が図18に示されている2つの加算モジュールを含む。これらのモジュールは、入力ベクトル
【数３２】
2021527287.tif 000034
と行列
【数３３】
2021527287.tif 000035
の乗算を可能にして、出力ベクトル
【数３４】
2021527287.tif 000036
を生み出す。このベクトル行列乗算
【数３５】
2021527287.tif 000037
に対して、出力ベクトル
【数３６】
2021527287.tif 000038
の2つの要素の各々は、次のように異なる式によって表され得る。
yA=MAxA+MBxB
yB=MCxA+MDxB
【０５３６】
これらの式は、複製演算、乗算演算、および加算演算という、基本的な演算のセットを使用してシステム1800において実行され得る別個のステップへと分解され得る。これらの式において、入力ベクトルの各要素は2回現れるので、2回の複製演算がある。4回の乗算演算もあり、2回の加算演算がある。実行される演算の数は、より大きい行列を使用してベクトル行列乗算を実施するシステムに対してよりも大きく、各演算の事例の相対的な数は、形状が正方行列ではない(すなわち、行の数が列の数と異なる)行列を使用すると異なる。
【０５３７】
この例では、複製演算は、複製モジュール1804Aおよび1804Bによって実行される。入力ベクトルxAおよびxBの要素は、それぞれ、光ポート/光源1802Aおよび1802Bからの光信号に対して符号化された値によって表される。これらの値の各々が両方の式において使用されるので、得られた2つの複製を異なるそれぞれの乗算モジュールに提供するために各値が複製される。以下でより詳しく説明されるように、値は、たとえば、複数のパワーレベルのセットからのあるパワーを有するように変調された光波、または、複数のオンデューティ比のセットからのあるデューティ比を有する光波を使用して、ある特定のタイムスロットにおいて符号化され得る。値は、その値が符号化される光信号を複製することによって複製される。要素xAを表す値を用いて符号化される光信号は、複製モジュール1804Aによって複製され、要素xBを表す値を用いて符号化される光信号は、複製モジュール1804Bによって複製される。各複製モジュールは、たとえば、パワーを徐々に(たとえば、断熱的に)分割するY型分割器、または、入力ビームからの2つの出力ビームをそれぞれ伝達および反射するための1つまたは複数の層を伴う誘電インターフェースまたは薄膜を使用する自由分割ビーム分割器を介して、入力導波管における導波モードを2つの出力導波管の各々に結合する導波管光分割器などの、光パワー分割器を使用して実装され得る。
【０５３８】
本文書では、要素xAを表す値を用いて符号化される光信号が複製モジュール1804Aによって複製されると言うとき、要素xAを表す信号の複数の複製が入力信号に基づいて生み出されることを意味し、複製モジュール1804Aの出力信号が入力信号の振幅と同じ振幅を有することを必ずしも意味しない。たとえば、複製モジュール1804Aが入力信号パワーを2つの出力信号に均等に分割する場合、2つの出力信号の各々は、入力信号のパワーの50%以下のパワーを有する。2つの出力信号は互いの複製であるが、複製モジュール1804Aの各出力信号の振幅は入力信号の振幅と異なる。また、所与の光信号を複製するために使用される複数の複製モジュールのグループ、または光信号のサブセットを有するいくつかの実施形態では、各々の個別の複製モジュールは、その生成される複製にパワーを必ずしも均等に分割せず、複製モジュールのグループは、下流のモジュール(たとえば、下流の乗算モジュール)の入力に、実質的に等しいパワーを有する複製を提供するようにまとめて構成され得る。
【０５３９】
この例では、乗算演算は、4つの乗算モジュール1806A、1806B、1806C、および1806Dによって実行される。光信号のうちの1つの各複製に対して、乗算モジュールの1つが、光信号のその複製を行列要素値と乗算し、これは、光振幅変調を使用して実行され得る。たとえば、乗算モジュール1806Aは、入力ベクトル要素xAを行列要素MAと乗算する。ベクトル要素xAの値は光信号上で符号化されてもよく、行列要素MAの値は光振幅変調器の振幅変調レベルとして符号化されてもよい。
【０５４０】
ベクトル要素xAを用いて符号化される光信号は、振幅変調の異なる形式を使用して符号化され得る。光信号の振幅は、特定のタイムスロット内の物理的な光波の特定の瞬時パワーレベルPAに対応することがあり、または、特定のタイムスロットにわたる物理的な光波の特定のエネルギーEAに対応することがある(ここで、時間で積分されたパワーが総エネルギーとなる)。たとえば、レーザー源のパワーは、複数のパワーレベルの所定のセットから特定のパワーレベルを有するように変調され得る。いくつかの実装形態では、最適化された動作点の近くで電子回路を動作させることが有用であり得るので、多くの可能なパワーレベルにわたってパワーを変動させる代わりに、最適化された「オン」パワーレベルが使用され、信号は、タイムスロットの特定の割合の間「オン」および「オフ」(パワー0)となるように変調される。パワーが「オン」レベルにある時間の割合は、特定のエネルギーレベルに対応する。パワーまたはエネルギーのこれらの特定の値のいずれかが、(線形または非線形の対応付け関係を使用して)要素xAの特定の値に対応付けられ得る。以下でより詳しく説明されるように、特定の総エネルギーレベルを生み出すための、時間にわたる実際の積分は、信号が電気領域に入った後でシステム1800の下流で行われ得る。
【０５４１】
追加で、「振幅」という用語は、光波の瞬時的なまたは積分されたパワーによって表される信号の振幅を指すことがあり、または、光波の「電磁場振幅」を等価的に指すこともある。これは、電磁場振幅が信号振幅に対して明確に定められた関係を有する(たとえば、導波モードまたは自由空間ビームの横方向のサイズにわたって、電磁場振幅の2乗に比例する電磁場強度を積分し、瞬時パワーを得ることによって)からである。これは、変調値間の関係につながり、それは、特定の値
【数３７】
2021527287.tif 000039
によって電磁場振幅を変調する変調器が、対応する値Mによってパワーベースの信号振幅を変調するものとしても見なされ得る(光パワーは電磁場振幅の2乗に比例するので)からである。
【０５４２】
行列要素MAを符号化するために乗算モジュールによって使用される光振幅変調器は、種々の物理的な相互作用のいずれかを使用して光信号の振幅(すなわち、光信号のパワー)を変更することによって動作することができる。たとえば、変調器は、リング共振器、電界吸収型変調器、熱電子光変調器、またはマッハツェンダー干渉計(MZI)変調器を含み得る。いくつかの技法では、パワーのある割合が物理的な相互作用の一部として吸収され、他の技法では、パワーは、極性もしくは位相などのパワー以外の光波の別の性質を改変する、または(調整可能な共振器を使用して)異なる光構造間の光パワーの結合を改変する、物理的な相互作用を使用して向け直される。異なる経路を移動した光波間の干渉(たとえば、弱め合うおよび/または強め合う干渉)を使用して動作する光振幅変調器に対して、レーザーなどのコヒーレントな光源が使用され得る。吸収を使用して動作する光振幅変調器に対して、LEDなどのコヒーレント光源または非コヒーレント光源または低コヒーレント光源のいずれかが使用され得る。
【０５４３】
導波管1×2光振幅変調器の一例では、変調器の複数の導波管のうちの1つに位相変調器を置くことによって光波のパワーを変調するために、位相変調器が使用される。たとえば、導波管1×2光振幅変調器は、入力光導波管によって導かれる光波を第1のアームおよび第2のアームに分割し得る。第1のアームは、第2のアームの位相遅延に関して相対的な位相シフトを付与する位相シフタを含む。変調器は次いで、第1のアームおよび第2のアームからの光波を組み合わせる。いくつかの実施形態では、位相遅延の異なる値は、強め合うまたは弱め合う干渉を通じて、入力光導波管によって導かれる光波のパワーと、0と1の間の値との乗算をもたらす。以下でより詳しく説明されるように、いくつかの実施形態では、第1のアームおよび第2のアームは2つの出力導波管の各々へと組み合わされ、2つの出力導波管からの光波を受信するそれぞれの光検出器によって生成される光電流間の差は、符号付きの乗算結果(たとえば、-1から1の間の値との乗算)をもたらす。符号化された光信号の振幅スケーリングの適切な選択によって、行列要素値の範囲は、任意の範囲の正の値(0からM)、または符号付きの値(-MからM)と対応付けられ得る。
【０５４４】
この例では、加算演算は2つの加算モジュールによって実行され、図18に示される加算モジュール1808は、出力ベクトル要素yBを計算するための式において加算を実行するために使用される。対応する加算モジュール(図示せず)は、出力ベクトル要素yAを計算するための式において加算を実行するために使用される。加算モジュール1808は、2つの乗算モジュール1806Cおよび1806Dの結果の合計を表す電気信号を生み出す。この例では、電気信号は、乗算モジュール1806Cおよび1806Dによってそれぞれ生成される出力光信号のパワーの合計に比例する、電流isumの形式である。この電流isumを生み出す加算演算は、いくつかの実施形態では光電子領域において実行され、他の実施形態では電気領域において実行される。または、いくつかの実施形態は、いくつかの加算モジュールのために光電子領域の加算を、他の加算モジュールのために電気領域の加算を使用し得る。
【０５４５】
加算が電気領域において実行される実施形態では、加算モジュール1808は、(1)その振幅が乗算モジュールのうちの1つの結果を表す、入力電流を各々が搬送する2つ以上の入力導体、および(2)入力電流の合計である電流を搬送する少なくとも1つの出力導体を使用して実装され得る。たとえば、これは、導体が交点において交わる配線である場合に生じる。そのような関係は、たとえば(理論により拘束されることなく)、交点に流れ込む電流は交点から流れ出る電流に等しいことを述べるキルヒホッフの電流則に基づいて理解され得る。これらの実施形態では、加算モジュール108に提供される信号1810Aおよび1810Bは入力電流であり、これらは、その振幅が受信されたパワーの振幅に比例するそれぞれの光電流を生成する、乗算モジュールの一部である光検出器によって生み出され得る。加算モジュール1808は次いで、出力電流isumを提供する。その出力電流の瞬時値、または出力電流の積分値が次いで、合計の定量的な値を表すために使用され得る。
【０５４６】
加算が光電子領域において実行される実施形態では、加算モジュール1808は、異なるそれぞれの乗算モジュールによって生成される光信号を受信する光検出器(たとえば、フォトダイオード)を使用して実装され得る。これらの実施形態では、加算モジュール1808に提供される信号1810Aおよび1810Bは、そのパワーが乗算モジュールのうちの1つの結果を表す光波を各々備える、入力光信号である。この実施形態における出力電流isumは、光検出器によって生成される光電流である。光波の波長は異なる(たとえば、大きな強め合うまたは弱め合う干渉がそれらの間で生じないように十分に異なる)ので、光電流は受信された光信号のパワーの合計に比例する。光電流はまた、別個の等価な光検出器によって検出される個々の検出された光パワーに起因する個々の電流の合計と実質的に等しい。光波の波長は異なるが、光検出器による実質的に同じ応答になる程度には十分に近い(たとえば、光検出器の実質的に平坦な検出帯域幅内の波長)。上で言及されたように、電流加算を使用した電気領域における加算は、複数波長の必要性をなくすことによって、より簡単なシステムアーキテクチャを可能にし得る。
【０５４７】
図19Aは、2×2要素の行列を使用してベクトル行列乗算を実行するためのシステム1900の実装形態のためのシステム構成1900の例を示し、加算演算は電気領域において実行される。この例では、入力ベクトルは
【数３８】
2021527287.tif 000040
であり、行列は
【数３９】
2021527287.tif 000041
である。入力ベクトルの要素の各々は、異なる光信号上に符号化される。2つの異なる複製モジュール1902は、異なる経路(たとえば、「上側」経路および「下側」経路)にわたって計算を分割するための光複製演算を実行する。光振幅変調を使用して異なる行列要素と各々乗算する、4つの乗算モジュール1904がある。各乗算モジュール1904の出力において、光信号を電流の形態の電気信号に変換する、光検出モジュール1906がある。異なる入力ベクトル要素の両方の上側経路は加算モジュール1908を使用して組み合わされ、異なる入力ベクトル要素の両方の下側経路は加算モジュール1908を使用して組み合わされ、加算モジュール1908は電気領域において加算を実行する。よって、出力ベクトルの要素の各々は、異なる電気信号上に符号化される。図19Aに示されるように、計算が進行するにつれて、出力ベクトルの各構成要素が増分的に生成されて、上側経路および下側経路に対して、それぞれ以下の結果を生み出す。
M11v1+M12v2
M21v1+M22v2
【０５４８】
システム構成1900は、種々の光電子技術のいずれかを使用して実装され得る。いくつかの実装形態では、共通の基板(たとえば、シリコンなどの半導体)があり、これは、集積された光コンポーネントと電子コンポーネントの両方を支持することが可能であり得る。光経路は、光信号を搬送する光波を伝播するための導波管を画定するより低い光学指数をもつ材料により囲まれた、より高い光学指数をもつ材料を有する導波管構造において実装され得る。電気経路は、電気信号を搬送する電流を伝播するための伝導材料によって実装され得る(図19Aから図20A、図21Aから図24Eにおいて、別段示されない限り、経路を表す線の太さは、より太い線によって表される光経路と、より細い線または破線によって表される電気経路とを区別するために使用される)。分割器および光振幅変調器などの光デバイス、ならびに、光検出器および演算増幅器(オペアンプ)などの電気デバイスは、共通の基板上に製造され得る。代替的に、異なる基板を有する異なるデバイスは、システムの異なる部分を実装するために使用されてもよく、それらのデバイスは、通信チャネルを介して通信していてもよい。たとえば、システム全体を実装するために使用される複数のデバイス間で光信号を送信するための通信チャネルを提供するために、光ファイバが使用され得る。以下でより詳しく説明されるように、それらの光信号は、ベクトル行列乗算を実行するときに提供される入力ベクトルの異なるサブセット、および/または、ベクトル行列乗算を実行するときに計算される中間結果の異なるサブセットを表し得る。
【０５４９】
本文書では、光導波管を電気信号線が横切るのを図面が示すことがあるが、光導波管は電気信号線と交差しないことを理解されたい。電気信号線および光導波管は、デバイスの異なる層に配設され得る。
【０５５０】
図19Bは、2×2要素の行列を使用してベクトル行列乗算を実行するためのシステム1900の実装形態のシステム構成1920の例を示し、加算演算は光電子領域におおいて実行される。この例では、異なる入力ベクトル要素は、2つの異なるそれぞれの波長λ1およびλ2を使用して光信号上に符号化される。また、乗算モジュール1904の光出力信号は光合成器モジュール1910において組み合わされるので、光導波管は、両方の波長上の両方の光信号を光電子加算モジュール1912の各々に導き、これらは、図19Aの例において光検出モジュール1906のために使用されるような、光検出器を使用して実装され得る。しかし、この例では、加算は、異なる導体間の交点から出てくる電流によってではなく、両方の波長におけるパワーを表す光電流によって表される。
【０５５１】
本文書では、2つの光導波管が互いに横切るのを図が示すとき、2つの光導波管が互いに実際に光学的に結合されるかどうかは、説明から明らかになる。たとえば、デバイスの上面図から互いに横切るように見える2つの導波管は、異なる層において実装されることがあるので、互いに交差しないことがある。たとえば、光信号λ2を複製モジュール1902への入力として提供する光経路、光信号M11V1を乗算モジュール1904から光合成器モジュール1910に提供する光経路は、図においてそれらが互いに横切っているように見えることがあっても、互いに光学的に結合されない。同様に、複製モジュール1902から乗算モジュール1904に光信号λ2を提供する光経路、および乗算モジュール1904から光合成器モジュール1910に光信号M21V1を提供する光経路は、図においてそれらが互いに横切っているように見えることがあっても、互いに光学的に結合されない。
【０５５２】
図19Aおよび図19Bに示されるシステム構成は、m×n要素の行列を使用してベクトル行列乗算を実行するためのシステム構成を実装するように拡張され得る。この例では、入力ベクトルは
【数４０】
2021527287.tif 000042
であり、行列は
【数４１】
2021527287.tif 000043
である。たとえば、入力ベクトル要素v1からvnは、n個の導波管によって提供され、各入力ベクトル要素は、入力ベクトル要素のm個の複製をm個のそれぞれの経路に提供するために、1つまたは複数の複製モジュールによって処理される。Mij・vj(i=1…m,j=1…m)を表す電気信号または光信号を生み出すために光振幅変調を使用して異なる行列要素と各々乗算する、m×n個の乗算モジュールがある。Mij・vj(j=1…n)を表す信号は、m個の経路に対して以下の結果をそれぞれ生み出すために、第iの加算モジュール(i=1…m)を使用して組み合わされる。
M11v1+M12v2+…M1nvn
M21v1+M22v2+…M2nvn
…
Mm1v1+Mm2v2+…Mmnvn
【０５５３】
光振幅変調は、光信号のパワーをその最高の値からより低い値に、0(またはほぼ0)のパワーまで下げることが可能であるので、0と1の間のあらゆる値との乗算が実施され得る。しかしながら、一部の計算は、1よりも大きい値との乗算および/または符号付き(正または負)の値との乗算を必要とし得る。第1に、範囲を0からMmax(Mmax>1である)に拡張するために、光信号の元の変調は、Mmaxによる元のベクトル要素振幅の明示的または暗黙的なスケーリング(または等価的に、線形マッピングにおいて特定のベクトル要素振幅にマッピングされる値を1/Mmaxによってスケーリングすること)を含み得るので、行列要素振幅に対する範囲0から1は、計算においては定量的に範囲0からMmaxに対応する。第2に、行列要素値に対する正の範囲0からMmaxを符号付きの範囲-MmaxからMmaxに拡張するために、以下でより詳しく説明されるように、対称差動構成が使用され得る。同様に、対称差動構成はまた、様々な信号上に符号化された値の正の範囲を値の符号付き範囲に拡張するために使用され得る。
【０５５４】
図20Aは、光信号上に符号化された値に対する値の符号付き範囲を提供するための、対称差動構成2000の例を示す。この例では、
【数４２】
2021527287.tif 000044
として指定される符号なしの値を符号化する2つの関連する光信号があり、各値は、0(たとえば、0に近い光パワーに対応する)とVmax(たとえば、最大のパワーレベルにおける光パワーに対応する)との間で変動すると仮定される。2つの光信号間の関係は、一方の光信号が「主要」値
【数４３】
2021527287.tif 000045
を用いて符号化され、他方の光信号が対応する「反対称」値
【数４４】
2021527287.tif 000046
を用いて符号化されるとき、一方の光信号上に符号化される主要値
【数４５】
2021527287.tif 000047
が0からVmaxに単調に増大するにつれて、対になっている光信号上に符号化された反対称値
【数４６】
2021527287.tif 000048
がVmaxから0まで単調に減少するというものである。または、逆に、一方の光信号上に符号化された主要値
【数４７】
2021527287.tif 000049
がVmaxから0に単調に減少するにつれて、対になっている光信号上に符号化された反対称値
【数４８】
2021527287.tif 000050
は0からVmaxに単調に増大する。上側経路および下側経路の光信号がそれぞれの光検出モジュール1906によって電流信号に変換された後で、電流信号間の差が電流減算モジュール2002によって生み出され得る。
【数４９】
2021527287.tif 000051
を符号化する電流信号間の差は、
【０５５５】
【数５０】
2021527287.tif 000052
【０５５６】
として与えられる符号付きの値V1を用いて符号化される電流をもたらし、符号付きの値V1は、符号なしの主要値
【数５１】
2021527287.tif 000053
が0からVmaxに単調に増大し、その対になっている反対称値
【数５２】
2021527287.tif 000054
がVmaxから0に単調に減少するにつれて、-VmaxとVmaxとの間で単調に増大する。図20Bおよび図20Cに示されるように、図20Aの対称差動構成を実装するために使用され得る、様々な技法がある。
【０５５７】
図20Bにおいて、光信号は共通端子構成において検出され、この構成において、2つのフォトダイオード検出器がオペアンプ2030の共通端子2032(たとえば、反転端子)に接続される。この構成では、第1のフォトダイオード検出器2012から生成された電流2010および第2のフォトダイオード検出器2016から生成された電流2014は、3つの導体の交点2018で組み合わさって、電流2010と電流2014との間の差電流2020を生み出す。図20Bに示されるように、電流2010および2014は、それぞれのフォトダイオードの反対側から提供され、それらのフォトダイオードは、同じ振幅vbiasの、しかし符号が反対のバイアス電圧を提供する電圧源(図示せず)に他端が接続される。この構成では、差は、共通の交点2018において会合する電流の挙動により生成される。差電流2020は、検出された光信号上に符号化された符号なしの値の間の差に対応する、電気信号に符号化された符号付きの値を表す。オペアンプ2030は、他方の端子2024が接地され、差電流2020に比例する電圧を提供する抵抗性素子2028を使用して出力端子2026が共通端子2032にフィードバックされる、トランスインピーダンスアンプ(TIA)構成で構成され得る。そのようなTIA構成は、得られる値を、電圧信号の形式で電気信号として提供する。
【０５５８】
図20Cにおいて、光信号は、オペアンプ2050の異なる端子に2つのフォトダイオード検出器が接続される、差動端子構成で検出される。この構成では、第1のフォトダイオード検出器2042から生成される電流2040は反転端子2052に接続され、第2のフォトダイオード検出器2046から生成される電流2044は非反転端子2054に接続される。図20Cに示されるように、電流2040および2044は、それぞれのフォトダイオードの同じ端から提供され、それらのフォトダイオードは、同じ振幅vbiasであり符号が同じバイアス電圧を提供する電圧源(図示せず)に他端が接続される。この構成におけるオペアンプ2050の出力端子2056は、電流2040と電流2044との差に比例する電流を提供する。この構成では、オペアンプ2050の回路の挙動により、差が生成される。出力端子2056から流れる差電流は、検出された光信号上に符号化された符号なしの値の間の差に対応する電気信号上に符号化される符号付きの値を表す。
【０５５９】
図21Aは、乗算モジュール1904を実装する光振幅変調器の変調レベルとして符号化される値に対する、符号付きの値の範囲を提供するための、対称差動構成2100の例を示す。この例では、
【数５３】
2021527287.tif 000055
として指定される符号なしの値によって変調するように構成される2つの関連する変調器があり、各値は、0(たとえば、ほぼ0に減らされるように変調された光パワーに対応する)とMmax(たとえば、ほぼ最大のパワーレベルに維持された光パワーに対応する)との間で変動すると仮定される。2つの変調レベルの間の関係は、一方の変調レベルが「主要」値
【数５４】
2021527287.tif 000056
において構成され、他方の変調レベルが対応する「反対称」値
【数５５】
2021527287.tif 000057
において構成されるとき、一方の変調器の主要値
【数５６】
2021527287.tif 000058
が0からMmaxに単調に増大するにつれて、他方の変調器の反対称値
【数５７】
2021527287.tif 000059
がMmaxから0に単調に減少するというものである。または、逆に、一方の変調器の主要値
【数５８】
2021527287.tif 000060
がMmaxから0に単調に減少するにつれて、他方の変調器の反対称値
【数５９】
2021527287.tif 000061
は、0からMmaxに単調に増大する。値Vを符号化する入力光信号が複製モジュール1902によって複製された後で、変調器の各々は、変調された出力光信号を対応する光検出モジュール1906に提供する。上側経路の乗算モジュール1904は、
【数６０】
2021527287.tif 000062
と乗算して値
【数６１】
2021527287.tif 000063
で符号化された光信号を提供する変調器を含む。下側経路の乗算モジュール1904は、
【数６２】
2021527287.tif 000064
と乗算して値
【数６３】
2021527287.tif 000065
を用いて符号化された光信号を提供する変調器を含む。光信号がそれぞれの光検出モジュール1906によって電流信号に変換された後で、それらの差が電流減算モジュール2102によって生み出され得る。
【数６４】
2021527287.tif 000066
を符号化する電流信号の差は、
【０５６０】
【数６５】
2021527287.tif 000067
【０５６１】
として与えられる符号付きの値M11と乗算されるVを用いて符号化される電流をもたらし、符号付きの値M11は、符号なしの主要値
【数６６】
2021527287.tif 000068
が0からMmaxに単調に増大し、その対になっている反対称値
【数６７】
2021527287.tif 000069
がMmaxから0に単調に減少するにつれて、-MmaxとMmaxとの間で単調に増大する。
【０５６２】
図21Bは、2×2要素の行列を使用してベクトル行列乗算を実行するためのシステム1800の実装形態に対するシステム構成2110の例を示し、加算演算は電気領域において実行され、入力ベクトルの符号付きの要素および行列の符号付きの要素を伴う。この例では、入力ベクトルの各々の符号付きの要素に対して、符号なしの値を符号化する2つの関連する光信号がある。第1の符号付きの入力ベクトル要素値V1に対して
【数６８】
2021527287.tif 000070
として指定される2つの符号なしの値があり、第2の符号付き入力ベクトル要素値V2に対して
【数６９】
2021527287.tif 000071
として指定される2つの符号なしの値がある。光信号上に符号化された各々の符号なしの値は、4つのそれぞれの光経路にわたって光信号の4つの複製を生み出す1つまたは複数の光複製演算を実行する複製モジュール2112によって受信される。複製モジュール2112のいくつかの実装形態では、異なるパワー比を使用して分割するように各々構成される3つの異なるY型の導波管分割器がある(これは、たとえば、種々のフォトニックデバイスのいずれかを使用して達成され得る)。たとえば、第1の分割器は、1:4のパワー比を使用して分割し、パワーの25%(1/4)を第1の経路に向け直すことができ、第2の分割器は、1:3のパワー比を使用して分割し、パワーの25%(1/4=1/3×3/4)を第2の経路に向け直すことができ、第3の分割器は、1:2のパワー比を使用して分割し、パワーの25%(1/4=1/2×2/3×3/4)を第3の経路に、パワーの残りの25%を第4の経路に向け直すことができる。複製モジュール2112の一部である個々の分割器は、たとえば、異なる複製をシステム内の異なる経路に適切に分配するために、基板の異なる部分に配置され得る。複製モジュール2112の他の実装形態では、適宜、異なる分割比を用いて分割される異なる数の経路があり得る。たとえば、第1の分割器は、1:2のパワー比を使用して2つの中間光信号を提供することができる。次いで、それらの中間光信号の一方は、1:2のパワー比を有する第2の分割器を使用して分割されて、パワーの25%を第1の経路と第2の経路の各々に向け直すことができ、それらの中間光信号の他方は、1:2のパワー比を有する第3の分割器を使用して分割されて、パワーの25%を第3の経路と第4の経路の各々に向け直すことができる。
【０５６３】
システム構成2110はまた、システム100によって実行されるベクトル行列乗算の結果である出力ベクトルを表す2つの異なる出力電気信号を提供するための、図21Bに示されるように配置される他のモジュールを含む。入力ベクトルを表す光信号の異なる複製を変調する、16個の異なる乗算モジュール1904があり、計算の中間結果を表す電気信号を提供するための、16個の異なる光検出モジュール1906がある。出力電気信号の各々に対する全体の加算を計算する、2つの異なる加算モジュール2114Aおよび2114Bもある。図において、光検出モジュール1906を加算モジュール2114Bに電気的に結合する信号線は、破線で示されている。各々の全体の加算は、ベクトル要素および/または行列要素に対する任意の対称差動構成からの、対になっている主要項から差し引かれているいくつかの反対称項を含み得るので、加算モジュール2114Aおよび2114Bは、加算のいくつかの項が反転された(等価的に、反転されていない項から差し引かれた)後で加算されるための機構を含み得る。たとえば、いくつかの実装形態では、加算モジュール2114Aおよび2114Bは、全体の加算において加算されることになる項が非反転入力ポートに接続され得るように、かつ、全体の加算において差し引かれることになる項が反転入力ポートに接続され得るように、反転入力ポートと非反転入力ポートの両方を含む。そのような加算モジュールの1つの例示的な実装形態は、非反転端子が、加算されることになる信号を表す電流を流す配線に接続され、反転端子が、差し引かれることになる信号を表す電流を流す配線に接続されるような、オペアンプである。代替的に、反転入力ポートは、反対称項の反転が他の手段によって実行される場合、加算モジュール上には必ずしもなくてもよい。加算モジュール2114Aおよび2114Bは、それぞれ以下の加算結果を生み出し、ベクトル行列乗算を完了する。
【０５６４】
【数７０】
2021527287.tif 000072
【０５６５】
本文書では、図面が互いに横切る2つの電気信号線を示すとき、2つの電気信号線が互いに電気的に結合されるかどうかは説明から明らかになる。たとえば、M21+V1+信号を搬送する信号線は、M11+-V1-信号を搬送する信号線またはM11-V1-信号を搬送する信号線に電気的に結合されない。
【０５６６】
図21Bに示されるシステム構成は、m×n要素の行列を使用してベクトル行列乗算を実行するためのシステム構成を実装するように拡張されてもよく、入力ベクトルおよび行列は符号付きの要素を含む。
【０５６７】
図21Bの対称差動構成を実装するために使用され得る様々な技法がある。それらの技法のいくつかは、乗算モジュール1904を実装するための、および/または、主要と反対称のペアとして関連付けられる光信号のペアを提供するための、1×2光振幅変調器を利用する。図22Aは、1×2光振幅変調器2200の例を示す。この例では、1×2光振幅変調器2200は、パワーの50%を位相変調器2204(位相シフタとも呼ばれる)を含む第1の経路に、パワーの50%を位相変調器を含まない第2の経路に提供するために入来光信号を分割する、入力光分割器2202を含む。経路は、光振幅変調器が自由空間干渉計として実装されるか、または導波管干渉計として実装されるかに応じて、異なる方法で定義され得る。たとえば、自由空間干渉計において、一方の経路はビーム分割器を通じた波の送信によって定義され、他方の経路はビーム分割器からの波の反射によって定義される。導波管干渉計では、各経路は、(たとえば、Y型の分割器において)入来導波管に結合された異なる光導波管によって定義される。位相変調器2204は、第1の経路の総位相遅延が、構成可能な位相シフト値(たとえば、0度と180度の間のどこかの位相シフトに設定され得る値)の分だけ第2の経路の総位相遅延と異なるように、位相シフトを付与するように構成され得る。
【０５６８】
1×2光振幅変調器2200は、位相シフトに応じて、異なる比でパワーを第1の出力経路および第2の出力経路に向け直すために、特定の方式の光干渉または光結合を使用して、第1の入力経路および第2の入力経路から光波を組み合わせる2×2のカプラ2206を含む。たとえば、自由空間干渉計において、0度の位相シフトは、2つの経路間で分割された入力パワーの実質的にすべてが強め合うように干渉して、カプラ2206を実装するビーム分割器の一方の出力経路から出るようにし、180度の位相シフトは、2つの経路間で分割された入力パワーの実質的にすべてが強め合うように干渉して、カプラ2206を実装するビーム分割器の他方の出力経路から出るようにする。導波管干渉計において、0度の位相シフトは、2つの経路間で分割された入力パワーの実質的にすべてが、カプラ2206の一方の出力導波管に結合するようにし、180度の位相シフトは、2つの経路間で分割された入力パワーの実質的にすべてが、カプラ2206の他方の出力導波管に結合するようにする。0度と180度の間の位相シフトは次いで、部分的に強め合うもしくは弱め合う干渉、または部分的な導波管結合を通じて、光波のパワー(および光波に符号化されている値)と、0と1の間の値との乗算をもたらし得る。0と1の間の任意の値との乗算は次いで、上で説明されたような0とMmaxとの間の任意の値との乗算と対応付けられ得る。
【０５６９】
加えて、変調器2200から放出された2つの光波のパワーの関係は、上で説明された主要ペアと反対称ペアの関係に従う。一方の信号の光パワーの振幅が増大すると、他方の信号の光パワーの振幅は減少するので、本明細書において説明されるように、検出された光電流間の差は符号付きベクトル要素、または符号付き行列要素との乗算を生み出すことができる。たとえば、関連する光信号のペアは、関連する光信号の振幅間の差が符号付き行列要素値と入力値を乗算した結果に対応するように、変調器2200の2つの出力ポートから提供され得る。図22Bは、出力における光信号が図20Bの対称差動構成の共通端子バージョンにおいて検出されることになるように構成される、1×2光振幅変調器2200の対称差動構成2210を示す。光検出器2212および2214のペアによって生成される光電流に対応する電流信号は、関連する光信号の振幅間の差にその振幅が対応する、出力電流信号を提供するために交点2216において組み合わされる。図20Cの対称差動構成などの他の例では、出力における2つの光信号から検出される光電流は、異なる電気回路を使用して組み合わされ得る。
【０５７０】
他の技法は、乗算モジュール1904を実装するための、ならびに/または主要ペアおよび反対称ペアとして関連付けられる光信号のペアを提供するための、1×2光振幅変調器を構築するために使用され得る。図22Cは、別のタイプの1×2光振幅変調器の対称差動構成2220の別の例を示す。この例では、1×2光振幅変調器は、入力ポート2221における光信号の光パワーを2つの出力ポートに分割するように構成されるリング共振器2222を含む。リング共振器2222(「マイクロリング」とも呼ばれる)は、たとえば基板に円形導波管を形成することによって製造されてもよく、円形導波管は、入力ポート2221に対応する直線導波管に結合される。光信号の波長がリング共振器2222と関連付けられる共振波長に近いとき、リングに結合される光波は、時計回りの経路2226でリングの周りを循環し、結合位置において弱め合うように干渉して、パワーが低減された光波が経路2224を通って第1の出力ポートに出てくる。第2の出力ポートから出てきた光波を導く湾曲導波管を通じて別の光波が経路2228を通って出てくるように、循環する光波はリングから出てくるところでも結合される。
【０５７１】
光パワーがリング共振器2222の周りを循環するタイムスケールは、光信号の振幅変調のタイムスケールと比べて小さいので、反対称的なパワーの関係が2つの出力ポート間ですぐに確立され、それにより、光検出器2212によって検出される光波および光検出器2214によって検出される光波が、主要ペアおよび反対称ペアを形成する。上で説明されたように、リング共振器2222の共振波長は、符号付きの結果を得るために主要/反対称信号を単調に減少/増大させるように調整され得る。リングが完全に共振から外れているとき、パワーのすべてが第1の出力ポートから経路2224を通って出てくるが、何らかの他のパラメータ(たとえば、品質係数および結合係数)が適切に調整されていることにより、リングが完全に共振しているとき、パワーのすべてが第2の出力ポートから経路2228を通って出てくる。具体的には、完全なパワーの伝達を達成するには、導波管とリング共振器との間の結合効率を特徴付ける結合係数が合わされるべきである。いくつかの実装形態では、比較的浅い同調曲線を有することが有用であり、これは、(たとえば、損失を増やすことによって)リング共振器2222の品質係数を下げ、それに対応してリングに入るところおよびリングから出てくるところの結合係数を上げることによって達成され得る。浅い同調曲線は、共振波長に対する振幅の影響を少なくする。温度制御などの技法も、共振波長の調整および/または安定性のために使用され得る。
【０５７２】
図22Dは、別のタイプの1×2光振幅変調器の対称差動構成2230の別の例を示す。この例では、1×2光振幅変調器は、2つのリング共振器2232および2234を含む。入力ポート2231における光信号の光パワーは2つのポートに分割される。光信号の波長がリング共振器2232と2234の両方と関連付けられる共振波長に近いとき、パワーが低減された光波が経路2236を通って第1の出力ポートに出てくる。光波のある部分は、時計回りの経路2238上でリングの周りを循環するリング共振器2232にも結合され、反時計回りの経路2240上でリングの周りを循環するリング共振器2234にも結合される。別の光波が経路2242を通って第2の出力ポートから出てくるように、循環する光波は次いで、リングから出てくるところで結合される。光検出器2212によって検出される光波および光検出器2214によって検出される光波は、この例では主要ペアおよび反対称ペアも形成する。
【０５７３】
図23Aおよび図23Bは、2×2の要素の行列に対してベクトル行列乗算を実行するためのシステム1800の実装形態に対する、1×2光振幅変調器2200などの光振幅変調器の使用の異なる例を示す。図23Aは、入力ベクトルの符号付きベクトル要素を表す値を提供する光振幅変調器2302Aおよび2302Bを含む、光電子システム構成2300Aの例を示す。変調器2302Aは、第1の符号付きベクトル要素に対する値
【数７１】
2021527287.tif 000073
のペアを符号化する光信号のペアを提供し、変調器2302Bは、第2の符号付きベクトル要素に対する値
【数７２】
2021527287.tif 000074
のペアを符号化する光信号のペアを提供する。ベクトル行列乗算器(VMM)サブシステム610Aは、入力光信号を受信し、上で説明されたような分割演算、乗算演算、および加算演算の一部を実行し、追加の回路によって処理されることになる出力電流信号を提供する。いくつかの例では、出力電流信号は、出力ベクトルの符号付きベクトル要素をもたらす最終的な合計を生み出すようにさらに処理される、部分的な合計を表す。この例では、最終的な加算演算の一部は、オペアンプ2306Aおよび2306Bの反転端子および非反転端子において電流信号により表される異なる部分和間の減算として実行される。この減算は、(たとえば図21Bを参照して)上で説明されたように、符号付きの値を提供するために使用される。この例は、いくつかの要素がどのように複数のモジュールの部分であり得るかも示す。具体的には、導波管分割器2303によって実行される光複製は、複製モジュール(たとえば、図21Bの複製モジュール2112のうちの1つ)の一部および乗算モジュール(たとえば、図21Bの乗算モジュール1904のうちの1つ)の一部であると見なされ得る。VMMサブシステム2310A内で使用される光振幅変調器は、図20Bに示される共通端子構成における検出のために構成される。
【０５７４】
図23Bは、図23Aに示される光電子システム構成2300Aの例と同様の、光電子システム構成2300Bの例を示す。しかし、VMMサブシステム2310Bは、図20Cに示される差動端子構成における検出のために構成される光変調器を含む。この例では、VMMサブシステム2310Bの出力電流信号は、出力ベクトルの符号付きベクトル要素をもたらす最終的な合計を生み出すようにさらに処理される、部分和も表す。オペアンプ2306Aおよび2306Bの反転端子および非反転端子において電流信号によって表される異なる部分和間の減算として実行される最終的な加算演算は、図23Aの例とは異なる。しかし、最終的な減算はそれでも、(たとえば、図21Bを参照して)上で説明されたように、符号付きの値の提供をもたらす。
【０５７５】
図23Cは、図23Aに示されるVVMサブシステム2310Aにおけるような、共通端子構成での検出を伴うVVMサブシステム2310Cの代替的な構成を使用する光電子システム構成2300Cの例を示すが、乗算モジュールの結果を搬送する光信号は、光信号を電気信号に変換するようになされる検出器を含む基板の一部分へ、導波管内で(たとえば、半導体基板の中で)システムを通ってルーティングされる。いくつかの実施形態では、検出器のこのグルーピングは、電気的経路の短縮を可能にし、そうされなければ使用されるであろう長い電気的経路による電気的なクロストークまたは他の障害を減らす可能性がある。光導波管は、基板の2次元においては交差するが(基板の深さ方向の)第3の次元においては交差しないルーティング経路のさらなるフレキシビリティを可能にするように、基板の1つの層内でルーティングされ、または基板の複数の層内でルーティングされ得る。VMMサブシステムにどのコンポーネントが含まれるかの変更を含む、種々の他の変更がシステム構成において行われ得る。たとえば、光振幅変調器2302Aおよび2302Bは、VMMサブシステムの部分として含まれ得る。代替的に、VMMサブシステムは、光振幅変調器以外のモジュールによって生成される対になっている主要光信号および反対称光信号を受信するための、または他の種類のサブシステムとインターフェースするための、光入力ポートを含み得る。
【０５７６】
図24Aは、乗算モジュール(たとえば、乗算モジュール1806A、1806B、1806C、および1806D)の異なる1つをホストする複数のデバイス2410がある、システム1800の実装形態のシステム構成2400Aの例を示し、これらの乗算モジュールは、より大きい行列の異なる部分行列による、ベクトル要素の異なるサブセットに対するベクトル行列乗算を実行するように、VMMサブシステムとして各々構成される。たとえば、各乗算モジュールは、システム構成2110(図21B)と同様に構成され得るが、2×2要素の行列を使用してVMMサブシステムを実装する代わりに、各乗算モジュールは、デバイス内のモジュールのための共通基板を有する単一のデバイス上で効率的に製造され得るようなサイズを有する行列を使用してVMMサブシステムを実装するように構成され得る。たとえば、各乗算モジュールは、64×64要素の行列を使用してVMMサブシステムを実装し得る。
【０５７７】
異なるVMMサブシステムは、各部分行列の結果がより大きい組み合わされた行列に対する結果(たとえば、128×128要素の行列による乗算から得られる128要素のベクトルの要素)を生み出すように各部分行列の結果が適切に組み合わされるようになされる。光ポートまたは光源2402の各セットは、より大きい入力ベクトルのベクトル要素の異なるサブセットを表す光信号のセットを提供する。複製モジュール2404は、64個の光導波管のセット2403において導かれる光波上に符号化される光信号の受信されたセット内の光信号のすべてを複製し、光導波管の2つの異なるセットの各々に光信号のそのセットを提供するように構成され、それらのセットはこの例では、64個の光導波管のセット2405Aおよび64個の光導波管のセット2405Bである。この複製演算は、たとえば、導波管分割器の列を使用することによって実行されてもよく、列の中の各分割器は、光導波管のセット2403の中の光波を光導波管のセット2405Aの中の第1の対応する光波および光導波管のセット2405Bの中の第2の対応する光波へと分割することによって、入力ベクトル要素のサブセット(たとえば、各複製モジュール2404に対する64個の要素のサブセット)の要素のうちの1つを複製する。いくつかの実施形態において複数の波長が使用される場合(たとえば、W個の波長)、別々の導波管の数(およびしたがって、2402における別個のポートまたは源の数)を、たとえば、1/Wに減らすことができる。各VMMサブシステムデバイス2410は、ベクトル行列乗算を実行し、その部分的な結果を(出力ベクトルの要素のサブセットのための)電気信号のセットとして提供し、異なるデバイス2410からの対応する部分的な結果のペアは、導体間の交点における電流加算などの、本明細書で説明される技法のいずれかを使用して、図24Aに示されるような加算モジュール2414によって一緒に加算される。いくつかの実装形態では、所望の行列を使用するベクトル行列乗算は、より小さい部分行列からの結果を組み合わせ、任意の数の再帰レベルに対して、ルート再帰レベルにおける単一要素の光振幅変調器を使用することで終了することによって、再帰的に実行され得る。異なる再帰レベルにおいて、VMMサブシステムデバイスは、より小型であってもよい(たとえば、異なるデータセンターがあるレベルにおいて長距離の光ファイバーネットワークによって接続され、異なるマルチチップデバイスが別のレベルにおいてデータセンター内で光ファイバによって接続され、デバイス内の異なるチップが別のレベルにおいて光ファイバによって接続され、同じチップ上のモジュールの異なるセクションが別のレベルにおいてオンチップ導波管によって接続される)。
【０５７８】
図24Bは、各VMMサブシステム2410に対する光送信および受信のために追加のデバイスが使用される、システム構成2400Bの別の例を示す。各VMMサブシステム2410の出力において、光送信機の列2420が、光送信線(たとえば、別個のデバイスによってホストされ得る、および/もしくは離れた位置に分散され得る、VMMサブシステム2410間のファイバ束の中のある光ファイバ、または、共通基板上でVMMサブシステム2410をホストする、SoCなどの集積デバイス上の導波管のセットの中のある導波管)内のチャネルに各光信号を結合するために使用される。光受信機の列2422は、部分的な結果の対応するペアが加算モジュール2414によって加算される前に、光信号を電気信号に変換するために出力ベクトル要素の各サブセットのために使用される。
【０５７９】
図24Cは、異なる部分行列に対する異なるベクトル行列乗算が異なる方法で再編成されることを可能にするようにVMMサブシステム2410が再構成され得る、システム構成2400Cの別の例を示す。たとえば、異なる部分行列を組み合わせることによって形成されるより大きい行列の形状は、構成可能であり得る。この例では、光信号の2つの異なるサブセットは、光ポートまたは光源2402の各セットから光スイッチ2430に提供される。加算モジュール2414によって加算されることになる部分的な結果を表す電気信号のサブセットを再編成して、所望の計算のための出力ベクトルまたは複数の別個の出力ベクトルを提供することが可能な、電気スイッチ2440もある。たとえば、サイズm×nの4つの部分行列からなるサイズ2m×2nの行列を使用したベクトル行列乗算の代わりに、VMMサブシステム2410は、サイズ2m×nの行列およびサイズm×2nの行列を使用するように再編成され得る。
【０５８０】
図24Dは、VMMサブシステム2410が様々な方法で再構成され得る、システム構成2400Dの別の例を示す。光スイッチ2430は、光信号の最大で4つの別個のセットを受信することができ、光信号の異なるセットを異なるVMMサブシステム2410に提供するように、または光信号のセットのいずれをも複数のVMMサブシステム2410に複製するように構成され得る。また、電気スイッチ2440は、受信された電気信号のセットの任意の組合せを加算モジュール2414に提供するように構成され得る。このより大きい再構成可能性は、サイズm×3n、3m×n、m×4n、4m×nの行列を使用した乗算を含む、より多様な異なるベクトル行列乗算計算を可能にする。
【０５８１】
図24Eは、人工ニューラルネットワークまたは他の形式の機械学習などの、計算技法を実装するためにシステム構成2400Eが(たとえば、完全な光電子コンピューティングシステムのために、またはより大きいコンピューティングプラットフォームの光電子サブシステムのために)使用されることを可能にするために、様々な演算(たとえば、デジタル論理演算)を実行できる追加の回路を含む、システム構成2400Eの別の例を示す。データ記憶サブシステム2450は、揮発性記憶媒体(たとえば、SRAMおよび/またはDRAM)および/または不揮発性記憶媒体(たとえば、ソリッドステートドライブおよび/またはハードドライブ)を含み得る。データ記憶サブシステム2450は、階層キャッシュモジュールも含み得る。記憶されるデータは、たとえば、訓練データ、中間結果データ、またはオンライン計算システムに供給するために使用される産物データを含み得る。データ記憶サブシステム2450は、光ポートまたは光源2402によって提供される異なる光信号への変調のために入力データへの同時アクセスを提供するように構成され得る。デジタル形式で記憶されているデータを、変調に使用できるアナログ形式に変換することは、データ記憶サブシステム2450の出力に含まれる、または光ポートもしくは光源2402の入力に含まれる、またはそれら両方に分割されている、回路(たとえば、デジタルアナログコンバータ)によって実行され得る。補助処理サブシステム2460は、VMMサブシステム2410を使用したベクトル行列乗算の複数の反復を通じて繰り返され得る、データに対する補助演算(たとえば、非線形演算、データシャッフルなど)を実行するように構成され得る。それらの補助演算からの結果データ2462は、デジタル形式でデータ記憶サブシステム2450に送信され得る。データ記憶サブシステム2450によって取り出されるデータは、光信号を適切な入力ベクトルで変調するために、および、VMMサブシステム2410の中の光振幅変調器の変調レベルを設定するために使用される制御信号(図示せず)を提供するために使用され得る。アナログ形式の電気信号上に符号化されるデータをデジタル形式に変換することは、補助処理サブシステム2460内の回路(たとえば、アナログデジタルコンバータ)によって実行され得る。
【０５８２】
いくつかの実装形態では、デジタルコントローラ(図に示されない)が、データ記憶サブシステム2450、階層キャッシュモジュール、デジタルアナログコンバータおよびアナログデジタルコンバータなどの様々な回路、VMMサブシステム2410、ならびに光源2402の動作を制御するために提供される。たとえば、デジタルコントローラは、いくつかの隠れ層を有するニューラルネットワークを実装するためのプログラムコードを実行するように構成される。デジタルコントローラは、ニューラルネットワークの様々な層と関連付けられる行列処理を繰り返し実行する。デジタルコントローラは、データ記憶サブシステム2450から第1の行列データを取り出し、取り出されたデータに基づいてVMMサブシステム2410の中の光振幅変調器の変調レベルを設定することによって、行列処理の第1の反復を実行し、第1の行列データはニューラルネットワークの第1の層の係数を表す。デジタルコントローラは、データ記憶サブシステムから入力データのセットを取り出し、光源2402の変調レベルを設定して第1の入力ベクトルの要素を表す光入力信号のセットを生み出す。
【０５８３】
VMMサブシステム2410は、第1の入力ベクトルおよび第1の行列データに基づいて行列処理を実行し、これはニューラルネットワークの第1の層による信号の処理を表す。補助処理サブシステム2450が結果データ2462の第1のセットを生み出した後で、デジタルコントローラは、ニューラルネットワークの第2の層の係数を表すデータ記憶サブシステムからの第2の行列データを取り出し、第2の行列データに基づいてVMMサブシステム2410の中の光振幅変調器の変調レベルを設定することによって、行列処理の第2の反復を実行する。結果データ2462の第1のセットは、光源2402の変調レベルを設定するために第2の入力ベクトルとして使用される。VMMサブシステム2410は、第2の入力ベクトルおよび第2の行列データに基づいて行列処理を実行し、これはニューラルネットワークの第2の層による信号の処理を表す、などである。最後の反復において、ニューラルネットワークの最後の層による信号の処理の出力が生み出される。
【０５８４】
いくつかの実装形態では、ニューラルネットワークの隠れ層と関連付けられる計算を実行するとき、結果データ2462は、データ記憶サブシステム2450に送信されず、VMMサブシステム2410の中の光振幅変調器の変調レベルを設定するための制御信号を生み出すデジタルアナログコンバータを直接制御するためにデジタルコントローラによって使用される。これは、データ記憶サブシステム2450にデータを記憶し、それからのデータにアクセスするのに必要な時間を減らす。
【０５８５】
他の処理技法が、システム構成の他の例に組み込まれ得る。たとえば、他の種類のベクトル行列乗算サブシステム(たとえば、本明細書で説明される電気的な加算または符号付きの乗算を伴わない光干渉を使用するサブシステム)とともに使用される様々な技法が、参照によって本明細書に組み込まれる米国特許出願公開第2017/0351293号において説明される技法のいくつかなどの、いくつかのシステム構成に組み込まれ得る。
【０５８６】
図32Aを参照すると、人工ニューラルネットワーク(ANN)計算システム3200は、行列計算を実行する際に非コヒーレントまたは低コヒーレント光信号を処理することを可能にするための、たとえば図18から図24Dに示される複製モジュール、乗算モジュール、および加算モジュールを有する、光電子行列乗算ユニット3220を含む。人工ニューラルネットワーク計算システム3200は、図1Aのシステム100と同様の、コントローラ110、メモリユニット120、DACユニット130、およびADCユニット160を含む。コントローラ110は、図1Aにおいて示されるものと同様に、コンピュータ102から要求を受信し、計算出力をコンピュータ102に送信する。
【０５８７】
光プロセッサ3210は光源3230を含み、光源3230は、レーザーユニット3230の複数の出力信号がコヒーレントである図1Aのレーザーユニット142と同様であり得る。光源3230はまた、発光ダイオードを使用して、コヒーレントではない、またはコヒーレント性の低い複数の出力信号を生み出すことができる。光電子行列乗算ユニット3220は、図1Aの光プロセッサ140によって実行された動作と同様に、第1のDACサブユニット132によって入力ベクトルに基づいて生成される変調器制御信号を受信する変調器の列144を含む。変調器の列144の出力は、図18の光ポート/光源1802の出力と同等である。光電子行列乗算ユニット3220は、複製モジュール1804、乗算モジュール1806、および加算モジュール1808が図18の光ポート/光源1802からの光信号を処理するのと同様の方式で、変調器の列144からの光信号を処理する。
【０５８８】
図32Bを参照すると、光電子行列乗算ユニット3220は、入力ベクトル
【数７３】
2021527287.tif 000075
を受信し、入力ベクトルを行列
【数７４】
2021527287.tif 000076
と乗算して、出力ベクトル
【数７５】
2021527287.tif 000077
を生み出す。
【０５８９】
光電子行列乗算ユニット3220は、入力ベクトルを表す光信号を搬送するm個の光経路1803_1、1803_2、…、1803_m(まとめて1803と呼ばれる)を含む。複製モジュール1804_1は、入力光信号v1の複製を乗算モジュール1806_11、1806_21、…、1806_m1に提供する。複製モジュール1804_2は、入力光信号v2の複製を乗算モジュール1806_12、1806_22、…、1806_m2に提供する。複製モジュール1804_nは、入力光信号vnの複製を乗算モジュール1806_1n、1806_2n、…、1806_mnに提供する。
【０５９０】
上で論じられたように、複製モジュール1804_1によって提供される光信号v1の複製の振幅は、互いに対して同じ(または実質的に同じ)であるが、変調器の列144によって提供される光信号v1の振幅とは異なる。たとえば、複製モジュール1804_1が変調器の列144によって提供されるv1の信号パワーをm個の信号に均等に分割する場合、m個の信号の各々は、変調器の列144によって提供されるv1のパワーの1/m以下のパワーを有する。
【０５９１】
乗算モジュール1806_11は、入力信号v1を行列要素M11と乗算してM11・v1を生み出す。乗算モジュール1806_21は、入力信号v1を行列要素M21と乗算してM21・v1を生み出す。乗算モジュール1806_m1は、入力信号v1を行列要素Mm1と乗算してMm1・v1を生み出す。乗算モジュール1806_12は、入力信号v2を行列要素M12と乗算してM12・v2を生み出す。乗算モジュール1806_22は、入力信号v2を行列要素M22と乗算してM22・v2を生み出す。乗算モジュール1806_m2は、入力信号v2を行列要素Mm2と乗算してMN2・v2を生み出す。乗算モジュール1806_1nは、入力信号vnを行列要素M1nと乗算してM1n・vnを生み出す。乗算モジュール1806_2nは、入力信号vnを行列要素M2nと乗算してM2n・v2を生み出す。乗算モジュール1806_mnは、入力信号vnを行列要素Mmnと乗算してMmn・vnを生み出す、などである。
【０５９２】
第2のDACサブユニット134は、行列要素の値に基づいて制御信号を生成し、
乗算モジュール1806が、たとえば光振幅変調を使用することによって行列要素の値と入力ベクトル要素の値を乗算することを可能にするために、制御信号を乗算モジュール1806に送信する。たとえば、乗算モジュール1806_11は光振幅変調器を含んでもよく、入力ベクトル要素v1を行列要素M11と乗算することは、入力ベクトル要素v1を表す入力光信号に適用される振幅変調レベルとして、行列要素M11の値を符号化することによって達成され得る。
【０５９３】
加算モジュール1808_1は、乗算モジュール1806_11、1806_12、…、1806_1nの出力を受信し、M11v1+M12v2+…+M1nvnに等しい合計y1を生成する。加算モジュール1808_2は、乗算モジュール1806_21、1806_22、…、1806_2nの出力を受信し、M21v1+M22v2+…+M2nvnに等しい合計y2を生成する。加算モジュール1808_nは、乗算モジュール1806_m1、1806_m2、…、1806_mnの出力を受信し、Mm1v1+Mm2v2+…+Mmnvnに等しい合計ynを生成する。
システム3200において、光電子行列乗算ユニット3220の出力は、図1Aのシステム100の場合のように、検出ユニット146を通ることなくADCユニット160に提供される。これは、乗算モジュール1806または加算モジュール1808のいずれかがすでに光信号を電気信号に変換しているので、システム3200において別個の検出ユニット146が必要ではないからである。
【０５９４】
図33は、図32AのANN計算システム3200を使用してANN計算を実行するための方法3300の例のフローチャートを示す。処理3300のステップは、システム3200のコントローラ110によって実行され得る。いくつかの実装形態では、方法3300の様々なステップは、並列に、組み合わせで、ループで、または任意の順序で行われ得る。
【０５９５】
3310において、入力データセットおよび第1の複数のニューラルネットワーク重みを備える人工ニューラルネットワーク(ANN)計算要求が受信される。入力データセットは第1のデジタル入力ベクトルを含む。第1のデジタル入力ベクトルは入力データセットのサブセットである。たとえば、それは画像の部分領域であり得る。ANN計算要求は、図32Aのコンピュータ102などの様々なエンティティによって生成され得る。コンピュータ102は、パーソナルコンピュータ、サーバコンピュータ、車両コンピュータ、およびフライトコンピュータなどの、様々なタイプのコンピューティングデバイスのうちの1つまたは複数を含み得る。ANN計算要求は一般に、実行されるべきANN計算をANN計算システム3300に通知する、または知らせる電気信号を指す。いくつかの実装形態では、ANN計算要求は、2つ以上の信号に分割され得る。たとえば、第1の信号は、システム3300が入力データセットおよび第1の複数のニューラルネットワーク重みを受信する準備ができているかどうかを確認するために、ANN計算システム330に問い合わせ得る。システム3300による肯定的な応答に応じて、コンピュータ102は、入力データセットおよび第1の複数のニューラルネットワーク重みを含む第2の信号を送信し得る。
【０５９６】
3320において、入力データセットおよび第1の複数のニューラルネットワーク重みが記憶される。コントローラ110は、入力データセットおよび第1の複数のニューラルネットワーク重みをメモリユニット120に記憶し得る。メモリユニット120への入力データセットおよび第1の複数のニューラルネットワーク重みの記憶は、ANN計算システム3300の動作のフレキシビリティを可能にすることがあり、これは、たとえばシステムの全体の性能を高めることができる。たとえば、入力データセットは、メモリユニット120から入力データセットの所望の部分を取り出すことによって、設定されたサイズおよびフォーマットのデジタル入力ベクトルに分割され得る。入力データセットの異なる部分は、様々なタイプのANN計算が実行されることを可能にするために、様々な順序で処理され、またはシャッフルされ得る。たとえば、シャッフルすることで、入力と出力の行列のサイズが異なる場合に、ブロック行列乗算技法による行列乗算が可能になり得る。別の例として、メモリユニット120への入力データセットおよび第1の複数のニューラルネットワーク重みの記憶は、ANN計算システム3300による複数のANN計算要求の待ち行列作成を可能にすることがあり、これは、システム3300が不活動の期間なしで最高の速度での動作を維持することを可能にし得る。
【０５９７】
いくつかの実装形態では、入力データセットは第1のメモリサブユニットに記憶されてもよく、第1の複数のニューラルネットワーク重みは第2のメモリサブユニットに記憶されてもよい。
【０５９８】
3330において、第1の複数の変調器制御信号は第1のデジタル入力ベクトルに基づいて生成され、第1の複数の重み制御信号は第1の複数のニューラルネットワーク重みに基づいて生成される。コントローラ110は、第1の複数の変調器制御信号を生成するためのDACユニット130に第1のDAC制御信号を送信し得る。DACユニット130は、第1のDAC制御信号に基づいて第1の複数の変調器制御信号を生成し、変調器の列144は、第1のデジタル入力ベクトルを表す光入力ベクトルを生成する。
【０５９９】
第1のDAC制御信号は、第1の複数の変調器制御信号へとDACユニット130によって変換されるべき複数のデジタル値を含み得る。複数のデジタル値は一般に、第1のデジタル入力ベクトルに従い、様々な数学的な関係またはルックアップテーブルを通じて関連付けられ得る。たとえば、複数のデジタル値は、第1のデジタル入力ベクトルの要素の値と線形に比例し得る。別の例として、複数のデジタル値は、デジタル入力ベクトルと変調器の列144によって生成される光入力ベクトルとの間に線形の関係を維持するように構成されるルックアップテーブルを通じて、第1のデジタル入力ベクトルの要素に関連付けられ得る。
【０６００】
コントローラ110は、第1の複数の重み制御信号を生成するためのDACユニット130に第2のDAC制御信号を送信し得る。DACユニット130は、第2のDAC制御信号に基づいて第1の複数の重み制御信号を生成し、光電子行列乗算ユニット3220は、第1の複数の重み制御信号に従って再構成され、第1の複数のニューラルネットワーク重みに対応する行列を実装する。
【０６０１】
第2のDAC制御信号は、第1の複数の重み制御信号へとDACユニット130によって変換されるべき複数のデジタル値を含み得る。複数のデジタル値は一般に、第1の複数のニューラルネットワーク重みに従い、様々な数学的な関係またはルックアップテーブルを通じて関連付けられ得る。たとえば、複数のデジタル値は、第1の複数のニューラルネットワーク重みに線形に比例し得る。別の例として、複数のデジタル値は、第1の複数のニューラルネットワーク重みに対応する行列乗算を実行するように光電子行列乗算ユニット3220を構成することができる重み制御信号を生成するために、第1の複数のニューラルネットワーク重みに対して様々な数学的演算を実行することによって、計算され得る。
【０６０２】
3340において、光電子行列乗算ユニット3220の電子出力ベクトルに対応する第1の複数のデジタル化された出力が取得される。変調器の列144によって生成される光入力ベクトルは、光電子行列乗算ユニット3220によって処理され、電気出力ベクトルに変換される。電気出力ベクトルは、ADCユニット160によってデジタル化された値に変換される。コントローラ110は、たとえば、デジタル化された出力への光電子行列乗算ユニット3220により出力された電圧の変換を開始するために、変換要求をADCユニット160に送信し得る。変換が完了すると、ADCユニット160は変換の結果をコントローラ110に送信し得る。代替的に、コントローラ110は、ADCユニット160から変換の結果を取り出し得る。コントローラ110は、デジタル化された出力から、入力デジタルベクトルの行列乗算の結果に対応するデジタル出力ベクトルを形成し得る。たとえば、デジタル化された出力は、ベクトルフォーマットを有するように編成され、または連結され得る。
【０６０３】
いくつかの実装形態では、ADCユニット160は、コントローラ110によってDACユニット130に出されるDAC制御信号に基づいて、ADC変換を実行するように設定または制御され得る。たとえば、ADC変換は、DACユニット130による変調制御信号の生成からあるあらかじめ設定された時間後に開始するように設定され得る。ADC変換のそのような制御は、コントローラ110の動作を簡単にし、必要な制御動作の数を減らすことができる。
【０６０４】
3350において、非線形変換が、第1の変換されたデジタル出力ベクトルを生成するように第1のデジタル出力ベクトルに対して実行される。ANNのノードまたは人工ニューロンは、前の層のノードから受信された信号の加重和をまず実行して、次いで、加重和の非線形変換(「活性化」)を実行して出力を生成することによって動作する。様々なタイプのANNには、様々なタイプの区別可能な非線形変換を実施し得る。非線形伝達関数の例には、正規化線形ユニット(RELU)関数、シグモイド関数、双曲線正接関数、X^2関数、および|X|関数がある。そのような非線形変換は、第1の変換されたデジタル出力ベクトルを生成するために、コントローラ110によって第1のデジタル出力に対して実行される。いくつかの実装形態では、非線形変換は、コントローラ110内の特別なデジタル集積回路によって実行され得る。たとえば、コントローラ110は、1つまたは複数のタイプの非線形変換の計算を加速するように特に適合された、1つまたは複数のモジュールまたは回路ブロックを含み得る。
【０６０５】
3360において、第1の変換されたデジタル出力ベクトルが記憶される。コントローラ110は、メモリユニット120に第1の変換されたデジタル出力ベクトルを記憶し得る。入力データセットが複数のデジタル入力ベクトルに分割される場合、第1の変換されたデジタル出力ベクトルは、第1のデジタル入力ベクトルなどの、入力データセットの一部分のANN計算の結果に対応する。したがって、第1の変換されたデジタル出力ベクトルの記憶は、ANN計算システム3200が、単一のANN出力へと後で集約されることになる入力データセットの他のデジタル入力ベクトルに対する追加の計算を実行して記憶することを可能にする。
【０６０６】
3370において、第1の変換されたデジタル出力ベクトルに基づいて生成された人工ニューラルネットワーク出力が出力される。コントローラ110はANN出力を生成し、ANN出力は、第1の複数のニューラルネットワーク重みによって定義されるANNを通じて入力データセットを処理した結果である。入力データセットが複数のデジタル入力ベクトルに分割される場合、生成されるANN出力は、第1の変換されたデジタル出力を含む集約された出力であるが、さらに、入力データセットの他の部分に対応する追加の変換されたデジタル出力を含み得る。ANN出力が生成されると、生成された出力は、ANN計算要求を出したコンピュータ102などのコンピュータに送信される。
【０６０７】
様々な性能尺度が、方法3300を実施するANN計算システム3200のために定義され得る。性能尺度を定義することは、光電子プロセッサ3210を実装するANN計算システム3200の性能と、電子行列乗算ユニットを代わりに実装するANN計算のための他のシステムの性能との比較を可能にし得る。一態様では、ANN計算が実行され得るレートは、メモリユニットに入力データセットおよび第1の複数のニューラルネットワーク重みを記憶するステップ3320と、メモリユニットに第1の変換されたデジタル出力ベクトルを記憶するステップ3360との間に経過した時間として定義される第1のループ期間によって、一部が示され得る。したがって、この第1のループ期間は、電気信号を光信号に変換し(たとえば、ステップ3330)、光領域および電気領域において行列乗算を実行する(たとえば、ステップ3340)のにかかる時間を含む。ステップ3320および3360はともに、メモリユニット120へのデータの記憶を伴い、これらは、ANN計算システム3200と光電子プロセッサ3210を伴わない従来のANN計算システムとの間で共通のステップである。したがって、メモリ間のトランザクション時間を測る第1のループ期間は、ANN計算スループットの現実的なまたは公平な比較が、ANN計算システム3200と、電子行列乗算ユニットを実装するシステムなどの光電子プロセッサ3210を伴わないANN計算システムとの間で行われることを可能にし得る。
【０６０８】
光入力ベクトルが変調器の列144によって生成され得るレート(たとえば、25GHz)および光電子行列乗算ユニット3220の処理レート(たとえば、>25GHz)により、単一のデジタル入力ベクトルの単一のANN計算を実行するためのANN計算システム3300の第1のループ期間は、変調器の列144の速度の逆数、たとえば40psに近づき得る。DACユニット130による信号生成およびADCユニット160によるADC変換と関連付けられるレイテンシを考慮した後、第1のループ期間は、たとえば、100ps以下、200ps以下、500ps以下、1ns以下、2ns以下、5ns以下、または10ns以下であり得る。
【０６０９】
比較として、電子行列乗算ユニットによるM×1ベクトルとM×M行列の乗算の実行時間は、通常はM^2-1回のプロセッサクロックサイクルに比例する。M=32の場合、そのような乗算には約1024サイクルかかり、これは3GHzのクロック速度では、300nsを超える実行時間となり、ANN計算システム3300の第1のループ期間よりも数桁遅い。
【０６１０】
いくつかの実装形態では、方法3300はさらに、第1の変換されたデジタル出力ベクトルに基づいて第2の複数の変調器制御信号を生成するステップを含む。いくつかのタイプのANN計算では、単一のデジタル入力ベクトルが、同じANNを通って繰り返し伝搬され、または同じANNによって処理され得る。前に論じられたように、マルチパス処理を実装するANNは、再帰型ニューラルネットワーク(RNN)と呼ばれ得る。RNNは、ニューラルネットワークを通る第kのパスの間のネットワークの出力が、ニューラルネットワークの入力に再循環されて第k+1のパスの間に入力として使用されるような、ニューラルネットワークである。RNNは、発話認識または筆跡認識などの、パターン認識タスクにおいて様々な用途があり得る。第2の複数の変調器制御信号が生成されると、方法3300は、ステップ3340からステップ3360に進み、ANNを通じた第1のデジタル入力ベクトルの第2のパスを完了し得る。一般に、変換されたデジタル出力をデジタル入力ベクトルとなるように再循環することは、ANN計算要求において受信されたRNNの特性に応じたあらかじめ設定された回数のサイクルの間繰り返され得る。
【０６１１】
いくつかの実装形態では、方法3300はさらに、第2の複数のニューラルネットワーク重みに基づいて第2の複数の重み制御信号を生成するステップを含む。いくつかの場合、人工ニューラルネットワーク計算要求はさらに、第2の複数のニューラルネットワーク重みを含む。前に述べられたように、一般に、ANNは、入力層および出力層に加えて、1つまたは複数の隠れ層を有する。2つの隠れ層を伴うANNでは、第2の複数のニューラルネットワーク重みは、たとえば、ANNの第1の層とANNの第2の層との間の接続性に対応し得る。ANNの2つの隠れ層を通じて第1のデジタル入力ベクトルを処理するために、第1のデジタル入力ベクトルはまず、方法3300に従ってステップ3360まで処理されてもよく、ステップ3360において、ANNの第1の隠れ層を通じて第1のデジタル入力ベクトルを処理した結果がメモリ120に記憶される。コントローラ110は次いで、ANNの第2の隠れ層と関連付けられる第2の複数のニューラルネットワーク重みに対応する行列乗算を実行するように光電子行列乗算ユニット3220を再構成する。光電子行列乗算ユニット3220が再構成されると、方法3300は、第1の変換されたデジタル出力ベクトルに基づいて複数の変調器制御信号を生成することができ、これにより、第1の隠れ層の出力に対応する更新された光入力ベクトルが生成される。更新された光入力ベクトルは次いで、ANNの第2の隠れ層に対応する再構成された光電子行列乗算ユニット3220によって処理される。一般に、説明されるステップは、デジタル入力ベクトルがANNのすべての隠れ層を通じて処理されるまで繰り返され得る。
【０６１２】
光電子行列乗算ユニット3220のいくつかの実装形態では、光電子行列乗算ユニット3220の再構成レートは、変調器の列144の変調レートよりもはるかに遅いことがある。そのような場合、ANN計算システム3200のスループットは、ANN計算をその間は実行できない、光電子行列乗算ユニット3220を再構成するのにかかる時間の長さにより、悪い影響を受けることがある。光電子行列乗算ユニット3220の比較的遅い再構成時間の影響を軽減するために、多数のデジタル入力ベクトルにわたり再構成時間を償却するための構成変更なしで2つ以上のデジタル入力ベクトルが光電子行列乗算ユニット3220を通じて伝播される、バッチ処理技法が利用され得る。
【０６１３】
図34は、図33の方法3300の態様を示す図3290を示す。2つの隠れ層を伴うANNでは、第1の隠れ層を通じて第1のデジタル入力ベクトルを処理し、第2の隠れ層のために光電子行列乗算ユニット3220を再構成し、再構成された光電子行列乗算ユニット3220を通じて第1のデジタル入力ベクトルを処理し、残りのデジタル入力ベクトルに対して同じことを繰り返す代わりに、入力データセットのすべてのデジタル入力ベクトルがまず、図3290の上側部分に示されるように、第1の隠れ層のために構成される光電子行列乗算ユニット3220(構成#1)を通じて処理され得る。すべてのデジタル入力ベクトルが構成#1を有する光電子行列乗算ユニット3220によって処理されると、光電子行列乗算ユニット3220は構成#2へと再構成され、これはANNの第2の隠れ層に相当する。この再構成は、光電子行列乗算ユニット3220によって入力ベクトルが処理され得るレートよりもはるかに遅いことがある。光電子行列乗算ユニット3220が第2の隠れ層のために再構成されると、前の隠れ層からの出力ベクトルは、バッチで光電子行列乗算ユニット3220によって処理され得る。数万個または数十万個のデジタル入力ベクトルを有する大きい入力データセットに対しては、再構成時間の影響は、ほぼ同じ係数により低減されることがあり、これは、再構成においてANN計算システム3200により費やされる時間の部分をかなり減らすことがある。
【０６１４】
バッチ処理を実施するために、いくつかの実装形態では、方法3300はさらに、DACユニットを通じて、第2のデジタル入力ベクトルに基づいて第2の複数の変調器制御信号を生成するステップと、ADCユニットから、光電子行列乗算ユニットの出力ベクトルに対応する第2の複数のデジタル化された出力を取得するステップであって、第2の複数のデジタル化された出力が第2のデジタル出力ベクトルを形成する、ステップと、第2の変換されたデジタル出力ベクトルを生成するために第2のデジタル出力ベクトルに対して非線形変換を実行するステップと、メモリユニットに、第2の変換されたデジタル出力ベクトルを記憶するステップとを含む。第2の複数の変調器制御信号の生成は、たとえばステップ3360の後にあり得る。さらに、この場合のステップ3370のANN出力は今や、第1の変換されたデジタル出力ベクトルと第2の変換されたデジタル出力ベクトルの両方に基づく。取得するステップ、実行するステップ、および記憶するステップは、ステップ3340から3360と類似している。
【０６１５】
バッチ処理技法は、ANN計算システム3200のスループットを高めるためのいくつかの技法の1つである。ANN計算システム3200のスループットを高めるための別の技法は、波長分割多重化(WDM)を利用することによる複数のデジタル入力ベクトルの並列処理を通じたものである。前に論じられたように、WDMは、光電子行列乗算ユニット3220の導波管などの、共通の伝播チャネルを通じて異なる波長の複数の光信号を同時に伝播する技法である。電気信号とは異なり、異なる波長の光信号は、同じチャネル上の異なる波長の他の光信号に影響を及ぼすことなく、共通のチャネルを通じて伝播することができる。さらに、光信号は、光マルチプレクサおよびデマルチプレクサなどの、よく知られている構造を使用して共通の伝播チャネルから追加され(多重化され)、または除去される(逆多重化される)。
【０６１６】
ANN計算システム3200の文脈において、異なる波長の複数の光入力ベクトルは、独立に生成され、光経路および光電子行列乗算ユニット3220の光処理コンポーネント(たとえば、光振幅変調器)を通じて同時に伝播され、ANN計算システム3200のスループットを高めるために電子処理コンポーネント(たとえば、検出器および/または加算モジュール)によって独立に処理され得る。
【０６１７】
図35Aを参照すると、いくつかの実装形態では、波長分割多重化(WDM)人工ニューラルネットワーク(ANN)計算システム3500は、たとえば、行列計算を実行する際に非コヒーレントまたは低コヒーレント光信号を処理することを可能にするための、たとえば図18から図24Dに示される複製モジュール、乗算モジュール、および加算モジュールを有する、光電子行列乗算ユニット3520を含む光電子プロセッサ3510を含み、この行列計算において、光信号は複数の波長において符号化される。WDM ANN計算システム3500は、ANN計算システム3500のいくつかの実装形態では光源3230が図1Fのシステム104と同様にλ1、λ2、およびλ3などの複数の波長を生成するように構成されるようなWDM技法が使用されることを除き、ANN計算システム3200と同様である。
【０６１８】
複数の波長は好ましくは、共通の伝播チャネルへの簡単な多重化および逆多重化を可能にするのに十分大きい波長間隔によって離隔され得る。たとえば、0.5nm、1.0nm、2.0nm、3.0nm、または5.0nmよりも大きい波長間隔は、簡単な多重化および逆多重化を可能にし得る。一方、複数の波長の最短の波長と最長の波長の間の範囲(「WDM帯域幅」)は好ましくは、光電子行列乗算ユニット3520の特性または性能が実質的に複数の波長にわたって同じままであるように、十分小さいことがある。光コンポーネントは通常は分散性であり、これは、それらの光学的特性が波長に依存して変化することを意味する。たとえば、MZIのパワー分割比は波長にわたって変化し得る。しかしながら、十分に大きい動作波長区間を有するように光電子行列乗算ユニット3520を設計することによって、および、その動作波長区間内にあるように波長を制限することによって、各波長に対応する光電子行列乗算ユニット3520によって出力される出力電子ベクトルは、光電子行列乗算ユニット3520によって実施される行列乗算の十分に正確な結果であり得る。動作波長区間は、たとえば、1nm、2nm、3nm、4nm、5nm、10nm、または20nmであり得る。
【０６１９】
WDM ANN計算システム3500の変調器の列144は、複数の光入力ベクトルを生成するように構成される光変調器のバンクを含み、バンクの各々は、複数の波長のうちの1つに対応し、それぞれの波長を有するそれぞれの光入力ベクトルを生成する。たとえば、長さ32の光入力ベクトルおよび3つの波長(たとえば、λ1、λ2、およびλ3)を伴うシステムでは、変調器の列144は、各々32個の変調器の3つのバンクを有し得る。さらに、変調器の列144はまた、複数の光入力ベクトルを、複数の波長を含む組み合わされた光入力ベクトルへと組み合わせるように構成される、光マルチプレクサを含む。たとえば、光マルチプレクサは、3つの異なる波長における変調器の3つのバンクの出力を、光入力ベクトルの各要素のための、導波管などの単一の伝播チャネルへと組み合わせ得る。したがって、上の例に戻ると、組み合わされた光入力ベクトルは32個の光信号を有し、各信号は3つの波長を含む。
【０６２０】
WDM ANN計算システム3500の光電子処理コンポーネントはさらに、複数の波長を逆多重化し、複数の逆多重化された出力電気信号を生成するように構成される。図35Bを参照すると、光電子行列乗算ユニット3520は、複数の波長を含む組み合わされた光入力ベクトルを変調器の列144から受信するように構成される光経路1803を含む。たとえば、光経路1803_1は、波長λ1、λ2、およびλ3において組み合わされた光入力ベクトル要素v1を受け取る。波長λ1、λ2、およびλ3における光入力ベクトル要素v1の複製は、乗算モジュール3530_11、3530_21、…および3530_m1に提供される。乗算モジュール3530が電気信号を出力するいくつかの実装形態では、乗算モジュール3530_11は、波長λ1、λ2、およびλ3における入力ベクトル要素v1に対応するM11・v1を表す3つの電気信号を出力する。波長λ1、λ2、およびλ3における入力ベクトル要素v1に対応する乗算モジュール3530_11の出力電気信号は、それぞれ(λ1)、(λ2)、および(λ3)として示される。同様の表記は、他の乗算モジュールの出力に当てはまる。乗算モジュール3530_21は、波長λ1、λ2、およびλ3における入力ベクトル要素v1に対応するM21・v1をそれぞれ表す3つの電気信号を出力する。乗算モジュール3530_m1は、波長λ1、λ2、およびλ3における入力ベクトル要素v1に対応するMm1・v1を表す3つの電気信号を出力する。
【０６２１】
波長λ1、λ2、およびλ3における光入力ベクトル要素v2の複製は、乗算モジュール3530_12、3530_22、…、および3530_m2に提供される。乗算モジュール3530_12は、波長λ1、λ2、およびλ3における入力ベクトル要素v2に対応するM12・v2を表す3つの電気信号を出力する。乗算モジュール3530_22は、波長λ1、λ2、およびλ3における入力ベクトル要素v2に対応するM22・v2を表す3つの電気信号を出力する。乗算モジュール3530_m2は、波長λ1、λ2、およびλ3における入力ベクトル要素vmに対応するMm2・v2を表す3つの電気信号を出力する。
【０６２２】
波長λ1、λ2、およびλ3を含む光入力ベクトル要素vnの複製は、乗算モジュール3530_1n、3530_2n、…、および3530_mmに提供される。乗算モジュール3530_1nは、波長λ1、λ2、およびλ3における入力ベクトル要素vnに対応するM1n・vnを表す3つの電気信号を出力する。乗算モジュール3530_2nは、波長λ1、λ2、およびλ3における入力ベクトル要素vnに対応するM2n・vnを表す3つの電気信号を出力する。乗算モジュール3530_mnは、波長λ1、λ2、およびλ3における入力ベクトル要素vnに対応するMmn・vnを表す3つの電気信号を出力し、以下同様である。
【０６２３】
たとえば、乗算モジュール3530の各々は、複数波長の光ベクトルの32個の信号の各々に含まれる3つの波長を逆多重化し、3つの単一波長の光出力ベクトルを、オペアンプまたはトランスインピーダンスアンプ(たとえば、オペアンプ2030(図20B)または2050(図20C))の3つのバンクに結合された光検出器(たとえば、光検出器2012、2016(図20B)または2042、2046(図20C))の3つのバンクにルーティングするように構成されるデマルチプレクサを含み得る。
【０６２４】
加算モジュール1808のバンクは、乗算モジュール3530から出力を受信し、様々な波長において入力ベクトルに対応する合計yを生成する。たとえば、3つの加算モジュール1808_1は、乗算モジュール3530_11、3530_12、…、3530_1nの出力を受信し、波長λ1、λ2、およびλ3における入力ベクトル要素v1にそれぞれ対応する合計y1(λ1)、y1(λ2)、y1(λ3)を生成し、各波長において、合計y1は、M11v1+M12v2+…+M1nvnに等しい。3つの加算モジュール1808_2は、乗算モジュール3530_21、3530_22、…、3530_2nの出力を受信し、波長λ1、λ2、およびλ3における入力ベクトル要素v2にそれぞれ対応する合計y2(λ1)、y2(λ2)、y2(λ3)を生成し、各波長において、合計y2は、M21v1+M22v2+…+M2nvnに等しい。3つの加算モジュール1808_nは、乗算モジュール1806_m1、1806_m2、…、1806_m2の出力を受信し、波長λ1、λ2、およびλ3における入力ベクトル要素vnにそれぞれ対応する合計yn(λ1)、yn(λ2)、yn(λ3)を生成し、各波長において、合計ynは、Mm1v1+Mm2v2+…+Mmnvnに等しい。
【０６２５】
図35Aに戻ると、WDM ANN計算システム3500のADCユニット160は、光電子行列乗算ユニット3520の複数の逆多重化された出力電圧を変換するように構成されるADCのバンクを含む。バンクの各々は、複数の波長のうちの1つに対応し、それぞれのデジタル化された逆多重化された出力を生成する。たとえば、ADC160のバンクは、加算モジュール1808のバンクに結合され得る。
【０６２６】
コントローラ110は、方法3300(図33)と類似しているが複数波長の動作をサポートするように拡張された方法を実装し得る。たとえば、方法は、ADCユニット160から、複数のデジタル化された逆多重化された出力を取得するステップであって、複数のデジタル化された逆多重化された出力が複数の第1のデジタル出力ベクトルを形成し、複数の第1のデジタル出力ベクトルの各々が複数の波長のうちの1つに対応する、ステップと、複数の第1のデジタル出力ベクトルの各々に対して非線形変換を実行して、複数の変換された第1のデジタル出力ベクトルを生成するステップと、メモリユニットに、複数の変換された第1のデジタル出力ベクトルを記憶するステップとを含み得る。
【０６２７】
いくつかの場合、乗算モジュール3530の複数波長の積が逆多重化なしで追加され得るように、ANNは特別に設計されてもよく、デジタル入力ベクトルは特別に形成されてもよい。そのような場合、乗算モジュール3530は、複数波長の積の複数の波長を逆多重化しない、波長の影響を受けにくい乗算モジュールであり得る。したがって、乗算モジュール3530の光検出器の各々は、光信号の複数の波長を実質的に合計して単一の光電流にし、乗算モジュール3530によって出力される電圧の各々は、複数の波長のためのベクトル要素と行列要素の積の合計に対応する。加算モジュール1808(1つのバンクのみが必要である)は、複数のデジタル入力ベクトルの行列乗算結果の要素ごとの合計を出力する。
【０６２８】
図35Cは、2×2要素の行列を使用してベクトル行列乗算を実行するための、波長分割多重化光電子行列乗算ユニット3520の実装形態のシステム構成3500の例を示し、加算演算は電気領域において実行される。この例では、入力ベクトルは
【数７６】
2021527287.tif 000078
であり、行列は
【数７７】
2021527287.tif 000079
である。この例では、入力ベクトルは複数の波長λ1、λ2、およびλ3を有し、入力ベクトルの要素の各々は異なる光信号上で符号化される。2つの異なる複製モジュール1902は、異なる経路(たとえば、「上側」経路および「下側」経路)にわたって計算を分割するために光複製演算を実行する。光振幅変調を使用して異なる行列要素と各々乗算する、4つの乗算モジュール1904がある。各乗算モジュール1904の出力は、波長分割多重化された光信号を、波長λ1、λ2、およびλ3と関連付けられる電流の形態の電気信号に変換する、デマルチプレクサおよび光検出モジュール3310のバンクに提供される。異なる入力ベクトル要素の両方の上側経路は、波長λ1、λ2、およびλ3と関連付けられる加算モジュール3320のバンクを使用して組み合わされ、異なる入力ベクトル要素の両方の下側経路は、波長λ1、λ2、およびλ3と関連付けられる加算モジュール3320のバンクを使用して組み合わされ、加算モジュール3320は電気領域において加算を実行する。したがって、各波長のための出力ベクトルの要素の各々は、異なる電気信号上に符号化される。図35Cに示されるように、計算が進行するにつれて、出力ベクトルの各コンポーネントが増分的に生成されて、各波長に対してそれぞれ、上側経路および下側経路について以下の結果を生み出す。
M11v1+M12v2
M21v1+M22v2
【０６２９】
システム構成3500は、種々の光電子技術のいずれかを使用して実装され得る。いくつかの実装形態では、共通の基板(たとえば、シリコンなどの半導体)があり、これは、集積された光コンポーネントと電子コンポーネントの両方を支持することが可能であり得る。光経路は、光信号を搬送する光波を伝播するための導波管を画定するより低い光学指数をもつ材料により囲まれたより高い光学指数をもつ材料を有する、導波管構造において実装され得る。電気経路は、電気信号を搬送する電流を伝播するための伝導材料によって実装され得る(図35Cにおいて、経路を表す線の太さは、より太い線によって表される光経路と、より細い線または破線によって表される電気経路とを区別するために使用される)。分割器および光振幅変調器などの光デバイス、ならびに、光検出器および演算増幅器(オペアンプ)などの電気デバイスは、共通の基板上に製造され得る。代替的に、異なる基板を有する異なるデバイスは、システムの異なる部分を実装するために使用されてもよく、それらのデバイスは、通信チャネルを介して通信していてもよい。たとえば、システム全体を実装するために使用される複数のデバイス間で光信号を送信するための通信チャネルを提供するために、光ファイバが使用され得る。以下でより詳しく説明されるように、それらの光信号は、ベクトル行列乗算を実行するときに提供される入力ベクトルの異なるサブセット、および/または、ベクトル行列乗算を実行するときに計算される中間結果の異なるサブセットを表し得る。
【０６３０】
これまでに、ANN計算の一部として実行された加重和の非線形変換は、コントローラ110によってデジタル領域において実行された。いくつかの場合、非線形変換は、計算集約的であり、もしくは多くの電力を必要とし、コントローラ110の複雑さを大きく高め、または、スループットもしくは電力効率の点でANN計算システム3200(図32A)の性能を別様に制約し得る。したがって、ANN計算システムのいくつかの実装形態では、非線形変換が、アナログ電子回路を通じてアナログ領域において実行され得る。
【０６３１】
図36は、ANN計算システム3600の例の概略図を示す。ANN計算システム3600は、ANN計算システム3200と類似しているが、アナログ非線形性ユニット310が追加されているという点で異なる。アナログ非線形性ユニット310は、光電子行列乗算ユニット3220とADCユニット160との間に配置される。アナログ非線形性ユニット310は、光電子行列乗算ユニット3220から出力電圧を受け取り、非線形伝達関数を適用し、変換された出力電圧をADCユニット160に出力するように構成される。
【０６３２】
ADCユニット160がアナログ非線形性ユニット310によって非線形に変換された電圧を受け取るにつれて、コントローラ110は、ADCユニット160から、変換された出力電圧に対応する変換されたデジタル化された出力電圧を取得し得る。ADCユニット160から取得されるデジタル化された出力電圧はすでに非線形に変換されている(「活性化されている」)ので、コントローラ110による非線形変換ステップを省略することができ、コントローラ110による計算負荷が減る。ADCユニット160から直接取得される第1の変換された電圧は次いで、メモリユニット120に、第1の変換されたデジタル出力ベクトルとして記憶され得る。
【０６３３】
図3Aのアナログ非線形性ユニット310について上で論じられたように、アナログ非線形性ユニット310は、様々な方法で実装され得る。アナログ非線形性ユニット310の使用は、デジタル領域において実行されることになるステップを減らすことによって、スループットまたは電力効率などの、ANN計算システム3600の性能を高めることができる。非線形変換ステップをデジタル領域から出すことで、ANN計算システムの動作においてさらなるフレキシビリティと改善が可能になり得る。たとえば、再帰型ニューラルネットワークにおいて、光電子行列乗算ユニット3220の出力は、活性化され、光電子行列乗算ユニット3220の入力に再循環される。活性化は、ANN計算システム3200の中のコントローラ110によって実行され、これは、光電子行列乗算ユニット3220を通る1つ1つのパスにおいて光電子行列乗算ユニット3220の出力電圧をデジタル化することを必要とする。しかしながら、活性化は今やADCユニット160によるデジタル化の前に実行されるので、再帰型ニューラルネットワーク計算を実行する際に必要とされるADC変換の数を減らすことが可能であり得る。
【０６３４】
いくつかの実装形態では、アナログ非線形性ユニット310は、非線形ADCユニットとしてADCユニット160へと統合され得る。たとえば、非線形ADCユニットは、線形ADCユニットの線形のデジタル化された出力を所望の非線形に変換されたデジタル化された出力と対応付ける非線形ルックアップテーブルを伴う線形ADCユニットであり得る。
【０６３５】
図37は、ANN計算システム3700の例の概略図を示す。ANN計算システム3700は、図36のシステム3600と類似しているが、アナログメモリユニット320をさらに含むという点で異なる。アナログメモリユニット320は、DACユニット130に(たとえば、第1のDACサブユニット132を通じて)、変調器の列144に、およびアナログ非線形性ユニット310に結合される。アナログメモリユニット320は、第1のDACサブユニット132に結合された第1の入力およびアナログ非線形性ユニット310に結合された第2の入力を有するマルチプレクサを含む。これは、アナログメモリユニット320が、第1のDACサブユニット132またはアナログ非線形性ユニット310のいずれかから信号を受信することを可能にする。アナログメモリユニット320は、アナログ電圧を記憶し、記憶されているアナログ電圧を出力するように構成される。図3Bのアナログメモリユニット320について上で論じられたように、アナログメモリユニット320は様々な方法で実装され得る。
【０６３６】
ANN計算システム3700の動作がここで説明される。DACユニット130によって(たとえば、第1のDACサブユニット132によって)出力される第1の複数の変調器制御信号はまず、アナログメモリユニット320を通じて変調器の列144に入力される。このステップにおいて、アナログメモリユニット320は、第1の複数の変調器制御信号を単に渡し、またはバッファリングし得る。変調器の列144は、第1の複数の変調器制御信号に基づいて光入力ベクトルを生成し、これは、光電子行列乗算ユニット3220を通じて伝播する。光電子行列乗算ユニット3220の出力電圧は、アナログ非線形性ユニット310によって非線形に変換される。この時点で、ADCユニット160によってデジタル化される代わりに、アナログ非線形性ユニット310の出力電圧がアナログメモリユニット320によって記憶され、これは次いで、変調器の列144に出力されて、光電子行列乗算ユニット3220を通じて伝播されることになる次の光入力ベクトルへと変換される。この再帰的な処理は、コントローラ110の制御下で、あらかじめ設定された長さの時間、またはあらかじめ設定された回数のサイクルの間、実行され得る。再帰的な処理が所与のデジタル入力ベクトルに対して完了すると、アナログ非線形性ユニット310の変換された出力電圧は、ADCユニット160によって変換される。
【０６３７】
システム3700においてアナログメモリユニット320を使用することの利点は、図3Bのシステム302においてアナログメモリユニット320を使用することの利点と同様である。同様に、システム3700を使用した再帰型ニューラルネットワーク計算の実行は、図3Bのシステム302の実行と同様であり得る。
【０６３８】
図4Aのシステム400について上で論じられたように、ANN計算出力の分解能を維持しながら、入力データセットの分解能よりも低いビット分解能で内部的に動作する、ANN計算システムを使用することによる利点(たとえば、電力消費の低減)がある。図38を参照すると、1ビットの内部分解能を伴う人工ニューラルネットワーク(ANN)計算システム3800の例の概略図が示されている。ANN計算システム3800は、ANN計算システム3200(図32A)と同様であるが、DACユニット130がここではドライバユニット430により置き換えられ、ADCユニット160がここでは比較器ユニット460によって置き換えられるという点で異なる。
【０６３９】
図38のシステム3800のドライバユニット430および比較器ユニット460は、図4Aのシステム400のドライバユニット430および比較器460と同様の方式で動作する。図38のANN計算システム3800の動作の数学的表現は、図4Aに示されるANN計算システム400の動作の数学的表現と同様である。
【０６４０】
ANN計算システム3800は、1ビットベクトルの一連の行列乗算の後に個々の行列乗算結果の加算を実行することによって、ANN計算を実行する。図4Aに示される例を使用して、分解された入力ベクトルVbit0からVbit3の各々は、ドライバユニット430を通じて、4つの1ビット入力ベクトルに対応する4つの1ビット変調器制御信号のシーケンスを生成することによって、行列Uと乗算され得る。これは次いで、4つの1ビット光入力ベクトルのシーケンスを生成し、これは、行列Uの行列乗算を実施するためにドライバユニット430を通じて構成される光電子行列乗算ユニット3220によって処理される。コントローラ110は次いで、比較器ユニット460から、4つの1ビット変調器制御信号のシーケンスに対応する4つのデジタル化された1ビット光出力のシーケンスを取得し得る。
【０６４１】
4ビットベクトルが4つの1ビットベクトルに分解されるこの場合には、各ベクトルは、単一の4ビットベクトルが、同じ実効ANN計算スループットを維持するために、システム3200(図32A)などの他のANN計算システムによって処理され得る速度の4倍で、ANN計算システム3800によって処理されるべきである。そのような内部処理速度の向上は、4ビットのベクトルを処理するための単一のタイムスロットへの4つの1ビットベクトルの時分割多重化と見なされ得る。処理速度の必要な向上は、DACユニット130およびADCユニット160と比較したときのドライバユニット430および比較器ユニット460の動作速度の向上によって少なくとも一部達成されてもよく、それは、信号変換処理の分解能の低下は通常、達成され得る信号変換のレートの向上につながるからである。
【０６４２】
この例では、信号変換レートは1ビット演算においては4倍向上するが、生じる電力消費は4ビット演算と比較して大きく減り得る。前に説明されたように、信号変換処理の電力消費は通常、ビット分解能に対して指数関数的にスケーリングするが、変換レートに対しては線形にスケーリングする。したがって、変換当たりの電力の16分の1の低減は、ビット分解能の分の1の低減と、それに続く、変換レートの向上による電力の4倍の増大とに起因し得る。全体として、たとえばANN計算システム3200と比較して、同じ実効ANN計算スループットを維持しながら、動作電力の4分の1の低減がANN計算システム3800によって達成され得る。
【０６４３】
コントローラ110は次いで、デジタル化された1ビット光出力の各々を2^0から2^3のそれぞれの重みと乗算することによって、4つのデジタル化された1ビット光出力から4ビットデジタル出力ベクトルを構築し得る。4ビットデジタル出力ベクトルが構築されると、ANN計算は、構築された4ビットデジタル出力ベクトルに対して非線形変換を実行して、変換された4ビットデジタル出力ベクトルを生成し、メモリユニット120に、変換された4ビットデジタル出力ベクトルを記憶することによって、進み得る。
【０６４４】
代替的に、または追加で、いくつかの実装形態では、4つのデジタル化された1ビット光出力の各々は、非線形変換され得る。たとえば、ステップ関数非線形関数が、非線形変換のために使用され得る。変換された4ビットデジタル出力ベクトルが次いで、非線形変換されたデジタル化された1ビット光出力から構築され得る。
【０６４５】
別個のANN計算システム3800が例示され説明されたが、一般に、図32AのANN計算システム3200は、ANN計算システム3800の機能と類似する機能を実装するように設計され得る。たとえば、DACユニット130は、1ビット変調器制御信号を生成するように構成される1ビットDACサブユニットを含んでもよく、ADCユニット160は、1ビットの分解能を有するように設計されてもよい。そのような1ビットADCは、比較器と類似していてもよく、またはそれと実質的に等価であってもよい。
【０６４６】
さらに、1ビットの内部分解能を伴うANN計算システムの動作が説明されたが、一般に、ANN計算システムの内部分解能は、入力データセットのNビット分解能よりも低い中間レベルまで低減され得る。たとえば、内部分解能は2^Yビットまで低減されてもよく、Yは0以上の整数である。
【０６４７】
種々の代替的なシステム構成または信号処理技法が、本明細書で説明される異なるシステム、サブシステム、およびモジュールの様々な実装形態とともに使用され得る。
【０６４８】
いくつかの実施形態では、VMMサブシステムの一部またはすべてが、様々な複製モジュール、乗算モジュール、および/または加算モジュールの異なる実装形態を使用するサブシステムを含む、代替的なサブシステムにより置換可能であることが有用であり得る。たとえば、VMMサブシステムは、本明細書で説明される光複製モジュールおよび本明細書で説明される電気加算モジュールを含み得るが、乗算モジュールは、光電子領域の代わりに電気領域において乗算演算を実行するサブシステムにより置き換えられ得る。そのような例では、光振幅変調器の列は、光信号を電気信号に変換するための検出器の列により、続いて電子サブシステム(たとえば、ASICプロセッサまたはSoC)によって置き換えられ得る。任意選択で、光信号を検出するように構成される加算モジュールへの光信号のルーティングが使用されるべきである場合、電子サブシステムは、たとえば、電気的に変調された光源の列を使用した、電気から光の変換を含み得る。
【０６４９】
いくつかの実施形態では、VMM計算の一部またはすべてのために使用されている光信号の一部またはすべてに対して単一の波長を使用できることが有用であり得る。代替的に、いくつかの実施形態では、必要とされ得る光入力ポートの数を減らすのを助けるために、入力ポートは、異なる波長における異なる光波上に符号化される異なる値を有する、多重化された光信号を受信することができる。それらの光波は次いで、複製モジュール、乗算モジュール、および/または加算モジュールのいずれかが複数の波長に対して動作するように構成されるかどうかに応じて、システムの中の適切な位置において分離され得る。しかし、複数波長の実施形態でも、たとえば同じVMMサブシステムにおいて使用される、光信号の異なるサブセットに対して同じ波長を使用することが有用であり得る。
【０６５０】
いくつかの実施形態では、様々なモジュールによって受信される光信号および電気信号の時間領域符号化を可能にするために累算器を使用することができ、電子回路が多数の異なるパワーレベルにわたって有効に動作する必要性を軽減する。たとえば、シンボル当たりN個のタイムスロットにわたって特定のデューティ比を用いてバイナリ(オン-オフ)振幅変調を使用して符号化される信号は、シンボル当たりN個の振幅レベルを有する信号に変換されてもよく、その後で、信号は累算器(電気信号の電流または電圧を統合するアナログ電子累算器)を通される。よって、光デバイス(たとえば、光振幅変調器の中の位相変調器)がシンボル帯域幅Bにおいて動作することが可能である場合、それらは、代わりにシンボル帯域幅B/100において動作させられてもよく、各シンボル値はN=100個のタイムスロットを使用する。50%という統合された振幅は50%のデューティ比を有し(たとえば、0ではない「オン」レベルにある最初の50個のタイムスロット、それに続く、0またはほぼ0の「オフ」レベルにある50個のタイムスロット)、10%という統合された振幅は10%のデューティ比を有する(たとえば、0ではない「オン」レベルにある最初の10個のタイムスロット、それに続く、0の「オフ」レベルにある90個のタイムスロット)。本明細書で説明される例では、そのような累算器は、たとえば、そのVMMサブシステムの中のすべての電気信号のための加算モジュールの前、またはそのVMMサブシステムの中のすべての電気信号のための加算モジュールの後などの、各電気信号に対して一貫したVMMサブシステム内の任意の位置において、各電気信号の経路上に配置され得る。VMMサブシステムはまた、異なるシンボルの整列を保つ異なる電気信号間に大きな相対的な時間シフトがないように構成され得る。
【０６５１】
図40を参照すると、いくつかの実装形態では、変調された信号の位相および振幅を取得するために、ホモダイン検出を使用することができる。ホモダイン検出器4000は、2×2マルチモード干渉(MMI)カプラ、2つの光検出器4004aおよび4004b、ならびに減算器4006を含む、ビーム分割器4002を含む。ビーム分割器4002は入力信号E1およびE2を受信し、ビーム分割器4002の出力は光検出器4004aおよび4004bによって検出される。たとえば、入力信号E1は検出されるべき信号であってもよく、入力信号E2は一定のレーザーパワーを有する局所発振器によって生成されてもよい。局所発振器信号E2は、信号が光検出器4004aおよび4004bによって検出される前に、ビーム分割器4002によって入力信号E1と混合される。減算器4006は、光検出器4004aおよび4004bの出力間の差を出力する。減算器4006の出力4008は|E1||E2|sin(θ)に比例し、|E1|および|E2|は2つの入力光場の振幅であり、θはそれらの相対的な位相である。出力は2つの光場の積に関連するので、極端に弱い光信号を、単一光子のレベルであっても検出することができる。
【０６５２】
たとえば、ホモダイン検出器4000は、図1A、図1F、図3A〜図4A、図5、図7、図9、図18〜図24E、図26〜図32B、および図35A〜図38に示されるシステムにおいて使用され得る。ホモダイン検出器4000は、信号に対する利得と、したがってより良い信号対雑音比をもたらす。コヒーレントシステムでは、ホモダイン検出器4000は、検出結果の極性を介して信号の位相情報を明らかにすることのさらなる利点をもたらす。
【０６５３】
図19Bの例では、システム1920は2×2要素の行列を含み、2つの入力ベクトル要素が、2つの異なるそれぞれの波長λ1およびλ2を使用して2つの光信号上に符号化される。2つの光信号は、たとえば2つの光ファイバを使用して、システム1920に提供され得る。たとえば、4×4行列に対して行列処理を実行するシステムは、4つの光ファイバ上で搬送される4つの入力光信号を受信することができる。より大きい行列を処理するシステムに対してより多くの入力光信号を搬送するためにより多くの光ファイバが使用され得るが、光ファイバと光電子チップとの間の結合にはかなりの空間を要するので、多数の光ファイバを光電子チップに結合することは難しい。
【０６５４】
光信号を光電子チップに搬送するために必要とされる光ファイバの数を減らすための方法は、波長分割多重化を使用することである。異なる波長を有する複数の光信号は、単一の光ファイバを使用して多重化され送信され得る。たとえば、図41を参照すると、計算システム4100において、波長λ1を有する第1の光信号4102は、第1の変調器4104によって変調されて、第1の入力ベクトル要素V1を表す第1の変調された光信号4120を生み出す。波長λ2を有する第2の光信号4106は、第2の変調器4108によって変調されて、第2の入力ベクトル要素V2を表す第2の変調された光信号4122を生み出す。第1および第2の変調された光信号は、マルチプレクサ4110によって組み合わされて、光ファイバ4112を介して複数の行列乗算モジュール、たとえば4116a、4116b、4116c、および4116d(まとめて4116と呼ばれる)、ならびに4118a、4118b、4118c、および4118d(まとめて4118と呼ばれる)を含む光電子チップ4114に送信される波長分割多重化された信号を生み出す。
【０６５５】
光電子チップ4114の内側に、波長分割多重化された信号は、光信号4120と4122とを分離するためにデマルチプレクサ4118によって逆多重化される。この例では、光信号4120は、複製モジュール4124によって複製されて、行列乗算モジュール4116aおよび4118aに送信される光信号の複製を生み出す。光信号4122は、複製モジュール4126によって複製されて、行列乗算モジュール4116bおよび4118bに送信される光信号の複製を生み出す。行列乗算ユニット4116aおよび4116bの出力は、光カプラ4120aを使用して組み合わされて、組み合わされた信号は光検出器4122aによって検出される。
【０６５６】
波長λ1を有する第3の光信号4124は、第3の変調器4128によって変調されて、第3の入力ベクトル要素V3を表す第3の変調された光信号4132を生み出す。波長λ2を有する第4の光信号4126は、第4の変調器4130によって変調されて、第4の入力ベクトル要素V4を表す第4の変調された光信号4134を生み出す。第3および第4の変調された光信号は、マルチプレクサ4136によって組み合わされて、光電子チップ4114に光ファイバ4138を介して送信される波長分割多重化された信号を生み出す。
【０６５７】
光電子チップ4114の内部で、光ファイバ4138によって提供される波長分割多重化された信号は、デマルチプレクサ4140によって逆多重化されて、光信号4132および4134を分離する。この例では、光信号4132は、複製モジュール4142によって複製されて、行列乗算モジュール4116cおよび4118cに送信される光信号の複製を生み出す。光信号4134は、複製モジュール4144によって複製されて、行列乗算モジュール4116dおよび4118dに送信される光信号の複製を生み出す。行列乗算ユニット4116cおよび4116dの出力は光カプラ4120bを使用して組み合わされて、組み合わされた信号は光検出器4122bによって検出される。行列乗算ユニット4118aおよび4118bの出力は光カプラを使用して組み合わされて、組み合わされた信号は光検出器によって検出される。行列乗算ユニット4118cおよび4118dの出力は光カプラを使用して組み合わされて、組み合わされた信号は光検出器によって検出される。
【０６５８】
いくつかの例では、マルチプレクサは、3つ以上(たとえば、10個または100個)の波長を有する光信号を多重化して、単一の光ファイバにより輸送される波長分割多重化された信号を生み出すことができ、光電子チップの内部のデマルチプレクサは、波長分割多重化された信号を逆多重化して、異なる波長を有する信号を分離することができる。これは、光ファイバを通じて並列に光電子チップに光信号が送信されることを可能にし、光電子チップのデータ処理スループットを上げる。
【０６５９】
デジタルコントローラ(たとえば、図24Eに示されるコンポーネントを制御するための)および本明細書で説明される機能的な動作は、デジタル電子回路において、または、本明細書で開示される構造およびその構造的な均等物を含めて、コンピュータソフトウェア、ファームウェア、もしくはハードウェアにおいて、またはそれらの1つまたは複数の組合せにおいて実装され得る。本明細書で説明される主題の実施形態は、データ処理装置による実行のために、またはその動作を制御するために、コンピュータ可読媒体上に符号化されたコンピュータプログラム命令の1つまたは複数のモジュールを使用して実装され得る。コンピュータ可読媒体は、コンピュータシステムの中のハードドライブもしくは小売店で販売される光学ディスクなどの製造された製品、または組込みシステムであり得る。コンピュータ可読媒体は、別々に取得され、その後で、有線ネットワークまたはワイヤレスネットワークを介したコンピュータプログラム命令の1つまたは複数のモジュールの配信などによって、コンピュータプログラム命令の1つまたは複数のモジュールを符号化されてもよい。コンピュータ可読媒体は、機械可読記憶デバイス、機械可読記憶基板、メモリデバイス、またはそれらの1つまたは複数の組合せであり得る。
【０６６０】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコードとしても知られている)は、コンパイル型言語またはインタプリタ型言語、宣言型言語または手続型言語を含む、任意の形式のプログラミング言語で書かれてもよく、スタンドアロンプログラムとして、または、モジュール、コンポーネント、サブルーチン、もしくはコンピューティング環境において使用するのに適した他のユニットとしてを含めて、任意の形式で展開されてもよい。コンピュータプログラムは、必ずしもファイルシステムにおけるファイルに相当しない。プログラムは、他のプログラムまたはデータ(たとえば、マークアップ言語ドキュメントに記憶されている1つまたは複数のスクリプト)を保持するファイルの一部分に、対象のプログラムに専用の単一のファイルに、または複数の協調したファイル(たとえば、1つまたは複数のモジュール、サブプログラム、またはコードの部分を記憶するファイル)に記憶され得る。コンピュータプログラムは、1つのコンピュータ上で、または、1つの場所に配置される、もしくは複数の場所に分散しており通信ネットワークにより相互接続される複数のコンピュータ上で実行されるように、展開され得る。
【０６６１】
本明細書において説明される処理および論理フローは、入力データに対して動作して出力を生成することにより機能を実行するための、1つまたは複数のコンピュータプログラムを実行する1つまたは複数のプログラマブルプロセッサによって実行され得る。専用論理回路、たとえばFPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)によって、処理および論理フローが実行されてもよく、それらとして装置が実装されてもよい。
【０６６２】
本開示はいくつかの実施形態に関連して説明されたが、本開示は、開示される実施形態に限定されるものではなく、逆に、添付の特許請求の範囲の範囲内に含まれる様々な修正および等価な構成を包含することが意図され、この範囲は、法の下で許容されるような、すべてのそのような修正および等価な構造を包含するように、最も広い解釈に従うべきであることを理解されたい。
【０６６３】
本発明は添付の特許請求の範囲において定義されるが、本発明は、以下の実施形態にも従って定義され得ることを理解されたい。
【０６６４】
実施形態1：システムは、
データセットおよび複数のニューラルネットワーク重みを記憶するように構成されるメモリユニットと、
複数の変調器制御信号を生成し複数の重み制御信号を生成するように構成されるデジタルアナログコンバータ(DAC)ユニットと、
光プロセッサであって、
複数の光出力を生成するように構成されるレーザーユニットと、
レーザーユニットおよびDACユニットに結合される複数の光変調器であって、複数の変調器制御信号に基づいてレーザーユニットによって生成された複数の光出力を変調することによって光入力ベクトルを生成するように構成される、複数の光変調器と、
複数の光変調器およびDACユニットに結合された光行列乗算ユニットであって、複数の重み制御信号に基づいて光入力ベクトルを光出力ベクトルに変換するように構成される、光行列乗算ユニットと、
光行列乗算ユニットに結合され、光出力ベクトルに対応する複数の出力電圧を生成するように構成される、光検出ユニットと
を含む、光プロセッサと、
光検出ユニットに結合され、複数の出力電圧を複数のデジタル化された光出力に変換するように構成される、アナログデジタル変換(ADC)ユニットと、
コントローラであって、
コンピュータから、入力データセットおよび第1の複数のニューラルネットワーク重みを含む人工ニューラルネットワーク計算要求を受信することであって、入力データセットが第1のデジタル入力ベクトルを含む、受信することと、
メモリユニットに、入力データセットおよび第1の複数のニューラルネットワーク重みを記憶することと、
DACユニットを通じて、第1のデジタル入力ベクトルに基づく第1の複数の変調器制御信号および第1の複数のニューラルネットワーク重みに基づく第1の複数の重み制御信号を生成することと
を含む動作を実行するように構成される集積回路を含む、コントローラと
を含む。
【０６６５】
実施形態2：実施形態1のシステムにおいて、動作はさらに、
ADCユニットから、光行列乗算ユニットの光出力ベクトルに対応する第1の複数のデジタル化された光出力を取得することであって、第1の複数のデジタル化された光出力が第1のデジタル出力ベクトルを形成する、取得することと、
第1のデジタル出力ベクトルに対して非線形変換を実行して第1の変換されたデジタル出力ベクトルを生成することと、
メモリユニットに、第1の変換されたデジタル出力ベクトルを記憶することと
を含む。
【０６６６】
実施形態3：実施形態2のシステムにおいて、システムは、メモリユニットに、入力データセットおよび第1の複数のニューラルネットワーク重みを記憶することと、メモリユニットに、第1の変換されたデジタル出力ベクトルを記憶することとの間に経過した時間として定義される、第1のループ期間を有し、
第1のループ期間は1ns以下である。
【０６６７】
実施形態4：実施形態2のシステムにおいて、動作はさらに、
第1の変換されたデジタル出力ベクトルに基づいて生成された人工ニューラルネットワーク出力を出力することを含む。
【０６６８】
実施形態5：実施形態2のシステムにおいて、動作はさらに、
DACユニットを通じて、第1の変換されたデジタル出力ベクトルに基づいて第2の複数の変調器制御信号を生成するステップを含む。
【０６６９】
実施形態6：実施形態2のシステムにおいて、人工ニューラルネットワーク計算要求はさらに、第2の複数のニューラルネットワーク重みを含み、
動作はさらに、
第1の複数のデジタル化された光出力の取得に基づいて、DACユニットを通じて、第2の複数のニューラルネットワーク重みに基づいて第2の複数の重み制御信号を生成することを含む。
【０６７０】
実施形態7：実施形態6のシステムにおいて、第1の複数のニューラルネットワーク重みおよび第2の複数のニューラルネットワーク重みは、人工ニューラルネットワークの異なる層に対応する。
【０６７１】
実施形態8：実施形態2のシステムにおいて、入力データセットはさらに、第2のデジタル入力ベクトルを含み、
動作はさらに、
DACユニットを通じて、第2のデジタル入力ベクトルに基づいて第2の複数の変調器制御信号を生成することと、
ADCユニットから、光行列乗算ユニットの光出力ベクトルに対応する第2の複数のデジタル化された光出力を取得することであって、第2の複数のデジタル化された光出力が第2のデジタル出力ベクトルを形成する、取得することと、
第2のデジタル出力ベクトルに対して非線形変換を実行して第2の変換されたデジタル出力ベクトルを生成することと、
メモリユニットに、第2の変換されたデジタル出力ベクトルを記憶することと、
第1の変換されたデジタル出力ベクトルおよび第2の変換されたデジタル出力ベクトルに基づいて生成された人工ニューラルネットワーク出力を出力することと
を含み、
光行列乗算ユニットの光出力ベクトルは、第1の言及された複数の重み制御信号に基づいて光行列乗算ユニットによって変換される第2の複数の変調器制御信号に基づいて生成される第2の光入力ベクトルに起因する。
【０６７２】
実施形態9：実施形態1のシステムにおいて、システムはさらに、
光検出ユニットとADCユニットとの間に配置されたアナログ非線形性ユニットを含み、アナログ非線形性ユニットは、光検出ユニットから複数の出力電圧を受け取り、非線形伝達関数を適用し、複数の変換された出力電圧をADCユニットに出力するように構成され、
動作はさらに、
ADCユニットから、複数の変換された出力電圧に対応する第1の複数の変換されたデジタル化された出力電圧を取得することであって、第1の複数の変換されたデジタル化された出力電圧が第1の変換されたデジタル出力ベクトルを形成する、取得することと、
メモリユニットに、第1の変換されたデジタル出力ベクトルを記憶することと
を含む。
【０６７３】
実施形態10：実施形態1のシステムにおいて、コントローラの集積回路は、8GHz以上のレートで第1の複数の変調器制御信号を生成するように構成される。
【０６７４】
実施形態11：実施形態1のシステムにおいて、システムはさらに、
DACユニットと複数の光変調器との間に配置されたアナログメモリユニットであって、アナログ電圧を記憶して記憶されているアナログ電圧を出力するように構成される、アナログメモリユニットと、
光検出ユニットとADCユニットとの間に配置されたアナログ非線形性ユニットであって、光検出ユニットから複数の出力電圧を受け取り、非線形伝達関数を適用し、複数の変換された出力電圧を出力するように構成される、アナログ非線形性ユニットと
を含む。
【０６７５】
実施形態12：実施形態11のシステムにおいて、アナログメモリユニットは、複数のキャパシタを含む。
【０６７６】
実施形態13：実施形態11のシステムにおいて、アナログメモリユニットは、アナログ非線形性ユニットの複数の変換された出力電圧を受け取って記憶し、記憶されている複数の変換された出力電圧を複数の光変調器に出力するように構成され、
動作はさらに、
第1の複数の変調器制御信号および第1の複数の重み制御信号を生成したことに基づいて、アナログメモリユニットに、アナログ非線形性ユニットの複数の変換された出力電圧を記憶することと、
アナログメモリユニットを通じて、記憶されている変換された出力電圧を出力することと、
ADCユニットから、第2の複数の変換されたデジタル化された出力電圧を取得することであって、第2の複数の変換されたデジタル化された出力電圧が第2の変換されたデジタル出力ベクトルを形成する、取得することと、
メモリユニットに、第2の変換されたデジタル出力ベクトルを記憶することと
を含む。
【０６７７】
実施形態14：実施形態1のシステムにおいて、人工ニューラルネットワーク計算要求の入力データセットは、複数のデジタル入力ベクトルを含み、
レーザーユニットは、複数の波長を生成するように構成され、
複数の光変調器は、
複数の光入力ベクトルを生成するように構成される光変調器のバンクであって、バンクの各々が、複数の波長のうちの1つに対応し、それぞれの波長を有するそれぞれの光入力ベクトルを生成する、バンクと、
複数の光入力ベクトルを、複数の波長を含む組み合わされた光入力ベクトルへと組み合わせるように構成される、光マルチプレクサとを
含み、
光検出ユニットはさらに、複数の波長を逆多重化し、複数の逆多重化された出力電圧を生成するように構成され、
動作は、
ADCユニットから、複数のデジタル化された逆多重化された光出力を取得することであって、複数のデジタル化された逆多重化された光出力が複数の第1のデジタル出力ベクトルを形成し、複数の第1のデジタル出力ベクトルの各々が複数の波長のうちの1つに対応する、取得することと、
複数の第1のデジタル出力ベクトルの各々に対して非線形変換を実行して、複数の変換された第1のデジタル出力ベクトルを生成することと、
メモリユニットに、複数の変換された第1のデジタル出力ベクトルを記憶することと
を含み、
複数のデジタル入力ベクトルの各々は、複数の光入力ベクトルのうちの1つに対応する。
【０６７８】
実施形態15：実施形態1のシステムにおいて、人工ニューラルネットワーク計算要求は、複数のデジタル入力ベクトルを含み、
レーザーユニットは、複数の波長を生成するように構成され、
複数の光変調器は、
複数の光入力ベクトルを生成するように構成される光変調器のバンクであって、バンクの各々が、複数の波長のうちの1つに対応し、それぞれの波長を有するそれぞれの光入力ベクトルを生成する、バンクと、
複数の光入力ベクトルを、複数の波長を含む組み合わされた光入力ベクトルへと組み合わせるように構成される、光マルチプレクサと
を含み、
動作は、
ADCユニットから、複数の波長を含む光出力ベクトルに対応する第1の複数のデジタル化された光出力を取得することであって、第1の複数のデジタル化された光出力が第1のデジタル出力ベクトルを形成する、取得することと、
第1のデジタル出力ベクトルに対して非線形変換を実行して、第1の変換されたデジタル出力ベクトルを生成することと、
メモリユニットに、第1の変換されたデジタル出力ベクトルを記憶することと
を含む。
【０６７９】
実施形態16：実施形態1のシステムにおいて、DACユニットは、
複数の1ビット変調器制御信号を生成するように構成される1ビットDACサブユニットを含み、
ADCユニットの分解能は1ビットであり、
第1のデジタル入力ベクトルの分解能はNビットであり、
動作は、
第1のデジタル入力ベクトルをN個の1ビット入力ベクトルに分解することであって、N個の1ビット入力ベクトルの各々が第1のデジタル入力ベクトルのNビットのうちの1つに対応する、分解することと、
1ビットDACサブユニットを通じて、N個の1ビット入力ベクトルに対応するN個の1ビット変調器制御信号のシーケンスを生成することと、
ADCユニットから、N個の1ビット変調器制御信号のシーケンスに対応するN個のデジタル化された1ビット光出力のシーケンスを取得することと、
N個のデジタル化された1ビット光出力のシーケンスからNビットデジタル出力ベクトルを構築することと、
構築されたNビットデジタル出力ベクトルに対して非線形変換を実行して、変換されたNビットデジタル出力ベクトルを生成することと、
メモリユニットに、変換されたNビットデジタル出力ベクトルを記憶することと
を含む。
【０６８０】
実施形態17：実施形態1のシステムにおいて、メモリユニットは、
デジタル入力ベクトルを記憶するように構成され少なくとも1つのSRAMを含む、デジタル入力ベクトルメモリと、
複数のニューラルネットワーク重みを記憶するように構成され少なくとも1つのDRAMを含む、ニューラルネットワーク重みメモリと
を含む。
【０６８１】
実施形態18：実施形態1のシステムにおいて、DACユニットは、
複数の変調器制御信号を生成するように構成される第1のDACサブユニットと、
複数の重み制御信号を生成するように構成される第2のDACサブユニットと
を含み、
第1のDACサブユニットおよび第2のDACサブユニットは異なる。
【０６８２】
実施形態19：実施形態1のシステムにおいて、レーザーユニットは、
光を生成するように構成されるレーザー源と、
レーザー源によって生成された光を複数の光出力に分割するように構成される光パワー分割器と
を含み、複数の光出力の各々は実質的に等しいパワーを有する。
【０６８３】
実施形態20：実施形態1のシステムにおいて、複数の光変調器は、MZI変調器、リング共振変調器、または電界吸収型変調器のうちの1つを含む。
【０６８４】
実施形態21：実施形態1のシステムにおいて、光検出ユニットは、
複数の光検出器と、
光検出器によって生成された光電流を複数の出力電圧に変換するように構成される複数の増幅器と
を含む。
【０６８５】
実施形態22：実施形態1のシステムにおいて、集積回路は、特定用途向け集積回路である。
【０６８６】
実施形態23：実施形態1のシステムにおいて、光行列乗算ユニットは、
光入力ベクトルを受信するための入力導波管の列と、
光信号の第2の列への光入力ベクトルの線形変換を実行するための、入力導波管の列と光学的に連絡している光干渉ユニットと、
光信号の第2の列を導くための、光干渉ユニットと光学的に連絡している出力導波管の列と
を含み、入力導波管の列の中の少なくとも1つの入力導波管は、光干渉ユニットを介して、出力導波管の列の中の各出力導波管と光学的に連絡している。
【０６８７】
実施形態24：実施形態23のシステムにおいて、光干渉ユニットは、
複数の相互接続されたマッハツェンダー干渉計(MZI)を含み、複数の相互接続されたMZIの中の各MZIは、
MZIの分割比を変更するように構成される第1の位相シフタと、
MZIの1つの出力の位相をシフトするように構成される第2の位相シフタと
を含み、
第1の位相シフタおよび第2の位相シフタは、複数の重み制御信号に結合される。
【０６８８】
実施形態25：システムは、
データセットおよび複数のニューラルネットワーク重みを記憶するように構成されるメモリユニットと、
複数の変調器制御信号を生成し複数の重み制御信号を生成するように構成されるドライバユニットと、
光プロセッサであって、
複数の光出力を生成するように構成されるレーザーユニットと、
レーザーユニットおよびドライバユニットに結合された複数の光変調器であって、レーザーユニットによって生成された複数の光出力を複数の変調器制御信号に基づいて変調することによって光入力ベクトルを生成するように構成される、複数の光変調器と、
複数の光変調器およびドライバユニットに結合された光行列乗算ユニットであって、複数の重み制御信号に基づいて光入力ベクトルを光出力ベクトルに変換するように構成される、光行列乗算ユニットと、
光行列乗算ユニットに結合され光出力ベクトルに対応する複数の出力電圧を生成するように構成される、光検出ユニットと
を含む、光プロセッサと、
光検出ユニットに結合され、複数の出力電圧を複数のデジタル化された1ビット光出力に変換するように構成される、比較器ユニットと、
コントローラであって、
コンピュータから、入力データセットおよび第1の複数のニューラルネットワーク重みを含む人工ニューラルネットワーク計算要求を受信することであって、入力データセットがNビットの分解能を有する第1のデジタル入力ベクトルを含む、受信することと、
メモリユニットに、入力データセットおよび第1の複数のニューラルネットワーク重みを記憶することと、
第1のデジタル入力ベクトルをN個の1ビット入力ベクトルに分解することであって、N個の1ビット入力ベクトルの各々が第1のデジタル入力ベクトルのNビットのうちの1つに対応する、分解することと、
ドライバユニットを通じて、N個の1ビット入力ベクトルに対応するN個の1ビット変調器制御信号のシーケンスを生成することと、
比較器ユニットから、N個の1ビット変調器制御信号のシーケンスに対応するN個のデジタル化された1ビット光出力のシーケンスを取得することと、
N個のデジタル化された1ビット光出力のシーケンスからNビットデジタル出力ベクトルを構築することと、
構築されたNビットデジタル出力ベクトルに対して非線形変換を実行して、変換されたNビットデジタル出力ベクトルを生成することと、
メモリユニットに、変換されたNビットデジタル出力ベクトルを記憶することと
を含む動作を実行するように構成される集積回路を含む、コントローラと
を含む。
【０６８９】
実施形態26：複数の重み制御信号に基づいて光入力ベクトルを光出力ベクトルに変換するように構成される光行列乗算ユニットを有するシステムにおいて人工ニューラルネットワーク計算を実行するための方法は、
コンピュータから、入力データセットおよび第1の複数のニューラルネットワーク重みを含む人工ニューラルネットワーク計算要求を受信するステップであって、入力データセットが第1のデジタル入力ベクトルを含む、ステップと、
メモリユニットに、入力データセットおよび第1の複数のニューラルネットワーク重みを記憶するステップと、
デジタルアナログコンバータ(DAC)ユニットを通じて、第1のデジタル入力ベクトルに基づく第1の複数の変調器制御信号および第1の複数のニューラルネットワーク重みに基づく第1の複数の重み制御信号を生成するステップと、
アナログデジタル変換(ADC)ユニットから、光行列乗算ユニットの光出力ベクトルに対応する第1の複数のデジタル化された光出力を取得するステップであって、第1の複数のデジタル化された光出力が第1のデジタル出力ベクトルを形成する、ステップと、
コントローラによって、第1のデジタル出力ベクトルに対して非線形変換を実行して、第1の変換されたデジタル出力ベクトルを生成するステップと、
メモリユニットに、第1の変換されたデジタル出力ベクトルを記憶するステップと、
コントローラによって、第1の変換されたデジタル出力ベクトルに基づいて生成された人工ニューラルネットワーク出力を出力するステップと
を含む。
【０６９０】
実施形態27：方法は、
電子フォーマットで入力情報を提供するステップと、
電子入力情報の少なくとも一部を光入力ベクトルに変換するステップと、
光行列乗算に基づいて光入力ベクトルを光出力ベクトルに光学的に変換するステップと、
光出力ベクトルを電子フォーマットに変換するステップと、
非線形変換を電子的に変換された光出力ベクトルに電子的に適用して電子フォーマットで出力情報を提供するステップと
を含む。
【０６９１】
実施形態28：実施形態27の方法において、方法はさらに、
電子フォーマットの提供された出力情報に対応する新しい電子入力情報に関して、電気から光への変換、光変換、光から電気への変換、および電子的に適用される非線形変換を繰り返すステップを含む。
【０６９２】
実施形態29：実施形態28の方法において、最初の光変換のための光行列乗算および繰り返される光変換の光行列乗算は同じであり、人工ニューラルネットワークの同じ層に対応する。
【０６９３】
実施形態30：実施形態28の方法において、最初の光変換のための光行列乗算および繰り返される光変換の光行列乗算は異なり、人工ニューラルネットワークの異なる層に対応する。
【０６９４】
実施形態31：実施形態27の方法において、方法はさらに、
電子入力情報の異なる部分に関して、電気から光への変換、光変換、光から電気への変換、および電子的に適用される非線形変換を繰り返すステップを含み、
最初の光変換のための光行列乗算および繰り返される光変換の光行列乗算は同じであり、人工ニューラルネットワークの第1の層に対応する。
【０６９５】
実施形態32：実施形態31の方法において、方法はさらに、
人工ニューラルネットワークの第1の層によって電子入力情報の複数の部分に対して生み出された電子出力情報に基づいて、電子フォーマットで中間情報を提供するステップと、
電子中間情報の異なる部分の各々に関して、電気から光への変換、光変換、光から電気への変換、および電子的に適用される非線形変換を繰り返すステップと
を含み、
最初の光変換のための光行列乗算および電子中間情報の異なる部分に関する繰り返される光変換の光行列乗算は同じであり、人工ニューラルネットワークの第2の層に対応する。
【０６９６】
実施形態33：システムは、
受動回折光学素子を含む光プロセッサを含み、受動回折光学素子は、光入力ベクトルまたは行列を、光入力ベクトルまたは行列および回折光学素子の配置により定義される所定のベクトルに適用される行列処理の結果を表す光出力ベクトルまたは行列に変換するように構成される。
【０６９７】
実施形態34：実施形態33のシステムにおいて、行列処理は、光入力ベクトルまたは行列と、回折光学素子の配置により定義される所定のベクトルとの行列乗算を含む。
【０６９８】
実施形態35：実施形態33のシステムにおいて、光プロセッサは光行列処理ユニットを含み、光行列処理ユニットは、
光入力ベクトルを受信するための入力導波管の列と、
受動回折光学素子を備える光干渉ユニットであって、入力導波管の列と光学的に連絡しており、光信号の第2の列への光入力ベクトルの線形変換を実行するように構成される、光干渉ユニットと、
光信号の第2の列を導くための、光干渉ユニットと光学的に連絡している出力導波管の列と
を含み、入力導波管の列の中の少なくとも1つの入力導波管は、光学干渉ユニットを介して、出力導波管の列の中の各出力導波管と光学的に連絡している。
【０６９９】
実施形態36：実施形態35のシステムにおいて、光干渉ユニットは、穴または縞のうちの少なくとも1つの有する基板を含み、穴は100nmから10μmの範囲の寸法を有し、縞の幅は100nmから10μmの範囲にある。
【０７００】
実施形態37：実施形態35のシステムにおいて、光干渉ユニットは、2次元構成で配置される受動回折光学素子を有する基板を含み、基板は平面基板または曲面基板のうちの少なくとも1つを備える。
【０７０１】
実施形態38：実施形態37のシステムにおいて、基板は、入力導波管の列から出力導波管の列への光伝播の方向と平行な平面基板を含む。
【０７０２】
実施形態39：実施形態33のシステムにおいて、光プロセッサは光行列処理ユニットを含み、光行列処理ユニットは、
光入力行列を受信するための入力導波管の行列と、
受動回折光学素子を備える光干渉ユニットであって、入力導波管の行列と光学的に連絡しており、光信号の第2の行列への光入力行列の線形変換を実行するように構成される、光干渉ユニットと、
光信号の第2の行列を導くための、光干渉ユニットと光学的に連絡している出力導波管の行列とを含み、入力導波管の行列の中の少なくとも1つの入力導波管は、光干渉ユニットを介して、出力導波管の行列の中の各出力導波管と光学的に連絡している。
【０７０３】
実施形態40：実施形態39のシステムにおいて、光干渉ユニットは、穴または縞のうちの少なくとも1つの有する基板を含み、穴は100nmから10μmの範囲の寸法を有し、縞の幅は100nmから10μmの範囲にある。
【０７０４】
実施形態41：実施形態39のシステムにおいて、光干渉ユニットは、3次元構成で配置される受動回折光学素子を有する基板を含む。
【０７０５】
実施形態42：実施形態41のシステムにおいて、基板は、立方体、円柱、角柱、または不規則な容積のうちの少なくとも1つの形状を有する。
【０７０６】
実施形態43：実施形態39のシステムにおいて、光プロセッサは、受動回折光学素子を有するホログラムを含む光干渉ユニットを含み、光プロセッサは、光入力行列を表す変調された光を受信し、光が光出力行列としてホログラムから出てくるまで、光がホログラムを通過するにつれて光を継続的に変換するように構成される。
【０７０７】
実施形態44：実施形態35または39のシステムにおいて、光干渉ユニットは、受動回折光学素子を有する基板を含み、基板は、シリコン、酸化シリコン、窒化シリコン、クォーツ、ニオブ酸リチウム、相変化材料、またはポリマーのうちの少なくとも1つを備える。
【０７０８】
実施形態45：実施形態35または39のシステムにおいて、光干渉ユニットは、受動回折光学素子を有する基板を含み、基板は、ガラス基板またはアクリル基板のうちの少なくとも1つを備える。
【０７０９】
実施形態46：実施形態33のシステムにおいて、受動回折光学素子は、ドーパントによって部分的に形成される。
【０７１０】
実施形態47：実施形態33のシステムにおいて、行列処理は、ニューラルネットワークによる、光入力ベクトルによって表される入力データの処理を表す。
【０７１１】
実施形態48：実施形態33のシステムにおいて、光プロセッサは、
複数の光出力を生成するように構成されるレーザーユニットと、
レーザーユニットに結合され、レーザーユニットによって生成された複数の光出力を複数の変調器制御信号に基づいて変調することによって光入力ベクトルを生成するように構成される、複数の光変調器と、
複数の光変調器に結合された光行列処理ユニットであって、受動回折光学素子によって定義される複数の重みに基づいて光入力ベクトルを光出力ベクトルに変換するように構成される受動回折光学素子を備える、光行列処理ユニットと、
光行列処理ユニットに結合され、光出力ベクトルに対応する複数の出力電気信号を生成するように構成される、光検出ユニットと
を含む。
【０７１２】
実施形態49：実施形態48のシステムにおいて、受動回折光学素子は3次元構成で配置され、複数の光変調器は光変調器の2次元の列を備え、光検出ユニットは光検出器の2次元の列を備える。
【０７１３】
実施形態50：実施形態48のシステムにおいて、光行列処理ユニットは、入力導波管の列、光干渉ユニット、および出力導波管の列を支持して保護するためのハウジングモジュールを含み、
光プロセッサは、光行列処理ユニットを受信するように構成される受信モジュールを備え、受信モジュールは、光行列処理ユニットが複数の光変調器から光入力ベクトルを受信することを可能にするための第1のインターフェースと、光行列処理ユニットが光出力ベクトルを光検出ユニットに送信することを可能にするための第2のインターフェースとを備える。
【０７１４】
実施形態51：実施形態48のシステムにおいて、複数の出力電気信号は、複数の電圧信号または複数の電流信号のうちの少なくとも1つを含む。
【０７１５】
実施形態52：実施形態48のシステムにおいて、システムは、
メモリユニットと、
複数の変調器制御信号を生成するように構成されるデジタルアナログコンバータ(DAC)ユニットと、
光検出ユニットに結合され、複数の出力電気信号を複数のデジタル化された出力に変換するように構成される、アナログデジタル変換(ADC)ユニットと、
コントローラであって、
コンピュータから、入力データセットを備える人工ニューラルネットワーク計算要求を受信することであって、入力データセットが第1のデジタル入力ベクトルを備える、受信することと、
メモリユニットに、入力データセットを記憶することと、
DACユニットを通じて、第1のデジタル入力ベクトルに基づいて第1の複数の変調器制御信号を生成することと
を含む動作を実行するように構成される集積回路を含む、コントローラと
を含む。
【０７１６】
実施形態53：方法は、
受動回折光学素子を備える光行列処理ユニットを3D印刷するステップを含み、受動回折光学素子は、光入力ベクトルまたは行列を、光入力ベクトルまたは行列および回折光学素子の配置により定義される所定のベクトルに適用される行列処理の結果を表す光出力ベクトルまたは行列に変換するように構成される。
【０７１７】
実施形態54：方法は、
1つまたは複数のレーザービームを使用して、受動回折光学素子を備えるホログラムを生成するステップを含み、受動回折光学素子は、光入力ベクトルまたは行列を、光入力ベクトルまたは行列および回折光学素子の配置により定義される所定のベクトルに適用される行列処理の結果を表す光出力ベクトルまたは行列に変換するように構成される。
【０７１８】
実施形態55：システムは、
1次元に配置された受動回折光学素子を備える光プロセッサを含み、受動回折光学素子は、光入力を、光入力および回折光学素子の配置により定義される所定のベクトルに適用される行列処理の結果を表す光出力に変換するように構成される。
【０７１９】
実施形態56：実施形態55のシステムにおいて、行列処理は、光入力と、回折光学素子の配置により定義される所定のベクトルとの行列乗算を含む。
【０７２０】
実施形態57：実施形態55のシステムにおいて、光プロセッサは光行列処理ユニットを含み、光行列処理ユニットは、
光入力を受信するための入力導波管と、
受動回折光学素子を備える光干渉ユニットであって、入力導波管と光学的に連絡しており、光入力の線形変換を実行するように構成される、光干渉ユニットと、
光出力を導くための、光干渉ユニットと光学的に連絡している出力導波管とを含む。
【０７２１】
実施形態58：実施形態57のシステムにおいて、光干渉ユニットは、穴または格子のうちの少なくとも1つを有する基板を含み、穴または格子要素は、100nmから10μmの範囲の寸法を有する。
【０７２２】
実施形態59：システムは、
メモリユニットと、
複数の変調器制御信号を生成するように構成されるデジタルアナログコンバータ(DAC)ユニットと、
光プロセッサであって、
複数の光出力を生成するように構成されるレーザーユニットと、
レーザーユニットおよびDACユニットに結合される複数の光変調器であって、レーザーユニットによって生成された複数の光出力を複数の変調器制御信号に基づいて変調することによって光入力ベクトルを生成するように構成される、複数の光変調器と、
複数の光変調器に結合される光行列処理ユニットであって、受動回折光学素子によって定義される複数の重みに基づいて光入力ベクトルを光出力ベクトルに変換するように構成される受動回折光学素子を備える、光行列処理ユニットと、
光行列処理ユニットに結合され、光出力ベクトルに対応する複数の出力電気信号を生成するように構成される、光検出ユニットと
を含む、光プロセッサと、
光検出ユニットに結合され、複数の出力電気信号を複数のデジタル化された光出力に変換するように構成される、アナログデジタル変換(ADC)ユニットと、
コントローラであって、
コンピュータから、入力データセットを備える人工ニューラルネットワーク計算要求を受信することであって、入力データセットが第1のデジタル入力ベクトルを備える、受信することと、
メモリユニットに、入力データセットを記憶することと、
DACユニットを通じて、第1のデジタル入力ベクトルに基づいて第1の複数の変調器制御信号を生成することと
を含む動作を実行するように構成される集積回路を含む、コントローラと
を含む。
【０７２３】
実施形態60：実施形態59のシステムにおいて、行列処理ユニットは、光入力ベクトルを、デジタル入力ベクトルと受動回折光学素子により定義される所定のベクトルとの行列乗算の積を表す光出力ベクトルに変換するように構成される、受動回折光学素子を含む。
【０７２４】
実施形態61：実施形態59のシステムにおいて、動作はさらに、
ADCユニットから、光行列処理ユニットの光出力ベクトルに対応する第1の複数のデジタル化された光出力を取得することであって、第1の複数のデジタル化された光出力が第1のデジタル出力ベクトルを形成する、取得することと、
第1のデジタル出力ベクトルに対して非線形変換を実行して、第1の変換されたデジタル出力ベクトルを生成することと、
メモリユニットに、第1の変換されたデジタル出力ベクトルを記憶することと
を含む。
【０７２５】
実施形態62：実施形態61のシステムにおいて、システムは、メモリユニットに入力データセットを記憶することと、メモリユニットに第1の変換されたデジタル出力ベクトルを記憶することとの間に経過した時間として定義される、第1のループ期間を有し、
第1のループ期間は1ns以下である。
【０７２６】
実施形態63：実施形態61のシステムにおいて、動作はさらに、
第1の変換されたデジタル出力ベクトルに基づいて生成された人工ニューラルネットワーク出力を出力することを含む。
【０７２７】
実施形態64：実施形態61のシステムにおいて、動作はさらに、
DACユニットを通じて、第1の変換されたデジタル出力ベクトルに基づいて第2の複数の変調器制御信号を生成することを含む。
【０７２８】
実施形態65：実施形態61のシステムにおいて、入力データセットはさらに第2のデジタル入力ベクトルを含み、
動作はさらに、
DACユニットを通じて、第2のデジタル入力ベクトルに基づいて第2の複数の変調器制御信号を生成することと、
ADCユニットから、光行列処理ユニットの光出力ベクトルに対応する第2の複数のデジタル化された光出力を取得することであって、第2の複数のデジタル化された光出力が第2のデジタル出力ベクトルを形成する、取得することと、
第2のデジタル出力ベクトルに対して非線形変換を実行して、第2の変換されたデジタル出力ベクトルを生成することと、
メモリユニットに、第2の変換されたデジタル出力ベクトルを記憶することと、
第1の変換されたデジタル出力ベクトルおよび第2の変換されたデジタル出力ベクトルに基づいて生成された人工ニューラルネットワーク出力を出力することと
を含み、
光行列処理ユニットの光出力ベクトルは、受動回折光学素子によって定義される複数の重みに基づいて光行列処理ユニットによって変換される第2の複数の変調器制御信号に基づいて生成される第2の光入力ベクトルに起因する。
【０７２９】
実施形態66：実施形態59のシステムにおいて、システムはさらに、
光検出ユニットとADCユニットとの間に配置されるアナログ非線形性ユニットを含み、アナログ非線形性ユニットは、光検出ユニットから複数の出力電気信号を受信し、非線形伝達関数を適用し、複数の変換された出力電気信号をADCユニットに出力するように構成され、
動作はさらに、
ADCユニットから、複数の変換された出力電気信号に対応する第1の複数の変換されたデジタル化された出力電気信号を取得することであって、第1の複数の変換されたデジタル化された出力電気信号が第1の変換されたデジタル出力ベクトルを形成する、取得することと、
メモリユニットに、第1の変換されたデジタル出力ベクトルを記憶することと
を含む。
【０７３０】
実施形態67：実施形態59のシステムにおいて、コントローラの集積回路は、8GHz以上のレートで第1の複数の変調器制御信号を生成するように構成される。
【０７３１】
実施形態68：実施形態59のシステムにおいて、システムはさらに、
DACユニットと複数の光変調器との間に配置されるアナログメモリユニットであって、アナログ電圧を記憶し、記憶されているアナログ電圧を出力するように構成される、アナログメモリユニットと、
光検出ユニットとADCユニットとの間に配置されるアナログ非線形性ユニットであって、光検出ユニットから複数の出力電気信号を受信し、非線形伝達関数を適用し、複数の変換された出力電気信号を出力するように構成される、アナログ非線形性ユニットと
を含む。
【０７３２】
実施形態69：実施形態68のシステムにおいて、アナログメモリユニットは複数のキャパシタを含む。
【０７３３】
実施形態70：実施形態68のシステムにおいて、アナログメモリユニットは、アナログ非線形性ユニットの複数の変換された出力電気信号を受信して記憶し、記憶されている複数の変換された出力電気信号を複数の光変調器に出力するように構成され、
動作はさらに、
第1の複数の変調器制御信号を生成したことに基づいて、アナログメモリユニットに、アナログ非線形性ユニットの複数の変換された出力電気信号を記憶することと、
アナログメモリユニットを通じて、記憶されている変換された出力電気信号を出力することと、
ADCユニットから、第2の複数の変換されたデジタル化された出力電気信号を取得することであって、第2の複数の変換されたデジタル化された出力電気信号が第2の変換されたデジタル出力ベクトルを形成する、取得することと、
メモリユニットに、第2の変換されたデジタル出力ベクトルを記憶することと
を含む。
【０７３４】
実施形態71：実施形態59のシステムにおいて、人工ニューラルネットワーク計算要求の入力データセットは、複数のデジタル入力ベクトルを含み、
レーザーユニットは、複数の波長を生成するように構成され、
複数の光変調器は、
複数の光入力ベクトルを生成するように構成される光変調器のバンクであって、バンクの各々が複数の波長のうちの1つに対応し、それぞれの波長を有するそれぞれの光入力ベクトルを生成する、バンクと、
複数の光入力ベクトルを、複数の波長を備える組み合わされた光入力ベクトルへと組み合わせるように構成される、光マルチプレクサと
を含み、
光検出ユニットはさらに、複数の波長を逆多重化し、複数の逆多重化された出力電気信号を生成するように構成され、
動作は、
ADCユニットから、複数のデジタル化された逆多重化された光出力を取得することであって、複数のデジタル化された逆多重化された光出力が複数の第1のデジタル出力ベクトルを形成し、複数の第1のデジタル出力ベクトルの各々が複数の波長のうちの1つに対応する、取得することと、
複数の第1のデジタル出力ベクトルの各々に対して非線形変換を実行して、複数の変換された第1のデジタル出力ベクトルを生成することと、
メモリユニットに、複数の変換された第1のデジタル出力ベクトルを記憶することと
を含み、
複数のデジタル入力ベクトルの各々は、複数の光入力ベクトルのうちの1つに対応する。
【０７３５】
実施形態72：実施形態59のシステムにおいて、人工ニューラルネットワーク計算要求は、複数のデジタル入力ベクトルを含み、
レーザーユニットは、複数の波長を生成するように構成され、
複数の光変調器は、
複数の光入力ベクトルを生成するように構成される光変調器のバンクであって、バンクの各々が複数の波長のうちの1つに対応し、それぞれの波長を有するそれぞれの光入力ベクトルを生成する、バンクと、
複数の光入力ベクトルを、複数の波長を備える組み合わされた光入力ベクトルへと組み合わせるように構成される、光マルチプレクサとを含み、
動作は、
ADCユニットから、複数の波長を備える光出力ベクトルに対応する第1の複数のデジタル化された光出力を取得することであって、第1の複数のデジタル化された光出力が第1のデジタル出力ベクトルを形成する、取得することと、
第1のデジタル出力ベクトルに対して非線形変換を実行して、第1の変換されたデジタル出力ベクトルを生成することと、
メモリユニットに、第1の変換されたデジタル出力ベクトルを記憶することと
を含む。
【０７３６】
実施形態73：実施形態59のシステムにおいて、DACユニットは、
複数の1ビット変調器制御信号を生成するように構成される1ビットDACユニットを含み、
ADCユニットの分解能は1ビットであり、
第1のデジタル入力ベクトルの分解能はNビットであり、
動作は、
第1のデジタル入力ベクトルをN個の1ビット入力ベクトルに分解することであって、N個の1ビット入力ベクトルの各々が、第1のデジタル入力ベクトルのNビットのうちの1つに対応する、分解することと、
1ビットDACユニットを通じて、N個の1ビット入力ベクトルに対応するN個の1ビット変調器制御信号のシーケンスを生成することと、
ADCユニットから、N個の1ビット変調器制御信号のシーケンスに対応するN個のデジタル化された1ビット光出力のシーケンスを取得することと、
N個のデジタル化された1ビット光出力のシーケンスからNビットデジタル出力ベクトルを構築することと、
構築されたNビットデジタル出力ベクトルに対して非線形変換を実行して、変換されたNビットデジタル出力ベクトルを生成することと、
メモリユニットに、変換されたNビットのデジタル出力ベクトルを記憶することと
を含む。
【０７３７】
実施形態74：実施形態59のシステムにおいて、メモリユニットは、デジタル入力ベクトルを記憶するように構成され少なくとも1つのSRAMを備える、デジタル入力ベクトルメモリを含む。
【０７３８】
実施形態75：実施形態59のシステムにおいて、レーザーユニットは、
光を生成するように構成されるレーザー源と、
レーザー源によって生成された光を複数の光出力に分割するように構成される光パワー分割器と
を含み、複数の光出力の各々は実質的に等しいパワーを有する。
【０７３９】
実施形態76：実施形態59のシステムにおいて、複数の光変調器は、MZI変調器、リング共振変調器、または電界吸収型変調器のうちの1つを含む。
【０７４０】
実施形態77：実施形態59のシステムにおいて、光検出ユニットは、
複数の光検出器と、
光検出器によって生成された光電流を複数の出力電気信号に変換するように構成される複数の増幅器と
を含む。
【０７４１】
実施形態78：実施形態59のシステムにおいて、集積回路は、特定用途向け集積回路を含む。
【０７４２】
実施形態79：実施形態59のシステムにおいて、光行列処理ユニットは、
光入力ベクトルを受信するための入力導波管の列と、
光信号の第2の列への光入力ベクトルの線形変換を実行するための、入力導波管の列と光学的に連絡している光干渉ユニットであって、受動回折光学素子を備える、光干渉ユニットと、
光信号の第2の列を導くための、光干渉ユニットと光学的に連絡している出力導波管の列と
を含み、入力導波管の列の中の少なくとも1つの入力導波管は、光干渉ユニットを介して、出力導波管の列の中の各出力導波管と光学的に連絡している。
【０７４３】
実施形態80：システムは、
メモリユニットと、
複数の変調器制御信号を生成するように構成されるドライバユニットと、
光プロセッサであって、
複数の光出力を生成するように構成されるレーザーユニットと、
レーザーユニットおよびドライバユニットに結合された複数の光変調器であって、レーザーユニットによって生成された複数の光出力を複数の変調器制御信号に基づいて変調することによって光入力ベクトルを生成するように構成される、複数の光変調器と、
複数の光変調器およびドライバユニットに結合された光行列処理ユニットであって、受動回折光学素子を備える光行列処理ユニットが、受動回折光学素子により定義される複数の重み制御信号に基づいて光入力ベクトルを光出力ベクトルに変換するように構成される、光行列処理ユニットと、
光行列処理ユニットに結合され光出力ベクトルに対応する複数の出力電気信号を生成するように構成される、光検出ユニットと、
光検出ユニットに結合され、複数の出力電気信号を複数のデジタル化された1ビット光出力に変換するように構成される、比較器ユニットと、
コントローラであって、
コンピュータから、入力データセットを備える人工ニューラルネットワーク計算要求を受信することであって、入力データセットがNビットの分解能を有する第1のデジタル入力ベクトルを備える、受信することと、
メモリユニットに入力データセットを記憶することと、
第1のデジタル入力ベクトルをN個の1ビット入力ベクトルに分解することであって、N個の1ビット入力ベクトルの各々が第1のデジタル入力ベクトルのNビットのうちの1つに対応する、分解することと、
ドライバユニットを通じて、N個の1ビット入力ベクトルに対応するN個の1ビット変調器制御信号のシーケンスを生成することと、
比較器ユニットから、N個の1ビット変調器制御信号のシーケンスに対応するN個のデジタル化された1ビット光出力のシーケンスを取得することと、
N個のデジタル化された1ビット光出力のシーケンスからNビットデジタル出力ベクトルを構築することと、
構築されたNビットデジタル出力ベクトルに対して非線形変換を実行して、変換されたNビットデジタル出力ベクトルを生成することと、
メモリユニットに、変換されたNビットデジタル出力ベクトルを記憶することと
を含む動作を実行するように構成される集積回路を含む、コントローラと
を含む。
【０７４４】
実施形態81：実施形態80のシステムにおいて、光行列処理ユニットは、光入力ベクトルを、光入力ベクトルによって表される入力ベクトルと、回折光学素子により定義される所定のベクトルとの行列乗算の積を表す光出力ベクトルに変換するように構成される、光行列乗算ユニットを含む。
【０７４５】
実施形態82：光行列処理ユニットを有するシステムにおいて人工ニューラルネットワーク計算を実行するための方法は、
コンピュータから、第1のデジタル入力ベクトルを備える入力データセットを備える人工ニューラルネットワーク計算要求を受信するステップと、
メモリユニットに入力データセットを記憶するステップと、
デジタルアナログコンバータ(DAC)ユニットを通じて、第1のデジタル入力ベクトルに基づいて第1の複数の変調器制御信号を生成するステップと、
回折光学素子のある配置を備える光行列処理ユニットを使用することによって、光入力ベクトルを光出力ベクトルに変換するステップであって、光出力ベクトルが、光入力ベクトルおよび回折光学素子の配置によって定義される所定のベクトルに適用された行列処理の結果を表す、ステップと、
アナログデジタル変換(ADC)ユニットから、光行列処理ユニットの光出力ベクトルに対応する第1の複数のデジタル化された光出力を取得するステップであって、第1の複数のデジタル化された光出力が第1のデジタル出力ベクトルを形成する、ステップと、
コントローラによって、第1のデジタル出力ベクトルに対して非線形変換を実行して、第1の変換されたデジタル出力ベクトルを生成するステップと、
メモリユニットに、第1の変換されたデジタル出力ベクトルを記憶するステップと、
コントローラによって、第1の変換されたデジタル出力ベクトルに基づいて生成された人工ニューラルネットワーク出力を出力するステップと
を含む。
【０７４６】
実施形態83：実施形態82の方法において、光入力ベクトルを光出力ベクトルに変換することは、光入力ベクトルを、デジタル入力ベクトルと回折光学素子の配置により定義される所定のベクトルとの行列乗算の積を表す光出力ベクトルに変換することを含む。
【０７４７】
実施形態84：方法は、
電子フォーマットで入力情報を提供するステップと、
電子入力情報の少なくとも一部を光入力ベクトルに変換するステップと、
受動回折光学素子を備える光プロセッサによる光行列処理に基づいて光入力ベクトルを光出力ベクトルに光学的に変換するステップと、
光出力ベクトルを電子フォーマットに変換するステップと、
非線形変換を電子的に変換された光出力ベクトルに電子的に適用して電子フォーマットで出力情報を提供するステップと
を含む。
【０７４８】
実施形態85：実施形態84の方法において、光入力ベクトルを光出力ベクトルに光学的に変換することは、光入力ベクトルによって表されるデジタル入力ベクトルと、受動回折光学素子により定義される所定のベクトルとの光行列乗算に基づいて、光入力ベクトルを光出力ベクトルに光学的に変換することを含む。
【０７４９】
実施形態86：実施形態84の方法において、方法はさらに、
電子フォーマットの提供された出力情報に対応する新しい電子入力情報に関して、電気から光への変換、光変換、光から電気への変換、および電子的に適用される非線形変換を繰り返すステップを含む。
【０７５０】
実施形態87：実施形態86の方法において、最初の光変換のための光行列処理および繰り返される光変換の光行列処理は同じであり、人工ニューラルネットワークの同じ層に対応する。
【０７５１】
実施形態88：実施形態84の方法において、方法はさらに、
電子入力情報の異なる部分に関して、電気から光への変換、光変換、光から電気への変換、および電子的に適用される非線形変換を繰り返すステップを含み、
最初の光変換のための光行列処理および繰り返される光変換の光行列処理は同じであり、人工ニューラルネットワークのある層に対応する。
【０７５２】
実施形態89：システムは、
長さNの入力ベクトルを処理するように構成される光行列処理ユニットを含み、光行列処理ユニットは、指向性カプラのN+2個の層および位相シフタのN個の層を備え、Nは正の整数である。
【０７５３】
実施形態90：実施形態89のシステムにおいて、光行列処理ユニットは、指向性カプラのN+2個の層しか含まない。
【０７５４】
実施形態91：実施形態89のシステムにおいて、光行列処理ユニットは、光行列乗算ユニットを含む。
【０７５５】
実施形態92：実施形態89のシステムにおいて、光行列処理ユニットは、
基板と、
基板上に配設された相互接続された干渉計と
を含み、各干渉計は基板上に配設された光導波管を備え、指向性カプラおよび位相シフタは相互接続された干渉計の一部である。
【０７５６】
実施形態93：実施形態89のシステムにおいて、光行列処理ユニットは、指向性カプラの最後の層に続く減衰器の層を含む。
【０７５７】
実施形態94：実施形態93のシステムにおいて、減衰器の層はN個の減衰器を含む。
【０７５８】
実施形態95：実施形態93のシステムにおいて、システムは、減衰器からの出力を検出するための1つまたは複数のホモダイン検出器を含む。
【０７５９】
実施形態96：実施形態89のシステムにおいて、N=3であり、光行列処理ユニットは、
入力ベクトルを受信するように構成される入力端子と、
入力端子に結合された指向性カプラの第1の層と、
指向性カプラの第1の層に結合された位相シフタの第1の層と、
位相シフタの第1の層に結合された指向性カプラの第2の層と、
指向性カプラの第2の層に結合された位相シフタの第2の層と、
位相シフタの第2の層に結合された指向性カプラの第3の層と、
指向性カプラの第3の層に結合された位相シフタの第3の層と、
位相シフタの第3の層に結合された指向性カプラの第4の層と、
指向性カプラの第4の層に結合された指向性カプラの第5の層と
を含む。
【０７６０】
実施形態97：実施形態89のシステムにおいて、N=4であり、光行列処理ユニットは、
入力ベクトルを受信するように構成される入力端子と、
各々の後に位相シフタの層がある、指向性カプラの第1の層、第2の層、第3の層、および第4の層と
を含み、
指向性カプラの第1の層は入力端子に結合され、
指向性カプラの第2から最後の層は位相シフタの第4の層に結合され、
指向性カプラの最終の層は指向性カプラの第2から最後の層に結合される。
【０７６１】
実施形態98：実施形態89のシステムにおいて、N=8であり、光行列処理ユニットは、
入力ベクトルを受信するように構成される入力端子と、
各々の後に位相シフタの層がある指向性カプラの8つの層と
を含み、
指向性カプラの第1の層は入力端末に結合され、
指向性カプラの第2から最後の層は位相シフタの第8の層に結合され、
指向性カプラの最終の層は指向性カプラの第2から最後の層に結合される。
【０７６２】
実施形態99：実施形態89のシステムにおいて、光行列乗算ユニットは、
入力ベクトルを受信するように構成される入力端子と、
各々の後に位相シフタの層がある指向性カプラのN個の層と
を含み、
指向性カプラの第1の層は入力端子に結合され、
指向性カプラの第2から最後の層は位相シフタの第Nの層に結合され、
指向性カプラの最終の層は指向性カプラの第2から最後の層に結合される。
【０７６３】
実施形態100：実施形態99のシステムにおいて、Nは偶数である。
【０７６４】
実施形態101：実施形態100のシステムにおいて、指向性カプラの第iの層の各々がN/2個の指向性カプラを含み、iは奇数であり、
指向性カプラの第jの層の各々がN/2-1個の指向性カプラを含み、jは偶数である。
【０７６５】
実施形態102：実施形態100のシステムにおいて、iが奇数である指向性カプラの第iの層の各々に対して、第kの指向性カプラは、前の層の第(2k-1)の出力および第2kの出力に結合され、kは1からN/2の整数である。
【０７６６】
実施形態103：実施形態100のシステムにおいて、jが偶数である指向性カプラの第jの層の各々に対して、第mの指向性カプラは、前の層の第2mの出力および第(2m+1)の出力に結合され、mは1からN/2-1の整数である。
【０７６７】
実施形態104：実施形態100のシステムにおいて、位相シフタの第iの層の各々は、iが奇数であるN個の位相シフタを含み、
位相シフタの第jの層の各々は、jが偶数であるN-2個の位相シフタを含む。
【０７６８】
実施形態105：実施形態99のシステムにおいて、Nは奇数である。
【０７６９】
実施形態106：実施形態105のシステムにおいて、指向性カプラの各層は(N-1)/2個の指向性カプラを含む。
【０７７０】
実施形態107：実施形態105のシステムにおいて、位相シフタの各層はN-1個の位相シフタを含む。
【０７７１】
実施形態108：システムは、
第1のデータセットを生成するように構成される生成器であって、光行列処理ユニットを備える、生成器と、
第1のデータセットからのデータおよび第3のデータセットからのデータを備える第2のデータセットを受信し、第1のデータセットの中のデータが第3のデータセットの中のデータの特性と同様の特性を有し、第2のデータセットの中のデータを、第1のデータセットからのデータまたは第3のデータセットからのデータとして分類するように構成される、区別器と
を含む。
【０７７２】
実施形態109：実施形態108のシステムにおいて、光行列処理ユニットは、
(i)実施形態1から25のいずれか1つの光行列乗算ユニット、
(ii)実施形態32から52および55から81のいずれか1つの受動回折光学素子、または
(iii)実施形態89から107のいずれか1つの光行列処理ユニット
のうちの少なくとも1つを含む。
【０７７３】
実施形態110：実施形態108のシステムにおいて、第3のデータセットは実データを含み、生成器は、実データに似た合成データを生成するように構成され、区別器は、データを実データまたは合成データとして分類するように構成される。
【０７７４】
実施形態111：実施形態108のシステムにおいて、生成器は、自律車両、医療診断システム、不正検出システム、気象予報システム、金融予測システム、顔認識システム、発話認識システム、または製品欠陥検出システムのうちの少なくとも1つを訓練するためのデータセットを生成するように構成される。
【０７７５】
実施形態112：実施形態108のシステムにおいて、生成器は、実際の物体または実際のシーンのうちの少なくとも1つの画像に似た画像を生成するように構成され、区別器は、(i)実際の物体もしくは実際のシーンの画像、または(ii)生成器によって生成された合成画像として、受信された画像を分類するように構成される。
【０７７６】
実施形態113：実施形態112のシステムにおいて、実際の物体は、人々、動物、細胞、組織、または製品のうちの少なくとも1つを含み、実際のシーンは、車両が遭遇するシーンを備える。
【０７７７】
実施形態114：実施形態113のシステムにおいて、区別器は、受信された画像が(i)実際の人々、実際の動物、実際の細胞、実際の組織、実際の製品、もしくは車両が遭遇する実際のシーンの画像であるか、または(ii)生成器によって生成された合成画像であるかを分類するように構成される。
【０７７８】
実施形態115：実施形態113のシステムにおいて、車両は、自動二輪車、車、トラック、列車、ヘリコプター、航空機、潜水艦、船舶、またはドローンのうちの少なくとも1つを含む。
【０７７９】
実施形態116：実施形態113のシステムにおいて、生成器は、人の疾患、動物の疾患、または植物の疾患のうちの少なくとも1つと関連付けられる、組織または細胞の画像を生成するように構成される。
【０７８０】
実施形態117：実施形態116のシステムにおいて、生成器は、人の疾患と関連付けられる組織または細胞の画像を生成するように構成され、疾患は、癌、パーキンソン病、鎌状赤血球貧血、心疾患、循環器疾患、糖尿病、胸部疾患、または皮膚疾患のうちの少なくとも1つを備える。
【０７８１】
実施形態118：実施形態116のシステムにおいて、生成器は、癌と関連付けられる組織または細胞の画像を生成するように構成され、癌は、皮膚癌、乳癌、肺癌、肝臓癌、前立腺癌、または脳癌のうちの少なくとも1つを含む。
【０７８２】
実施形態119：実施形態108のシステムにおいて、システムはさらに、入力として生成器に提供されるランダムノイズを生成するように構成されるランダムノイズ生成器を含み、生成器は、ランダムノイズに基づいて第1のデータセットを生成するように構成される。
【０７８３】
実施形態120：システムは、
ランダムノイズを生成するように構成されるランダムノイズ生成器と、
ランダムノイズに基づいてデータを生成するように構成される生成器と
を含み、生成器は光行列処理ユニットを備える。
【０７８４】
実施形態121：実施形態120のシステムにおいて、光行列処理ユニットは、
(i)実施形態1から25のいずれか1つの光行列乗算ユニット、
(ii)実施形態32から52および55から81のいずれか1つの受動回折光学素子、または
(iii)実施形態89から107のいずれか1つの光行列処理ユニット
のうちの少なくとも1つを含む。
【０７８５】
実施形態122：、システムは、
2つの入力信号に対して論理関数を実行するように構成されるフォトニクス回路を含み、フォトニクス回路は、
2つの入力端子および2つの出力端子を有する第1の指向性カプラであって、2つの入力端子が2つの入力信号を受信するように構成される、第1の指向性カプラと、
第1の指向性カプラの2つの出力端子における信号の位相を修正するように構成される位相シフタの第1のペアと、
2つの入力端子および2つの出力端子を有する第2の指向性カプラであって、2つの入力端子が位相シフタの第1のペアから信号を受信するように構成される、第2の指向性カプラと、
第2の指向性カプラの2つの出力端子における信号の位相を修正するように構成される位相シフタの第2のペアと
を含む。
【０７８６】
実施形態123：実施形態122のシステムにおいて、位相シフタは、フォトニクス回路に回転
【０７８７】
【数７８】
2021527287.tif 000080
【０７８８】
を実施させるように構成される。
【０７８９】
実施形態124：実施形態122のシステムにおいて、入力信号x1およびx2が第1の指向性カプラの2つの入力端子に提供されるとき、位相シフタは、フォトニクス回路に回転
【０７９０】
【数７９】
2021527287.tif 000081
【０７９１】
を実施させるように構成される。
【０７９２】
実施形態125：実施形態124のシステムにおいて、フォトニクス回路は、フォトニクス回路に回転
【０７９３】
【数８０】
2021527287.tif 000082
【０７９４】
を実施させるために位相シフタの第2のペアから信号の絶対値を生成するように構成される第1の光検出器を含む。
【０７９５】
実施形態126：実施形態125のシステムにおいて、フォトニクス回路は、第1の光検出器の出力信号を閾値と比較してバイナリ値を生成し、フォトニクス回路に出力
【０７９６】
【数８１】
2021527287.tif 000083
【０７９７】
を生成させるように構成される、比較器を含む。
【０７９８】
実施形態127：実施形態125のシステムにおいて、フォトニクス回路は、光検出器の出力信号が第1の指向性カプラの入力端子にフィードバックされ、第1の指向性カプラ、位相シフタの第1のペア、第2の指向性カプラ、および位相シフタの第2のペアを通され、光検出器により検出されて、フォトニクス回路に演算
【０７９９】
【数８２】
2021527287.tif 000084
【０８００】
を実施させるように構成される、フィードバック機構を含み、この演算はAND(x1,x2)およびOR(x1,x2)を生み出す。
【０８０１】
実施形態128：実施形態125のシステムにおいて、フォトニクス回路は、
2つの入力端子および2つの出力端子を有する第3の指向性カプラであって、2つの入力端子は位相シフタの第2のペアから信号を受信するように構成される、第3の指向性カプラと、
第3の指向性カプラの2つの出力端子において信号の位相を修正するように構成される位相シフタの第3のペアと、
2つの入力端子および2つの出力端子を有する第4の指向性カプラであって、2つの入力端子は位相シフタの第3のペアから信号を受信するように構成される、第4の指向性カプラと、
第4の指向性カプラの2つの出力端子において信号の位相を修正するように構成される位相シフタの第4のペアと、
位相シフタの第4のペアから信号の絶対値を生成して、フォトニクス回路に演算
【０８０２】
【数８３】
2021527287.tif 000085
【０８０３】
を実施させるように構成される第2の光検出器と
を含み、この演算はAND(x1,x2)およびOR(x1,x2)を生み出す。
【０８０４】
実施形態129：実施形態122のシステムにおいて、システムは、バイトニックソータのソート機能がフォトニクス回路を使用して実行されるように構成される、バイトニックソータを含む。
【０８０５】
実施形態130：実施形態122のシステムにおいて、システムは、フォトニクス回路を使用してハッシュ関数を実行するように構成されるデバイスを含む。
【０８０６】
実施形態131：実施形態130のシステムにおいて、ハッシュ関数はセキュアハッシュアルゴリズム2(SHA-2)を含む。
【０８０７】
実施形態132：装置は、
複数の光導波管であって、複数の入力値のセットが光導波管によって搬送されるそれぞれの光信号上に符号化される、複数の光導波管と、
複数の複製モジュールであって、1つまたは複数光信号の少なくとも2つのサブセットの各々に対して、複製モジュールのうちの1つまたは複数の対応するセットが、1つまたは複数の光信号のサブセットを光信号の2つ以上の複製に分割するように構成される、複数の複製モジュールと、
複数の乗算モジュールであって、1つまたは複数の光信号の第1のサブセットの少なくとも2つの複製の各々に対して、対応する乗算モジュールが、光振幅変調を使用して第1のサブセットの1つまたは複数の光信号を1つまたは複数の行列要素値と乗算するように構成され、乗算モジュールのうちの少なくとも1つが入力ポートおよび2つの出力ポートを含む光振幅変調器を含み、関連する光信号のペアが、関連する光信号の振幅間の差が入力値を符号付きの行列要素値と乗算した結果に対応するように2つの出力ポートから提供される、複数の乗算モジュールと、
1つまたは複数の加算モジュールであって、乗算モジュールのうちの2つ以上の結果に対して、加算モジュールの対応する1つが、乗算モジュールの2つ以上の結果の合計を表す電気信号を生み出すように構成される、1つまたは複数の加算モジュールと
を含む。
【０８０８】
実施形態133：実施形態132の装置において、それぞれの光信号上に符号化された複数の入力値のセットの中の入力値は、1つまたは複数の行列要素値を含む行列と乗算されている、入力ベクトルの要素を表す。
【０８０９】
実施形態134：実施形態132または133の装置において、複数の出力値のセットは、1つまたは複数の加算モジュールによって生み出されるそれぞれの電気信号上に符号化され、複数の出力値のセットの中の出力値は、入力ベクトルが行列と乗算されることに起因する出力ベクトルの要素を表す。
【０８１０】
実施形態135：実施形態132から134のいずれか1つの装置において、光導波管によって搬送される光信号の各々は、光信号のすべてに対して実質的に同一である共通の波長を有する光波を含む。
【０８１１】
実施形態136：実施形態132から135のいずれか1つの装置において、複製モジュールは、入力ポートにおける光波のパワーの所定の割合を第1の出力ポートに送り、入力ポートにおける光波のパワーの残りの割合を第2の出力ポートに送る、光分割器を含む少なくとも1つの複製モジュールを含む。
【０８１２】
実施形態137：実施形態136の装置において、光分割器は、入力光導波管によって導かれる光波のパワーの所定の割合を第1の出力光導波管に送り、入力光導波管によって導かれる光波のパワーの残りの割合を第2の出力光導波管に送る、導波管光分割器を含む。
【０８１３】
実施形態138：実施形態137の装置において、入力光導波管の導波モード(guided mode)は、第1の出力光導波管および第2の出力光導波管の各々の導波モードに断熱的に結合される。
【０８１４】
実施形態139：実施形態136から138のいずれか1つの装置において、光分割器は、入力ポートにおける光波のパワーの所定の割合を伝導し、入力ポートにおける光波のパワーの残りの割合を反射する、少なくとも1つの面を含むビーム分割器を含む。
【０８１５】
実施形態140：実施形態139の装置において、複数の光導波管のうちの少なくとも1つは、光ファイバの導波モードを自由空間の伝搬モードに結合する、光カプラに結合された光ファイバを含む。
【０８１６】
実施形態141：実施形態132から140のいずれか1つの装置において、乗算モジュールは、少なくとも1つのコヒーレンスの影響を受けやすい乗算モジュールを含み、このコヒーレンスの影響を受けやすい乗算モジュールは、コヒーレンスの影響を受けやすい乗算モジュールを通る伝播距離と少なくとも同じ長さのコヒーレンス長を有する光波間の干渉に基づく光振幅変調を使用して、第1のサブセットの1つまたは複数の光信号を1つまたは複数の行列要素値と乗算するように構成される。
【０８１７】
実施形態142：実施形態141の装置において、コヒーレンスの影響を受けやすい乗算モジュールは、マッハツェンダー干渉計(MZI)を含み、このMZIは、入力光導波管によって導かれる光波をMZIの第1の光導波管アームおよびMZIの第2の光導波管アームに分割し、第1の光導波管アームは、第2の光導波管アームの位相遅れに関する相対的な位相シフトを与える位相シフタを含み、MZIは、第1の光導波管アームおよび第2の光導波管アームからの光波を、少なくとも1つの出力光導波管へと組み合わせる。
【０８１８】
実施形態143：実施形態142の装置において、MZIは、第1の光導波管アームおよび第2の光導波管アームからの光波を、第1の出力光導波管および第2の出力光導波管の各々へと組み合わせ、第1の光検出器は、第1の出力光導波管からの光波を受信して第1の光電流を生成し、第2の光検出器は、第2の出力光導波管からの光波を受信して第2の光電流を生成し、コヒーレンスの影響を受けやすい乗算モジュールの結果は、第1の光電流と第2の光電流との差を含む。
【０８１９】
実施形態144：実施形態141から143のいずれか1つの装置において、コヒーレンスの影響を受けやすい乗算モジュールは、第1の光導波管に結合された少なくとも1つのリング共振器および第2の光導波管に結合された少なくとも1つのリング共振器を含む、1つまたは複数のリング共振器を含む。
【０８２０】
実施形態145：実施形態144の装置において、第1の光検出器は、第1の光導波管から光波を受信して第1の光電流を生成し、第2の光検出器は、第2の光導波管から光波を受信して第2の光電流を生成し、コヒーレンスの影響を受けやすい乗算モジュールの結果は、第1の光電流と第2の光電流との差を含む。
【０８２１】
実施形態146：実施形態132から145のいずれか1つの装置において、乗算モジュールは、少なくとも1つのコヒーレンスの影響を受けにくい乗算モジュールを含み、このコヒーレンスの影響を受けにくい乗算モジュールは、光波内のエネルギーの吸収に基づく光振幅変調を使用して、第1のサブセットの1つまたは複数の光信号を1つまたは複数の行列要素値と乗算するように構成される。
【０８２２】
実施形態147：実施形態146の装置において、コヒーレンスの影響を受けにくい乗算モジュールは、電界吸収型変調器を含む。
【０８２３】
実施形態148：実施形態132から147のいずれか1つの装置において、1つまたは複数の加算モジュールは、(1)その振幅が乗算モジュールのそれぞれ1つのそれぞれの結果を表す、入力電流の形式の電気信号を各々搬送する2つ以上の入力導体と、(2)入力電流の合計に比例する出力電流の形式でそれぞれの結果の合計を表す電気信号を搬送する少なくとも1つの出力導体とを含む、少なくとも1つの加算モジュールを含む。
【０８２４】
実施形態149：実施形態148の装置において、2つ以上の入力導体および出力導体は、配線間の1つまたは複数の交点において交わる配線を含み、出力電流は入力電流の合計に実質的に等しい。
【０８２５】
実施形態150：実施形態148または149の装置において、入力電流の少なくとも第1の入力電流は、乗算モジュールのうちの第1の乗算モジュールによって生成される光信号を受信する少なくとも1つの光検出器によって生成される少なくとも1つの光電流の形式で提供される。
【０８２６】
実施形態151：実施形態150の装置において、第1の入力電流は、第1の乗算モジュールによって両方とも生成される異なる光信号を受信する異なるそれぞれの光検出器によって生成される、2つの光電流間の差の形式で提供される。
【０８２７】
実施形態152：実施形態132から151のいずれか1つの装置において、1つまたは複数の光信号の第1のサブセットの複製のうちの1つは、入力値のうちの1つがその上で符号化される単一の光信号からなる。
【０８２８】
実施形態153：実施形態152の装置において、第1のサブセットの複製に対応する乗算モジュールは、符号化された入力値を単一の行列要素値と乗算する。
【０８２９】
実施形態154：実施形態132から153のいずれか1つの装置において、1つまたは複数の光信号の第1のサブセットの複製のうちの1つは、光信号のうちの1つよりも多数かつ光信号のすべてよりも少数を含み、それらの上で複数の入力値が符号化される。
【０８３０】
実施形態155：実施形態154の装置において、第1のサブセットの複製に対応する乗算モジュールは、符号化された入力値を異なるそれぞれの行列要素値と乗算する。
【０８３１】
実施形態156：実施形態155の装置において、1つまたは複数の光信号の第1のサブセットの異なるそれぞれの複製に対応する異なる乗算モジュールは、異なるデバイス間で1つまたは複数の光信号の第1のサブセットの複製のうちの1つを送信するために光学的に連絡している異なるデバイスに格納される。
【０８３２】
実施形態157：実施形態132から156のいずれか1つの装置において、複数の光導波管のうちの2つ以上、複数の複製モジュールのうちの2つ以上、複数の乗算モジュールのうちの2つ以上、および1つまたは複数の加算モジュールのうちの少なくとも1つが、共通のデバイスの基板上に配置される。
【０８３３】
実施形態158：実施形態157の装置において、デバイスは、ベクトル行列乗算を実行し、入力ベクトルが光信号のセットとして提供され、出力ベクトルが電気信号のセットとして提供される。
【０８３４】
実施形態159：実施形態132から158のいずれか1つの装置において、装置はさらに、乗算モジュールまたは加算モジュールの出力に対応する入力電気信号を統合する累算器を含み、入力電気信号は、複数のタイムスロットの各々内でオンオフ振幅変調を使用する時間領域符号化を使用して符号化され、累算器は、複数のタイムスロットにわたり、時間領域符号化の異なるデューティ比に対応する2つよりも多くの振幅レベルを用いて符号化される、出力電気信号を生み出す。
【０８３５】
実施形態160：実施形態132から159のいずれか1つの装置において、乗算モジュールの2つ以上が各々、1つまたは複数の光信号の異なるサブセットに対応する。
【０８３６】
実施形態161：実施形態132から160のいずれか1つの装置において、装置はさらに、1つまたは複数の光信号の第1のサブセットの中の光信号と異なる、1つまたは複数の光信号の第2のサブセットの各複製に対して、光振幅変調を使用して第2のサブセットの1つまたは複数の光信号を1つまたは複数の行列要素値と乗算するように構成される乗算モジュールを含む。
【０８３７】
実施形態162：方法は、
それぞれの光信号に対して複数の入力値のセットを符号化するステップと、
1つまたは複数の光信号の少なくとも2つのサブセットの各々に対して、1つまたは複数の複製モジュールの対応するセットを使用して1つまたは複数の光信号のサブセットを光信号の2つ以上の複製に分割するステップと、
1つまたは複数の光信号の第1のサブセットの少なくとも2つの複製の各々に対して、対応する乗算モジュールを使用して、光振幅変調を使用して第1のサブセットの1つまたは複数の光信号を1つまたは複数の行列要素値と乗算するステップであって、乗算モジュールのうちの少なくとも1つが、入力ポートおよび2つの出力ポートを含む光振幅変調器を含み、関連する光信号のペアが、関連する光信号の振幅間の差が入力値を符号付きの行列要素値と乗算した結果に対応するように2つの出力ポートから提供される、ステップと、
乗算モジュールのうちの2つ以上の結果に対して、乗算モジュールのうちの2つ以上の結果の合計を表す電気信号を生み出すように構成される加算モジュールを使用するステップと
を含む。
【０８３８】
実施形態163：方法は、
それぞれの光信号上に入力ベクトルの要素を表す入力値のセットを符号化するステップと、
光信号に結合された光振幅変調器のセットの振幅変調レベルとして行列の要素を表す係数のセットを符号化するステップであって、入力ポートおよび2つの出力ポートを含む光振幅変調器のうちの少なくとも1つが、関連する光信号の振幅間の差が入力値を符号付きの行列要素値と乗算した結果に対応するように2つの出力ポートから関連する光信号のペアを提供する、ステップと、
それぞれの電気信号上に出力ベクトルの要素を表す出力値のセットを符号化するステップであって、電気信号のうちの少なくとも1つが、その振幅が入力ベクトルのそれぞれの要素の合計と行列の行のそれぞれの要素を乗じたものに対応する電流の形式である、ステップと
を含む。
【０８３９】
実施形態164：実施形態163の方法において、光信号のうちの少なくとも1つは第1の光導波管によって提供され、第1の光導波管は、第1の光導波管によって導かれる光波のパワーの所定の割合を第2の出力光導波管に送り、第1の光導波管によって導かれる光波のパワーの残りの割合を第3の光導波管に送る、光分割器に結合される。
【０８４０】
実施形態165：装置は、
光導波管によって搬送されるそれぞれの光信号上で入力ベクトルの要素を表す入力値のセットを符号化する複数の光導波管と、
行列の要素を表す係数のセットを振幅変調レベルとして符号化する光信号に結合された光振幅変調器のセットであって、入力ポートおよび2つの出力ポートを含む光振幅変調器のうちの少なくとも1つが、関連する光信号の振幅間の差が入力値を符号付きの行列要素値と乗算した結果に対応するように2つの出力ポートから関連する光信号のペアを提供する、光振幅変調器のセットと、
それぞれの電気信号上に出力ベクトルの要素を表す出力値のセットを符号化する複数の加算モジュールであって、電気信号のうちの少なくとも1つが、その振幅が入力ベクトルのそれぞれの要素の合計と行列の行のそれぞれの要素を乗じたものに対応する電流の形式である、複数の加算モジュールと
を含む。
【０８４１】
実施形態166：入力ベクトルを所与の行列と乗算するための方法は、
光信号のセットのそれぞれの光信号上に入力ベクトルの要素を表す入力値のセットを符号化するステップと、
1つまたは複数のデバイスの第1のセットを、光信号のセットの第1のサブセットを提供する1つまたは複数の導波管の第1のセットに結合するステップと、
光信号のセットの第1のサブセット上に符号化された値と所与の行列の第1の部分行列を乗算した結果を生成するステップと、
1つまたは複数のデバイスの第2のセットを、光信号のセットの第2のサブセットを提供する1つまたは複数の導波管の第2のセットに結合するステップと、
光信号のセットの第2のサブセット上に符号化された値を所与の行列の第2の部分行列と乗算した結果を生成するステップと、
1つまたは複数のデバイスの第3のセットを、第1の光分割器によって生成される光信号のセットの第1のサブセットの複製を提供する1つまたは複数の導波管の第3のセットに結合するステップと、
光信号のセットの第1のサブセット上に符号化された値と所与の行列の第3の部分行列を乗算した結果を生成するステップと、
1つまたは複数のデバイスの第4のセットを、第2の光分割器によって生成された光信号のセットの第2のサブセットの複製を提供する1つまたは複数の導波管の第4のセットに結合するステップと、
光信号のセットの第2のサブセット上に符号化された値と所与の行列の第4の部分行列を乗算した結果を生成するステップと
を含み、
一緒に連結された第1、第2、第3、および第4の部分行列は所与の行列を形成し、所与の行列と乗算された入力ベクトルに対応する出力ベクトルの要素を表す少なくとも1つの出力値は、1つまたは複数のデバイスの第1のセットおよび1つまたは複数のデバイスの第2のセットと通信しているデバイスによって生成される電気信号上に符号化される。
【０８４２】
実施形態167：実施形態166の方法において、1つまたは複数のデバイスの第1のセット、1つまたは複数のデバイスの第2のセット、1つまたは複数のデバイスの第3のセット、および1つまたは複数のデバイスの第4のセットのセットの各ペアは、相互に排他的である。
【０８４３】
実施形態168：装置は、
光信号の第1のセットを受信し、光信号の第1のセット上に符号化された値を第1の行列と乗算した結果を生成するように構成される、1つまたは複数のデバイスの第1のセットと、
光信号の第2のセットを受信し、光信号の第2のセット上に符号化された値を第2の行列と乗算した結果を生成するように構成される、1つまたは複数のデバイスの第2のセットと、
光信号の第3のセットを受信し、光信号の第3のセット上に符号化された値を第3の行列と乗算した結果を生成するように構成される、1つまたは複数のデバイスの第3のセットと、
光信号の第4のセットを受信し、光信号の第4のセット上に符号化された値を第4の行列と乗算した結果を生成するように構成される、1つまたは複数のデバイスの第4のセットと、
1つもしくは複数のデバイスの第1のセット、1つもしくは複数のデバイスの第2のセット、1つもしくは複数のデバイスの第3のセット、または1つもしくは複数のデバイスの第4のセットのうちの2つ以上の間の構成可能な接続経路と
を含み、
構成可能な接続経路の第1の構成は、(1)光信号の第2のセット、光信号の第3のセット、または光信号の第4のセットのうちの少なくとも1つとして光信号の第1のセットの複製を提供し、(2)加算モジュールによって受信された信号上に符号化された値の合計を表す電気信号を生み出すように構成される加算モジュールに、1つまたは複数のデバイスの第1のセットからの1つまたは複数の信号および1つまたは複数のデバイスの第2のセットからの1つまたは複数の信号を提供するように構成される。
【０８４４】
実施形態169：装置は、
光信号の第1のセットを受信し、光信号の第1のセットの光信号のうちの1つまたは複数の光振幅変調に基づく結果を生成するように構成される、1つまたは複数のデバイスの第1のセットと、
光信号の第2のセットを受信し、光信号の第2のセットの光信号のうちの1つまたは複数の光振幅変調に基づく結果を生成するように構成される、1つまたは複数のデバイスの第2のセットと、
光信号の第3のセットを受信し、光信号の第3のセットの光信号のうちの1つまたは複数の光振幅変調に基づく結果を生成するように構成される、1つまたは複数のデバイスの第3のセットと、
光信号の第4のセットを受信し、光信号の第4のセットの光信号のうちの1つまたは複数の光振幅変調に基づく結果を生成するように構成される、1つまたは複数のデバイスの第4のセットと、
1つもしくは複数のデバイスの第1のセット、1つもしくは複数のデバイスの第2のセット、1つもしくは複数のデバイスの第3のセット、または1つもしくは複数のデバイスの第4のセットのうちの2つ以上の間の構成可能な接続経路と
を含み、
構成可能な接続経路の第1の構成は、(1)光信号の第1のセットの複製を光信号の第3のセットとして提供し、または(2)加算モジュールによって受信された信号上に符号化される値の合計を表す電気信号を生み出すように構成される加算モジュールに、1つまたは複数のデバイスの第1のセットからの1つまたは複数の信号および1つまたは複数のデバイスの第2のセットからの1つまたは複数の信号を提供するように構成される。
【０８４５】
実施形態170：実施形態169の装置において、1つまたは複数のデバイスの第1のセット、1つまたは複数のデバイスの第2のセット、1つまたは複数のデバイスの第3のセット、および1つまたは複数のデバイスの第4のセットのセットの各ペアは、相互に排他的である。
【０８４６】
実施形態171：実施形態169または170の装置において、構成可能な接続経路の第1の構成は、(1)光信号の第1のセットの複製を光信号の第3のセットとして提供し、(2)加算モジュールによって受信された少なくとも2つの異なる信号上に符号化される値の合計を表す電気信号を生み出すように構成される加算モジュールに、1つまたは複数のデバイスの第1のセットからの1つまたは複数の信号および1つまたは複数のデバイスの第2のセットからの1つまたは複数の信号を提供するように構成される。
【０８４７】
実施形態172：実施形態169から171のいずれか1つの装置において、構成可能な接続経路の第1の構成は、光信号の第1のセットの複製を光信号の第3のセットとして提供するように構成され、構成可能な接続経路の第2の構成は、加算モジュールによって受信された信号上に符号化される値の合計を表す電気信号を生み出すように構成される加算モジュールに、1つまたは複数のデバイスの第1のセットからの1つまたは複数の信号および1つまたは複数のデバイスの第2のセットからの1つまたは複数の信号を提供するように構成される。
【０８４８】
実施形態173：装置は、
複数の光導波管であって、複数の入力値のセットが光導波管によって搬送されるそれぞれの光信号上に符号化される、複数の光導波管と、
1つまたは複数の光信号の少なくとも2つのサブセットの各々に対して、1つまたは複数の光信号のサブセットを光信号の2つ以上の複製に分割するように構成される1つまたは複数の複製モジュールの対応するセットを含む、複数の複製モジュールと、
1つまたは複数の光信号の第1のサブセットの少なくとも2つの複製の各々に対して、光振幅変調を使用して第1のサブセットの1つまたは複数の光信号を1つまたは複数の値と乗算するように構成される対応する乗算モジュールを含む、複数の乗算モジュールと、
乗算モジュールのうちの2つ以上の結果に対して、乗算モジュールのうちの2つ以上の結果の合計を表す電気信号を生み出すように構成される加算モジュールを含む、1つまたは複数の加算モジュールと
を含み、結果は、電気信号上に符号化され、電気信号に変換される前に単一の光振幅変調器だけを通って伝播した光信号の複製のうちの1つから導出された、少なくとも1つの結果を含む。
【０８４９】
実施形態174：システムは、
複数の変調器制御信号を生成するように構成される第1のユニットと、
プロセッサユニットであって、
複数の光出力を提供するように構成される光源と、
光源および第1のユニットに結合された複数の光変調器であって、複数の変調器制御信号に基づいて光源によって提供された複数の光出力を変調することによって光入力ベクトルを生成するように構成され、光入力ベクトルが複数の光信号を備える、複数の光変調器と、
複数の光変調器および第1のユニットに結合された行列乗算ユニットであって、複数の重み制御信号に基づいて光入力ベクトルをアナログ出力ベクトルに変換するように構成される、行列乗算ユニットと
を含む、プロセッサユニットと、
行列乗算ユニットに結合され、アナログ出力ベクトルをデジタル化された出力ベクトルに変換するように構成される、第2のユニットと、
コントローラであって、
第1のデジタル入力ベクトルを備える入力データセットを備える人工ニューラルネットワーク計算要求を受信することと、
第1の複数のニューラルネットワーク重みを受信することと、
第1のユニットを通じて、第1のデジタル入力ベクトルに基づく第1の複数の変調器制御信号と、第1の複数のニューラルネットワーク重みに基づく第1の複数の重み制御信号とを生成することと
を含む、動作を実行するように構成される集積回路を含む、コントローラと
を含む。
【０８５０】
実施形態175：実施形態174のシステムにおいて、第1のユニットはデジタルアナログコンバータ(DAC)を含む。
【０８５１】
実施形態176：実施形態174または175のシステムにおいて、第2のユニットはアナログデジタルコンバータ(ADC)を含む。
【０８５２】
実施形態177：実施形態174から176のいずれか1つのシステムにおいて、システムは、データセットおよび複数のニューラルネットワーク重みを記憶するように構成されるメモリユニットを含む。
【０８５３】
実施形態178：実施形態177のシステムにおいて、コントローラの集積回路はさらに、メモリユニットに、入力データセットおよび第1の複数のニューラルネットワーク重みを記憶することを含む動作を実行するように構成される。
【０８５４】
実施形態179：実施形態174から178のいずれか1つのシステムにおいて、第1のユニットは、複数の重み制御信号を生成するように構成される。
【０８５５】
実施形態180：実施形態174から178のいずれか1つのシステムにおいて、コントローラは特定用途向け集積回路(ASIC)を含み、
人工ニューラルネットワーク計算要求を受信することは、汎用データプロセッサから、人工ニューラルネットワーク計算要求を受信することを含む。
【０８５６】
実施形態181：実施形態174から178のいずれか1つのシステムにおいて、第1のユニット、処理ユニット、第2のユニット、およびコントローラは、マルチチップモジュールまたは集積回路のうちの少なくとも1つに配設され、
人工ニューラルネットワーク計算要求を受信することは、第2のデータプロセッサから、人工ニューラルネットワーク計算要求を受信することを含み、第2のデータプロセッサはマルチチップモジュールまたは集積回路の外部にあり、第2のデータプロセッサは通信チャネルを通じてマルチチップモジュールまたは集積回路に結合され、プロセッサユニットは、通信チャネルのデータレートよりも少なくとも1桁(at least an order of magnitude)高いデータレートでデータを処理する。
【０８５７】
実施形態182：実施形態174のシステムにおいて、第1のユニット、プロセッサユニット、第2のユニット、およびコントローラは、複数の反復について繰り返される光電子処理ループにおいて使用され、光電子処理ループは、
(1)複数の変調器制御信号のうちの少なくとも1つに基づく少なくとも第1の光変調動作、および重み制御信号のうちの少なくとも1つに基づく少なくとも第2の光変調動作、ならびに
(2)(a)電気加算動作または(b)電気記憶動作
のうちの少なくとも1つを含む。
【０８５８】
実施形態183：実施形態182のシステムにおいて、光電子処理ループは電気記憶動作を含み、
電気記憶動作は、コントローラに結合されたメモリユニットを使用して実行され、コントローラによって実行される動作はさらに、メモリユニットに、入力データセットおよび第1の複数のニューラルネットワーク重みを記憶することを含む。
【０８５９】
実施形態184：実施形態182のシステムにおいて、光電子処理ループは電気加算動作を含み、電気加算動作は、行列乗算ユニット内の電気加算モジュールを使用して実行され、
電気加算モジュールは、それぞれのニューラルネットワーク重みと乗算された光入力ベクトルのそれぞれの要素の合計を表すアナログ出力ベクトルの要素に対応する電流を生成するように構成される。
【０８６０】
実施形態185：実施形態182のシステムにおいて、光電子処理ループは、少なくとも1つの信号経路を含み、この少なくとも1つの信号経路では、複数の変調器制御信号のうちの少なくとも1つに基づく1回だけの第1の光変調動作、および重み制御信号のうちの少なくとも1つに基づく1回だけの第2の光変調動作が、単一のループ反復において実行される。
【０８６１】
実施形態186：実施形態185のシステムにおいて、第1の光変調動作は、光出力の源に、および行列乗算ユニットに結合された複数の光変調器のうちの1つによって実行され、第2の光変調動作は、行列乗算ユニットに含まれる光変調器によって実行される。
【０８６２】
実施形態187：実施形態182のシステムにおいて、光電子処理ループは、少なくとも1つの信号経路を含み、この少なくとも1つの信号経路では、1回だけの電気的な記憶が単一のループ反復において実行される。
【０８６３】
実施形態188：実施形態174のシステムにおいて、源は、複数の光出力を生成するように構成されるレーザーユニットを含む。
【０８６４】
実施形態189：実施形態174のシステムにおいて、行列乗算ユニットは、
光入力ベクトルを受信するための入力導波管の列であって、光入力ベクトルが光信号の第1の列を備える、入力導波管の列と、
光信号の第2の列への光入力ベクトルの線形変換を実行するための、入力導波管の列と光学的に連絡している光干渉ユニットと、
光信号の第2の列を導くための、光干渉ユニットと光学的に連絡している出力導波管の列と
を含み、入力導波管の列の中の少なくとも1つの入力導波管は、光干渉ユニットを介して出力導波管の列の中の各出力導波管と光学的に連絡している。
【０８６５】
実施形態190：実施形態189のシステムにおいて、光干渉ユニットは、
複数の相互接続されたマッハツェンダー干渉計(MZI)を含み、複数の相互接続されたMZIの中の各MZIは、
MZIの分割比を変更するように構成される第1の位相シフタと、
MZIの1つの出力の位相をシフトするように構成される第2の位相シフタと
を含み、
第1の位相シフタおよび第2の位相シフタは、複数の重み制御信号に結合される。
【０８６６】
実施形態191：実施形態174のシステムにおいて、行列乗算ユニットは、
複数の複製モジュールであって、複製モジュールの各々が、光入力ベクトルの1つまたは複数の光信号のサブセットに対応し、1つまたは複数の光信号のサブセットを光信号の2つ以上の複製に分割するように構成される、複製モジュールと、
複数の乗算モジュールであって、乗算モジュールの各々が、光振幅変調を使用してサブセットの1つまたは複数の光信号を1つまたは複数の行列要素値と乗算するように構成される1つまたは複数の光信号のサブセットに対応する、複数の乗算モジュールと、
1つまたは複数の加算モジュールであって、各加算モジュールが、乗算モジュールのうちの2つ以上の結果の合計を表す電気信号を生み出すように構成される、1つまたは複数の加算モジュールと
を含む。
【０８６７】
実施形態192：実施形態191のシステムにおいて、乗算モジュールのうちの少なくとも1つは、入力ポートおよび2つの出力ポートを含む光振幅変調器を含み、関連する光信号のペアは、関連する光信号の振幅間の差が入力値を符号付きの行列要素値と乗算した結果に対応するように、2つの出力ポートから提供される。
【０８６８】
実施形態193：実施形態191または192のシステムにおいて、行列乗算ユニットは、1つまたは複数の行列要素値を含む行列と入力ベクトルを乗算するように構成される。
【０８６９】
実施形態194：実施形態193のシステムにおいて、複数の出力値のセットは、1つまたは複数の加算モジュールによって生み出されるそれぞれの電気信号上で符号化され、複数の出力値のセットの中の出力値は、入力ベクトルが行列と乗算されることに起因する出力ベクトルの要素を表す。
【０８７０】
実施形態195：実施形態174から194のいずれか1つのシステムにおいて、システムは、入力データセットおよびニューラルネットワーク重みを記憶するように構成されるメモリユニットを含み、第2のユニットはアナログデジタルコンバータ(ADC)ユニットを含み、動作はさらに、
ADCユニットから、行列乗算ユニットのアナログ出力ベクトルに対応する第1の複数のデジタル化された出力を取得することであって、第1の複数のデジタル化された出力が第1のデジタル出力ベクトルを形成する、取得することと、
第1のデジタル出力ベクトルに対して非線形変換を実行して、第1の変換されたデジタル出力ベクトルを生成することと、
メモリユニットに、第1の変換されたデジタル出力ベクトルを記憶することと
を含む。
【０８７１】
実施形態196：実施形態195のシステムにおいて、システムは、メモリユニットに、入力データセットおよび第1の複数のニューラルネットワーク重みを記憶することと、メモリユニットに、第1の変換されたデジタル出力ベクトルを記憶することとの間に経過した時間として定義される、第1のループ期間を有し、
第1のループ期間は1ns以下である。
【０８７２】
実施形態197：実施形態195または196のシステムにおいて、動作はさらに、
第1の変換されたデジタル出力ベクトルに基づいて生成された人工ニューラルネットワーク出力を出力することを含む。
【０８７３】
実施形態198：実施形態195から197のいずれか1つのシステムにおいて、第1のユニットはデジタルアナログコンバータ(DAC)ユニットを含み、動作はさらに、
DACユニットを通じて、第1の変換されたデジタル出力ベクトルに基づいて第2の複数の変調器制御信号を生成することを含む。
【０８７４】
実施形態199：実施形態195から198のいずれか1つのシステムにおいて、第1のユニットはデジタルアナログコンバータ(DAC)ユニットを含み、人工ニューラルネットワーク計算要求はさらに、第2の複数のニューラルネットワーク重みを含み、動作はさらに、
第1の複数のデジタル化された出力の取得に基づいて、DACユニットを通じて、第2の複数のニューラルネットワーク重みに基づいて第2の複数の重み制御信号を生成することを含む。
【０８７５】
実施形態200：実施形態199のシステムにおいて、第1および第2の複数のニューラルネットワーク重みは、人工ニューラルネットワークの異なる層に対応する。
【０８７６】
実施形態201：実施形態195から200のいずれか1つのシステムにおいて、第1のユニットはデジタルアナログコンバータ(DAC)ユニットを含み、入力データセットはさらに第2のデジタル入力ベクトルを含み、
動作はさらに、
DACユニットを通じて、第2のデジタル入力ベクトルに基づいて第2の複数の変調器制御信号を生成することと、
ADCユニットから、行列乗算ユニットの出力ベクトルに対応する第2の複数のデジタル化された出力を取得することであって、第2の複数のデジタル化された出力が第2のデジタル出力ベクトルを形成する、取得することと、
第2のデジタル出力ベクトルに対して非線形変換を実行して、第2の変換されたデジタル出力ベクトルを生成することと、
メモリユニットに、第2の変換されたデジタル出力ベクトルを記憶することと、
第1の変換されたデジタル出力ベクトルおよび第2の変換されたデジタル出力ベクトルに基づいて生成された人工ニューラルネットワーク出力を出力することと
を含み、
行列乗算ユニットの出力ベクトルは、第1の言及された複数の重み制御信号に基づく行列乗算ユニットによって変換される第2の複数の変調器制御信号に基づいて生成される、第2の光入力ベクトルに起因する。
【０８７７】
実施形態202：実施形態174から201のいずれか1つのシステムにおいて、システムは、入力データセットおよびニューラルネットワーク重みを記憶するように構成されるメモリユニットを含み、第2のユニットは、アナログデジタルコンバータ(ADC)ユニットを含み、システムはさらに、
行列乗算ユニットとADCユニットとの間に配置されるアナログ非線形性ユニットを含み、アナログ非線形性ユニットは、行列乗算ユニットから複数の出力電圧を受け取り、非線形伝達関数を適用し、複数の変換された出力電圧をADCユニットに出力するように構成され、
コントローラの集積回路によって実行される動作はさらに、
ADCユニットから、複数の変換された出力電圧に対応する第1の複数の変換されたデジタル化された出力電圧を取得することであって、第1の複数の変換されたデジタル化された出力電圧が第1の変換されたデジタル出力ベクトルを形成する、取得することと、
メモリユニットに、第1の変換されたデジタル出力ベクトルを記憶することと
を含む。
【０８７８】
実施形態203：実施形態174から202のいずれか1つのシステムにおいて、コントローラの集積回路は、8GHz以上のレートで第1の複数の変調制御信号を生成するように構成される。
【０８７９】
実施形態204：実施形態174から190のいずれか1つのシステムにおいて、第1のユニットはデジタルアナログコンバータ(DAC)ユニットを含み、第2のユニットはアナログデジタルコンバータ(ADC)ユニットを含み、行列乗算ユニットは、
複数の光変調器およびDACユニットに結合された光行列乗算ユニットであって、複数の重み制御信号に基づいて光入力ベクトルを光出力ベクトルに変換するように構成される、光行列乗算ユニットと、
光行列乗算ユニットに結合され、光出力ベクトルに対応する複数の出力電圧を生成するように構成される、光検出ユニットと
を含む。
【０８８０】
実施形態205：実施形態204のシステムにおいて、システムはさらに、
DACユニットと複数の光変調器との間に配置されるアナログメモリユニットであって、アナログ電圧を記憶して記憶されているアナログ電圧を出力するように構成される、アナログメモリユニットと、
光検出ユニットとADCユニットとの間に配置されるアナログ非線形性ユニットであって、光検出ユニットから複数の出力電圧を受け取り、非線形伝達関数を適用し、複数の変換された出力電圧を出力するように構成される、アナログ非線形性ユニットと
を含む。
【０８８１】
実施形態206：実施形態205のシステムにおいて、アナログメモリユニットは複数のキャパシタを含む。
【０８８２】
実施形態207：実施形態205または206のシステムにおいて、アナログメモリユニットは、アナログ非線形性ユニットの複数の変換された出力電圧を受け取って記憶し、記憶されている複数の変換された出力電圧を複数の光変調器に出力するように構成され、
動作はさらに、
第1の複数の変調器制御信号および第1の複数の重み制御信号を生成したことに基づいて、アナログメモリユニットに、アナログ非線形性ユニットの複数の変換された出力電圧を記憶することと、
アナログメモリユニットを通じて、記憶されている変換された出力電圧を出力することと、
ADCユニットから、第2の複数の変換されたデジタル化された出力電圧を取得することであって、第2の複数の変換されたデジタル化された出力電圧が第2の変換されたデジタル出力ベクトルを形成する、取得することと、
メモリユニットに、第2の変換されたデジタル出力ベクトルを記憶することと
を含む。
【０８８３】
実施形態208：実施形態204のシステムにおいて、システムは、入力データセットおよびニューラルネットワーク重みを記憶するように構成されるメモリユニットを含み、人工ニューラルネットワーク計算要求の入力データセットは複数のデジタル入力ベクトルを含み、
源は複数の波長を生成するように構成され、
複数の光変調器は、
複数の光入力ベクトルを生成するように構成される光変調器のバンクであって、バンクの各々が、複数の波長のうちの1つに対応し、それぞれの波長を有するそれぞれの光入力ベクトルを生成する、バンクと、
複数の光入力ベクトルを、複数の波長を備える組み合わされた光入力ベクトルに組み合わせるように構成される光マルチプレクサと
を含み、
光検出ユニットはさらに、複数の波長を逆多重化し、複数の逆多重化された出力電圧を生成するように構成され、
動作はさらに、
ADCユニットから、複数のデジタル化された逆多重化された光出力を取得することであって、複数のデジタル化された逆多重化された光出力が複数の第1のデジタル出力ベクトルを形成し、複数の第1のデジタル出力ベクトルの各々が複数の波長のうちの1つに対応する、取得することと、
複数の第1のデジタル出力ベクトルの各々に対して非線形変換を実行して、複数の変換された第1のデジタル出力ベクトルを生成することと、
メモリユニットに、複数の変換された第1のデジタル出力ベクトルを記憶することと
を含み、
複数のデジタル入力ベクトルの各々が、複数の光入力ベクトルのうちの1つに対応する。
【０８８４】
実施形態209：実施形態174のシステムにおいて、システムは、入力データセットおよびニューラルネットワーク重みを記憶するように構成されるメモリユニットを含み、第2のユニットはアナログデジタルコンバータ(ADC)ユニットを含み、人工ニューラルネットワーク計算要求は複数のデジタル入力ベクトルを含み、
源は複数の波長を生成するように構成され、
複数の光変調器は、
複数の光入力ベクトルを生成するように構成される光変調器のバンクであって、バンクの各々が、複数の波長のうちの1つに対応し、それぞれの波長を有するそれぞれの光入力ベクトルを生成する、バンクと、
複数の光入力ベクトルを、複数の波長を備える組み合わされた光入力ベクトルに組み合わせるように構成される光マルチプレクサと
を含み、
動作は、
ADCユニットから、複数の波長を備える光出力ベクトルに対応する第1の複数のデジタル化された光出力を取得することであって、第1の複数のデジタル化された光出力が第1のデジタル出力ベクトルを形成する、取得することと、
第1のデジタル出力ベクトルに対して非線形変換を実行して、第1の変換されたデジタル出力ベクトルを生成することと、
メモリユニットに、第1の変換されたデジタル出力ベクトルを記憶することと
を含む。
【０８８５】
実施形態210：実施形態174から209のいずれか1つのシステムにおいて、第1のユニットはデジタルアナログコンバータ(DAC)ユニットを含み、第2のユニットはアナログデジタルコンバータ(ADC)ユニットを含み、DACユニットは、
複数の1ビット変調器制御信号を生成するように構成される1ビットDACサブユニットを含み、
ADCユニットの分解能は1ビットであり、
第1のデジタル入力ベクトルの分解能はNビットであり、
動作は、
第1のデジタル入力ベクトルをN個の1ビット入力ベクトルに分解することであって、N個の1ビット入力ベクトルの各々が第1のデジタル入力ベクトルのNビットのうちの1つに対応する、分解することと、
1ビットDACサブユニットを通じて、N個の1ビット入力ベクトルに対応するN個の1ビット変調器制御信号のシーケンスを生成することと、
ADCユニットから、N個の1ビット変調器制御信号のシーケンスに対応するN個のデジタル化された1ビット光出力のシーケンスを取得することと、
N個のデジタル化された1ビット光出力のシーケンスからNビットデジタル出力ベクトルを構築することと、
構築されたNビットデジタル出力ベクトルに対して非線形変換を実行して、変換されたNビットデジタル出力ベクトルを生成することと、
メモリユニットに、変換されたNビットデジタル出力ベクトルを記憶することと
を含む。
【０８８６】
実施形態211：実施形態174から210のいずれか1つのシステムにおいて、システムは、入力データセットおよびニューラルネットワーク重みを記憶するように構成されるメモリユニットを含み、メモリユニットは、
デジタル入力ベクトルを記憶するように構成され少なくとも1つのSRAMを備えるデジタル入力ベクトルメモリと、
複数のニューラルネットワーク重みを記憶するように構成され少なくとも1つのDRAMを備えるニューラルネットワーク重みメモリと
を含む。
【０８８７】
実施形態212：実施形態174から211のいずれか1つのシステムにおいて、第1のユニットは、
複数の変調器制御信号を生成するように構成される第1のデジタルアナログコンバータ(DAC)サブユニットと、
複数の重み制御信号を生成するように構成される第2のDACサブユニットと
を含む、DACユニットを含み、
第1のDACサブユニットおよび第2のDACサブユニットは異なる。
【０８８８】
実施形態213：実施形態174から212のいずれか1つのシステムにおいて、光源は、
光を生成するように構成されるレーザー源と、
レーザー源によって生成された光を複数の光出力に分割するように構成される光パワー分割器と
を含み、複数の光出力の各々は実質的に等しいパワーを有する。
【０８８９】
実施形態214：実施形態174から213のいずれか1つのシステムにおいて、複数の光変調器は、MZI変調器、リング共振変調器、または電界吸収型変調器のうちの1つを含む。
【０８９０】
実施形態215：実施形態204のシステムにおいて、光検出ユニットは、
複数の光検出器と、
光検出器によって生成された光電流を複数の出力電圧に変換するように構成される複数の増幅器と
を含む。
【０８９１】
実施形態216：実施形態174から215のいずれか1つのシステムにおいて、集積回路は特定用途向け集積回路である。
【０８９２】
実施形態217：実施形態174および191から194のいずれか1つのシステムにおいて、装置は、光変調器と行列乗算ユニットとの間に結合される複数の光導波管を含み、光入力ベクトルは、光導波管によって搬送されるそれぞれの光信号上に符号化される複数の入力値のセットを含み、光導波管のうちの1つによって搬送される光信号の各々は、光信号のすべてに対して実質的に同一の共通の波長を有する光波を含む。
【０８９３】
実施形態218：実施形態191から194のいずれか1つのシステムにおいて、複製モジュールは、入力ポートにおける光波のパワーの所定の割合を第1の出力ポートに送り、入力ポートにおける光波のパワーの残りの割合を第2の出力ポートに送る、光分割器を含む少なくとも1つの複製モジュールを含む。
【０８９４】
実施形態219：実施形態218のシステムにおいて、光分割器は、入力光導波管によって導かれる光波のパワーの所定の割合を第1の出力光導波管に送り、入力光導波管によって導かれる光波のパワーの残りの割合を第2の出力光導波管に送る、導波管光分割器を含む。
【０８９５】
実施形態220：実施形態219のシステムにおいて、入力光導波管の導波モードは、第1および第2の出力光導波管の各々の伝搬モードに導波モードに断熱的に結合される。
【０８９６】
実施形態221：実施形態218から220のいずれか1つのシステムにおいて、光分割器は、入力ポートにおける光波のパワーの所定の割合を伝達し、入力ポートにおける光波のパワーの残りの割合を反射する、少なくとも1つの面を含むビーム分割器を含む。
【０８９７】
実施形態222：実施形態217から221のいずれか1つのシステムにおいて、複数の光導波管の少なくとも1つは、光ファイバの導波モードを自由空間の伝搬モードに結合する光カプラに結合された光ファイバを含む。
【０８９８】
実施形態223：実施形態174、191から194、および217から222のいずれか1つのシステムにおいて、乗算モジュールは、少なくとも1つのコヒーレンスの影響を受けやすい乗算モジュールを含み、このコヒーレンスの影響を受けやすい乗算モジュールは、コヒーレンスの影響を受けやすい乗算モジュールを通る伝播距離と少なくとも同じ長さのコヒーレンス長を有する光波間の干渉に基づく光振幅変調を使用して、第1のサブセットの1つまたは複数の光信号を1つまたは複数の行列要素値と乗算するように構成される。
【０８９９】
実施形態224：実施形態223のシステムにおいて、コヒーレンスの影響を受けやすい乗算モジュールは、マッハツェンダー干渉計(MZI)を含み、このMZIは、入力光導波管によって導かれる光波をMZIの第1の光導波管アームおよびMZIの第2の光導波管アームに分割し、第1の光導波管アームは、第2の光導波管アームの位相遅れに関する相対的な位相シフトを与える位相シフタを含み、MZIは、第1の光導波管アームおよび第2の光導波管アームからの光波を、少なくとも1つの出力光導波管へと組み合わせる。
【０９００】
実施形態225：実施形態224のシステムにおいて、MZIは、第1の光導波管アームおよび第2の光導波管アームからの光波を、第1の出力光導波管および第2の出力光導波管の各々へと組み合わせ、第1の光検出器は、第1の出力光導波管からの光波を受信して第1の光電流を生成し、第2の光検出器は、第2の出力光導波管からの光波を受信して第2の光電流を生成し、コヒーレンスの影響を受けやすい乗算モジュールの結果は、第1の光電流と第2の光電流との差を含む。
【０９０１】
実施形態226：実施形態223から225のいずれか1つのシステムにおいて、コヒーレンスの影響を受けやすい乗算モジュールは、第1の光導波管に結合された少なくとも1つのリング共振器および第2の光導波管に結合された少なくとも1つのリング共振器を含む、1つまたは複数のリング共振器を含む。
【０９０２】
実施形態227：実施形態226のシステムにおいて、第1の光検出器は、第1の光導波管から光波を受信して第1の光電流を生成し、第2の光検出器は、第2の光導波管から光波を受信して第2の光電流を生成し、コヒーレンスの影響を受けやすい乗算モジュールの結果は、第1の光電流と第2の光電流との差を含む。
【０９０３】
実施形態228：実施形態174、191から194、および217から227のいずれか1つのシステムにおいて、乗算モジュールは、少なくとも1つのコヒーレンスの影響を受けにくい乗算モジュールを含み、このコヒーレンスの影響を受けにくい乗算モジュールは、光波内のエネルギーの吸収に基づく光振幅変調を使用して、第1のサブセットの1つまたは複数の光信号を1つまたは複数の行列要素値と乗算するように構成される。
【０９０４】
実施形態229：実施形態228のシステムにおいて、コヒーレンスの影響を受けにくい乗算モジュールは、電界吸収型変調器を含む。
【０９０５】
実施形態230：実施形態174、191から194、および217から229のシステムにおいて、1つまたは複数の加算モジュールは、(1)その振幅が乗算モジュールのそれぞれ1つのそれぞれの結果を表す、入力電流の形式の電気信号を各々搬送する2つ以上の入力導体と、(2)入力電流の合計に比例する出力電流の形式でそれぞれの結果の合計を表す電気信号を搬送する少なくとも1つの出力導体とを含む、少なくとも1つの加算モジュールを含む。
【０９０６】
実施形態231：実施形態230のシステムにおいて、2つ以上の入力導体および出力導体は、配線間の1つまたは複数の交点において交わる配線を含み、出力電流は入力電流の合計に実質的に等しい。
【０９０７】
実施形態232：実施形態230または231のシステムにおいて、入力電流のうちの少なくとも第1の入力電流は、乗算モジュールのうちの第1の乗算モジュールによって生成される光信号を受信する少なくとも1つの光検出器によって生成される少なくとも1つの光電流の形式で提供される。
【０９０８】
実施形態233：実施形態232のシステムにおいて、第1の入力電流は、第1の乗算モジュールによって両方とも生成される異なるそれぞれの光信号を受信する異なるそれぞれの光検出器によって生成される、2つの光電流間の差の形式で提供される。
【０９０９】
実施形態234：実施形態174から233のシステムにおいて、1つまたは複数の光信号の第1のサブセットの複製のうちの1つは、入力値のうちの1つがその上で符号化される単一の光信号からなる。
【０９１０】
実施形態235：実施形態234のシステムにおいて、第1のサブセットの複製に対応する乗算モジュールは、符号化された入力値を単一の行列要素値と乗算する。
【０９１１】
実施形態236：実施形態174、191から194、および217から235のシステムにおいて、1つまたは複数の光信号の第1のサブセットの複製のうちの1つは、それらの上で複数の入力値が符号化される、光信号のうちの1つよりも多数かつ光信号のすべてよりも少数を含む。
【０９１２】
実施形態237：実施形態236のシステムにおいて、第1のサブセットの複製に対応する乗算モジュールは、符号化された入力値を異なるそれぞれの行列要素値と乗算する。
【０９１３】
実施形態238：実施形態237のシステムにおいて、1つまたは複数の光信号の第1のサブセットの異なるそれぞれの複製に対応する異なる乗算モジュールは、異なるデバイス間で1つまたは複数の光信号の第1のサブセットの複製のうちの1つを送信するために光学的に連絡している異なるデバイスに格納される。
【０９１４】
実施形態239：実施形態174、191から194、および217から238のシステムにおいて、複数の光導波管のうちの2つ以上、複数の複製モジュールのうちの2つ以上、複数の乗算モジュールのうちの2つ以上、および1つまたは複数の加算モジュールのうちの少なくとも1つが、共通のデバイスの基板上に配置される。
【０９１５】
実施形態240：実施形態239のシステムにおいて、デバイスは、ベクトル行列乗算を実行し、入力ベクトルが光信号のセットとして提供され、出力ベクトルが電気信号のセットとして提供される。
【０９１６】
実施形態241：実施形態174、191から194、および217から240のシステムにおいて、装置はさらに、乗算モジュールまたは加算モジュールの出力に対応する入力電気信号を統合する累算器を含み、入力電気信号は、複数のタイムスロットの各々内でオンオフ振幅変調を使用する時間領域符号化を使用して符号化され、累算器は、複数のタイムスロットにわたり、時間領域符号化の異なるデューティ比に対応する2つよりも多くの振幅レベルを用いて符号化される、出力電気信号を生み出す。
【０９１７】
実施形態242：実施形態174、191から194、および217から241のシステムにおいて、乗算モジュールの2つ以上が各々、1つまたは複数の光信号の異なるサブセットに対応する。
【０９１８】
実施形態243：実施形態174、191から194、および217から242のシステムにおいて、装置はさらに、1つまたは複数の光信号の第1のサブセットの中の光信号と異なる、1つまたは複数の光信号の第2のサブセットの各複製に対して、光振幅変調を使用して第2のサブセットの1つまたは複数の光信号を1つまたは複数の行列要素値と乗算するように構成される乗算モジュールを含む。
【０９１９】
実施形態244：システムは、
データセットおよび複数のニューラルネットワーク重みを記憶するように構成されるメモリユニットと、
複数の変調器制御信号を生成するように構成されるドライバユニットと、
光電子プロセッサであって、
複数の光出力を提供するように構成される光源と、
光源およびドライバユニットに結合された複数の光変調器であって、複数の変調器制御信号に基づいて光源によって生成された複数の光出力を変調することによって光入力ベクトルを生成するように構成される、複数の光変調器と、
複数の光変調器およびドライバユニットに結合された行列乗算ユニットであって、複数の重み制御信号に基づいて光入力ベクトルをアナログ出力ベクトルに変換するように構成される、行列乗算ユニットと、
行列乗算ユニットに結合されアナログ出力ベクトルを複数のデジタル化された1ビット出力に変換するように構成される比較器ユニットと
を含む、光電子プロセッサと、
コントローラであって、
入力データセットおよび第1の複数のニューラルネットワーク重みを備える人工ニューラルネットワーク計算要求を受信することであって、入力データセットがNビットの分解能を有する第1のデジタル入力ベクトルを備える、受信することと、
メモリユニットに、入力データセットおよび第1の複数のニューラルネットワーク重みを記憶することと、
第1のデジタル入力ベクトルをN個の1ビット入力ベクトルに分解することであって、N個の1ビット入力ベクトルの各々が第1のデジタル入力ベクトルのNビットのうちの1つに対応する、分解することと、
ドライバユニットを通じて、N個の1ビット入力ベクトルに対応するN個の1ビット変調器制御信号のシーケンスを生成することと、
比較器ユニットから、N個の1ビット変調器制御信号のシーケンスに対応するN個のデジタル化された1ビット出力のシーケンスを取得することと、
N個のデジタル化された1ビット出力のシーケンスからNビットデジタル出力ベクトルを構築することと、
構築されたNビットデジタル出力ベクトルに対して非線形変換を実行して、変換されたNビットデジタル出力ベクトルを生成することと、
メモリユニットに、変換されたNビットデジタル出力ベクトルを記憶することと
を含む、動作を実行するように構成される集積回路を含む、コントローラと
を含む。
【０９２０】
実施形態245：実施形態244のシステムにおいて、人工ニューラルネットワーク計算要求を受信することは、汎用コンピュータから、人工ニューラルネットワーク計算要求を受信することを含む。
【０９２１】
実施形態246：実施形態244のシステムにおいて、ドライバユニットは、複数の重み制御信号を生成するように構成される。
【０９２２】
実施形態247：実施形態244のシステムにおいて、行列乗算ユニットは、
複数の光変調器およびドライバユニットに結合された光行列乗算ユニットであって、複数の重み制御信号に基づいて光入力ベクトルを光出力ベクトルに変換するように構成される、光行列乗算ユニットと、
光行列乗算ユニットに結合され光出力ベクトルに対応する複数の出力電圧を生成するように構成される、光検出ユニットと
を含む。
【０９２３】
実施形態248：実施形態244のシステムにおいて、行列乗算ユニットは、
光入力ベクトルを受信するための入力導波管の列と、
光信号の第2の列への光入力ベクトルの線形変換を実行するための、入力導波管の列と光学的に連絡している光干渉ユニットと、
光信号の第2の列を導くための、光干渉ユニットと光学的に連絡している出力導波管の列と
を含み、入力導波管の列の中の少なくとも1つの入力導波管は、光干渉ユニットを介して、出力導波管の列の中の各出力導波管と光学的に連絡している。
【０９２４】
実施形態249：実施形態248のシステムにおいて、光干渉ユニットは、複数の相互接続されたマッハツェンダー干渉計(MZI)を含み、複数の相互接続されたMZIの中の各MZIは、
MZIの分割比を変更するように構成される第1の位相シフタと、
MZIの1つの出力の位相をシフトするように構成される第2の位相シフタと
を含み、
第1の位相シフタおよび第2の位相シフタは、複数の重み制御信号に結合される。
【０９２５】
実施形態250：実施形態244のシステムにおいて、行列乗算ユニットは、
光入力ベクトルの1つまたは複数の光信号の少なくとも2つのサブセットの各々に対する、1つまたは複数の光信号のサブセットを光信号の2つ以上の複製に分割するように構成される1つまたは複数の複製モジュールの対応するセットを含む、複数の複製モジュールと、
1つまたは複数の光信号の第1のサブセットの少なくとも2つの複製の各々に対する、光振幅変調を使用して第1のサブセットの1つまたは複数の光信号を1つまたは複数の行列要素値と乗算するように構成される対応する乗算モジュールを含む、複数の乗算モジュールと、
乗算モジュールのうちの2つ以上の結果に対する、乗算モジュールのうちの2つ以上の結果の合計を表す電気信号を生み出すように構成される加算モジュールを含む、1つまたは複数の加算モジュールと
を含む。
【０９２６】
実施形態251：実施形態250のシステムにおいて、乗算モジュールのうちの少なくとも1つは、入力ポートおよび2つの出力ポートを含む光振幅変調器を含み、関連する光信号のペアは、関連する光信号の振幅間の差が、入力値を符号付きの行列要素値と乗算した結果に対応するように、2つの出力ポートから提供される。
【０９２７】
実施形態252：実施形態250または251のシステムにおいて、行列乗算ユニットは、入力ベクトルを1つまたは複数の行列要素値を含む行列と乗算するように構成される。
【０９２８】
実施形態253：実施形態252のシステムにおいて、複数の出力値のセットは、1つまたは複数の加算モジュールによって生み出されるそれぞれの電気信号上で符号化され、複数の出力値のセットの中の出力値は、入力ベクトルが行列によって乗算されたことに起因する出力ベクトルの要素を表す。
【０９２９】
実施形態254：複数の重み制御信号に基づいて光入力ベクトルをアナログ出力ベクトルに変換するように構成される行列乗算ユニットを有するシステムにおいて、人工ニューラルネットワーク計算を実行するための方法は、
入力データセットおよび第1の複数のニューラルネットワーク重みを備える人工ニューラルネットワーク計算要求を受信するステップであって、入力データセットが第1のデジタル入力ベクトルを備える、ステップと、
メモリユニットに、入力データセットおよび第1の複数のニューラルネットワーク重みを記憶するステップと、
第1のデジタル入力ベクトルに基づく第1の複数の変調器制御信号と、第1の複数のニューラルネットワーク重みに基づく第1の複数の重み制御信号とを生成するステップと、
行列乗算ユニットの出力ベクトルに対応する第1の複数のデジタル化された出力を取得するステップであって、第1の複数のデジタル化された出力が第1のデジタル出力ベクトルを形成する、ステップと、
コントローラによって、第1のデジタル出力ベクトルに対して非線形変換を実行して、第1の変換されたデジタル出力ベクトルを生成するステップと、
メモリユニットに、第1の変換されたデジタル出力ベクトルを記憶するステップと、
コントローラによって、第1の変換されたデジタル出力ベクトルに基づいて生成された人工ニューラルネットワーク出力を出力するステップと
を含む。
【０９３０】
実施形態255：実施形態254の方法において、人工ニューラルネットワーク計算要求を受信するステップは、通信チャネルを通じてコンピュータから人工ニューラルネットワーク計算要求を受信するステップを含む。
【０９３１】
実施形態256：実施形態254または255の方法において、第1の複数の変調器制御信号を生成するステップは、デジタルアナログコンバータ(DAC)ユニットを通じて、第1の複数の変調器制御信号を生成するステップを含む。
【０９３２】
実施形態257：実施形態254から256のいずれか1つの方法において、第1の複数のデジタル化された出力を取得するステップは、アナログデジタル変換(ADC)ユニットから、第1の複数のデジタル化された出力を取得するステップを含む。
【０９３３】
実施形態258：実施形態257の方法において、方法は、
第1の複数の変調器制御信号を、光源およびDACユニットに結合された複数の光変調器に適用するステップと、
複数の光変調器を使用して、複数の変調器制御信号に基づいてレーザーユニットによって生成された複数の光出力を変調することによって光入力ベクトルを生成するステップと
を含む。
【０９３４】
実施形態259：実施形態258の方法において、行列乗算ユニットは、複数の光変調器およびDACユニットに結合され、方法は、
行列乗算ユニットを使用して、複数の重み制御信号に基づいて光入力ベクトルをアナログ出力ベクトルに変換するステップを含む。
【０９３５】
実施形態260：実施形態259の方法において、ADCユニットは、行列乗算ユニットに結合され、方法は、
ADCユニットを使用して、アナログ出力ベクトルを第1の複数のデジタル化された出力に変換するステップを含む。
【０９３６】
実施形態261：実施形態259または260の方法において、行列乗算ユニットは、複数の光変調器およびDACユニットに結合された光行列乗算ユニットを含み、
光入力ベクトルをアナログ出力ベクトルに変換するステップは、光行列乗算ユニットを使用して、複数の重み制御信号に基づいて光入力ベクトルを光出力ベクトルに変換するステップを含み、
方法は、光行列乗算ユニットに結合された光検出ユニットを使用して、光出力ベクトルに対応する複数の出力電圧を生成するステップを含む。
【０９３７】
実施形態262：実施形態254の方法において、方法は、
入力導波管の列において光入力ベクトルを受信するステップと、
入力導波管の列と光学的に連絡している光干渉ユニットを使用して、光信号の第2の列への光入力ベクトルの線形変換を実行するステップと、
光干渉ユニットと光学的に連絡している出力導波管の列を使用して、光信号の第2の列を導くステップと
を含み、入力導波管の列の中の少なくとも1つの入力導波管が、光干渉ユニットを介して出力導波管の列の中の各出力導波管と光学的に連絡している。
【０９３８】
実施形態263：実施形態262の方法において、光干渉ユニットは、複数の相互接続されたマッハツェンダー干渉計(MZI)を含み、複数の相互接続されたMZIの中の各MZIは第1の位相シフタおよび第2の位相シフタを含み、第1の位相シフタおよび第2の位相シフタは複数の重み制御信号に結合され、
方法は、
第1の位相シフタを使用してMZIの分割比を変更するステップと、
第2の位相シフタを使用してMZIの1つの出力の位相をシフトするステップと
を含む。
【０９３９】
実施形態264：実施形態258の方法において、方法は、
光入力ベクトルの1つまたは複数の光信号の少なくとも2つのサブセットの各々に対して、1つまたは複数の複製モジュールの対応するセットを使用して、1つまたは複数の光信号のサブセットを光信号の2つ以上の複製に分割するステップと、
1つまたは複数の光信号の第1のサブセットの少なくとも2つの複製の各々に対して、対応する乗算モジュールを使用して、光振幅変調を使用して第1のサブセットの1つまたは複数の光信号を1つまたは複数の行列要素値と乗算するステップと、
乗算モジュールのうちの2つ以上の結果に対して、加算モジュールを使用して、乗算モジュールのうちの2つ以上の結果の合計を表す電気信号を生み出すステップと
を含む。
【０９４０】
実施形態265：実施形態264の方法において、乗算モジュールのうちの少なくとも1つは、入力ポートおよび2つの出力ポートを含む光振幅変調器を含み、関連する光信号のペアは、関連する光信号の振幅間の差が、入力値を符号付きの行列要素値と乗算した結果に対応するように、2つの出力ポートから提供される。
【０９４１】
実施形態266：実施形態264または265の方法において、方法は、行列乗算ユニットを使用して、入力ベクトルを、1つまたは複数の行列要素値を含む行列と乗算するステップを含む。
【０９４２】
実施形態267：実施形態266の方法において、方法は、
1つまたは複数の加算モジュールによって生み出されたそれぞれの電気信号に対して複数の出力値のセットを符号化するステップと、
複数の出力値のセットの中の出力値を使用して、入力ベクトルが行列と乗算されたことに起因する出力ベクトルの要素を表すステップと
を含む。
【０９４３】
実施形態268：方法は、
電子フォーマットで入力情報を提供するステップと、
電子入力情報の少なくとも一部を光入力ベクトルに変換するステップと、
行列乗算に基づいて光入力ベクトルをアナログ出力ベクトルに光電子的に変換するステップと、
非線形変換をアナログ出力ベクトルに電子的に適用して電子フォーマットで出力情報を提供するステップと
を含む。
【０９４４】
実施形態269：実施形態268の方法において、方法はさらに、
電子フォーマットの提供された出力情報に対応する新しい電子入力情報に関して、電気から光への変換、光電子変換、および電子的に適用される非線形変換を繰り返すステップを含む。
【０９４５】
実施形態270：実施形態269の方法において、最初の光電子変換のための行列乗算および繰り返される光電子変換の行列乗算は、同じであり、人工ニューラルネットワークの同じ層に対応する。
【０９４６】
実施形態271：実施形態269の方法において、最初の光電子変換のための行列乗算および繰り返される光電子変換の行列乗算は、異なり、人工ニューラルネットワークの異なる層に対応する。
【０９４７】
実施形態272：実施形態268の方法において、方法はさらに、
電子入力情報の異なる部分に関して、電気から光への変換、光電子変換、および電子的に適用される非線形変換を繰り返すステップを含み、
最初の光電子変換のための行列乗算および繰り返される光電子変換の行列乗算は、同じであり、人工ニューラルネットワークの第1の層に対応する。
【０９４８】
実施形態273：実施形態272の方法において、方法はさらに、
人工ニューラルネットワークの第1の層によって電子入力情報の複数の部分のために生み出された電子出力情報に基づいて、電子フォーマットで中間情報を提供するステップと、
電子中間情報の異なる部分の各々に関して、電気から光への変換、光電子変換、および電子的に適用される非線形変換を繰り返すステップと
を含み、
最初の光電子変換のための行列乗算および電子中間情報の異なる部分に関する繰り返される光電子変換の行列乗算は、同じであり、人工ニューラルネットワークの第2の層に対応する。
【０９４９】
実施形態274：人工ニューラルネットワーク計算を実行するためのシステムは、
複数のベクトル制御信号を生成し複数の重み制御信号を生成するように構成される第1のユニットと、
複数のベクトル制御信号に基づいて光入力ベクトルを提供するように構成される第2のユニットと、
第2のユニットおよび第1のユニットに結合された行列乗算ユニットであって、複数の重み制御信号に基づいて光入力ベクトルを出力ベクトルに変換するように構成される行列乗算ユニットと、
コントローラであって、
入力データセットおよび第1の複数のニューラルネットワーク重みを備える人工ニューラルネットワーク計算要求を受信することであって、入力データセットが第1のデジタル入力ベクトルを備える、受信することと、
第1のユニットを通じて、第1のデジタル入力ベクトルに基づく第1の複数のベクトル制御信号および第1の複数のニューラルネットワーク重みに基づく第1の複数の重み制御信号を生成することと
を含む、動作を実行するように構成される集積回路を含む、コントローラと
を含み、
第1のユニット、第2のユニット、行列乗算ユニット、およびコントローラは、複数の反復に対して繰り返される光電子処理ループにおいて使用され、光電子処理ループは、(1)少なくとも2つの光変調動作と、(2)(a)光加算動作または(b)光記憶動作のうちの少なくとも1つを含む。
【０９５０】
実施形態275：人工ニューラルネットワーク計算を実行するための方法は、
電子フォーマットで入力情報を提供するステップと、
電子入力情報の少なくとも一部を光入力ベクトルに変換するステップと、
ニューラルネットワーク重みのセットを使用して行列乗算に基づいて光入力ベクトルを出力ベクトルに転換するステップと
を含み、
提供するステップ、変換するステップ、および転換するステップは、ニューラルネットワーク重みの異なるそれぞれのセットおよび異なるそれぞれの入力情報を使用して複数の反復に対して繰り返される光電子処理ループにおいて実行され、光電子処理ループは、(1)少なくとも2つの光変調動作と、(2)(a)光加算動作または(b)光記憶動作のうちの少なくとも1つを含む。
【符号の説明】
【０９５１】
100  人工ニューラルネットワーク(ANN)計算システム
102  コンピュータ
104  波長分割多重化(WDM)人工ニューラルネットワーク(ANN)計算システム
104A，104B  複製モジュール
110  コントローラ
120  メモリユニット
130  デジタルアナログコンバータ(DAC)ユニット
132  第1のDACサブユニット
134  第2のDACサブユニット
140  光プロセッサ
142  レーザーユニット
142a  第1のレーザーユニット
142b  第2のレーザーユニット
144  変調器の列
144a  第1の変調器の列
144b  第2の変調器の列
146  検出ユニット
146a  第1の検出ユニット
146b  第2の検出ユニット
150  光行列乗算(OMM)ユニット
152  入力導波管
154  光干渉ユニット
156  出力導波管
157  構成
158  構成
160  アナログデジタルコンバータ(ADC)ユニット
170  MZI
171  第1の入力導波管
172  第2の入力導波管
174  第1の位相シフタ
176  第2の位相シフタ
178  第1の出力導波管
179  第2の出力導波管
200  方法
300  ANN計算システム
302  ANN計算システム
310  アナログ非線形性ユニット
310a  第1のアナログ非線形ユニット
310b  第2のアナログ非線形ユニット
320  アナログメモリユニット
400  方法、人工ニューラルネットワーク(ANN)計算システム
430  ドライバユニット
432  第1のドライバサブユニット
434  第2のドライバサブユニット
460  比較器ユニット
500  人工ニューラルネットワーク計算システム
502  2D光行列乗算(OMM)ユニット、光行列乗算ユニット
504  光プロセッサ
506  DACユニット
600  光干渉ユニット
602  入力導波管
604  出力導波管
610A  ベクトル行列乗算器(VMM)サブシステム
700  人工ニューラルネットワーク計算システム
702  光プロセッサ
704  レーザーユニット
704a  第1のレーザーユニット
704b  第2のレーザーユニット
706  変調器の列
706a  第1の変調器の列
706b  第2の変調器の列
708  3次元光行列乗算(OMM)ユニット
710  検出ユニット
710a  第1の検出ユニット
710b  第2の検出ユニット
712  DACユニット
714  光線
716  光線
718  出力光線
802  光入力行列
804  3次元光干渉ユニット
806  光出力行列
900  人工ニューラルネットワーク計算システム
902  コントローラ
904  DACユニット
906  光プロセッサ
908  レーザーユニット
910  レーザー光線
912  変調器、変調器の列
914  光線
916  1次元光乗算(OM)ユニット
918  出力光線
920  検出ユニット
930  ADCユニット
1002  光入力
1004  1次元光干渉ユニット
1006  光出力
1100  行列乗算器ユニット
1102  変調器
1104  干渉計
1106  減衰器
1108，1108a，1108b，1108c，1108d，1108e  指向性カプラ
1110，1110a，1110b，1110c，1110d  位相シフタ
1200  マッハツェンダー干渉計
1202  干渉計
1204  マッハツェンダー干渉計
1206  相互接続された干渉計
1208  マッハツェンダー干渉計
1210  相互接続された干渉計
1212  小型の相互接続された干渉計
1302  減衰器
1400  光生成対立ネットワーク
1402  区別器
1404  生成器
1406  訓練画像セット
1408  ランダムノイズ
1410  合成画像
1500  マッハツェンダー干渉計
1502  位相シフタ
1600  フォトニック回路
1602  検出器
1604  比較器
1606a  第1の出力
1606b  第2の出力
1608a  第1の出力
1608b  第2の出力
1700  フォトニック回路
1704  第1の出力
1706  第2の出力
1710  フォトニック回路
1712  第1のマッハツェンダー干渉計
1714  第1の検出器
1716  第2のマッハツェンダー干渉計
1718  第2の検出器
1720  第1の出力
1722  第2の出力
1800  光電子コンピューティングシステム
1802，1802A，1802B  光ポート、光源
1803  光経路
1804，1804A，1804B  複製モジュール
1806，1806A，1806B，1806C，1806D  乗算モジュール
1808  加算モジュール
1810，1810A，1810B  信号
1900  システム構成、ベクトル行列乗算を実行するためのシステム
1902  複製モジュール
1904  乗算モジュール
1906  光検出モジュール
1908  加算モジュール
1910  光合成器モジュール
1912  光電子加算モジュール
1920  システム構成
2000  対称差動構成
2002  電流減算モジュール
2010  電流
2012  第1のフォトダイオード検出器
2014  電流
2016  第2のフォトダイオード検出器
2018  交点
2020  差電流
2024  端子
2026  出力端子
2028  抵抗性素子
2030  オペアンプ
2032  共通端子
2040  電流
2042  第1のフォトダイオード検出器
2044  電流
2046  第2のフォトダイオード検出器
2050  オペアンプ
2052  反転端子
2054  非反転端子
2056  出力端子
2100  対称差動構成
2102  電流減算モジュール
2110  システム構成
2112  複製モジュール
2114A，2114B  加算モジュール
2200  1×2光振幅変調器
2202  入力光分割器
2204  位相変調器
2206  カプラ
2210  対称差動構成
2212  光検出器
2214  光検出器
2216  交点
2220  対称差動構成
2221  入力ポート
2222  リング共振器
2224  経路
2226  時計回りの経路
2228  経路
2230  対称差動構成
2231  入力ポート
2232  リング共振器
2234  リング共振器
2236  経路
2238  時計回りの経路
2240  反時計回りの経路
2242  経路
2300A，2300B  光電子システム構成
2302A，2302B  光振幅変調器
2303  導波管分割器
2306A，2306B  オペアンプ
2310A，2310B，2310C  VMMサブシステム
2400A，2400B，2400C，2400D  システム構成
2402  光ポート、光源
2403  光導波管のセット
2404  複製モジュール
2405A，2405B  光導波管のセット
2410  VMMサブシステムデバイス
2414  加算モジュール
2420  光受信機の列
2422  光受信機の列
2430  光スイッチ
2440  電気スイッチ
2450  データ記憶サブシステム
2460  補助処理サブシステム
2462  結果データ
2500  方法
2600  ANN計算システム
2602  光電子プロセッサ
2604  第1の2D光行列乗算(OMM)ユニット
2606  第2の2D光行列乗算(OMM)ユニット
2700  ANN計算システム
2702  光電子プロセッサ
2704  第1の3D光行列乗算(OMM)ユニット
2706  第2の3D光行列乗算(OMM)ユニット
2800  ニューラルネットワーク計算システム
2802  光プロセッサ
2804  2D OMMユニット
2900  ニューラルネットワーク計算システム
2902  光プロセッサ
2904  3D OMMユニット
3000  人工ニューラルネットワーク計算システム
3002  光プロセッサ
3004  2D OMMユニット
3100  人工ニューラルネットワーク計算システム
3102  光プロセッサ
3104  3D光行列乗算(OMM)ユニット
3200  人工ニューラルネットワーク(ANN)計算システム
3210  光プロセッサ、光電子プロセッサ
3220  光電子行列乗算(OMM)ユニット
3230  光源
3300  方法
3310  光検出モジュール
3320  加算モジュール
3500  波長分割多重化(WDM)人工ニューラルネットワーク(ANN)計算システム
3510  光電子プロセッサ
3520  光電子行列乗算ユニット、波長分割多重化光電子行列乗算ユニット
3530  乗算モジュール
3600  ANN計算システム
3700  ANN計算システム
3800  人工ニューラルネットワーク(ANN)計算システム
3900  マッハツェンダー変調器
3902a，3902b  1×2ポートマルチモード干渉カプラ
3904a，3904b  バランスアーム
3906  位相シフタ
3908  信号線
3910  グラフ
4000  ホモダイン検出器
4002  ビーム分割器
4004a，4004b  光検出器
4006  減算器
4008  出力
4100  計算システム
4102  第1の光信号
4104  変調器
4106  第2の光信号
4108  変調器
4110  マルチプレクサ
4112  光ファイバ
4114  光電子チップ
4116，4116a，4116b，4116c，4116d  行列乗算モジュール
4118，4118a，4118b，4118c，4118d  行列乗算モジュール、デマルチプレクサ
4120  第1の変調された光信号
4120a，4120b  光カプラ
4122a  光検出器
4122  第2の変調された光信号
4124  第3の光信号、複製モジュール
4126  第4の光信号
4128  第3の変調器
4130  第4の変調器
4132  第3の変調された光信号
4134  第4の変調された光信号
4136  マルチプレクサ
4138  光ファイバ
4140  デマルチプレクサ
4142  複製モジュール
4144  複製モジュール
【図１Ａ】
2021527287.tif 000086
【図１Ｂ】
2021527287.tif 000087
【図１Ｃ】
2021527287.tif 000088
【図１Ｄ】
2021527287.tif 000089
【図１Ｅ】
2021527287.tif 000090
【図１Ｆ】
2021527287.tif 000091
【図２Ａ】
2021527287.tif 000092
【図２Ｂ】
2021527287.tif 000093
【図３Ａ】
2021527287.tif 000094
【図３Ｂ】
2021527287.tif 000095
【図４Ａ】
2021527287.tif 000096
【図４Ｂ】
2021527287.tif 000097
【図５】
2021527287.tif 000098
【図６】
2021527287.tif 000099
【図７】
2021527287.tif 000100
【図８】
2021527287.tif 000101
【図９】
2021527287.tif 000102
【図１０】
2021527287.tif 000103
【図１１】
2021527287.tif 000104
【図１２Ａ】
2021527287.tif 000105
【図１２Ｂ】
2021527287.tif 000106
【図１３】
2021527287.tif 000107
【図１４】
2021527287.tif 000108
【図１５】
2021527287.tif 000109
【図１６】
2021527287.tif 000110
【図１７Ａ】
2021527287.tif 000111
【図１７Ｂ】
2021527287.tif 000112
【図１８】
2021527287.tif 000113
【図１９Ａ】
2021527287.tif 000114
【図１９Ｂ】
2021527287.tif 000115
【図２０Ａ】
2021527287.tif 000116
【図２０Ｂ】
2021527287.tif 000117
【図２０Ｃ】
2021527287.tif 000118
【図２１Ａ】
2021527287.tif 000119
【図２１Ｂ】
2021527287.tif 000120
【図２２Ａ】
2021527287.tif 000121
【図２２Ｂ】
2021527287.tif 000122
【図２２Ｃ】
2021527287.tif 000123
【図２２Ｄ】
2021527287.tif 000124
【図２３Ａ】
2021527287.tif 000125
【図２３Ｂ】
2021527287.tif 000126
【図２３Ｃ】
2021527287.tif 000127
【図２４Ａ】
2021527287.tif 000128
【図２４Ｂ】
2021527287.tif 000129
【図２４Ｃ】
2021527287.tif 000130
【図２４Ｄ】
2021527287.tif 000131
【図２４Ｅ】
2021527287.tif 000132
【図２５】
2021527287.tif 000133
【図２６】
2021527287.tif 000134
【図２７】
2021527287.tif 000135
【図２８】
2021527287.tif 000136
【図２９】
2021527287.tif 000137
【図３０】
2021527287.tif 000138
【図３１】
2021527287.tif 000139
【図３２Ａ】
2021527287.tif 000140
【図３２Ｂ】
2021527287.tif 000141
【図３３】
2021527287.tif 000142
【図３４】
2021527287.tif 000143
【図３５Ａ】
2021527287.tif 000144
【図３５Ｂ】
2021527287.tif 000145
【図３５Ｃ】
2021527287.tif 000146
【図３６】
2021527287.tif 000147
【図３７】
2021527287.tif 000148
【図３８】
2021527287.tif 000149
【図３９Ａ】
2021527287.tif 000150
【図３９Ｂ】
2021527287.tif 000151
【図４０】
2021527287.tif 000152
【図４１】
2021527287.tif 000153
【国際調査報告】
2021527287.tif 000154
2021527287.tif 000155