TWI741533B - 計算系統、計算裝置及計算系統的操作方法 - Google Patents

計算系統、計算裝置及計算系統的操作方法 Download PDF

Info

Publication number
TWI741533B
TWI741533B TW109109209A TW109109209A TWI741533B TW I741533 B TWI741533 B TW I741533B TW 109109209 A TW109109209 A TW 109109209A TW 109109209 A TW109109209 A TW 109109209A TW I741533 B TWI741533 B TW I741533B
Authority
TW
Taiwan
Prior art keywords
optical
optoelectronic
computing system
input
unit
Prior art date
Application number
TW109109209A
Other languages
English (en)
Other versions
TW202103063A (zh
Inventor
孟懷宇
徐葉龍
吉伯特 亨德瑞
龍武 歐
京東 鄧
羅納德 蓋格能
盧正觀
莫瑞斯 史丹曼
麥克 伊凡斯
建華 吳
沈亦晨
Original Assignee
美商光子智能股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US16/703,278 external-priority patent/US11507818B2/en
Application filed by 美商光子智能股份有限公司 filed Critical 美商光子智能股份有限公司
Publication of TW202103063A publication Critical patent/TW202103063A/zh
Application granted granted Critical
Publication of TWI741533B publication Critical patent/TWI741533B/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/067Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using optical means
    • G06N3/0675Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using optical means using electro-optical, acousto-optical or opto-electronic means
    • GPHYSICS
    • G02OPTICS
    • G02FOPTICAL DEVICES OR ARRANGEMENTS FOR THE CONTROL OF LIGHT BY MODIFICATION OF THE OPTICAL PROPERTIES OF THE MEDIA OF THE ELEMENTS INVOLVED THEREIN; NON-LINEAR OPTICS; FREQUENCY-CHANGING OF LIGHT; OPTICAL LOGIC ELEMENTS; OPTICAL ANALOGUE/DIGITAL CONVERTERS
    • G02F1/00Devices or arrangements for the control of the intensity, colour, phase, polarisation or direction of light arriving from an independent light source, e.g. switching, gating or modulating; Non-linear optics
    • G02F1/01Devices or arrangements for the control of the intensity, colour, phase, polarisation or direction of light arriving from an independent light source, e.g. switching, gating or modulating; Non-linear optics for the control of the intensity, phase, polarisation or colour 
    • G02F1/21Devices or arrangements for the control of the intensity, colour, phase, polarisation or direction of light arriving from an independent light source, e.g. switching, gating or modulating; Non-linear optics for the control of the intensity, phase, polarisation or colour  by interference
    • G02F1/225Devices or arrangements for the control of the intensity, colour, phase, polarisation or direction of light arriving from an independent light source, e.g. switching, gating or modulating; Non-linear optics for the control of the intensity, phase, polarisation or colour  by interference in an optical waveguide structure
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization

Abstract

一種光電計算系統包括:第一半導體晶粒,包括光子積體電路(PIC),PIC包括複數光波導,在光波導承載相應複數光訊號上編碼一組輸入值;光複製分配網路,包括複數光分離器,將輸入光波功率之一半傳送到兩個輸出端;及光電子電路區段陣列,各光電子電路區段從光複製分配電路輸出端接收光波,各光電子電路區段包括光偵測器,至少一導線整合至PIC,電性耦接光偵測器與電輸出端;以及,包含電子積體電路(EIC)之第二半導體晶粒,EIC包含:複數電輸入端接收各自電氣值,第一半導體晶粒和第二半導體晶粒以控制塌陷高度晶片連接電性耦接,PIC之電輸出端連接EIC之電輸入端。

Description

計算系統、計算裝置及計算系統的操作方法
本揭露係關於一種光電計算系統。
神經形態計算(neuromorphic computing)是電子領域中近似大腦的操作的方法。神經形態計算的一個突出方法是人工神經網路(artificial neural network;ANN),它是人工神經元的集合,以特定的方式相互連接,以類似於大腦功能的方式處理資訊。人工神經網路已廣泛應用於人工智慧、語音識別、文本識別、自然語言處理以及各種形式的圖案識別。
ANN具有輸入層、一或多個隱藏層以及輸出層。每個層具有節點或人工神經元,並且節點在層之間互連。隱藏層的每個節點執行從先前層的節點所接收的信號的加權總和(weighted sum),並且執行加權總和的非線性轉換(“激活”)以產生輸出。可以藉由執行矩陣乘法步驟來計算加權總和。因此,計算ANN通常涉及多個矩陣乘法步驟,其通常使用電子積體電路來執行。
在以類比或數位形式的電訊號(例如:電壓或電流)所編碼的電子資料上所執行的計算通常使用電子計算硬體來實行,例如在積體電路(例如:處理器、特殊應用積體電路(application-specific integrated circuit;ASIC)或系統單晶片(system on a chip;SoC))、電子電路板或其他電子電路中實行的類比或數位電子裝置。光訊號已被用於在長距離和較短距離(例如:在資料中心內)上傳輸資料。在這種光訊號上執行的操作通常在光資料傳輸的環境中進行,例如用於在網路中切換或過濾光訊號的裝置內。在計算平台中使用光訊號已被更多限制。用於全光(all-optical)計算的各種部件和系統已被提出。這種系統可包括個別地在輸入和輸出處從電訊號到電訊號的轉換,但是對於在計算中執行的重要操作可不使用兩種類型(電和光)的訊號。
在通常情況下,在第一觀點中,光電計算系統包括:包含光子積體電路(PIC)之第一半導體晶粒,該光子積體電路包含:多個光波導,其中在由光波導所承載的相應複數光訊號上編碼一組多個輸入值;光複製分配網路,包含複數光分離器,其中各該光分離器將位於輸入端口之輸入光波之功率之一半分別傳送到兩個輸出端口;以及光電子電路區段之陣列,各光電子電路區段從光複製分配電路之輸出端口之一接收光波,各光電子電路區段包括:至少一光偵測器,該光偵測器在光電子操作中偵測至少一光波;以及光子積體電路中至少一導線與光偵測器以及電輸出端電性耦接;以及包含電子積體電路(EIC)之第二半導體晶粒,該電子積體電路包含:接收各自電氣值之複數電輸入端,其中第一半導體晶粒和第二半導體晶粒以控制塌陷高度晶片連接(Controlled Collapsed Chip Connection)電性耦接,且光子積體電路之電輸出端與電子積體電路之輸入端連接。
計算系統的實施例可包括以下特徵的一或多個。
每個光電子電路區段包含:光電子操作模組,在兩者中擇一執行操作:(1)光複製分配網路縮放以輸入值之一為依據之光學值,以及(2)電輸入端提供電氣值;至少一光偵測器在光電子操作中偵測至少一光波,且光子積體電路中至少一導線與光偵測器以及電輸出端電性耦接。
電子積體電路更進一步包含複數數位類比轉換器(digital to analog converters;DACs),提供電氣值給相應的電輸出端,且光子積體電路之電輸入端連接到電子積體電路之電輸出端。
光分離器被設置為二元樹設置中之節點,該二元樹設置藉由作為二元樹設置之連結之光波導連接。
光傳播長度在二元樹分配之根以及不同的光電子電路區段之間各自不同。
光複製分配網路中的光波導被設置在第一半導體晶粒,以避免穿過任何光複製分配網路中的光波導。
光子電路區段被設置在第一半導體晶粒上,整體上排列成複數直線。
複數直線藉由一個或多個光複製分配網路中的光波導,各自與每條其他直線光學耦合。
部分光子積體電路中的導線將光偵測器連接到來自不同光電子電路區段之導線間之接點。
在另一個觀點中,計算系統包括:第一單元,被配置以產生複數調變器控制訊號;以及處理單元。處理單元包括:光源或端口,被配置以提供複數光輸出;以及第一組光調變器,耦接至光源或端口和第一單元。第一組光調變器中的複數光調變器被配置以基於與複數調變器控制訊號中的第一組調變器控制訊號相對應的數位輸入值,調變由光源或端口所提供的複數光輸出,來產生光輸入向量,光輸入向量包括複數光訊號。處理單元還包括矩陣乘法單元,矩陣乘法單元包括第二組光調變器。矩陣乘法單元耦接至第一單元,且被配置以基於與施加到第二組光調變器的複數調變器控制訊號中的一第二組調變器控制訊號相對應的複數數位權重值,將光輸入向量轉換為類比輸出向量。第一組光調變器或第二組光調變器中的至少一者的至少一光調變器被配置以基於複數調變器控制訊號中的第一調變器控制訊號來調變光訊號,並且第一單元被配置以整形第一調變器控制訊號,以包括與幅度變化相關的帶寬增強,幅度變化與對應第一調變器控制訊號的複數連續數位值的對應變化相關。
計算系統的實施例可包括以下特徵的一或多個。計算系統可包括第二單元,耦接至矩陣乘法單元,並且第二單元被配置以將類比輸出向量轉換成數位輸出向量;以及控制器。控制器可包括積體電路,被配置以執行以下操作:接收人工神經網路計算請求,人工神經網路計算請求包括輸入資料集,輸入資料集包括第一數位輸入向量;接收第一多個神經網路權重;以及透過第一單元,基於第一數位輸入向量產生第一多個調變器控制訊號,並且基於第一多個神經網路權重產生第一多個權重控制訊號。
第一單元可包括數位類比轉換器(digital to analog converter;DAC)。
計算系統可包括記憶體單元,被配置以儲存資料集和複數神經網路權重。
控制器的積體電路可更被配置以執行包括在記憶體單元中儲存輸入資料集和第一多個神經網路權重的操作。
控制器可包括特殊應用積體電路(application specific integrated circuit;ASIC),並且接收人工神經網路計算請求的步驟可包括從通用資料處理器接收人工神經網路計算請求。
第一單元、處理單元、第二單元以及控制器可被設置在多晶片模組或積體電路中的至少一者上。接收人工神經網路計算請求的步驟可包括從第二資料處理器接收人工神經網路計算請求,其中第二資料處理器在多晶片模組或積體電路的外部,第二資料處理器透過通訊通道(communication channel)耦接至多晶片模組或積體電路,並且處理單元可以以比通訊通道的資料速率大至少一數量級的資料速率來處理資料。
第一單元、處理單元、第二單元以及控制器可被用於在複數迭代中重複的光電處理循環。光電處理循環包括:(1)基於調變器控制訊號之至少一者的至少一第一光調變操作,以及基於權重控制訊號之至少一者的至少一第二光調變操作,以及(2)(a)電求和操作或(b)電儲存操作中之至少一者。
光電處理循環可包括電儲存操作,並且電儲存操作使用耦接至控制器的記憶體單元來執行。藉由控制器所執行的操作可更包括在記憶體單元中儲存輸入資料集和第一多個神經網路權重。
光電處理循環可包括電求和操作,並且電求和操作可使用在矩陣乘法單元內的電求和模組來執行。電求和模組可被配置以產生對應類比輸出向量的元素的電流,電流表示光輸入向量的相應元素乘以相應神經網路權重的總和。
第一調變器控制訊號可包括與複數既定幅度準位相關的類比訊號,並且幅度準位之每一者與不同對應數位值相關。
第一調變器控制訊號可包括與既定幅度準位之兩者相關的類比訊號,並且幅度準位之每一者與不同對應二元值相關。
連續數位值可包括在一系列二元值中的複數連續二元值。
控制器可被配置以藉由增加與第一時間間隔相關的第一既定幅度準位和與第二時間間隔相關的第二既定幅度準位之間的幅度變化的大小,來整形第一調變器控制訊號,以包括用於第二時間間隔的初始部分的帶寬增強。
一系列二元值可用於確定用於根據不歸零(non-return-to-zero;NRZ)調變模式來調變光訊號的第一調變器控制訊號的幅度準位。
第一單元可被配置以藉由在第二組光調變器中的第一調變器的二極體結構和串聯連接在二極體結構和提供第一調變器控制訊號的電路之間的電容之間泵浦(pumping)電流,來整形第一調變器控制訊號,以包括帶寬增強,以及泵浦電流所傳輸的電荷量至少部分地基於在提供連續數位值的時間週期內的恆定電壓來確定。
在另一觀點中,計算裝置包括:複數光波導,耦接至第一組光幅度調變器,其中使用第一組光幅度調變器,在由光波導所承載的相應複數光訊號上編碼一組多個輸入值。計算裝置包括複數複製模組,並且對於一或多個光訊號的至少兩個子集中的每一者,複製模組的一或多者的對應一組被配置以將一或多個光訊號的子集分成光訊號的二或多個副本。計算裝置包括複數乘法模組,乘法模組之每一者包括第二組光幅度調變器的光幅度調變器,並且對於一或多個光訊號的第一子集的至少兩個副本中的每一者,乘法模組的對應一者被配置以使用第二組光幅度調變器的光幅度調變器將第一子集的一或多個光訊號乘以一或多個矩陣元素值。計算裝置包括一或多個求和模組,並且對於乘法模組的二或多者的結果,求和模組的對應一者被配置以產生電訊號,電訊號表示乘法模組的二或多者的結果的總和。第一組光幅度調變器或第二組光幅度調變器中的至少一者的至少一光幅度調變器被配置以使用相對調變值的絕對值單調增加(monotonically increase)的功率,藉由調變值來調變光訊號。
計算裝置的實施例可包括以下特徵的一或多個。第一組光幅度調變器或第二組光幅度調變器中的至少一者的至少一光幅度調變器可包括相干敏感光幅度調變器,相干敏感光幅度調變器被配置以基於複數光波之間的干涉,藉由調變值調變光訊號,光波具有相干長度,相干長度至少與通過相干敏感光幅度調變器的傳播距離一樣長。
相干敏感光幅度調變器可包括馬赫曾德爾干涉儀(Mach-Zehnder Interferometer;MZI),馬赫曾德爾干涉儀將輸入光波導所引導的光波分成馬赫曾德爾干涉儀的第一光波導臂和馬赫曾德爾干涉儀的第二光波導臂。第一光波導臂可包括主動相位移器,主動相位移器相對於第二光波導臂的相位延遲產生相對相位移,並且馬赫曾德爾干涉儀可將來自第一光波導臂和第二光波導臂的複數光波組合成至少一輸出光波導。
用於藉由調變值來調變光訊號的功率可包括施加到主動相位移器的功率。
編碼在相應光訊號上的一組多個輸入值中的複數輸入值可表示與包括一或多個矩陣元素值的矩陣相乘的輸入向量的複數元素。
一組多個輸出值可被編碼在由一或多個求和模組所產生的複數相應電訊號上,並且一組多個輸出值中的複數輸出值可表示輸出向量的複數元素,輸出向量藉由輸入向量乘以矩陣產生。
由光波導所承載的光訊號之每一者可包括具有共同波長的光波,共同波長於所有光訊號大抵相同。
複製模組可包括具有光分離器的至少一複製模組,光分離器在複製模組的輸入端口將光波的功率的既定比例發送至複製模組的第一輸出端口,並且在複製模組的輸入端口將光波的功率的剩餘比例發送至複製模組的第二輸出端口。
光分離器可包括波導光分離器,波導光分離器將由複製模組的輸入光波導所引導的光波的功率的既定比例發送至複製模組的第一輸出光波導,並且將由複製模組的輸入光波導所引導的光波的功率的剩餘比例發送至複製模組的第二輸出光波導。
輸入光波導的引導模式可被絕熱地耦接至第一輸出光波導和第二輸出光波導中之每一者的複數引導模式。
光分離器可包括光束分離器,光束分離器包括至少一表面,其在輸入端口傳輸光波的功率的既定比例,並且在輸入端口反射光波的功率的剩餘比例。
光波導的至少一者可包括耦接至光耦合器的光纖,光耦合器將光纖的引導模式耦接至自由空間傳播模式(free-space propagation mode)。
乘法模組可包括至少一相干敏感光幅度調變器,相干敏感光幅度調變器被配置以基於複數光波之間的干涉,將第一子集的一或多個光訊號乘以一或多個矩陣元素值,光波具有相干長度,相干長度至少與通過相干敏感光幅度調變器的傳播距離一樣長。
相干敏感光幅度調變器可包括馬赫曾德爾干涉儀(MZI),馬赫曾德爾干涉儀將輸入光波導所引導的光波分成馬赫曾德爾干涉儀的第一光波導臂和馬赫曾德爾干涉儀的第二光波導臂。第一光波導臂可包括相位移器,相位移器相對於第二光波導臂的相位延遲產生相對相位移,並且馬赫曾德爾干涉儀可將來自第一光波導臂和第二光波導臂的複數光波組合成至少一輸出光波導。
馬赫曾德爾干涉儀可將來自第一光波導臂和第二光波導臂的複數光波組合成第一輸出光波導和第二輸出光波導中的每一者。第一光偵測器可從第一輸出光波導接收光波以產生第一光電流,第二光偵測器可從第二輸出光波導接收光波以產生第二光電流,並且相干敏感光幅度調變器的結果可包括第一光電流與第二光電流之間的差值。
相干敏感光幅度調變器可包括一或多個環形共振器,環形共振器包括耦接至第一光波導的至少一環形共振器和耦接至第二光波導的至少一環形共振器。
第一光偵測器可接收來自第一光波導的光波,以產生第一光電流,第二光偵測器可接收來自第二光波導的光波,以產生第二光電流,並且相干敏感光幅度調變器的結果可包括第一光電流與第二光電流之間的差值。
乘法模組可包括至少一相干非敏感光幅度調變器,相干非敏感光幅度調變器被配置以基於光波內的能量吸收,將第一子集的一或多個光訊號乘以一或多個矩陣元素值。
相干非敏感光幅度調變器可包括電吸收調變器。
一或多個求和模組可包括具有以下部件的至少一求和模組:(1)二或多個輸入導體,輸入導體之每一者以輸入電流的形式承載電訊號,輸入電流的幅度表示乘法模組的相應一者的相應結果,以及(2)至少一輸出導體,輸出導體承載表示輸出電流的形式的相應結果的總和的電訊號,輸出電流與輸入電流之總和成比例。
二或多個輸入導體和輸出導體可包括複數導線,其在導線之間的一或多個接點相遇,並且輸出電流可大抵等於輸入電流之總和。
輸入電流的至少一第一輸入電流可以以至少一光電流的形式提供,光電流由至少一光偵測器產生,光偵測器接收由乘法模組的第一乘法模組所產生的光訊號。
第一輸入電流可以以兩個光電流之間的差值的形式提供,兩個光電流由不同相應光偵測器產生,光偵測器接收由第一乘法模組所產生的不同相應光訊號。
一或多個光訊號的第一子集的副本之一者可由單一光訊號組成,其中單一光訊號上的輸入值之一者被編碼。
對應第一子集的副本的乘法模組可將編碼的輸入值乘以單一矩陣元素值。
一或多個光訊號的第一子集的副本之一者可包括的光訊號多於一個,並且少於所有光訊號的數量,其中光訊號的多個輸入值被編碼。
對應第一子集的副本的乘法模組可將編碼的輸入值乘以不同相應矩陣元素值。
對應一或多個光訊號的第一子集的不同相應副本的不同乘法模組可被包含在不同裝置,不同裝置進行光學通訊以在不同裝置之間傳輸一或多個光訊號的第一子集的副本之一者。
光波導的二或多者、複製模組的二或多者、乘法模組的二或多者、以及一或多個求和模組的至少一者可被設置在公共裝置的基板上。
公共裝置可執行向量矩陣乘法,其中可提供輸入向量作為一組光訊號,並且可提供輸出向量作為一組電訊號。
計算裝置可更包括累加器,累加器整合對應乘法模組之一者或求和模組之一者的輸出的輸入電訊號,其中使用時域編碼來編碼輸入電信號,時域編碼在多個時槽的每一者內使用開關幅度調變,並且累加器產生輸出電訊號,輸出電訊號以多於兩個幅度準位來編碼,幅度準位對應多個時槽上的時域編碼的不同佔空比。
乘法模組的二或多者之每一者可對應一或多個光訊號的不同子集。
計算裝置可更包括用於一或多個光訊號的第二子集的每一個副本,與一或多個光訊號的第一子集中的光訊號不同,乘法模組被配置以使用光幅度調變將第二子集的一個或多個光訊號乘以一或多個矩陣元素值。
在另一通常觀點中,計算系統的操作方法包括:使用第一組光幅度調變器在相應光訊號上編碼一組多個輸入值;對於一或多個光訊號的至少兩個子集中的每一者,使用一或多個複製模組的對應一組以將一或多個光訊號的複數子集分成光訊號的二或多個副本;對於一或多個光訊號的第一子集的至少兩個副本中的每一者,使用對應乘法模組以使用第二組光幅度調變器的光幅度調變器將第一子集的一或多個光訊號乘以一或多個矩陣元素值;以及對於二或多個乘法模組的結果,使用求和模組以產生電訊號,電訊號表示二或多個乘法模組的結果的總和。第一組光幅度調變器或第二組光幅度調變器中的至少一者的至少一光幅度調變器被配置以使用相對調變值的絕對值單調增加的功率,藉由調變值來調變光訊號。
在另一通常觀點中,計算系統包括:記憶體單元,被配置以儲存資料集和複數神經網路權重;數位類比轉換器(digital-to-analog converter;DAC)單元,被配置以產生複數調變器控制訊號,並且產生複數權重控制訊號;光處理器,包括雷射單元,被配置以產生複數光輸出;複數光調變器,耦接至雷射單元和DAC單元,光調變器被配置以基於調變器控制訊號,調變由雷射單元所產生的光輸出,來產生光輸入向量;光矩陣乘法單元,耦接至光調變器和DAC單元,光矩陣乘法單元被配置以基於權重控制訊號將光輸入向量轉換成光輸出向量;以及光偵測單元,耦接至光矩陣乘法單元,並且被配置以產生對應光輸出向量的複數輸出電壓;類比數位轉換器(analog-to-digital converter;ADC)單元,耦接至光偵測單元,並且被配置以將輸出電壓轉換成複數數位光輸出;控制器,包括積體電路,被配置以執行以下操作:從電腦接收包括輸入資料集和第一多個神經網路權重的人工神經網路計算請求,其中輸入資料集包括第一數位輸入向量;在記憶體單元中儲存輸入資料集和第一多個神經網路權重;以及透過DAC單元,基於第一數位輸入向量產生第一多個調變器控制訊號,並且基於第一多個神經網路權重產生第一多個權重控制訊號。
計算系統的實施例可包括以下特徵的一或多個。舉例來說,操作可更包括:從ADC單元得到對應光矩陣乘法單元的光輸出向量的第一多個數位光輸出,第一多個數位光輸出形成第一數位輸出向量;對第一數位輸出向量執行非線性轉換,以產生第一轉換數位輸出向量;以及在記憶體單元中儲存第一轉換數位輸出向量。
計算系統可具有第一循環週期,其被定義為在記憶體單元中儲存輸入資料集和第一多個神經網路權重的步驟與在記憶體單元中儲存第一轉換數位輸出向量的步驟之間所經過的時間。第一循環週期可小於或等於1ns。
在一些實施例中,操作可更包括:輸出基於第一轉換數位輸出向量所產生的人工神經網路輸出。
在一些實施例中,操作可更包括:透過DAC單元基於第一轉換數位輸出向量產生第二多個調變器控制訊號。
在一些實施例中,人工神經網路計算請求可更包括第二多個神經網路權重,並且操作可更包括:基於第一多個數位光輸出的獲得,透過數位類比轉換器單元基於第二多個神經網路權重產生第二多個權重控制訊號。第一多個神經網路權重和第二多個神經網路權重可對應人工神經網路的不同層。
在一些實施例中,輸入資料集可更包括第二數位輸入向量,並且操作可更包括:透過DAC單元,基於第二數位輸入向量產生第二多個調變器控制訊號;從ADC單元得到對應光矩陣乘法單元的光輸出向量的第二多個數位光輸出,第二多個數位光輸出形成第二數位輸出向量;對第二數位輸出向量執行非線性轉換以產生第二轉換數位輸出向量;在記憶體單元中儲存第二轉換數位輸出向量;以及輸出基於第一轉換數位輸出向量和第二轉換數位輸出向量所產生的人工神經網路輸出。光矩陣乘法單元的光輸出向量由基於第二多個調變器控制訊號所產生的第二光輸入向量產生,第二光輸入向量由光矩陣乘法單元基於首先提到的上述權重控制訊號來轉換。
在一些實施例中,計算系統可更包括:類比非線性單元,被設置在光偵測單元與ADC單元之間,類比非線性單元被配置以從光偵測單元接收輸出電壓、應用非線性傳遞函數、以及輸出複數轉換輸出電壓至ADC單元,並且操作更包括:從ADC單元得到對應轉換輸出電壓的第一多個轉換數位輸出電壓,第一多個轉換數位輸出電壓形成第一轉換數位輸出向量;以及在記憶體單元中儲存第一轉換數位輸出向量。
在一些實施例中,控制器的積體電路可被配置以產生大於或等於8GHz的頻率的第一多個調變器控制訊號。
在一些實施例中,計算系統可更包括:類比記憶體單元,被設置在DAC單元與光調變器之間,類比記憶體單元被配置以儲存複數類比電壓,並且輸出儲存的類比電壓;以及類比非線性單元,被設置在光偵測單元與ADC單元之間,類比非線性單元被配置以從光偵測單元接收輸出電壓、應用非線性傳遞函數、以及輸出複數轉換輸出電壓。類比記憶體單元包括複數電容。
在一些實施例中,類比記憶體單元可被配置以接收和儲存類比非線性單元的轉換輸出電壓,並且將儲存的轉換輸出電壓輸出至光調變器,並且操作可更包括:基於產生第一多個調變器控制訊號和第一多個權重控制訊號,在類比記憶體單元中儲存類比非線性單元的轉換輸出電壓;透過類比記憶體單元輸出儲存的轉換輸出電壓;從ADC單元得到第二多個轉換數位輸出電壓,第二多個轉換數位輸出電壓形成第二轉換數位輸出向量;以及在記憶體單元中儲存第二轉換數位輸出向量。
在一些實施例中,人工神經網路計算請求的輸入資料集可包括複數數位輸入向量。雷射單元可被配置以產生複數波長。光調變器可包括:複數光調變器組(bank),被配置以產生複數光輸入向量,每一個光調變器組對應一個波長,並且產生具有相應波長的相應光輸入向量;以及光多路複用器,被配置以將光輸入向量組合成包括波長的組合光輸入向量。光偵測單元可更被配置以多路分解波長,並且產生複數多路分解輸出電壓。操作可包括:從ADC單元得到複數數位多路分解光輸出,數位多路分解光輸出形成複數第一數位輸出向量,其中每一個第一數位輸出向量對應一個波長;對每一個第一數位輸出向量執行非線性轉換,以產生複數轉換第一數位輸出向量;以及在記憶體單元中儲存轉換第一數位輸出向量。每一個數位輸入向量對應一個光輸入向量。
在一些實施例中,人工神經網路計算請求可包括複數數位輸入向量。雷射單元可被配置以產生複數波長。光調變器可包括:複數光調變器組,被配置以產生複數光輸入向量,每一個光調變器組對應一個波長,並且產生具有相應波長的相應光輸入向量;以及光多路複用器,被配置以將光輸入向量組合成包括波長的組合光輸入向量。操作可包括:從ADC單元得到對應光輸出向量的第一多個數位光輸出,光輸出向量包括波長,第一多個數位光輸出形成第一數位輸出向量;對第一數位輸出向量執行非線性轉換,以產生第一轉換數位輸出向量;以及在記憶體單元中儲存第一轉換數位輸出向量。
在一些實施例中,DAC單元可包括:1位元DAC子單元,被配置以產生複數1位元調變器控制訊號。ADC單元的解析度可為1位元。第一數位輸入向量的解析度可為N位元。操作可包括:將第一數位輸入向量分解為N個1位元輸入向量,每一個N個1位元輸入向量對應第一數位輸入向量的N位元中的一個;透過1位元DAC子單元產生對應N個1位元輸入向量的N個1位元調變器控制訊號的序列;從ADC單元得到對應N個1位元調變器控制訊號的序列的N個數位1位元光輸出的序列;從N個數位1位元光輸出的序列建構N位元數位輸出向量;對建構的N位元數位輸出向量執行非線性轉換,以產生轉換N位元數位輸出向量;以及在記憶體單元中儲存轉換N位元數位輸出向量。
在一些實施例中,記憶體單元可包括:數位輸入向量記憶體,被配置以儲存第一數位輸入向量,並且包括至少一靜態隨機存取記憶體;以及神經網路權重記憶體,被配置以儲存神經網路權重,並且包括至少一動態隨機存取記憶體。
在一些實施例中,DAC單元可包括:第一DAC子單元,被配置以產生調變器控制訊號;以及第二DAC子單元,被配置以產生權重控制訊號,其中第一DAC子單元和第二DAC子單元是不同的。
在一些實施例中,雷射單元可包括:雷射源,被配置以產生光;以及光功率分離器,被配置以將由雷射源所產生的光分成光輸出,其中每一個光輸出具有大抵相同的功率。
在一些實施例中,上述光調變器包括馬赫曾德爾干涉(Mach-Zehnder interferometer;MZI)調變器、環形共振調變器(ring resonator modulator)或電吸收(electro-absorption)調變器中的一個。
在一些實施例中,光偵測單元可包括:複數光偵測器;以及複數放大器,被配置以將由光偵測器所產生的光電流轉換成輸出電壓。
在一些實施例中,積體電路可以是特殊應用積體電路。
在一些實施例中,光矩陣乘法單元可包括:輸入波導陣列,用於接收光輸入向量;光干涉單元,與輸入波導陣列光學通訊,用於執行將光輸入向量轉換成第二光訊號陣列的線性轉換;以及輸出波導陣列,與光干涉單元光學通訊,用於引導第二光訊號陣列,其中在輸入波導陣列中的至少一輸入波導透過光干涉單元與在輸出波導陣列中的每一個輸出波導光學通訊。
在一些實施例中,光干涉單元可包括:複數互連MZI,互連MZI中的每一個MZI包括:第一相位移器,被配置以改變MZI的分離比;以及第二相位移器,被配置以位移MZI的一個輸出的相位,其中第一相位移器和第二相位移器耦接至權重控制訊號。
在另一觀點中,計算系統包括:記憶體單元,被配置以儲存資料集和複數神經網路權重;驅動器單元,被配置以產生複數調變器控制訊號和產生複數權重控制訊號;光處理器,包括:雷射單元,被配置以產生複數光輸出;複數光調變器,耦接至雷射單元和驅動器單元,光調變器被配置以基於調變器控制訊號,調變由雷射單元所產生的光輸出,來產生光輸入向量;光矩陣乘法單元,耦接至光調變器和驅動器單元,光矩陣乘法單元被配置以基於權重控制訊號將光輸入向量轉換成光輸出向量;以及光偵測單元,耦接至光矩陣乘法單元,並且被配置以產生對應光輸出向量的複數輸出電壓;比較器單元,耦接至光偵測單元,並且被配置以將輸出電壓轉換成複數數位1位元光輸出;以及控制器,包括積體電路,被配置以執行以下操作:從電腦接收包括輸入資料集和第一多個神經網路權重的人工神經網路計算請求,其中輸入資料集包括具有N位元解析度的第一數位輸入向量;在記憶體單元中儲存輸入資料集和第一多個神經網路權重;將第一數位輸入向量分解為N個1位元輸入向量,每一個N個1位元輸入向量對應第一數位輸入向量的N位元中的一個;透過驅動器單元產生對應N個1位元輸入向量的N個1位元調變器控制訊號的序列;從比較器單元得到對應N個1位元調變器控制訊號的序列的N個數位1位元光輸出的序列;從N個數位1位元光輸出的序列建構N位元數位輸出向量;對建構的N位元數位輸出向量執行非線性轉換,以產生轉換N位元數位輸出向量;以及在記憶體單元中儲存轉換N位元數位輸出向量。
在另一觀點中,計算方法用於在計算系統中執行人工神經網路計算,計算系統具有光矩陣乘法單元,光矩陣乘法單元被配置以基於複數權重控制訊號將光輸入向量轉換成光輸出向量,計算方法包括:從電腦接收包括輸入資料集和第一多個神經網路權重的人工神經網路計算請求,其中輸入資料集包括第一數位輸入向量;在記憶體單元中儲存輸入資料集和第一多個神經網路權重;透過數位類比轉換器(DAC)單元,基於第一數位輸入向量產生第一多個調變器控制訊號,並且基於第一多個神經網路權重產生第一多個權重控制訊號;從類比數位轉換器(ADC)單元得到對應光矩陣乘法單元的光輸出向量的第一多個數位光輸出,第一多個數位光輸出形成第一數位輸出向量;藉由控制器對第一數位輸出向量執行非線性轉換,以產生第一轉換數位輸出向量;在記憶體單元中儲存第一轉換數位輸出向量;以及藉由控制器輸出基於第一轉換數位輸出向量所產生的人工神經網路輸出。
在另一觀點中,計算方法包括:以電子格式提供輸入資訊;將至少一部分電子輸入資訊轉換成光輸入向量;基於光矩陣乘法將光輸入向量光學地轉換成光輸出向量;將光輸出向量轉換成電子格式;以及將非線性轉換電子地應用於電子轉換後的光輸出向量,以提供電子格式的輸出資訊。
計算方法的實施例可包括以下特徵的一或多個。舉例來說,計算方法可更包括:對於對應電子格式所提供的輸出資訊的新電子輸入資訊,重複電光轉換(electronic-to-optical converting)、光轉換(optical transforming)、光電轉換(optical-to-electronic converting)以及電應用的非線性轉換。
在一些實施例中,用於初始光轉換的光矩陣乘法和重複光轉換的光矩陣乘法可以是相同的,並且可對應人工神經網路的相同層。
在一些實施例中,用於初始光轉換的光矩陣乘法和重複光轉換的光矩陣乘法可以是不同的,並且可對應人工神經網路的不同層。
在一些實施例中,計算方法可更包括:對於電子輸入資訊的不同部分,重複電光轉換、光轉換、光電轉換以及電應用的非線性轉換,其中用於初始光轉換的光矩陣乘法和重複光轉換的光矩陣乘法是相同的,並且對應人工神經網路的第一層。
在一些實施例中,計算方法可更包括:基於由人工神經網路的第一層所產生的用於電子輸入資訊的多個部分的電子輸出資訊,以電子格式提供電子中間資訊;以及對於電子中間資訊的每一個不同部分,重複電光轉換、光轉換、光電轉換以及電應用的非線性轉換,其中用於初始光轉換的光矩陣乘法和與電子中間資訊的不同部分相關的重複光轉換的光矩陣乘法是相同的,並且對應人工神經網路的第二層。
在另一觀點中,計算系統包括:光處理器,包括被動繞射光學元件(passive diffractive optical element),其中被動繞射光學元件被配置以將光輸入向量或矩陣轉換成光輸出向量或矩陣,其表示應用於光輸入向量或矩陣和由繞射光學元件的排列所定義的既定向量的矩陣處理的結果。
計算系統的實施例可包括以下特徵的一或多個。舉例來說,矩陣處理可包括光輸入向量或矩陣與由繞射光學元件的排列所定義的既定向量之間的矩陣乘法。
在一些實施例中,光處理器可包括光矩陣處理單元,其包括:輸入波導陣列,用於接收光輸入向量,包括被動繞射光學元件的光干涉單元,其中光干涉單元與輸入波導陣列光學通訊,並且被配置以執行將光輸入向量轉換成第二光訊號陣列的線性轉換;以及輸出波導陣列,與光干涉單元光學通訊,用於引導第二光訊號陣列,其中輸入波導陣列的至少一輸入波導透過光干涉單元與輸出波導陣列中的每一個輸出波導光學通訊。
在一些實施例中,光干涉單元可包括具有孔洞或條帶(stripe)中至少一者的基板,孔洞的尺寸在100nm至10μm的範圍內,並且條帶的寬度在100nm至10μm的範圍內。
在一些實施例中,光干涉單元可包括具有以二維配置來設置的被動繞射光學元件的基板,並且基板包括平面基板或彎曲基板中至少一者。
在一些實施例中,基板可包括平面基板,其平行於從輸入波導陣列到輸出波導陣列的光傳播方向。
在一些實施例中,光處理器可包括光矩陣處理單元,其包括:輸入波導陣列,用於接收光輸入矩陣,包括被動繞射光學元件的光干涉單元,其中光干涉單元與輸入波導陣列光學通訊,並且被配置以執行將光輸入矩陣轉換成第二光訊號陣列的線性轉換;以及輸出波導陣列,與光干涉單元光學通訊,用於引導第二光訊號陣列,其中輸入波導陣列的至少一輸入波導透過光干涉單元與輸出波導陣列中的每一個輸出波導光學通訊。
在一些實施例中,光干涉單元可包括具有孔洞或條帶(stripe)中至少一者的基板,孔洞的尺寸在100nm至10μm的範圍內,並且條帶的寬度在100nm至10μm的範圍內。
在一些實施例中,光干涉單元可包括具有以三維配置來設置的被動繞射光學元件的基板。
在一些實施例中,基板可具有立方體狀、柱狀、角柱狀或不規則體積中的至少一者的形狀。
在一些實施例中,光處理器可包括光干涉單元,其包括具有被動繞射光學元件的全像圖(hologram),光處理器被配置以接收表示光輸入矩陣的調變光,並且在光通過全像圖時連續轉換光,直到光作為光輸出矩陣從全息圖射出。
在一些實施例中,光干涉單元可包括具有被動繞射光學元件的基板,並且基板包括矽、氧化矽、氮化矽、石英、鈮酸鋰、相變化材料或聚合物中的至少一者。
在一些實施例中,光干涉單元可包括具有被動繞射光學元件的基板,並且基板包括玻璃基板或丙烯酸基板中的至少一者。
在一些實施例中,被動繞射光學元件可由摻雜物來部分地形成。
在一些實施例中,矩陣處理可表示神經網路對輸入資料的處理,輸入資料由光輸入向量表示。
在一些實施例中,光處理器可包括:雷射單元,被配置以產生複數光輸出;複數光調變器,耦接至雷射單元,並且被配置以基於複數調變器控制訊號,調變由雷射單元所產生的光輸出,來產生光輸入向量;光矩陣處理單元,耦接至光調變器,光矩陣處理單元包括被動繞射光學元件,其被配置以基於由被動繞射光學元件所定義的複數權重,將光輸入向量轉換成光輸出向量;以及光偵測單元,耦接至光矩陣處理單元,並且被配置以產生對應光輸出向量的複數輸出電訊號。
在一些實施例中,被動繞射光學元件可以用三維配置來設置,光調變器包括二維光調變器陣列,並且光偵測單元包括二維光偵測器陣列。
在一些實施例中,光矩陣處理單元可包括外殼模組(housing module)以支持和保護輸入波導陣列、光干涉單元以及輸出波導陣列,光處理器包括接收模組,接收模組被配置以接收光矩陣處理單元,接收模組包括第一介面(interface),使光矩陣處理單元能夠從光調變器接收光輸入向量,以及第二介面,使光矩陣處理單元能夠將光輸出向量傳輸至光偵測單元。
在一些實施例中,輸出電訊號可包括複數電壓訊號或複數電流訊號中的至少一者。
在一些實施例中,計算系統可包括:記憶體單元;數位類比轉換器(DAC)單元,被配置以產生調變器控制訊號;類比數位轉換器(ADC)單元,耦接至光偵測單元,並且被配置以將輸出電訊號轉換成複數數位輸出;以及控制器,包括積體電路,被配置以執行以下操作:從電腦接收包括輸入資料集的人工神經網路計算請求,其中輸入資料集包括第一數位輸入向量;在記憶體單元中儲存輸入資料集;以及透過DAC單元,基於第一數位輸入向量產生第一多個調變器控制訊號。
在另一觀點中,計算方法包括:3D列印包括被動繞射光學元件的光矩陣處理單元,其中被動繞射光學元件被配置以將光輸入向量或矩陣轉換成光輸出向量或矩陣,其表示應用於光輸入向量或矩陣和由繞射光學元件的排列所定義的既定向量的矩陣處理的結果。
在另一觀點中,計算方法包括:使用一或多個雷射束產生包括被動繞射光學元件的全像圖,其中被動繞射光學元件被配置以將光輸入向量或矩陣轉換成光輸出向量或矩陣,其表示應用於光輸入向量或矩陣和由繞射光學元件的排列所定義的既定向量的矩陣處理的結果。
在另一觀點中,計算系統包括:光處理器,包括以一維方式設置的被動繞射光學元件,其中被動繞射光學元件被配置以將光輸入轉換成光輸出,其表示應用於光輸入和由繞射光學元件的排列所定義的既定向量的矩陣處理的結果。
計算系統的實施例可包括以下特徵的一或多個。舉例來說,矩陣處理可包括光輸入與由繞射光學元件的排列所定義的既定向量之間的矩陣乘法。
在一些實施例中,光處理器可包括光矩陣處理單元,其包括:輸入波導,用於接收光輸入,包括被動繞射光學元件的光干涉單元,其中光干涉單元與輸入波導光學通訊,並且被配置以執行將光輸入的線性轉換;以及輸出波導,與光干涉單元光學通訊,用於引導光輸出。
在一些實施例中,光干涉單元可包括具有孔洞或光柵(grating)中至少一者的基板,孔洞或光柵元件的可具有在100nm至10μm的範圍內的尺寸。
在另一觀點中,計算系統包括:記憶體單元;數位類比轉換器(DAC)單元,被配置以產生複數調變器控制訊號;以及光處理器,包括:雷射單元,被配置以產生複數光輸出;複數光調變器,耦接至雷射單元和DAC單元,光調變器被配置以基於調變器控制訊號,調變由雷射單元所產生的光輸出,來產生光輸入向量;光矩陣處理單元,耦接至光調變器,光矩陣處理單元包括被動繞射光學元件,其被配置以基於由被動繞射光學元件所定義的複數權重,將光輸入向量轉換成光輸出向量;以及光偵測單元,耦接至光矩陣處理單元,並且被配置以產生對應光輸出向量的複數輸出電訊號。計算系統更包括:類比數位轉換器(ADC)單元,耦接至光偵測單元,並且被配置以將輸出電訊號轉換成複數數位光輸出;以及控制器,包括積體電路,被配置以執行以下操作:從電腦接收包括輸入資料集的人工神經網路計算請求,其中輸入資料集包括第一數位輸入向量;在記憶體單元中儲存輸入資料集;以及透過DAC單元,基於第一數位輸入向量產生第一多個調變器控制訊號。
計算系統的實施例可包括以下特徵的一或多個。舉例來說,矩陣處理單元可包括被動繞射光學元件,其被配置以將光輸入向量轉換成光輸出向量,其表示光輸入向量與由被動繞射光學元件的所定義的既定向量之間的矩陣乘法的乘積。
在一些實施例中,操作更包括:從ADC單元得到對應光矩陣處理單元的光輸出向量的第一多個數位光輸出,第一多個數位光輸出形成第一數位輸出向量;對第一數位輸出向量執行非線性轉換,以產生第一轉換數位輸出向量;以及在記憶體單元中儲存第一轉換數位輸出向量。
在一些實施例中,計算系統可具有第一循環週期,其被定義為在記憶體單元中儲存輸入資料集的步驟與在記憶體單元中儲存第一轉換數位輸出向量的步驟之間所經過的時間,並且其中第一循環週期可小於或等於1ns。
在一些實施例中,操作可更包括:輸出基於第一轉換數位輸出向量所產生的人工神經網路輸出。
在一些實施例中,操作可更包括:透過DAC單元基於第一轉換數位輸出向量產生第二多個調變器控制訊號。
在一些實施例中,輸入資料集可更包括第二數位輸入向量,並且其中操作可更包括:透過DAC單元,基於第二數位輸入向量產生第二多個調變器控制訊號;從ADC單元得到對應光矩陣處理單元的光輸出向量的第二多個數位光輸出,第二多個數位光輸出形成第二數位輸出向量;對第二數位輸出向量執行非線性轉換以產生第二轉換數位輸出向量;在記憶體單元中儲存第二轉換數位輸出向量;以及輸出基於第一轉換數位輸出向量和第二轉換數位輸出向量所產生的人工神經網路輸出,其中光矩陣處理單元的光輸出向量由基於第二多個調變器控制訊號所產生的第二光輸入向量產生,第二光輸入向量由光矩陣乘法單元基於由被動繞射光學元件所定義的權重來轉換。
在一些實施例中,計算系統可更包括:類比非線性單元,被設置在光偵測單元與ADC單元之間,類比非線性單元被配置以從光偵測單元接收輸出電訊號、應用非線性傳遞函數、以及輸出複數轉換輸出電訊號至ADC單元,其中操作可更包括:從ADC單元得到對應轉換輸出電訊號的第一多個轉換數位輸出電訊號,第一多個轉換數位輸出電訊號形成第一轉換數位輸出向量;以及在記憶體單元中儲存第一轉換數位輸出向量。
在一些實施例中,控制器的積體電路可被配置以以產生大於或等於8GHz的頻率的第一多個調變器控制訊號。
在一些實施例中,計算系統可更包括:類比記憶體單元,被設置在DAC單元與光調變器之間,類比記憶體單元被配置以儲存複數類比電壓,並且輸出儲存的類比電壓;以及類比非線性單元,被設置在光偵測單元與ADC單元之間,類比非線性單元被配置以從光偵測單元接收輸出電訊號、應用非線性傳遞函數、以及輸出複數轉換輸出電訊號。
在一些實施例中,類比記憶體單元可包括複數電容。
在一些實施例中,類比記憶體單元可被配置以接收和儲存類比非線性單元的轉換輸出電訊號,並且將儲存的轉換輸出電訊號輸出至光調變器,並且其中操作可更包括:基於產生第一多個調變器控制訊號,在類比記憶體單元中儲存類比非線性單元的轉換輸出電訊號;透過類比記憶體單元輸出儲存的轉換輸出電訊號;從ADC單元得到第二多個轉換數位輸出電訊號,第二多個轉換數位輸出電訊號形成第二轉換數位輸出向量;以及在記憶體單元中儲存第二轉換數位輸出向量。
在一些實施例中,人工神經網路計算請求可包括複數數位輸入向量,其中雷射單元可被配置以產生複數波長,並且其中光調變器可包括:複數光調變器組,被配置以產生複數光輸入向量,每一個光調變器組對應一個波長,並且產生具有相應波長的相應光輸入向量;以及光多路複用器,被配置以將光輸入向量組合成包括波長的組合光輸入向量。光偵測單元可更被配置以多路分解波長,並且產生複數多路分解輸出電訊號,並且操作可包括:從ADC單元得到複數數位多路分解光輸出,數位多路分解光輸出形成複數第一數位輸出向量,其中每一個第一數位輸出向量對應一個波長;對每一個第一數位輸出向量執行非線性轉換,以產生複數轉換第一數位輸出向量;以及在記憶體單元中儲存轉換第一數位輸出向量,其中每一個數位輸入向量對應一個光輸入向量。
在一些實施例中,人工神經網路計算請求可包括複數數位輸入向量,其中雷射單元可被配置以產生複數波長,並且其中光調變器可包括:複數光調變器組,被配置以產生複數光輸入向量,每一個光調變器組對應一個波長,並且產生具有相應波長的相應光輸入向量;以及光多路複用器,被配置以將光輸入向量組合成包括波長的組合光輸入向量。操作可包括:從ADC單元得到對應光輸出向量的第一多個數位光輸出,光輸出向量包括波長,第一多個數位光輸出形成第一數位輸出向量;對第一數位輸出向量執行非線性轉換,以產生第一轉換數位輸出向量;以及在記憶體單元中儲存第一轉換數位輸出向量。
在一些實施例中,DAC單元可包括:1位元DAC單元,被配置以產生複數1位元調變器控制訊號,其中ADC單元的解析度可為1位元,並且其中第一數位輸入向量的解析度可為N位元。操作可包括:將第一數位輸入向量分解為N個1位元輸入向量,每一個N個1位元輸入向量對應第一數位輸入向量的N位元中的一個;透過1位元DAC單元產生對應N個1位元輸入向量的N個1位元調變器控制訊號的序列;從ADC單元得到對應N個1位元調變器控制訊號的序列的N個數位1位元光輸出的序列;從N個數位1位元光輸出的序列建構N位元數位輸出向量;對建構的N位元數位輸出向量執行非線性轉換,以產生轉換N位元數位輸出向量;以及在記憶體單元中儲存轉換N位元數位輸出向量。
在一些實施例中,記憶體單元可包括:數位輸入向量記憶體,被配置以儲存第一數位輸入向量,並且包括至少一靜態隨機存取記憶體。
在一些實施例中,雷射單元可包括:雷射源,被配置以產生光;以及光功率分離器,被配置以將由雷射源所產生的光分成光輸出,其中每一個光輸出具有大抵相同的功率。
在一些實施例中,光調變器包括馬赫曾德爾干涉調變器、環形共振調變器或電吸收調變器中的一個。
在一些實施例中,光偵測單元可包括:複數光偵測器;以及複數放大器,被配置以將由光偵測器所產生的光電流轉換成輸出電訊號。
在一些實施例中,積體電路可包括特殊應用積體電路。
在一些實施例中,光矩陣處理單元可包括:輸入波導陣列,用於接收光輸入向量;光干涉單元,與輸入波導陣列光學通訊,用於執行將光輸入向量轉換成第二光訊號陣列的線性轉換,其中光干涉單元包括被動繞射光學元件;以及輸出波導陣列,與光干涉單元光學通訊,用於引導第二光訊號陣列,其中在輸入波導陣列中的至少一輸入波導透過光干涉單元與在輸出波導陣列中的每一個輸出波導光學通訊。
在另一觀點中,計算系統包括:記憶體單元;驅動器單元,被配置以產生複數調變器控制訊號;光處理器,包括:雷射單元,被配置以產生複數光輸出;複數光調變器,耦接至雷射單元和驅動器單元,光調變器被配置以基於調變器控制訊號,調變由雷射單元所產生的光輸出,來產生光輸入向量;光矩陣處理單元,耦接至光調變器和驅動器單元,光矩陣處理單元包括被動繞射光學元件,被配置以基於由被動繞射光學元件所定義的複數權重控制訊號將光輸入向量轉換成光輸出向量;以及光偵測單元,耦接至光矩陣處理單元,並且被配置以產生對應光輸出向量的複數輸出電訊號。計算系統亦包括比較器單元,耦接至光偵測單元,並且被配置以將輸出電訊號轉換成複數數位1位元光輸出;以及控制器,包括積體電路,被配置以執行以下操作:從電腦接收包括輸入資料集的人工神經網路計算請求,其中輸入資料集包括具有N位元解析度的第一數位輸入向量;在記憶體單元中儲存輸入資料集;將第一數位輸入向量分解為N個1位元輸入向量,每一個N個1位元輸入向量對應第一數位輸入向量的N位元中的一個;透過驅動器單元產生對應N個1位元輸入向量的N個1位元調變器控制訊號的序列;從比較器單元得到對應N個1位元調變器控制訊號的序列的N個數位1位元光輸出的序列;從N個數位1位元光輸出的序列建構N位元數位輸出向量;對建構的N位元數位輸出向量執行非線性轉換,以產生轉換N位元數位輸出向量;以及在記憶體單元中儲存轉換N位元數位輸出向量。
計算系統的實施例可包括以下特徵的一或多個。舉例來說,光矩陣處理單元可包括光矩陣乘法單元,其被配置以將光輸入向量轉換成光輸出向量,其表示由光輸入向量所表示的輸入向量與由繞射光學元件的所定義的既定向量之間的矩陣乘法的乘積。
在另一觀點中,計算方法用於在具有光矩陣處理單元的計算系統中執行人工神經網路計算,計算方法包括:從電腦接收包括輸入資料集的人工神經網路計算請求,輸入資料集包括第一數位輸入向量;在記憶體單元中儲存輸入資料集;透過數位類比轉換器(DAC)單元,基於第一數位輸入向量產生第一多個調變器控制訊號;藉由使用包括被動繞射光學元件的排列的光矩陣處理單元,將光輸入向量轉換成光輸出向量,其中光輸出向量表示應用於光輸入向量和由繞射光學元件的排列所定義的既定向量的矩陣處理的結果;從類比數位轉換器(ADC)單元得到對應光矩陣處理單元的光輸出向量的第一多個數位光輸出,第一多個數位光輸出形成第一數位輸出向量;藉由控制器對第一數位輸出向量執行非線性轉換,以產生第一轉換數位輸出向量;在記憶體單元中儲存第一轉換數位輸出向量;以及藉由控制器輸出基於第一轉換數位輸出向量所產生的人工神經網路輸出。
計算方法的實施例可包括以下特徵的一或多個。舉例來說,將光輸入向量轉換成光輸出向量可包括將光輸入向量轉換成表示數位輸入向量與由繞射光學元件的排列所定義的既定向量之間的矩陣乘法的乘積的光輸出向量。
在另一觀點中,計算方法包括:以電子格式提供輸入資訊;將至少一部分電子輸入資訊轉換成光輸入向量;藉由包括被動繞射光學元件的光處理器,基於光矩陣處理將光輸入向量光學地轉換成光輸出向量;將光輸出向量轉換成電子格式;以及將非線性轉換電子地應用於電子轉換後的光輸出向量,以提供電子格式的輸出資訊。
計算方法的實施例可包括以下特徵的一或多個。舉例來說,將光輸入向量光學地轉換成光輸出向量可包括基於由光輸入向量所表示的輸入向量與由被動繞射光學元件的所定義的既定向量之間的光矩陣乘法,將光輸入向量光學地轉換成光輸出向量。
在一些實施例中,計算方法可更包括:對於對應以電子格式所提供的輸出資訊的新電子輸入資訊,重複電光轉換、光轉換、光電轉換以及電應用的非線性轉換。
在一些實施例中,用於初始光轉換的光矩陣處理和重複光轉換的光矩陣處理可為相同的,並且可對應人工神經網路的相同層。
在一些實施例中,計算方法可更包括:對於電子輸入資訊的不同部分,重複電光轉換、光轉換、光電轉換以及電應用的非線性轉換,其中用於初始光轉換的光矩陣處理和重複光轉換的光矩陣處理可為相同的,並且對應人工神經網路的一個層。
在另一觀點中,計算系統包括:光矩陣處理單元,被配置以處理N長度的輸入向量,其中光矩陣處理單元包括N+2層的定向耦合器(directional coupler)和N層的相位移器,並且N為正整數。
計算系統的實施例可包括以下特徵的一或多個。舉例來說,光矩陣處理單元可包括不多於N+2層的定向耦合器。
在一些實施例中,光矩陣處理單元可包括光矩陣法單元。
在一些實施例中,光矩陣處理單元可包括基板和設置在基板上的互連干涉儀,其中每一個干涉儀包括設置在基板上的光波導,並且定向耦合器和相位移器是互連干涉儀的一部分。
在一些實施例中,光矩陣處理單元可包括一層衰減器(attenuator),其在最後一層定向耦合器之後。
在一些實施例中,一層衰減器可包括N個衰減器。
在一些實施例中,計算系統可包括一或多個零差偵測器(homodyne detector),用於偵測來自衰減器的輸出。
在一些實施例中,N=3,並且光矩陣處理單元可包括:輸入端(terminal),被配置以接收輸入向量;第一層定向耦合器,耦接至輸入端;第一層相位移器,耦接至第一層定向耦合器;第二層定向耦合器,耦接至第一層相位移器;第二層相位移器,耦接至第二層定向耦合器;第三層定向耦合器,耦接至第二層相位移器;第三層相位移器,耦接至第三層定向耦合器;第四層定向耦合器,耦接至第三層相位移器;以及第五層定向耦合器,耦接至第四層定向耦合器。
在一些實施例中,N=4,並且光矩陣處理單元可包括:輸入端,被配置以接收輸入向量;第一層、第二層、第三層以及第四層定向耦合器,每層定向耦合器後續是一層相位移器,其中第一層定向耦合器耦接至輸入端;倒數第二層(second-to-last layer)定向耦合器,耦接至第四層相位移器;以及最終層定向耦合器,耦接至倒數第二層定向耦合器。
在一些實施例中,N=8,並且光矩陣處理單元可包括:輸入端,被配置以接收輸入向量;八層定向耦合器,每一層定向耦合器後續是一層相位移器,其中第一層定向耦合器耦接至輸入端;倒數第二層定向耦合器,耦接至第八層相位移器;以及最終層定向耦合器,耦接至倒數第二層定向耦合器。
在一些實施例中,光矩陣乘法單元可包括:輸入端,被配置以接收輸入向量;N層定向耦合器,每一層定向耦合器後續是一層相位移器,其中第一層定向耦合器耦接至輸入端;倒數第二層定向耦合器,耦接至第N層定向耦合器;以及最終層定向耦合器,耦接至倒數第二層定向耦合器。
在一些實施例中,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層相位移器可包括N個相位移器,其中i是奇數,並且每一個第j層相位移器可包括N-2個相位移器,其中j是偶數。
在一些實施例中,N可為奇數。
在一些實施例中,每一層定向耦合器可包括(N-1)/2個定向耦合器。
在一些實施例中,每一層相位移器可包括N-1個相位移器。
在另一觀點中,計算系統包括:產生器(generator),被配置以產生第一資料集,其中產生器包刮光矩陣處理單元;以及鑑別器(discriminator),被配置以接收包括來自第一資料集的資料和來自第三資料集的資料的第二資料集,第一資料集中的資料具有與第三資料集中的資料類似的特徵(characteristics),並且將第二資料集中的資料分類為來自第一資料集的資料或來自第三資料集的資料。
計算方法的實施例可包括以下特徵的一或多個。舉例來說,光矩陣處理單元可包括以下至少一者:(i)上述之光矩陣乘法單元、(ii)上述之被動繞射光學元件、或(iii)上述之光矩陣處理單元。
在一些實施例中,第三資料集可包括真實資料,產生器被配置以產生類似於真實資料的合成資料(synthesized data),並且鑑別器被配置以將資料分類為真實資料或合成資料。
在一些實施例中,產生器可被配置以產生資料集,用於訓練自動駕駛載具(vehicle)、醫療診斷系統、欺詐偵測系統、天氣預報系統、財務預測系統、面部識別系統、語音識別系統或產品缺陷偵測系統中的至少一者。
在一些實施例中,產生器可被配置以產生影像,其類似於真實物體或真實場景中的至少一者的影像,並且鑑別器被配置以將接收的影像分類為(i)真實物體或真實場景的影像,或(ii)由產生器產生的合成影像。
在一些實施例中,真實物體可包括人物、動物、細胞、組織或產品中的至少一者,並且真實場景包括載具遇到的場景。
在一些實施例中,鑑別器可被配置以將接收的影像分類成是否為(i)真實人物、真實動物、真實細胞、真實組織、真實產品或載具遇到的真實場景,或(ii)由產生器產生的合成影像。
在一些實施例中,載具可包括摩托車、汽車、卡車、火車、直升機、飛機、潛艇、船舶或無人機中的至少一種。
在一些實施例中,產生器可被配置以產生組織或細胞的影像,其與人類疾病、動物疾病或植物疾病中的至少一者相關。
在一些實施例中,產生器可被配置以產生與人類疾病相關的組織或細胞的影像,並且疾病包括癌症、帕金森病、鐮狀細胞貧血症、心臟病、心血管疾病、糖尿病、胸部疾病或皮膚病中的至少一者。
在一些實施例中,產生器可被配置以產生與癌症相關的組織或細胞的影像,並且癌症可包括皮膚癌、乳癌、肺癌、肝癌、前列腺癌或腦癌中的至少一者。
在一些實施例中,計算系統可更包括隨機雜訊產生器,被配置以產生輸入到產生器的隨機雜訊,並且產生器被配置以基於隨機雜訊產生第一資料集。
在另一觀點中,計算系統包括:隨機雜訊產生器,被配置以產生隨機雜訊;以及產生器,被配置以基於隨機雜訊產生資料,其中產生器包括光矩陣處理單元。
計算系統的實施例可包括以下特徵的一或多個。舉例來說,光矩陣處理單元可包括(i)上述之光矩陣乘法單元、(ii)上述之被動繞射光學元件、或(iii)上述之光矩陣處理單元中的至少一者。
在另一觀點中,計算系統包括:光電路,被配置以對兩個輸入訊號執行邏輯函數(logic function),光電路包括:第一定向耦合器,具有兩個輸入端和兩個輸出端,兩個輸入端被配置以接收兩個輸入訊號;第一對(pair)相位移器,被配置以修改在第一定向耦合器的兩個輸出端的訊號的相位;第二定向耦合器,具有兩個輸入端和兩個輸出端,兩個輸入端被配置以接收來自第一對相位移器的訊號;以及第二對相位移器,被配置以修改在第二定向耦合器的兩個輸出端的訊號的相位。
計算方法的實施例可包括以下特徵的一或多個。舉例來說,相位移器可被配置以致使光電路執行旋轉(rotation):
Figure 02_image001
在一些實施例中,當輸入訊號x1 和x2 被提供到第一定向耦合器的兩個輸入端時,相位移器可被配置以致使光電路執行操作:
Figure 02_image003
在一些實施例中,光電路可包括第一光偵測器,其被配置以產生來自第二對相位移器的訊號的絕對值,以致使光電路執行操作:
Figure 02_image005
在一些實施例中,光電路可包括比較器,其被配置以將第一光偵測器的輸出訊號與閾值比較,以產生二進制值(binary value)來致使光電路產生輸出:
Figure 02_image007
在一些實施例中,光電路可包括回饋機制(feedback mechanism),回饋機制被配置以使光偵測器的輸出訊號被回饋至第一定向耦合器的輸入端,並且通過第一定向耦合器、第一對相位移器、第二定向耦合器以及第二對相位移器,並且由光偵測器偵測以致使光電路執行操作:
Figure 02_image009
, 其產生輸出AND(x1 ,x2 )和OR(x1 ,x2 )。
在一些實施例中,光電路可包括:第三定向耦合器,具有兩個輸入端和兩個輸出端,兩個輸入端被配置以接收來自第二對相位移器的訊號;第三對相位移器,被配置以修改在第三定向耦合器的兩個輸出端的訊號的相位;第四定向耦合器,具有兩個輸入端和兩個輸出端,兩個輸入端被配置以接收來自第三對相位移器的訊號;第四對相位移器,被配置以修改在第四定向耦合器的兩個輸出端的訊號的相位;以及第二光偵測器,被配置以產生來自第四對相位移器的訊號的絕對值,以致使光電路執行操作:
Figure 02_image009
, 其產生輸出AND(x1 ,x2 )和OR(x1 ,x2 )。
在一些實施例中,計算系統可包括雙調排序式交換機(Bitonic sorter),其被配置以由使用光電路執行雙調排序式交換機的排序函數(sorting function)。
在一些實施例中,計算系統可包括被配置以使用光電路來執行雜湊函數(hashing function)的裝置。
在一些實施例中,雜湊函數可包括安全雜湊演算法(secure hash algorithm)2(SHA-2)。
通常來說,用於執行計算的計算系統使用不同類型的操作來產生計算結果,每一個操作都是針對操作的基礎物理學(例如:在能量消耗及/或速度上)最適合的訊號(例如:電訊號或光訊號)執行的。舉例來說,三個這種操作為:複製(copying)、求和(summation)以及乘法(multiplication)。可以使用光功率分離(optical power splitting)來執行複製,可以使用基於電流的求和(electrical current-based summation)來執行求和,並且可以使用光幅度調變(optical amplitude modulation)來執行乘法,如下面更詳細的描述。可以使用這三種類型的操作所執行的計算的實施例是將向量乘以矩陣(例如:如人工神經網路計算所採用的)。可以使用這些操作來執行各種其他計算,這些操作表示可以執行各種計算的一組通用線性操作,包括:向量-向量內積(vector-vector dot product)、向量-向量元素方面乘法(vector-vector element-wise multiplication)、向量-純量元素元素方面乘法(vector-scalar element wise multiplication)、或矩陣-矩陣元素方面乘法(matrix-matrix element-wise multiplication),但不限於此。此處所述的一些實施例顯示了用於向量-矩陣乘法的技術和配置,但是相應的技術和配置可以用於這些類型的計算中的任何一者。
各觀點可具有以下優點中的一或多個。
此處所述的使用電訊號和光訊號的光電計算系統可以促進增加靈活性及/或效率。在過去,可能存在與將光(或光子)積體裝置與電(或電子)積體裝置組合在公共(common)平台(例如:公共半導體晶粒,或在控制塌陷高度晶片連接(controlled collapsed chip connection)或“覆晶(flip-chip)”佈置中組合的多個半導體晶粒)相關的潛在挑戰。舉例來說,這種潛在挑戰可能包括輸入/輸出(I/O)封裝或溫度控制。對於此處所述的那些計算系統,當與相對大量的光輸入/輸出端口(port)和相對大量的電輸入/輸出端口一起使用時(例如:4個或更多個光輸入/輸出端口,200個或更多個電輸入/輸出端口),可能增加潛在的挑戰。舉例而言,在控制塌陷高度晶片連接中,附有光子積體電路之半導體晶粒 (例如:參考第1A圖實作下述之光處理器)可包含電輸入端口與電輸出端口,與相應之電子積體電路之電輸出端口與電輸入端口連接(例如:參考第1A圖實作下述之控制器110、記憶體單元120、數位類比轉換器(DAC)單元130,及/或類比數位轉換器(ADC)單元160)。例如控制塌陷高度晶片連接可使用合金組成之焊球(或焊點凸塊) ,焊球與整合到晶粒之金屬焊盤直接接觸,其中導線與焊盤接合消除了更複雜、更不緊湊之封裝之需求。使用適當的系統設計可以減輕這些潛在的挑戰。舉例來說,計算系統可使用高密度封裝佈置,其使用溫度控制(例如:熱電冷卻)來控制不同材料類型(例如:半導體材料(例如矽)、玻璃材料(二氧化矽或“矽石(Silica)”、陶瓷材料等)之間的熱膨脹,及/或使用封閉殼體(enclosing housing)作為散熱器並且提供一定程度的密封(sealing)。利用這種溫度穩定技術,可以限制不同的熱膨脹係數(coefficients of thermal expansion;CTE)以及系統端口和封裝的高密度光纖陣列的端口之間的不對準。
對於複製操作,由於光功率分離是被動的,因此不需要消耗功率來執行操作。另外,電分離器的頻寬具有與RC時間常數相關的限制。相較之下,光分離器的頻寬是實質上無限的。可以使用不同類型的光功率分離器(optical power splitter),包括波導光分離器(waveguide optical splitter)或自由空間光束分離器(free-space beam splitter),如下面更詳細的描述。
對於乘法操作,可以將一個數值編碼為光訊號,並且可以將另一個數值編碼為幅度縮放係數(amplitude scaling coefficient)(例如,乘以在0到1的範圍內的數值)。在設定了縮放係數之後,光域(optical domain)中的乘法運算對電訊號的調節的要求降低(或沒有),並因此減少因於電雜訊、功率消耗和帶寬限制的約束(constraint)。藉由適當選擇偵測方案,可以獲得有號的(signed)結果(例如:乘以-1到+1之間的數值),如下面更詳細的描述。
對於求和操作,可以使用不同的技術來實現其中基於不同貢獻的總和來確定導體中的電流的大小的結果。在輸入電流訊號的情況下,當承載那些輸入電流訊號的二或多個導體在接點(junction)組合時,承載輸出電流訊號的單一導體表示那些輸入電流訊號的總和。在輸入光訊號的情況下,當二或多個不同波長的光波照射到偵測器上時,由偵測器產生的光電流上承載的電流訊號表示輸入光訊號中的功率之總和。兩者都產生電訊號(例如:電流)作為表示總和的輸出,但是一個使用電流作為輸入(基於電流輸入的求和(current-input-based summation),也稱為在“電域(electrical domain)”中執行的“電求和(electrical summation)”)而另一個使用光波作為輸入(基於光輸入的求和(optical-input-based summation),也稱為在“光電域(optoelectronic domain)”中執行的“光電求和(optoelectronic summation)”)。但是,在一些實施例中,使用基於電流輸入的求和而不是基於光輸入的求和,這使單一光學波長能夠在系統中使用,避免可能需要提供的系統的潛在復雜元件並且保持多個波長。
由這些模組執行的這些基本操作的組合可以被設置以提供執行線性操作(例如具有任意矩陣元素量值(arbitrary matrix element magnitude)的向量矩陣乘法(vector-matrix multiplication))的裝置。使用光訊號和用於使用光干涉(此處之描述不使用複製模組或求和模組)來組合訊號的干涉儀的矩陣乘法的其他實行已被限於提供具有某些限制(例如:單一矩陣或對角矩陣)的向量矩陣乘法。另外,一些其他實施例可能依賴於多個光訊號的大規模相位對準,因為它們傳播通過相對大量的光學元件(例如:光調變器)。或者,此處所述的實施例可藉由傳播通過較少光學元件之後(例如:在傳播通過不超過單一光幅度調變)將光訊號轉換成電訊號,來放寬這種相位對準約束,這允許使用具有降低相干性的光訊號,或甚至使用不依賴於建設性/破壞性(constructive/destructive)干涉的光學調變器的非相干光訊號。
對於光訊號和電訊號的時域編碼,下面將更詳細地描述,類比擬電子電路可被優化用於在特定功率準位(level)下操作,如果電路以高速操作,這可能是有幫助的。這種時域編碼在減少可能與精確控制每一個符號的相對大量可清楚區分的強度等級相關聯的任何挑戰是有用的。相反,當在單一符號持續時間(single symbol duration)內的多個時槽(time slot)上的時域中應用佔空比(duty cycle)的精確控制時,可以使用相對恆定的幅度(對於“開” 準位,具有零或接近零的幅度處於“關”準位)。
藉由將光子裝置和電子裝置整合在公共基板(例如:矽晶片)上,或如上所述藉由使用覆晶配置連接被製造的晶粒,可以大規模方便地製造耦接在緊湊系統中之模組。基板上的路由訊號(routing signal)作為光訊號而不是電訊號以允許將光偵測器分組在基板的一部分中及/或緊湊晶粒布局(如下述之更多細節)的方式,可幫助避免長電子佈線及其相關的挑戰(例如,寄生電容、電感以及串擾(crosstalk))。
對於使用子矩陣乘法的計算系統的實施例,可以使用不同的裝置(例如:不同的核心(core)、不同的處理器、不同電腦、不同伺服器)同時計算輸出向量的每個元素,有助於緩解某些潛在的限制(例如記憶體牆(memory wall)),並且幫助整個系統擴展到非常大的矩陣。在一些實施例中,可以使用不同的裝置將每一個子矩陣乘以對應的子向量。然後可以藉由收集或累積來自不同裝置的被加數(summand)來計算總和。光訊號形式的中間結果可以在裝置之間方便地傳輸,即使裝置被相對較大的距離分開。
其他觀點包括上述之特徵的其他組合和表示為方法、設備、系統、程式產品以及其他方式的其他特徵。
可以實施此處描述的主題的特定實施例以實現以下優點中的一個或多個。可以改進ANN計算流通量(throughput)、延遲(latency)或兩者。 可以改進ANN計算的功率效率。
在另一觀點中,計算裝置包括:複數光波導,其中一組多個輸入值被編碼在由光波導承載的相應光訊號上;複數複製模組,並且對於一或多個光訊號的至少兩個子集中的每一者,一或多個複製模組的相應一組被配置以將一或多個光訊號的子集分成二或多個光訊號的副本(copies);複數乘法模組,並且對於一或多個光訊號的第一子集的至少兩個副本中的每一者,相應的乘法模組被配置以使用光幅度調變將第一子集的一或多個光訊號乘以一或多個矩陣元素值,其中至少一乘法模組包括光幅度調變器,光幅度調變器包括一個輸入端口和兩個輸出端口,並且從兩個輸出端口提供一對相關光訊號,使得相關光訊號的幅度之間的差值對應於將輸入值乘以有號矩陣元素值的結果;以及一或多個求和模組,並且對於二或多個乘法模組的結果,相應的一個求和模組被配置以產生電訊號,電訊號表示二或多個乘法模組的結果的總和。
計算裝置的實施例可包括以下特徵的一或多個。舉例來說,在一組多個光訊號中的編碼在相應光訊號上的輸入值可以表示與包括一或多個矩陣元素值的矩陣相乘的輸入向量的元素。
在一些實施例中,一組多個輸出值可被編碼在由一或多個求和模組所產生的相應電訊號上,並且一組多個輸出值中的輸出值可表示輸出向量的元素,輸出向量藉由輸入向量乘以矩陣產生。
在一些實施例中,由光波導所承載的每一個光訊號包括具有共同波長的光波,共同波長於所有光訊號大抵相同。
在一些實施例中,複製模組可包括具有光分離器的至少一複製模組,光分離器在輸入端口將光波的功率的既定比例發送至第一輸出端口,並且在輸入端口將光波的功率的剩餘比例發送至第二輸出端口。
在一些實施例中,光分離器可包括波導光分離器,波導光分離器將由輸入光波導所引導的光波的功率的既定比例發送至第一輸出光波導,並且將由輸入光波導所引導的光波的功率的剩餘比例發送至第二輸出光波導。
在一些實施例中,輸入光波導的引導模式可被絕熱地耦接至第一輸出光波導和第二輸出光波導中之每一者的複數引導模式。
在一些實施例中,光分離器可包括光束分離器,光束分離器包括至少一表面,其在輸入端口傳輸光波的功率的既定比例,並且在輸入端口反射光波的功率的剩餘比例。
在一些實施例中,至少一光波導可包括耦接至光耦合器的光纖,光耦合器將光纖的引導模式耦接至自由空間傳播模式(free-space propagation mode)。
在一些實施例中,乘法模組可包括至少一相干敏感乘法模組(coherence-sensitive multiplication module),相干敏感乘法模組被配置以基於複數光波之間的干涉,使用光幅度調變將第一子集的一或多個光訊號乘以一或多個矩陣元素值,光波具有相干長度,相干長度至少與通過相干敏感乘法模組的傳播距離一樣長。
在一些實施例中,相干敏感乘法模組可包括馬赫曾德爾干涉儀(MZI),馬赫曾德爾干涉儀將輸入光波導所引導的光波分成馬赫曾德爾干涉儀的第一光波導臂(optical waveguide arm)和馬赫曾德爾干涉儀的第二光波導臂,第一光波導臂包括相位移器,相位移器相對於第二光波導臂的相位延遲產生相對相位移,並且馬赫曾德爾干涉儀將來自第一光波導臂和第二光波導臂的複數光波組合成至少一輸出光波導。
在一些實施例中,MZI可將來自第一光波導臂和第二光波導臂的複數光波組合成第一輸出光波導和第二輸出光波導中的每一者,第一光偵測器可從第一輸出光波導接收光波以產生第一光電流,第二光偵測器可從第二輸出光波導接收光波以產生第二光電流,並且相干敏感乘法模組的結果可包括第一光電流與第二光電流之間的差值。
在一些實施例中,相干敏感乘法模組可包括一或多個環形共振器(ring resonator),環形共振器包括耦接至第一光波導的至少一環形共振器和耦接至第二光波導的至少一環形共振器。
在一些實施例中,第一光偵測器可接收來自第一光波導的光波,以產生第一光電流,第二光偵測器可接收來自第二光波導的光波,以產生第二光電流,並且相干敏感乘法模組的結果可包括第一光電流與第二光電流之間的差值。
在一些實施例中,乘法模組可包括至少一相干非敏感乘法模組(coherence-insensitive multiplication module),相干非敏感乘法模組被配置以基於光波內的能量吸收,使用光幅度調變將第一子集的一或多個光訊號乘以一或多個矩陣元素值。
在一些實施例中,相干非敏感乘法模組可包括電吸收調變器(electro-absorption modulator)。
在一些實施例中,一或多個求和模組可包括具有以下部件的至少一求和模組:(1)二或多個輸入導體,每一個輸入導體以輸入電流的形式承載電訊號,輸入電流的幅度表示相應一個乘法模組的相應結果,以及(2)至少一輸出導體,輸出導體承載表示輸出電流形式的相應結果的總和的電訊號,輸出電流與輸入電流之總和成比例。
在一些實施例中,二或多個輸入導體和輸出導體可包括複數導線,其在導線之間的一或多個接點相遇,並且輸出電流大抵等於輸入電流之總和。
在一些實施例中,輸入電流的至少一第一輸入電流可以在至少一光電流的形式提供,光電流由至少一光偵測器產生,光偵測器接收由乘法模組的第一乘法模組所產生的光訊號。
在一些實施例中,第一輸入電流可以在兩個光電流之間的差值的形式提供,兩個光電流由不同相應光偵測器產生,光偵測器接收由第一乘法模組所產生的不同相應光訊號。
在一些實施例中,一或多個光訊號的第一子集的副本之一者可由單一光訊號組成,其中單一光訊號上的一個輸入值被編碼。
在一些實施例中,對應第一子集的副本的乘法模組可將編碼的輸入值乘以單一矩陣元素值。
在一些實施例中,一或多個光訊號的第一子集的副本之一者可包括的光訊號多於一個,並且少於所有光訊號的數量,其中光訊號的多個輸入值被編碼。
在一些實施例中,對應第一子集的副本的乘法模組可將編碼的輸入值乘以不同的相應矩陣元素值。
在一些實施例中,對應一或多個光訊號的第一子集的不同相應副本的不同乘法模組可被包含在不同裝置,不同裝置進行光學通訊以在不同裝置之間傳輸一或多個光訊號的第一子集的副本之一者。
在一些實施例中,光波導的二或多個、複製模組的二或多個、乘法模組的二或多個、以及一或多個求和模組的至少一者可被設置在公共裝置的基板上。
在一些實施例中,裝置執行向量矩陣乘法,其中可提供輸入向量作為一組光訊號,並且可提供輸出向量作為一組電訊號。
在一些實施例中,計算裝置可更包括累加器,累加器整合對應乘法模組或求和模組的輸出的輸入電訊號,其中可使用時域編碼(time domain encoding)來編碼輸入電信號,時域編碼在多個時槽的每一者內使用開關幅度調變(on-off amplitude modulation),並且累加器可產生輸出電訊號,輸出電訊號以多於兩個幅度準位來編碼,幅度準位對應多個時槽上的時域編碼的不同佔空比。
在一些實施例中,乘法模組的二或多個之每一者對應一或多個光訊號的不同子集。
在一些實施例中,計算裝置可更包括用於一或多個光訊號的第二子集的每一個副本,與一或多個光訊號的第一子集中的光訊號不同,乘法模組被配置以使用光幅度調變將第二子集的一個或多個光訊號乘以一或多個矩陣元素值。
在另一觀點中,計算方法包括:在相應光訊號上編碼一組多個輸入值;對於一或多個光訊號的至少兩個子集中的每一者,使用一或多個複製模組的相應一組以將一或多個光訊號的子集分成二或多個光訊號的副本;對於一或多個光訊號的第一子集的至少兩個副本中的每一者,使用相應的乘法模組以使用光幅度調變將第一子集的一或多個光訊號乘以一或多個矩陣元素值,其中至少一乘法模組包括光幅度調變器,光幅度調變器包括一個輸入端口和兩個輸出端口,並且從兩個輸出端口提供一對相關光訊號,使得相關光訊號的幅度之間的差值對應於將輸入值乘以有號矩陣元素值的結果;以及對於二或多個乘法模組的結果,使用求和模組以產生電訊號,電訊號表示二或多個乘法模組的結果的總和。
在另一觀點中,計算方法包括:編碼表示相應光訊號上的輸入向量的元素的一組輸入值;將表示矩陣元素的一組係數編碼作為耦合至光訊號的一組光幅度調變器的幅度調變準位,其中包括一個輸入端口和兩個輸出端口的至少一光幅度調變器從兩個輸出端口提供一對相關光訊號,使得相關光訊號的幅度之間的差值對應於將輸入值乘以有號矩陣元素值的結果;以及編碼表示相應電訊號上的輸出向量的元素的一組輸出值,其中至少一電訊號是電流形式,其幅度對應輸入向量的相應元素乘以矩陣的一列(row)的相應元素的總和。
計算方法的實施例可包括以下特徵的一或多個。舉例來說,至少一光訊號可以由第一光波導提供,並且第一光波導可以耦接至光分離器,光分離器將由第一光波導所引導的光波的功率的既定比例發送至第二輸出光波導,並且將由第一光波導所引導的光波的功率的剩餘定比例發送至第三光波導。
在另一觀點中,計算裝置包括:複數光波導,編碼表示由光波導承載的相應光訊號上的輸入向量的元素的一組輸入值;一組光幅度調變器,耦接至光訊號,將表示矩陣元素的一組係數編碼作為幅度調變準位,其中包括一個輸入端口和兩個輸出端口的至少一光幅度調變器從兩個輸出端口提供一對相關光訊號,使得相關光訊號的幅度之間的差值對應於將輸入值乘以有號矩陣元素值的結果;複數求和模組,其編碼表示相應電訊號上的輸出向量的元素的一組輸出值,其中至少一電訊號是電流形式,其幅度對應輸入向量的相應元素乘以矩陣的一列(row)的相應元素的總和。
在另一觀點中,用於將輸入向量乘以給定矩陣的計算方法包括:編碼表示一組光訊號的相應光訊號上的輸入向量的元素的一組輸入值;將第一組一或多個裝置耦接至第一組一或多個波導,提供該組光訊號的第一子集,並且產生給定矩陣的第一子矩陣乘以在該組光訊號的第一子集上的數值的結果;將第二組一或多個裝置耦接至第二組一或多個波導,提供該組光訊號的第二子集,並且產生給定矩陣的第二子矩陣乘以在該組光訊號的第二子集上的數值的結果;將第三組一或多個裝置耦接至第三組一或多個波導,提供由第一光分離器所產生的該組光訊號的第一子集的副本,並且產生給定矩陣的第三子矩陣乘以在該組光訊號的第一子集上的數值的結果;將第四組一或多個裝置耦接至第四組一或多個波導,提供由第二光分離器所產生的該組光訊號的第二子集的副本,並且產生給定矩陣的第四子矩陣乘以在該組光訊號的第二子集上的數值的結果;其中連接在一起的第一、第二、第三以及第四子矩陣形成給定矩陣;以及其中表示輸出向量的元素的至少一輸出值被編碼在電訊號上,輸出向量對應輸入向量乘以給定矩陣,電訊號由與第一組一或多個裝置和第二組一或多個裝置通訊的裝置產生。
計算方法的實施例可包括以下特徵的一或多個。舉例來說,第一組一或多個裝置、第二組一或多個裝置、第三組一或多個裝置、以及第四組一或多個裝置中的每一對組可以是互斥的(mutually exclusive)。
在另一觀點中,計算裝置包括:第一組一或多個裝置,被配置以接收第一組光訊號,並且產生第一矩陣乘以在第一組光訊號上編碼的數值的結果;第二組一或多個裝置,被配置以接收第二組光訊號,並且產生第二矩陣乘以在第二組光訊號上編碼的數值的結果;第三組一或多個裝置,被配置以接收第三組光訊號,並且產生第三矩陣乘以在第三組光訊號上編碼的數值的結果;第四組一或多個裝置,被配置以接收第四組光訊號,並且產生第四矩陣乘以在第四組光訊號上編碼的數值的結果;以及可配置連接路徑,在第一組一或多個裝置、第二組一或多個裝置、第三組一或多個裝置或第四組一或多個裝置中的二或多個之間,其中可配置連接路徑的第一配置被配置以(1)提供第一組光訊號的副本作為第二組光訊號,第三組光訊號或第四組光訊號中的至少一者,並且(2)將來自第一組一或多個裝置的一或多個訊號和來自第二組一或多個裝置的一或多個訊號提供至求和模組,求和模組被配置以產生電訊號,電訊號表示在由求和模組接收的訊號上編碼的數值的總和。
在另一觀點中,計算裝置包括:第一組一或多個裝置,被配置以接收第一組光訊號,並且基於第一組光訊號的一或多個光訊號的光幅度調變產生結果;第二組一或多個裝置,被配置以接收第二組光訊號,並且基於第二組光訊號的一或多個光訊號的光幅度調變產生結果;第三組一或多個裝置,被配置以接收第三組光訊號,並且基於第三組光訊號的一或多個光訊號的光幅度調變產生結果;第四組一或多個裝置,被配置以接收第四組光訊號,並且基於第四組光訊號的一或多個光訊號的光幅度調變產生結果;以及可配置連接路徑,在第一組一或多個裝置、第二組一或多個裝置、第三組一或多個裝置或第四組一或多個裝置中的二或多個之間,其中可配置連接路徑的第一配置被配置以(1)提供第一組光訊號的副本作為第三組光訊號,或(2)將來自第一組一或多個裝置的一或多個訊號和來自第二組一或多個裝置的一或多個訊號提供至求和模組,求和模組被配置以產生電訊號,電訊號表示在由求和模組接收的訊號上編碼的數值的總和。
計算裝置的實施例可包括以下特徵的一或多個。舉例來說,第一組一或多個裝置、第二組一或多個裝置、第三組一或多個裝置、以及第四組一或多個裝置中的每一對組可以是互斥的。
在一些實施例中,可配置連接路徑的第一配置被配置以(1)提供第一組光訊號的副本作為第三組光訊號,並且(2)將來自第一組一或多個裝置的一或多個訊號和來自第二組一或多個裝置的一或多個訊號提供至求和模組,求和模組被配置以產生電訊號,電訊號表示在由求和模組接收的至少兩個不同訊號上編碼的數值的總和。
在一些實施例中,可配置連接路徑的第一配置被配置以提供第一組光訊號的副本作為第三組光訊號,並且可配置連接路徑的第二配置可被配置以將來自第一組一或多個裝置的一或多個訊號和來自第二組一或多個裝置的一或多個訊號提供至求和模組,求和模組被配置以產生電訊號,電訊號表示在由求和模組接收的訊號上編碼的數值的總和。
在另一觀點中,計算裝置包括:複數光波導,其中一組多個輸入值被編碼在由光波導承載的相應光訊號上;複數複製模組,包括用於一或多個光訊號的至少兩個子集中的每一者,一或多個複製模組的相應一組被配置以將一或多個光訊號的子集分成二或多個光訊號的副本;複數乘法模組,包括用於一或多個光訊號的第一子集的至少兩個副本中的每一者,相應的乘法模組被配置以使用光幅度調變將第一子集的一或多個光訊號乘以一或多個數值;以及一或多個求和模組,包括用於二或多個乘法模組的結果,求和模組被配置以產生電訊號,電訊號表示二或多個乘法模組的結果的總和,其中該結果包括在電訊號上編碼的至少一結果,並且該結果是從光訊號的一個副本導出的,其在被轉換成電訊號之前傳播通過不超過單一光幅度調變器。
在另一觀點中,計算系統包括:第一單元,被配置以產生複數調變器控制訊號;以及處理器,包括:光源,被配置以提供複數光輸出;複數光調變器,耦接至光源和第一單元,光調變器被配置以基於調變器控制訊號,調變由光源所提供的光輸出,來產生光輸入向量,光輸入向量包括複數光訊號;以及矩陣乘法單元,耦接至光調變器和第一單元,矩陣乘法單元被配置以基於複數權重控制訊號,將光輸入向量轉換成類比輸出向量。計算系統亦包括第二單元,耦接至矩陣乘法單元,並且第二單元被配置以將類比輸出向量轉換成數位輸出向量;以及控制器,包括積體電路,被配置以執行以下操作:接收人工神經網路計算請求,人工神經網路計算請求包括輸入資料集,輸入資料集包括第一數位輸入向量;接收第一多個神經網路權重;以及透過第一單元,基於第一數位輸入向量產生第一多個調變器控制訊號,並且基於第一多個神經網路權重產生第一多個權重控制訊號。
計算系統的實施例可包括以下特徵的一或多個。舉例來說,第一單元可包括數位類比轉換器(DAC)。
在一些實施例中,第二單元可包括類比數位轉換器(ADC)。
在一些實施例中,計算系統可包括記憶體單元,被配置以儲存資料集和複數神經網路權重。
在一些實施例中,控制器的積體電路可更被配置以執行包括在上述記憶體單元中儲存輸入資料集和第一多個神經網路權重的操作。
在一些實施例中,第一單元可被配置以產生權重控制訊號。
在一些實施例中,控制器可包括特殊應用積體電路(ASIC),並且接收人工神經網路計算請求的步驟可包括從通用資料處理器接收人工神經網路計算請求。
在一些實施例中,第一單元、處理單元、第二單元以及控制器可被設置在多晶片模組或積體電路中的至少一者上。接收人工神經網路計算請求的步驟可包括從第二資料處理器接收人工神經網路計算請求,其中第二資料處理器可在多晶片模組或積體電路的外部,第二資料處理器可透過通訊通道(communication channel)耦接至多晶片模組或積體電路,並且處理單元可以以比通訊通道的資料速率大至少一數量級的資料速率來處理資料。
在一些實施例中,第一單元、處理單元、第二單元以及控制器可被用於在複數迭代中重複的光電處理循環,並且光電處理循環包括:(1)基於調變器控制訊號之至少一者的至少一第一光調變操作,以及基於權重控制訊號之至少一者的至少一第二光調變操作,以及(2)(a)電求和操作或(b)電儲存操作中之至少一者。
在一些實施例中,光電處理循環可包括電儲存操作,並且電儲存操作使用耦接至控制器的記憶體單元來執行,其中藉由控制器所執行的操作可更包括在記憶體單元中儲存輸入資料集和第一多個神經網路權重。
在一些實施例中,光電處理循環可包括電求和操作,並且電求和操作可使用在矩陣乘法單元內的電求和模組來執行,其中電求和模組可被配置以產生對應類比輸出向量的元素的電流,電流表示光輸入向量的相應元素乘以相應神經網路權重的總和。
在一些實施例中,光電處理循環可包括至少一訊號路徑,在訊號路徑上,基於調變器控制訊號之至少一者,在單一循環迭代中執行不超過一個第一光調變操作,並且基於權重控制訊號之至少一者,在單一循環迭代中執行不超過一個第二光調變操作。
在一些實施例中,第一光調變操作可藉由耦接至光輸出的光源和矩陣乘法單元的光調變器之一者來執行,並且第二光調變操作可藉由被包括在矩陣乘法單元中的光調變器來執行。
在一些實施例中,光電處理循環可包括至少一訊號路徑,在上述訊號路徑上,在單一循環迭代中執行不超過一個電儲存操作。
在一些實施例中,光源可包括雷射單元,被配置以產生光輸出。
在一些實施例中,矩陣乘法單元可包括:輸入波導陣列,用於接收光輸入向量,並且光輸入向量包括第一光訊號陣列;光干涉單元,與輸入波導陣列光學通訊,用於執行將光輸入向量轉換成第二光訊號陣列的線性轉換;以及輸出波導陣列,與光干涉單元光學通訊,用於引導第二光訊號陣列,其中在輸入波導陣列中的至少一輸入波導透過光干涉單元與在輸出波導陣列中的每一個輸出波導光學通訊。
在一些實施例中,光干涉單元可包括:複數互連MZI,互連MZI中的每一個MZI包括:第一相位移器,被配置以改變MZI的分離比;以及第二相位移器,被配置以位移MZI的一個輸出的相位,其中第一相位移器和第二相位移器耦接至權重控制訊號。
在一些實施例中,矩陣乘法單元可包括:複數複製模組,其中每一個複製模組對應光輸入向量的一或多個光訊號的子集,並且被配置以將一或多個光訊號的子集分成光訊號的二或多個副本;複數乘法模組,其中每一個乘法模組對應一或多個光訊號的子集,並且被配置以使用光幅度調變將子集的一或多個光訊號乘以一或多個矩陣元素值;以及一或多個求和模組,其中每一個求和模組被配置以產生電訊號,電訊號表示乘法模組的二或多個的結果的總和。
在一些實施例中,至少一乘法模組包括光幅度調變器,光幅度調變器包括一個輸入端口和兩個輸出端口,並且可從兩個輸出端口提供一對相關光訊號,使得相關光訊號的幅度之間的差值對應於將輸入值乘以有號矩陣元素值的結果。
在一些實施例中,矩陣乘法單元可被配置以將光輸入向量乘以包括一或多個矩陣元素值的矩陣。
在一些實施例中,一組多個輸出值可被編碼在由一或多個求和模組所產生的相應電訊號上,並且一組多個輸出值中的輸出值可表示輸出向量的元素,輸出向量藉由光輸入向量乘以矩陣產生。
在一些實施例中,計算系統可包括記憶體單元,記憶體單元被配置以儲存輸入資料集和神經網路權重,第二單元可包括類比數位轉換器(ADC)單元,並且操作可更包括:從類比數位轉換器單元得到對應矩陣乘法單元的類比輸出向量的第一多個數位輸出,第一多個數位輸出形成第一數位輸出向量;對第一數位輸出向量執行非線性轉換以產生第一轉換數位輸出向量;以及在記憶體單元中儲存第一轉換數位輸出向量。
在一些實施例中,計算系統具有第一循環週期,第一循環週期被定義為在記憶體單元中儲存輸入資料集和第一多個神經網路權重的步驟與在記憶體單元中儲存第一轉換數位輸出向量的步驟之間所經過的時間,以及其中第一循環週期小於或等於1ns。
在一些實施例中,操作可更包括:輸出基於第一轉換數位輸出向量所產生的人工神經網路輸出。
在一些實施例中,第一單元可包括數位類比轉換器(DAC)單元,並且操作可更包括:透過數位類比轉換器單元,基於第一轉換數位輸出向量產生第二多個調變器控制訊號。
在一些實施例中,第一單元可包括數位類比轉換器(DAC)單元,人工神經網路計算請求可更包括第二多個神經網路權重,並且其中操作可更包括:基於第一多個數位輸出的獲得,透過數位類比轉換器單元基於第二多個神經網路權重產生第二多個權重控制訊號。
在一些實施例中,第一多個神經網路權重和第二多個神經網路權重可對應人工神經網路的不同層。
在一些實施例中,第一單元可包括數位類比轉換器(DAC)單元,並且輸入資料集可更包括第二數位輸入向量。操作可更包括:透過數位類比轉換器單元,基於第二數位輸入向量產生第二多個調變器控制訊號;從類比數位轉換器單元得到對應矩陣乘法單元的類比輸出向量的第二多個數位輸出,第二多個數位輸出形成第二數位輸出向量;對第二數位輸出向量執行非線性轉換以產生第二轉換數位輸出向量;在記憶體單元中儲存第二轉換數位輸出向量;以及輸出基於第一轉換數位輸出向量和第二轉換數位輸出向量所產生的人工神經網路輸出。矩陣乘法單元的類比輸出向量可由基於第二多個調變器控制訊號所產生的第二光輸入向量產生,第二光輸入向量由矩陣乘法單元基於首先提到的權重控制訊號轉換。
在一些實施例中,計算系統可包括記憶體單元,記憶體單元被配置以儲存輸入資料集和神經網路權重,並且第二單元可包括類比數位轉換器(ADC)單元。計算系統可更包括:類比非線性單元,設置在矩陣乘法單元與類比數位轉換器單元之間,類比非線性單元可被配置以從矩陣乘法單元接收複數輸出電壓、應用非線性傳遞函數、以及輸出複數轉換輸出電壓至類比數位轉換器單元。控制器的積體電路執行的操作可更包括:從類比數位轉換器單元得到對應轉換輸出電壓的第一多個轉換數位輸出電壓,第一多個轉換數位輸出電壓形成第一轉換數位輸出向量;以及在記憶體單元中儲存第一轉換數位輸出向量。
在一些實施例中,控制器的積體電路可被配置以以產生大於或等於8GHz的頻率的第一多個調變器控制訊號。
在一些實施例中,第一單元可包括數位類比轉換器(DAC)單元,第二單元可包括類比數位轉換器(ADC)單元。矩陣乘法單元可包括:光矩陣乘法單元,耦接至光調變器和數位類比轉換器單元,光矩陣乘法單元被配置以基於權重控制訊號將光輸入向量轉換成光輸出向量;以及光偵測單元,耦接至光矩陣乘法單元,並且被配置以產生對應光輸出向量的複數輸出電壓。
在一些實施例中,計算系統可更包括:類比記憶體單元,被設置在DAC單元與光調變器之間,類比記憶體單元被配置以儲存複數類比電壓,並且輸出儲存的類比電壓;以及類比非線性單元,被設置在光偵測單元與ADC單元之間,類比非線性單元被配置以從光偵測單元接收輸出電壓、應用非線性傳遞函數、以及輸出複數轉換輸出電壓。
在一些實施例中,類比記憶體單元可包括複數電容。
在一些實施例中,類比記憶體單元可被配置以接收和儲存類比非線性單元的轉換輸出電壓,並且將儲存的轉換輸出電壓輸出至光調變器。操作可更包括:基於產生第一多個調變器控制訊號和第一多個權重控制訊號,在類比記憶體單元中儲存類比非線性單元的轉換輸出電壓;透過類比記憶體單元輸出儲存的轉換輸出電壓;從類比數位轉換器單元得到第二多個轉換數位輸出電壓,第二多個轉換數位輸出電壓形成第二轉換數位輸出向量;以及在記憶體單元中儲存第二轉換數位輸出向量。
在一些實施例中,計算系統可包括記憶體單元,被配置以儲存輸入資料集和神經網路權重,並且人工神經網路計算請求的輸入資料集可包括複數數位輸入向量。光源可被配置以產生複數波長。光調變器可包括:複數光調變器組,被配置以產生複數光輸入向量,每一個光調變器組對應一個波長,並且產生具有相應波長的相應光輸入向量;以及光多路複用器,被配置以將光輸入向量組合成包括波長的組合光輸入向量,其中光偵測單元可更被配置以多路分解波長,並且產生複數多路分解輸出電壓。操作可包括:從類比數位轉換器單元得到複數數位多路分解光輸出,數位多路分解光輸出形成複數第一數位輸出向量,其中每一個第一數位輸出向量對應一個波長;對每一個第一數位輸出向量執行非線性轉換,以產生複數轉換第一數位輸出向量;以及在記憶體單元中儲存轉換第一數位輸出向量。每一個數位輸入向量對應一個光輸入向量。
在一些實施例中,計算系統可包括記憶體單元,被配置以儲存輸入資料集和神經網路權重,第二單元可包括類比數位轉換器(ADC)單元,並且人工神經網路計算請求可包括複數數位輸入向量。光源可被配置以產生複數波長。光調變器可包括:複數光調變器組,被配置以產生複數光輸入向量,每一個光調變器組對應一個波長者,並且產生具有相應波長的相應光輸入向量;以及光多路複用器,被配置以將光輸入向量組合成包括波長的組合光輸入向量。操作可包括:從類比數位轉換器單元得到對應光輸出向量的第一多個數位光輸出,光輸出向量包括波長,第一多個數位光輸出形成第一數位輸出向量;對第一數位輸出向量執行非線性轉換,以產生第一轉換數位輸出向量;以及在記憶體單元中上述第一轉換數位輸出向量。
在一些實施例中,第一單元可包括數位類比轉換器(DAC)單元,第二單元可包括類比數位轉換器(ADC)單元,並且數位類比轉換器單元可包括:1位元數位類比轉換器子單元,被配置以產生複數1位元調變器控制訊號。類比數位轉換器單元的解析度可為1位元,並且第一數位輸入向量的解析度可為N位元。操作可更包括:將第一數位輸入向量分解為N個1位元輸入向量,N個1位元輸入向量之每一者對應第一數位輸入向量的N位元之一者;透過1位元數位類比轉換器子單元產生對應N個1位元輸入向量的N個1位元調變器控制訊號的序列;從類比數位轉換器單元得到對應N個1位元調變器控制訊號的序列的N個數位1位元光輸出的序列;從N個數位1位元光輸出的序列建構N位元數位輸出向量;對建構的N位元數位輸出向量執行非線性轉換,以產生轉換N位元數位輸出向量;以及在記憶體單元中儲存轉換N位元數位輸出向量。
在一些實施例中,計算系統可包括記憶體單元,被配置以儲存輸入資料集和神經網路權重。記憶體單元可包括:數位輸入向量記憶體,被配置以儲存第一數位輸入向量,並且包括至少一靜態隨機存取記憶體;以及神經網路權重記憶體,被配置以儲存神經網路權重,並且包括至少一動態隨機存取記憶體。
在一些實施例中,第一單元可包括數位類比轉換器(DAC)單元,數位類比轉換器單元包括:第一數位類比轉換器子單元,被配置以產生調變器控制訊號;以及第二數位類比轉換器子單元,被配置以產生權重控制訊號,其中第一數位類比轉換器子單元和第二數位類比轉換器子單元是不同的。
在一些實施例中,光源可包括:雷射源,被配置以產生光;以及光功率分離器,被配置以將由雷射源所產生的光分成光輸出,其中每一個光輸出具有大抵相同的功率。
在一些實施例中,光調變器包括MZI涉調變器、環形共振調變器或電吸收調變器中的一個。
在一些實施例中,光偵測單元可包括:複數光偵測器;以及複數放大器,被配置以將由光偵測器所產生的光電流轉換成輸出電壓。
在一些實施例中,積體電路可以是特殊應用積體電路。
在一些實施例中,計算系統可包括複數光波導,光波導耦接在光調變器與矩陣乘法單元之間,其中光輸入向量可包括一組多個輸入值,一組多個輸入值被編碼在由光波導所承載的相應光訊號上,並且由一個光波導者所承載的每一個光訊號可包括具有共同波長的光波,共同波長於所有光訊號大抵相同。
在一些實施例中,複製模組可包括具有光分離器的至少一複製模組,光分離器在輸入端口將光波的功率的既定比例發送至第一輸出端口,並且在輸入端口將光波的功率的剩餘比例發送至第二輸出端口。
在一些實施例中,光分離器可包括波導光分離器,波導光分離器將由輸入光波導所引導的光波的功率的既定比例發送至第一輸出光波導,並且將由輸入光波導所引導的光波的功率的剩餘比例發送至第二輸出光波導。
在一些實施例中,輸入光波導的引導模式可被絕熱地耦接至第一輸出光波導和第二輸出光波導中之每一者的複數引導模式。
在一些實施例中,光分離器可包括光束分離器,光束分離器包括至少一表面,其在輸入端口傳輸光波的功率的既定比例,並且在輸入端口反射光波的功率的剩餘比例。
在一些實施例中,至少一光波導可包括耦接至光耦合器的光纖,光耦合器將光纖的引導模式耦接至自由空間傳播模式。
在一些實施例中,乘法模組可包括至少一相干敏感乘法模組,相干敏感乘法模組被配置以基於複數光波之間的干涉,使用光幅度調變將第一子集的一或多個光訊號乘以一或多個矩陣元素值,光波具有相干長度,相干長度至少與通過相干敏感乘法模組的傳播距離一樣長。
在一些實施例中,相干敏感乘法模組可包括馬赫曾德爾干涉儀(MZI),馬赫曾德爾干涉儀將輸入光波導所引導的光波分成馬赫曾德爾干涉儀的第一光波導臂和馬赫曾德爾干涉儀的第二光波導臂,第一光波導臂包括相位移器,相位移器相對於第二光波導臂的相位延遲產生相對相位移,並且馬赫曾德爾干涉儀可將來自第一光波導臂和第二光波導臂的複數光波組合成至少一輸出光波導。
在一些實施例中,MZI可將來自第一光波導臂和第二光波導臂的複數光波組合成第一輸出光波導和第二輸出光波導中的每一者,第一光偵測器可從第一輸出光波導接收光波以產生第一光電流,第二光偵測器可從第二輸出光波導接收光波以產生第二光電流,並且相干敏感乘法模組的結果可包括第一光電流與第二光電流之間的差值。
在一些實施例中,相干敏感乘法模組可包括一或多個環形共振器,環形共振器包括耦接至第一光波導的至少一環形共振器和耦接至第二光波導的至少一環形共振器。
在一些實施例中,第一光偵測器可接收來自第一光波導的光波,以產生第一光電流,第二光偵測器可接收來自第二光波導的光波,以產生第二光電流,並且相干敏感乘法模組的結果可包括第一光電流與第二光電流之間的差值。
在一些實施例中,乘法模組可包括至少一相干非敏感乘法模組,相干非敏感乘法模組被配置以基於光波內的能量吸收,使用光幅度調變將第一子集的一或多個光訊號乘以一或多個矩陣元素值。
在一些實施例中,相干非敏感乘法模組可包括電吸收調變器。
在一些實施例中,一或多個求和模組可包括具有以下部件的至少一求和模組:(1)二或多個輸入導體,每一個輸入導體以輸入電流的形式承載電訊號,輸入電流的幅度表示相應一個乘法模組的相應結果,以及(2)至少一輸出導體,輸出導體承載表示輸出電流形式的相應結果的總和的電訊號,輸出電流與輸入電流之總和成比例。
在一些實施例中,二或多個輸入導體和輸出導體可包括複數導線,其在導線之間的一或多個接點相遇,並且輸出電流大抵等於輸入電流之總和。
在一些實施例中,輸入電流的至少一第一輸入電流可以在至少一光電流的形式提供,光電流由至少一光偵測器產生,光偵測器接收由乘法模組的第一乘法模組所產生的光訊號。
在一些實施例中,第一輸入電流可以在兩個光電流之間的差值的形式提供,兩個光電流由不同相應光偵測器產生,光偵測器接收由第一乘法模組所產生的不同相應光訊號。
在一些實施例中,一或多個光訊號的第一子集的副本之一者可由單一光訊號組成,其中單一光訊號上的一個輸入值被編碼。
在一些實施例中,對應第一子集的副本的乘法模組可將編碼的輸入值乘以單一矩陣元素值。
在一些實施例中,一或多個光訊號的第一子集的副本之一者可包括的光訊號多於一個,並且少於所有光訊號的數量,其中光訊號的多個輸入值被編碼。
在一些實施例中,對應第一子集的副本的乘法模組可將編碼的輸入值乘以不同的相應矩陣元素值。
在一些實施例中,對應一或多個光訊號的第一子集的不同相應副本的不同乘法模組可被包含在不同裝置,不同裝置進行光學通訊以在不同裝置之間傳輸一或多個光訊號的第一子集的副本之一者。
在一些實施例中,光波導的二或多個、複製模組的二或多個、乘法模組的二或多個、以及一或多個求和模組的至少一者可被設置在公共裝置的基板上。
在一些實施例中,裝置執行向量矩陣乘法,其中可提供輸入向量作為一組光訊號,並且可提供輸出向量作為一組電訊號。
在一些實施例中,計算裝置可更包括累加器,累加器整合對應乘法模組或求和模組的輸出的輸入電訊號,其中可使用時域編碼來編碼輸入電信號,時域編碼在多個時槽的每一者內使用開關幅度調變,並且累加器可產生輸出電訊號,輸出電訊號以多於兩個幅度準位來編碼,幅度準位對應多個時槽上的時域編碼的不同佔空比。
在一些實施例中,乘法模組的二或多個之每一者對應一或多個光訊號的不同子集。
在一些實施例中,計算裝置可更包括用於一或多個光訊號的第二子集的每一個副本,與一或多個光訊號的第一子集中的光訊號不同,乘法模組被配置以使用光幅度調變將第二子集的一個或多個光訊號乘以一或多個矩陣元素值。
在另一觀點,計算系統包括:記憶體單元,被配置以儲存資料集和複數神經網路權重;以及驅動器單元,被配置以產生複數調變器控制訊號。計算系統包括光電處理器,光電處理器包括:光源,被配置以提供複數光輸出;複數光調變器,耦接至光源和驅動器單元,光調變器被配置以基於調變器控制訊號,調變由光源所產生的光輸出,來產生光輸入向量;矩陣乘法單元,耦接至光調變器和驅動器單元,矩陣乘法單元被配置以基於複數權重控制訊號將光輸入向量轉換成類比輸出向量;以及比較器單元,耦接至矩陣乘法單元,並且被配置以將類比輸出向量轉換成複數數位1位元輸出。計算系統包括控制器,控制器包括積體電路,被配置以執行以下操作:接收包括輸入資料集和第一多個神經網路權重的人工神經網路計算請求,其中輸入資料集包括具有N位元解析度的第一數位輸入向量;在記憶體單元中儲存輸入資料集和第一多個神經網路權重;將第一數位輸入向量分解為N個1位元輸入向量,每一個N個1位元輸入向量對應第一數位輸入向量的N位元中的一個;透過驅動器單元產生對應N個1位元輸入向量的N個1位元調變器控制訊號的序列;從比較器單元得到對應N個1位元調變器控制訊號的序列的N個數位1位元輸出的序列;從N個數位1位元光輸出的序列建構N位元數位輸出向量;對建構的N位元數位輸出向量執行非線性轉換,以產生轉換N位元數位輸出向量;以及在記憶體單元中儲存轉換N位元數位輸出向量。
計算系統的實施例可包括以下特徵的一或多個。舉例來說,接收人工神經網路計算請求可包括從通用電腦(general purpose computer)接收人工神經網路計算請求。
在一些實施例中,驅動器單元可被配置以產生權重控制訊號。
在一些實施例中,矩陣乘法單元可包括:光矩陣乘法單元,耦接至光調變器和驅動器單元,光矩陣乘法單元被配置以基於權重控制訊號將光輸入向量轉換成光輸出向量;以及光偵測單元,耦接至光矩陣乘法單元,並且被配置以產生對應光輸出向量的複數輸出電壓。
在一些實施例中,矩陣乘法單元可包括:輸入波導陣列,用於接收光輸入向量;光干涉單元,與輸入波導陣列光學通訊,用於執行將光輸入向量轉換成第二光訊號陣列的線性轉換;以及輸出波導陣列,與光干涉單元光學通訊,用於引導第二光訊號陣列,其中在輸入波導陣列中的至少一輸入波導透過光干涉單元與在輸出波導陣列中的每一個輸出波導光學通訊。
在一些實施例中,光干涉單元可包括:複數互連MZI,互連MZI中的每一個MZI包括:第一相位移器,被配置以改變MZI的分離比;以及第二相位移器,被配置以位移MZI的一個輸出的相位,其中第一相位移器和第二相位移器可耦接至權重控制訊號。
在一些實施例中,矩陣乘法單元可包括:複數複製模組,包括用於光輸入向量的一或多個光訊號的至少兩個子集中的每一者,一或多個複製模組的相應一組被配置以將一或多個光訊號的子集分成二或多個光訊號的副本;複數乘法模組,包括用於一或多個光訊號的第一子集的至少兩個副本中的每一者,相應的乘法模組被配置以使用光幅度調變將第一子集的一或多個光訊號乘以一或多個矩陣元素值;以及一或多個求和模組,包括用於二或多個乘法模組的結果,求和模組被配置以產生電訊號,電訊號表示二或多個乘法模組的結果的總和。
在一些實施例中,至少一乘法模組可包括光幅度調變器,光幅度調變器包括一個輸入端口和兩個輸出端口,並且可從兩個輸出端口提供一對相關光訊號,使得相關光訊號的幅度之間的差值對應於將輸入值乘以有號矩陣元素值的結果。
在一些實施例中,矩陣乘法單元可被配置以將光輸入向量乘以包括一或多個矩陣元素值的矩陣。
在一些實施例中,一組多個輸出值可被編碼在由一或多個求和模組所產生的相應電訊號上,並且一組多個輸出值中的輸出值可表示輸出向量的元素,輸出向量藉由光輸入向量乘以矩陣產生。
在另一觀點,提供了一種計算方法,用於在具有矩陣乘法單元的系統中執行人工神經網路計算,矩陣乘法單元被配置以基於複數權重控制訊號將光輸入向量轉換成類比輸出向量。計算方法包括:接收包括輸入資料集和第一多個神經網路權重的人工神經網路計算請求,其中輸入資料集包括第一數位輸入向量;在記憶體單元中儲存輸入資料集和第一多個神經網路權重;基於第一數位輸入向量產生第一多個調變器控制訊號,並且基於第一多個神經網路權重產生第一多個權重控制訊號;得到對應矩陣乘發單元的輸出向量的第一多個數位輸出,第一多個數位輸出形成第一數位輸出向量;藉由控制器對第一數位輸出向量執行非線性轉換,以產生第一轉換數位輸出向量;在記憶體單元中儲存第一轉換數位輸出向量;以及藉由控制器輸出基於第一轉換數位輸出向量所產生的人工神經網路輸出。
計算方法的實施例可包括以下特徵的一或多個。舉例來說,接收人工神經網路計算請求可包括透過通訊通道從電腦接收人工神經網路計算請求。
在一些實施例中,產生第一多個調變器控制訊號可包括透過數位類比轉換器(DAC)單元產生第一多個調變器控制訊號。
在一些實施例中,得到第一多個數位輸出可包括從類比數位轉換器(ADC)單元得到第一多個數位輸出。
在一些實施例中,計算方法可包括:將第一多個調變器控制訊號施加至耦接到光源和DAC單元的複數光調變器;以及使用光調變器基於調變器控制訊號調變由雷射單元所產生的光輸出,來產生光輸入向量。
在一些實施例中,矩陣乘法單元可耦接至光調變器和DAC單元,並且計算方法可包括:使用矩陣乘法單元基於權重控制訊號將光輸入向量轉換成類比輸出向量。
在一些實施例中,ADC單元可耦接至矩陣乘法單元,並且計算方法可包括:使用ADC單元將類比輸出向量轉換成第一多個數位輸出。
在一些實施例中,矩陣乘法單元可包括耦接至光調變器和DAC單元的光矩陣乘法單元。將光輸入向量轉換成類比輸出向量可包括使用光矩陣乘法單元基於權重控制訊號將光輸入向量轉換成光輸出向量。計算方法可包括:使用耦接至光矩陣乘法單元的光偵測單元,產生對應光輸出向量的複數輸出電壓。
在一些實施例中,計算方法可包括:在輸入波導陣列接收光輸入向量;使用與輸入波導陣列光學通訊的光干涉單元,執行將光輸入向量轉換成第二光訊號陣列的線性轉換;以及使用與光干涉單元光學通訊的輸出波導陣列,引導第二光訊號陣列,其中在輸入波導陣列中的至少一輸入波導透過光干涉單元與在輸出波導陣列中的每一個輸出波導光學通訊。
在一些實施例中,光干涉單元可包括:複數互連馬赫曾德爾干涉儀(MZI),互連MZI中的每一個MZI可包括第一相位移器和第二相位移器,並且第一相位移器和第二相位移器可耦接至權重控制訊號。計算方法可包括:使用第一相位移器改變MZI的分離比,並且使用第二相位移器位移MZI的一個輸出的相位。
在一些實施例中,計算方法可包括:對於光輸入向量的一或多個光訊號的至少兩個子集中的每一者,使用一或多個複製模組的相應一組將一或多個光訊號的子集分成二或多個光訊號的副本;對於一或多個光訊號的第一子集的至少兩個副本中的每一者,使用相應的乘法模組以使用光幅度調變將第一子集的一或多個光訊號乘以一或多個矩陣元素值;以及對於二或多個乘法模組的結果,使用求和模組以產生電訊號,電訊號表示二或多個乘法模組的結果的總和。
在一些實施例中,至少一乘法模組可包括光幅度調變器,光幅度調變器包括一個輸入端口和兩個輸出端口,並且可從兩個輸出端口提供一對相關光訊號,使得相關光訊號的幅度之間的差值對應於將輸入值乘以有號矩陣元素值的結果。
在一些實施例中,計算方法可包括使用矩陣乘法單元將光輸入向量乘以包括一或多個矩陣元素值的矩陣。
在一些實施例中,計算方法可包括在由一或多個求和模組所產生的相應電訊號上編碼一組多個輸出值,並且使用一組多個輸出值中的輸出值表示輸出向量的元素,輸出向量藉由光輸入向量乘以矩陣產生。
在另一觀點中,計算方法包括:以電子格式提供輸入資訊;將至少一部分電子輸入資訊轉換成光輸入向量;基於矩陣乘法將光輸入向量光電地轉換成類比輸出向量;以及將非線性轉換電子地應用於類比輸出向量,以提供電子格式的輸出資訊。
計算方法的實施例可包括以下特徵的一或多個。舉例來說,計算方法可更包括:對於對應以電子格式所提供的輸出資訊的新電子輸入資訊,重複電光轉換、光電轉換以及電應用的非線性轉換。
在一些實施例中,用於初始光電轉換的矩陣乘法和重複光電轉換的矩陣乘法可以是相同的,並且可對應人工神經網路的相同層。
在一些實施例中,用於初始光電轉換的矩陣乘法和重複光電轉換的矩陣乘法可以是不同的,並且可對應人工神經網路的不同層。
在一些實施例中,計算方法可更包括:對於電子輸入資訊的不同部分,重複電光轉換、光電轉換以及電應用的非線性轉換,其中用於初始光電轉換的矩陣乘法和重複光電轉換的矩陣乘法是相同的,並且對應人工神經網路的第一層。
在一些實施例中,計算方法可更包括:基於由人工神經網路的第一層所產生的用於電子輸入資訊的多個部分的電子輸出資訊,以電子格式提供電子中間資訊;以及對於電子中間資訊的每一個不同部分,重複電光轉換、光電轉換以及電應用的非線性轉換,其中用於初始光電轉換的矩陣乘法和與電子中間資訊的不同部分相關的重複光電轉換的矩陣乘法是相同的,並且對應人工神經網路的第二層。
在另一觀點中,提供了一種計算方法,用於執行人工神經網路計算。計算方法包括:第一單元,被配置以產生複數向量控制訊號,並且產生複數權重控制訊號;第二單元,被配置以基於向量控制訊號提供光輸入向量;以及矩陣乘法單元,耦接至第二單元和第一單元,矩陣乘法單元被配置以基於權重控制訊號將光輸入向量轉換成輸出向量。計算系統包括控制器,控制器包括積體電路,被配置以執行以下操作:接收包括輸入資料集和第一多個神經網路權重的人工神經網路計算請求,其中輸入資料集包括第一數位輸入向量;以及透過第一單元,基於第一數位輸入向量產生第一多個向量控制訊號,並且基於第一多個神經網路權重產生第一多個權重控制訊號;其中第一單元、第二單元、矩陣乘法單元以及控制器被用於在複數迭代中重複的光電處理循環,並且光電處理循環包括:(1)至少兩次光調變操作,以及(2)(a)電求和操作或(b)電儲存操作中之至少一者。
在另一觀點中,提供了一種計算方法,用於執行人工神經網路計算。計算方法包括:以電子格式提供輸入資訊;將至少一部分電子輸入資訊轉換成光輸入向量;以及使用一組神經網路權重,基於矩陣乘法將光輸入向量轉換成輸出向量。提供操作和轉換操作在光電處理循環中執行,使用不同相應組神經網路權重和不同相應輸入資訊,在複數迭代中重複光電處理循環,並且光電處理循環包括:(1)至少兩次光調變操作,以及(2)(a)電求和操作或(b)電儲存操作中之至少一者。
在圖式和以下描述中闡述了在本揭露中所描述的主題的一或多個實施例的細節。根據說明書、圖式和申請專利範圍,本揭露的其他特徵、觀點和優點將變得顯而易見。
除非另外定義,否則此處所使用的所有技術和科學術語具有與所屬技術領域具有通常知識者通常理解的相同含義。如果與引用併入本文的專利申請或專利申請出版物相衝突,則以本揭露(包括定義)為準。
第1A圖顯示了人工神經網路(ANN)計算系統100的示意圖。ANN計算系統100包括控制器110、記憶體單元120、數位類比轉換器(DAC)單元130、光處理器140以及類比數位轉換器(ADC)單元160。控制器110耦接至電腦102、記憶體單元120、DAC單元130以及ADC單元160。控制器110包括積體電路,其被配置以控制ANN計算系統100的操作來執行ANN計算。
控制器110的積體電路可以是特別配置以執行ANN計算程序的步驟的特殊應用積體電路。舉例來說,積體電路可實現特定於執行ANN計算程序的微代碼或韌體。如此一來,控制器110可以具有相對於使用在習知電腦(例如電腦102)中的通用處理器的減少的指令集。在一些實施例中,控制器110的積體電路可包括兩個或多個電路,其被配置以執行ANN計算程序的不同步驟。
在ANN計算系統100的示例操作中,電腦102可以對ANN計算系統100發送人工神經網路計算請求。ANN計算請求可包括定義ANN的神經網路權重,以及由所提供的ANN處理的輸入資料集。控制器110接收ANN計算請求,並將輸入資料集和神經網路權重儲存在記憶體單元120中。
輸入資料集可對應ANN將要處理的各種數位資訊。輸入資料集的實施例包括影像檔案、音頻(audio) 檔案,光達點雲(LiDAR point cloud)和全球定位系統(Global Positioning System;GPS)坐標序列,並且將基於接收影像檔案作為輸入資料集來描述ANN計算系統100的操作。通常來說,輸入資料集的大小可以變化很大,從數百個資料點(data point)到數百萬個資料點或更大。舉例來說,具有1百萬像素(megapixel)解析度的數位影像檔案具有大約一百萬個像素,並且一百萬個像素中的每一個可以是由ANN處理的資料點。由於在典型輸入資料集中的大量資料點,輸入資料集通常被分成較小尺寸的多個數位輸入向量,以藉由光處理器140來個別地處理。作為示例,對於灰度數位影像(greyscale digital image),數位輸入向量的元素可為表示影像強度的8位元數值,並且數位輸入向量可具有範圍從數十元素(例如:32元素、64元素)到數百元素(例如:256元素、512元素)的長度。通常來說,任意大小的輸入資料集可以被分成適合用於由光學處理器140處理的大小的數位輸入向量。在輸入資料集的元素數量不能被數位輸入向量的長度整除的情況下,可以使用墊零(zero padding)來填充資料集,以使其可被數位輸入向量的長度整除。可以處理個別數位輸入向量的處理輸出以重建完整輸出,其為透過ANN處理輸入資料集的結果。在一些實施例中,可以使用塊矩陣乘法技術(block matrix multiplication technique)來實現將輸入資料集分成多個輸入向量和後續的向量級(vector-level)處理。
神經網路權重是一組數值,其定義ANN的人工神經元的連接性(connectivity),包括那些連接的相對重要性或權重。ANN可包括具有相應節點集的一或多個隱藏層。在具有單一隱藏層的ANN的情況下,ANN可以由兩組神經網路權重定義,一組對應輸入節點與隱藏層的節點之間的連接性,第二組對應隱藏層與輸出節點之間的連接性。描述連接性的每組神經網路權重對應於由光處理器140實行的矩陣。對於具有兩個或多個隱藏層的ANN,需要額外組的神經網路權重來定義額外隱藏層之間的連接性。如此一來,在通常情況下,ANN計算請求中包括的神經網路權重可包括多組神經網路權重,其表示ANN的各個層之間的連接性。
由於要處理的輸入資料集通常被分成用於個別處理的多個較小的數位輸入向量,因此輸入資料集通常儲存在數位記憶體中。然而,電腦102的記憶體和處理器之間的記憶體操作的速度明顯慢於ANN計算系統100可以執行ANN計算的速率。舉例來說,ANN計算系統100可以在電腦102的典型記憶體讀取周期期間執行數十個到數百個ANN計算。如此一來,在處理ANN計算請求的期間,如果ANN計算系統100的ANN計算涉及ANN計算系統100與電腦102之間的多個資料傳輸,則可被ANN計算系統100執行的ANN計算的速率可以被限制在其全部處理速率之下。舉例來說,如果電腦102要從它自己的記憶體存取輸入資料集,並且在請求時將數位輸入向量提供給控制器110,則ANN計算系統100的操作可能會因電腦102與控制器110之間所需的一系列資料傳輸所需的時間而大大減慢。值得注意的是,電腦102的記憶體存取延遲(latency)通常是非確定性的(non-deterministic),這進一步將可被提供給ANN計算系統100的數位輸入向量的速度複雜化並且降低其速度。此外,電腦102的處理器週期可能在管理電腦102與ANN計算系統100之間的資料傳輸時被浪費。
相反,在一些實施方式中,ANN計算系統100將整個輸入資料集儲存在記憶體單元120中,記憶體單元120是ANN計算系統100的一部分並且專用於ANN計算系統100。專用的記憶體單元120允許記憶體單元120與控制器110之間的交易(transaction)特別適於允許記憶體單元120與控制器110之間平滑且不間斷的資料流。藉由允許光處理器140以其全部處理速率執行矩陣乘法,而不受習知電腦(例如電腦102)的慢速記憶體器操作的限制,這種不間斷的資料流可以顯著地改善ANN計算系統100的總流通量。此外,因為在執行ANN計算中所需的所有資料是由電腦102在單一交易中提供給ANN計算系統100的,所以ANN計算系統100可以在獨立於電腦102的獨有方式執行其ANN計算。這種ANN計算系統100的獨有操作減輕了電腦102的計算負擔,並且消除了在ANN計算系統100的操作中的外部依賴性,提高了ANN計算系統100和電腦102的效能。
現在將描述ANN計算系統100的內部操作。光處理器140包括雷射單元142、調變器陣列144、偵測單元146以及光矩陣乘法(optical matrix multiplication;OMM)單元150。光處理器140藉由將長度N的數位輸入向量編碼到長度N的光輸入向量上並且透過OMM單元150傳播光輸入向量來進行操作。OMM單元150接收長度N的光輸入向量,並且在光域(optical domain)中對接收的光輸入向量上執行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將光輸入向量線性轉換成第二光訊號陣列。輸出波導156的陣列引導由光干涉單元154所輸出的第二光訊號陣列。輸入波導152的陣列中的至少一個輸入波導透過光干涉單元154與輸出波導156的陣列中的每一個輸出波導光學通訊。舉例來說,對於長度N的光輸入向量,OMM單元150可包括N個輸入波導152和N個輸出波導156。
光干涉單元可包括多個互連的馬赫曾德爾干涉儀(MZI)。第1C圖和第1D圖顯示了互連MZI的示例的配置157和158的示意圖。MZI可以以各種方式互連(例如在配置157或158中)以實現透過輸入波導152的陣列所接收的光輸入向量的線性轉換。
第1E圖顯示了MZI 170的示意圖。MZI 170包括第一輸入波導171、第二輸入波導172、第一輸出波導178以及第二輸出波導179。此外,多個互連的MZI中的每一個MZI 170包括第一相位移器174,第一相位移器174被配置以改變MZI 170的分離比(splitting ratio);以及第二相位移器176,被配置以位移MZI 170的一個輸出的相位,例如通過第二輸出波導179的離開MZI 170的光。MZI 170的第一相位移器174和第二相位移器176耦接至由DAC單元130所產生的多個權重控制訊號。第一相位移器174和第二相位移器176是OMM單元150的可重新配置元件的實施例。重新配置元件的實施例包括熱光相位移器(thermo-optic phase shifter)或電光相位移器(electro-optic phase shifter)。熱光相位移器藉由加熱波導來改變波導和包覆材料的折射率,從而轉換為相位的變化。電光相位移器藉由施加電場(例如:鈮酸鋰(LiNbO3 ),反向偏壓PN接面)或電流(例如:順向偏壓PIN接面)來操作,其改變了波導材料的折射率。藉由改變權重控制訊號,可以改變每一個互連的MZI 170的第一相位移器174和第二相位移器176的相位延遲,這重新配置OMM單元150的光干涉單元154以實現由在整個光干涉單元154上設置的相位延遲所確定的特定矩陣乘法。OMM單元150和光干涉單元154的額外實施例在標題為“用於光學神經網路的裝置和方法”的美國專利公開No.US 2017/0351293A1中揭露,其由引用完全併入本文。
藉由雷射單元142和調變器陣列144產生光輸入向量。長度N的光輸入向量具有N個獨立的光訊號,每一個光信號的強度對應長度N的數位輸入向量的相應元素的數值。作為示例,雷射單元142可以產生N個光輸出。N個光輸出具有相同的波長,並且是光學相干的(optically coherent)。光輸出的光學相干性允許光輸出彼此光干涉,這是OMM單元150所利用的特性(例如:在MZI的操作中)。此外,雷射單元142的光輸出可以彼此大抵相同。舉例來說,N個光輸出可在它們的強度(例如:在5%內、3%內、1%內、0.5%內、0.1%內或0.01%內)中和它們的相對相位(例如:在10度內、5度內、3度內、1度內、0.1度內)中為大抵均勻的。光輸出的均勻性可以改善光輸入向量對數位輸入向量的忠實性(faithfulness),從而改善光處理器140的整體精確度。在一些實施方式中,雷射單元142的光輸出可具有每個輸出0.1mW至50mW的光功率、近紅外光範圍的波長(例如:900nm至1600nm之間)以及小於1nm的線寬。雷射單元142的光輸出可以是單一橫向模態(transverse-mode)光輸出。
在一些實施例中,雷射單元142包括單一雷射源和光功率分離器(optical power splitter)。單一雷射源被配置以產生雷射光。光功率分離器被配置以將由雷射源所產生的光分成具有大抵相同強度和相位的N個光輸出。藉由將單一雷射輸出分成多個輸出,可以實現多個光輸出的光學相干性。舉例來說,單一雷射源可以是半導體雷射二極體、垂直腔表面發射雷射(vertical-cavity surface-emitting laser;VCSEL)、分佈回饋(distributed feedback;DFB)雷射或分佈式布拉格反射器(distributed Bragg reflector;DBR)雷射。舉例來說,光功率分離器可以是1:N多模式干涉(multimode interference;MMI)分離器、包括多個1:2 MMI分離器或定向耦合器的多級分離器(multi-stage splitter)、或星型耦合器(star coupler)。在一些其它實施例中,可使用主從雷射配置(master-slave laser configuration),其中從屬雷射由主要雷射注入鎖定(injection locked),以對主要雷射具有穩定的相位關係。
雷射單元142的光輸出耦接至調變器陣列144。調變器陣列144被配置以接收來自雷射單元142的光輸入,並且基於調變器控制訊號(其為電訊號)來調變所接收的光輸入的強度。調變器的實施例包括馬赫曾德爾干涉(MZI)調變器、環形共振調變器(ring resonator modulator)以及電吸收調變器(electro-absorption modulator)。調變器陣列144具有N個調變器,每一個調變器接收雷射單元142的N個光輸出中的一個。調變器接收對應數位輸入向量的元素的控制信號,並且調變光的強度。控制信號可由DAC單元130產生。
DAC單元130被配置以在控制器110的控制下產生多個調變器控制訊號並產生多個權重控制訊號。舉例來說,DAC單元130從控制器110接收第一DAC控制訊號,第一DAC控制信號對應將由光處理器140處理的數位輸入向量。DAC單元130基於第一DAC控制訊號產生調變器控制訊號,調變器控制訊號是適於驅動調變器陣列144和OMM單元150的類比訊號。舉例來說,類比訊號可以是電壓或電流,取決於調變器陣列144的調變器和OMM單元150的技術和設計。電壓可具有範圍從±0.1V到±10V的幅度,並且電流可具有範圍從100μA到100mA的幅度。在一些實施例中,DAC單元130可包括調變器驅動器,其被配置以緩衝、放大或調節類比訊號,使得調變器陣列144的調變器和OMM單元150可被充分驅動。舉例來說,某些類型的調變器可以用差分控制訊號驅動。在這種情況下,調變器驅動器可以是差分驅動器,其基於單端(single-ended)輸入訊號產生差分電輸出。作為另一實施例,某些類型的調變器可具有3dB帶寬,其小於光學處理器140的期望處理速率。在這種情況下,調變器驅動器可包括預加重電路(pre-emphasis circuit)或其他帶寬增強電路,其被設計以擴展調變器的操作帶寬。舉例來說,這種帶寬增強對於基於PIN二極體結構的調變器可以是有用的, PIN二極體結構是順向偏壓的,以使用載子注入來調變引導被調變的光波的波導的一部分的折射率。舉例來說,如果調變器是MZI調變器,則PIN二極體結構可用於在MZI調變器的一或兩個波導臂中實現相位移器。將相位移器配置為順向偏壓操作有利於較短的調變器長度和更緊湊的總體設計,這對於具有大量調變器的OMM單元150可能是有用的。
舉例來說,在帶寬增強的預加重形式(pre-emphasis form)中,可以將驅動調變器的類比電訊號(例如:電壓或電流)整形為包括瞬間脈衝(transient pulse),瞬間脈衝使類比訊號準位的變化過衝(overshoot),該類比訊號準位表示一系列數位資料值(digital data value)中的DAC控制訊號的給定數位資料值。每一個數位資料值可具有任意數量的位元,包括單一1位元資料值,如本示例其餘部分所假定的那樣。因此,如果位元的數值與先前的數值相同,則驅動調變器的類比電訊號被維持在穩態準位(steady-state level)(例如:位元值為0的訊號準位X0 和位元值為1的較高訊號準位X1 )。然而,如果位元從0變成1,則用於驅動調變器的對應類比電訊號可包括一個瞬間脈衝,該瞬間脈衝在穩定為穩態值X1 之前,在位元變遷(bit transition)的一開始具有峰值X1 +(X1 -X0 )。同樣地,如果位元從1變成0,則用於驅動調變器的對應類比電訊號可包括一個瞬間脈衝,該瞬間脈衝在穩定為穩態值X0 之前,在位元變遷的一開始具有峰值X0 +(X0 -X1 )。可以選擇瞬間脈衝的大小和長度以優化帶寬增強(例如:最大化不歸零(NRZ)調變模式的眼圖(eye diagram)的開放區域)。
在帶寬增強的電荷泵形式中,可以將驅動調變器的類比電流訊號整形為包括移動精確確定的電荷量的瞬間脈衝。第44圖顯示了電荷泵帶寬增強電路,電荷泵帶寬增強電路使用串聯連接在電壓源和調變器之間的電容來精確控制電荷流。第44圖所示的電路的一部分可包括在上面所述的調變器驅動器中。在此實施例中,調變器由調變器電路4400表示,調變器電路4400將調變器的相位移器的電特性建模為PIN二極體。調變器電路4400包括理想二極體、具有電容Cd 的電容以及具有電阻R的電阻的並聯連接。泵浦電容(pump capacitor)4402具有電容Cp 。控制電壓波形4404被提供給反相器電路(inverter circuit)4405,以產生驅動電壓波形4406,其幅度可以被精確地校正以透過泵浦電容4402將既定量的電荷移入或移出調變器電路4400。藉由在端子4408施加恆定電壓VDD_IO,對調變器電路4400建模的PIN二極體進行順向偏壓。在反相器電路4405的端子4410施加電荷泵控制電壓VCP,以控制在驅動電壓波形4406的變遷時泵浦的電荷量,以及由調變器施加的對應光相位移。
可以在操作之前調整電荷泵控制電壓VCP的數值,使得儲存在泵浦電容(電荷泵浦電容)4402中的標稱電荷(nominal charge)Q基於電容Cp 的測量值被精確地校正(例如:由於製造期間的不確定性,可能會有一些可變性(variability))。舉例來說,電荷泵控制電壓VCP可等於標稱電荷Q除以電容Cp 。與PIN二極體相交的一部分波導的折射率的變化結果可接著提供引導光波的相位移,相位移與在PIN二極體和泵浦電容(電荷泵電容)4402之間移動的電荷量Q(例如:透過內部電容Cd 儲存)成線性比例。如果驅動電壓從低值變為高值,則從電荷泵電容4402流入到PIN二極體的電流會在短時間內傳遞既定量的電荷(即正電流隨時間的積分)。如果驅動電壓從高值變為低值,則從電荷泵電容4402流入到PIN二極體的電流會在短時間內移除既定量的電荷(即負電流隨時間的積分)。在此相對短的開關時間(switching time)之後,由電流源4412提供穩態電流,電流源4412由開關4414控制,以替換由於在保持驅動電壓的同時內部電容通過內部電阻R損失電流而丟失的電荷(例如:在特定數位值的保持時間期間)。使用這種電荷泵配置可具有優點,例如比其他技術(包括一些預加重技術)更好的精度,因為在短開關時間內移動的電荷量取決於恆定的物理參數(C=)和穩態控制值(VCP) ,並因此精確可控且可重複。
在一些實施例中,可藉由設計調變器陣列144的調變器及/或OMM單元150來實現降低的功耗,使得當操作調變器以產生表示更常出現的係數的調變值時消耗更少的功率,並且當操作調變器以產生表示更不常出現的係數的調變值時消耗更多的功率。舉例來說,對於已知具有某些特性的某些資料集,可以降低功耗。第42圖顯示了用於調變器陣列144的調變器及/或OMM單元150的特定設計的疊加在調變器功率圖4202(實線)上的調變值機率分佈圖4200(虛線)。這兩個圖都是以標準化單位(normalized unit)表示的調變值(在水平軸上)的函數,以代表-1和1之間的係數。在此實施例中,資料集包括用於人工神經網路計算的各種係數(例如:向量係數及/或矩陣係數),使得係數的機率分佈函數(probability distribution functio;PDF)對於較小的係數(即絕對值相對較小的係數)產生較高的機率(並因此實例更加頻繁)。對於這種資料集(“低係數權重資料集”),可以藉由設計調變器以達到降低的功耗,使得調變器在較低功率狀態下操作以使用較小的係數(在資料集中出現的頻率較高)進行計算,而在較高功率狀態下操作以使用較大的係數(在資料集中出現的頻率較低)進行計算。
一些光幅度調變器使用相對較高的功率以藉由小的調變值來調變光訊號。舉例來說,對於相干非敏感光幅度調變器,接近零的調變值可能需要相對較高的調變器功率,例如對於電吸收調變器,電吸收調變器需要以相對較高的電流來驅動基於二極體的吸收器,以大吸收光功率,以降低調變光訊號的光幅度。對於相干敏感光幅度調變器,接近零的調變值可能需要相對較高的調變器功率,例如對於MZI調變器,MZI調變器需要以相對較高的電流來驅動基於二極體的相位移器,以在兩個MZI臂之間提供用於破壞性光干涉的相對相位移,從而降低了調變訊號的光幅度。
可以配置光幅度調變器以克服此功率關係並實現如第42圖所示的調變器功率,其將低功率調變器狀態分配至接近零的調變值。舉例來說,如第43圖所示,MZI調變器4300可被配置具有不對稱臂,不對稱臂提供內置被動相對相位移(built-in passive relative phase shift)(例如:180度附近的相位移),使得對於破壞性光干涉僅需要較小的主動相對相位移(並因此需要低調變器功率)。MZI調變器4300包括輸入光分離器4302,其將進入的光訊號分離以將50%的功率提供給第一臂,並且將50%的功率提供給第二臂。第一臂中的主動相位移器4304提供了一種使用可變相位移以在可能值(possible value)(在此實施例中,對於在0和1之間的無號調變值)的範圍內改變調變值的方法。可變相位移是基於施加的電訊號的大小確定的,其要求一定量的供應電功率(例如:由在第一臂的波導之內或附近的摻雜半導體材料形成的基於二極體的相位移器)。即使沒有電力施加到MZI調變器4300,第二臂中的被動相位移器4306也提供在第一臂和第二臂之間的相對相位移。舉例來說,具有高折射率的光學材料可被配置以在臂之間施加180度的相對相位移,使得輸出光組合器4308提供光干涉,使得沒有明顯的光功率耦接到其輸出。可以實現主動相位移器和被動相位移器的多種替代配置,包括(但不限於):主動相位移器和被動相位移器兩者可在一個臂中,而另一臂中沒有調變器或相位移器;兩個臂都可具有主動相位移器和被動相位移器(在推挽式佈置(push-pull arrangement)中);或兩個臂都可具有主動相位移器,而一個臂可以具有被動相位移器。
替代地,根據此處所述的對稱差分配置來配置的MZI調變器可用於僅使用小主動相對相位移(並因此低調變器功率)來提供接近零的係數。舉例來說, 第22A圖顯示了使用根據對稱差分配置來配置的MZI所構建的光幅度調變器,其中如第22B圖所示偵測光輸出。低調變功率用於執行具有低幅度(即絕對值)的調變值的乘法(使用光幅度調變)。具體地,施加到相位調變器2204的低功率對應低幅度調變值的調變,從而在耦合器2206的輸出中產生對應接近均等的分裂,並且在接面2216產生低幅度電流,代表乘法的結果。對稱差分配置還具有能夠提供-1至+1之間的有號調變值的優勢(如下面更詳細的描述)。儘管此實實施立在MZI的單一臂中使用了相位調變器,但其他實施力可具有其他配置,例如在兩個臂中都具有相位調變器的推挽式佈置,以提供相反符號的相位移。
在第42圖中所示的功率分佈顯示了零調變功率被用於實現零調變值,但是在其他實施例中,在零調變值可能存在殘留低但非零的調變功率。對於這些低係數權重資料集,通常可藉由使用調變器來實現降低的功耗,調變器被設計使得調變器使用相對調變值的絕對值增加的功率藉由調變值調變光訊號。隨著調變值的大小增加,隨著調變值而變化的調變功率的精確形狀對於不同的實現例可能有所不同,並且不一定是線性增加。光幅度調變器中可能存在不同功耗元件,它們佔了總體功耗。在一些實施例中,調變器被設計為使得它們使用相對於調變值的絕對值單調增加的功率,藉由調變值來調變光訊號。
在一些情況下,調變器陣列144的調變器及/或OMM單元150可具有非線性傳遞函數。舉例來說,MZI光調變器可以在施加的控制電壓與其傳輸之間具有非線性關係(例如:正弦依賴性(sinusoidal dependence))。在這種情況下,可以基於調變器的非線性傳遞函數來調整或補償第一DAC控制訊號,使得數位輸入向量與所產生的光輸入向量之間的線性關係可被保持。保持這種線性通常對於確保OMM單元150的輸入是數位輸入向量的精確表示是重要的。在一些實施例中,第一DAC控制訊號的補償可以由控制器110通過查找表來執行,查找表將數位輸入向量的數值映射到DAC單元130所要輸出的數值,使得得到的調變的光訊號與數位輸入向量的元素成線性比例。可以藉由表徵(characterizing)調變器的非線性傳遞函數並且計算非線性傳遞函數的反函數(inverse function)來產生查找表。
在一些實施例中,調變器的非線性和在所產生的光輸入向量中所得到的非線性可以藉由ANN計算演算法來補償。
由調變器陣列144所產生的光輸入向量被輸入至OMM單元150。光輸入向量可以是N個空間分離的光訊號,其每一個光訊號具有對應數位輸入向量的元素的光功率。舉例來說,光訊號的光功率通常在1μW至10mW的範圍內。OMM單元150接收光輸入向量,並且基於其內部配置執行N×N矩陣乘法。內部配置由DAC單元130所產生的電訊號來控制。舉例來說,DAC單元130從控制器110接收第二DAC控制訊號,第二DAC控制訊號對應將由OMM單元150實行的神經網路權重。DAC單元130基於第二DAC控制訊號產生權重控制訊號,權重控制訊號是適於控制OMM單元150內的可重新配置元件的類比訊號。舉例來說,類比訊號可以是電壓或電流,取決於OMM單元150的重新配置元件的類型。電壓可具有範圍從0.1V到10V的幅度,並且電流可具有範圍從100μA到10mA的幅度。
調變器陣列144可以以與可重新配置OMM單元150的重新配置速率不同的調變速率來操作。由調變器陣列144產生的光輸入向量以光速的大抵比例(例如:光速的80%、50%或25%)傳播通過OMM單元,這取決於OMM單元150的光學特質(例如:有效折射率(effective index))。對於典型的OMM單元150,光輸入向量的傳播時間在1到數10皮秒的範圍內,其對應於處理速率的數10到數100GHz。如此一來,光處理器140可以執行矩陣乘法操作的速率部分地受到可以產生光輸入向量的速率的限制。具有數10GHz的帶寬的調變器是容易獲得的,並且具有超過100GHz的帶寬的調變器正在開發。如此一來,調變器陣列144的調變速率可以在5GHz、8GHz或數10GHz至數100GHz的範圍內。為了以這樣的調變速率維持調變器陣列144的操作,控制器110的機體電路可被配置以大於或等於5GHz、8GHz、10GHz、20GHz、25GHz、50GHz或100 GHz的速率來輸出用於DAC單元130的控制訊號。
取決於由OMM單元150實現的可重新配置元件的類型,OMM單元150的重新配置速率可以明顯慢於調變速率。舉例來說,OMM單元150的可重新配置元件可以是熱光型,其使用微加熱器來調整OMM單元150的光波導的溫度,其反過來影響OMM單元150內的光訊號的相位並且導致矩陣乘法。由於與結構的加熱和冷卻相關的熱時間常數(thermal time constant),重新配置速率可以被限制為數100kHz至數10MHz。如此一來,用於控制調變器陣列144的調變器控制訊號和用於重新配置OMM單元150的權重控制訊號可能具有顯著不同的速度要求。此外,調變器陣列144的電特性可以與OMM單元150的可重新配置元件的電特性顯著不同。
為了適應調變器控制訊號和權重控制訊號的不同特性,在一些實施例中,DAC單元130可包括第一DAC子單元132和第二DAC子單元134。第一DAC子單元132可被具體設置以產生調變器控制訊號,第二DAC子單元134可被具體設置以產生權重控制訊號。舉例來說,調變器陣列144的調變速率可以是25GHz,並且第一DAC子單元132可具有每秒25千兆採樣(giga-samples per second;GSPS)的每一個通道輸出更新速率(per-channel output update rate)和8位元或更高的解析度。OMM單元150的重新配置速率可以是1MHz,並且第二DAC子單元134可具有每秒1兆採樣(mega-samples per second;MSPS)的輸出更新速率和10位元的解析度。實現分開的第一DAC子單元132和第二DAC子單元134允許針對相應信號獨立優化DAC子單元,這可以降低DAC單元130的總功率消耗、複雜性、成本或其組合。值得注意的是,雖然第一DAC子單元132和第二DAC子單元134被描述為DAC單元130的子元件,但是通常來說,第一DAC子單元132和第二DAC子單元134可以整合成在公共晶片(common chi)上,或者可以實現為分開的晶片。
基於第一DAC子單元132和第二DAC子單元134的不同特性,在一些實施例中,記憶體單元120可包括第一記憶體子單元和第二記憶體子單元。第一記憶體子單元可以是專用於儲存輸入資料集和數位輸入向量的記憶體,並且可具有足以支持調變速率的操作速度。第二記憶體子單元可以是專用於儲存神經網路權重的記憶體,並且可以具有足以支持OMM單元150的重配置速率的操作速度。在一些實施例中,第一記憶體子單元可使用靜態隨機存取記憶體(Static Random Access Memory;SRAM)來實施,並且第二記憶體子單元可使用動態隨機存取記憶體(Dynamic Random Access Memory;DRAM)來實施。在一些實施例中,第一記憶體子單元和第二記憶體子單元可使用DRAM來實施。在一些實施例中,第一記憶體單元可實施作為控制器110的一部分或作為快取(cache)。在一些實施例中中,第一和第二記憶體子單元可以由單一物理記憶體裝置作為不同的位址空間來實施。
OMM單元150輸出長度N的光輸出向量,其對應於光輸入向量和神經網路權重的N×N矩陣乘法的結果。OMM單元150耦接至偵測單元146,偵測單元146被配置以產生對應光輸出向量的N個光訊號的N個輸出電壓。舉例來說,偵測單元146可包括N個光偵測器的陣列,其被配置以吸收光訊號並產生光電流,以及N個跨阻抗放大器(transimpedance amplifier)的陣列,其被配置以將光電流轉換成輸出電壓。可以基於調變器陣列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的半導體晶粒上。作為另一實施例,可以將兩個或多個電子部件整合成系統單晶片(System-on-Chip;SoC)。在系統單晶片的實施例中,控制器110、記憶體器單元120、DAC單元130、ADC單元160可以製造在相應的晶粒上,並且相應的晶粒可以整合在提供整合部件之間的電性連接的公共平台(例如:插入器)上。相對於在印刷電路板(printed circuit board;PCB)上分開地佈置和繞線部件的方法,這種系統單晶片方法可以允許ANN計算系統100的電子部件之間更快的資料傳輸,從而提高ANN計算系統100的操作速度。此外,系統單晶片方法可以允許使用用於不同電子部件優化的不同製造技術,其可以改善不同部件的效能並且降低單片整合方法的總體成本。雖然已經描述了控制器110、記憶體單元120、DAC單元130以及ADC單元160的整合,但是通常來說,可以整合部件的子集,而由於各種原因(例如校能或成本)將其他部件實現為分離部件。舉例來說,在一些實施例中,記憶體單元120可與控制器110整合為控制器110內的功能塊(functional block)。
ANN計算系統100的各種光學部件也可以以各種方式整合。ANN計算系統100的光學部件的實施例包括雷射單元142、調變器陣列144、OMM單元150以及偵測單元146的光偵測器。這些光學部件可以以各種方式整合,以改善效能及/或降低成本。舉例來說,雷射單元142、調變器陣列144、OMM單元150以及光偵測器可以單片地整合在作為光子積體電路(photonic integrated circuit;PIC)的公共半導體基板上。在基於化合物半導體材料系統(例如: III-V族化合物半導體(例如磷化銦(InP)))形成的光子積體電路上,雷射、調變器(例如電吸收調變器)、波導以及光偵測器可以單片地整合在單一晶粒上。這種單片整合方法可以降低對準各種分離光學部件的輸入和輸出的複雜性,這可能需要從亞微米(sub-micron)到幾微米的對準精確度。作為另一實施例,雷射單元142的雷射源可以製造在化合物半導體晶粒上,而雷射單元142的光功率分離器、調變器陣列144、OMM單元150以及偵測單元146的光偵測器可以製造在矽晶粒上。在矽晶圓上製造的PIC(可稱為矽光子技術)相對於基於III-V族的PIC,通常具有更高的整合密度、更高的微影解析度和更低的成本。這種更大的整合密度在OMM單元150的製造中可能是有益的,因為OMM單元150通常包括數10到數100的光學部件,例如功率分離器和相位移器。此外,矽光子技術的較高微影解析度可以減少OMM單元150的製程變化,從而提高OMM單元150的精確度。
ANN計算系統100可以以各種形式因素實現。舉例來說,ANN計算系統100可以實現為插入主電腦(host computer)的協同處理器(co-processor)。這種ANN計算系統100可具有快速周邊組件互連(Peripheral Component Interconnect Express;PCI Express)卡的形式因素並且透過PCIe匯流排與主電腦通訊。主電腦可以主持(host)多個協同處理器類型的ANN計算系統100,並透過網路連接至電腦102。這種類型的實施例可適用於雲端資料中心,其中伺服器機架可以專用於處理從其他電腦或伺服器接收的ANN計算請求。作為另一實施例,協同處理器類型的ANN計算系統100可以直接插入發出ANN計算請求的電腦102中。
在一些實施例中,ANN計算系統100可以整合至需要實時ANN計算能力的物理系統上。舉例來說,嚴重依賴於實時人工智慧任務(real-time artificial intelligence task)的系統(例如自動駕駛載具、自主無人機(autonomous drone)、物體或臉部識別安全照相機以及各種物聯網(Internet-of-Things;IoT)裝置)可以受益於使ANN計算系統100直接與這種系統的其他子系統整合。具有直接整合的ANN計算系統100可以在具有較差或沒有網路連接的設備中執行實時人工智慧,並且增強關鍵任務人工智慧系統的可靠性和可用性。
雖然DAC單元130和ADC單元160被顯示耦接至控制器110,但是在一些實施例中,DAC單元130、ADC單元160或兩者可替代地或另外地耦接至記憶體單元120。舉例來說,DAC單元130或ADC單元160的直接記憶體存取(direct memory access;DMA)操作可以減少控制器110上的計算負擔,並且減少讀取和寫入記憶體單元120的延遲,從而進一步提高ANN計算單元100的操作速度。
第2圖顯示了用於執行ANN計算的程序200的流程圖。程序200的步驟可以由控制器110執行。在一些實施例中,程序200的各個步驟可以並行、組合、循環或以任何順序運行。
在步驟210,接收包括輸入資料集和第一多個神經網路權重的人工神經網路(ANN)計算請求。輸入資料集包括第一數位輸入向量。第一個數位輸入向量是輸入資料集的子集。舉例來說,它可以是影像的子區域。ANN計算請求可以由各種實體(例如電腦102)產生。電腦可包括各種類型的計算裝置中的一或多個,例如個人電腦、伺服器電腦、載具電腦(vehicle computer)和飛行電腦(flight computer)。ANN計算請求通常是指通知或告知要執行ANN計算的ANN計算系統100的電訊號。在一些實施例中,ANN計算請求可以被分為兩個或多個訊號。舉例來說,第一訊號可以詢問(query)ANN計算系統100以檢查ANN計算系統100是否準備好接收輸入資料集和第一多個神經網路權重。響應於ANN計算系統100的肯定應答,電腦可以發送包括輸入資料集和第一多個神經網路權重的第二訊號。
在步驟220中,儲存輸入資料集和第一多個神經網路權重。控制器110可以將輸入資料集和第一多個神經網路權重儲存在記憶體單元120中。在記憶體單元120中儲存輸入資料集和第一多個神經網路權重可以允許ANN計算系統100的操作中的靈活性,例如可以改善系統的整體效能。舉例來說,藉由從記憶體單元120檢索(retrieve)輸入資料集的期望部分,可以將輸入資料集分為設定大小和格式的數位輸入向量。輸入資料集的不同部分可以以各種順序處理,或者被混洗(shuffled),以允許執行各種類型的ANN計算。舉例來說,在輸入和輸出矩陣大小不同的情況下,混洗可以允許藉由塊矩陣乘法技術執行矩陣乘法。作為另一實施例,將輸入資料集和第一多個神經網路權重儲存在記憶體單元120中可以允許藉由ANN計算系統100對多個ANN計算請求進行排隊,這可以允許ANN計算系統100以其全速維持操作而沒有不活動的時段。
在一些實施例中,輸入資料集可以儲存在第一記憶體子單元中,並且第一多個神經網路權重可以儲存在第二記憶體子單元中。
在步驟230中,基於第一數位輸入向量產生第一多個調變器控制訊號,並且基於第一多個神經網路權重產生第一多個權重控制訊號。控制器110可以將第一DAC控制訊號發送至DAC單元130,以產生第一多個調變器控制訊號。DAC單元130基於第一DAC控制訊號產生第一多個調變器控制訊號,並且調變器陣列144產生表示第一數位輸入向量的光輸入向量。
第一DAC控制訊號可包括將要由DAC單元130轉換成第一多個調變器控制訊號的多個數位值。多個數位值通常對應第一數位輸入向量,並且可以透過各種數學關係或查找表來關聯。舉例來說,多個數位值可以與第一數位輸入向量的元素的數值成線性比例。作為另一實施例,多個數位值可以透過查找表與第一數位輸入向量的元素關聯,該查找表被配置以維持數位輸入向量與由調變器陣列144產生的光輸入向量之間的線性關係。
控制器110可以將第二DAC控制訊號發送至DAC單元130,以產生第一多個權重控制訊號。DAC單元130基於第二DAC控制訊號產生第一多個權重控制訊號,並且根據第一多個權重控制訊號重新配置OMM單元150,實現對應第一多個神經網路權重的矩陣。
第二DAC控制訊號可包括將要由DAC單元130轉換成第一多個權重控制訊號的多個數位值。多個數位值通常對應第一多個神經網路權重,並且可以透過各種數學關係或查找表來關聯。舉例來說,多個數位值可以與第一多個神經網路權重成線性比例。作為另一實施例,多個數位值可以藉由對第一多個神經網路權重執行各種數學操作來計算,以產生權重控制訊號,權重控制信號可以配置OMM單元150以執行對應第一多個神經網路權重的矩陣乘法。
在一些實施例中,表示矩陣M的第一多個神經網路權重可以通過奇異值分解(singular value decomposition;SVD)方法被分解成M=USV*,其中U是M×M么正矩陣,S是在對角線上具有非負實數的MxN對角矩陣,並且V*是N×N么正矩陣V的共軛複數。在這種情況下,第一多個權重控制訊號可包括與矩陣V對應的第一多個OMM單元控制訊號,以及與矩陣S對應的第二多個OMM單元控制訊號。進一步來說,OMM單元150可被配置以具有被配置為實現矩陣V的第一OMM子單元,被配置以實現矩陣S的第二OMM子單元,以及被配置以實現矩陣U的第三OMM子單元,使得OMM單元150作為整體實現矩陣M。SVD方法在標題為“用於光學神經網路的裝置和方法”的美國專利公開No.US 2017/0351293A1中進一步描述,其由引用完全併入本文。
在步驟240中,得到對應光矩陣乘法單元的光輸出向量的第一多個數位光輸出。由調變器陣列144所產生的光輸入向量由OMM單元150處理並且轉換為光輸出向量。光輸出向量由偵測單元146偵測並且轉換成電訊號,該電訊號可由ADC單元160轉換成數位值。控制器110可以將轉換請求發送至ADC單元160,以開始將偵測單元146輸出的電壓轉換為數位光輸出。一旦轉換完成,ADC單元160可將轉換結果發送至控制器110。或者,控制器110可以從ADC單元160檢索轉換結果。控制器110可以從數位光輸出形成數位輸出向量,該數位輸出向量對應輸入數位向量的矩陣乘法的結果。舉例來說,數位光輸出可以被組織或連接(concatenated)以具有向量格式。
在一些實施例中,可基於由控制器110將DAC控制訊號發出到DAC單元130,來設定或控制ADC單元160以執行ADC轉換。舉例來說,ADC轉換可以被設定以在DAC單元130產生調變控制訊號之後的預設時間開始。ADC轉換的這種控制可以簡化控制器110的操作並且減少必要的控制操作的數量。
在步驟250中,對第一數位輸出向量執行非線性轉換以產生第一轉換數位輸出向量。ANN的節點或人工神經元藉由首先執行從先前層的節點接收的訊號的權重總和,然後執行權重總和的非線性轉換(“激活”)以產生輸出來進行操作。各種類型的ANN可以實現各種類型的可微分的非線性轉換。非線性轉換函數的實施例包括修正線性單元(rectified linear unit;RELU)函數、Sigmoid函數、雙曲正切函數(yperbolic tangent function),X^2函數以及|X|函數。由控制器110對第一數位輸出執行這種非線性轉換,以產生第一轉換數位輸出向量。在一些實施例中,非線性轉換可由控制器110內的專用數位積體電路執行。舉例來說,控制器110可包括一或多個模組或電路塊,其特別適於加速一或多種類型的非線性轉換的計算。
在步驟260中,儲存第一轉換數位輸出向量。控制器110可以將第一轉換數位輸出向量儲存在記憶體單元120中。在輸入資料集被分成多個數位輸入向量的情況下,第一轉換數位輸出向量對應輸入資料集的一部分的ANN計算結果,例如第一數位輸入向量。如此一來,儲存第一轉換數位輸出向量允許ANN計算系統100在輸入資料集的其他數位輸入向量上執行和儲存額外計算,以在稍後被聚合成單一ANN輸出。
在步驟270中,輸出基於第一轉換數位輸出向量產生的人工神經網路輸出。控制器110產生ANN輸出,其是透過由第一多個神經網路權重所定義的ANN處理輸入資料集的結果。在輸入資料集被分成多個數位輸入向量的情況下,所產生的ANN輸出是包括第一轉換數位輸出的聚合輸出,但是可更包括對應輸入資料集的其他部分的額外轉換數位輸出。一旦產生ANN輸出,就將所產生的輸出發送至發起ANN計算請求的電腦(例如電腦102)。
可以為實現程序200的ANN計算系統100定義各種效能指標(performance metric)。定義效能指標可以允許將實現光處理器140的ANN計算系統100的效能與用於替代實現電矩陣乘法單元(electronic matrix multiplication unit)的ANN計算的其他系統的效能進行比較。在一個觀點中,可以執行ANN計算的速率可以部分地由第一循環週期指示,第一循環週期定義為在記憶體單元中儲存輸入資料集和第一多個神經網路權重的步驟220與在記憶體單元中儲存第一轉換數位輸出向量的步驟260之間所經過的時間。因此,第一循環週期包括將電訊號轉換成光訊號(例如:步驟230)、在光域中執行矩陣乘法、以及將結果轉換回電域(例如:步驟240)所花費的時間。步驟220和260都涉及將資料儲存至記憶體單元120中,這是在ANN計算系統100和沒有光處理器140的習知ANN計算系統之間共享的步驟。如此一來,測量記憶體到記憶體交易時間(memory-to-memory transaction time)的第一循環週期可以允許在ANN計算系統100與沒有光處理器140的ANN計算系統(例如實現電矩陣乘法單元的系統)之間進行ANN計算流通量的實際或公平比較。
由於調變器陣列144可以產生光輸入向量的速率(例如:在25GHz)和OMM單元150的處理速率(例如:>100GHz),用於執行單一數位輸入向量的單一ANN計算的ANN計算系統100的第一循環週期可以接近調變器陣列144的速度的倒數(例如40ps)。在考慮與DAC單元130的訊號產生和ADC單元160的ADC轉換相關聯的延遲之後,第一循環週期可以小於或等於100ps、小於或等於200ps、小於或等於500ps、小於或等於1ns、小於或等於2ns、小於或等於5ns、或小於或等於10ns。
作為比較,電矩陣乘法單元的M×1向量和M×M矩陣的乘法執行時間通常與M^2-1個處理器時鐘週期(processor clock cycle)成比例。對於M=32,這種乘法將花費大約1024個週期,其在3GHz時鐘速度下導致執行時間超過300ns,這比ANN計算系統100的第一循環週期慢幾個數量級。
在一些實施例中,程序200更包括基於第一轉換數位輸出向量產生第二多個調變器控制訊號的步驟。在一些類型的ANN計算中,單一數位輸入向量可以透過相同的ANN重複傳播或由相同的ANN處理。實現多次通過處理(multi-pass processing)的ANN可以稱為遞歸神經網路(recurrent neural network;RNN)。RNN是神經網路,其中在第(k)次通過神經網路期間網路的輸出被再循環回到神經網路的輸入並且在第(k+1)次通過期間被用作輸入。RNN可以在圖案識別任務中具有各種應用,例如語音或手寫識別。一旦產生了第二多個調變器控制信號,程序200就可以從步驟240進行到步驟260,以完成第一數位輸入向量通過ANN的第二次。通常來說,根據在ANN計算請求中所接收的RNN的特性,將轉換的數位輸出作為數位輸入向量的再循環可以重複預定數量的循環。
在一些實施例中,程序200更包括基於第二多個神經網路權重產生第二多個權重控制訊號的步驟。在一些情況下,人工神經網路計算請求更包括第二多個神經網路權重。通常來說,除了輸入層和輸出層之外,ANN還具有一或多個隱藏層。對於具有兩個隱藏層的ANN,第二多個神經網路權重可對應ANN的第一層與ANN的第二層之間的連接性。為了透過ANN的兩個隱藏層處理第一數位輸入向量,可以首先根據程序200處理第一數位輸入向量直到步驟260,其中在步驟260透過ANN的第一隱藏層處理第一數位輸入向量的結果儲存在記憶體單元120中。接著控制器110重新配置OMM單元150以執行對應與ANN的第二隱藏層相關聯的第二多個神經網路權重的矩陣乘法。一旦OMM單元150被重新配置,程序200可以基於第一轉換數位輸出向量產生多個調變器控制訊號,其產生對應第一隱藏層的輸出的更新的光輸入向量。接著更新的光輸入向量由重新配置的OMM單元150處理,OMM單元150對應ANN的第二隱藏層。通常來說,所述的步驟可以重複直到已經透過ANN的所有隱藏層處理了數位輸入向量。
如上面所述,在OMM單元150的一些實施例中,OMM單元150的重新配置速率可明顯慢於調變器陣列144的調變速率。在這種情況下,ANN計算系統100的流通量可能受到在其不能執行ANN計算的期間,重新配置OMM單元150所花費的時間量的不利影響。為了減輕OMM單元150的相對慢的重新配置時間的影響,可以利用批量處理(batch processing)技術,其中兩個或多個數位輸入向量傳播通過OMM單元150而沒有配置改變,以分攤(amortize)重新配置時間在更大數量的數位輸入向量上。
第2B圖顯示了說明第2A圖的程序200的示意圖290。對於具有兩個隱藏層的ANN,代替透過第一隱藏層處理第一數位輸入向量、重新配置OMM單元150用於第二隱藏層、透過重新配置的OMM單元150處理第一數位輸入向量、以及對剩餘的數位輸入向量重複相同的操作,可以首先透過對第一隱藏層(配置#1)配置的OMM單元150來處理輸入資料集的所有數位輸入向量,如示意圖290的上部所示。一旦藉由具有配置#1的OMM單元150處理了所有數位輸入向量,則將OMM單元150重新配置成配置#2,其對應ANN的第二隱藏層。此重新配置可以明顯慢於OMM單元150可以處理的輸入向量的速率。一旦OMM單元150被重新配置用於第二隱藏層,來自先前隱藏層的輸出向量可以由OMM單元150批量處理。對於具有數十或數十萬個數位輸入向量的大輸入資料集,可以藉由大致相同的因素來減少重新配置時間的影響,這可以顯著減少ANN計算系統100在重新配置中花費的時間部分。
為了實現批量處理,在一些實施例中,程序200更包括透過DAC單元基於第二數位輸入向量產生第二多個調變器控制訊號的步驟;從ADC單元得到對應光矩陣乘法單元的光輸出向量的第二多個數位光輸出的步驟,第二多個數位光輸出形成第二數位輸出向量;對第二數位輸出向量執行非線性轉換以產生第二轉換數位輸出向量的步驟;以及在記憶體單元中儲存第二轉換數位輸出向量的步驟。舉例來說,產生第二多個調變器控制訊號可以在步驟260之後。此外,在這種情況下的步驟270的ANN輸出現在是基於第一轉換數位輸出向量和第二轉換數位輸出向量。獲取、執行和儲存步驟類似於步驟240到步驟260。
批量處理技術是用於提高ANN計算系統100的流通量的多種技術之一。用於提高ANN計算系統100的流通量的另一種技術是透過利用波長分波多路複用(wavelength division multiplexing;WDM)並行處理多個數位輸入向量。WDM是透過公共傳播通道(例如OMM單元150的波導)同時傳播不同波長的多個光訊號的技術。與電訊號不同,不同波長的光訊號可以透過公共通道傳播,而不會影響在同一通道上不同波長的其他光訊號。此外,可以使用諸如光學多路複用器(multiplexer)和多路分解器(demultiplexer)的公知結構從公共傳播通道添加(多路複用(multiplexed))或丟棄(多路分解(demultiplexed))光訊號。
在ANN計算系統100的背景下,不同波長的多個光輸入向量可以獨立地產生、同時傳播通過OMM單元150、以及獨立地檢測以增強ANN計算系統100的流通量。參照第1F圖,顯示了波長分波多路複用(WDM)人工神經網路(ANN)計算系統104的示意圖。除非另外描述,否則WDM ANN計算系統104類似於ANN計算系統100。為了實現WDM技術,在WDM ANN計算系統104的一些實施例中,雷射單元142被配置以產生多個波長,例如λ1、λ2以及λ3。多個波長可以優選地藉由足夠大的波長間隔分開,以允許容易地多路複用和多路分解到公共傳播通道上。舉例來說,大於0.5nm、1.0nm、2.0nm、3.0nm或5.0nm的波長間隔可以允許簡單的多路複用和多路分解。另一方面,多個波長的最短波長與最長波長之間的範圍(“WDM帶寬”)可以優選地足夠小,使得OMM單元150的特性或效能在多個波長上保持大抵相同。光學部件通常是分散的(dispersive),這意味著它們的光學特性隨著波長而變化。舉例來說,MZI的功率分離比可以隨著波長而變化。然而,藉由將OMM單元150設計成具有足夠大的操作波長窗口(operating wavelength window),並且藉由將波長限制在操作波長窗口內,由OMM單元150在每一個波長所輸出的光輸出向量可以是由OMM單元150實現的矩陣乘法的足夠精確的結果。操作波長窗口可以是1nm、2nm、3nm、4nm、5nm、10nm或20nm。
第39A圖顯示了可用於調變光訊號的幅度的馬赫曾德爾調變器3900的示意圖。馬赫曾德爾調變器3900包括兩個1×2端口多模式干涉耦合器(MMI_1x2)3902a和3902b、兩個平衡的臂(arm)3904a和3904b、以及一個臂中的相位移器3906(或每一個臂中的一個相位移器)。當透過訊號線3908將電壓施加到一個臂中的相位移器時,在兩個臂3904a與3904b之間將存在將要轉換為幅度調變的相位差。1x2端口多模式干涉耦合器3902a和3902b以及相位移器3906被配置以寬帶(broadband)光子部件,並且兩個臂3904a和3904b的光路徑長度被配置為相等。這使馬赫曾德爾調變器3900能夠在寬波長範圍內工作。
第39B圖是曲線圖3910,其顯示了對於波長1530nm、1550nm以及1570nm使用在第39A圖中所示的配置的馬赫曾德爾調變器3900的強度-電壓曲線圖。曲線圖3910顯示了馬赫曾德爾調變器3900對於1530nm至1570nm範圍內的不同波長具有類似的強度-電壓特性。
返回參照第1F圖,WDM ANN計算系統104的調變器陣列144包括光調變器組(banks of optical modulators),其被配置以產生多個光輸入向量,每一組對應於多個波長之一者並且產生具有相應波長的相應光輸入向量。舉例來說,對於具有長度為32和3個波長(例如:λ1、λ2和λ3)的光輸入向量的系統,調變器陣列144可以具有每一組32個調變器的3個組。此外,調變器陣列144更還包括光多路複用器,其被配置以將多個光輸入向量組合成包括多個波長的組合光輸入向量。舉例來說,光多路複用器可以將三個不同波長的三個調變器組的輸出組合成光輸入向量的每個元素的單一傳播通道(例如波導)。如此一來,返回上面的實施例,組合光輸入向量將具有32個光訊號,每一個訊號包括3個波長。
此外,WDM ANN計算系統104的偵測單元146更被配置以多路分解多個波長並且產生多個多路分解的輸出電壓。舉例來說,偵測單元146可包括多路分解器,其被配置以多路分解包括在多波長光輸出向量的32個訊號中的每個訊號中的三個波長,並且將3個單一波長光輸出向量路由(route)到耦接到三組跨阻抗放大器的三組光偵測器。
此外,WDM ANN計算系統104的ADC單元160包括ADC組,其被配置以轉換偵測單元146的多個多路分解的輸出電壓。每一組對應多個波長中的一個,並且產生相應數位多路分解光輸出。舉例來說,ADC組可以耦接至偵測單元146的跨阻抗放大器組。
控制器110可以實現類似於程序200的方法,但是擴展為支持多波長操作。舉例來說,該方法可包括從ADC單元160得到多個數位多路分解光輸出的步驟,多個數位多路分解光輸出形成多個第一數位輸出向量,其中多個第一數位輸出向量中的每一者對應多個波長中的一者;對多個第一數位輸出向量中的每一者執行非線性轉換,以產生多個轉換第一數位輸出向量的步驟;以及在記憶體單元中儲存多個轉換第一數位輸出向量的步驟。
在一些情況下,可以專門設計ANN,並且可以具體地形成數位輸入向量,使得可以在不進行多路分解的情況下偵測多波長光輸出向量。在這種情況下,偵測單元146可以是波長非敏感(wavelength-insensitive)的偵測單元,其不會多路分解多波長光輸出向量的多個波長。如此一來,偵測單元146的每一個光偵測器有效地將光訊號的多個波長加到單一光電流中,並且偵測單元146輸出的每一個電壓對應多個數位輸入向量的矩陣乘法結果的元素對元素總和(element-by-element sum)。
到目前為止,作為ANN計算的一部分所執行的權重總和的非線性轉換是藉由控制器110在數位域(digital domain)中執行的。在一些情況下,非線性轉換可能是計算密集的或耗功率的,顯著地增加了控制器110的複雜性,或者在流通量或功率效率方面限制了ANN計算系統100的效能。如此一來,在ANN計算系統的一些實施例中,可以透過類比電子裝置在類比域(analog domain)中執行非線性轉換。
第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得到的第一轉換電壓作為第一轉換數位輸出向量儲存在記憶體單元120中。
可以以各種方式實現類比非線性單元310。舉例來說,在回饋配置中的高增益放大器、具有可調整參考電壓、二極體的非線性IV特性、二極管的崩潰特性(breakdown behavior)、可變電容的非線性CV特性或可變電阻的非線性IV特性的比較器可用來實現類比非線性單元310。
使用類比非線性單元310可以藉由減少在數位域中執行的步驟來改善ANN計算系統300的效能,例如流通量或功率效率。將非線性轉換步驟移出數位域可以允許ANN計算系統的操作中的額外的靈活性和改進。舉例來說,在遞歸神經網路中,OMM單元150的輸出被激活,並且再循環回到OMM單元150的輸入。激活步驟由ANN計算系統100中的控制器110執行,這需要在每次通過OMM單元150時數位化偵測單元146的輸出電壓。然而,因為激活步驟現在在ADC單元160的數位化之前執行,所以可以減少在執行遞歸神經網路計算中所需的ADC轉換的次數。
在一些實施例中,類比非線性單元310可以整合到ADC單元160中作為非線性ADC單元。舉例來說,非線性ADC單元可以是具有非線性查找表的線性ADC單元,其將線性ADC單元的線性數位輸出映射到所期望的非線性轉換數位輸出。
第3B圖顯示了ANN計算系統302的示意圖。ANN計算系統302類似於第3A圖的ANN計算系統300,不同之處在於它更包括類比記憶體單元320。類比記憶體單元320耦接至DAC單元130(例如:透過第一DAC子單元132)、調變器陣列144和類比非線性單元310。類比記憶體單元320包括多路複用器,其具有耦接至DAC單元130的第一輸入和耦接至類比非線性單元310的第二輸入。這允許類比記憶體單元320從DAC單元130或類比非線性單元310接收訊號。類比記憶體單元320被配置以儲存類比電壓並且輸出所儲存的類比電壓。
可以以各種方式實現類比記憶體單元320。舉例來說,電容陣列可以用作類比電壓儲存元件。類比記憶體元320的電容可以藉由充電電路被充電至輸入電壓。可以基於從控制器110接收的控制訊號來控制輸入電壓的儲存。電容可以與周圍環境電性隔離,以減少導致電容不希望的放電的電荷漏電。另外地(或替代地),回饋放大器可用以維持儲存在電容上的電壓。可以藉由緩衝放大器讀出電容的儲存電壓,這允許保持由電容儲存的電荷,同時輸出儲存電壓。類比記憶體單元320的這些方面可類似於取樣保持電路(sample and hold circuit)的操作。緩衝放大器可以實現用於驅動調變器陣列144的調變器驅動器的功能。
現在將描述ANN計算系統302的操作。由DAC單元130(例如:由第一DAC子單元132)輸出的第一多個調變器控制訊號首先透過類比記憶體單元320輸入至調變器陣列144。在此步驟中,類比記憶體單元320可以簡單地傳遞或緩衝第一多個調變器控制訊號。調變器陣列144基於第一多個調變器控制訊號產生光輸入向量,其透過OMM單元150傳播並由偵測單元146偵測。偵測單元146的輸出電壓由類比非線性單元310非線性轉換。此時,代替由ADC單元160數位化,偵測單元146的輸出電壓由類比記憶體單元320儲存,其接著輸出到調變器陣列144,以被轉換成將要透過OMM單元150傳播的下一個光輸入向量。在控制器110的控制下,可以在預設時間量或預設數量的循環執行該遞歸處理(recurrent processing)。一旦對於給定數位輸入向量完成了遞歸處理,類比非線性單元310的轉換輸出電壓就由ADC單元160轉換。
類比記憶體單元320的使用可以顯著減少在遞歸神經網路計算期間的ADC轉換的數量,例如降低到對於每次給定數位輸入向量的RNN計算一個單一ADC轉換。每一次ADC轉換都需要一段時間,並且消耗一定的能量。如此一來,ANN計算系統302的RNN計算的流通量可以高於ANN計算系統100的RNN計算的流通量。
可以藉由控制類比記憶體單元320來控制遞歸神經網路計算的執行。舉例來說,控制器可以控制類比記憶體單元320在特定時間儲存電壓,並在不同時間輸出儲存的電壓。如此一來,從類比記憶體320到調變器陣列144通過類比非線性單元310並且回到類比記憶體單元320的訊號循環可以藉由控制器控制比記憶體單元320的儲存和讀出來控制。
如此一來,在一些實施例中,ANN計算系統302的控制器110可以執行以下步驟:基於產生第一多個調變器控制訊號和第一多個權重控制訊號,透過類比記憶體單元儲存類比非線性單元的多個轉換輸出電壓;透過類比記憶體單元輸出儲存的轉換輸出電壓;從ADC單元得到第二多個轉換數位輸出電壓,第二多個轉換數位輸出電壓形成第二轉換數位輸出向量;以及在記憶體單元中儲存第二轉換數位輸出向量。
由ANN計算系統處理的輸入資料集通常包括具有接析度大於1位元的資料。舉例來說,灰度數位影像的通常像素可具有8位元的解析度,即256個不同的準位。在光域中表示和處理該資料的一種方式是將256個不同強度準位的像素編碼作為輸入到OMM單元150的光訊號的256個不同功率準位。光信號本質上是類比訊號,因此容易受雜訊和偵測誤差的影響。返回參照第1A圖,為了在整個ANN計算系統100中保持數位輸入向量的8位元解析度,並且在ADC單元160的輸出產生真實的8位元數位光輸出,訊號鏈(signal chain)的每個部分可以優選地設計成再現(reproduce)和8位元解析度。
舉例來說,DAC單元130可以優選地被設計為支持將8位元數位輸入向量轉換成至少8位元解析度的調變器控制訊號,使得調變器陣列144可以產生忠實地表示數位輸入向量的8位元的光輸入向量。通常來說,調變器控制訊號可能需要具有超過數位輸入向量的8位元的額外解析度,以補償調變器陣列144的非線性響應。此外,OMM單元150的內部配置可以優選地足夠穩定,以確保光輸出向量的數值不會被OMM單元150的配置的任何波動破壞。舉例來說,OMM單元150的溫度可能需要穩定在5度、2度、1度或0.1度內。此外,偵測單元146可以優選地具有足夠低的雜訊以不破壞光輸出向量的8位元解析度,並且ADC單元160可以優選地被設計以支持具有至少8位元解析度的類比電壓的數位化。
各種電子部件的功率消耗和設計複雜性通常隨著位元解析度、操作速度和帶寬而增加。舉例來說,作為第一階近似(first-order approximation),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接收二進制(binary)數位輸出,並且將二進制訊號調節成適合於驅動調變器陣列144的二階(two-level)電壓或電流輸出。
比較器單元460被配置以將偵測單元146的輸出電壓轉換為數位1位元光輸出。舉例來說,比較器單元460的比較電路可以從偵測單元146接收電壓、將電壓與預設閾值電壓進行比較,以及當接收電壓分別小於或大於預設閾值電壓時,輸出數位0或1。
參照第4B圖,顯示了ANN計算系統400的操作的數學表示。現在將參照第4B圖描述ANN計算系統400的操作。對於由ANN計算系統400所要執行的給定ANN計算,存在對應的數位輸入向量V和神經網路權重矩陣U。在此實施例中,輸入矢量V是具有元素V0 到V3 的長度4的向量,並且矩陣U是具有權重U00 到U33 的4×4矩陣。向量V的每個元素具有4位元的解析度。每一個4位元向量元素具有分別對應2^0到2^3個位置的第0位元(位元0)到第3位元(位元3)。如此一來,藉由2^0* bit0 +2^1* bit1 +2^2* bit2 +2^3* bit3 的總和來計算4位元向量元素的十進制(decimal)(基數10)值。因此,如圖所示,輸入向量V可以類似地由控制器110分解為Vbit0 至Vbit3
接著,可以藉由執行1位元向量的一系列矩陣乘法,接著對個別矩陣乘法結果求和來執行特定ANN計算。舉例來說,藉由透過驅動器單元430產生對應4個1位元輸入向量的4個1位元調變器控制訊號的序列,可以將分解的輸入向量Vbit0 到Vbit3 中的每一個與矩陣U相乘。這又產生4個1位元光輸入向量的序列,其傳播通過OMM單元150,OMM單元150被配置以透過驅動器單元430實現矩陣U的矩陣乘法。接著,控制器110可以從比較器單元460得到對應4個1位元調變器控制訊號的序列的4個數位1位元光輸出的序列。
在將4位元向量分解為4個1位元向量的情況下,每一個向量應該由ANN計算系統400處理,其速度是其他ANN計算系統(例如ANN計算系統100)可以處理單一個4位元向量的速度的四倍,以保持相同的有效ANN計算流通量。這種增加的內部處理速度可以被視為將4個1位元向量分時多工(time-division multiplexing)到用於處理4位元向量的單一時槽(timeslot)中。處理速度所需的增加可以至少部分地藉由驅動器單元430和比較器單元460相對於DAC單元130和ADC單元160的增加的操作速度來實現,因為訊號轉換處理的解析度的降低通常造成可實現的訊號轉換速率的增加。
雖然在1位元操作中的訊號轉換速率增加了四倍,但是相對於4位元操作,功率消耗結果可以顯著降低。如上面所述,訊號轉換處理的功率消耗通常隨著位元解析度指數地縮放,同時隨著轉換速率線性地縮放。如此一來,每次轉換功率降低16倍可能是由於位元解析度降低4倍,接著是轉換速率增加4倍的結果。總而言之,通過ANN計算系統400可以在ANN計算系統100之上實現操作功率的4倍減小,同時保持相同的有效ANN計算流通量。
接著,控制器110可以藉由將每一個數位1位元光輸出乘以相應的權重2^0到2^3,從4個數位1位元光輸出建構4位元數位輸出向量。一旦建構了4位元數位輸出向量,就可以藉由對所建構的4位元數位輸出向量執行非線性轉換來進行ANN計算,以產生轉換4位元數位輸出向量;以及在記憶體單元120中儲存轉換4位元數位輸出向量。
替代地(或另外地),在一些實施例中,可以對4個數位1位元光輸出中的每一者進行非線性轉換。舉例來說,階梯函數非線性函數(step-function nonlinear function)可以用於非線性轉換。接著可以從非線性轉換的數位1位元光輸出建構出轉換4位元數位輸出向量。
雖然已經顯示並描述了個別的ANN計算系統400,但通常來說,第1A圖的ANN計算系統100可以被設計以實現類似於ANN計算系統400的功能。舉例來說,DAC單元130可包括1位元DAC子單元,其被配置以產生1位元調變器控制訊號,並且ADC單元160可以被設計為具有1位元的解析度。這種1位元ADC可以與比較器類似或有效地等價於比較器。
此外,雖然已經描述了具有1位元內部解析度的ANN計算系統的操作,但通常來說,ANN計算系統的內部解析度可以降低到低於輸入資料集的N位解析度的中間準位。舉例來說,內部解析度可以減少到2^Y位元,其中Y是大於或等於0的整數。
本揭露所述的實施例和功能操作可以在數位電子電路中實現,或者在電腦軟體、韌體或硬體中實現,其包括本揭露中的結構及其結構等價物,或者其中的一或多個組合。本揭露所述的實施例和功能操作可以使用在電腦可讀媒體上所編碼的一或多個電腦程式指令模組來實現,以由資料處理裝置來執行或控制資料處理裝置的操作。電腦可讀媒體可以是製造產品(例如電腦系統中的硬碟驅動器或通過零售管道銷售的光碟)或嵌入式系統。計算機可讀介質可以個別地獲取並隨後使用電腦程式指令的一或多個模組進行編碼,例如藉由有線或無線網路傳送電腦程式指令的一或多個模組。電腦可讀媒體可以是機器可讀儲存裝置、機器可讀儲存基板、記憶體裝置或它們中的一或多個的組合。
電腦程式(亦稱為程式、軟體、軟體應用、腳本(script)或代碼)可以用任何形式的程式語言編寫,包括編譯或直譯語言、宣告(declarative)或程序(procedural)語言,並且可以配置在任何形式,包括作為獨立程式(stand alone program)或作為模組、部件、子程式或適用於計算環境的其他單元。電腦程式不一定對應於檔案系統中的檔案。程式可以儲存在保存其他程式或資料(例如:儲存在標記式語言文檔(markup language document)中的一或多個腳本)的檔案的一部分中、儲存在專用於所討論的程式的單一檔案中、或儲存在多個協調檔案(multiple coordinated file)(例如:儲存一或多個模組、子程式或代碼部分的檔案)中。電腦程式可被配置以執行在一個電腦上或在位於一個站點或分佈在多個站點並藉由通訊網路互連的多個電腦上。
本揭露中所述的處理和邏輯流程可以由執行一或多個電腦程式的一或多個可程式處理器(programmable processor)執行,以藉由對輸入資料進行操作並產生輸出來執行功能。處理和邏輯流程也可由專用邏輯電路(special purpose logic circuitry)執行,並且裝置也可以實現為專用邏輯電路,例如現場可程式閘陣列(field programmable gate array;FPGA)或特殊應用積體電路(ASIC)。
雖然本揭露包含許多實現細節,但是這些不應被解釋為對本揭露的範圍或申請範圍的限制,而是作為對本揭露的特定實施例的特定特徵的描述。在個別實施例的上下文的本揭露中所描述的某些特徵也可以在單一實施例中組合實現。相對來說,在單一實施例的上下文中所描述的各種特徵也可以個別地在多個實施例或以任何合適的子組合中實現。此外,儘管上面的特徵被描述作用於某些組合並且甚至最初如此請求保護,但是在某些情況下,可以從所請求保護的組合中移除一或多個特徵,並且所請求保護的組合可以指向子組合或子組合的變化。
相似地,雖然在圖式中以特定順序描述了操作,但這不應被理解為要求以所示的特定順序或按順序執行這些操作,或者執行所有顯示的操作以實現期望的結果。在某些情況下,多任務處理和並行處理可能是有利的。此外,不應將上述實施例中的各種系統部件的分離理解為在所有實施例中都需要這樣的分離,並且應理解所述的程式部件和系統通常可以整合在單一軟體產品中或者打包到多個軟體產品中。
因此,已經描述了本揭露的特定實施例。其他實施例在以下請求項的範圍內。另外,請求項中所載的動作可以以不同的順序執行並仍實現期望的結果。舉例來說,第1A圖中的光矩陣乘法單元150包括光學干涉單元154,其包括多個互連的馬赫曾德爾干涉。在一些實施例中,光干涉單元可以使用幾乎不消耗功率的一維、二維或三維被動繞射光學元件(passive diffractive optical element)來實現。與包括馬赫曾德爾干涉儀的光干涉單元相比,如果輸入/輸出的數量保持不變,則使用被動繞射光學元件的光干涉單元可具有更小的尺寸,或者對於相同的晶片尺寸可以處理更大數量的輸入/輸出。與馬赫曾德爾干涉儀相比,可以以更低的成本製造被動繞射光學元件。
參照第5圖,在一些實施例中,人工神經網路計算系統500包括控制器110、記憶體單元120、DAC單元506、光處理器504以及ADC單元160。記憶體單元120和ADC單元160類似於第1A圖中的人工神經網路計算系統100的對應部件。光處理器504被配置以使用光學部件執行矩陣計算。在人工神經網路計算系統500中,光矩陣乘法單元502的權重是固定的。DAC單元506類似於第1A圖的人工神經網路計算系統100的第一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包括二維繞射光學元件,並且可以實現為被動整合矽光子晶片(passive integrated silicon photonic chip)。光矩陣乘法單元502可被配置以實現繞射神經網路,並且可以在幾乎零功率消耗下執行矩陣乘法。
光處理器504藉由將長度N的數位輸入向量編碼到長度N的光輸入向量上,並且透過OMM單元502傳播光輸入向量來進行操作。OMM單元502接收長度N的光輸入向量,並且在光域中對接收的光輸入向量執行N×N矩陣乘法。由OMM單元502執行的N×N矩陣乘法由OMM單元502的內部配置來確定。OMM單元502的內部配置包括繞射光學元件的尺寸、位置和幾何形狀,以及雜質的摻雜(如果有的話)。
可以以各種方式實現OMM單元502。第6圖顯示了使用二維繞射元件陣列的OMM單元502的示意圖。OMM單元502可包括輸入波導602的陣列以接收光輸入向量、與輸入波導602的陣列光學通訊的二維的光干涉單元600,以及與光干涉單元600光學通訊的輸出波導604的陣列。光干涉單元600包括多個繞射光學元件,並且執行光輸入向量到第二光訊號陣列的轉換(例如:線性轉換)。輸出波導604的陣列引導由光干涉單元600輸出的第二光訊號陣列。輸入波導602的陣列中的至少一個輸入波導透過光干涉單元600與輸出波導604的陣列中的每一個輸出波導光學通訊。舉例來說,對於長度N的光輸入向量,OMM單元502可包括N個輸入波導602和N個輸出波導604。
在一些實施例中,光干涉單元600包括具有繞射元件的基板,繞射元件以二維(例如:以2D陣列)佈置。舉例來說,可以在基板中鑽出或蝕刻多個圓形孔洞。這些孔洞具有與輸入光的波長相當的數量級的尺寸,使得光被孔洞(或定義孔洞的結構)繞射。舉例來說,孔洞的尺寸可以在100nm至2μm的範圍內。孔洞可以具有相同或不同的尺寸。孔洞還可以具有其他剖面形狀,例如三角形、正方形、矩形、六邊形或不規則形狀。基板可以由對於輸入光為透明或半透明的材料製成,例如相對於輸入光具有1%至99%的透射率。舉例來說,基板可以由矽、氧化矽、氮化矽、石英、晶體(例如:鈮酸鋰(LiNbO3 ))、III-V族材料(例如砷化鎵或磷化銦),鉺改性的半導體(erbium modified semiconductor)或聚合物製成。
在一些實施例中,全息方法(holographic method)可用於在基板中形成二維繞射光學元件。基板可以由玻璃、晶體或光折射材料(photorefractive material)製成。
在設計OMM單元502時,我們在二維(例如:X方向和Y方向)中考慮繞射元件的尺寸和位置,而不考慮繞射元件在第三維中的相對位置(例如:Z方向)。每一個繞射元件可以是形成在基板中的三維結構,例如具有一定深度的孔洞、柱狀物或條帶(stripe)。
在第6圖中,繞射光學元件由圓形表示。繞射光學元件還可具有其他形狀,例如三角形、正方形、矩形或不規則形狀。繞射光學元件可具有各種尺寸。繞射光學元件不必位於網格點(grid point)上,它們的位置可以改變。第6圖中的示意圖僅用於說明之目的。實際的繞射光學元件可以與圖中所示的不同。繞射光學元件的不同佈置可用於實現不同的矩陣計算,例如不同的矩陣乘法函數。
可以使用優化處理來確定繞射光學元件的配置。舉例來說,基板可以分成像素陣列,並且每個像素可被填充基板材料(無孔洞)或被填充空氣(孔洞)。可以迭代地修改像素的配置,並且對於像素的每個配置,可以藉由使光通過繞射光學元件並評估輸出來執行模擬。在執行像素的所有可能配置的模擬之後,選擇提供最接近所期望的矩陣處理的結果的配置作為OMM單元502的繞射光學元件配置。
作為另一實施例,繞射元件最初被配置為孔洞陣列。孔洞的位置、尺寸和形狀可以與它們的初始配置稍微不同。可以迭代地調整每個孔洞的參數,並且可以執行模擬以找到孔洞的優化配置。
在一些實施例中,機器學習處理用於設計繞射光學元件。確定像素如何影響輸入光以產生輸出光的分析函數,並且使用優化處理(例如:梯度下降方法(gradient descent method))來確定像素的最佳配置。
在一些實施例中,OMM單元502可實施作為使用者可變部件(user-changeable component),並且可以為不同應用安裝具有不同光干涉單元600的不同OMM單元502。舉例來說,ANN計算系統500可以被配置作為光學字符識別系統,並且光干涉單元600可被配置以實現用於執行光學字符識別的神經網路。舉例來說,第一OMM單元可具有第一光干涉單元,第一光干涉單元包括被動繞射光學元件,其被配置以針對第一組書面語言和字體實現用於光學字符識別引擎的第一神經網路。第二OMM單元可以具有第二光干涉單元,第二光干涉單元包括被動繞射光學元件,其被配置以針對第二組書面語言和字體等實現用於光學字符識別引擎的第二神經網路。當使用者想要使用ANN計算系統500將光學字符識別應用於第一組書面語言和字體時,使用者可以將第一OMM單元插入至系統中。當使用者想要使用ANN計算系統500將光學字符識別應用於第二組書面語言和字體時,使用者可以換出第一OMM單元並且將第二OMM單元插入至系統中。
舉例來說,ANN計算系統500可被配置作為語音識別系統,並且光干涉單元600可被配置作以實現用於執行語音識別的神經網路。舉例來說,第一OMM單元可具有第一光干涉單元,第一光干涉單元包括被動繞射光學元件,其被配置以針對第一口語實現用於語音識別引擎的第一神經網路。第二OMM單元可以具有第二光干涉單元,第二光干涉單元包括被動繞射光學元件,其被配置以針對第二口語等實現用於語音識別引擎的第二神經網路。當使用者想要使用ANN計算系統500來識別第一口語中的語音時,使用者可以將第一OMM單元插入至系統中。當使用者想要使用ANN計算系統500來識別第二口語中的語音時,使用者可以換出第一OMM單元並且將第二OMM單元插入至系統中。
舉例來說,ANN計算系統500可以是自動駕駛載具的控制單元的一部分,並且光干涉單元600可以配置以實現用於執行道路狀況識別的神經網路。舉例來說,第一OMM單元可具有第一光干涉單元,第一光干涉單元包括被動繞射光學元件,其被配置以實現用於識別在美國的道路狀況(包括路標)的第一神經網路。第二OMM單元可以具有第二光干涉單元,第二光干涉單元包括被動繞射光學元件,其被配置以實現用於識別在加拿大的道路狀況(包括路標)的第二神經網路。第三OMM單元可以具有第三光干涉單元,第三光干涉單元包括被動繞射光學元件,其被配置以實現用於識別在墨西哥等的道路狀況(包括路標)的第三神經網路。當在美國使用自動駕駛載具時,將第一OMM單元插入至系統中。當自動駕駛載具越過邊界並進入加拿大時,第一OMM單元被換出,並且第二OMM單元被插入至系統中。另一方面,當自動駕駛載具越過邊界並進入墨西哥時,第一OMM單元被換出,並且第三OMM單元被插入至系統中。
舉例來說,ANN計算系統500可用於基因測序(genetic sequencing)。可以使用卷積神經網路對DNA序列進行分類,其使用包括被動繞射光學元件的ANN計算系統500來實現。舉例來說,ANN計算系統500可以實現用於區分腫瘤類型、預測腫瘤等級(tumor grade)、以及從基因表現模式(gene expression pattern)預測患者存活的神經網路。舉例來說,ANN計算系統500可以實現用於識別對所分析的特性最具預測性的基因或特徵的子集的神經網路。舉例來說,ANN計算系統500可以實現用於從基因子集的數據圖(profile)預測或推斷所有基因的表達水平(expression level)的神經網路。舉例來說,ANN計算系統500可以實現用於表觀基因分析(epigenomic analyses)的神經網路,例如預測轉錄因子結合位點(transcription factor binding site)、增強子區域(enhancer region)和來自基因序列的染色質可接近性(chromatin accessibility)。舉例來說,ANN計算系統500可以實現用於捕獲基因序列內的結構的神經網路。
舉例來說,ANN計算系統500可被配置作為醫療診斷系統,並且OMM單元502可被配置以實現用於分析生理參數(physiological parameter)以對疾病執行篩查的神經網路。舉例來說,ANN計算系統500可被配置作為細菌偵測系統,並且OMM單元502可被配置以實現用於分析DNA序列以偵測某些細菌菌株的乘法函數。
在一些實施例中,OMM單元502包括保護具有繞射光學元件的基板的外殼(例如:匣盒(cartridge))。外殼支持耦接到輸入波導602的輸入介面,以及耦接到輸出波導604的輸出介面。輸入介面被配置以接收來自調變器陣列144的輸出,並且輸出介面被配置以將OMM單元502的輸出發送到偵測單元146。OMM單元502可以被設計作為適合由普通消費者處理的模組,允許使用者容易地從一個OMM單元502切換到另一個OMM單元502。機器學習技術隨著時間而改進。使用者可藉由換出舊OMM單元502,並且插入新的升級版本來升級ANN計算系統500。
類似於光學壓縮碟(optical compact disc)可以儲存可由CD播放器檢索的數位資訊的方式,OMM單元可以儲存可在光處理器中使用的神經網路配置。正如光學壓縮碟是用於向消費者分發數位資訊(包括音頻、視頻以及軟體程式)的低成本媒體一樣,OMM單元可以是用於向消費者分發預配置神經網路或矩陣處理功能(例如:乘法、卷積或任何其他線性操作)的低成本媒體。
在一些實施例中,ANN計算系統500是光學計算平台,其被配置為可由不同公司所提供的OMM單元一起操作。這允許不同公司為各種應用開發不同的被動光學神經網路。被動光學神經網路以標準化包裝出售給最終使用者,其可被安裝在光學計算平台中以允許ANN計算系統500執行各種智慧功能。
在一些實施例中,系統可以具有用於支撐多個OMM單元502的保持器機構,並且可以提供機械處理機構以用於自動交換OMM單元502。系統確定當前應用需要哪個OMM單元502,並且使用機械處理機構從保持器機構自動檢索適當的OMM單元並將其插入光處理器504。
對於特定尺寸的光學晶片,與使用主動干涉儀(例如馬赫曾德爾干涉儀)相比,可以裝配更多的被動繞射元件在基板上。例如,使用馬赫曾德爾干涉儀的第1B圖中的光干涉單元154可以被配置以處理200×200矩陣乘法,而具有相同總尺寸並且使用被動繞射元件的光干涉單元600可以被配置以處理5000×5000矩陣乘法。
被動繞射光學元件幾乎不消耗功率,因此OMM單元502可用於低功率裝置,例如電池操作裝置。OMM單元502適用於邊緣計算(edge computing)。舉例來說,OMM單元502可用於智能感測器中,其中來自感測器的原始資料使用了使用OMM單元502的光處理器來處理。智能感測器可被配置以處理後的資料發送到中央電腦伺服器,從而減少發送到中央電腦伺服器的原始資料量。藉由在智能感測器上放置智慧處理功能,可以更早地偵測故障和異常並更有效地處理。OMM單元502適用於需要處理大矩陣乘法的應用。OMM單元502適用於已經訓練過神經網路並且已經確定了權重的應用,並且不需要修改。
其中形成繞射光學元件的基板可以是平面的或彎曲的。在第6A圖的實施例中,輸入光從左側進入光干涉單元600,並且輸出光從右側離開光干涉單元600(術語“左”、“右”、“上”和“下”參照圖式中所示的方向”)。在一些實施例中,被動繞射光學元件可以被配置以使得一些輸出光從上部或下部離開光干涉單元,或者左、右、上以及下的任何組合離開光干涉單元600。用於光干涉單元600的基板可具有各種形狀,例如正方形、矩形、三角形、圓形或橢圓形。光干涉單元600可包括反射元件或反射鏡以重定向光傳播方向。
在一些實施例中,可藉由在偵測單元146與ADC單元160之間加入類比非線性單元310來修改人工神經網路計算系統500。類比非線性單元310被配置以從偵測單元146接收輸出電壓、應用非線性傳遞函數、以及將轉換輸出電壓輸出到ADC單元160。控制器110可以從ADC單元160得到對應轉換輸出電壓的轉換數位輸出電壓。因為從ADC單元160得到的數位輸出電壓已經被非線性轉換(“激活”),所以可以省略控制器110的非線性轉換步驟,從而減少了控制器110的計算負擔。接著,可以將從ADC單元160直接得到的第一轉換電壓作為第一轉換數位輸出向量儲存在記憶體單元120中。
可以使用以三維佈置的被動繞射光學元件來實現光干涉單元。參照第7圖,在一些實施例中,人工神經網路計算系統700具有光處理器702,其包括三維的OOM單元708。人工神經網路計算系統700包括記憶體單元120和ADC單元160,其類似於第5圖中的人工神經網路計算系統500的對應部件。光學處理器702被配置以使用以三維佈置的繞射光學元件來執行矩陣計算。
光處理器702包括雷射單元704,其被配置以輸出二維光束陣列714,以及二維的調變器陣列706,其被配置以調變二維光束陣列714以產生調變二維光束陣列716。光處理器702包括光矩陣乘法(OMM)單元708,其具有三維佈置的繞射光學元件,並且被配置以處理調變的二維光束陣列716並產生二維陣列的輸出光束718。光處理器702包括具有二維光感測器陣列的偵測單元710,以偵測二維輸出光束陣列718。ADC單元160將偵測單元710的輸出轉換為數位訊號。
舉例來說,3D的OMM單元708可以實現作為被動整合矽光子柱或立方體。光矩陣乘法單元708可以被配置以實現繞射神經元網路,並且可以在幾乎零功率消耗下執行矩陣乘法。
有許多方法對輸入資料進行編碼以用於光處理器702。舉例來說,長度為N×N的數位輸入向量可以被編碼到大小為N×N的光輸入矩陣上,其透過OMM單元708傳播。OMM單元708在光域中對接收的光輸入矩陣執行(N×N)×(N×N)矩陣乘法。由OMM單元708執行的(N×N)×(N×N)矩陣乘法由OMM單元708的內部配置來確定,內部配置包括繞射光學元件的尺寸、位置和幾何形狀,以及雜質的摻雜(如果有的話)。
可以以各種方式實現OMM單元708。第8圖顯示了使用繞射元件的三維佈置的OMM單元708的示意圖。OMM單元708可包括用於接收光輸入矩陣802的輸入波導矩陣、與輸入波導矩陣光學通訊的三維的光干涉單元804,以及與光干涉單元804光學通訊的輸出波導矩陣,用於提供光輸出矩陣806。光干涉單元804包括多個繞射光學元件,並且執行光學輸入(例如:N×N向量或矩陣)到光學輸出(例如:N×N向量或矩陣)的轉換(例如:線性轉換)。輸出波導矩陣引導光干涉單元804輸出的光訊號。輸入波導矩陣中的至少一個輸入波導透過光干涉單元804與輸出波導矩陣中的每一個輸出波導光學通訊。舉例來說,對於長度N×N的光輸入向量,OMM單元708可包括N×N個輸入波導和N×N個輸出波導。
在一些實施例中,光干涉單元804包括具有繞射元件的基板塊,其繞射元件以三維(例如:以3D矩陣)佈置。舉例來說,可以在多個基板切片中的每一著中鑽出或蝕刻多個孔洞,並且可以組合多個基板切片以形成基板塊。這些孔洞具有與輸入光的波長相當的數量級的尺寸,使得光被孔洞(或定義孔洞的結構)繞射。孔洞可以具有相同或不同的尺寸。孔洞還可以具有其他剖面形狀,例如三角形、正方形、矩形、六邊形或不規則形狀。在一些實施例中,全息方法可用於在整個基板塊中形成三維繞射光學元件。基板可以由對於輸入光為透明或半透明的材料製成,例如相對於輸入光具有1%至99%的透射率。
當設計OMM單元708時,我們考慮繞射元件在x、y和z方向上的尺寸和位置。可以使用優化處理來確定繞射光學元件的配置。舉例來說,基板塊可以分成三維像素矩陣,並且每個像素可被填充基板材料(無孔洞)或被填充空氣(孔洞)。可以迭代地修改像素的配置,並且對於像素的每個配置,可以藉由使光通過繞射光學元件並評估輸出來執行模擬。在執行像素的所有可能配置的模擬之後,選擇提供最接近所期望的矩陣處理的結果的配置作為OMM單元708的繞射光學元件配置。
作為另一實施例,繞射元件最初被配置為三維孔洞矩陣。孔洞的位置、尺寸和形狀可以與它們的初始配置稍微不同。可以迭代地調整每個孔洞的參數,並且可以執行模擬以找到孔洞的優化配置。
在一些實施例中,機器學習處理用於設計三維繞射光學元件。確定像素如何影響輸入光以產生輸出光的分析函數,並且使用梯度下降方法來確定像素的最佳配置。
在一些實施例中,OMM單元708可實施作為使用者可變部件,並且可以為不同應用安裝具有不同光干涉單元804的不同OMM單元708。舉例來說,人工神經網路計算系統700可被配置作為醫療診斷系統,並且光干涉單元804可被配置以實現用於分析生理參數以對疾病執行篩查的神經網路。舉例來說,第一OMM單元可具有第一光干涉單元,第一光干涉單元包括3D被動繞射光學元件,其被配置以實現用於篩選第一組疾病的第一神經網路。第二OMM單元可具有第二光干涉單元,第二光干涉單元包括3D被動繞射光學元件,其被配置以實現用於篩選第二組疾病的第二神經網路等。第一和第二OMM單元可以由專門開發用於篩選不同疾病的技術的不同公司來開發。當使用者想要使用人工神經網路計算系統700來識別第一組疾病時,使用者可以將第一OMM單元插入至系統中。當使用者想要使用人工神經網路計算系統700來識別第二組疾病時,使用者可以換出第一OMM單元並且將第二OMM單元插入至系統中。
舉例來說,人工神經網路計算系統700可被配置作為光學字符識別系統,並且光干涉單元804可被配置以實現用於執行光學字符識別的神經網路。舉例來說,人工神經網路計算系統700可被配置作為語音識別系統,並且光干涉單元804可被配置以實現用於執行語音識別的神經網路。舉例來說,人工神經網路計算系統700可以是自動駕駛載具的控制單元的一部分,並且光干涉單元804可以配置以實現用於執行道路狀況識別的神經網路。
舉例來說,人工神經網路計算系統700可用於基因測序。可以使用卷積神經網路對DNA序列進行分類,其使用包括被動繞射光學元件的人工神經網路計算系統700來實現。舉例來說,人工神經網路計算系統700可以實現用於區分腫瘤類型、預測腫瘤等級、以及從基因表現模式預測患者存活的神經網路。舉例來說,人工神經網路計算系統700可以實現用於識別對所分析的特性最具預測性的基因或特徵的子集的神經網路。舉例來說,人工神經網路計算系統700可以實現用於從基因子集的數據圖預測或推斷所有基因的表達水平的神經網路。舉例來說,人工神經網路計算系統700可以實現用於表觀基因分析的神經網路,例如預測轉錄因子結合位點、增強子區域和來自基因序列的染色質可接近性。舉例來說,人工神經網路計算系統700可以實現用於捕獲基因序列內的結構的神經網路。舉例來說,人工神經網路計算系統700可被配置作為細菌偵測系統,並且光干涉單元804可被配置以實現用於分析DNA序列以偵測某些細菌菌株的乘法函數。
在一些實施例中,OMM單元708包括保護具有3D繞射光學元件的基板的外殼(例如:匣盒)。外殼支持耦接到輸入波導602的輸入介面,以及耦接到輸出波導604的輸出介面。輸入介面被配置以接收來自調變器陣列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。
在一些實施例中,可藉由在偵測單元710與ADC單元160之間加入類比非線性單元來修改人工神經網路計算系統700。類比非線性單元被配置以從偵測單元710接收輸出電壓、應用非線性傳遞函數、以及將轉換輸出電壓輸出到ADC單元160。控制器110可以從ADC單元160得到對應轉換輸出電壓的轉換數位輸出電壓。因為從ADC單元160得到的數位輸出電壓已經被非線性轉換(“激活”),所以可以省略控制器110的非線性轉換步驟,從而減少了控制器110的計算負擔。接著,可以將從ADC單元160直接得到的第一轉換電壓作為第一轉換數位輸出向量儲存在記憶體單元120中。
可以使用以一維佈置的被動繞射光學元件來實現光干涉單元。參照第9圖,在一些實施例中,人工神經網路計算系統900具有光處理器906,其包括一維的光乘法單元916。人工神經網路計算系統900包括記憶體單元120,其類似於第1A圖中的人工神經網路計算系統100的對應部件。光處理器906被配置以使用以一維佈置(沿著光傳播軸)的繞射光學元件來執行乘法計算。
光處理器906包括:雷射單元908,被配置以輸出雷射光束910;以及調變器912,被配置以調變雷射光束910以產生調變光束914。光處理器906包括一維的光乘法單元916,其具有一維佈置的繞射光學元件,並被配置以處理調變光束914和產生輸出光束918。光處理器906包括偵測單元920,偵測單元920具有用於偵測輸出光束916的光感測器。偵測單元920的輸出由ADC單元930轉換為數位訊號。
舉例來說,光乘法單元916可以實現作為具有繞射光學元件(例如:光柵或孔洞)的被動整合矽光子波導。光乘法單元916可被配置以幾乎零功率消耗執行乘法操作。
有許多方法對輸入資料進行編碼以供光處理器906使用。舉例來說,數位輸入向量可以被編碼作為傳播通過光乘法單元916的光學輸入。光乘法單元916在光學域中執行對接收的光學輸入的乘法。由光乘法單元916執行的乘法由光乘法單元916的內部配置來確定。OMM單元502的內部配置包括沿著光傳播路徑在一維上佈置的繞射光學元件的尺寸、位置和幾何形狀,以及雜質的摻雜(如果有的話)。
可以以各種方式實現光乘法單元916。第10圖顯示了使用繞射元件的一維佈置的光乘法單元916的示意圖。光乘法單元916可包括用於接收光輸入1002的輸入波導、與輸入波導光學通訊的一維的光干涉單元1004,以及與光干涉單元1004光學通訊的用於提供光輸出1006的輸出波導。光干涉單元1004包括多個繞射光學元件,並且執行光學輸入到光學輸出的轉換(例如:線性轉換)。輸出波導引導光干涉單元1004輸出的光訊號。
在一些實施例中,光干涉單元1004包括細長基板,細長基板具有沿著光傳播路徑在一維上佈置的繞射元件。舉例來說,可以在基板中鑽出或蝕刻多個孔洞。這些孔洞具有與輸入光的波長相當的數量級的尺寸,使得光被孔洞(或定義孔洞的結構)繞射。孔洞可以具有相同或不同的尺寸。基板可以由對於輸入光為透明或半透明的材料製成,例如相對於輸入光具有1%至99%的透射率。在一些實施例中,全息方法也可用於基板中形成繞射光學元件。
當設計光干涉單元1004時,我們考慮繞射元件沿著光束的傳播路徑的尺寸和位置。可以使用優化處理來確定繞射光學元件的配置。舉例來說,基板可以分成一系列像素,並且每個像素可被填充基板材料(無孔洞)或被填充空氣(孔洞)。可以迭代地修改像素的配置,並且對於像素的每個配置,可以藉由使光通過繞射光學元件並評估輸出來執行模擬。在執行像素的所有可能配置的模擬之後,選擇提供最接近所期望的乘法處理的結果的配置作為光干涉單元1004的繞射光學元件配置。
作為另一實施例,繞射元件最初被配置為一系列孔洞。孔洞的位置和尺寸可以與它們的初始配置稍微不同。可以迭代地調整每個孔洞的參數,並且可以執行模擬以找到孔洞的優化配置。
在一些實施例中,機器學習處理用於設計一維繞射光學元件。確定像素如何影響輸入光以產生輸出光的分析函數,並且使用梯度下降方法來確定像素的最佳配置。
在一些實施例中,光乘法單元916可實施作為使用者可變部件,並且可以為不同應用安裝具有不同光干涉單元1004的不同光乘法單元916。舉例來說,人工神經網路計算系統900可被配置作為細菌偵測系統,並且光干涉單元1004可被配置以實現用於分析DNA序列以偵測某些細菌菌株的乘法函數。舉例來說,第一光乘法單元可具有第一光干涉單元,第一光干涉單元包括1D被動繞射光學元件,其被配置以實現用於偵測第一組細菌的第一乘法函數。第二光乘法單元可具有第二光干涉單元,第二光干涉單元包括1D被動繞射光學元件,其被配置以實現用於偵測第二組細菌的第二乘法函數等。第一和第二光乘法單元可以由專門開發用於偵測不同細菌的技術的不同公司來開發。當使用者想要使用人工神經網路計算系統900來偵測第一組細菌時,使用者可以將第一光乘法單元插入至系統中。當使用者想要使用人工神經網路計算系統900來識別第二組細菌時,使用者可以換出第一光乘法單元並且將第二光乘法單元插入至系統中。藉由使用一維繞射光學元件,可以以低成本製造雷射單元908、調變器912、偵測單元920以及ADC單元930。
在一些實施例中,光乘法單元916包括保護具有1D繞射光學元件的基板的外殼(例如:匣盒)。外殼支持耦接到輸入波導的輸入介面,以及耦接到輸出波導的輸出介面。輸入介面被配置以接收來自調變器912的輸出,並且輸出介面被配置以將光乘法單元916的輸出發送到偵測單元920。光乘法單元916可以被設計作為適合由普通消費者處理的模組,允許使用者容易地從一個光乘法單元916切換到另一個光乘法單元916。機器學習技術隨著時間而改進。使用者可藉由換出舊光乘法單元916,並且插入新的升級版本來升級人工神經網路計算系統900。
在一些實施例中,人工神經網路計算系統900是光學計算平台,其被配置為可由不同公司所提供的光乘法單元一起操作。這允許不同公司為各種應用開發不同的1D被動光學乘法功能。1D被動光學乘法功能以標準化包裝出售給最終使用者,其可被安裝在光學計算平台中以允許人工神經網路計算系統900執行各種智慧功能。
在一些實施例中,系統可以具有用於支撐多個光乘法單元916的保持器機構,並且可以提供機械處理機構以用於自動交換光乘法單元916。系統確定當前應用需要哪個光乘法單元916,並且使用機械處理機構從保持器機構自動檢索適當的光乘法單元916並將其插入光處理器906。
在一些實施例中,可藉由在偵測單元920與ADC單元930之間加入類比非線性單元來修改人工神經網路計算系統900。類比非線性單元被配置以從偵測單元920接收輸出電壓、應用非線性傳遞函數、以及將轉換輸出電壓輸出到ADC單元930。控制器902可以從ADC單元930得到對應轉換輸出電壓的轉換數位輸出電壓。因為從ADC單元930得到的數位輸出電壓已經被非線性轉換(“激活”),所以可以省略控制器902的非線性轉換步驟,從而減少了控制器902的計算負擔。接著,可以將從ADC單元930直接得到的第一轉換電壓作為第一轉換數位輸出向量儲存在記憶體單元120中。
具有被動繞射光學元件的被動晶片具有許多優點。首先,因為主動元件(通常是最龐大的部件)已被淘汰,任何給定尺寸的晶片都可以包含更大的神經網路。通常有用的神經網路可包括數百萬個權重,這在主動晶片上實現是有挑戰性的,並且可能需要通過晶片的多次資料運行和晶片的重新編程。相較之下,單一被動晶片可能能夠支持整個神經網路。其次,被動晶片的非常低的功率消耗對於“邊緣(edge)”應用是重要的,因為這樣的應用可能需要小佔用面積(footprint)和低功率消耗。第三,被動晶片可以以非常低的成本製造,因為它們不包含主動元件。
具有被動繞射光學元件的光矩陣乘法單元也可以用在波長分波多路複用人工神經網路計算系統中。例如,第1F圖中的WDM ANN計算系統104的OMM單元150可以被使用了被動繞射光學元件的OMM單元代替。在此實施例中,可以移除第二DAC子單元134。
在一些實施例中,光處理器(例如:504、702)可執行除了矩陣乘法以外的矩陣處理。光矩陣乘法單元502和708可以由執行其他類型的矩陣處理的光矩陣處理單元來代替。
第25圖顯示了使用ANN計算系統500、700或900執行ANN計算的方法2500的流程圖,ANN計算系統500、700或900包括一或多個光矩陣乘法單元或具有被動繞射元件的光乘法單元,例如2D的OMM單元502、3D的OMM單元708或1D的OM單元916。方法2500的步驟可以至少部分地由控制器110或902執行。在一些實施例中,方法2500的各個步驟可以並行、組合、循環或以任何順序運行。
在步驟2510中,接收包括輸入資料集的人工神經網路(ANN)計算請求。輸入資料集包括第一數位輸入向量。第一數位輸入向量是輸入資料集的子集。舉例來說,它可以是影像的子區域。ANN計算請求可以由各種實體(例如電腦102)產生。電腦可包括各種類型的計算裝置中的一或多個,例如個人電腦、伺服器電腦、載具電腦和飛行電腦。ANN計算請求通常是指通知或告知要執行ANN計算的ANN計算系統500、700或900的電訊號。在一些實施例中,ANN計算請求可以被分為兩個或多個訊號。舉例來說,第一訊號可以詢問ANN計算系統500、700或900以檢查ANN計算系統500、700或900是否準備好接收輸入資料集。響應於ANN計算系統500、700或900的肯定應答,電腦可以發送包括輸入資料集的第二訊號。
在步驟2520中,儲存輸入資料集。控制器110可以將輸入資料集儲存在記憶體單元120中。在記憶體單元120中儲存輸入資料集可以允許ANN計算系統500、700或900的操作中的靈活性,例如可以改善系統的整體效能。舉例來說,藉由從記憶體單元120檢索輸入資料集的期望部分,可以將輸入資料集分為設定大小和格式的數位輸入向量。輸入資料集的不同部分可以以各種順序處理,或者被混洗,以允許執行各種類型的ANN計算。舉例來說,在輸入和輸出矩陣大小不同的情況下,混洗可以允許藉由塊矩陣乘法技術執行矩陣乘法。作為另一實施例,將輸入資料集儲存在記憶體單元120中可以允許藉由ANN計算系統500、700或900對多個ANN計算請求進行排隊,這可以允許ANN計算系統500、700或900以其全速維持操作而沒有不活動的時段。
在步驟2530中,基於第一數位輸入向量產生第一多個調變器控制訊號。控制器110可以將第一DAC控制訊號發送至DAC單元506、712或904,以產生第一多個調變器控制訊號。DAC單元506、712或904基於第一DAC控制訊號產生第一多個調變器控制訊號,並且調變器陣列144、706或調變器912產生表示第一數位輸入向量的光輸入向量。
第一DAC控制訊號可包括將要由DAC單元506、712或904轉換成第一多個調變器控制訊號的多個數位值。多個數位值通常對應第一數位輸入向量,並且可以透過各種數學關係或查找表來關聯。舉例來說,多個數位值可以與第一數位輸入向量的元素的數值成線性比例。作為另一實施例,多個數位值可以透過查找表與第一數位輸入向量的元素關聯,該查找表被配置以維持數位輸入向量與由調變器陣列144、706或調變器912產生的光輸入向量之間的線性關係。
在一些實施例中,2D的OMM單元502、3D的OMM單元708或1D的OM單元916被配置以基於光輸入向量和使用被動繞射元件實施的多個神經網路權重來執行光矩陣處理或光乘法。表示矩陣M的多個神經網路權重可以通過奇異值分解(SVD)方法被分解成M=USV*,其中U是M×M么正矩陣,S是在對角線上具有非負實數的MxN對角矩陣,並且V*是N×N么正矩陣V的共軛複數。在這種情況下,被動繞射元件可被配置以實現矩陣V、矩陣S以及矩陣U,使得OMM單元502或708作為整體實現矩陣M。
在步驟2540中,得到對應光矩陣乘法單元的光輸出向量或光乘法的第一多個數位光輸出。由調變器陣列144、706或調變器912所產生的光輸入向量由2D的OMM單元502、3D的OMM單元708或1D的OM單元916處理,並且轉換為光輸出向量。光輸出向量由偵測單元146、710或920偵測並且轉換成電訊號,該電訊號可由ADC單元160或930轉換成數位值。控制器110或902可以將轉換請求發送至ADC單元160或930,以開始將偵測單元146、710或920輸出的電壓轉換為數位光輸出。一旦轉換完成,ADC單元160或930可將轉換結果發送至控制器110或902。或者,控制器110或902可以從ADC單元160或930檢索轉換結果。控制器110或902可以從數位光輸出形成數位輸出向量,該數位輸出向量對應輸入數位向量的矩陣乘法的結果。舉例來說,數位光輸出可以被組織或連接以具有向量格式。
在一些實施例中,可基於由控制器110或902將DAC控制訊號發出到DAC單元506、712或904,來設定或控制ADC單元160或930以執行ADC轉換。舉例來說,ADC轉換可以被設定以在DAC單元506、712或904產生調變控制訊號之後的預設時間開始。ADC轉換的這種控制可以簡化控制器110或902的操作並且減少必要的控制操作的數量。
在步驟2550中,對第一數位輸出向量執行非線性轉換以產生第一轉換數位輸出向量。ANN的節點或人工神經元藉由首先執行從先前層的節點接收的訊號的權重總和,然後執行權重總和的非線性轉換(“激活”)以產生輸出來進行操作。各種類型的ANN可以實現各種類型的可微分的非線性轉換。非線性轉換函數的實施例包括修正線性單元(RELU)函數、Sigmoid函數、雙曲正切函數(yperbolic tangent function),X^2函數以及|X|函數。由控制器110或902對第一數位輸出執行這種非線性轉換,以產生第一轉換數位輸出向量。在一些實施例中,非線性轉換可由控制器110或902內的專用數位積體電路執行。舉例來說,控制器110或902可包括一或多個模組或電路塊,其特別適於加速一或多種類型的非線性轉換的計算。
在步驟2560中,儲存第一轉換數位輸出向量。控制器110或902可以將第一轉換數位輸出向量儲存在記憶體單元120中。在輸入資料集被分成多個數位輸入向量的情況下,第一轉換數位輸出向量對應輸入資料集的一部分的ANN計算結果,例如第一數位輸入向量。如此一來,儲存第一轉換數位輸出向量允許ANN計算系統500、700或900在輸入資料集的其他數位輸入向量上執行和儲存額外計算,以在稍後被聚合成單一ANN輸出。
在步驟2570中,輸出基於第一轉換數位輸出向量產生的人工神經網路輸出。控制器110或902產生ANN輸出,其是透過由第一多個神經網路權重所定義的ANN處理輸入資料集的結果。在輸入資料集被分成多個數位輸入向量的情況下,所產生的ANN輸出是包括第一轉換數位輸出的聚合輸出,但是可更包括對應輸入資料集的其他部分的額外轉換數位輸出。一旦產生ANN輸出,就將所產生的輸出發送至發起ANN計算請求的電腦(例如電腦102)。
2D的OMM單元502、3D的OMM單元708或1D的OM單元916可表示神經網路的一個隱藏層的權重係數。如果神經網路具有多個隱藏層,則可以串聯耦接額外的2D的OMM單元502、3D的OMM單元708或1D的OM單元916。第26圖顯示了用於實現具有兩個隱藏層的神經網路的ANN計算系統2600的實施例。第一2D光矩陣乘法單元2604表示第一隱藏層的權重係數,第二2D光矩陣乘法單元2606表示第二隱藏層的權重係數。ANN計算系統2600包括控制器110、記憶體單元120、DAC單元506和光電處理器2602。記憶體單元120和DAC單元506類似於第5圖中的人工神經網路計算系統500的對應部件。光電處理器2602被配置以使用光學和電子部件執行矩陣計算。
光電處理器2602包括第一雷射單元142a、第一調變器陣列144a、第一2D光矩陣乘法單元2604、第一偵測單元146a、第一類比非線性單元310a、類比記憶體單元320、第二雷射單元142b、第二調變器陣列144b、第二2D光矩陣乘法單元2606、第二偵測單元146b、第二類比非線性單元310b以及ADC單元160。第一雷射單元142、第一調變器陣列144a、第一偵測單元146a、第一類比非線性單元310a以及類比記憶體單元320的操作類似於第3B中所示的對應部件。第一2D OMM單元2604類似於第5圖的2D的OMM 502。類比記憶體單元320的輸出驅動第二調變器陣列144b,第二調變器陣列144b調變來自第二雷射單元142b的雷射光以產生光向量。來自第二調變器陣列144b的光向量由第二2D OMM單元2606處理,第二2D OMM單元2606執行矩陣乘法並產生光輸出向量,光輸出向量由第二偵測單元246b偵測。第二偵測單元246b被配置以產生對應來自第二2D OMM單元2606的光輸出向量的光訊號的輸出電壓。ADC單元160被配置以將輸出電壓轉換為數位輸出電壓。控制器110可以從ADC單元160得到對應第二2D OMM單元2606的光輸出向量的數位輸出。控制器110可以從數位輸出形成數位輸出向量,數位輸出向量對應輸入數位向量的第一矩陣乘法的結果的非線性轉換的第二矩陣乘法的結果。藉由使用光分離器將第二雷射單元142b與第一雷射單元142a組合,以將來自第一雷射單元142a的一些光轉向到第二調變器陣列144b。
上述原理可以應用於實現具有三個或多個隱藏層的神經網路,其中每個隱藏層的權重係數由對應的2D OMM單元表示。
第27圖顯示了用於實現具有兩個隱藏層的神經網路的ANN計算系統2700的實施例。第一3D光矩陣乘法單元2704表示第一隱藏層的權重係數,第二3D光矩陣乘法單元2706表示第二隱藏層的權重係數。ANN計算系統2700包括控制器110、記憶體單元120、DAC單元712和光電處理器2702。記憶體單元120和DAC單元712類似於第7圖中的人工神經網路計算系統700的對應部件。光電處理器2702被配置以使用光學和電子部件執行矩陣計算。
光電處理器2402包括第一雷射單元704a、第一調變器陣列706a、第一3D光矩陣乘法單元2704、第一偵測單元710a、第一類比非線性單元310a、類比記憶體單元320、第二雷射單元704b、第二調變器陣列706b、第二3D光矩陣乘法單元2706、第二偵測單元710b、第二類比非線性單元310b以及ADC單元160。第一雷射單元704a、第一調變器陣列706a、第一偵測單元710a、第一類比非線性單元310a以及類比記憶體單元320的操作類似於第3B中所示的對應部件。第一3D OMM單元2704類似於第7圖的3D的OMM 708。類比記憶體單元320的輸出驅動第二調變器陣列706b,第二調變器陣列706b調變來自第二雷射單元704b的雷射光以產生光向量。來自第二調變器陣列706b的光向量由第二3D OMM單元2706處理,第二2D OMM單元2706執行矩陣乘法並產生光輸出向量,光輸出向量由第二偵測單元710b偵測。第二偵測單元710b被配置以產生對應來自第二3D OMM單元2706的光輸出向量的光訊號的輸出電壓。ADC單元160被配置以將輸出電壓轉換為數位輸出電壓。控制器110可以從ADC單元160得到對應第二3D OMM單元2406的光輸出向量的數位輸出。控制器110可以從數位輸出形成數位輸出向量,數位輸出向量對應輸入數位向量的第一矩陣乘法的結果的非線性轉換的第二矩陣乘法的結果。藉由使用光分離器將第二雷射單元704b與第一雷射單元704a組合,以將來自第一雷射單元704a的一些光轉向到第二調變器陣列706b。
上述原理可以應用於實現具有三個或多個隱藏層的神經網路,其中每個隱藏層的權重係數由對應的3D OMM單元表示。
具有被動繞射光學元件的2D的OMM單元502和3D的OMM單元708適用於遞歸神經網路(RNN),其中在第(k)次通過神經網路期間的網路的輸出被再循環回至神經網路的輸入並且在第(k+1)次通過期間用來作為輸入,使得神經網路的權重係數在多次通過期間保持相同。
第28圖顯示了神經網路計算系統2800的實施例,其可用於實現遞歸神經網路。神經網路計算系統2800包括光處理器2802,其以類似於第3B圖的光處理器140的方式操作,除了OMM單元150由2D OMM單元2804代替,其可以類似於第6圖的2D的OMM單元502。2D OMM單元2804的神經網路權重是固定的,因此神經網路計算系統2800不需要在第3B圖的人工神經網路計算系統302中所使用的第二DAC子單元134。
第29圖顯示了神經網路計算系統2900的實施例,其可用於實現遞歸神經網路。神經網路計算系統2900包括光處理器2902,其以類似於第3B圖的光處理器140的方式操作,除了雷射單元142、調變器陣列144、OMM單元150以及偵測單元146個別地由第7圖的雷射單元704、調變器陣列706、3D OMM單元2904以及偵測單元710代替。3D OMM單元2904的神經網路權重是固定的,因此神經網路計算系統2900不需要在第3B圖的人工神經網路計算系統302中所使用的第二DAC子單元134。
第30圖顯示了具有1位元內部解析度的人工神經網路計算系統3000的示意圖。ANN計算系統3000類似於第4A圖的ANN計算系統400,除了OMM單元150由2D OMM單元3004(其類似於第5圖的2D的OMM單元502)代替,並且第二驅動器子單元434被省略。ANN計算系統3000以類似於ANN計算系統400的方式操作,其中輸入向量被分解成多個1位元向量,並且接著可以藉由在執行1位元向量的一系列矩陣乘法之後對個別矩陣乘法結果求和,來執行某些ANN計算。
第31圖顯示了具有1位元內部解析度的人工神經網路計算系統3100的示意圖。ANN計算系統3100類似於第4A圖的ANN計算系統400,除了OMM單元150由3D OMM單元3104(其類似於第7圖的3D的OMM單元708)代替,並且第二驅動器子單元434被省略。在第31圖的實施例中,第4A圖的雷射單元142、調變器陣列144以及偵測單元143個別地由第7圖的雷射單元704、調變器陣列706以及偵測單元710代替。ANN計算系統3100以類似於ANN計算系統400的方式操作,其中輸入向量被分解成多個1位元向量,並且接著可以藉由在執行1位元向量的一系列矩陣乘法之後對個別矩陣乘法結果求和,來執行某些ANN計算。
以下描述光學繞射神經網路的原理。光學繞射神經網路可以實現為幾層繞射或透射光學介質。基於惠更斯-菲涅耳原理(Huygens–Fresnel principle),繞射介質中的每個點可以被認為是二次光源(secondary light source)。對於每個光源,遠場繞射(far field diffraction)可以用以下等式描述:
Figure 02_image012
這裡,指數l和i表示第l層神經網路中的第i個神經元,λ是光的波長,r是距離,其中:
Figure 02_image014
來自每個二次光源的輸出可以被寫為輸入乘以光源的相位和強度調變:
Figure 02_image016
這裡,t是傳輸調變(transmission modulation),其是包括幅度和相位調變的複數項(complex term),並且
Figure 02_image018
是來自所有先前光源的輸入的總和。總體來說,輸出可以合併為遠場繞射時間w和幅度|A|和額外相位項(phase term)。因此,每一層中的每個點可以被認為是從前一層獲取來自多個神經元的輸入,並且在輸出到下一層之前加入額外的相位和強度調變的神經元。
以下描述了可以實現一般么正矩陣乘法的緊湊光子矩陣乘法器單元的緊湊設計(compact design)。參照第11圖,光子矩陣乘法器單元1100包括調變器1102、多個互連干涉儀1104以及衰減器(attenuator)1106。互連干涉儀1104包括定向耦合器層(或定向耦合器組或定向耦合器集)1108a、1108b、1108c、1108d以及1108e(統稱為1108)和相位移器層1110a、1110b、1110c以及1110d(統稱為1110)。每個定向耦合器層(或定向耦合器組或定向耦合器集)可包括一或多個定向耦合器。在此實施例中,互連干涉儀1104包括五層定向耦合器1108和四層相位移器。在其他實施例中,光子矩陣乘法器單元1100可以具有不同的定向耦合器和相位移器層。與使用互連馬赫曾德爾干涉儀的習知矩陣乘法器單元相比,光子矩陣乘法器單元1100具有定向耦合器1108,定向耦合器1108以使得定向耦合器1108的層數減少的方式定位。
這裡,術語“定向耦合器層”和“相位移器層”中的術語“層”是指基於它們在光子矩陣乘法器單元1100中相對於輸入端口和輸出端口的位置一組或一個集合的定向耦合器或相位移器。在第11圖的實施例中,輸入光訊號由第一層定向耦合器1108a處理,然後由第二層相位移器1110a處理,然後由第三層定向耦合器1108b處理,然後由第四層相位移器1110b處理等
舉例來說,使用互連馬赫曾德爾干涉儀的習知矩陣乘法器單元可能需要2N層定向耦合器,而光子矩陣乘法器單元1100僅需要N+2層定向耦合器。N表示輸入訊號的數量,或輸入向量中的位數(number of digit)。光子矩陣乘法器單元1100中使用的網格結構(mesh architecture)可能具有可以執行一般矩陣計算的光子互連干涉儀的最緊湊的幾何結構。
第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層定向耦合器。
相較之下,在新的緊湊設計中,一層定向耦合器之後是第一層相位移器,接著是一層定向耦合器,接著是第二層相位移器,接著是一層定向器耦合器,接著是第三層相位移器,依此類推。在最後一層相位移器之後,有兩層定向耦合器。結果,對於n個輸入訊號,存在n層相位移器和n+2層定向耦合器。
因為定向耦合器佔據了大量的空間,與習知設計相比,將定向耦合器的數量從2∙n減少到n+2可以使光子矩陣乘法器單元1100的尺寸顯著減小。
第12B圖顯示了根據新設計的緊湊互連干涉儀1212的示意圖,其中輸入訊號的數量是5。
以下描述使用梯度下降的緊湊設計分解。上面所述的光子矩陣乘法器的緊湊設計可以採用任何么正矩陣U,並且使用分析分解演算法(analytic decomposition algorithm)來確定需要使用相位移器實現哪些相位,並因此實現矩陣U。舉例來說,我們可藉由使用梯度下降從給定的矩陣U中提取相位。梯度下降過程如下。我們從固定的矩陣U開始,並且為緊湊設計的相位移器初始化隨機權重θ。我們使用緊湊設計建構矩陣U',即U'= CompactDesign(θ)。接著我們看一下損失函數(loss function)L = |U-U'|^2(這是矩陣的弗羅貝尼烏斯範數(Frobenius norm)),並且使用梯度下降最小化該函數(即藉由使用梯度更新來更新θ)。
參照第13圖,我們使用零差偵測(homodyne detection)(例如:我們在輸出取出實部(real part)),因此在偵測之前提供額外的衰減器層1302以便模擬正交矩陣。這意味著與θ一起,我們還需要學習衰減器的對角線權重(diagonal weight)x。通過這種方式,我們可以了解U所需的相位和對角線權重,並且可以以數值方式獲得分解。
以下描述了光生成對抗網路(optical generative adversarial network;OGAN),其包括被配置以有效地產生忠實資料(faithful data)的產生器。第14圖顯示了光生成對抗網路1400的實施例,其中產生器1404包括被配置或訓練以產生類似於真實影像的合成影像1410的神經網路,並且鑑別器1402包括被訓練以確定輸入影像是真實的還是合成的神經網路。提供初始訓練影像集1406以訓練鑑別器1402,使得鑑別器1402學習真實影像的特徵。相似地,使用一組訓練影像(未顯示)訓練產生器1404,使得產生器1404可以產生具有類似於真實影像的特徵的合成影像1410。
在一些實施例中,鑑別器1402的訓練是被電子地執行的,舉例來說,使用基於電晶體的資料處理器(例如中央處理單元或通用圖形處理器單元(general purpose graphic processor unit))來計算鑑別器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類似於癌細胞的真實影像。
在一些實施例中,使用第5圖、第7圖及/或第9圖中所示的光矩陣乘法單元來實施產生器1404。在確定神經網路的權重之後,基於所確定的權重來配置光矩陣乘法單元以實現神經網路。因為產生器1404的輸入是隨機雜訊1408,所以不必具有調變器陣列,允許了產生器1404具有小佔用面積。
無論產生器1404是使用被動光學晶片還是使用具有主動元件的光學晶片來實現,經過訓練的產生器1404都可以產生逼真的影像(例如:類似於癌細胞的真實影像),然後可以將其提供給鑑別器1402,以進一步訓練和改進鑑別器1402。產生器1404具有高流通量並且可以以比使用習知電子資料處理器(例如通用圖形處理單元)快幾個數量級的速率產生合成影像1410。與使用習知電子資料處理器相比,產生器1404具有低功率消耗,可能功率消低了幾個數量級。
產生器1404具有多種應用。舉例來說,由產生器1404產生的合成影像可以在醫學領域中具有許多應用。產生器1404可被配置以合成與某些疾病相關的組織的影像,並且合成的影像可以用於訓練鑑別器1402,以識別與疾病相關的組織。舉例來說,由產生器1404產生的合成影像可以在自動駕駛或導航領域中具有許多應用。舉例來說,產生器1404可以被配置以產生各種交通狀況的合成影像,並且合成影像可以用於訓練鑑別器1402,以識別交通狀況。舉例來說,由產生器1404產生的合成影像可以在製造品質控制領域(field of manufacturing quality control)中具有許多應用。舉例來說,產生器1404可以被配置以產生具有缺陷的產品的合成影像,並且合成影像可以用於訓練鑑別器1402以偵測缺陷產品。
在一些實施方式中,光生成對抗網路1400包括相干光源(coherent light source)、用於隨機幅度和相位的輸入的濾波器,其中幅度和相位兩者都遵循已知的分佈。光生成對抗網路1400包括用於快速處理資訊的干涉儀網格(mesh of interferometers)。光生成對抗網路1400可以被設計以具有不需要改變(shuffle)權重的架構,即不對干涉儀進行重新編程。光生成對抗網路1400還可以被設計以包括具有大於1GHz的操作頻率的快速相位移器。舉例來說,它可以具有(i)類比電子領域中的非線性、(ii)簡單的光學非線性、或(iii)數位電子領域中的非線性。
以下描述了一種新穎的光子電路,其具有互連的馬赫曾德爾干涉儀,並且被配置以實現邏輯閘(logic gate)。參照第15圖,馬赫曾德爾干涉儀1500包括相位移器1502,其被配置以使得馬赫曾德爾干涉儀1500實現以下旋轉:
Figure 02_image001
參照第16圖,光子電路1600可以實現XOR閘和OR閘。光子電路1600包括馬赫曾德爾干涉儀1500、偵測器1602以及具有類比電子閾值的比較器1604。當輸入訊號x1 和x2 被提供給光子電路1600時,馬赫曾德爾干涉儀1500執行以下操作:
Figure 02_image020
偵測器1602產生表示偵測訊號的絕對值的輸出,因此偵測器1602的輸出為:
Figure 02_image005
比較器1604的類比電子閾值被偏置(biased)為1/2,以移除1/
Figure 02_image023
因子,因此比較器1604的輸出是:
Figure 02_image025
光子電路1600針對輸入訊號x1 、x2 的各種組合產生以下結果: 0, 0    à             0,            0    à  0, 0 0, 1    à  1/sqrt(2), 1/sqrt(2)  à  1, 1 1, 0    à  1/sqrt(2), 1/sqrt(2)  à  1, 1 1, 1    à             0,     sqrt(2)  à  0, 1 在上述內容中,第一對數字是輸入訊號、第二對數字是偵測器1602的輸出以及第三對數字是比較器1604的輸出。當輸入(x1 ,x2 )=(0,0)時,馬赫曾德爾干涉儀1500執行乘法,產生結果(0,0),偵測器1602輸出(0,0),並且比較器1604產生結果(0,0)。當輸入(x1 ,x2 )=(0,1)時,馬赫曾德爾干涉儀1500執行乘法,產生結果(-1/
Figure 02_image023
,1/
Figure 02_image023
),偵測器1602輸出(1/
Figure 02_image023
,1/
Figure 02_image023
),並且比較器1604產生結果(1,1)。當輸入(x1 ,x2 )=(1,0)時,馬赫曾德爾干涉儀1500執行乘法,產生結果(1/
Figure 02_image023
,1/
Figure 02_image023
),偵測器1602輸出(1/
Figure 02_image023
,1/
Figure 02_image023
),並且比較器1604產生結果(1,1)。當輸入(x1 ,x2 )=(1,1)時,馬赫曾德爾干涉儀1500執行乘法,產生結果(0,
Figure 02_image023
),偵測器1602輸出(0,
Figure 02_image023
),並且比較器1604產生結果(0,1)。上述結果指示出偵測器1602在第一輸出1606a產生1/
Figure 02_image023
∙|x1 -x2 |,並且在第二輸出1606b產生1/
Figure 02_image023
∙|x1 +x2 |。比較器1604移除1/
Figure 02_image023
因子以在第一輸出1608a產生XOR(x1 ,x2 )並且在第二輸出1608b產生OR(x1 ,x2 )。
參照第17A圖,光子電路1700可以實現AND閘和OR閘。光子電路1700包括馬赫曾德爾干涉儀1500和偵測器1602,其中偵測器1602的輸出被再循環一次。當輸入訊號x1 和x2 被提供給光子電路1700時,馬赫曾德爾干涉儀1500和偵測器1602產生輸出:
Figure 02_image027
偵測器1602的輸出被再循環回到光子電路1700的輸入,並且在訊號第二次通過馬赫曾德爾干涉儀1500和偵測器1602之後,偵測器1602產生最終輸出:
Figure 02_image009
光子電路1700針對輸入訊號x1 、x2 的各種組合產生以下結果:
Figure 02_image030
在上述內容中,第一對數字是輸入訊號,第二對數字是第一次通過之後偵測器1602的輸出,並且第三對數字是第二次通過之後偵測器1602的輸出。當輸入(x1 ,x2 )=(0,0)時,在第一次通過馬赫曾德爾干涉儀1500之後,偵測器1602輸出(0,0),並且在第二次通過馬赫曾德爾干涉儀1500之後,偵測器1602輸出(0,0)。當輸入(x1 ,x2 )=(0,1)時,在第一次通過馬赫曾德爾干涉儀1500之後,偵測器1602輸出(1/
Figure 02_image023
,1/
Figure 02_image023
),並且在第二次通過馬赫曾德爾干涉儀1500之後,偵測器1602輸出(0,1)。當輸入(x1 ,x2 )=(1,0)時,在第一次通過馬赫曾德爾干涉儀1500之後,偵測器1602輸出(1/
Figure 02_image023
,1/
Figure 02_image023
),並且在第二次通過馬赫曾德爾干涉儀1500之後,偵測器1602輸出(0,1)。當輸入(x1 ,x2 )=(1,1)時,在第一次通過馬赫曾德爾干涉儀1500之後,偵測器1602輸出(0,
Figure 02_image023
),並且在第二次通過馬赫曾德爾干涉儀1500之後,偵測器1602輸出(1,1)。上述結果指示出在兩次通過之後,檢測器1602在第一輸出1704產生表示AND(x1 ,x2 )的訊號,並且在第二輸出1706產生表示OR(x1 ,x2 )的訊號。
第17B圖顯示光子電路1710的另一實施例,其包括第一馬赫曾德爾干涉儀1712、第一偵測器1714、第二馬赫曾德爾干涉儀1716以及第二偵測器1718。第二偵測器1718產生表示AND(x1 ,x2 )的第一輸出1720和表示OR(x1 ,x2 )的第二輸出1722。
上面描述了使用包括馬赫曾德爾干涉儀、定向耦合器、平面光波導以及光偵測器的光子電路來實現邏輯閘(例如AND、OR和XOR閘)。邏輯閘可用於產生用來排序演算法的比較器,舉例來說,類似於連結URL<https://en.wikipedia.org/wiki/Bitonic_sorter>中所描述的雙調排序器(Bitonic sorter)的演算法。作為另一實施例,邏輯閘可用於建構類似於SHA-2的雜湊演算法(hashing algorithm),在鏈接URL<https://en.wikipedia.org/wiki/SHA-2>中描述,這是NIST建議的標準並且具有許多應用程式,包括比特幣挖掘和比特幣地址的創建。因為使用上述光子電路所實現的邏輯電路大多是被動的,所以與CMOS邏輯閘相比,它們可以具有更少的延遲和更低的功率消耗。光學邏輯閘的設計中沒有光學非線性。非線性響應來自使用光偵測器的偵測訊號。
非相干或低相干光學計算系統。
以下描述了在執行矩陣計算時處理非相干或低相干光訊號的光電計算系統。第1圖中的ANN計算系統100的光處理器140包括雷射單元142,其產生具有相同波長且光學相干的N個光輸出。光矩陣乘法單元150在光域中執行N×N矩陣乘法,其中光訊號從OMM單元150的輸入到OMM單元150的輸出保持相干。上面已經描述了OMM單元150在光域中執行矩陣乘法的優點。以下描述了光電計算系統,其不要求光訊號在整個矩陣乘法過程中是相干的,其中計算的一些部分在光域中執行,並且計算的一些部分在電域中執行。光電計算系統的優點已在上面的發明內容中描述。
光電計算系統使用不同類型的操作來產生計算結果,每一個操作都是針對操作的基礎物理學(例如:在能量消耗及/或速度上)最適合的訊號(例如:電訊號或光訊號)執行的。舉例來說,可以使用光功率分離來執行複製,可以使用基於電流的求和來執行求和,並且可以使用光幅度調變來執行乘法。可以使用這三種類型的操作所執行的計算的實施例是將向量乘以矩陣(例如:如人工神經網路計算所採用的)。可以使用這些操作來執行各種其他計算,這些操作表示可以執行各種計算的一組通用線性操作,包括:向量-向量內積、向量-向量元素方面乘法、向量-純量元素方面乘法、或矩陣-矩陣元素方面乘法,但不限於此。
參照第18圖,光電計算系統1800的實施例包括提供光訊號的一組光學端口/光源1802A、1802B等。舉例來說,在一些實施例中,光學端口/光源1802A可包括光輸入耦合器,其提供耦接到光路徑1803的光訊號。在其他實施例中,光學端口/光源1802A可包括調變光源,例如雷射(例如:用於相干敏感實施例)或發光二極體(light emitting diode;LED) (例如:用於相干不敏感實施例),其產生耦接到光路徑1803的光訊號。一些實施例可以包括將光訊號耦接到光電計算系統1800中的端口的組合以及在光電計算系統1800內產生光訊號的光源。光訊號可包括已經或正在使用各種形式的調變中的任何一種調變資訊的任何光波。光路徑1803可以基於光波導(例如:嵌入光子積體電路(PIC)或光纖中的波導)的引導模式來定義,或者基於光學端口/光源1802A與光電計算系統1800的另一模組之間的既定自由空間路徑來定義。
在一些實施例中,光電計算系統1800被配置以對在藉由光學端口/光源1802A、1802B等所提供的相應光訊號上編碼的輸入值陣列執行計算。舉例來說,對於基於神經網路的各種機器學習應用,計算可以實現向量矩陣乘法(或向量對矩陣乘法(vector-by-matrix multiplication)),其中輸入向量乘以矩陣以產生輸出向量作為結果。光訊號可以表示向量的元素,可能僅包括向量的所選元素的子集。舉例來說,對於一些神經網路模型,在計算中使用的矩陣的大小可以大於可以加載到執行計算的向量矩陣乘法部分的硬體系統中的矩陣的大小。因此,執行計算的一部分可以涉及將矩陣和向量分成可以分別提供給硬體系統的較小片段(segment)。
第18圖中所顯示的模組可以是較大系統的一部分,其對相對較大的矩陣(或子矩陣)執行向量矩陣乘法,例如64×64元素矩陣。但是,出於說明的目的,將在使用2×2元素矩陣執行向量矩陣乘法的示例計算的內容中描述模組。在該示例中引用的模組將包括兩個複製模組1804A和1804B,四個乘法模組1806A、1806B、1806C以及1806D,以及兩個求和模組,其中僅一個求和模組1808在第18圖中顯示。這些模組將使輸入向量
Figure 02_image032
乘以矩陣
Figure 02_image034
以產生輸出向量
Figure 02_image036
。對於該向量矩陣乘法
Figure 02_image038
,輸出向量
Figure 02_image040
的兩個元素中的每一個可以由不同的等式表示,如下所示。
Figure 02_image042
Figure 02_image044
這些等式可以分解為可以使用一組基本操作在光電計算系統1800中執行的分開的步驟:複製操作、乘法操作以及求和操作。在這些等式中,輸入向量的每個元素出現兩次,因此有兩個複製操作。還有四個乘法操作,並且有兩個求和操作。對於使用較大矩陣實現向量矩陣乘法的系統,執行的操作數量會更大,並且使用形狀不是方形矩陣的矩陣的每個操作的相應實例數量將不同(即,列數與行數不同)。
在此實施例中,藉由複製模組1804A和1804B來執行複制操作。輸入向量
Figure 02_image046
Figure 02_image048
的元素個別由來自光學端口/光源1802A和1802B的光訊號上所編碼的數值來表示。這些數值中的每一個都用於兩個等式中,因此複製每個數值以將得到的兩個副本提供給不同的相應乘法模組。可以在特定時槽中編碼數值,舉例來說,使用已被調變為具有來自一組多個功率準位的功率的光波,或具有來自一組多個佔空比的佔空比的光波,如下面更詳細的描述。藉由複製在其上編碼數值的光訊號來複製數值。被編碼具有表示元素
Figure 02_image046
的數值的光訊號由複製模組1804A複製,並且被編碼具有表示元素
Figure 02_image048
的數值的光訊號由複製模組1804B複製。每個複製模組可以使用光功率分離器來實現,例如波導光分離器,其將輸入波導中的引導模式耦接到Y形分離器上的兩個輸出波導中的每一個,Y形分離器逐漸分離功率,或者例如自由空間光束分離器,其使用具有一或多個層的介電界面或薄膜,以個別透射和反射來自輸入光束的兩個輸出光束。
在本揭露中,當我們說藉由複製模組1804A來複製被編碼具有表示元素
Figure 02_image046
的數值的光訊號時,我們意味著基於輸入訊號來產生表示元素
Figure 02_image046
的多個訊號副本,複製模組1804A的輸出訊號不一定具有與輸入訊號相同的幅度。舉例來說,如果複製模組1804A在兩個輸出訊號之間均勻地分離輸入訊號功率,則兩個輸出訊號中的每一個將具有等於或小於輸入訊號功率的50%的功率。兩個輸出信號是彼此的副本,而複製模組1804A的每個輸出訊號的幅度不同於輸入訊號的幅度。而且,在具有用於複製給定光訊號或光訊號子集的一組多個複製模組的一些實施例中,每個單獨的複製模組不一定在其產生的副本之間均勻地分離功率,但是該組複製模組可以共同地被配置以提供與下游模組(downstream module)(例如:下游乘法模組)的輸入具有大抵相等的功率的副本。
在此實施例中,乘法操作由四個乘法模組1806A、1806B、1806C以及1806D執行。對於一個光訊號的每個副本,一個乘法模組將光訊號的副本乘以矩陣元素值,這可以使用光幅度調變來執行。舉例來說,乘法模組1806A將輸入向量元素
Figure 02_image046
乘以矩陣元素
Figure 02_image050
。向量元素
Figure 02_image046
的數值可以在光訊號上編碼,並且矩陣元素
Figure 02_image050
的數值可以編碼作為光幅度調變器的幅度調變準位(amplitude modulation level)。
被編碼具有向量元素
Figure 02_image046
的光訊號可以使用不同形式的幅度調變來編碼。光信號的幅度可以對應特定時槽內的物理光波的特定瞬時功率準位
Figure 02_image052
,或者可以對應特定時槽上的物理光波的特定能量
Figure 02_image054
(隨著時間的推移積分的功率(the power integrated over time)產生總能量)。舉例來說,可以調變雷射源的功率以具有來既定的一組多個功率準位的特定功率準位。在一些實施例中,在優化的操作點附近操作電子電路可能是有用的,因此代替在許多可能的功率準位上改變功率,使用優化的“開啟(on)”功率準位和訊號,其中訊號被調變為對於時槽的特定部分是“開啟(on)”和“關閉(off)”(在零功率下)。功率在“開啟(on)”準位的時間部分對應特定能量準位。可以將功率或能量的這些特定數值中的任何一個映射到元素
Figure 02_image046
的特定數值(使用線性或非線性映射關係)。在訊號處在電域中之後,產生特定總能量準位的隨著時間的實際積分(actual integration over time)可以在光電計算系統1800的下游發生,如下面更詳細的描述。
另外,術語“幅度”可以指由光波中的瞬時或積分功率表示的訊號的幅度,或者也可以等效地指光波的“電磁場幅度”。這是因為電磁場幅度與訊號幅度具有定義良好的關係(例如:藉由在引導模式或自由空間光束的橫向尺寸上積分電磁場強度(與電磁場幅度的平方成比例)以產生瞬時功率。)。這導致調變值之間的關係,因為藉由特定值
Figure 02_image056
調變電磁場幅度的調變器也可以被認為是藉由對應的數值
Figure 02_image058
調變基於功率的訊號幅度(因為光功率與電磁場幅度的平方成比例)。
藉由乘法模組用來編碼矩陣元素
Figure 02_image050
的光幅度調變器可以藉由使用各種物理相互作用中的任何一種來改變光訊號的幅度(即光訊號中的功率)來操作。舉例來說,調變器可包括環形共振器、電吸收調變器、熱電光調變器(thermal electro-optical modulator)或馬赫曾德爾干涉(MZI)調變器。在一些技術中,一部分功率被吸收作為物理相互作用的一部分,並且在其他技術中,使用物理相互作用來轉移功率,物理相互作用修改光波的另一特性而不是其功率,例如其偏振或相位,或者修改不同光學結構之間的光功率的耦合(例如:使用可調共振器)。對於使用已經在不同路徑上行進的光波之間的干涉(例如,破壞性及/或建設性干涉)來進行操作的光幅度調變器,可以使用相干光源(例如雷射)。對於使用吸收來操作的光幅度調變器,可以使用相干或非相干或低相干中任一的光源,例如LED。
在波導1×2光幅度調變器的一個實施例中,相位調變器被用以藉由將相位調變器放置在調變器的多個波導之一中來調變光波中的功率。舉例來說,波導1×2光幅度調變器可以將由輸入光波導引導的光波分成第一臂和第二臂。第一臂包括相位移器,其相對於第二臂的相位延遲賦予相應相移。接著調變器組合來自第一臂和第二臂的光波。在一些實施例中,相位延遲的不同數值透過建設性干涉或破壞性干涉在輸入光波導所引導的光波中提供給功率乘以0到1之間的數值。在一些實施例中,第一臂和第二臂組合成兩個輸出波導中的每一個,並且由接收來自兩個輸出波導的光波的相應光電探測器所產生的光電流之間的差異提供有號的乘法結果(例如,乘以-1到1之間的數值),如下面更詳細的描述。藉由適當選擇編碼光訊號的幅度縮放,矩陣元素值的範圍可以映射到正值(0到M)或有號值(-M到M)的任意範圍。
在此實施例中,求和操作由兩個求和模組執行,其中求和模組1808(如第18圖所示)用於在用來計算輸出向量元素
Figure 02_image060
的等式中執行求和。對應的求和模組(未顯示)用於在用來計算輸出向量元素
Figure 02_image062
的等式中執行求和。求和模組1808產生電訊號,電訊號表示兩個乘法模組1806C和1806D的結果之總和。在此實施例中,電訊號是電流
Figure 02_image064
的形式,其個別與由乘法模組1806C和1806D所產生的輸出光訊號中的功率之總和成比例。在一些實施例中,產生此電流
Figure 02_image064
的求和操作在光電域中執行,並且在其他實施例中在電域中執行。或者,一些實施例可以使用用於一些求和模組的光電域求和和使用用於其他求和模組的電域求和。
在電域中執行求和的實施例中,求和模組1808可以使用以下來實現:(1)兩個或多個輸入導體,每個輸入導體承載輸入電流,其輸出電流的幅度表示乘法模組之一者的結果,以及(2)至少一個輸出導體,其承載作為輸入電流之總和的電流。舉例來說,如果導體是在接點相遇的導線,則會發生這種情況。舉例來說(不受理論束縛),基於克希荷夫電流定律(Kirchhoff’s current law),該定律表明流入接點的電流等於流出接點的電流。對於這些實施例,提供給求和模組1808的訊號1810A和1810B是輸入電流,其可以由光偵測器產生,光偵測器是乘法模組的一部分,乘法模組產生相應的光電流,其幅度與接收的光訊號中的功率成比例。求和模組1808接著提供輸出電流
Figure 02_image064
。接著可以使用輸出電流的瞬時值(instantaneous value)或輸出電流的積分值(integrated value)來表示總和的定量值(quantitative value)。
在光電域中執行求和的實施例中,求和模組1808可以使用光偵測器(例如:光二極體)來實現,光偵測器接收由不同相應乘法模組產生的光訊號。對於這些實施例,提供給求和模組1808的訊號1810A和1810B是輸入光訊號,每個輸入光訊號包括光波,其功率代表乘法模組之一者的結果。在此實施例中的輸出電流
Figure 02_image064
是由光偵測器產生的光電流。由於光波的波長是不同的(例如:足夠不同使得它們之間不發生顯著的建設性干涉或破壞性干涉),光電流將與接收的光訊號的功率之總和成比例。光電流也大抵等於各個電流的總和,各個電流將導致由分開的等效光偵測器所偵測到的個別偵測光功率。光波的波長是不同的,但足夠接近以使光偵測器具有大抵相同的響應(例如:光偵測器的大抵平坦的偵測帶寬內的波長)。如上面所述,使用電流求和的在電域中的求和可以藉由避免對多個波長的需要來實現更簡單的系統架構。
第19A圖顯示了用於使用2×2元素矩陣執行向量矩陣乘法的系統的實現的系統配置1900的實施例,其中在電域中執行求和操作。在此實施例中,輸入向量是
Figure 02_image066
,並且矩陣是
Figure 02_image068
。輸入向量的每個元素在不同的光訊號上編碼。兩個不同的複製模組1902執行光複製操作以在不同的路徑(例如:“上”路徑和“下”路徑)上分離計算。存在四個乘法模組1904,每個乘法模組1904使用光幅度調變乘以不同的矩陣元素。在每個乘法模組1904的輸出,存在光偵測模組1906,其將光訊號轉換為電流形式的電訊號。使用求和模組1908將不同輸入向量元素的兩個上路徑組合,並且使用求和模組1908將不同輸入向量元素的兩個下路徑組合,求和模組1908在電域中執行求和。因此,輸出向量的每個元素都在不同的電訊號上編碼。如第19A圖所示,隨著計算的進行,遞增地產生輸出向量的每個分量,以個別地產生上路徑和下路徑的以下結果。
Figure 02_image070
Figure 02_image072
可以使用各種光電技術中的任何一種來實現系統配置1900。在一些實施例中,存在共同基板(例如:半導體(例如矽)),其可以支持積體光學部件和電子部件。光路徑可以在波導結構中實現,波導結構具有由具有較低光學指數(optical index)的材料圍繞的具有較高光學指數的材料,該材料定義用於傳播承載了光訊號的光波的波導。電路徑可以由導電材料實現,用於傳播承載了電訊號的電流。(在第19A圖至第20A圖、第21A圖至第24E圖中,除非另外說明,表示路徑的線的厚度用於區分光路徑(由較粗的線表示)和電路徑(由較細的線或虛線表示)。) 可以在公共基板上製造光學裝置(例如分離器和光幅度調變器),以及電子裝置(例如光偵測器和運算放大器(operational amplifier;op-amp))。或者,可以使用具有不同基板的不同裝置來實現系統的不同部分,並且那些裝置可以透過通訊通道進行通訊。舉例來說,光纖可用於提供通訊通道,以在用於實現整個系統的多個裝置之間發送光訊號。那些光訊號可以表示當執行向量矩陣乘法時所提供的輸入向量的不同子集,及/或當執行向量矩陣乘法時所計算的中間結果的不同子集,如下面更詳細的描述。
在本揭露中,圖式可顯示穿過電訊號線的光波導,應理解光波導不與電訊號線相交。電訊號線和光波導可以設置在裝置的不同層。
第19B圖顯示了用於使用2×2元素矩陣執行向量矩陣乘法的系統的實現的系統配置1920的實施例,其中在光電域中執行求和操作。在此實施例中,使用兩個不同的相應波長
Figure 02_image074
Figure 02_image076
將不同的輸入向量元素編碼在光訊號上。而且,乘法模組1904的光輸出訊號被組合在光組合器模組1910中,使得光波導將兩個波長上的兩個光訊號引導到每個光電求和模組1912,這可以使用光偵測器來實現,如用於第19A圖的實施例中的光偵測模組1906。但是,在這個實施例中,總和由表示兩個波長的功率的光電流表示,而不是由離開不同導體之間的接點的電流表示。
在本揭露中,當圖式顯示兩個彼此交叉的光波導時,從描述中將清楚兩個光波導是否實際上彼此光學耦合。舉例來說,從裝置的俯視圖顯示的彼此交叉的兩個波導可以在不同的層中實現,並因此不相互交叉。舉例來說,提供光訊號
Figure 02_image078
作為輸入到複製模組1902的光路徑和從乘法模組1904提供光訊號M11 V1 到光組合器模組1910的光路徑彼此不是光學耦合的,儘管在圖式中它們可能看起來互相交叉。相似地,從複製模組1902提供光訊號
Figure 02_image078
到乘法模組1904的光路徑和從乘法模組1904提供光信號M21 V1 到光組合器模組1910的光路徑彼此不是光學耦合的,儘管在圖式中它們可能看起來互相交叉。
可以擴展第19A圖和第19B圖中所示的系統配置以實現用於使用m × n 元素矩陣執行向量矩陣乘法的系統配置。在此實施中,輸入向量是
Figure 02_image080
,並且矩陣是
Figure 02_image082
。舉例來說,輸入向量元素v1 vn n 個波導提供,並且每個輸入向量元素由一或多個複製模組處理,以將m 個副本的輸入向量元素提供至m 個相應路徑。存在m×n 個乘法模組,每個乘法模組使用光幅度調變乘以不同的矩陣元素以產生表示
Figure 02_image084
的電訊號或光訊號。使用第i 個求和模組(i =1...m )組合表示
Figure 02_image086
的訊號,以個別產生m個路徑的以下結果。
Figure 02_image088
Figure 02_image090
Figure 02_image092
由於光幅度調變能夠將光訊號中的功率從其全值(full value)降低到較低值,降低到零(或接近零)功率,因此可以實現0到1之間的任何數值的乘法。然而,一些計算可能要求乘以大於1的數值及/或乘以有號(正或負)值。首先,為了將範圍擴展至0到
Figure 02_image094
(where
Figure 02_image096
),光訊號的原始調變可包括原始向量元素幅度的顯性(explicit)或隱性(implicit)縮放
Figure 02_image094
(或等效地,藉由
Figure 02_image098
縮放映射到線性映射中特定向量元素幅度的數值)使得矩陣元素幅度的範圍0到1在計算中定量地對應範圍0到
Figure 02_image094
。第二,為了將矩陣元素值的正範圍0到
Figure 02_image094
擴展到有號範圍
Figure 02_image100
Figure 02_image094
,可以使用對稱差分配置,如下面更詳細的描述。相似地,對稱差分配置也可用於將在各種訊號上編碼的數值的正範圍擴展到有號範圍的數值。
第20A圖顯示了對稱差分配置2000的實施例,其用於為在光訊號上編碼的數值提供有號範圍的數值。在此實施例中,存在兩個相關的光訊號,被編碼為無號值(unsigned value),指定為
Figure 02_image102
Figure 02_image104
,其中假設每個數值在0(例如:對應接近零的光功率)與
Figure 02_image106
(例如:對應最大功率準位的光功率)之間變化。兩個光訊號之間的關係是,當一個光訊號用“主要(main)”值
Figure 02_image102
編碼時,另一個光訊號用對應的“反對稱(anti-symmetric)”值
Figure 02_image104
編碼,使得當在一個光訊號上編碼的主要值
Figure 02_image102
從0單調增加(monotonically increase)到
Figure 02_image106
時,在配對光訊號上編碼的反對稱值
Figure 02_image104
Figure 02_image106
單調減少(monotonically decrease)到0。或者,相反地,當在一個光信號上編碼的主要值
Figure 02_image102
Figure 02_image106
單調減少到0時,在配對光訊號上編碼的反對稱值
Figure 02_image104
從0單調增加到
Figure 02_image106
。在上路徑和下路徑中的光訊號被相應光偵測模組1906轉換為電流訊號之後,電流訊號之間的差異可以由電流減法模組(current subtraction module)2002產生。編碼
Figure 02_image102
Figure 02_image104
的當前訊號之間的差異導致用有號值
Figure 02_image108
編碼的電流,給定為:
Figure 02_image110
其中有號值
Figure 02_image108
Figure 02_image112
Figure 02_image106
之間單調增加,因為無號主要值
Figure 02_image102
從0單調增加到
Figure 02_image106
並且與其成對的反對稱值
Figure 02_image104
Figure 02_image106
單調減少到0。存在可用於實現第20圖A的對稱差分配置的各種技術,如第20B圖和第20C圖所示。
在第20B圖中,在公共端配置(common-terminal configuration)中偵測光訊號,其中兩個光二極體偵測器連接至運算放大器2030的公共端2032(例如:反相端(inverting terminal))。在此配置中,從第一光二極體偵測器2012產生的電流2010和從第二光二極體偵測器2016產生的電流2014在三個導體之間的接點2018組合,以產生電流2010與電流2014之間的差值電流2020。電流2010和電流2014是從相應光二極體的相對側提供的,光二極體在另一端連接到電壓源(未顯示),提供相同幅度
Figure 02_image114
但具有相反符號的偏壓,如第20B圖所示。在此配置中,由於在公共接點2018相遇的電流的行為而產生差異。差值電流2020表示在電訊號上編碼的有號值,其電訊號對應在偵測的光訊號上編碼的無號值之間的差值。運算放大器2030可以配置成轉阻放大器(transimpedance amplifier;TIA)配置,其中另一個端子2024接地,並且輸出端2026使用電阻元件2028反饋到公共端2032,電阻元件2028提供與差值電流2020成比例的電壓。這種TIA配置將提供結果值作為電壓訊號形式的電訊號。
在第20C圖中,光訊號在差分端子配置中偵測,其中兩個光二極體偵測器連接到運算放大器2050的不同端子。在此配置中,從第一光二極體偵測器2042產生的電流2040連接到反相端2052,並且從第二光二極體偵測器2046產生的電流2044連接到非反相端2054。電流2040和2044從相應光二極體的相同端提供,光二極體在另一端連接到電壓源(未顯示),提供相同幅度
Figure 02_image114
和相同符號的偏壓,如第20C圖所示。在此配置中的運算放大器2050的輸出端2056提供與電流2040和電流2044之間的差值成比例的電流。在此配置中,由於運算放大器2050的電路的行為而產生差異。從輸出端2056流出的差值電流表示在電訊號上編碼的有號值,其電訊號對應在偵測的光訊號上編碼的無號值之間的差值。
第21A圖顯示了對稱差分配置2100的實施例,其用於為被編碼以實現乘法模組1904的光幅度調變器的調變準位的數值提供有號範圍的數值。在此實施例中,存在兩個相關的調變器,被配置以藉由被指定為
Figure 02_image116
Figure 02_image118
的無號值來進行調變,其中假設每個數值在0(例如:對應被調變降低至接近零的光功率)與
Figure 02_image094
(例如:對應保持在最大功率準位附近的光功率)之間變化。兩個調變準位之間的關係是,當一個調變準位被配置在“主要”值
Figure 02_image116
時,另一個調變準位被配置在對應的“反對稱”值
Figure 02_image118
,使得當一個調變器的主要值
Figure 02_image116
從0單調增加到
Figure 02_image094
時,另一個調變器的反對稱值
Figure 02_image118
Figure 02_image094
單調減少到0。或者,相反地,當一個調變器的主要值
Figure 02_image116
Figure 02_image094
單調減少到0時,另一個調變器的反對稱值
Figure 02_image118
從0單調增加到
Figure 02_image094
。在複製模組1902複製編碼了數值
Figure 02_image120
的輸入光訊號之後,每個調變器將調變的輸出光訊號提供給對應的光偵測模組1906。在上路徑中的乘法模組1904包括與
Figure 02_image116
相乘的調變器,並且提供以數值
Figure 02_image122
編碼的光訊號。在下路徑中的乘法模組1904包括與
Figure 02_image118
相乘的調變器,並且提供以數值
Figure 02_image124
編碼的光訊號。在光訊號被相應光偵測模組1906轉換為電流訊號之後,它們之間的差異可以由電流減法模組2102產生。編碼
Figure 02_image122
Figure 02_image124
的電流訊號之間的差異導致用
Figure 02_image120
編碼的電流乘以有號值
Figure 02_image126
,給定為:
Figure 02_image128
其中有號值
Figure 02_image126
Figure 02_image100
Figure 02_image094
之間單調增加,因為無號主要值
Figure 02_image116
從0單調增加到
Figure 02_image094
並且與其成對的反對稱值
Figure 02_image118
Figure 02_image094
單調減少到0。
第21B圖顯示了用於使用2×2元素矩陣執行向量矩陣乘法的光電計算系統1800的實現的系統配置2110的示實施例,其中求和操作在電域中執行,並且具有輸入向量的有號元素和矩陣的有號元素。在此實施例中,對於輸入向量的每個有號元素,存在兩個編碼無號值的相關光訊號。對於第一有號輸入向量元素值
Figure 02_image108
,有兩個指定為
Figure 02_image102
Figure 02_image104
的無號值,並且對於第二有號輸入向量元素值
Figure 02_image130
,有兩個指定為
Figure 02_image132
Figure 02_image134
的無號值。在光訊號上編碼的每個無號值由複製模組2112接收,複製模組2112執行一或多個光複製操作,其操作在四個相應光路徑上產生四個光訊號副本。在複製模組2112的一些實施例中,存在三個不同的Y形波導分離器,每個Y形波導分離器被配置以使用不同的功率比進行分離(這可以使用各種光子裝置中的任何一種來實現)。舉例來說,第一分離器可以使用1:4的功率比進行分離,以將25%(1/4)的功率轉移到第一路徑,第二分離器可以使用1:3的功率比進行分離,以將25%(1/4=1/3×3/4)的功率轉移到第二路徑,以及第三分離器可以使用1:2的功率比進行分離,以將25%(1/4=1/2×2/3×3/4)的功率轉移到第三路徑,並且剩餘的25%的功率到第四路徑。作為複製模組2112的一部分的個別分離器可以佈置在基板的不同部分中,以將不同副本適當地分配到系統內的不同路徑。在複製模組2112的其他實施例中,可以適當地以不同的分離率分離不同數量的路徑。舉例來說,第一分離器可以使用1:2的功率比分離以提供兩個實質上有相同功率之中間光訊號(例如:輸入光波之50%功率給兩個輸出端口)。接著,可以使用具有1:2的功率比的第二分離器來分離這些中間光訊號中的一個,以將25%的輸入光波功率轉移到第一路徑和第二路徑中的每一個,並且可以使用具有1:2功率比的第三分離器來分離那些中間光訊號中的另一個,以將25%的輸入光波功率轉移到第三路徑和第四路徑中的每一個。
這類有二元樹拓樸的光複製分配網路提供特定優勢。舉例而言,因為二元樹光複製分配網路可以對所有的波長在均勻1:2功率分離器上使用對稱設計(例如Y形絕熱波導錐, Y-shaped adiabatic waveguide taper),網路會與波長不相依,促進其使用於多個波長。此外,非均勻功率分離器可能會有需要精準控制長度以轉換不同功率比例(例如:1/n、1/(n-1)、……等等之於n分支網路)之耦接部分。然而,此等精準度在現存製程變化中可能很困難。此二元樹光複製分配網路也促使部分緊湊晶粒布局之電路徑縮短,如下述參照第45A-45G圖之更多細節。
系統配置2110還包括如第21B圖所示佈置的其他模組,以提供表示輸出向量的兩個不同的輸出電訊號,輸出向量是由人工神經網路計算系統100執行的向量矩陣乘法的結果。存在16個不同的乘法模組1904,其調變表示輸入向量的光訊號的不同副本,並且存在16個不同的光偵測模組1906,以提供表示計算的中間結果的電訊號。還存在兩個不同的求和模組2114A和2114B,其計算每個輸出電訊號的總體求和。在圖式中,以虛線顯示了將光偵測模組1906電性耦接到求和模組2114B的訊號線。因為每個總體求和可包括從來自於用於向量元素及/或矩陣元素的任何對稱差分配置的成對主要項(paired main term)中減去的一些反對稱項(anti-symmetric term),所以求和模組2114A和2114B可包括用於在被轉換之後加入的求和的一些項次的機制(等效地,從非反轉項(non-inverted term)中減去)。舉例來說,在一些實施例中,求和模組2114A和2114B包括反相輸入端口和非反相輸入端口,使得在總體求和中要加入的項次可以連接到非反相輸入端口,並且要在總體求和中減去的項次可以連接到反相輸入端口。這種求和模組的一個實施例是運算放大器,其中非反相端連接到傳導了表示要加入的訊號的電流的導線,並且反相端連接到傳導了表示要被減去的訊號的電流的導線。或者,如果藉由其他方式執行反對稱項的反轉,則在求和模組上可能不需要反相輸入端口。求和模組2114A和2114B個別產生以下求和結果,以完成向量矩陣乘法。
Figure 02_image136
Figure 02_image138
在本揭露中,當圖式顯示彼此交叉的兩條電訊號線時,將會清楚描述兩條電訊號線是否彼此電性耦合。舉例來說,承載M21 + V1+ 訊號的訊號線不電性耦接至承載M11 + V1 - 訊號的訊號線或承載M11 - V1 - 訊號的訊號線。
可以擴展第21B圖中所示的系統配置以實現使用m × n 元素矩陣執行向量矩陣乘法的系統配置,其中輸入向量和矩陣包括有號元素。
存在可以用於實現第21B圖的對稱差分配置的各種技術。這些技術中的一些利用1×2光幅度調變器來實現乘法模組1904,及/或提供與主要和反對稱配對相關的光訊號對。第22A圖顯示了1×2光幅度調變器2200的實施例。在此實施例中,1×2光幅度調變器2200包括輸入光分離器2202,其將輸入光訊號分離以將50%的功率提供給包括相位調變器2204(亦稱為相位移器)的第一路徑,並且將50%功率提供給不包括相位調變器的第二路徑。可以以不同的方式定義路徑,這取決於光幅度調變器是否實現作為自由空間干涉儀或作為波導干涉儀。舉例來說,在自由空間干涉儀中,藉由光束通過光束分離器的傳輸來定義一條路徑,並且藉由來自光束分離器的波的反射來定義另一條路徑。在波導干涉儀中,每個路徑藉由已耦接至入射波導(incoming waveguide)的不同光波導來定義(例如:在Y形分離器中)。相位調變器2204可以被配置以賦予相位移,使得第一路徑的總相位延遲與第二路徑的總相位延遲相差一個可配置的相位移值(例如:可以設置為在0度到180度之間某處相位移的數值)。
1×2光幅度調變器2200包括2×2耦合器2206,其以特定方式使用光學干涉或光學耦合來組合來自第一和第二輸入路徑的光波,以在不同的比率將功率轉移到第一和第二輸出路徑中,這取決於關於相位移。舉例來說,在自由空間干涉儀中,0度的相位移導致在兩個路徑之間分離的大抵所有輸入功率的建設性干涉,以從實現耦合器2206的光束分離器的一個輸出路徑離開,並且180度的相位移導致在兩個路徑之間分離的大抵所有輸入功率建設性干涉,以從實現耦合器2206的光束分離器的另一輸出路徑離開。在波導干涉儀中,0度的相位移導致在兩個路徑之間分離的大抵所有輸入功率耦接到耦合器2206的一個輸出波導,並且180度的相位移導致在兩個路徑之間分離的大抵所有輸入功率耦接到耦合器2206的另一個輸出波導。接著,0度和180度之間的相位移可以透過部分建設性干涉或破壞性干涉或部分波導耦合將光波中的功率(和在光波上編碼的數值)乘以0和1之間的值。然後可以將乘以0和1之間的任何數值的乘法映射到如上所述的乘以0和
Figure 02_image094
之間的任何數值的乘法。
另外,從調變器2200發射的兩個光波中的功率之間的關係遵循上面所述的主要和反對稱配對的功率之間的關係。當一個訊號的光功率的幅度增加時,另一個訊號的光功率的幅度減小,因此偵測到的光電流之間的差值可以產生有號向量元素,或者乘以有號矩陣元素,如此處所述。舉例來說,可以從調變器2200的兩個輸出端口提供該對相關光訊號,使得相關光訊號的幅度之間的差值對應將輸入值乘以有號矩陣元素值的結果。第22B圖顯示了1×2光幅度調變器2200的對稱差分配置2210,其在第20B圖的對稱差分配置的公共終端版本(common-terminal version)中在待偵測的輸出佈置有光訊號。對應由一對光偵測器2212和2214所產生的光電流的電流信號在接點2216組合,以提供輸出電流信號,其幅度對應相關光訊號的幅度之間的差值。在其他實施例中,例如在第20C圖的對稱差分配置中,可以使用不同的電路組合從輸出的兩個光訊號所偵測到的光電流。
可以使用其他技術來建構1×2光幅度調變器以用於實現乘法模組1904,及/或提供與主要和反對稱配對相關的光訊號對。第22C圖顯示了另一種類型的1×2光幅度調變器的對稱差分配置2220的另一實施例。在此實施例中,1×2光幅度調變器包括環形共振器2222,其被配置以將輸入端口2221的光訊號的光功率分到兩個輸出端口。環形共振器2222(亦稱為“微環(microring)”)可以藉由在基板上形成圓形波導來製造,其中圓形波導耦接到對應輸入端口2221的直線波導(straight waveguide)。當光信號的波長接近與環形共振器2222相關的共振波長時,耦接到環中的光波在順時針路徑2226上圍繞環循環並且在耦合位置破壞性地干涉,使得降低功率的光波通過路徑2224離開到第一輸出端口。循環光波也耦接出環,使得另一光波通過彎曲波導在路徑2228上離開,彎曲波導將光波引導出第二輸出端口。
由於光功率圍繞環形共振器2222循環的時間尺度與光訊號的幅度調變的時間尺度相比較小,因此在兩個輸出端口之間快速建立反對稱功率關係,使得由光偵測器2212偵測的光波和由光偵測器2214偵測的光波形成主要和反對稱對。可以調整環形共振器2222的共振波長以單調減少/增加主要/反對稱訊號以實現有號結果,如上面所述。當環完全不共振時,所有功率通過路徑2224離開第一輸出端口,並且當它完全共振時,適當調整某些其他參數 (例如:品質因數和耦合係數)的情況下,所有功率通過路徑2228離開第二輸出端口。具體來說,為了實現完全的功率傳輸,表徵(characterizing)波導和環形共振器之間的耦合效率的耦合係數應要匹配。在一些實施例中,具有相對淺的調整曲線(tuning curve)是有用的,這可以藉由降低環形共振器2222的品質因數(例如:藉由增加損耗)並相應地增加進入和離開環的耦合係數來實現。淺調整曲線提供對共振波長的較小幅度靈敏度。諸如溫度控制的技術也可用於共振波長的調整及/或穩定性。
第22D圖顯示了另一種類型的1×2光幅度調變器的對稱差分配置2230的另一實施例。在此實施例中,1×2光幅度調變器包括兩個環形共振器2232和2234。在輸入端口2231的光訊號的光功率被分到兩個端口。當光訊號的波長接近與兩個環形共振器2232和2234相關的共振波長時,降低功率的光波通過路徑2236離開第一輸出端口。光波的一部分還耦接到環形共振器2232中,其在順時針路徑2238上圍繞環循環,並且還耦接到環形共振器2234中,其在逆時針路徑2240上圍繞環循環。接著將循環的光波耦接出環,使得另一光波通過路徑2242離開第二輸出端口。在此實施例中,由光偵測器2212偵測的光波和由光偵測器2214偵測的光波也形成主要和反對稱配對。
第23A圖和第23B圖顯示了使用光學幅度調變器的不同實施例,例如1×2光幅度調變器2200,用於實現以2×2元素矩陣執行向量矩陣乘法的光電計算系統1800。第23A圖顯示了光電系統配置2300A的實施例,其包括提供表示輸入向量的有號向量元素的數值的光幅度調變器2302A和2302B。光幅度調變器2302A提供一對光訊號,其為第一有號向量元素編碼一對數值
Figure 02_image102
Figure 02_image104
,並且光幅度調變器2302B提供一對光訊號,其對第二有號向量元素編碼一對數值
Figure 02_image132
Figure 02_image134
。向量矩陣乘法器(VMM)子系統2310A接收輸入光訊號,執行分離操作、乘法操作以及如上面所述的一些求和操作,並且提供將由額外電路處理的輸出電流訊號。在一些實施例中,輸出電流訊號表示被進一步處理以產生最終總和的部分總和,其導致輸出向量的有號向量元素。在此實施例中,一些最終求和操作被執行作為由運算放大器2306A和2306B的反相和非反相端子的電流訊號表示的不同部分總和之間的減法。減法用以提供有號值,如上面所述(例如:參考第21B圖)。此實施例還說明了某些元素如何成為多個模組的一部分。具體來說,由波導分離器2303執行的光學複製可以被認為是複製模組(例如:第21B圖中的複製模組2112的一個)的一部分和乘法模組(例如:第21B圖中的乘法模組1904的一個)的一部分。在VMM子系統2310A內使用的光幅度調變器被配置用於在第20B圖中所示的公共端子配置(common-terminal configuration)中進行偵測。
第23B圖顯示了與第23A圖中所示的光電系統配置2300A類似的光電系統配置2300B的實施例。但是,VMM子系統2310B包括光調變器,其被配置用於在第20C圖所示的差分端子配置中進行偵測。在此實施例中,VMM子系統2310B的輸出電流訊號亦表示被進一步處理以產生最終總和的部分總和,其導致輸出向量的有號向量元素。作為由運算放大器2306A和2306B的反相和非反相端子的電流訊號表示的不同部分總和之間的減法執行的最終求和操作與第23A圖的實施例不同。但是,如上面所述(例如:參照第21B圖),最終減法仍然導致提供有號值。
第23C圖顯示了光電系統配置2300C的實施例,其在公共端子配置中進行偵測的情況下使用VVM子系統2310C的替代佈置,如第23A圖所示的VVM子系統2310A,但具有承載乘法模組的結果的光訊號,乘法模組透過波導內的子系統路由至基板的一部分,基板包括被設置以將光訊號轉換成電訊號的偵測器。在一些實施例中,此偵測器的分組允許縮短電路徑,可能減少由於在其他方面將使用的長電路徑所引起的電性串擾或其他損害。光波導可以在基板的一個層內繞線(route),或者為了防止在一個層內可能會遇到的波導交叉(與相關的損失),波導也可以在基板的多個層內繞線,以允許在基板的兩個維度上交叉但不在(基板中的深度的)第三維度中交叉的佈線路徑中的更大靈活性。可以在系統配置中進行各種其他更改,包括VMM子系統中所包括的部件的更改。舉例來說,光幅度調變器2302A和2302B可以被包括作為VMM子系統的一部分。或者,VMM子系統可以包括光輸入端口,用於接收由除了光幅度調變器之外的模組所產生的成對的主要和反對稱光訊號,或者用於與其他類型的子系統連接。在一些實施例中,除了將偵測器分組和為了波導在基板使用多個層,一種避免波導交叉損失且仍然限制電路徑長度的替代方式,包含重新排列波導和光子積體電路晶粒上的元件之布局。舉例來說,為了在基板提供多個波導層,有些生產程序可能會帶來額外的成本及/或複雜度。相反地,光路由可以包含促進縮短一些緊湊晶粒布局之電路徑之光複製分配網路,如同下述說明,參照第45A-45G圖。
在給定之光偵測器和下游端口間之一長導線有一關聯之寄生電容,該寄生電容導致順著導線以驅動訊號的功耗增加。為了限制系統中之功率損耗,包含光子積體電路(PIC)之晶粒上的元件之佈局所實作之光處理器可以優化以允許緊湊電路由(electrical routing)。舉例而言,部分PIC實施分佈式光電處理,例如可以設置該向量矩陣乘法器子系統2310A或該向量矩陣乘法器子系統2310B,使產生相對窄之「光學排線(optical ribbon)」,該光學排線包含:光波導,攜帶光輸入之光訊號(例如:來自提供輸入向量之元素之光調變器);光電子節點(例如:包含MZI調變器及偵測器);以及攜帶電輸出之電訊號之導線(例如:饋送提供輸出向量之元素之跨阻抗放大器)。在一些實施例中,跨阻抗放大器(例如:TIA 2306A及2306B)為一部分以覆晶連接光子積體電路(PIC)之電子積體電路(EIC)。光學排線包含多條「股(strands)」,其中該等股包含光複製分配網路,以及與特定乘法矩陣欄位相應之光電子「節點(nodes)」,與「瓦片(tiles)」相交,瓦片包含對應到乘法矩陣特定列之元素。這些PIC中的瓦片也與EIC中對應的瓦片重疊,如下之更多細節所述。
第45A圖展示上述之光學排線中的一條股4500之一例。該股4500包括:二元樹光導網路,光分配對應之輸入向量元件,使用1:2分離器4502(或兩個二元樹各自分配該元素之主要及反對稱值);以及光電子節點4504,進行光電子運算。此外,PIC會包含從節點4504延伸之導線(未顯示),在交界處連接其他股之導線。各光複製分配網路之根,可以被根據輸入向量之元素調變光波之根調變器(未顯示) (例如:如2302A或2302B之MZI調變器)饋送。在一些實施例中,在每個光複製分配網路的葉節點之該光電子節點4504包含藉由矩陣元素進行乘法之MZI調變器4505,以及一對位於MZI調變器輸出以進行光電轉換之光偵測器4507。電路由之電訊號使用之導線長度,部分取決於整個光學排線之寬度。對N×N個陣列之元素(例如:N×N矩陣之乘法)來說,排線中有N股之集合每個集合有自己的光複製分配網路。因為最長導線之長度可能需要穿過多至N股之距離,每個光複製分配網路需佔據一窄幅。為求圖式簡潔明瞭,描繪之範例圖為4×4個陣列之元素,但在一些實施例中,N的值可能會顯著增加(例如:32、64、128或更大)。
如上述之說明,可以藉由上述的二元樹拓樸製造具有容忍誤差以及與波長不相依之光複製分配網路,該光複製分配網路分配給定值給股的節點。作為考量股4500中二元樹之非對稱設置之動機,考慮N×N矩陣乘法下對稱二元樹可能的大小。因為一行N個元素之樹,其寬度(N)大於深度(log2(N)),該樹可以被設置使最窄之維度超過其寬度。然而,二元樹之最後一階層,在葉節點,可能需要在樹的寬度上符合節點之對稱分配,所以樹中之波導需要90度轉彎以擴張出足夠之寬度。基於在樹之各階層支持波導之曲率之最小半徑(為了限制彎曲損失)之需求,可能會有關於該深度維度有多窄之限制,導致樹之各階層有最小寬度(例如:大約40微米)。因此,在此例中,總寬度與log2(N) 乘以40微米成比例。相反地,考慮在股4500中使用二元樹之對稱設置。1:2Y形分離器之寬度不需要改變方位即可被限制在每臂1微米(也就是總共大約2微米)左右,而不需要製造90度旋轉的轉彎而耗費10微米左右。股中最寬的部分在頂節點,為與節點+log2(N)相鄰之矩形波導之寬度。各節點的寬度足夠大以容納2臂MZI調變器之寬度(也就是20微米或更少)。該相鄰波導之寬度約為2.5微米(為波導本身以及其與鄰居之間隔)。因此,股之總寬度與20微米加上log2(N)乘以2.5微米成正比,可能比對稱二元樹的情況要窄上許多。
第45B圖顯示排線4510可以如何在PIC晶粒上設置。排線4510包含設置在晶粒一側的瓦片4514之第一線4512A;以及設置在晶粒另一側的瓦片4514之第二線4512B。連接部分4515藉由延伸各股中一個或多個波導來提供。瓦片分配到兩條或更多之直線散佈在晶粒區域上,被股中之光複製分配網路之波導連接,使更緊湊之設置變得可能。用這樣的方式延伸波導會漸漸增加總光學插入損失(例如:藉由約1dB/cm之額外波導長度),然而這樣的額外損失通常可以忍受。被延長之波導連接的瓦片之線的數量(例如:2條線、3條線、4條線,或更多)可以被選擇以共同優化配合整個系統中晶粒區域與總功率損失。同樣地,波導延長的總數可以被運算限制侷限,例如股之長度顯著小於時脈週期的傳播時間,導致一個股之總長度的限制(例如:少於10公分)。
第45C圖顯示排線4510之設置(未顯示瓦片邊界),疊加在凸塊4516之配置上,該配置用於將PIC上提供電輸入及輸出端口之焊盤(例如:以導電材料如金屬或合金組成)與EIC上相對應之提供電輸出及輸入端口之焊盤電性耦接。舉例而言,訊號藉由EIC之輸出端口被提供以控制MZI調變器(例如:在給定的光電子節點中每MZI中兩個凸塊)。在一些實施例中,每個光電子節點有一個或多個額外的凸塊(例如:為了給定之MZI調變器之溫度控制之凸塊),以及為了PIC與EIC間各種其他電訊號交換之額外的焊盤。為了從EIC轉換電訊號到PIC以進行控制,以及為了從PIC接收電訊號到EIC,PIC中的焊盤會與EIC中之凸塊位置上相應之焊盤對齊。一個將PIC輸出端口連接到EIC輸入端口之例示凸塊為,該凸塊(未圖示)將瓦片中提供該瓦片之多個光電子節點之導線之總和電流之焊盤連接到EIC中之TIA輸入之焊盤。典型的凸塊直徑可以約為100微米,儘管凸塊可能更小(例如50微米)。因此,在一些實施例中,凸塊之間距(例如:100微米)會比股中之瓦片所需空間更大,在這種例子中瓦片可以被散開以提供大致均勻之瓦片間隔。
第45D圖顯示另一個排線4520之例子,描繪包含根調變器4524之瓦片4522之一例,該根調變器將資料值調變到饋送給光複製分配網路之其中一股之光波。各股(包含被根調變器4524饋送之股)之中也有光電子節點4526(此例中為4個節點)之一陣列。在節點4526之中,有為了傳送從EIC到PIC MZI調變器之臂之相位調變值之一組4528凸塊 (例如:作為矩陣乘法之調變權重)。瓦片4522也包含結束於焊盤之導線,該等焊盤經由凸塊4530與EIC中之TIA 4532之輸入之焊盤連接。在第45D圖中,顯示凸塊4528、4530以及TIA 4532疊加在瓦片4522上,但並非瓦片4522之一部分。因為瓦片4522之根調變器4524被放置在晶粒上與光複製分配網路之節點不同之位置,連接波導部分的調變器4524包含波導之光學延遲部分(或其他形式之光學延遲),使總有效光學距離以及相應之時間延遲與其他瓦片之根調變器匹配。因此,在此例中,該波導部分4534比該波導部分4536更長。
第45E圖顯示不同的光電計算系統之另一種光學排線4540,此光電計算系統以EIC代替PIC進行更多計算。此例中,為了4×4矩陣乘法,在PIC中仍有四個瓦片4542、4544、4546及4548之相似配置。然而攜帶調變資料值的光波經由EIC中連接到TIA之凸塊被偵測並耦接到EIC。接著VMM操作之一部分之乘法與加法藉由EIC中之數位電路使用數位值以電氣執行。為了此運算,可能會因為不同波導長度而導致的時間差存在於數位領域同步通訊的環境時可以被補償,因此不需要光學延遲。
第45F圖顯示另一種光學排線4550之例子以及可以發生在瓦片4552中光電處理之類型,該瓦片進行任何PIC中之資料處理的各種類型。通常,光二極體被用來將被分布到排線之不同股之光波上被編碼之光訊號轉換成電訊號。這些電訊號被饋送到PIC中的資料處理電路4560。PIC也包含資料上傳電路4570,為了用來上傳結果到覆晶連接EIC或任何其他形式之積體電子電路之任何操作。
第45G圖顯示光電計算系統4580之一種觀點,描繪系統中各種功能之設置之示例,包含用於乘法矩陣元素之權重值(W#,#)、用於光學或電氣加法之光二極體(PD),以及用來將類比電訊號轉換成數位電訊號的類比數位轉換器模組。系統4580中之PIC或EIC中可包含不同部分之功能。
在某些設置中,矩陣乘法可能有不同數目之列或行。舉例來說,對於M×N矩陣乘法器,EIC中存在M個電氣瓦片(每列一個),且PIC中存在M個,其中各瓦片有N權重之調變器,與光學排線中N股的其中之一相對應。如上所述,為了在經歷上更契合,可能會有複數直線:M/2個瓦片之第一直線和M/2個瓦片之第二直線,或是四條M/4個瓦片之直線等等,而不是將M個瓦片排列成一直線。在某些案例中,四條直線可能足夠,因為特殊分配中可能會有遞減回收,然而在一些案例中,直線之數量可能會更多但少於M。
在一些實施例中,EIC包含元件之電路如權重驅動器、資料驅動器、記憶體(例如為了儲存矩陣之權重,以及累加結果)、數位類比轉換器、類比數位轉換器、數位邏輯(例如:為了累積),以及用來與其他瓦片通訊之部分數位資料匯流排。在大部分案例中,因為不同瓦片間之計算資料相依程度有限,不同瓦片間(例如:矩陣中之不同列)之通訊之需求有限。因此,該布局能允許(短的)列被加總(經由電流)到給定之TIA(以及輸出向量之相應元素)以變成與佈局中之它者相對不相依。大部分時間中,給定之輸出向量與下一迭代之輸入向量之間沒有關係,然而在一計算(例如:一神經網路計算)之某些迭代中,輸出向量與用來進行下一迭代之輸入向量之相應元素之間存在相依性。非常稀有地,可能會有更多相依性存在於其他元素間,例如當所有元素被累積為正規化運算的一部份,該正規化運算將各元素除以該累積和。因此,在該佈局中,需要與彼此更頻繁溝通之元件可以被設置得離彼此更近。
第24A圖顯示了用於光電計算系統1800的實現的系統配置2400A的實施例,其中存在託管(host)不同乘法模組(例如:乘法模組1806A、1806B、1806C和1806D)的多個裝置2410,每個乘法模組都被配置作為VMM子系統(後續統稱VMM子系統2410),以藉由較大矩陣的不同子矩陣對向量元素的不同子集執行向量矩陣乘法。舉例來說,每個乘法模組可以被配置與系統配置2110(第21B圖)相似,但不是使用2×2元素矩陣實現VMM子系統,每個乘法模組可以被配置以使用矩陣來實現VMM子系統,矩陣具有與在單一裝置上能有效製造的尺寸一樣的尺寸,裝置具有用於該裝置內的模組的公共基板。舉例來說,每個乘法模組可以使用64×64元素矩陣來實現VMM子系統。
排列不同的VMM子系統,以便適當地組合每個子矩陣的結果,以產生較大組合矩陣的結果(例如:乘以128×128元素矩陣得到的128元素向量的元素)。每組光學端口或光源2402提供一組光訊號,其表示較大輸入向量的向量元素的不同子集。複製模組2404被配置以複製接收光訊號組(在64個光波導的群組2403中所引導的光波上編碼)內的所有光訊號,並且將該光訊號組提供給兩個不同光波導組中的每一組,其光波導組在此實施例中是64個光波導的群組2405A和64個光波導的群組2405B。舉例來說,藉由使用波導分離器陣列來執行此複製操作,陣列中的每個分離器藉由將光波導的群組2403中的光波分成在光波導的群組2405A中的第一對應光波和在光波導的群組2405B中的第二對應光波,來複製輸入向量元素子集的一個元素。如果在一些實施例中使用多個波長(例如:W波長),則分開的波導的數量(和因此光學端口或光源2402的數量)可以減少1/W。每個VMM子系統2410執行向量矩陣乘法,提供其部分結果作為一組電訊號(用於輸出向量的元素的子集),來自不同VMM子系統2410的相應部分結果藉由如第24A圖所示的求和模組2414被加在一起,使用了此處所述的任何技術,例如導體之間的接點的電流求和。在一些實施例中,對於任何數量的遞歸階級,通過在遞歸的根級別使用單個元素光學幅度調變器結束,可以藉由組合來自較小子矩陣的結果來遞歸地執行使用期望矩陣的向量矩陣乘法,藉由在遞歸的根級(root level)使用單一元件光幅度調變器來結束。在遞歸的不同級別,VMM子系統裝置可以更緊湊(例如:藉由在一個級別的長距離光纖網路連接的不同資料中心,藉由在另一級別的資料中心內的光纖連接的不同多晶片裝置,藉由在另一級別的光纖連接的裝置內的不同晶片,以及藉由另一級別的晶片上波導(on-chip waveguide)連接的在相同晶片上的模組的不同部分)。
第24B圖顯示了系統配置2400B的另一實施例,其中額外裝置用於對每個VMM子系統2410的光傳輸和接收。在每個VMM子系統2410的輸出中,光發射器陣列2420用於將每個光訊號耦接到光傳輸線內的通道(例如:VMM子系統2410之間的光纖束(fiber bundle)中的光纖,其VMM子系統2410可以由分離的裝置託管(host)及/或分佈在遠程位置,或者是在積體裝置上的一組波導中的波導,其積體裝置在公共基板上託管VMM子系統2410)。光接收器陣列2422用於輸出向量元件的每個子集,以在部分結果的對應配對由求和模組2414求和之前,將光訊號轉換成電訊號。
第24C圖顯示了系統配置2400C的另一實施例,其中可以重新配置VMM子系統2410以使得用於不同子矩陣的不同向量矩陣乘法能夠以不同方式重新佈置。舉例來說,藉由組合不同子矩陣所形成的較大矩陣的形狀可為可配置的。在此實施例中,兩個不同的光訊號子集從每組光學端口或光源2402提供至光學開關2430。還存在電開關2440,其能夠重新排列電訊號子集,其電訊號子集表示要由求和模組2414求和的部分結果,以提供用於期望的計算的一個輸出向量或分離的輸出向量。舉例來說,代替使用由大小m × n 的四個子矩陣所組成的大小2m × 2n 的矩陣的向量矩陣乘法,可以重新佈置VMM子系統2410以使用大小2m × n 的矩陣或大小m × 2n 的矩陣。
第24D圖顯示了系統配置2400D的另一實施例,其中VMM子系統2410可以以其他方式重新配置。光學開關2430可以接收多達四組分離的光訊號,並且可以被配置以將不同組的光訊號提供至不同的VMM子系統2410,或者將任何組的光訊號複製到多個VMM子系統2410。而且,電開關2440可以被配置以將所接收到的電訊號組的任何組合提供至求和模組2414。這種更大的可重新配置性使得能夠進行更多各種不同的向量矩陣乘法計算,包括使用大小為m × 3n3m × nm × 4n4m × n 的矩陣進行乘法。
第24E圖顯示系統配置2400E的另一實施例,其包括可執行各種操作(例如:數位邏輯操作)的額外電路,以使系統配置2400E(例如:用於完整的光電計算系統,或者用於較大計算平台的光電子系統)能夠用於實施計算技術,例如人工神經網路或其他形式的機器學習。資料儲存子系統2450可包括揮發性儲存媒體(例如:SRAM及/或DRAM)及/或非揮發性儲存媒體(例如:固態硬碟及/或硬碟)。資料儲存子系統2450還可包括階層式快取模組(hierarchical cache module)。儲存的資料可以括訓練資料、中間結果資料或用於饋送至在線計算系統(online computational system)的生產資料(production data)。資料儲存子系統2450可以被配置以將並發存取(concurrent access)提供至輸入資料,以在由光學端口或光源2402所提供的不同光學訊號上進行調變。以數位形式儲存的資料到可用於調變的類比形式的轉換可以由電路(數位類比轉換器)來執行,電路被包括在資料儲存子系統2450的輸出、或在光學端口或光源2402的輸入、或在兩者之間分開。輔助處理子系統(auxiliary processing subsystem)2460可被配置以對資料執行輔助操作(例如:非線性操作、資料混洗(data shuffling)等),資料可以使用VMM子系統2410透過向量矩陣乘法的多次迭代循環。來自那些輔助操作的結果資料2462可以以數位形式發送到資料儲存子系統2450。由資料儲存子系統2450檢索的資料可用於使用適當的輸入向量調變光訊號,並且用於提供用來在VMM子系統2410中設置光幅度調變器的調變準位的控制訊號(未顯示)。以類比形式編碼在電訊號上的資料到數位形式的轉換可以由輔助處理子系統2460內的電路(例如:類比數位轉換器)執行。
在一些實施例中,提供數位控制器(未顯示於圖式中)以控制資料儲存子系統2450、階層式快取模組、各種電路(例如數位類比轉換器和類比數位轉換器)、VMM子系統2410以及光學端口或光源2402的操作。舉例來說,數位控制器被配置以執行程式代碼以實現具有多個隱藏層的神經網路。數位控制器迭代地執行與神經網路的各個層相關聯的矩陣處理。數位控制器藉由從資料儲存子系統2450檢索第一矩陣資料並且基於檢索的資料設置VMM子系統2410中的光幅度調變器的調變準未來執行矩陣處理的第一次迭代,其中第一矩陣資料表示神經網路的第一層的係數。數位控制器從資料儲存子系統檢索一組輸入資料,並且設置用於光學端口或光源2402的調變準位,以產生表示第一輸入向量的元素的一組光輸入訊號。
VMM子系統2410基於第一輸入向量和第一矩陣資料執行矩陣處理,表示神經網路的第一層對訊號的處理。在輔助處理子系統2450產生第一組結果資料2462之後,數位控制器藉由從資料儲存子系統檢索表示神經網路的第二層的係數的第二矩陣資料,並且基於第二矩陣資料設置VMM子系統2410中的光幅度調變器的調變準未來,來執行矩陣處理的第二次迭代。第一組結果數據2462用來作為第二輸入向量,以設置光學端口或光源2402的調變準位。VMM子系統2410基於第二輸入向量和第二矩陣資料執行矩陣處理,表示神經網路的第二層對訊號的處理,以此類推。在最後一次迭代中,產生由神經網路的最後一層處理訊號的輸出。
在一些實施例中,當執行與神經網路的隱藏層相關聯的計算時,結果資料2462不是被發送到資料儲存子系統2450,而是被數位控制器用來直接控制數位類比轉換器,其數位類比轉換器產生用於在VMM子系統2410中設置光幅度調變器的調變準位的控制訊號。這減少了將資料儲存到資料儲存子系統2450和從資料儲存子系統2450存取資料所需的時間。
可以將其他處理技術結合到系統配置的其他實施例中。舉例來說,與其他種類的像向量矩陣乘法子系統一起使用的各種技術(例如:不具有此處所述的電求和或有號乘法而使用光干涉的子系統)可以結合到一些系統配置中,例如美國專利公開No.US 2017/0351293中所述的一些技術,其由引用完全併入本文。
參照第32A圖,人工神經網路(ANN)計算系統3200包括光電矩陣乘法單元3220,光電矩陣乘法單元3220包括如第18圖至第24D圖所示的複製模組、乘法模組以及求和模組,以能夠在執行矩陣計算時處理非相干或低相干光訊號。人工神經網路計算系統3200包括控制器110、記憶體單元120、DAC單元130以及ADC單元160,與第1A圖的人工神經網路計算系統100的那些相似。控制器110接收來自電腦102的請求,並且將計算輸出發送到電腦102,與第1A圖所示的相似。
光電處理器3210包括光源3230,其可以與第1A圖的雷射單元142相似,其中光源3230的多個輸出訊號是相干的。光源3230還可以使用發光二極體來產生不相干或具有低相干性的多個輸出訊號。光電矩陣乘法單元3220包括調變器陣列144,調變器陣列144接收由第一DAC子單元132基於輸入向量產生的調變器控制訊號,與由第1A圖的光處理器140所執行的操作相似。調變器陣列144的輸出可比為第18圖中的光學端口或光源1802的輸出。光電矩陣乘法單元3220處理來自調變器陣列144的光訊號的方式與在第18圖中的複製模組1804、乘法模組1806以及求和模組1808處理來自光學端口或光源1802的光訊號的方式相似。
參照第32B圖,光電矩陣乘法單元3220接收輸入向量
Figure 02_image080
,並且將輸入向量乘以矩陣
Figure 02_image082
,以產生輸出向量
Figure 02_image140
光電矩陣乘法單元3220包括m 個光路徑1803_1、1803_2、...、1803_m (統稱為1803),其承載表示輸入向量的光訊號。複製模組1804_1將輸入光訊號v 1 的副本提供給乘法模組1806_11、1806_21、...、1806_m 1。複製模組1804_2將輸入光訊號v 2 的副本提供給乘法模組1806_12、1806_22、...、1806_m 2。複製模組1804_n 將輸入光訊號vn 的副本提供給乘法模組1806_1n 、1806_2n 、...、1806_mn
如上面所述,由複制模組1804_1提供的光訊號v 1 的副本的幅度相對於彼此是相同的(或大抵相同的),但是與調變器陣列144所提供的光訊號v 1 不同。舉例來說,如果複製模組1804_1在m 個信號中均勻地分割由調變器陣列144所提供的光訊號v 1 的訊號功率,則m 個訊號中的每一個將具有等於或小於調變器陣列144所提供的光訊號v 1 的功率的1/m 的功率。
乘法模組1806_11將輸入訊號v 1 與矩陣元素M 11 相乘以產生M 11v 1 。乘法模組1806_21將輸入訊號v 1 與矩陣元素M 21 相乘以產生M 21v 1 。乘法模組1806_m 1將輸入訊號v 1 與矩陣元素Mm 1 相乘以產生Mm 1v 1 。乘法模組1806_12將輸入訊號v 2 與矩陣元素M 12 相乘以產生M 12v 2 。乘法模組1806_22將輸入訊號v 2 與矩陣元素M 22 相乘以產生M 22v 2 。乘法模組1806_m 2將輸入訊號v 2 與矩陣元素Mm 2 相乘以產生Mm 2v 2 。乘法模組1806_1n 將輸入訊號vn 與矩陣元素M 1n 相乘以產生M 1n vn 。乘法模組1806_2n 將輸入訊號vn 與矩陣元素M 2n 相乘以產生M 2n vn 。乘法模組1806_mn 將輸入訊號vn 與矩陣元素Mmn 相乘以產生Mmn vn ,以此類推。
第二DAC子單元134基於矩陣元素的數值產生控制信號,並且將控制信號發送到乘法模組1806,以使乘法模組1806能夠藉由使用光幅度調變將輸入向量元素的數值乘以矩陣元素的數值。舉例來說,乘法模組1806_11可包括光幅度調變器,並且藉由將矩陣元素
Figure 02_image142
的數值編碼作為應用於表示輸入向量元素v 1 的輸入光訊號的幅度調變準位,可以實現將輸入向量元素
Figure 02_image144
乘以矩陣元素
Figure 02_image142
求和模組1808_1接收乘法模組1806_11、1806_12、...、1806_1n 的輸出,並且產生等於
Figure 02_image146
的總和y 1 。求和模組1808_2接收乘法模組1806_21、1806_22、...、1806_2n 的輸出,並且產生等於
Figure 02_image148
的總和y 2 。求和模組1808_n 接收乘法模組1806_m 1、1806_m 2、...、1806_mn 的輸出,並且產生等於
Figure 02_image150
的總和yn 。在人工神經網路計算系統3200中,光電矩陣乘法單元3220的輸出被提供給ADC單元160,而不會如第1A圖的人工神經網路計算系統100中的情況通過偵測單元146。這是因為乘法模組1806或求和模組1808已經將光訊號轉換成電訊號,因此人工神經網路計算系統3200中不需要分開的偵測單元146。
第33圖顯示了使用第32A圖的ANN計算系統3200執行ANN計算的方法3300的流程圖。方法3300的步驟可以由ANN計算系統3200的控制器110執行。在一些實施例中,方法3300的各個步驟可以並行、組合、循環或以任何順序運行。
在步驟3310中,接收包括輸入資料集和第一多個神經網路權重的人工神經網路(ANN)計算請求。輸入資料集包括第一數位輸入向量。第一個數位輸入向量是輸入資料集的子集。舉例來說,它可以是影像的子區域。ANN計算請求可以由各種實體(例如第32A圖的電腦102)產生。電腦可包括各種類型的計算裝置中的一或多個,例如個人電腦、伺服器電腦、載具電腦和飛行電腦。ANN計算請求通常是指通知或告知要執行ANN計算的ANN計算系統100的電訊號。在一些實施例中,ANN計算請求可以被分為兩個或多個訊號。舉例來說,第一訊號可以詢問(query)ANN計算系統3300以檢查ANN計算系統3300是否準備好接收輸入資料集和第一多個神經網路權重。響應於ANN計算系統3300的肯定應答,電腦102可以發送包括輸入資料集和第一多個神經網路權重的第二訊號。
在步驟3320中,儲存輸入資料集和第一多個神經網路權重。控制器110可以將輸入資料集和第一多個神經網路權重儲存在記憶體單元120中。在記憶體單元120中儲存輸入資料集和第一多個神經網路權重可以允許ANN計算系統3300的操作中的靈活性,例如可以改善系統的整體效能。舉例來說,藉由從記憶體單元120檢索(retrieve)輸入資料集的期望部分,可以將輸入資料集分為設定大小和格式的數位輸入向量。輸入資料集的不同部分可以以各種順序處理,或者被混洗(shuffled),以允許執行各種類型的ANN計算。舉例來說,在輸入和輸出矩陣大小不同的情況下,混洗可以允許藉由塊矩陣乘法技術執行矩陣乘法。作為另一實施例,將輸入資料集和第一多個神經網路權重儲存在記憶體單元120中可以允許藉由ANN計算系統3300對多個ANN計算請求進行排隊,這可以允許ANN計算系統3300以其全速維持操作而沒有不活動的時段。
在一些實施例中,輸入資料集可以儲存在第一記憶體子單元中,並且第一多個神經網路權重可以儲存在第二記憶體子單元中。
在步驟3330中,基於第一數位輸入向量產生第一多個調變器控制訊號,並且基於第一多個神經網路權重產生第一多個權重控制訊號。控制器110可以將第一DAC控制訊號發送至DAC單元130,以產生第一多個調變器控制訊號。DAC單元130基於第一DAC控制訊號產生第一多個調變器控制訊號,並且調變器陣列144產生表示第一數位輸入向量的光輸入向量。
第一DAC控制訊號可包括將要由DAC單元130轉換成第一多個調變器控制訊號的多個數位值。多個數位值通常對應第一數位輸入向量,並且可以透過各種數學關係或查找表來關聯。舉例來說,多個數位值可以與第一數位輸入向量的元素的數值成線性比例。作為另一實施例,多個數位值可以透過查找表與第一數位輸入向量的元素關聯,該查找表被配置以維持數位輸入向量與由調變器陣列144產生的光輸入向量之間的線性關係。
控制器110可以將第二DAC控制訊號發送至DAC單元130,以產生第一多個權重控制訊號。DAC單元130基於第二DAC控制訊號產生第一多個權重控制訊號,並且根據第一多個權重控制訊號重新配置光電矩陣乘法單元3220,實現對應第一多個神經網路權重的矩陣。
第二DAC控制訊號可包括將要由DAC單元130轉換成第一多個權重控制訊號的多個數位值。多個數位值通常對應第一多個神經網路權重,並且可以透過各種數學關係或查找表來關聯。舉例來說,多個數位值可以與第一多個神經網路權重成線性比例。作為另一實施例,多個數位值可以藉由對第一多個神經網路權重執行各種數學操作來計算,以產生權重控制訊號,權重控制信號可以配置光電矩陣乘法單元3220以執行對應第一多個神經網路權重的矩陣乘法。
在步驟3340中,得到對應光電矩陣乘法單元3220的電輸出向量的第一多個數位輸出。由調變器陣列144所產生的光輸入向量由光電矩陣乘法單元3220處理並且轉換為電輸出向量。電輸出向量由ADC單元160轉換成數位值。控制器110可以將轉換請求發送至ADC單元160,以開始將光電矩陣乘法單元3220輸出的電壓轉換為數位輸出。一旦轉換完成,ADC單元160可將轉換結果發送至控制器110。或者,控制器110可以從ADC單元160檢索轉換結果。控制器110可以從數位輸出形成數位輸出向量,該數位輸出向量對應輸入數位向量的矩陣乘法的結果。舉例來說,數位輸出可以被組織或連接以具有向量格式。
在一些實施例中,可基於由控制器110將DAC控制訊號發出到DAC單元130,來設定或控制ADC單元160以執行ADC轉換。舉例來說,ADC轉換可以被設定以在DAC單元130產生調變控制訊號之後的預設時間開始。ADC轉換的這種控制可以簡化控制器110的操作並且減少必要的控制操作的數量。
在步驟3350中,對第一數位輸出向量執行非線性轉換以產生第一轉換數位輸出向量。ANN的節點或人工神經元藉由首先執行從先前層的節點接收的訊號的權重總和,然後執行權重總和的非線性轉換(“激活”)以產生輸出來進行操作。各種類型的ANN可以實現各種類型的可微分的非線性轉換。非線性轉換函數的實施例包括修正線性單元(rectified linear unit;RELU)函數、Sigmoid函數、雙曲正切函數(yperbolic tangent function),X^2函數以及|X|函數。由控制器110對第一數位輸出執行這種非線性轉換,以產生第一轉換數位輸出向量。在一些實施例中,非線性轉換可由控制器110內的專用數位積體電路執行。舉例來說,控制器110可包括一或多個模組或電路塊,其特別適於加速一或多種類型的非線性轉換的計算。
在步驟3360中,儲存第一轉換數位輸出向量。控制器110可以將第一轉換數位輸出向量儲存在記憶體單元120中。在輸入資料集被分成多個數位輸入向量的情況下,第一轉換數位輸出向量對應輸入資料集的一部分的ANN計算結果,例如第一數位輸入向量。如此一來,儲存第一轉換數位輸出向量允許ANN計算系統3200在輸入資料集的其他數位輸入向量上執行和儲存額外計算,以在稍後被聚合成單一ANN輸出。
在步驟3370中,輸出基於第一轉換數位輸出向量產生的人工神經網路輸出。控制器110產生ANN輸出,其是透過由第一多個神經網路權重所定義的ANN處理輸入資料集的結果。在輸入資料集被分成多個數位輸入向量的情況下,所產生的ANN輸出是包括第一轉換數位輸出的聚合輸出,但是可更包括對應輸入資料集的其他部分的額外轉換數位輸出。一旦產生ANN輸出,就將所產生的輸出發送至發起ANN計算請求的電腦(例如電腦102)。
可以為實現方法3300的ANN計算系統3200定義各種效能指標(performance metric)。定義效能指標可以允許將實現光電處理器3210的ANN計算系統3200的效能與用於替代實現電矩陣乘法單元(electronic matrix multiplication unit)的ANN計算的其他系統的效能進行比較。在一個觀點中,可以執行ANN計算的速率可以部分地由第一循環週期指示,第一循環週期定義為在記憶體單元中儲存輸入資料集和第一多個神經網路權重的步驟3320與在記憶體單元中儲存第一轉換數位輸出向量的步驟3360之間所經過的時間。因此,第一循環週期包括將電訊號轉換成光訊號(例如:步驟3330)、在光域和電域中執行矩陣乘法(例如:步驟3340)所花費的時間。步驟3320和3360都涉及將資料儲存至記憶體單元120中,這是在ANN計算系統3200和沒有光電處理器3210的習知ANN計算系統之間共享的步驟。如此一來,測量記憶體到記憶體交易時間(memory-to-memory transaction time)的第一循環週期可以允許在ANN計算系統3200與沒有光電處理器3210的ANN計算系統(例如實現電矩陣乘法單元的系統)之間進行ANN計算流通量的實際或公平比較。
由於調變器陣列144可以產生光輸入向量的速率(例如:在25GHz)和光電矩陣乘法單元3220的處理速率(例如:>25GHz),用於執行單一數位輸入向量的單一ANN計算的ANN計算系統3200的第一循環週期可以接近調變器陣列144的速度的倒數(例如40ps)。在考慮與DAC單元130的訊號產生和ADC單元160的ADC轉換相關聯的延遲之後,第一循環週期可以小於或等於100ps、小於或等於200ps、小於或等於500ps、小於或等於1ns、小於或等於2ns、小於或等於5ns、或小於或等於10ns。
作為比較,電矩陣乘法單元的M×1向量和M×M矩陣的乘法執行時間通常與M^2-1個處理器時鐘週期(processor clock cycle)成比例。對於M=32,這種乘法將花費大約1024個週期,其在3GHz時鐘速度下導致執行時間超過300ns,這比ANN計算系統3200的第一循環週期慢幾個數量級。
在一些實施例中,方法3300更包括基於第一轉換數位輸出向量產生第二多個調變器控制訊號的步驟。在一些類型的ANN計算中,單一數位輸入向量可以透過相同的ANN重複傳播或由相同的ANN處理。如上面所述,實現多次通過處理(multi-pass processing)的ANN可以稱為遞歸神經網路(recurrent neural network;RNN)。RNN是神經網路,其中在第(k)次通過神經網路期間網絡的輸出被再循環回到神經網路的輸入並且在第(k+1)次通過期間被用作輸入。RNN可以在圖案識別任務中具有各種應用,例如語音或手寫識別。一旦產生了第二多個調變器控制信號,方法3300就可以從步驟3340進行到步驟3360,以完成第一數位輸入向量通過ANN的第二次。通常來說,根據在ANN計算請求中所接收的RNN的特性,將轉換的數位輸出作為數位輸入向量的再循環可以重複預定數量的循環。
在一些實施例中,方法3300更包括基於第二多個神經網路權重產生第二多個權重控制訊號的步驟。在一些情況下,人工神經網路計算請求更包括第二多個神經網路權重。如上面所述,通常來說,除了輸入層和輸出層之外,ANN還具有一或多個隱藏層。對於具有兩個隱藏層的ANN,第二多個神經網路權重可對應ANN的第一層與ANN的第二層之間的連接性。為了透過ANN的兩個隱藏層處理第一數位輸入向量,可以首先根據方法3300處理第一數位輸入向量直到步驟3360,其中在步驟3360透過ANN的第一隱藏層處理第一數位輸入向量的結果儲存在記憶體單元120中。接著控制器110重新配置光電矩陣乘法單元3220以執行對應與ANN的第二隱藏層相關聯的第二多個神經網路權重的矩陣乘法。一旦光電矩陣乘法單元3220被重新配置,方法3300可以基於第一轉換數位輸出向量產生多個調變器控制訊號,其產生對應第一隱藏層的輸出的更新的光輸入向量。接著更新的光輸入向量由重新配置的光電矩陣乘法單元3220處理,光電矩陣乘法單元3220對應ANN的第二隱藏層。通常來說,所述的步驟可以重複直到已經透過ANN的所有隱藏層處理了數位輸入向量。
在光電矩陣乘法單元3220的一些實施例中,光電矩陣乘法單元3220的重新配置速率可明顯慢於調變器陣列144的調變速率。在這種情況下,ANN計算系統3200的流通量可能受到在其不能執行ANN計算的期間,重新配置光電矩陣乘法單元3220所花費的時間量的不利影響。為了減輕光電矩陣乘法單元3220的相對慢的重新配置時間的影響,可以利用批量處理(batch processing)技術,其中兩個或多個數位輸入向量傳播通過光電矩陣乘法單元3220而沒有配置改變,以分攤(amortize)重新配置時間在更大數量的數位輸入向量上。
第34圖顯示了說明第33圖的方法3300的示意圖3290。對於具有兩個隱藏層的ANN,代替透過第一隱藏層處理第一數位輸入向量、重新配置光電矩陣乘法單元3220用於第二隱藏層、透過重新配置的光電矩陣乘法單元3220處理第一數位輸入向量、以及對剩餘的數位輸入向量重複相同的操作,可以首先透過對第一隱藏層(配置#1)配置的光電矩陣乘法單元3220來處理輸入資料集的所有數位輸入向量,如示意圖3290的上部所示。一旦藉由具有配置#1的光電矩陣乘法單元3220處理了所有數位輸入向量,則將光電矩陣乘法單元3220重新配置成配置#2,其對應ANN的第二隱藏層。此重新配置可以明顯慢於光電矩陣乘法單元3220可以處理的輸入向量的速率。一旦光電矩陣乘法單元3220被重新配置用於第二隱藏層,來自先前隱藏層的輸出向量可以由光電矩陣乘法單元3220批量處理。對於具有數十或數十萬個數位輸入向量的大輸入資料集,可以藉由大致相同的因素來減少重新配置時間的影響,這可以顯著減少ANN計算系統3200在重新配置中花費的時間部分。
為了實現批量處理,在一些實施例中,方法3300更包括透過DAC單元基於第二數位輸入向量產生第二多個調變器控制訊號的步驟;從ADC單元得到對應光電矩陣乘法單元的輸出向量的第二多個數位輸出的步驟,第二多個數位輸出形成第二數位輸出向量;對第二數位輸出向量執行非線性轉換以產生第二轉換數位輸出向量的步驟;以及在記憶體單元中儲存第二轉換數位輸出向量的步驟。舉例來說,產生第二多個調變器控制訊號可以在步驟3360之後。此外,在這種情況下的步驟3370的ANN輸出現在是基於第一轉換數位輸出向量和第二轉換數位輸出向量。獲取、執行和儲存步驟類似於步驟3340到步驟3360。
批量處理技術是用於提高ANN計算系統3200的流通量的多種技術之一。用於提高ANN計算系統3200的流通量的另一種技術是透過利用波長分波多路複用(WDM)並行處理多個數位輸入向量。如上面所述,WDM是透過公共傳播通道(例如光電矩陣乘法單元3220的波導)同時傳播不同波長的多個光訊號的技術。與電訊號不同,不同波長的光訊號可以透過公共通道傳播,而不會影響在同一通道上不同波長的其他光訊號。此外,可以使用諸如光學多路複用器和多路分解器的公知結構從公共傳播通道添加(多路複用(multiplexed))或丟棄(多路分解(demultiplexed))光訊號。
在ANN計算系統3200的背景下,不同波長的多個光輸入向量可以獨立地產生、同時傳播通過光電矩陣乘法單元3220的光路徑和光學處理部件(例如:光幅度調變器)、以及由電子處理部件(例如:偵測器及/或求和模組)獨立地處理以增強ANN計算系統3200的流通量。
參照第35A圖,在一些實施例中,波長分波多路複用(WDM)人工神經網路(ANN)計算系統3500包括光電處理器3510,光電處理器3510包括光電矩陣乘法單元3520,光電矩陣乘法單元3520具有如第18圖至第24D圖所示的複製模組、乘法模組以及求和模組,以能夠在執行矩陣計算時處理非相干或低相干光訊號,其中光訊號以多個波長編碼。WDM ANN計算系統3500類似於ANN計算系統3200,除了其中使用了WDM技術,對於ANN計算系統3500的一些實施例,光源3230被配置以產生多個波長,例如λ1、λ2以及λ3,與第1F圖的WDM ANN計算系統104相似。
多個波長可以優選地藉由足夠大的波長間隔分開,以允許容易地多路複用和多路分解到公共傳播通道上。舉例來說,大於0.5nm、1.0nm、2.0nm、3.0nm或5.0nm的波長間隔可以允許簡單的多路複用和多路分解。另一方面,多個波長的最短波長與最長波長之間的範圍(“WDM帶寬”)可以優選地足夠小,使得光電矩陣乘法單元3520的特性或效能在多個波長上保持大抵相同。光學部件通常是分散的(dispersive),這意味著它們的光學特性隨著波長而變化。舉例來說,MZI的功率分離比可以隨著波長而變化。然而,藉由將光電矩陣乘法單元3520設計成具有足夠大的操作波長窗口(operating wavelength window),並且藉由將波長限制在操作波長窗口內,由光電矩陣乘法單元3520對應每一個波長所輸出的電輸出向量可以是由光電矩陣乘法單元3520實現的矩陣乘法的足夠精確的結果。操作波長窗口可以是1nm、2nm、3nm、4nm、5nm、10nm或20nm。
WDM ANN計算系統3500的調變器陣列144包括光調變器組(banks of optical modulators),其被配置以產生多個光輸入向量,每一組對應於多個波長之一者並且產生具有相應波長的相應光輸入向量。舉例來說,對於具有長度為32和3個波長(例如:λ1、λ2和λ3)的光輸入向量的系統,調變器陣列144可以具有每一組32個調變器的3個組。此外,調變器陣列144更還包括光多路複用器,其被配置以將多個光輸入向量組合成包括多個波長的組合光輸入向量。舉例來說,光多路複用器可以將三個不同波長的三個調變器組的輸出組合成光輸入向量的每個元素的單一傳播通道(例如波導)。如此一來,返回上面的實施例,組合光輸入向量將具有32個光訊號,每一個訊號包括3個波長。
WDM ANN計算系統3500的光電處理部件更被配置以多路分解多個波長並且產生多個多路分解的輸出電訊號。參照第35B圖,光電矩陣乘法單元3520包括光路徑1803,光路徑1803被配置以從調變器陣列144接收包括多個波長的組合光輸入向量。舉例來說,光路徑1803_1接收在波長λ1、λ2以及λ3的組合光輸入向量元素v 1 。在波長λ1、λ2以及λ3的光輸入向量元素v 1 的副本被提供給乘法模組3530_11、3530_21、...、以及3530_m 1。在乘法模組3530輸出電訊號的一些實施例中,乘法模組3530_11輸出表示M 11v 1 的三個電訊號,其對應在波長λ1、λ2以及λ3的輸入向量元素v 1 。對應在波長λ1、λ2以及λ3的輸入向量元素v 1 的乘法模組3530_11輸出電訊號個別地示為(λ1)、(λ2)以及(λ3)。相似的符號應用於其他乘法模組的輸出。乘法模組3530_21輸出表示M 21v 1 的三個電訊號,其個別地對應在波長λ1、λ2以及λ3的輸入向量元素v 1 。乘法模組3530_m 1輸出表示Mm 1v 1 的三個電訊號,其對應在波長λ1、λ2以及λ3的輸入向量元素v 1
在波長λ1、λ2以及λ3的光輸入向量元素v 2 的副本被提供給乘法模組3530_12、3530_22、...、以及3530_m 2。乘法模組3530_12輸出表示M 12v 2 的三個電訊號,其對應在波長λ1、λ2以及λ3的輸入向量元素v 2 。乘法模組3530_22輸出表示M 22v 2 的三個電訊號,其對應在波長λ1、λ2以及λ3的輸入向量元素v 2 。乘法模組3530_m 2輸出表示Mm 2v 2 的三個電訊號,其對應在波長λ1、λ2以及λ3的輸入向量元素v 2
包括波長λ1、λ2以及λ3的光輸入向量元素vn 的副本被提供給乘法模組3530_1n 、3530_2n 、...、以及3530_mn 。乘法模組3530_1n 輸出表示M 1n vn 的三個電訊號,其對應在波長λ1、λ2以及λ3的輸入向量元素vn 。乘法模組3530_2n 輸出表示M 2n vn 的三個電訊號,其對應在波長λ1、λ2以及λ3的輸入向量元素vn 。乘法模組3530_mn 輸出表示Mmn vn 的三個電訊號,其對應在波長λ1、λ2以及λ3的輸入向量元素vn ,以此類推。
舉例來說,每一個乘法模組3530可包括多路分解器,多路分解器被配置以多路分解包含在多波長光向量的32個訊號之每一個中的三個波長,並且將3個單一波長光輸出向量路由(route)到耦接至三組運算放大器或跨阻抗放大器(例如:運算放大器2030(第20B圖)或2050(第20C圖))的三組光偵測器(例如:光偵測器2012、2016(第20B圖)或2042、2046(第20C圖))。
三組求和模組1808接收來自乘法模組3530的輸出,並且產生對應在各種波長的輸入向量的總和y 。舉例來說,三個求和模組1808_1接收乘法模組3530_11、3530_12、...、3530_1n 的輸出,並且產生個別地對應在波長λ1、λ2以及λ3的輸入向量元素v 1 的總和y 1 (λ1)、y 1 (λ2)、y 1 (λ2),其中在每個波長的總和y 1 等於
Figure 02_image146
。三個求和模組1808_2接收乘法模組3530_21、3530_22、...、3530_2n 的輸出,並且產生個別地對應在波長λ1、λ2以及λ3的輸入向量元素v 2 的總和y 2 (λ1)、y 2 (λ2)、y 2 (λ2),其中在每個波長的總和y 2 等於
Figure 02_image148
。三個求和模組1808_n 接收乘法模組3530_m 1、3530_m 2、...、3530_mn 的輸出,並且產生個別地對應在波長λ1、λ2以及λ3的輸入向量元素vn 的總和yn (λ1)、yn (λ2)、yn (λ2),其中在每個波長的總和yn 等於
Figure 02_image150
再次參照第35A圖,WDM ANN計算系統3500的ADC單元160包括ADC組(banks of ADCs),其被配置以轉換光電矩陣乘法單元3520的多個多路分解輸出電壓(demultiplexed output voltage)。每組對應於多個波長之一者,並且產生相應的數位多路分解輸出(digitized demultiplexed output)。舉例來說,例如,ADC 160的組可以耦接到求和模組1808的組。
控制器110可以實現與方法3300(第33圖)相似的方法,但是擴展為支持多波長操作。舉例來說,方法可包括從ADC單元160得到多個數位多路分解輸出的步驟,多個數位多路分解輸出形成多個第一數位輸出向量,其中多個第一數位輸出向量中的每一者對應多個波長中的一者;對多個第一數位輸出向量中的每一者執行非線性轉換,以產生多個轉換第一數位輸出向量的步驟;以及在記憶體單元中儲存多個轉換第一數位輸出向量的步驟。
在一些情況下,可以專門設計ANN,並且可以具體地形成數位輸入向量,使得可以在不進行多路分解的情況下加入乘法模組3530的多波長乘積(multi-wavelength product)。在這種情況下,乘法模組3530可以是波長非敏感(wavelength-insensitive)的乘法模組,其不會多路分解多波長乘積的多個波長。如此一來,乘法模組3530的每一個光偵測器有效地將光訊號的多個波長加到單一光電流中,並且乘法模組3530輸出的每一個電壓對應於對多個波長的向量元素和矩陣元素的乘積的總和。求和模組1808(僅需要一個組)輸出多個數位輸入向量的矩陣乘法結果的元素對元素總和(element-by-element sum)。
第35C圖顯示了用於使用2×2元素矩陣執行向量矩陣乘法的分波多路複用的光電矩陣乘法單元3520的實現的系統配置3500的實施例,其中在電域中執行求和操作。在此實施例中,輸入向量是
Figure 02_image066
,並且矩陣是
Figure 02_image068
。在此實施例中,輸入向量具有多個波長λ1、λ2以及λ3,並且輸入向量的每個元素在不同的光訊號上編碼。兩個不同的複製模組1902執行光複製操作以在不同的路徑(例如:“上”路徑和“下”路徑)上分離計算。存在四個乘法模組1904,每個乘法模組1904使用光幅度調變乘以不同的矩陣元素。每個乘法模組1904的輸出被提供給多路分解器和一組光偵測模組3310,光偵測模組3310將波長分波多路複用光訊號轉換成與波長λ1、λ2以及λ3相關的電流形式的電訊號。使用與波長λ1、λ2以及λ3相關的一組求和模組3320來組合不同輸入向量元素的兩個上路徑,並且使用與波長λ1、λ2以及λ3相關的一組求和模組3320來組合不同輸入向量元素的兩個下路徑,其中求和模組3320在電域中執行求和。因此,對每個波長的輸出向量的每個元素都在不同的電訊號上編碼。如第35A圖所示,隨著計算的進行,遞增地產生輸出向量的每個分量,以對每個波長個別地產生上路徑和下路徑的以下結果。
Figure 02_image070
Figure 02_image072
可以使用各種光電技術中的任何一種來實現系統配置3500。在一些實施例中,存在共同基板(例如:半導體(例如矽)),其可以支持積體光學部件和電子部件。光路徑可以在波導結構中實現,波導結構具有由具有較低光學指數(optical index)的材料圍繞的具有較高光學指數的材料,該材料定義用於傳播承載了光訊號的光波的波導。電路徑可以由導電材料實現,用於傳播承載了電訊號的電流。(在第35C圖中,表示路徑的線的厚度用於區分光路徑(由較粗的線表示)和電路徑(由較細的線或虛線表示)。) 可以在公共基板上製造光學裝置(例如分離器和光幅度調變器),以及電子裝置(例如光偵測器和運算放大器(op-amp))。或者,可以使用具有不同基板的不同裝置來實現系統的不同部分,並且那些裝置可以透過通訊通道進行通訊。舉例來說,光纖可用於提供通訊通道,以在用於實現整個系統的多個裝置之間發送光訊號。那些光訊號可以表示當執行向量矩陣乘法時所提供的輸入向量的不同子集,及/或當執行向量矩陣乘法時所計算的中間結果的不同子集,如下面更詳細的描述。
到目前為止,作為ANN計算的一部分執行的權重總和的非線性轉換由控制器110在數位域中執行。在一些情況下,非線性轉換可能是計算密集的(computationally intensive)或耗電的,顯著增加了控制器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得到的第一轉換電壓作為第一轉換數位輸出向量儲存在記憶體單元120中。
可以以各種方式實現類比非線性單元310,如上面對第3A圖的類比非線性單元310的討論。使用類比非線性單元310可以藉由減少在數位域中執行的步驟來改善ANN計算系統3600的效能,例如流通量或功率效率。將非線性轉換步驟移出數位域可以允許ANN計算系統的操作中的額外的靈活性和改進。舉例來說,在遞歸神經網路中,光電矩陣乘法單元3220的輸出被激活,並且再循環回到光電矩陣乘法單元3220的輸入。激活步驟由ANN計算系統3200中的控制器110執行,這需要在每次通過光電矩陣乘法單元3220時數位化光電矩陣乘法單元3220的輸出電壓。然而,因為激活步驟現在在ADC單元160的數位化之前執行,所以可以減少在執行遞歸神經網路計算中所需的ADC轉換的次數。
在一些實施例中,類比非線性單元310可以整合到ADC單元160中作為非線性ADC單元。舉例來說,非線性ADC單元可以是具有非線性查找表的線性ADC單元,其將線性ADC單元的線性數位輸出映射到所期望的非線性轉換數位輸出。
第37圖顯示了ANN計算系統3700的示意圖。ANN計算系統3700類似於第36圖的ANN計算系統3600,不同之處在於它更包括類比記憶體單元320。類比記憶體單元320耦接至DAC單元130(例如:透過第一DAC子單元132)、調變器陣列144和類比非線性單元310。類比記憶體單元320包括多路複用器,其具有耦接至第一DAC子單元132的第一輸入和耦接至類比非線性單元310的第二輸入。這允許類比記憶體單元320從第一DAC子單元132或類比非線性單元310接收訊號。類比記憶體單元320被配置以儲存類比電壓並且輸出所儲存的類比電壓。可以以各種方式實現類比記憶體單元320,如上面對第3B圖的類比記憶體單元320的討論。
現在將描述ANN計算系統3700的操作。由DAC單元130(例如:由第一DAC子單元132)輸出的第一多個調變器控制訊號首先透過類比記憶體單元320輸入至調變器陣列144。在此步驟中,類比記憶體單元320可以簡單地傳遞或緩衝第一多個調變器控制訊號。調變器陣列144基於第一多個調變器控制訊號產生光輸入向量,其透過光電矩陣乘法單元3220傳播。光電矩陣乘法單元3220的輸出電壓由類比非線性單元310非線性轉換。此時,代替由ADC單元160數位化,光電矩陣乘法單元3220的輸出電壓由類比記憶體單元320儲存,其接著輸出到調變器陣列144,以被轉換成將要透過光電矩陣乘法單元3220傳播的下一個光輸入向量。在控制器110的控制下,可以在預設時間量或預設數量的循環執行該遞歸處理(recurrent processing)。一旦對於給定數位輸入向量完成了遞歸處理,類比非線性單元310的轉換輸出電壓就由ADC單元160轉換。
在ANN計算系統3700中使用類比記憶體單元320的優點與在第3B圖的ANN計算系統302中使用類比記憶體單元320的優點相似。相似地,使用ANN計算系統3700的遞歸神經網絡計算的執行可以與第3B圖的ANN計算系統302的相似。
如上面對第4A圖的ANN計算系統400的討論,使用ANN計算系統具有優點,ANN計算系統內部操作在比輸入資料集的解析度低的位元解析度,同時保持ANN計算輸出的解析度。參照第38圖,顯示了具有1位元內部解析度的人工神經網路(ANN)計算系統3800的示意圖。ANN計算系統3800與ANN計算系統3200(第32A圖)相似,不同之處在於DAC單元130現在由驅動器單元430代替,並且ADC單元160現在由比較器單元460代替。
在第38圖的ANN計算系統3800中的驅動器單元430和比較器單元460以類似於在第4A圖的ANN計算系統400中的驅動器單元430和比較器460的方式操作。在第38圖中的ANN計算系統3800的操作的數學表示類似於在第4A圖中所示的ANN計算系統400的操作的數學表示。
ANN計算系統3800藉由執行1位元向量的一系列矩陣乘法,接著對個別矩陣乘法結果求和來執行特定ANN計算。使用第4A圖所示的實施例,藉由透過驅動器單元430產生對應4個1位元輸入向量的4個1位元調變器控制訊號的序列,可以將分解的輸入向量Vbit0 到Vbit3 中的每一個與矩陣U相乘。這又產生4個1位元光輸入向量的序列,其由配置通過驅動器單元430的光電矩陣乘法單元3220處理,以實現矩陣U的矩陣乘法。接著,控制器110可以從比較器單元460得到對應4個1位元調變器控制訊號的序列的4個數位1位元光輸出的序列。
在將4位元向量分解為4個1位元向量的情況下,每一個向量應該由ANN計算系統3800處理,其速度是其他ANN計算系統(例如ANN計算系統3200(第32A圖))可以處理單一個4位元向量的速度的四倍,以保持相同的有效ANN計算流通量。這種增加的內部處理速度可以被視為將4個1位元向量分時多工(time-division multiplexing)到用於處理4位元向量的單一時槽(timeslot)中。處理速度所需的增加可以至少部分地藉由驅動器單元430和比較器單元460相對於DAC單元130和ADC單元160的增加的操作速度來實現,因為訊號轉換處理的解析度的降低通常造成可實現的訊號轉換速率的增加。
在此實施例中,雖然在1位元操作中的訊號轉換速率增加了四倍,但是相對於4位元操作,功率消耗結果可以顯著降低。如上面所述,訊號轉換處理的功率消耗通常隨著位元解析度指數地縮放,同時隨著轉換速率線性地縮放。如此一來,每次轉換功率降低16倍可能是由於位元解析度降低4倍,接著是轉換速率增加4倍的結果。總而言之,通過ANN計算系統3800可以在ANN計算系統3200之上實現操作功率的4倍減小,同時保持相同的有效ANN計算流通量。
接著,控制器110可以藉由將每一個數位1位元光輸出乘以相應的權重2^0到2^3,從4個數位1位元光輸出建構4位元數位輸出向量。一旦建構了4位元數位輸出向量,就可以藉由對所建構的4位元數位輸出向量執行非線性轉換來進行ANN計算,以產生轉換4位元數位輸出向量;以及在記憶體單元120中儲存轉換4位元數位輸出向量。
替代地(或另外地),在一些實施例中,可以對4個數位1位元光輸出中的每一者進行非線性轉換。舉例來說,階梯函數非線性函數(step-function nonlinear function)可以用於非線性轉換。接著可以從非線性轉換的數位1位元光輸出建構出轉換4位元數位輸出向量。
雖然已經顯示並描述了個別的ANN計算系統3800,但通常來說,第32A圖的ANN計算系統3200可以被設計以實現類似於ANN計算系統3800的功能。舉例來說,DAC單元130可包括1位元DAC子單元,其被配置以產生1位元調變器控制訊號,並且ADC單元160可以被設計為具有1位元的解析度。這種1位元ADC可以與比較器類似或有效地等價於比較器。
此外,雖然已經描述了具有1位元內部解析度的ANN計算系統的操作,但通常來說,ANN計算系統的內部解析度可以降低到低於輸入資料集的N位解析度的中間準位。舉例來說,內部解析度可以減少到2^Y位元,其中Y是大於或等於0的整數。
各種替代系統配置或訊號處理技術可以與此處所述的不同系統、子系統以及模組的各種實施例一起使用。
在一些實施例中,一些或所有VMM子系統以替代子系統替換可能是有用的,包括使用各種複製模組、乘法模組及/或求和模組的不同實施例的子系統。舉例來說,VMM子系統可包括此處所描述的光複製模組和此處所描述的電求和模組,但是乘法模組可以使用在電域而不是光電域中執行乘法操作的子系統代替。在此實施例中,光幅度調變器陣列可以由偵測器陣列代替,以將光訊號轉換為電訊號,後續接著是電子子系統(例如:ASIC、處理器或SoC)。可選地,如果光訊號路由(optical signal routing)將被用於被配置以偵測光訊號的求和模組,則電子子系統可包括使用電調變光源陣列(array of electrically-modulated optical sources)的電光轉換。
在一些實施例中,對於用於一些或所有VMM計算的一些或所有光訊號能夠使用單一波長可能是有用的。或者,在一些實施例中,為了幫助減少可能需要的光輸入端口的數量,輸入端口可以接收多路複用光訊號,多路複用光訊號具有在不同波長的不同光波上編碼的不同數值。接著,可以在系統中的適當位置將那些光波分開,這取決於複製模組、乘法模組及/或求和模組中的任何一個是否被配置以在多個波長上操作。但是,即使在多波長實施例中,對於在相同VMM子系統中使用的不同光訊號子集,使用相同波長可能是有用的。
在一些實施例中,累加器可用來實現由各種模組接收的光訊號和電訊號的時域編碼,從而減輕電路的需要,以在大量不同功率準位上有效操作。舉例來說,使用二進制(開(on)-關(off))幅度調變編碼的在每個符號的N個時隙上具有特定佔空比的訊號,可以在該信號通過累加器(整合電訊號的電流或電壓的類比電子累加器)之後,被轉換為每個符號具有N個幅度準位的訊號。因此,如果光學裝置(例如:光幅度調變器中的相位調變器)能夠在符號帶寬(symbol bandwidth)B操作,則它們反而可以在符號帶寬B/100操作,其中每個符號值使用N=100時槽。50%的積分幅度具有50%的佔空比(例如:前50個時槽在非零的“開”準位,接著是50個時槽在零或接近零的“關”準位),而10%的積分幅度具有10%的佔空比(例如:前10個時槽在非零的“開”準位,接著是90個時槽在零的“關”準位)。在此處所述的實施例中,這種累加器可以被定位在VMM子系統內與每個電信號一致的在任何位置的每個電訊號的路徑上,例如在用於該VMM子系統中的所有電訊號的求和模組之前或者在用於該VMM子系統中的所有電訊號的求和模組之後。VMM子系統還可以被配置使得在保持不同符號的對準的不同電訊號之間不存在顯著的相對時間位移。
參照第40圖,在一些實施例中,零差偵測可用於得到調變訊號的相位和幅度。零差偵測器4000包括了包括2×2多模式干涉(MMI)耦合器的光束分離器4002、兩個光偵測器4004a和4004b以及減法器4006。光束分離器4002接收輸入訊號E1 和E2 ,光束分離器402的輸出由光偵測器4004a和4004b偵測。舉例來說,輸入訊號E1 可以是要被偵測的訊號,並且輸入訊號E2 可以由具有恆定雷射功率的本地振盪器產生。在訊號被光偵測器4004a和4004b偵測到之前,由光束分離器4002將本地振盪器訊號E2 與輸入訊號E1 混合。減法器4006輸出光偵測器4004a和4004b的輸出之間的差值。減法器4006的輸出4008與
Figure 02_image152
成比例,其中|
Figure 02_image154
Figure 02_image156
是兩個輸入光場(input optical field)的幅度,
Figure 02_image158
是它們的相對相位。由於輸出與兩個光場的乘積相關,因此即使在單一光子準位下也能偵測到極弱的光訊號。
舉例來說,零差偵測器4000可用於第1A圖、第1F圖、第3A圖至第4A圖、第5圖、第7圖、第9圖、第18圖至24E圖、第26圖至第32B圖以及第35A圖至第38圖所示的系統中。零差偵測器4000提供訊號上的增益(gain),並因此提供更好的訊號雜訊比(signal noise ratio)。對於相干系統,零偵檢測器4000提供了透過偵測結果的極性的揭示訊號的相位資訊的附加效益。
在第19B圖的實施例中,系統配置1920包括2×2元素矩陣,其中使用兩個不同的相應波長
Figure 02_image074
Figure 02_image076
在兩個光訊號上編碼兩個輸入向量元素。可以使用兩個光纖將兩個光訊號提供給系統配置1920。舉例來說,對4×4矩陣執行矩陣處理的系統可以接收四個光纖上承載的四個輸入光訊號。雖然可以使用更多光纖來承載用於處理較大矩陣的系統的更多輸入光訊號,但因為光纖和光電晶片之間的耦合佔用相當大的空間,很難將大量光纖耦接到光電晶片上。
減少將光信號承載到光電晶片所需的光纖數量的方法是使用波長分波多路複用。可以使用單一光纖多路複用和傳輸具有不同波長的多個光訊號。舉例來說,參照第41圖,在計算系統4100中,具有波長
Figure 02_image074
的第一光訊號4102由第一調變器4104調變,以產生表示第一輸入向量元素V 1 的第一調變光訊號4120。具有波長
Figure 02_image076
的第二光訊號4106由第二調變器4108調變,以產生表示第二輸入向量元素V 2 的第二調變光訊號4122。第一和第二調變光訊號由多路複用器4110組合以產生波長分波多路複用訊號,其透過光纖4112被傳輸到光電晶片4114,光電晶片4114包括多個矩陣乘法模組4116a、4116b、4116c以及4116d(統稱為4116)和4118a、4118b、4118c以及4118d(統稱為4118)。
在光電晶片4114內部,藉由多路分解器4118多路分解波長分波多路複用訊號,以分離第一調變光訊號4120和第二調變光訊號4122。在此實施例中,第一調變光訊號4120由複製模組4124複製,以產生發送到矩陣乘法模組4116a和4118a的光訊號的副本。第二調變光訊號4122由複製模組4126複製,以產生發送到矩陣乘法模組4116b和4118b的光訊號的副本。矩陣乘法單元4116a和4116b的輸出使用光耦合器4120a組合,並且組合訊號由光偵測器4122a偵測。
具有波長
Figure 02_image074
的第三光訊號4124由第三調變器4128調變,以產生表示第三輸入向量元素V 3 的第三調變光訊號4132。具有波長
Figure 02_image076
的第四光訊號4126由第四調變器4130調變,以產生表示第四輸入向量元素V 4 的第四調變光訊號4134。第三和第四調變光訊號由多路複用器4136組合以產生波長分波多路複用訊號,其透過光纖4138傳輸到光電晶片4114。
在光電晶片4114內部,由光纖4138提供的波長分波多路複用訊號由多路分解器4140多路分解,以分離光訊號4132和4134。在此實施例中,第三調變光訊號4132由複製模組4142複製,以產生發送到矩陣乘法模組4116c和4118c的光訊號的副本。第四調變光訊號4134由複製模組4144複製,以產生發送到矩陣乘法模組4116d和4118d的光訊號的副本。矩陣乘法單元4116c和4116d的輸出使用光耦合器4120b組合,並且組合訊號由光偵測器4122b偵測。矩陣乘法單元4118a和4118b的輸出使用光耦合器組合,並且組合訊號由光偵測器偵測。矩陣乘法單元4118c和4118d的輸出使用光耦合器組合,並且組合訊號由光偵測器偵測。
在一些實施例中,多路複用器可以多路複用具有三個或多個(例如:10或100)波長的光信號,以產生由單一光纖傳輸的波長分波多路複用訊號,並且光電經片內部的多路分解器可以多路分解波長分波多路複用訊號,以將具有不同波長的訊號分開。這允許更多的光訊號並行通過光纖傳輸到光電晶片,增加了光電晶片的資料處理流通量。
在一些實施例中,第1A圖的雷射單元142包括單一雷射,其提供可以用不同的光訊號調變的光波。在那種情況下,系統的各個波導中的光波在雷射的線寬的解析度內具有彼此大抵相同的公共波長。舉例來說,光波可具有彼此在1nm之內的波長。然而,雷射單元142還可包括多個雷射,其能夠使用調變到不同相應光波(例如:每個具有1nm或更小的線寬)上的不同的光訊號來進行波長分波多路複用操作。不同的光波可具有峰值波長,其彼此分開的波長距離大於個別雷射的線寬(例如:大於1nm)。在一些實施例中,波長分波多路複用系統可以使用被調變到具有幾奈米(例如:3nm或更大)的波長的光波上的光訊號。然而,如果多路分解器具有更好的解析度,則WDM系統中不同波長之間的差異也可以小於3nm。
本揭露所述的數位控制器(例如:用於控制第24E圖所示的部件)和功能操作可以在數位電子電路中實現,或者在電腦軟體、韌體或硬體中實現,其包括本揭露中的結構及其結構等價物,或者其中的一或多個組合。本揭露所述的實施例和功能操作可以使用在電腦可讀媒體上所編碼的一或多個電腦程式指令模組來實現,以由資料處理裝置來執行或控制資料處理裝置的操作。電腦可讀媒體可以是製造產品(例如電腦系統中的硬碟驅動器或通過零售管道銷售的光碟)或嵌入式系統。計算機可讀介質可以個別地獲取並隨後使用電腦程式指令的一或多個模組進行編碼,例如藉由有線或無線網路傳送電腦程式指令的一或多個模組。電腦可讀媒體可以是機器可讀儲存裝置、機器可讀儲存基板、記憶體裝置或它們中的一或多個的組合。
電腦程式(亦稱為程式、軟體、軟體應用、腳本(script)或代碼)可以用任何形式的程式語言編寫,包括編譯或直譯語言、宣告(declarative)或程序(procedural)語言,並且可以配置在任何形式,包括作為獨立程式(stand alone program)或作為模組、部件、子程式或適用於計算環境的其他單元。電腦程式不一定對應於檔案系統中的檔案。程式可以儲存在保存其他程式或資料(例如:儲存在標記式語言文檔(markup language document)中的一或多個腳本)的檔案的一部分中、儲存在專用於所討論的程式的單一檔案中、或儲存在多個協調檔案(multiple coordinated file)(例如:儲存一或多個模組、子程式或代碼部分的檔案)中。電腦程式可被配置以執行在一個電腦上或在位於一個站點或分佈在多個站點並藉由通訊網路互連的多個電腦上。
本揭露中所述的處理和邏輯流程可以由執行一或多個電腦程式的一或多個可程式處理器(programmable processor)執行,以藉由對輸入資料進行操作並產生輸出來執行功能。處理和邏輯流程也可由專用邏輯電路(special purpose logic circuitry)執行,並且裝置也可以實現為專用邏輯電路,例如現場可程式閘陣列(field programmable gate array;FPGA)或特殊應用積體電路(ASIC)。
雖然已經結合某些實施例描述了本揭露,但應理解本揭露不限於所揭露的實施例,而是相反地,旨在涵蓋包括在所附申請專利範圍內的各種修改和等價佈置,其範圍應被賦予最廣泛的解釋,以包含法律允許的所有這些修改和等價結構。
舉例來說,第42圖顯示了其中小係數更頻繁出現的資料集的機率分佈函數。在另一實施例中,假設資料集具有使得係數的機率分佈函數(PDF)對於較大的係數(即絕對值相對較大的係數)產生較高的概率(並因此實例更加頻繁)的特性。對於這種資料集(“高係數權重資料集”),可以藉由設計調變器以達到降低的功耗,使得調變器在較低功率狀態下操作以使用較大的係數(在資料集中出現的頻率較高)進行計算,而在較高功率狀態下操作以使用較小的係數(在資料集中出現的頻率較低)進行計算。
本揭露中描述的各種系統的一些背景資訊公開於2018年6月5日提交的美國臨時申請62/680,944、2018年10月12日提交的美國臨時申請62/744,70以及2019年6月4日提交的美國申請16/431,167。以上申請的全部揭露內容藉由引用結合於此。
儘管在所附申請專利範圍中定義了本揭露,但應理解本揭露亦可以根據以下實施例來定義:
實施例1:計算系統,包括: 記憶體單元,被配置以儲存資料集和複數神經網路權重; 數位類比轉換器(digital-to-analog converter;DAC)單元,被配置以產生複數調變器控制訊號,並且產生複數權重控制訊號; 光處理器,包括: 雷射單元,被配置以產生複數光輸出; 複數光調變器,耦接至雷射單元和DAC單元,光調變器被配置以基於調變器控制訊號,調變由雷射單元所產生的光輸出,來產生光輸入向量; 光矩陣乘法單元,耦接至光調變器和DAC單元,光矩陣乘法單元被配置以基於權重控制訊號將光輸入向量轉換成光輸出向量;以及 光偵測單元,耦接至光矩陣乘法單元,並且被配置以產生對應光輸出向量的複數輸出電壓; 類比數位轉換器(analog-to-digital converter;ADC)單元,耦接至光偵測單元,並且被配置以將輸出電壓轉換成複數數位光輸出; 控制器,包括積體電路,被配置以執行以下操作: 從電腦接收包括輸入資料集和第一多個神經網路權重的人工神經網路計算請求,其中輸入資料集包括第一數位輸入向量; 在記憶體單元中儲存輸入資料集和第一多個神經網路權重;以及 透過DAC單元,基於第一數位輸入向量產生第一多個調變器控制訊號,並且基於第一多個神經網路權重產生第一多個權重控制訊號。
實施例2:如實施例1之計算系統,其中操作更包括: 從ADC單元得到對應光矩陣乘法單元的光輸出向量的第一多個數位光輸出,第一多個數位光輸出形成第一數位輸出向量; 對第一數位輸出向量執行非線性轉換,以產生第一轉換數位輸出向量;以及 在記憶體單元中儲存第一轉換數位輸出向量
實施例3:如實施例2之計算系統,其中計算系統具有第一循環週期,其被定義為在記憶體單元中儲存輸入資料集和第一多個神經網路權重的步驟與在記憶體單元中儲存第一轉換數位輸出向量的步驟之間所經過的時間,以及 其中第一循環週期小於或等於1ns。
實施例4:如實施例2之計算系統,其中操作更包括: 輸出基於第一轉換數位輸出向量所產生的人工神經網路輸出。
實施例5:如實施例2之計算系統,其中操作更包括: 透過DAC單元基於第一轉換數位輸出向量產生第二多個調變器控制訊號。
實施例6:如實施例2之計算系統,其中人工神經網路計算請求更包括第二多個神經網路權重,並且 其中操作更包括: 基於第一多個數位光輸出的獲得,透過數位類比轉換器單元基於第二多個神經網路權重產生第二多個權重控制訊號。
實施例7:如實施例6之計算系統,其中第一多個神經網路權重和第二多個神經網路權重對應人工神經網路的不同層。
實施例8:如實施例2之計算系統,其中輸入資料集更包括第二數位輸入向量,並且 其中操作更包括: 透過DAC單元,基於第二數位輸入向量產生第二多個調變器控制訊號; 從ADC單元得到對應光矩陣乘法單元的光輸出向量的第二多個數位光輸出,第二多個數位光輸出形成第二數位輸出向量; 對第二數位輸出向量執行非線性轉換以產生第二轉換數位輸出向量; 在記憶體單元中儲存第二轉換數位輸出向量;以及 輸出基於第一轉換數位輸出向量和第二轉換數位輸出向量所產生的人工神經網路輸出, 其中光矩陣乘法單元的光輸出向量由基於第二多個調變器控制訊號所產生的第二光輸入向量產生,第二光輸入向量由光矩陣乘法單元基於首先提到的上述權重控制訊號來轉換。
實施例9:如實施例1之計算系統,更包括: 類比非線性單元,被設置在光偵測單元與ADC單元之間,類比非線性單元被配置以從光偵測單元接收輸出電壓、應用非線性傳遞函數、以及輸出複數轉換輸出電壓至ADC單元, 其中操作更包括: 從ADC單元得到對應轉換輸出電壓的第一多個轉換數位輸出電壓,第一多個轉換數位輸出電壓形成第一轉換數位輸出向量;以及 在記憶體單元中儲存第一轉換數位輸出向量。
實施例10:如實施例1之計算系統,其中控制器的積體電路被配置以產生大於或等於8GHz的頻率的第一多個調變器控制訊號。
實施例11:如實施例1之計算系統,更包括: 類比記憶體單元,被設置在DAC單元與光調變器之間,類比記憶體單元被配置以儲存複數類比電壓,並且輸出儲存的類比電壓;以及 類比非線性單元,被設置在光偵測單元與ADC單元之間,類比非線性單元被配置以從光偵測單元接收輸出電壓、應用非線性傳遞函數、以及輸出複數轉換輸出電壓。
實施例12:如實施例11之計算系統,其中類比記憶體單元包括複數電容。
實施例13: 如實施例11之計算系統,其中類比記憶體單元被配置以接收和儲存類比非線性單元的轉換輸出電壓,並且將儲存的轉換輸出電壓輸出至光調變器,以及 其中操作更包括: 基於產生第一多個調變器控制訊號和第一多個權重控制訊號,在類比記憶體單元中儲存類比非線性單元的轉換輸出電壓; 透過類比記憶體單元輸出儲存的轉換輸出電壓; 從ADC單元得到第二多個轉換數位輸出電壓,第二多個轉換數位輸出電壓形成第二轉換數位輸出向量;以及 在記憶體單元中儲存第二轉換數位輸出向量。
實施例14:如實施例1之計算系統,其中人工神經網路計算請求的輸入資料集包括複數數位輸入向量, 其中雷射單元被配置以產生複數波長, 其中光調變器包括: 複數光調變器組(bank),被配置以產生複數光輸入向量,每一個光調變器組對應一個波長,並且產生具有相應波長的相應光輸入向量;以及 光多路複用器,被配置以將光輸入向量組合成包括波長的組合光輸入向量, 其中光偵測單元更被配置以多路分解波長,並且產生複數多路分解輸出電壓,以及 其中操作包括: 從ADC單元得到複數數位多路分解光輸出,數位多路分解光輸出形成複數第一數位輸出向量,其中每一個第一數位輸出向量對應一個波長; 對每一個第一數位輸出向量執行非線性轉換,以產生複數轉換第一數位輸出向量;以及 在記憶體單元中儲存轉換第一數位輸出向量, 其中每一個數位輸入向量對應一個光輸入向量。
實施例15:如實施例1之計算系統,其中人工神經網路計算請求包括複數數位輸入向量, 其中雷射單元被配置以產生複數波長, 其中光調變器包括: 複數光調變器組,被配置以產生複數光輸入向量,每一個光調變器組對應一個波長,並且產生具有相應波長的相應光輸入向量;以及 光多路複用器,被配置以將光輸入向量組合成包括波長的組合光輸入向量,以及 其中操作包括: 從ADC單元得到對應光輸出向量的第一多個數位光輸出,光輸出向量包括波長,第一多個數位光輸出形成第一數位輸出向量; 對第一數位輸出向量執行非線性轉換,以產生第一轉換數位輸出向量;以及 在記憶體單元中儲存第一轉換數位輸出向量。
實施例16:如實施例1之計算系統,其中DAC單元包括: 1位元DAC子單元,被配置以產生複數1位元調變器控制訊號, 其中ADC單元的解析度為1位元, 其中第一數位輸入向量的解析度為N位元,以及 其中操作包括: 將第一數位輸入向量分解為N個1位元輸入向量,每一個N個1位元輸入向量對應第一數位輸入向量的N位元中的一個; 透過1位元DAC子單元產生對應N個1位元輸入向量的N個1位元調變器控制訊號的序列; 從ADC單元得到對應N個1位元調變器控制訊號的序列的N個數位1位元光輸出的序列; 從N個數位1位元光輸出的序列建構N位元數位輸出向量; 對建構的N位元數位輸出向量執行非線性轉換,以產生轉換N位元數位輸出向量;以及 在記憶體單元中儲存轉換N位元數位輸出向量。
實施例17:如實施例1之計算系統,其中記憶體單元包括: 數位輸入向量記憶體,被配置以儲存第一數位輸入向量,並且包括至少一靜態隨機存取記憶體;以及 神經網路權重記憶體,被配置以儲存神經網路權重,並且包括至少一動態隨機存取記憶體。
實施例18:如實施例1之計算系統,其中DAC單元包括: 第一DAC子單元,被配置以產生調變器控制訊號;以及 第二DAC子單元,被配置以產生權重控制訊號, 其中第一DAC子單元和第二DAC子單元是不同的。
實施例19:如實施例1之計算系統,其中雷射單元包括: 雷射源,被配置以產生光;以及 光功率分離器,被配置以將由雷射源所產生的光分成光輸出,其中每一個光輸出具有大抵相同的功率。
實施例20:如實施例1之計算系統,其中光調變器包括MZI調變器、環形共振調變器或電吸收調變器中的一個。
實施例21:如實施例1之計算系統,其中光偵測單元包括: 複數光偵測器;以及 複數放大器,被配置以將由光偵測器所產生的光電流轉換成輸出電壓。
實施例22:如實施例1之計算系統,其中積體電路是特殊應用積體電路。
實施例23:如實施例1之計算系統,其中光矩陣乘法單元包括: 輸入波導陣列,用於接收光輸入向量; 光干涉單元,與輸入波導陣列光學通訊,用於執行將光輸入向量轉換成第二光訊號陣列的線性轉換;以及 輸出波導陣列,與光干涉單元光學通訊,用於引導第二光訊號陣列,其中在輸入波導陣列中的至少一輸入波導透過光干涉單元與在輸出波導陣列中的每一個輸出波導光學通訊。
實施例24:如實施例23之計算系統,其中光干涉單元包括: 複數互連馬赫曾德爾干涉(MZI),互連MZI中的每一個MZI包括: 第一相位移器,被配置以改變MZI的分離比;以及 第二相位移器,被配置以位移MZI的一個輸出的相位, 其中第一相位移器和第二相位移器耦接至權重控制訊號。
實施例25:計算系統,包括: 記憶體單元,被配置以儲存資料集和複數神經網路權重; 驅動器單元,被配置以產生複數調變器控制訊號和產生複數權重控制訊號; 光處理器,包括: 雷射單元,被配置以產生複數光輸出; 複數光調變器,耦接至雷射單元和驅動器單元,光調變器被配置以基於調變器控制訊號,調變由雷射單元所產生的光輸出,來產生光輸入向量; 光矩陣乘法單元,耦接至光調變器和驅動器單元,光矩陣乘法單元被配置以基於權重控制訊號將光輸入向量轉換成光輸出向量;以及 光偵測單元,耦接至光矩陣乘法單元,並且被配置以產生對應光輸出向量的複數輸出電壓; 比較器單元,耦接至光偵測單元,並且被配置以將輸出電壓轉換成複數數位1位元光輸出;以及 控制器,包括積體電路,被配置以執行以下操作: 從電腦接收包括輸入資料集和第一多個神經網路權重的人工神經網路計算請求,其中輸入資料集包括具有N位元解析度的第一數位輸入向量; 在記憶體單元中儲存輸入資料集和第一多個神經網路權重; 將第一數位輸入向量分解為N個1位元輸入向量,每一個N個1位元輸入向量對應第一數位輸入向量的N位元中的一個; 透過驅動器單元產生對應N個1位元輸入向量的N個1位元調變器控制訊號的序列; 從比較器單元得到對應N個1位元調變器控制訊號的序列的N個數位1位元光輸出的序列; 從N個數位1位元光輸出的序列建構N位元數位輸出向量; 對建構的N位元數位輸出向量執行非線性轉換,以產生轉換N位元數位輸出向量;以及 在記憶體單元中儲存轉換N位元數位輸出向量。
實施例26:計算方法用於在計算系統中執行人工神經網路計算,計算系統具有光矩陣乘法單元,光矩陣乘法單元被配置以基於複數權重控制訊號將光輸入向量轉換成光輸出向量,計算方法包括: 從電腦接收包括輸入資料集和第一多個神經網路權重的人工神經網路計算請求,其中輸入資料集包括第一數位輸入向量; 在記憶體單元中儲存輸入資料集和第一多個神經網路權重; 透過數位類比轉換器(DAC)單元,基於第一數位輸入向量產生第一多個調變器控制訊號,並且基於第一多個神經網路權重產生第一多個權重控制訊號; 從類比數位轉換器(ADC)單元得到對應光矩陣乘法單元的光輸出向量的第一多個數位光輸出,第一多個數位光輸出形成第一數位輸出向量; 藉由控制器對第一數位輸出向量執行非線性轉換,以產生第一轉換數位輸出向量; 在記憶體單元中儲存第一轉換數位輸出向量;以及 藉由控制器輸出基於第一轉換數位輸出向量所產生的人工神經網路輸出。
實施例27:計算方法,包括: 以電子格式提供輸入資訊; 將至少一部分電子輸入資訊轉換成光輸入向量; 基於光矩陣乘法將光輸入向量光學地轉換成光輸出向量; 將光輸出向量轉換成電子格式;以及 將非線性轉換電子地應用於電子轉換後的光輸出向量,以提供電子格式的輸出資訊。
實施例28:如實施例27之計算方法,更包括: 對於對應電子格式所提供的輸出資訊的新電子輸入資訊,重複電光轉換(electronic-to-optical converting)、光轉換(optical transforming)、光電轉換(optical-to-electronic converting)以及電應用的非線性轉換。
實施例29:如實施例28之計算方法,其中用於初始光轉換的光矩陣乘法和重複光轉換的光矩陣乘法是相同的,並且對應人工神經網路的相同層。
實施例30:如實施例28之計算方法,其中用於初始光轉換的光矩陣乘法和重複光轉換的光矩陣乘法是不同的,並且對應人工神經網路的不同層。
實施例31:如實施例27之計算方法,更包括: 對於電子輸入資訊的不同部分,重複電光轉換、光轉換、光電轉換以及電應用的非線性轉換, 其中用於初始光轉換的光矩陣乘法和重複光轉換的光矩陣乘法是相同的,並且對應人工神經網路的第一層。
實施例32:如實施例31之計算方法,更包括: 基於由人工神經網路的第一層所產生的用於電子輸入資訊的多個部分的電子輸出資訊,以電子格式提供電子中間資訊;以及 對於電子中間資訊的每一個不同部分,重複電光轉換、光轉換、光電轉換以及電應用的非線性轉換, 其中用於初始光轉換的光矩陣乘法和與電子中間資訊的不同部分相關的重複光轉換的光矩陣乘法是相同的,並且對應人工神經網路的第二層。
實施例33:計算系統,包括: 光處理器,包括被動繞射光學元件,其中被動繞射光學元件被配置以將光輸入向量或矩陣轉換成光輸出向量或矩陣,其表示應用於光輸入向量或矩陣和由繞射光學元件的排列所定義的既定向量的矩陣處理的結果。
實施例34:如實施例33之計算系統,其中矩陣處理包括光輸入向量或矩陣與由繞射光學元件的排列所定義的既定向量之間的矩陣乘法。
實施例35:如實施例33之計算系統,其中光處理器包括光矩陣處理單元,其包括: 輸入波導陣列,用於接收光輸入向量, 包括被動繞射光學元件的光干涉單元,其中光干涉單元與輸入波導陣列光學通訊,並且被配置以執行將光輸入向量轉換成第二光訊號陣列的線性轉換;以及 輸出波導陣列,與光干涉單元光學通訊,用於引導第二光訊號陣列,其中輸入波導陣列的至少一輸入波導透過光干涉單元與輸出波導陣列中的每一個輸出波導光學通訊。
實施例36:如實施例35之計算系統,其中光干涉單元包括具有孔洞或條帶中至少一者的基板,孔洞的尺寸在100nm至10μm的範圍內,並且條帶的寬度在100nm至10μm的範圍內。
實施例37:如實施例35之計算系統,其中光干涉單元包括具有以二維配置來設置的被動繞射光學元件的基板,並且基板包括平面基板或彎曲基板中至少一者。
實施例38:如實施例37之計算系統,其中基板包括平面基板,其平行於從輸入波導陣列到輸出波導陣列的光傳播方向。
實施例39:如實施例33之計算系統,其中光處理器包括光矩陣處理單元,其包括: 輸入波導陣列,用於接收光輸入矩陣, 包括被動繞射光學元件的光干涉單元,其中光干涉單元與輸入波導陣列光學通訊,並且被配置以執行將光輸入矩陣轉換成第二光訊號陣列的線性轉換;以及 輸出波導陣列,與光干涉單元光學通訊,用於引導第二光訊號陣列,其中輸入波導陣列的至少一輸入波導透過光干涉單元與輸出波導陣列中的每一個輸出波導光學通訊。
實施例40:如實施例39之計算系統,其中光干涉單元包括具有孔洞或條帶(stripe)中至少一者的基板,孔洞的尺寸在100nm至10μm的範圍內,並且條帶的寬度在100nm至10μm的範圍內。
實施例41:如實施例39之計算系統,其中光干涉單元包括具有以三維配置來設置的被動繞射光學元件的基板。
實施例42:如實施例41之計算系統,其中基板具有立方體狀、柱狀、角柱狀或不規則體積中的至少一者的形狀。
實施例43:如實施例39之計算系統,其中光處理器包括光干涉單元,其包括具有被動繞射光學元件的全像圖(hologram),光處理器被配置以接收表示光輸入矩陣的調變光,並且在光通過全像圖時連續轉換光,直到光作為光輸出矩陣從全息圖射出。
實施例44:如實施例35或39之計算系統,其中光干涉單元包括具有被動繞射光學元件的基板,並且基板包括矽、氧化矽、氮化矽、石英、鈮酸鋰、相變化材料或聚合物中的至少一者。
實施例45:如實施例35或39之計算系統,其中光干涉單元包括具有被動繞射光學元件的基板,並且基板包括玻璃基板或丙烯酸基板中的至少一者。
實施例46:如實施例33之計算系統,其中被動繞射光學元件由摻雜物來部分地形成。
實施例47:如實施例33之計算系統,其中矩陣處理表示神經網路對輸入資料的處理,輸入資料由光輸入向量表示。
實施例48:如實施例33之計算系統,其中光處理器包括: 雷射單元,被配置以產生複數光輸出; 複數光調變器,耦接至雷射單元和DAC單元,並且被配置以基於複數調變器控制訊號,調變由雷射單元所產生的光輸出,來產生光輸入向量; 光矩陣處理單元,耦接至光調變器,光矩陣處理單元包括被動繞射光學元件,其被配置以基於由被動繞射光學元件所定義的複數權重,將光輸入向量轉換成光輸出向量;以及 光偵測單元,耦接至光矩陣處理單元,並且被配置以產生對應光輸出向量的複數輸出電訊號。
實施例49:如實施例48之計算系統,其中被動繞射光學元件以三維配置來設置,光調變器包括二維光調變器陣列,並且光偵測單元包括二維光偵測器陣列。
實施例50:如實施例48之計算系統,其中光矩陣處理單元包括外殼模組(housing module)以支持和保護輸入波導陣列、光干涉單元以及輸出波導陣列,以及 光處理器包括接收模組,接收模組被配置以接收光矩陣處理單元,接收模組包括第一介面(interface),使光矩陣處理單元能夠從光調變器接收光輸入向量,以及第二介面,使光矩陣處理單元能夠將光輸出向量傳輸至光偵測單元。
實施例51:如實施例48之計算系統,其中輸出電訊號包括複數電壓訊號或複數電流訊號中的至少一者。
實施例52:如實施例48之計算系統,更包括: 記憶體單元; 數位類比轉換器(DAC)單元,被配置以產生調變器控制訊號; 類比數位轉換器(ADC)單元,耦接至光偵測單元,並且被配置以將輸出電訊號轉換成複數數位輸出;以及 控制器,包括積體電路,被配置以執行以下操作: 從電腦接收包括輸入資料集的人工神經網路計算請求,其中輸入資料集包括第一數位輸入向量; 在記憶體單元中儲存輸入資料集;以及 透過DAC單元,基於第一數位輸入向量產生第一多個調變器控制訊號。
實施例53:計算方法,包括: 3D列印包括被動繞射光學元件的光矩陣處理單元,其中被動繞射光學元件被配置以將光輸入向量或矩陣轉換成光輸出向量或矩陣,其表示應用於光輸入向量或矩陣和由繞射光學元件的排列所定義的既定向量的矩陣處理的結果。
實施例54:計算方法,包括: 使用一或多個雷射束產生包括被動繞射光學元件的全像圖,其中被動繞射光學元件被配置以將光輸入向量或矩陣轉換成光輸出向量或矩陣,其表示應用於光輸入向量或矩陣和由繞射光學元件的排列所定義的既定向量的矩陣處理的結果。
實施例55:計算系統,包括: 光處理器,包括以一維方式設置的被動繞射光學元件,其中被動繞射光學元件被配置以將光輸入轉換成光輸出,其表示應用於光輸入和由繞射光學元件的排列所定義的既定向量的矩陣處理的結果。
實施例56:如實施例55之計算系統,其中矩陣處理包括光輸入與由繞射光學元件的排列所定義的既定向量之間的矩陣乘法。
實施例57:如實施例55之計算系統,其中光處理器包括光矩陣處理單元,其包括: 輸入波導,用於接收光輸入, 包括被動繞射光學元件的光干涉單元,其中光干涉單元與輸入波導光學通訊,並且被配置以執行將光輸入的線性轉換;以及 輸出波導,與光干涉單元光學通訊,用於引導光輸出。
實施例58:如實施例57之計算系統,其中光干涉單元包括具有孔洞或光柵(grating)中至少一者的基板,孔洞或光柵元件的具有在100nm至10μm的範圍內的尺寸。
實施例59:計算系統,包括: 記憶體單元; 數位類比轉換器(DAC)單元,被配置以產生複數調變器控制訊號; 光處理器,包括: 雷射單元,被配置以產生複數光輸出; 複數光調變器,耦接至雷射單元和DAC單元,光調變器被配置以基於調變器控制訊號,調變由雷射單元所產生的光輸出,來產生光輸入向量; 光矩陣處理單元,耦接至光調變器,光矩陣處理單元包括被動繞射光學元件,其被配置以基於由被動繞射光學元件所定義的複數權重,將光輸入向量轉換成光輸出向量;以及 光偵測單元,耦接至光矩陣處理單元,並且被配置以產生對應光輸出向量的複數輸出電訊號; 類比數位轉換器(ADC)單元,耦接至光偵測單元,並且被配置以將輸出電訊號轉換成複數數位光輸出; 控制器,包括積體電路,被配置以執行以下操作: 從電腦接收包括輸入資料集的人工神經網路計算請求,其中輸入資料集包括第一數位輸入向量; 在記憶體單元中儲存輸入資料集;以及 透過DAC單元,基於第一數位輸入向量產生第一多個調變器控制訊號。
實施例60:如實施例59之計算系統,其中矩陣處理單元包括被動繞射光學元件,其被配置以將光輸入向量轉換成光輸出向量,其表示光輸入向量與由被動繞射光學元件的所定義的既定向量之間的矩陣乘法的乘積。
實施例61:如實施例59之計算系統,其中操作更包括: 從ADC單元得到對應光矩陣處理單元的光輸出向量的第一多個數位光輸出,第一多個數位光輸出形成第一數位輸出向量; 對第一數位輸出向量執行非線性轉換,以產生第一轉換數位輸出向量;以及 在記憶體單元中儲存第一轉換數位輸出向量。
實施例62:如實施例61之計算系統,其中計算系統具有第一循環週期,其被定義為在記憶體單元中儲存輸入資料集的步驟與在記憶體單元中儲存第一轉換數位輸出向量的步驟之間所經過的時間,以及 其中第一循環週期小於或等於1ns。
實施例63:如實施例61之計算系統,其中操作更包括: 輸出基於第一轉換數位輸出向量所產生的人工神經網路輸出。
實施例64:如實施例61之計算系統,其中操作更包括: 透過DAC單元基於第一轉換數位輸出向量產生第二多個調變器控制訊號。
實施例65:如實施例61之計算系統,其中輸入資料集更包括第二數位輸入向量,以及 其中操作更包括: 透過DAC單元,基於第二數位輸入向量產生第二多個調變器控制訊號; 從ADC單元得到對應光矩陣處理單元的光輸出向量的第二多個數位光輸出,第二多個數位光輸出形成第二數位輸出向量; 對第二數位輸出向量執行非線性轉換以產生第二轉換數位輸出向量; 在記憶體單元中儲存第二轉換數位輸出向量;以及 輸出基於第一轉換數位輸出向量和第二轉換數位輸出向量所產生的人工神經網路輸出, 其中光矩陣處理單元的光輸出向量由基於第二多個調變器控制訊號所產生的第二光輸入向量產生,第二光輸入向量由光矩陣乘法單元基於由被動繞射光學元件所定義的權重來轉換。
實施例66:如實施例59之計算系統,更包括: 類比非線性單元,被設置在光偵測單元與ADC單元之間,類比非線性單元被配置以從光偵測單元接收輸出電訊號、應用非線性傳遞函數、以及輸出複數轉換輸出電訊號至ADC單元, 其中操作更包括: 從ADC單元得到對應轉換輸出電訊號的第一多個轉換數位輸出電訊號,第一多個轉換數位輸出電訊號形成第一轉換數位輸出向量;以及 在記憶體單元中儲存第一轉換數位輸出向量。
實施例67:如實施例59之計算系統,其中控制器的積體電路被配置以以產生大於或等於8GHz的頻率的第一多個調變器控制訊號。
實施例68:如實施例59之計算系統,更包括: 類比記憶體單元,被設置在DAC單元與光調變器之間,類比記憶體單元被配置以儲存複數類比電壓,並且輸出儲存的類比電壓;以及 類比非線性單元,被設置在光偵測單元與ADC單元之間,類比非線性單元被配置以從光偵測單元接收輸出電訊號、應用非線性傳遞函數、以及輸出複數轉換輸出電訊號。
實施例69:如實施例68之計算系統,其中類比記憶體單元包括複數電容。
實施例70:如實施例68之計算系統,其中類比記憶體單元被配置以接收和儲存類比非線性單元的轉換輸出電訊號,並且將儲存的轉換輸出電訊號輸出至光調變器,以及 其中操作更包括: 基於產生第一多個調變器控制訊號,在類比記憶體單元中儲存類比非線性單元的轉換輸出電訊號; 透過類比記憶體單元輸出儲存的轉換輸出電訊號; 從ADC單元得到第二多個轉換數位輸出電訊號,第二多個轉換數位輸出電訊號形成第二轉換數位輸出向量;以及 在記憶體單元中儲存第二轉換數位輸出向量。
實施例71:如實施例59之計算系統,其中人工神經網路計算請求包括複數數位輸入向量, 其中雷射單元被配置以產生複數波長, 其中光調變器包括: 複數光調變器組,被配置以產生複數光輸入向量,每一個光調變器組對應一個波長,並且產生具有相應波長的相應光輸入向量;以及 光多路複用器,被配置以將光輸入向量組合成包括波長的組合光輸入向量, 其中光偵測單元更被配置以多路分解波長,並且產生複數多路分解輸出電訊號,以及 其中操作包括: 從ADC單元得到複數數位多路分解光輸出,數位多路分解光輸出形成複數第一數位輸出向量,其中每一個第一數位輸出向量對應一個波長; 對每一個第一數位輸出向量執行非線性轉換,以產生複數轉換第一數位輸出向量;以及 在記憶體單元中儲存轉換第一數位輸出向量, 其中每一個數位輸入向量對應一個光輸入向量。
實施例72:如實施例59之計算系統,其中人工神經網路計算請求包括複數數位輸入向量, 其中雷射單元被配置以產生複數波長, 其中光調變器包括: 複數光調變器組,被配置以產生複數光輸入向量,每一個光調變器組對應一個波長,並且產生具有相應波長的相應光輸入向量;以及 光多路複用器,被配置以將光輸入向量組合成包括波長的組合光輸入向量,以及 其中操作包括: 從ADC單元得到對應光輸出向量的第一多個數位光輸出,光輸出向量包括波長,第一多個數位光輸出形成第一數位輸出向量; 對第一數位輸出向量執行非線性轉換,以產生第一轉換數位輸出向量;以及 在記憶體單元中儲存第一轉換數位輸出向量。
實施例73:如實施例59之計算系統,其中DAC單元包括: 1位元DAC單元,被配置以產生複數1位元調變器控制訊號, 其中ADC單元的解析度為1位元, 其中第一數位輸入向量的解析度為N位元,以及 其中操作包括: 將第一數位輸入向量分解為N個1位元輸入向量,每一個N個1位元輸入向量對應第一數位輸入向量的N位元中的一個; 透過1位元DAC單元產生對應N個1位元輸入向量的N個1位元調變器控制訊號的序列; 從ADC單元得到對應N個1位元調變器控制訊號的序列的N個數位1位元光輸出的序列; 從N個數位1位元光輸出的序列建構N位元數位輸出向量; 對建構的N位元數位輸出向量執行非線性轉換,以產生轉換N位元數位輸出向量;以及 在記憶體單元中儲存轉換N位元數位輸出向量。
實施例74:如實施例59之計算系統,其中記憶體單元包括數位輸入向量記憶體,被配置以儲存第一數位輸入向量,並且包括至少一靜態隨機存取記憶體。
實施例75:如實施例59之計算系統,其中雷射單元包括: 雷射源,被配置以產生光;以及 光功率分離器,被配置以將由雷射源所產生的光分成光輸出,其中每一個光輸出具有大抵相同的功率。
實施例76:如實施例59之計算系統,其中光調變器包括MZI調變器、環形共振調變器或電吸收調變器中的一個。
實施例77:如實施例59之計算系統,其中光偵測單元包括: 複數光偵測器;以及 複數放大器,被配置以將由光偵測器所產生的光電流轉換成輸出電訊號。
實施例78:如實施例59之計算系統,其中積體電路包括特殊應用積體電路。
實施例79:如實施例59之計算系統,其中光矩陣處理單元包括: 輸入波導陣列,用於接收光輸入向量; 光干涉單元,與輸入波導陣列光學通訊,用於執行將光輸入向量轉換成第二光訊號陣列的線性轉換,其中光干涉單元包括被動繞射光學元件;以及 輸出波導陣列,與光干涉單元光學通訊,用於引導第二光訊號陣列,其中在輸入波導陣列中的至少一輸入波導透過光干涉單元與在輸出波導陣列中的每一個輸出波導光學通訊。
實施例80:計算系統,包括: 記憶體單元; 驅動器單元,被配置以產生複數調變器控制訊號; 光處理器,包括: 雷射單元,被配置以產生複數光輸出; 複數光調變器,耦接至雷射單元和驅動器單元,光調變器被配置以基於調變器控制訊號,調變由雷射單元所產生的光輸出,來產生光輸入向量; 光矩陣處理單元,耦接至光調變器和驅動器單元,光矩陣處理單元包括被動繞射光學元件,被配置以基於由被動繞射光學元件所定義的複數權重控制訊號將光輸入向量轉換成光輸出向量;以及 光偵測單元,耦接至光矩陣處理單元,並且被配置以產生對應光輸出向量的複數輸出電訊號; 比較器單元,耦接至光偵測單元,並且被配置以將輸出電訊號轉換成複數數位1位元光輸出;以及 控制器,包括積體電路,被配置以執行以下操作: 從電腦接收包括輸入資料集的人工神經網路計算請求,其中輸入資料集包括具有N位元解析度的第一數位輸入向量; 在記憶體單元中儲存輸入資料集; 將第一數位輸入向量分解為N個1位元輸入向量,每一個N個1位元輸入向量對應第一數位輸入向量的N位元中的一個; 透過驅動器單元產生對應N個1位元輸入向量的N個1位元調變器控制訊號的序列; 從比較器單元得到對應N個1位元調變器控制訊號的序列的N個數位1位元光輸出的序列; 從N個數位1位元光輸出的序列建構N位元數位輸出向量; 對建構的N位元數位輸出向量執行非線性轉換,以產生轉換N位元數位輸出向量;以及 在記憶體單元中儲存轉換N位元數位輸出向量。
實施例81:如實施例80之計算系統,其中光矩陣處理單元包括被動繞射光學元件,其被配置以將光輸入向量轉換成光輸出向量,其表示由光輸入向量所表示的輸入向量與由被動繞射光學元件的所定義的既定向量之間的矩陣乘法的乘積。
實施例82:計算方法,用於在具有光矩陣處理單元的計算系統中執行人工神經網路計算,計算方法包括: 從電腦接收包括輸入資料集的人工神經網路計算請求,輸入資料集包括第一數位輸入向量; 在記憶體單元中儲存輸入資料集; 透過數位類比轉換器(DAC)單元,基於第一數位輸入向量產生第一多個調變器控制訊號; 藉由使用包括被動繞射光學元件的排列的光矩陣處理單元,將光輸入向量轉換成光輸出向量,其中光輸出向量表示應用於光輸入向量和由繞射光學元件的排列所定義的既定向量的矩陣處理的結果; 從類比數位轉換器(ADC)單元得到對應光矩陣處理單元的光輸出向量的第一多個數位光輸出,第一多個數位光輸出形成第一數位輸出向量; 藉由控制器對第一數位輸出向量執行非線性轉換,以產生第一轉換數位輸出向量; 在記憶體單元中儲存第一轉換數位輸出向量;以及 藉由控制器輸出基於第一轉換數位輸出向量所產生的人工神經網路輸出。
實施例83:如實施例82之計算方法,其中將光輸入向量轉換成光輸出向量包括將光輸入向量轉換成表示數位輸入向量與由繞射光學元件的排列所定義的既定向量之間的矩陣乘法的乘積的光輸出向量。
實施例84:計算方法,包括: 以電子格式提供輸入資訊; 將至少一部分電子輸入資訊轉換成光輸入向量; 藉由包括被動繞射光學元件的光處理器,基於光矩陣處理將光輸入向量光學地轉換成光輸出向量; 將光輸出向量轉換成電子格式;以及 將非線性轉換電子地應用於電子轉換後的光輸出向量,以提供電子格式的輸出資訊。
實施例85:如實施例84之計算方法,其中將光輸入向量光學地轉換成光輸出向量包括基於由光輸入向量所表示的輸入向量與由被動繞射光學元件的所定義的既定向量之間的光矩陣乘法,將光輸入向量光學地轉換成光輸出向量。
實施例86:如實施例84之計算方法,更包括: 對於對應以電子格式所提供的輸出資訊的新電子輸入資訊,重複電光轉換、光轉換、光電轉換以及電應用的非線性轉換。
實施例87:如實施例86之計算方法,其中用於初始光轉換的光矩陣處理和重複光轉換的光矩陣處理為相同的,並且對應人工神經網路的相同層。
實施例88:如實施例84之計算方法,更包括: 對於電子輸入資訊的不同部分,重複電光轉換、光轉換、光電轉換以及電應用的非線性轉換, 其中用於初始光轉換的光矩陣處理和重複光轉換的光矩陣處理為相同的,並且對應人工神經網路的一個層。
實施例89:計算系統,包括: 光矩陣處理單元,被配置以處理N長度的輸入向量,其中光矩陣處理單元包括N+2層的定向耦合器(directional coupler)和N層的相位移器,並且N為正整數。
實施例90:如實施例89之計算系統,其中光矩陣處理單元包括不多於N+2層的定向耦合器。
實施例91:如實施例89之計算系統,其中光矩陣處理單元包括光矩陣法單元。
實施例92:如實施例89之計算系統,其中光矩陣處理單元包括: 基板,以及 互連干涉儀,設置在基板上,其中每一個干涉儀包括設置在基板上的光波導,並且定向耦合器和相位移器是互連干涉儀的一部分。
實施例93:如實施例89之計算系統,其中光矩陣處理單元包括一層衰減器(attenuator),其在最後一層定向耦合器之後。
實施例94:如實施例93之計算系統,其中一層衰減器包括N個衰減器。
實施例95:如實施例93之計算系統,包括一或多個零差偵測器(homodyne detector),用於偵測來自衰減器的輸出。
實施例96:如實施例89之計算系統,其中N=3,並且光矩陣處理單元包括: 輸入端(terminal),被配置以接收輸入向量; 第一層定向耦合器,耦接至輸入端; 第一層相位移器,耦接至第一層定向耦合器; 第二層定向耦合器,耦接至第一層相位移器; 第二層相位移器,耦接至第二層定向耦合器; 第三層定向耦合器,耦接至第二層相位移器; 第三層相位移器,耦接至第三層定向耦合器; 第四層定向耦合器,耦接至第三層相位移器;以及 第五層定向耦合器,耦接至第四層定向耦合器。
實施例97:如實施例89之計算系統,其中N=4,並且光矩陣處理單元包括: 輸入端,被配置以接收輸入向量; 第一層、第二層、第三層以及第四層定向耦合器,每層定向耦合器後續是一層相位移器,其中第一層定向耦合器耦接至輸入端; 倒數第二層(second-to-last layer)定向耦合器,耦接至第四層相位移器;以及 最終層定向耦合器,耦接至倒數第二層定向耦合器。
實施例98:如實施例89之計算系統,其中N=8,並且光矩陣處理單元包括: 輸入端,被配置以接收輸入向量; 八層定向耦合器,每一層定向耦合器後續是一層相位移器,其中第一層定向耦合器耦接至輸入端; 倒數第二層定向耦合器,耦接至第八層相位移器;以及 最終層定向耦合器,耦接至倒數第二層定向耦合器。
實施例99:如實施例89之計算系統,其中光矩陣處理單元包括: 輸入端,被配置以接收輸入向量; N層定向耦合器,每一層定向耦合器後續是一層相位移器,其中第一層定向耦合器耦接至輸入端; 倒數第二層定向耦合器,耦接至第N層定向耦合器;以及 最終層定向耦合器,耦接至倒數第二層定向耦合器。
實施例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層相位移器包括N個相位移器,其中i是奇數,並且每一個第j層相位移器包括N-2個相位移器,其中j是偶數。
實施例105:如實施例99之計算系統,其中N為奇數。
實施例106:如實施例105之計算系統,其中每一層定向耦合器包括(N-1)/2個定向耦合器。
實施例107:如實施例105之計算系統,其中每一層相位移器包括N-1個相位移器。
實施例108:計算系統,包括: 產生器(generator),被配置以產生第一資料集,其中產生器包刮光矩陣處理單元;以及 鑑別器(discriminator),被配置以接收包括來自第一資料集的資料和來自第三資料集的資料的第二資料集,第一資料集中的資料具有與第三資料集中的資料類似的特徵(characteristics),並且將第二資料集中的資料分類為來自第一資料集的資料或來自第三資料集的資料。
實施例109:如實施例108之計算系統,其中光矩陣處理單元包括以下至少一者:(i)實施例1至25中任意一者之光矩陣乘法單元、(ii)實施例32至52、55至81中任意一者之被動繞射光學元件、或(iii)實施例89至107中任意一者之光矩陣處理單元。
實施例110:如實施例108之計算系統,其中第三資料集包括真實資料,產生器被配置以產生類似於真實資料的合成資料(synthesized data),並且鑑別器被配置以將資料分類為真實資料或合成資料。
實施例111:如實施例108之計算系統,其中產生器被配置以產生資料集,用於訓練自動駕駛載具(vehicle)、醫療診斷系統、欺詐偵測系統、天氣預報系統、財務預測系統、面部識別系統、語音識別系統或產品缺陷偵測系統中的至少一者。
實施例112:如實施例108之計算系統,其中產生器被配置以產生影像,其類似於真實物體或真實場景中的至少一者的影像,並且鑑別器被配置以將接收的影像分類為(i)真實物體或真實場景的影像,或(ii)由產生器產生的合成影像。
實施例113:如實施例112之計算系統,其中真實物體包括人物、動物、細胞、組織或產品中的至少一者,並且真實場景包括載具遇到的場景。
實施例114:如實施例113之計算系統,其中鑑別器被配置以將接收的影像分類成是否為(i)真實人物、真實動物、真實細胞、真實組織、真實產品或載具遇到的真實場景,或(ii)由產生器產生的合成影像。
實施例115:如實施例113之計算系統,其中載具包括摩托車、汽車、卡車、火車、直升機、飛機、潛艇、船舶或無人機中的至少一種。
實施例116:如實施例113之計算系統,其中產生器被配置以產生組織或細胞的影像,其與人類疾病、動物疾病或植物疾病中的至少一者相關。
實施例117:如實施例116之計算系統,其中產生器被配置以產生與人類疾病相關的組織或細胞的影像,並且疾病包括癌症、帕金森病、鐮狀細胞貧血症、心臟病、心血管疾病、糖尿病、胸部疾病或皮膚病中的至少一者。
實施例118:如實施例116之計算系統,其中產生器被配置以產生與癌症相關的組織或細胞的影像,並且癌症包括皮膚癌、乳癌、肺癌、肝癌、前列腺癌或腦癌中的至少一者。
實施例119:如實施例108之計算系統,更包括隨機雜訊產生器,被配置以產生輸入到產生器的隨機雜訊,並且產生器被配置以基於隨機雜訊產生第一資料集。
實施例120:計算系統,包括: 隨機雜訊產生器,被配置以產生隨機雜訊;以及 產生器,被配置以基於隨機雜訊產生資料,其中產生器包括光矩陣處理單元。
實施例121:如實施例120之計算系統,其中光矩陣處理單元包括以下至少一者:(i) 實施例1至25中任意一者之光矩陣乘法單元、(ii) 實施例33至52、55至81中任意一者之被動繞射光學元件、或(iii) 實施例89至107中任意一者之光矩陣處理單元。
實施例122:計算系統,包括: 光電路,被配置以對兩個輸入訊號執行邏輯函數(logic function),光電路包括: 第一定向耦合器,具有兩個輸入端和兩個輸出端,兩個輸入端被配置以接收兩個輸入訊號; 第一對(pair)相位移器,被配置以修改在第一定向耦合器的兩個輸出端的訊號的相位; 第二定向耦合器,具有兩個輸入端和兩個輸出端,兩個輸入端被配置以接收來自第一對相位移器的訊號;以及 第二對相位移器,被配置以修改在第二定向耦合器的兩個輸出端的訊號的相位。
實施例123:如實施例122之計算系統,其中相位移器被配置以致使光電路執行旋轉(rotation):
Figure 02_image001
實施例124:如實施例122之計算系統,其中當輸入訊號x1 和x2 被提供到第一定向耦合器的兩個輸入端時,相位移器被配置以致使光電路執行操作:
Figure 02_image003
實施例125:如實施例124之計算系統,其中光電路包括第一光偵測器,其被配置以產生來自第二對相位移器的訊號的絕對值,以致使光電路執行操作:
Figure 02_image005
實施例126:如實施例125之計算系統,其中光電路包括比較器,其被配置以將第一光偵測器的輸出訊號與閾值比較,以產生二進制值(binary value)來致使光電路產生輸出:
Figure 02_image007
實施例127:如實施例125之計算系統,其中光電路包括回饋機制(feedback mechanism),回饋機制被配置以使光偵測器的輸出訊號被回饋至第一定向耦合器的輸入端,並且通過第一定向耦合器、第一對相位移器、第二定向耦合器以及第二對相位移器,並且由光偵測器偵測以致使光電路執行操作:
Figure 02_image009
其產生輸出AND(x1 ,x2 )和OR(x1 ,x2 )。
實施例128:如實施例125之計算系統,其中光電路包括: 第三定向耦合器,具有兩個輸入端和兩個輸出端,兩個輸入端被配置以接收來自第二對相位移器的訊號; 第三對相位移器,被配置以修改在第三定向耦合器的兩個輸出端的訊號的相位; 第四定向耦合器,具有兩個輸入端和兩個輸出端,兩個輸入端被配置以接收來自第三對相位移器的訊號; 第四對相位移器,被配置以修改在第四定向耦合器的兩個輸出端的訊號的相位;以及 第二光偵測器,被配置以產生來自第四對相位移器的訊號的絕對值,以致使光電路執行操作:
Figure 02_image009
其產生輸出AND(x1 ,x2 )和OR(x1 ,x2 )。
實施例129:如實施例122之計算系統,包括雙調排序式交換機(Bitonic sorter),其被配置以由使用光電路執行雙調排序式交換機的排序函數(sorting function)。
實施例130:如實施例122之計算系統,包括被配置以使用光電路來執行雜湊函數(hashing function)的裝置。
實施例131:如實施例130之計算系統,其中雜湊函數包括安全雜湊演算法(secure hash algorithm)2(SHA-2)。
實施例132:計算裝置,包括: 複數光波導,其中一組多個輸入值被編碼在由光波導承載的相應光訊號上; 複數複製模組,並且對於一或多個光訊號的至少兩個子集中的每一者,一或多個複製模組的相應一組被配置以將一或多個光訊號的子集分成二或多個光訊號的副本(copies); 複數乘法模組,並且對於一或多個光訊號的第一子集的至少兩個副本中的每一者,相應的乘法模組被配置以使用光幅度調變將第一子集的一或多個光訊號乘以一或多個矩陣元素值,其中至少一乘法模組包括光幅度調變器,光幅度調變器包括一個輸入端口和兩個輸出端口,並且從兩個輸出端口提供一對相關光訊號,使得相關光訊號的幅度之間的差值對應於將輸入值乘以有號矩陣元素值的結果;以及 一或多個求和模組,並且對於二或多個乘法模組的結果,相應的一個求和模組被配置以產生電訊號,電訊號表示二或多個乘法模組的結果的總和。
實施例133:如實施例132之計算裝置,其中在一組多個輸入值中的編碼在相應光訊號上的輸入值表示與包括一或多個矩陣元素值的矩陣相乘的輸入向量的元素。
實施例134:如實施例132或133中任意一者之計算裝置,其中一組多個輸出值被編碼在由一或多個求和模組所產生的相應電訊號上,並且一組多個輸出值中的輸出值表示輸出向量的元素,輸出向量藉由輸入向量乘以矩陣產生。
實施例135:如實施例132至134計算裝置,其中由光波導所承載的每一個光訊號包括具有共同波長的光波,共同波長於所有光訊號大抵相同。
實施例136:如實施例132至135中任意一者之計算裝置,其中複製模組包括具有光分離器的至少一複製模組,光分離器在輸入端口將光波的功率的既定比例發送至第一輸出端口,並且在輸入端口將光波的功率的剩餘比例發送至第二輸出端口。
實施例137:如實施例136之計算裝置,其中光分離器包括波導光分離器,波導光分離器將由輸入光波導所引導的光波的功率的既定比例發送至第一輸出光波導,並且將由輸入光波導所引導的光波的功率的剩餘比例發送至第二輸出光波導。
實施例138:如實施例137之計算裝置,其中輸入光波導的引導模式被絕熱地耦接至第一輸出光波導和第二輸出光波導中之每一者的複數引導模式。
實施例139:如實施例136至138中任意一者之計算裝置,其中光分離器包括光束分離器,光束分離器包括至少一表面,其在輸入端口傳輸光波的功率的既定比例,並且在輸入端口反射光波的功率的剩餘比例。
實施例140:如實施例139之計算裝置,其中至少一光波導包括耦接至光耦合器的光纖,光耦合器將光纖的引導模式耦接至自由空間傳播模式(free-space propagation mode)。
實施例141:如實施例132至140中任意一者之計算裝置,其中乘法模組包括至少一相干敏感乘法模組(coherence-sensitive multiplication module),相干敏感乘法模組被配置以基於複數光波之間的干涉,使用光幅度調變將第一子集的一或多個光訊號乘以一或多個矩陣元素值,光波具有相干長度,相干長度至少與通過相干敏感乘法模組的傳播距離一樣長。
實施例142:如實施例141之計算裝置,其中相干敏感乘法模組包括馬赫曾德爾干涉儀(MZI),馬赫曾德爾干涉儀將輸入光波導所引導的光波分成馬赫曾德爾干涉儀的第一光波導臂(optical waveguide arm)和馬赫曾德爾干涉儀的第二光波導臂,第一光波導臂包括相位移器,相位移器相對於第二光波導臂的相位延遲產生相對相位移,並且馬赫曾德爾干涉儀將來自第一光波導臂和第二光波導臂的複數光波組合成至少一輸出光波導。
實施例143:如實施例142之計算裝置,其中MZI將來自第一光波導臂和第二光波導臂的複數光波組合成第一輸出光波導和第二輸出光波導中的每一者,第一光偵測器從第一輸出光波導接收光波以產生第一光電流,第二光偵測器從第二輸出光波導接收光波以產生第二光電流,並且相干敏感乘法模組的結果包括第一光電流與第二光電流之間的差值。
實施例144:如實施例141至143中任意一者之計算裝置,其中相干敏感乘法模組包括一或多個環形共振器(ring resonator),環形共振器包括耦接至第一光波導的至少一環形共振器和耦接至第二光波導的至少一環形共振器。
實施例145:如實施例144之計算裝置,其中,第一光偵測器接收來自第一光波導的光波,以產生第一光電流,第二光偵測器接收來自第二光波導的光波,以產生第二光電流,並且相干敏感乘法模組的結果包括第一光電流與第二光電流之間的差值。
實施例146:如實施例132至145中任意一者之計算裝置,其中乘法模組包括至少一相干非敏感乘法模組(coherence-insensitive multiplication module),相干非敏感乘法模組被配置以基於光波內的能量吸收,使用光幅度調變將第一子集的一或多個光訊號乘以一或多個矩陣元素值。
實施例147:如實施例146之計算裝置,其中相干非敏感乘法模組包括電吸收調變器(electro-absorption modulator)。
實施例148:如實施例132至147中任意一者之計算裝置,其中一或多個求和模組包括具有以下部件的至少一求和模組:(1)二或多個輸入導體,每一個輸入導體以輸入電流的形式承載電訊號,輸入電流的幅度表示相應一個乘法模組的相應結果,以及(2)至少一輸出導體,輸出導體承載表示輸出電流形式的相應結果的總和的電訊號,輸出電流與輸入電流之總和成比例。
實施例149:如實施例148之計算裝置,其中二或多個輸入導體和輸出導體包括複數導線,其在導線之間的一或多個接點相遇,並且輸出電流大抵等於輸入電流之總和。
實施例150:如實施例148或149之計算裝置,其中輸入電流的至少一第一輸入電流在至少一光電流的形式提供,光電流由至少一光偵測器產生,光偵測器接收由乘法模組的第一乘法模組所產生的光訊號。
實施例151:如實施例150之計算裝置,其中第一輸入電流在兩個光電流之間的差值的形式提供,兩個光電流由不同相應光偵測器產生,光偵測器接收由第一乘法模組所產生的不同相應光訊號。
實施例152:如實施例132至151中任意一者之計算裝置,其中一或多個光訊號的第一子集的副本之一者由單一光訊號組成,其中單一光訊號上的一個輸入值被編碼。
實施例153:如實施例152之計算裝置,其中對應第一子集的副本的乘法模組將編碼的輸入值乘以單一矩陣元素值。
實施例154:如實施例132至153中任意一者之計算裝置,其中一或多個光訊號的第一子集的副本之一者包括的光訊號多於一個,並且少於所有光訊號的數量,其中光訊號的多個輸入值被編碼。
實施例155:如實施例154之計算裝置,其中對應第一子集的副本的乘法模組將編碼的輸入值乘以不同的相應矩陣元素值。
實施例156:如實施例152之計算裝置,其中對應一或多個光訊號的第一子集的不同相應副本的不同乘法模組被包含在不同裝置,不同裝置進行光學通訊以在不同裝置之間傳輸一或多個光訊號的第一子集的副本之一者。
實施例157:如實施例132至156中任意一者之計算裝置,其中光波導的二或多個、複製模組的二或多個、乘法模組的二或多個、以及一或多個求和模組的至少一者被設置在公共裝置的基板上。
實施例158:如實施例157之計算裝置,其中裝置執行向量矩陣乘法,其中提供輸入向量作為一組光訊號,並且提供輸出向量作為一組電訊號。
實施例159:如實施例132至155中任意一者之計算裝置,更包括累加器,累加器整合對應乘法模組或求和模組的輸出的輸入電訊號,其中使用時域編碼(time domain encoding)來編碼輸入電信號,時域編碼在多個時槽的每一者內使用開關幅度調變(on-off amplitude modulation),並且累加器產生輸出電訊號,輸出電訊號以多於兩個幅度準位來編碼,幅度準位對應多個時槽上的時域編碼的不同佔空比。
實施例160:如實施例132至159中任意一者之計算裝置,其中乘法模組的二或多個之每一者對應一或多個光訊號的不同子集。
實施例161:如實施例132至160中任意一者之計算裝置,更包括用於一或多個光訊號的第二子集的每一個副本,與一或多個光訊號的第一子集中的光訊號不同,乘法模組被配置以使用光幅度調變將第二子集的一個或多個光訊號乘以一或多個矩陣元素值。
實施例162:計算方法,包括: 在相應光訊號上編碼一組多個輸入值; 對於一或多個光訊號的至少兩個子集中的每一者,使用一或多個複製模組的相應一組以將一或多個光訊號的子集分成二或多個光訊號的副本; 對於一或多個光訊號的第一子集的至少兩個副本中的每一者,使用相應的乘法模組以使用光幅度調變將第一子集的一或多個光訊號乘以一或多個矩陣元素值,其中至少一乘法模組包括光幅度調變器,光幅度調變器包括一個輸入端口和兩個輸出端口,並且從兩個輸出端口提供一對相關光訊號,使得相關光訊號的幅度之間的差值對應於將輸入值乘以有號矩陣元素值的結果;以及 對於二或多個乘法模組的結果,使用求和模組以產生電訊號,電訊號表示二或多個乘法模組的結果的總和。
實施例163:計算方法,包括: 編碼表示相應光訊號上的輸入向量的元素的一組輸入值; 將表示矩陣元素的一組係數編碼作為耦合至光訊號的一組光幅度調變器的幅度調變準位,其中包括一個輸入端口和兩個輸出端口的至少一光幅度調變器從兩個輸出端口提供一對相關光訊號,使得相關光訊號的幅度之間的差值對應於將輸入值乘以有號矩陣元素值的結果;以及 編碼表示相應電訊號上的輸出向量的元素的一組輸出值,其中至少一電訊號是電流形式,其幅度對應輸入向量的相應元素乘以矩陣的一列(row)的相應元素的總和。
實施例164:如實施例163之計算方法,其中至少一光訊號由第一光波導提供,並且第一光波導耦接至光分離器,光分離器將由第一光波導所引導的光波的功率的既定比例發送至第二輸出光波導,並且將由第一光波導所引導的光波的功率的剩餘定比例發送至第三光波導。
實施例165:計算裝置,包括: 複數光波導,編碼表示由光波導承載的相應光訊號上的輸入向量的元素的一組輸入值; 一組光幅度調變器,耦接至光訊號,將表示矩陣元素的一組係數編碼作為幅度調變準位,其中包括一個輸入端口和兩個輸出端口的至少一光幅度調變器從兩個輸出端口提供一對相關光訊號,使得相關光訊號的幅度之間的差值對應於將輸入值乘以有號矩陣元素值的結果;以及 複數求和模組,其編碼表示相應電訊號上的輸出向量的元素的一組輸出值,其中至少一電訊號是電流形式,其幅度對應輸入向量的相應元素乘以矩陣的一列(row)的相應元素的總和。
實施例166:用於將輸入向量乘以給定矩陣的計算方法包括: 編碼表示一組光訊號的相應光訊號上的輸入向量的元素的一組輸入值; 將第一組一或多個裝置耦接至第一組一或多個波導,提供該組光訊號的第一子集,並且產生給定矩陣的第一子矩陣乘以在該組光訊號的第一子集上的數值的結果; 將第二組一或多個裝置耦接至第二組一或多個波導,提供該組光訊號的第二子集,並且產生給定矩陣的第二子矩陣乘以在該組光訊號的第二子集上的數值的結果; 將第三組一或多個裝置耦接至第三組一或多個波導,提供由第一光分離器所產生的該組光訊號的第一子集的副本,並且產生給定矩陣的第三子矩陣乘以在該組光訊號的第一子集上的數值的結果; 將第四組一或多個裝置耦接至第四組一或多個波導,提供由第二光分離器所產生的該組光訊號的第二子集的副本,並且產生給定矩陣的第四子矩陣乘以在該組光訊號的第二子集上的數值的結果; 其中連接在一起的第一、第二、第三以及第四子矩陣形成給定矩陣;以及 其中表示輸出向量的元素的至少一輸出值被編碼在電訊號上,輸出向量對應輸入向量乘以給定矩陣,電訊號由與第一組一或多個裝置和第二組一或多個裝置通訊的裝置產生。
實施例167:如實施例166之計算裝置,其中第一組一或多個裝置、第二組一或多個裝置、第三組一或多個裝置、以及第四組一或多個裝置中的每一對組是互斥的(mutually exclusive)。
實施例168:計算裝置,包括: 第一組一或多個裝置,被配置以接收第一組光訊號,並且產生第一矩陣乘以在第一組光訊號上編碼的數值的結果; 第二組一或多個裝置,被配置以接收第二組光訊號,並且產生第二矩陣乘以在第二組光訊號上編碼的數值的結果; 第三組一或多個裝置,被配置以接收第三組光訊號,並且產生第三矩陣乘以在第三組光訊號上編碼的數值的結果; 第四組一或多個裝置,被配置以接收第四組光訊號,並且產生第四矩陣乘以在第四組光訊號上編碼的數值的結果;以及 可配置連接路徑,在第一組一或多個裝置、第二組一或多個裝置、第三組一或多個裝置或第四組一或多個裝置中的二或多個之間, 其中可配置連接路徑的第一配置被配置以(1)提供第一組光訊號的副本作為第二組光訊號,第三組光訊號或第四組光訊號中的至少一者,並且(2)將來自第一組一或多個裝置的一或多個訊號和來自第二組一或多個裝置的一或多個訊號提供至求和模組,求和模組被配置以產生電訊號,電訊號表示在由求和模組接收的訊號上編碼的數值的總和。
實施例169:計算裝置,包括: 第一組一或多個裝置,被配置以接收第一組光訊號,並且基於第一組光訊號的一或多個光訊號的光幅度調變產生結果; 第二組一或多個裝置,被配置以接收第二組光訊號,並且基於第二組光訊號的一或多個光訊號的光幅度調變產生結果; 第三組一或多個裝置,被配置以接收第三組光訊號,並且基於第三組光訊號的一或多個光訊號的光幅度調變產生結果; 第四組一或多個裝置,被配置以接收第四組光訊號,並且基於第四組光訊號的一或多個光訊號的光幅度調變產生結果;以及 可配置連接路徑,在第一組一或多個裝置、第二組一或多個裝置、第三組一或多個裝置或第四組一或多個裝置中的二或多個之間, 其中可配置連接路徑的第一配置被配置以(1)提供第一組光訊號的副本作為第三組光訊號,或(2)將來自第一組一或多個裝置的一或多個訊號和來自第二組一或多個裝置的一或多個訊號提供至求和模組,求和模組被配置以產生電訊號,電訊號表示在由求和模組接收的訊號上編碼的數值的總和。
實施例170:如實施例169之計算裝置,其中第一組一或多個裝置、第二組一或多個裝置、第三組一或多個裝置、以及第四組一或多個裝置中的每一對組是互斥的。
實施例171:如實施例169或170之計算裝置,其中可配置連接路徑的第一配置被配置以(1)提供第一組光訊號的副本作為第三組光訊號,並且(2)將來自第一組一或多個裝置的一或多個訊號和來自第二組一或多個裝置的一或多個訊號提供至求和模組,求和模組被配置以產生電訊號,電訊號表示在由求和模組接收的至少兩個不同訊號上編碼的數值的總和。
實施例172:如實施例169至171中任意一者之計算裝置,其中可配置連接路徑的第一配置被配置以提供第一組光訊號的副本作為第三組光訊號,並且可配置連接路徑的第二配置被配置以將來自第一組一或多個裝置的一或多個訊號和來自第二組一或多個裝置的一或多個訊號提供至求和模組,求和模組被配置以產生電訊號,電訊號表示在由求和模組接收的訊號上編碼的數值的總和。
實施例173:計算裝置,包括: 複數光波導,其中一組多個輸入值被編碼在由光波導承載的相應光訊號上; 複數複製模組,包括用於一或多個光訊號的至少兩個子集中的每一者,一或多個複製模組的相應一組被配置以將一或多個光訊號的子集分成二或多個光訊號的副本; 複數乘法模組,包括用於一或多個光訊號的第一子集的至少兩個副本中的每一者,相應的乘法模組被配置以使用光幅度調變將第一子集的一或多個光訊號乘以一或多個數值;以及 一或多個求和模組,包括用於二或多個乘法模組的結果,求和模組被配置以產生電訊號,電訊號表示二或多個乘法模組的結果的總和,其中該結果包括在電訊號上編碼的至少一結果,並且該結果是從光訊號的一個副本導出的,其在被轉換成電訊號之前傳播通過不超過單一光幅度調變器。
實施例174:計算系統,包括: 第一單元,被配置以產生複數調變器控制訊號; 處理器,包括: 光源,被配置以提供複數光輸出; 複數光調變器,耦接至光源和第一單元,光調變器被配置以基於調變器控制訊號,調變由光源所提供的光輸出,來產生光輸入向量,光輸入向量包括複數光訊號;以及 矩陣乘法單元,耦接至光調變器和第一單元,矩陣乘法單元被配置以基於複數權重控制訊號,將光輸入向量轉換成類比輸出向量; 第二單元,耦接至矩陣乘法單元,並且第二單元被配置以將類比輸出向量轉換成數位輸出向量;以及 控制器,包括積體電路,被配置以執行以下操作: 接收人工神經網路計算請求,人工神經網路計算請求包括輸入資料集,輸入資料集包括第一數位輸入向量; 接收第一多個神經網路權重;以及 透過第一單元,基於第一數位輸入向量產生第一多個調變器控制訊號,並且基於第一多個神經網路權重產生第一多個權重控制訊號。
實施例175:如實施例174之計算系統,其中第一單元包括數位類比轉換器(DAC)。
實施例176:如實施例174或175之計算系統,其中第二單元包括類比數位轉換器(ADC)。
實施例177:如實施例174至176中任意一者之計算系統,包括記憶體單元,被配置以儲存資料集和複數神經網路權重。
實施例178:如實施例177之計算系統,其中控制器的積體電路更被配置以執行包括在上述記憶體單元中儲存輸入資料集和第一多個神經網路權重的操作。
實施例179:如實施例174至178中任意一者之計算系統,其中第一單元被配置以產生權重控制訊號。
實施例180:如實施例174至178中任意一者之計算系統,其中控制器包括特殊應用積體電路(ASIC),以及 接收人工神經網路計算請求的步驟包括從通用資料處理器接收人工神經網路計算請求。
實施例181:如實施例174至178中任意一者之計算系統,其中第一單元、處理單元、第二單元以及控制器被設置在多晶片模組或積體電路中的至少一者上,以及 接收人工神經網路計算請求的步驟包括從第二資料處理器接收人工神經網路計算請求,其中第二資料處理器可在多晶片模組或積體電路的外部,第二資料處理器可透過通訊通道(communication channel)耦接至多晶片模組或積體電路,並且處理單元可以以比通訊通道的資料速率大至少一數量級的資料速率來處理資料。
實施例182:如實施例174之計算系統,其中第一單元、處理單元、第二單元以及控制器可被用於在複數迭代中重複的光電處理循環,並且光電處理循環包括: (1)基於調變器控制訊號之至少一者的至少一第一光調變操作,並且基於權重控制訊號之至少一者的至少一第二光調變操作,以及 (2)(a)電求和操作或(b)電儲存操作中之至少一者。
實施例183:如實施例182之計算系統,其中光電處理循環包括電儲存操作,並且電儲存操作使用耦接至控制器的記憶體單元來執行, 其中藉由控制器所執行的操作更包括在記憶體單元中儲存輸入資料集和第一多個神經網路權重。
實施例184:如實施例182之計算系統,其中光電處理循環包括電求和操作,並且電求和操作使用在矩陣乘法單元內的電求和模組來執行, 其中電求和模組被配置以產生對應類比輸出向量的元素的電流,電流表示光輸入向量的相應元素乘以相應神經網路權重的總和。
實施例185:如實施例182之計算系統,其中光電處理循環包括至少一訊號路徑,在訊號路徑上,基於調變器控制訊號之至少一者,在單一循環迭代中執行不超過一個第一光調變操作,並且基於權重控制訊號之至少一者,在單一循環迭代中執行不超過一個第二光調變操作。
實施例186:如實施例185之計算系統,其中第一光調變操作藉由耦接至光輸出的光源和矩陣乘法單元的光調變器之一者來執行,並且第二光調變操作藉由被包括在矩陣乘法單元中的光調變器來執行。
實施例187:如實施例182之計算系統,其中光電處理循環包括至少一訊號路徑,在上述訊號路徑上,在單一循環迭代中執行不超過一個電儲存操作。
實施例188:如實施例174之計算系統,其中光源包括雷射單元,被配置以產生光輸出。
實施例189:如實施例174之計算系統,其中矩陣乘法單元包括: 輸入波導陣列,用於接收光輸入向量,並且光輸入向量包括第一光訊號陣列; 光干涉單元,與輸入波導陣列光學通訊,用於執行將光輸入向量轉換成第二光訊號陣列的線性轉換;以及 輸出波導陣列,與光干涉單元光學通訊,用於引導第二光訊號陣列,其中在輸入波導陣列中的至少一輸入波導透過光干涉單元與在輸出波導陣列中的每一個輸出波導光學通訊。
實施例190:如實施例189之計算系統,其中光干涉單元包括: 複數互連MZI,互連MZI中的每一個MZI包括: 第一相位移器,被配置以改變MZI的分離比;以及 第二相位移器,被配置以位移MZI的一個輸出的相位, 其中第一相位移器和第二相位移器耦接至權重控制訊號。
實施例191:如實施例174之計算系統,其中矩陣乘法單元包括: 複數複製模組,其中每一個複製模組對應光輸入向量的一或多個光訊號的子集,並且被配置以將一或多個光訊號的子集分成光訊號的二或多個副本; 複數乘法模組,其中每一個乘法模組對應一或多個光訊號的子集,並且被配置以使用光幅度調變將子集的一或多個光訊號乘以一或多個矩陣元素值;以及 一或多個求和模組,其中每一個求和模組被配置以產生電訊號,電訊號表示乘法模組的二或多個的結果的總和。
實施例192:如實施例191之計算系統,其中至少一乘法模組包括光幅度調變器,光幅度調變器包括一個輸入端口和兩個輸出端口,並且從兩個輸出端口提供一對相關光訊號,使得相關光訊號的幅度之間的差值對應於將輸入值乘以有號矩陣元素值的結果。
實施例193:如實施例191或192之計算系統,其中矩陣乘法單元可被配置以將光輸入向量乘以包括一或多個矩陣元素值的矩陣。
實施例194:如實施例193之計算系統,其中一組多個輸出值被編碼在由一或多個求和模組所產生的相應電訊號上,並且一組多個輸出值中的輸出值表示輸出向量的元素,輸出向量藉由光輸入向量乘以矩陣產生。
實施例195:如實施例174至194中任意一者之計算系統,其中計算系統包括記憶體單元,記憶體單元被配置以儲存輸入資料集和神經網路權重,第二單元包括類比數位轉換器(ADC)單元,並且操作更包括: 從類比數位轉換器單元得到對應矩陣乘法單元的類比輸出向量的第一多個數位輸出,第一多個數位輸出形成第一數位輸出向量; 對第一數位輸出向量執行非線性轉換以產生第一轉換數位輸出向量;以及 在記憶體單元中儲存第一轉換數位輸出向量。
實施例196:如實施例195之計算系統,其中計算系統具有第一循環週期,第一循環週期被定義為在記憶體單元中儲存輸入資料集和第一多個神經網路權重的步驟與在記憶體單元中儲存第一轉換數位輸出向量的步驟之間所經過的時間,以及 其中第一循環週期小於或等於1ns。
實施例197:如實施例195或196之計算系統,其中操作更包括: 輸出基於第一轉換數位輸出向量所產生的人工神經網路輸出。
實施例198:如實施例195至197中任意一者之計算系統,其中第一單元包括數位類比轉換器(DAC)單元,並且操作更包括: 透過數位類比轉換器單元,基於第一轉換數位輸出向量產生第二多個調變器控制訊號。
實施例199:如實施例195至198中任意一者之計算系統,其中第一單元包括數位類比轉換器(DAC)單元,人工神經網路計算請求更包括第二多個神經網路權重,並且其中操作更包括: 基於第一多個數位輸出的獲得,透過數位類比轉換器單元基於第二多個神經網路權重產生第二多個權重控制訊號。
實施例200:如實施例199之計算系統,其中第一多個神經網路權重和第二多個神經網路權重對應人工神經網路的不同層。
實施例201:如實施例195至200中任意一者之計算系統,其中第一單元包括數位類比轉換器(DAC)單元,並且輸入資料集更包括第二數位輸入向量,以及 其中操作更包括: 透過數位類比轉換器單元,基於第二數位輸入向量產生第二多個調變器控制訊號; 從類比數位轉換器單元得到對應矩陣乘法單元的類比輸出向量的第二多個數位輸出,第二多個數位輸出形成第二數位輸出向量; 對第二數位輸出向量執行非線性轉換以產生第二轉換數位輸出向量; 在記憶體單元中儲存第二轉換數位輸出向量;以及 輸出基於第一轉換數位輸出向量和第二轉換數位輸出向量所產生的人工神經網路輸出, 其中矩陣乘法單元的類比輸出向量可由基於第二多個調變器控制訊號所產生的第二光輸入向量產生,第二光輸入向量由矩陣乘法單元基於首先提到的權重控制訊號轉換。
實施例202:如實施例174至201中任意一者之計算系統,其中計算系統包括記憶體單元,記憶體單元被配置以儲存輸入資料集和神經網路權重,並且第二單元包括類比數位轉換器(ADC)單元,以及計算系統更包括: 類比非線性單元,設置在矩陣乘法單元與類比數位轉換器單元之間,類比非線性單元可被配置以從矩陣乘法單元接收複數輸出電壓、應用非線性傳遞函數、以及輸出複數轉換輸出電壓至類比數位轉換器單元, 其中控制器的積體電路執行的操作可更包括: 從類比數位轉換器單元得到對應轉換輸出電壓的第一多個轉換數位輸出電壓,第一多個轉換數位輸出電壓形成第一轉換數位輸出向量;以及 在記憶體單元中儲存第一轉換數位輸出向量。
實施例203:如實施例174至202中任意一者之計算系統,其中控制器的積體電路被配置以以產生大於或等於8GHz的頻率的第一多個調變器控制訊號。
實施例204:如實施例174至190中任意一者之計算系統,其中第一單元包括數位類比轉換器(DAC)單元,第二單元可包括類比數位轉換器(ADC)單元,矩陣乘法單元包括: 光矩陣乘法單元,耦接至光調變器和數位類比轉換器單元,光矩陣乘法單元被配置以基於權重控制訊號將光輸入向量轉換成光輸出向量;以及 光偵測單元,耦接至光矩陣乘法單元,並且被配置以產生對應光輸出向量的複數輸出電壓。
實施例205:如實施例204之計算系統,更包括: 類比記憶體單元,被設置在DAC單元與光調變器之間,類比記憶體單元被配置以儲存複數類比電壓,並且輸出儲存的類比電壓;以及 類比非線性單元,被設置在光偵測單元與ADC單元之間,類比非線性單元被配置以從光偵測單元接收輸出電壓、應用非線性傳遞函數、以及輸出複數轉換輸出電壓。
實施例206:如實施例205之計算系統,其中類比記憶體單元包括複數電容。
實施例207:如實施例205或206之計算系統,其中類比記憶體單元被配置以接收和儲存類比非線性單元的轉換輸出電壓,並且將儲存的轉換輸出電壓輸出至光調變器,以及 操作可更包括: 基於產生第一多個調變器控制訊號和第一多個權重控制訊號,在類比記憶體單元中儲存類比非線性單元的轉換輸出電壓; 透過類比記憶體單元輸出儲存的轉換輸出電壓; 從類比數位轉換器單元得到第二多個轉換數位輸出電壓,第二多個轉換數位輸出電壓形成第二轉換數位輸出向量;以及 在記憶體單元中儲存第二轉換數位輸出向量。
實施例208:如實施例204之計算系統,其中計算系統可包括記憶體單元,被配置以儲存輸入資料集和神經網路權重,並且人工神經網路計算請求的輸入資料集可包括複數數位輸入向量, 其中光源被配置以產生複數波長, 其中光調變器包括: 複數光調變器組,被配置以產生複數光輸入向量,每一個光調變器組對應一個波長,並且產生具有相應波長的相應光輸入向量;以及 光多路複用器,被配置以將光輸入向量組合成包括波長的組合光輸入向量, 其中光偵測單元可更被配置以多路分解波長,並且產生複數多路分解輸出電壓,以及 其中操作包括: 從類比數位轉換器單元得到複數數位多路分解光輸出,數位多路分解光輸出形成複數第一數位輸出向量,其中每一個第一數位輸出向量對應一個波長; 對每一個第一數位輸出向量執行非線性轉換,以產生複數轉換第一數位輸出向量;以及 在記憶體單元中儲存轉換第一數位輸出向量, 其中每一個數位輸入向量對應一個光輸入向量。
實施例209:如實施例174之計算系統,其中計算系統包括記憶體單元,被配置以儲存輸入資料集和神經網路權重,第二單元包括類比數位轉換器(ADC)單元,並且人工神經網路計算請求可包括複數數位輸入向量, 其中光源被配置以產生複數波長, 其中光調變器包括: 複數光調變器組,被配置以產生複數光輸入向量,每一個光調變器組對應一個波長者,並且產生具有相應波長的相應光輸入向量;以及 光多路複用器,被配置以將光輸入向量組合成包括波長的組合光輸入向量,以及 操作可包括: 從類比數位轉換器單元得到對應光輸出向量的第一多個數位光輸出,光輸出向量包括波長,第一多個數位光輸出形成第一數位輸出向量; 對第一數位輸出向量執行非線性轉換,以產生第一轉換數位輸出向量;以及 在記憶體單元中上述第一轉換數位輸出向量。
實施例210:如實施例174至209中任意一者之計算系統,其中第一單元包括數位類比轉換器(DAC)單元,第二單元可包括類比數位轉換器(ADC)單元,並且數位類比轉換器單元可包括: 1位元數位類比轉換器子單元,被配置以產生複數1位元調變器控制訊號, 其中類比數位轉換器單元的解析度可為1位元, 其中第一數位輸入向量的解析度可為N位元,以及 其中操作更包括: 將第一數位輸入向量分解為N個1位元輸入向量,N個1位元輸入向量之每一者對應第一數位輸入向量的N位元之一者; 透過1位元數位類比轉換器子單元產生對應N個1位元輸入向量的N個1位元調變器控制訊號的序列; 從類比數位轉換器單元得到對應N個1位元調變器控制訊號的序列的N個數位1位元光輸出的序列; 從N個數位1位元光輸出的序列建構N位元數位輸出向量; 對建構的N位元數位輸出向量執行非線性轉換,以產生轉換N位元數位輸出向量;以及 在記憶體單元中儲存轉換N位元數位輸出向量。
實施例211:如實施例174至210中任意一者之計算系統,其中計算系統包括記憶體單元,被配置以儲存輸入資料集和神經網路權重,並且記憶體單元包括: 數位輸入向量記憶體,被配置以儲存第一數位輸入向量,並且包括至少一靜態隨機存取記憶體;以及 神經網路權重記憶體,被配置以儲存神經網路權重,並且包括至少一動態隨機存取記憶體。
實施例212:如實施例174至211中任意一者之計算系統,其中第一單元包括數位類比轉換器(DAC)單元,數位類比轉換器單元包括: 第一數位類比轉換器子單元,被配置以產生調變器控制訊號;以及 第二數位類比轉換器子單元,被配置以產生權重控制訊號, 其中第一數位類比轉換器子單元和第二數位類比轉換器子單元是不同的。
實施例213:如實施例174至212中任意一者之計算系統,其中光源包括: 雷射源,被配置以產生光;以及 光功率分離器,被配置以將由雷射源所產生的光分成光輸出,其中每一個光輸出具有大抵相同的功率。
實施例214:如實施例174至213中任意一者之計算系統,其中光調變器包括MZI涉調變器、環形共振調變器或電吸收調變器中的一個。
實施例215:如實施例204之計算系統,其中光偵測單元包括: 複數光偵測器;以及 複數放大器,被配置以將由光偵測器所產生的光電流轉換成輸出電壓。
實施例216:如實施例174至215中任意一者之計算系統,其中積體電路是特殊應用積體電路。
實施例217:如實施例174和191至194中任意一者之計算系統,包括複數光波導,光波導耦接在光調變器與矩陣乘法單元之間,其中光輸入向量包括一組多個輸入值,一組多個輸入值被編碼在由光波導所承載的相應光訊號上,並且由一個光波導者所承載的每一個光訊號包括具有共同波長的光波,共同波長於所有光訊號大抵相同。
實施例218:如實施例191至194和217中任意一者之計算系統,其中複製模組包括具有光分離器的至少一複製模組,光分離器在輸入端口將光波的功率的既定比例發送至第一輸出端口,並且在輸入端口將光波的功率的剩餘比例發送至第二輸出端口。
實施例219:如實施例218之計算系統,其中光分離器包括波導光分離器,波導光分離器將由輸入光波導所引導的光波的功率的既定比例發送至第一輸出光波導,並且將由輸入光波導所引導的光波的功率的剩餘比例發送至第二輸出光波導。
實施例220:如實施例219之計算系統,其中輸入光波導的引導模式被絕熱地耦接至第一輸出光波導和第二輸出光波導中之每一者的複數引導模式。
實施例221:如實施例218至220中任意一者之計算系統,其中光分離器包括光束分離器,光束分離器包括至少一表面,其在輸入端口傳輸光波的功率的既定比例,並且在輸入端口反射光波的功率的剩餘比例。
實施例222:如實施例217至221中任意一者之計算系統,其中至少一光波導包括耦接至光耦合器的光纖,光耦合器將光纖的引導模式耦接至自由空間傳播模式。
實施例223:如實施例174、191至194和217至222中任意一者之計算系統,其中乘法模組包括至少一相干敏感乘法模組,相干敏感乘法模組被配置以基於複數光波之間的干涉,使用光幅度調變將第一子集的一或多個光訊號乘以一或多個矩陣元素值,光波具有相干長度,相干長度至少與通過相干敏感乘法模組的傳播距離一樣長。
實施例224:如實施例223之計算系統,其中相干敏感乘法模組包括馬赫曾德爾干涉儀(MZI),馬赫曾德爾干涉儀將輸入光波導所引導的光波分成馬赫曾德爾干涉儀的第一光波導臂和馬赫曾德爾干涉儀的第二光波導臂,第一光波導臂包括相位移器,相位移器相對於第二光波導臂的相位延遲產生相對相位移,並且馬赫曾德爾干涉儀將來自第一光波導臂和第二光波導臂的複數光波組合成至少一輸出光波導。
實施例225:如實施例224之計算系統,其中MZI將來自第一光波導臂和第二光波導臂的複數光波組合成第一輸出光波導和第二輸出光波導中的每一者,第一光偵測器從第一輸出光波導接收光波以產生第一光電流,第二光偵測器從第二輸出光波導接收光波以產生第二光電流,並且相干敏感乘法模組的結果包括第一光電流與第二光電流之間的差值。
實施例226:如實施例223至225中任意一者之計算系統,其中相干敏感乘法模組包括一或多個環形共振器,環形共振器包括耦接至第一光波導的至少一環形共振器和耦接至第二光波導的至少一環形共振器。
實施例227:如實施例226之計算系統,其中第一光偵測器接收來自第一光波導的光波,以產生第一光電流,第二光偵測器接收來自第二光波導的光波,以產生第二光電流,並且相干敏感乘法模組的結果包括第一光電流與第二光電流之間的差值。
實施例228:如實施例174、191至194和217至227中任意一者之計算系統,其中乘法模組包括至少一相干非敏感乘法模組,相干非敏感乘法模組被配置以基於光波內的能量吸收,使用光幅度調變將第一子集的一或多個光訊號乘以一或多個矩陣元素值。
實施例229:如實施例228之計算系統,其中相干非敏感乘法模組包括電吸收調變器。
實施例230:如實施例174、191至194和217至229中任意一者之計算系統,其中一或多個求和模組包括具有以下部件的至少一求和模組:(1)二或多個輸入導體,每一個輸入導體以輸入電流的形式承載電訊號,輸入電流的幅度表示相應一個乘法模組的相應結果,以及(2)至少一輸出導體,輸出導體承載表示輸出電流形式的相應結果的總和的電訊號,輸出電流與輸入電流之總和成比例。
實施例231:如實施例230之計算系統,其中二或多個輸入導體和輸出導體包括複數導線,其在導線之間的一或多個接點相遇,並且輸出電流大抵等於輸入電流之總和。
實施例232:如實施例230或231之計算系統,其中輸入電流的至少一第一輸入電流在至少一光電流的形式提供,光電流由至少一光偵測器產生,光偵測器接收由乘法模組的第一乘法模組所產生的光訊號。
實施例233:如實施例232之計算系統,其中第一輸入電流在兩個光電流之間的差值的形式提供,兩個光電流由不同相應光偵測器產生,光偵測器接收由第一乘法模組所產生的不同相應光訊號。
實施例234:如實施例174至233中任意一者之計算系統,其中一或多個光訊號的第一子集的副本之一者由單一光訊號組成,其中單一光訊號上的一個輸入值被編碼。
實施例235:如實施例234之計算系統,其中對應第一子集的副本的乘法模組將編碼的輸入值乘以單一矩陣元素值。
實施例236:如實施例174、191至194和217至235中任意一者之計算系統,其中一或多個光訊號的第一子集的副本之一者包括的光訊號多於一個,並且少於所有光訊號的數量,其中光訊號的多個輸入值被編碼。
實施例237:如實施例236之計算系統,其中對應第一子集的副本的乘法模組將編碼的輸入值乘以不同的相應矩陣元素值。
實施例238:如實施例237之計算系統,其中對應一或多個光訊號的第一子集的不同相應副本的不同乘法模組被包含在不同裝置,不同裝置進行光學通訊以在不同裝置之間傳輸一或多個光訊號的第一子集的副本之一者。
實施例239:如實施例174、191至194和217至238中任意一者之計算系統,其中光波導的二或多個、複製模組的二或多個、乘法模組的二或多個、以及一或多個求和模組的至少一者被設置在公共裝置的基板上。
實施例240:如實施例239之計算系統,其中裝置執行向量矩陣乘法,其中可提供輸入向量作為一組光訊號,並且可提供輸出向量作為一組電訊號。
實施例241:如實施例174、191至194和217至240中任意一者之計算系統,更包括累加器,累加器整合對應乘法模組或求和模組的輸出的輸入電訊號,其中可使用時域編碼來編碼輸入電信號,時域編碼在多個時槽的每一者內使用開關幅度調變,並且累加器可產生輸出電訊號,輸出電訊號以多於兩個幅度準位來編碼,幅度準位對應多個時槽上的時域編碼的不同佔空比。
實施例242:如實施例174、191至194和217至241中任意一者之計算系統,其中乘法模組的二或多個之每一者對應一或多個光訊號的不同子集。
實施例243:如實施例174、191至194和217至242中任意一者之計算系統,更包括用於一或多個光訊號的第二子集的每一個副本,與一或多個光訊號的第一子集中的光訊號不同,乘法模組被配置以使用光幅度調變將第二子集的一個或多個光訊號乘以一或多個矩陣元素值。
實施例244:計算系統,包括: 記憶體單元,被配置以儲存資料集和複數神經網路權重; 驅動器單元,被配置以產生複數調變器控制訊號; 光電處理器,包括: 光源,被配置以提供複數光輸出; 複數光調變器,耦接至光源和驅動器單元,光調變器被配置以基於調變器控制訊號,調變由光源所產生的光輸出,來產生光輸入向量; 矩陣乘法單元,耦接至光調變器和驅動器單元,矩陣乘法單元被配置以基於複數權重控制訊號將光輸入向量轉換成類比輸出向量;以及 比較器單元,耦接至矩陣乘法單元,並且被配置以將類比輸出向量轉換成複數數位1位元輸出;以及 控制器,包括積體電路,被配置以執行以下操作: 接收包括輸入資料集和第一多個神經網路權重的人工神經網路計算請求,其中輸入資料集包括具有N位元解析度的第一數位輸入向量; 在記憶體單元中儲存輸入資料集和第一多個神經網路權重; 將第一數位輸入向量分解為N個1位元輸入向量,每一個N個1位元輸入向量對應第一數位輸入向量的N位元中的一個; 透過驅動器單元產生對應N個1位元輸入向量的N個1位元調變器控制訊號的序列; 從比較器單元得到對應N個1位元調變器控制訊號的序列的N個數位1位元輸出的序列; 從N個數位1位元光輸出的序列建構N位元數位輸出向量; 對建構的N位元數位輸出向量執行非線性轉換,以產生轉換N位元數位輸出向量;以及 在記憶體單元中儲存轉換N位元數位輸出向量。
實施例245:如實施例244之計算系統,其中接收人工神經網路計算請求包括從通用電腦(general purpose computer)接收人工神經網路計算請求。
實施例246:如實施例244之計算系統,其中驅動器單元被配置以產生權重控制訊號。
實施例247:如實施例244之計算系統,其中矩陣乘法單元包括: 光矩陣乘法單元,耦接至光調變器和驅動器單元,光矩陣乘法單元被配置以基於權重控制訊號將光輸入向量轉換成光輸出向量;以及 光偵測單元,耦接至光矩陣乘法單元,並且被配置以產生對應光輸出向量的複數輸出電壓。
實施例248:如實施例244之計算系統,其中矩陣乘法單元包括: 輸入波導陣列,用於接收光輸入向量; 光干涉單元,與輸入波導陣列光學通訊,用於執行將光輸入向量轉換成第二光訊號陣列的線性轉換;以及 輸出波導陣列,與光干涉單元光學通訊,用於引導第二光訊號陣列,其中在輸入波導陣列中的至少一輸入波導透過光干涉單元與在輸出波導陣列中的每一個輸出波導光學通訊。
實施例249:如實施例248之計算系統,其中光干涉單元包括: 複數互連MZI,互連MZI中的每一個MZI包括: 第一相位移器,被配置以改變MZI的分離比;以及 第二相位移器,被配置以位移MZI的一個輸出的相位, 其中第一相位移器和第二相位移器可耦接至權重控制訊號。
實施例250:如實施例244之計算系統,其中矩陣乘法單元包括: 複數複製模組,包括用於光輸入向量的一或多個光訊號的至少兩個子集中的每一者,一或多個複製模組的相應一組被配置以將一或多個光訊號的子集分成二或多個光訊號的副本; 複數乘法模組,包括用於一或多個光訊號的第一子集的至少兩個副本中的每一者,相應的乘法模組被配置以使用光幅度調變將第一子集的一或多個光訊號乘以一或多個矩陣元素值;以及 一或多個求和模組,包括用於二或多個乘法模組的結果,求和模組被配置以產生電訊號,電訊號表示二或多個乘法模組的結果的總和。
實施例251:如實施例250之計算系統,其中至少一乘法模組包括光幅度調變器,光幅度調變器包括一個輸入端口和兩個輸出端口,並且從兩個輸出端口提供一對相關光訊號,使得相關光訊號的幅度之間的差值對應於將輸入值乘以有號矩陣元素值的結果。
實施例252:如實施例250或251之計算系統,其中矩陣乘法單元被配置以將光輸入向量乘以包括一或多個矩陣元素值的矩陣。
實施例253:如實施例252之計算系統,其中一組多個輸出值被編碼在由一或多個求和模組所產生的相應電訊號上,並且一組多個輸出值中的輸出值表示輸出向量的元素,輸出向量藉由光輸入向量乘以矩陣產生。
實施例254:用於在具有矩陣乘法單元的系統中執行人工神經網路計算的計算方法,矩陣乘法單元被配置以基於複數權重控制訊號將光輸入向量轉換成類比輸出向量,計算方法包括: 接收包括輸入資料集和第一多個神經網路權重的人工神經網路計算請求,其中輸入資料集包括第一數位輸入向量; 在記憶體單元中儲存輸入資料集和第一多個神經網路權重; 基於第一數位輸入向量產生第一多個調變器控制訊號,並且基於第一多個神經網路權重產生第一多個權重控制訊號; 得到對應矩陣乘發單元的輸出向量的第一多個數位輸出,第一多個數位輸出形成第一數位輸出向量; 藉由控制器對第一數位輸出向量執行非線性轉換,以產生第一轉換數位輸出向量; 在記憶體單元中儲存第一轉換數位輸出向量;以及 藉由控制器輸出基於第一轉換數位輸出向量所產生的人工神經網路輸出。
實施例255:如實施例254之計算方法,其中接收人工神經網路計算請求包括透過通訊通道從電腦接收人工神經網路計算請求。
實施例256:如實施例254或255之計算方法,其中產生第一多個調變器控制訊號包括透過數位類比轉換器(DAC)單元產生第一多個調變器控制訊號。
實施例257:如實施例254至256中任意一者之計算方法,其中得到第一多個數位輸出包括從類比數位轉換器(ADC)單元得到第一多個數位輸出。
實施例258:如實施例257之計算方法,包括: 將第一多個調變器控制訊號施加至耦接到光源和DAC單元的複數光調變器;以及 使用光調變器基於調變器控制訊號調變由雷射單元所產生的光輸出,來產生光輸入向量。
實施例259:如實施例258之計算方法,其中矩陣乘法單元耦接至光調變器和DAC單元,並且計算方法包括: 使用矩陣乘法單元基於權重控制訊號將光輸入向量轉換成類比輸出向量。
實施例260:如實施例259之計算方法,其中ADC單元耦接至矩陣乘法單元,並且計算方法包括: 使用ADC單元將類比輸出向量轉換成第一多個數位輸出。
實施例261:如實施例259或260之計算方法,其中矩陣乘法單元包括耦接至光調變器和DAC單元的光矩陣乘法單元, 將光輸入向量轉換成類比輸出向量包括使用光矩陣乘法單元基於權重控制訊號將光輸入向量轉換成光輸出向量,以及 計算方法可括:使用耦接至光矩陣乘法單元的光偵測單元,產生對應光輸出向量的複數輸出電壓。
實施例262:如實施例254之計算方法,包括: 在輸入波導陣列接收光輸入向量; 使用與輸入波導陣列光學通訊的光干涉單元,執行將光輸入向量轉換成第二光訊號陣列的線性轉換;以及 使用與光干涉單元光學通訊的輸出波導陣列,引導第二光訊號陣列,其中在輸入波導陣列中的至少一輸入波導透過光干涉單元與在輸出波導陣列中的每一個輸出波導光學通訊。
實施例263:如實施例262之計算方法,其中光干涉單元包括複數互連馬赫曾德爾干涉儀(MZI),互連MZI中的每一個MZI可包括第一相位移器和第二相位移器,並且第一相位移器和第二相位移器可耦接至權重控制訊號,其中 計算方法包括: 使用第一相位移器改變MZI的分離比,以及 使用第二相位移器位移MZI的一個輸出的相位。
實施例264:如實施例258之計算方法,包括: 對於光輸入向量的一或多個光訊號的至少兩個子集中的每一者,使用一或多個複製模組的相應一組將一或多個光訊號的子集分成二或多個光訊號的副本; 對於一或多個光訊號的第一子集的至少兩個副本中的每一者,使用相應的乘法模組以使用光幅度調變將第一子集的一或多個光訊號乘以一或多個矩陣元素值;以及 對於二或多個乘法模組的結果,使用求和模組以產生電訊號,電訊號表示二或多個乘法模組的結果的總和。
實施例265:如實施例264之計算方法,其中至少一乘法模組包括光幅度調變器,光幅度調變器包括一個輸入端口和兩個輸出端口,並且從兩個輸出端口提供一對相關光訊號,使得相關光訊號的幅度之間的差值對應於將輸入值乘以有號矩陣元素值的結果。
實施例266:如實施例264或265之計算方法,包括使用矩陣乘法單元將光輸入向量乘以包括一或多個矩陣元素值的矩陣。
實施例267:如實施例266之計算方法,包括在由一或多個求和模組所產生的相應電訊號上編碼一組多個輸出值,以及 使用一組多個輸出值中的輸出值表示輸出向量的元素,光輸出向量藉由輸入向量乘以矩陣產生。
實施例268:計算方法,包括: 以電子格式提供輸入資訊; 將至少一部分電子輸入資訊轉換成光輸入向量; 基於矩陣乘法將光輸入向量光電地轉換成類比輸出向量;以及 將非線性轉換電子地應用於類比輸出向量,以提供電子格式的輸出資訊。
實施例269:如實施例268之計算方法,更包括: 對於對應以電子格式所提供的輸出資訊的新電子輸入資訊,重複電光轉換、光電轉換以及電應用的非線性轉換。
實施例270:如實施例269之計算方法,其中用於初始光電轉換的矩陣乘法和重複光電轉換的矩陣乘法是相同的,並且對應人工神經網路的相同層。
實施例271:如實施例269之計算方法,其中用於初始光電轉換的矩陣乘法和重複光電轉換的矩陣乘法是不同的,並且對應人工神經網路的不同層。
實施例272:如實施例268之計算方法,更包括: 對於電子輸入資訊的不同部分,重複電光轉換、光電轉換以及電應用的非線性轉換, 其中用於初始光電轉換的矩陣乘法和重複光電轉換的矩陣乘法是相同的,並且對應人工神經網路的第一層。
實施例273:如實施例272之計算方法,更包括: 基於由人工神經網路的第一層所產生的用於電子輸入資訊的多個部分的電子輸出資訊,以電子格式提供電子中間資訊;以及 對於電子中間資訊的每一個不同部分,重複電光轉換、光電轉換以及電應用的非線性轉換, 其中用於初始光電轉換的矩陣乘法和與電子中間資訊的不同部分相關的重複光電轉換的矩陣乘法是相同的,並且對應人工神經網路的第二層。
實施例274:用於執行人工神經網路計算的計算方法,計算方法包括: 第一單元,被配置以產生複數向量控制訊號,並且產生複數權重控制訊號; 第二單元,被配置以基於向量控制訊號提供光輸入向量; 矩陣乘法單元,耦接至第二單元和第一單元,矩陣乘法單元被配置以基於權重控制訊號將光輸入向量轉換成輸出向量;以及 控制器,包括積體電路,被配置以執行以下操作: 接收包括輸入資料集和第一多個神經網路權重的人工神經網路計算請求,其中輸入資料集包括第一數位輸入向量;以及 透過第一單元,基於第一數位輸入向量產生第一多個向量控制訊號,並且基於第一多個神經網路權重產生第一多個權重控制訊號; 其中第一單元、第二單元、矩陣乘法單元以及控制器被用於在複數迭代中重複的光電處理循環,並且光電處理循環包括:(1)至少兩次光調變操作,以及(2)(a)電求和操作或(b)電儲存操作中之至少一者。
實施例275:用於執行人工神經網路計算計算方法,計算方法包括: 以電子格式提供輸入資訊; 將至少一部分電子輸入資訊轉換成光輸入向量;以及 使用一組神經網路權重,基於矩陣乘法將光輸入向量轉換成輸出向量; 其中提供操作和轉換操作在光電處理循環中執行,使用不同相應組神經網路權重和不同相應輸入資訊,在複數迭代中重複光電處理循環,並且光電處理循環包括:(1)至少兩次光調變操作,以及(2)(a)電求和操作或(b)電儲存操作中之至少一者。
實施例276:計算系統,包括: 第一單元,被配置以產生複數調變器控制訊號; 處理單元,包括: 光源或端口,被配置以提供複數光輸出; 第一組光調變器,耦接至光源或端口和第一單元,第一組光調變器中的複數光調變器被配置以基於與調變器控制訊號中的第一組調變器控制訊號相對應的複數數位輸入值,調變由光源或端口所提供的光輸出,來產生光輸入向量,光輸入向量包括複數光訊號;以及 矩陣乘法單元,包括第二組光調變器,其中矩陣乘法單元耦接至第一單元,並且矩陣乘法單元被配置以基於與施加到第二組光調變器的調變器控制訊號中的第二組調變器控制訊號相對應的複數數位權重值,將光輸入向量轉換為類比輸出向量, 其中第一組光調變器或第二組光調變器中的至少一者的至少一光調變器被配置以基於調變器控制訊號中的第一調變器控制訊號來調變光訊號,並且第一單元被配置以整形第一調變器控制訊號,以包括與幅度變化相關的帶寬增強,幅度變化與對應第一調變器控制訊號的複數連續數位值的一對應變化相關。
實施例277:如實施例276之計算系統,更包括: 第二單元,耦接至矩陣乘法單元,並且第二單元被配置以將類比輸出向量轉換成數位輸出向量;以及 控制器,包括積體電路,被配置以執行以下操作: 接收人工神經網路計算請求,人工神經網路計算請求包括輸入資料集,輸入資料集包括第一數位輸入向量; 接收第一多個神經網路權重;以及 透過第一單元,基於第一數位輸入向量產生第一多個調變器控制訊號,並且基於第一多個神經網路權重產生第一多個權重控制訊號。
實施例278:如實施例276或277之計算系統,其中第一單元包括數位類比轉換器(DAC)。
實施例279:如實施例277之計算系統,更包括記憶體單元,被配置以儲存資料集和複數神經網路權重。
實施例280:如實施例279之計算系統,其中控制器的積體電路更被配置以執行包括在記憶體單元中儲存輸入資料集和第一多個神經網路權重的操作。
實施例281:如實施例277至280中任意一者之計算系統,其中控制器包括特殊應用積體電路(ASIC),以及 接收人工神經網路計算請求的步驟包括從通用資料處理器接收人工神經網路計算請求。
實施例282:如實施例277至281中任意一者之計算系統,其中第一單元、處理單元、第二單元以及控制器被設置在多晶片模組或積體電路中的至少一者上,以及 接收人工神經網路計算請求的步驟包括從第二資料處理器接收人工神經網路計算請求,其中第二資料處理器在多晶片模組或積體電路的外部,第二資料處理器透過通訊通道耦接至多晶片模組或積體電路,並且處理單元可以以比通訊通道的資料速率大至少一數量級的資料速率來處理資料。
實施例283:如實施例277至282中任意一者之計算系統,其中第一單元、處理單元、第二單元以及控制器被用於在複數迭代中重複的光電處理循環,光電處理循環包括: (1)基於調變器控制訊號之至少一者的至少一第一光調變操作,以及基於權重控制訊號之至少一者的至少一第二光調變操作,以及 (2)(a)電求和操作或(b)電儲存操作中之至少一者。
實施例284:如實施例283之計算系統,其中光電處理循環包括電儲存操作,並且電儲存操作使用耦接至控制器的記憶體單元來執行, 其中藉由控制器所執行的操作更包括在記憶體單元中儲存輸入資料集和第一多個神經網路權重。
實施例285:如實施例283或284之計算系統,其中光電處理循環包括電求和操作,並且電求和操作使用在矩陣乘法單元內的電求和模組來執行, 其中電求和模組被配置以產生對應類比輸出向量的元素的電流,電流表示光輸入向量的相應元素乘以相應神經網路權重的總和。
實施例286:如實施例276至285中任意一者之計算系統,其中第一調變器控制訊號包括與複數既定幅度準位相關的類比訊號,並且幅度準位之每一者與不同對應數位值相關。
實施例287:如實施例286之計算系統,其中第一調變器控制訊號包括與既定幅度準位之兩者相關的類比訊號,並且幅度準位之每一者與不同對應二元值相關。
實施例288:如實施例287之計算系統,其中連續數位值包括在一系列二元值中的複數連續二元值。
實施例289:如實施例288之計算系統,其中控制器被配置以藉由增加與第一時間間隔相關的第一既定幅度準位和與第二時間間隔相關的第二既定幅度準位之間的幅度變化的大小,來整形第一調變器控制訊號,以包括用於第二時間間隔的初始部分的帶寬增強。
實施例290:如實施例288或289之計算系統,其中一系列二元值用於確定用於根據不歸零(NRZ)調變模式來調變光訊號的第一調變器控制訊號的幅度準位。
實施例291:如實施例288至290中任意一者之計算系統,其中第一單元被配置以藉由在第二組光調變器中的第一調變器的二極體結構和串聯連接在二極體結構和提供第一調變器控制訊號的電路之間的電容之間泵浦電流,來整形第一調變器控制訊號,以包括帶寬增強,以及泵浦電流所傳輸的電荷量至少部分地基於在提供連續數位值的時間週期內的恆定電壓來確定。
實施例292:計算裝置,包括: 複數光波導,耦接至第一組光幅度調變器,其中使用第一組光幅度調變器,在由光波導所承載的相應複數光訊號上編碼一組多個輸入值; 複數複製模組,並且對於一或多個光訊號的至少兩個子集中的每一者,複製模組的一或多者的對應一組被配置以將一或多個光訊號的子集分成光訊號的二或多個副本; 複數乘法模組,乘法模組之每一者包括第二組光幅度調變器的光幅度調變器,並且對於一或多個光訊號的第一子集的至少兩個副本中的每一者,乘法模組的對應一者被配置以使用第二組光幅度調變器的光幅度調變器將第一子集的一或多個光訊號乘以一或多個矩陣元素值;以及 一或多個求和模組,並且對於乘法模組的二或多者的結果,求和模組的對應一者被配置以產生電訊號,電訊號表示乘法模組的二或多者的結果的總和; 其中第一組光幅度調變器或第二組光幅度調變器中的至少一者的至少一光幅度調變器被配置以使用相對調變值的絕對值單調增加的功率,藉由調變值來調變光訊號。
實施例293:如實施例292之計算裝置,其中第一組光幅度調變器或第二組光幅度調變器中的至少一者的至少一光幅度調變器包括相干敏感光幅度調變器,相干敏感光幅度調變器被配置以基於複數光波之間的干涉,藉由調變值調變光訊號,光波具有相干長度,相干長度至少與通過相干敏感光幅度調變器的傳播距離一樣長。
實施例294:如實施例293之計算裝置,其中相干敏感光幅度調變器包括馬赫曾德爾干涉儀(MZI),馬赫曾德爾干涉儀將輸入光波導所引導的光波分成馬赫曾德爾干涉儀的第一光波導臂和馬赫曾德爾干涉儀的第二光波導臂,第一光波導臂包括主動相位移器,主動相位移器相對於第二光波導臂的相位延遲產生相對相位移,並且馬赫曾德爾干涉儀將來自第一光波導臂和第二光波導臂的複數光波組合成至少一輸出光波導。
實施例295:如實施例294之計算裝置,其中用於藉由調變值來調變光訊號的功率包括施加到主動相位移器的功率。
實施例296:如實施例292之計算裝置,其中編碼在相應光訊號上的一組多個輸入值中的複數輸入值表示與包括一或多個矩陣元素值的矩陣相乘的輸入向量的複數元素。
實施例297:如實施例296之計算裝置,其中一組多個輸出值被編碼在由一或多個求和模組所產生的複數相應電訊號上,並且一組多個輸出值中的複數輸出值表示輸出向量的複數元素,輸出向量藉由輸入向量乘以矩陣產生。
實施例298:如實施例292至297中任意一者之計算裝置,其中由光波導所承載的光訊號之每一者包括具有共同波長的光波,共同波長於所有光訊號大抵相同。
實施例299:如實施例292至297中任意一者之計算裝置,其中複製模組包括具有光分離器的至少一複製模組,光分離器在複製模組的輸入端口將光波的功率的既定比例發送至複製模組的第一輸出端口,並且在複製模組的輸入端口將光波的功率的剩餘比例發送至複製模組的第二輸出端口。
實施例300:如實施例299之計算裝置,其中光分離器包括波導光分離器,波導光分離器將由複製模組的輸入光波導所引導的光波的功率的既定比例發送至複製模組的第一輸出光波導,並且將由複製模組的輸入光波導所引導的光波的功率的剩餘比例發送至複製模組的第二輸出光波導。
實施例301:如實施例300之計算裝置,其中輸入光波導的引導模式被絕熱地耦接至第一輸出光波導和第二輸出光波導中之每一者的複數引導模式。
實施例302:如實施例299或230之計算裝置,其中光分離器包括光束分離器,光束分離器包括至少一表面,其在輸入端口傳輸光波的功率的既定比例,並且在輸入端口反射光波的功率的剩餘比例。
實施例303:如實施例302之計算裝置,其中光波導的至少一者包括耦接至光耦合器的光纖,光耦合器將光纖的引導模式耦接至自由空間傳播模式。
實施例304:如實施例292至303中任意一者之計算裝置,其中乘法模組包括至少一相干敏感光幅度調變器,相干敏感光幅度調變器被配置以基於複數光波之間的干涉,將第一子集的一或多個光訊號乘以一或多個矩陣元素值,光波具有相干長度,相干長度至少與通過相干敏感光幅度調變器的傳播距離一樣長。
實施例305:如實施例304之計算裝置,其中相干敏感光幅度調變器包括馬赫曾德爾干涉儀,馬赫曾德爾干涉儀將輸入光波導所引導的光波分成馬赫曾德爾干涉儀的第一光波導臂和馬赫曾德爾干涉儀的第二光波導臂,第一光波導臂包括相位移器,相位移器相對於第二光波導臂的相位延遲產生相對相位移,並且馬赫曾德爾干涉儀將來自第一光波導臂和第二光波導臂的複數光波組合成至少一輸出光波導。
實施例306:如實施例305之計算裝置,其中馬赫曾德爾干涉儀將來自第一光波導臂和第二光波導臂的複數光波組合成第一輸出光波導和第二輸出光波導中的每一者,第一光偵測器從第一輸出光波導接收光波以產生第一光電流,第二光偵測器從第二輸出光波導接收光波以產生第二光電流,並且相干敏感光幅度調變器的結果包括第一光電流與第二光電流之間的差值。
實施例307:如實施例304至306中任意一者之計算裝置,其中相干敏感光幅度調變器包括一或多個環形共振器,環形共振器包括耦接至第一光波導的至少一環形共振器和耦接至第二光波導的至少一環形共振器。
實施例308:如實施例307之計算裝置,其中第一光偵測器接收來自第一光波導的光波,以產生第一光電流,第二光偵測器接收來自第二光波導的光波,以產生第二光電流,並且相干敏感光幅度調變器的結果包括第一光電流與第二光電流之間的差值。
實施例309:如實施例292至308中任意一者之計算裝置,其中乘法模組包括至少一相干非敏感光幅度調變器,相干非敏感光幅度調變器被配置以基於光波內的能量吸收,將第一子集的一或多個光訊號乘以一或多個矩陣元素值。
實施例310:如實施例309之計算裝置,其中相干非敏感光幅度調變器包括電吸收調變器。
實施例311:如實施例292至310中任意一者之計算裝置,其中一或多個求和模組包括具有以下部件的至少一求和模組:(1)二或多個輸入導體,輸入導體之每一者以輸入電流的形式承載電訊號,輸入電流的幅度表示乘法模組的相應一者的相應結果,以及(2)至少一輸出導體,輸出導體承載表示輸出電流的形式的相應結果的總和的電訊號,輸出電流與輸入電流之總和成比例。
實施例312:如實施例311之計算裝置,其中二或多個輸入導體和輸出導體包括複數導線,其在導線之間的一或多個接點相遇,並且輸出電流大抵等於輸入電流之總和。
實施例313:如實施例311或312之計算裝置,其中輸入電流的至少一第一輸入電流以至少一光電流的形式提供,光電流由至少一光偵測器產生,光偵測器接收由乘法模組的第一乘法模組所產生的光訊號。
實施例314:如實施例313之計算裝置,其中第一輸入電流以兩個光電流之間的差值的形式提供,兩個光電流由不同相應光偵測器產生,光偵測器接收由第一乘法模組所產生的不同相應光訊號。
實施例315:如實施例292至314中任意一者之計算裝置,其中一或多個光訊號的第一子集的副本之一者由單一光訊號組成,其中單一光訊號上的輸入值之一者被編碼。
實施例316:如實施例315之計算裝置,其中對應第一子集的副本的乘法模組將編碼的輸入值乘以單一矩陣元素值。
實施例317:如實施例292至316中任意一者之計算裝置,其中一或多個光訊號的第一子集的副本之一者包括的光訊號多於一個,並且少於所有光訊號的數量,其中光訊號的多個輸入值被編碼。
實施例318:如實施例317之計算裝置,其中對應第一子集的副本的乘法模組將編碼的輸入值乘以不同相應矩陣元素值。
實施例319:如實施例318之計算裝置,其中對應一或多個光訊號的第一子集的不同相應副本的不同乘法模組被包含在不同裝置,不同裝置進行光學通訊以在不同裝置之間傳輸一或多個光訊號的第一子集的副本之一者。
實施例320:如實施例319之計算裝置,其中光波導的二或多者、複製模組的二或多者、乘法模組的二或多者、以及一或多個求和模組的至少一者被設置在公共裝置的基板上。
實施例321:如實施例320之計算裝置,其中公共裝置執行向量矩陣乘法,其中提供輸入向量作為一組光訊號,並且提供輸出向量作為一組電訊號。
實施例322:如實施例292至321中任意一者之計算裝置,更包括累加器,累加器整合對應乘法模組之一者或求和模組之一者的輸出的輸入電訊號,其中使用時域編碼來編碼輸入電信號,時域編碼在多個時槽的每一者內使用開關幅度調變,並且累加器產生輸出電訊號,輸出電訊號以多於兩個幅度準位來編碼,幅度準位對應多個時槽上的時域編碼的不同佔空比。
實施例323:如實施例292至322中任意一者之計算裝置,其中乘法模組的二或多者之每一者對應一或多個光訊號的不同子集。
實施例324:如實施例292至323中任意一者之計算裝置,更包括用於一或多個光訊號的第二子集的每一個副本,與一或多個光訊號的第一子集中的光訊號不同,乘法模組被配置以使用光幅度調變將第二子集的一個或多個光訊號乘以一或多個矩陣元素值。
實施例325:計算系統的操作方法,包括: 使用第一組光幅度調變器在相應光訊號上編碼一組多個輸入值; 對於一或多個光訊號的至少兩個子集中的每一者,使用一或多個複製模組的對應一組以將一或多個光訊號的複數子集分成光訊號的二或多個副本; 對於一或多個光訊號的第一子集的至少兩個副本中的每一者,使用一對應乘法模組以使用第二組光幅度調變器的光幅度調變器將第一子集的一或多個光訊號乘以一或多個矩陣元素值;以及 對於二或多個乘法模組的結果,使用求和模組以產生電訊號,電訊號表示二或多個乘法模組的結果的總和; 其中第一組光幅度調變器或第二組光幅度調變器中的至少一者的至少一光幅度調變器被配置以使用相對調變值的絕對值單調增加的功率,藉由調變值來調變光訊號。
100:人工神經網路計算系統 102:電腦 110:控制器 120:記憶體單元 130:數位類比轉換器單元 132:第一數位類比轉換器子單元 134:第二數位類比轉換器子單元 140:光處理器 142:雷射單元 144:調變器陣列 146:偵測單元 150:光矩陣乘法單元 160:類比數位轉換器單元 152:輸入波導 154:光干涉單元 156:輸出波導 157:配置 158:配置 170:馬赫曾德爾干涉儀 171:第一輸入波導 172:第二輸入波導 174:第一相位移器 176:第二相位移器 178:第一輸出波導 179:第二輸出波導 200:方法 210-270:步驟 290:示意圖 104:波長分波多工人工神經網路計算系統 3900:馬赫曾德爾調變器 3902a,3902b:1×2端口多模式干涉耦合器 3094a,3904b:臂 3906:相位移器 3908:訊號線 3910:曲線圖 300:人工神經網路計算系統 310:類比非線性單元 302:人工神經網路計算系統 320:類比記憶體單元 400:人工神經網路計算系統 430:驅動器單元 432:第一驅動子單元 434:第二驅動器子單元 460:比較器單元 500:人工神經網路計算系統 502:光矩陣乘法單元 504:光處理器 506:數位類比轉換器單元 600:光干涉單元 602:輸入波導 604:輸出波導 700:人工神經網路計算系統 702:光處理器 704:雷射單元 706:調變器陣列 708:光矩陣乘法單元 710:偵測單元 712:數位類比轉換器單元 714:光束陣列 716:二維光束陣列 718:二維輸出光束陣列 802:光輸入矩陣 804:光干涉單元 806:光輸出矩陣 900:人工神經網路計算系統 902:控制器 904:數位類比轉換器單元 906:光處理器 908:雷射單元 910:雷射光束 912:調變器 914:調變光束 916:光乘法單元 918:輸出光束 920:偵測單元 930:類比數位轉換器單元 1002:光輸入 1004:光干涉單元 1006:光輸出 2500:方法 2510-2570:步驟 2600:人工神經網路計算系統 2602:光電處理器 2604:第一2D光矩陣乘法單元 2606:第二2D光矩陣乘法單元 142a:第一雷射單元 144a:第一調變器陣列 146a:第一偵測單元 310a:第一類比非線性單元 142b:第二雷射單元 144b:第二調變器陣列 146b:第二偵測單元 310b:第二類比非線性單元 2700:人工神經網路計算系統 2702:光電處理器 2704:第一3D光矩陣乘法單元 2706:第二3D光矩陣乘法單元 704a:第一雷射單元 706a:第一調變器陣列 710a:第一偵測單元 704b:第二雷射單元 706b:第二調變器陣列 710b:第二偵測單元 2800:神經網路計算系統 2802:光處理器 2804:2D光矩陣乘法單元 2900:神經網路計算系統 2902:光處理器 2904:3D光矩陣乘法單元 3000:人工神經網路計算系統 3002:光處理器 3004:2D光矩陣乘法單元 3100:人工神經網路計算系統 3102:光處理器 3104:3D光矩陣乘法單元 1100:光子矩陣乘法器單元 1102:調變器 1104:互連干涉儀 1106:衰減器 1108a,1108b,1108c,1108d,1108e:定向耦合器層/第一層定向耦合器,第二層定向耦合器,第三層定向耦合器,第四層定向耦合器,第五層定向耦合器 1110a,1110b,1110c,1110d:相位移器層/第一層相位移器,第二層相位移器,第三層相位移器,第四層相位移器 1200,1204,1208:互連馬赫曾德爾干涉儀 1202,1206,1210:互連干涉儀 1212:緊湊互連干涉儀 1302:衰減器層 1400:光生成對抗網路 1402:鑑別器 1404:產生器 1406:初始訓練影像集 1408:隨機雜訊 1410:合成影像 1500:馬赫曾德爾干涉儀 1502:相位移器 1600:光子電路 1602:偵測器 1604:比較器 1606a,1608a:第一輸出 1606b,1608b:第二輸出 1700:光子電路 1704:第一輸出 1706:第二輸出 1710:光子電路 1712:第一馬赫曾德爾干涉儀 1714:第一偵測器 1716:第二馬赫曾德爾干涉儀 1718:第二偵測器 1720:第一輸出 1722:第二輸出 1800:光電計算系統 1802A,1802B:光學端口/光源 1803:光路徑 1804A,1804B:複製模組 1806A,1806B,1806C,1806D:乘法模組 1808:求和模組 1810A,1810B:訊號 1900:系統配置 1902:複製模組 1904:乘法模組 1906:光偵測模組 1908:求和模組 1920:系統配置 1910:光組合器模組 1912:光電求和模組 2000:對稱差分配置 2002:電流減法模組 2010,2014:電流 2012:第一光二極體偵測器 2016:第二光二極體偵測器 2018:接點 2020:差值電流 2024:端子 2026:輸出端 2028:電阻元件 2030:運算放大器 2032:公共端 2040,2044:電流 2042:第一光二極體偵測器 2046:第二光二極體偵測器 2050:運算放大器 2052:反相端 2054:非反相端 2056:輸出端 2100:對稱差分配置 2102:電流減法模組 2110:系統配置 2112:複製模組 2114A,2114B:求和模組 2200:1×2光幅度調變器 2202:輸入光分離器 2204:相位調變器 2206:耦合器 2210:對稱差分配置 2212,2214:光偵測器 2216:接點 2220:對稱差分配置 2221:輸入端口 2222:環形共振器 2224,2228:路徑 2226:順時針路徑 2230:對稱差分配置 2231:輸入端口 2232,2234:環形共振器 2236,2242:路徑 2238:順時針路徑 2240:逆時針路徑 2300A:光電系統配置 2302A,2302B:光幅度調變器 2303:波導分離器 2306A,2306B:運算放大器 2310A:向量矩陣乘法器子系統 2300B:光電系統配置 2310B:向量矩陣乘法器子系統 2400A:系統配置 2402:光學端口或光源 2403,2405A,2405B:群組 2404:複製模組 2410:向量矩陣乘法器子系統 2414:求和模組 2400B:系統配置 2420:光發射器陣列 2422:光接收器陣列 2400C:系統配置 2430:光學開關 2440:電開關 2400D:系統配置 2400E:系統配置 2450:資料儲存子系統 2460:輔助處理子系統 2462:結果資料 3200:人工神經網路計算系統 3210:光電處理器 3220:光電矩陣乘法單元 3230:光源 1803_1,1803_2,...,1803_m:光路徑 1804_1,1804_2,...,1804_n:複製模組 1806_11,1806_21,...,1806_m1,1806_12,1806_22,...,1804_m2,1806_1n,1806_2n,...,1806_mn:乘法模組 1808_1,1808_2,...,1808_n:求和模組 3300:方法 3310-3370:步驟 3290:示意圖 3500:波長分波多路複用人工神經網路計算系統/系統配置 3510:光電處理器 3520:光電矩陣乘法單元 3530_11,3530_21,...,3530_m1,3530_12,3530_22,...,3530_m2,3530_1n,3530_2n,...,3530_mn:乘法模組 3310:光偵測模組 3320:求和模組 3600,3700,3800:人工神經網路計算系統 4000:零差偵測器 4002:光束分離器 4004a,4004b:光偵測器 4006:減法器 4008:輸出 4100:計算系統 4102:第一光訊號 4104:第一調變器 4120:第一調變光訊號 4106:第二光訊號 4108:第二調變器 4122:第二調變光訊號 4110:多路複用器 4112:光纖 4114:光電晶片 4116a,4116b,4116c,4116d,4118a,4118b,4118c,4118d:矩陣乘法模組 4118:多路分解器 4124,4126:複製模組 4120a:光耦合器 4122a:光偵測器 4124:第三光訊號 4128:第三調變器 4132:第三調變光訊號 4126:第四光訊號 4130:第四調變器 4134:第四調變光訊號 4136:多路複用器 4138:光纖 4140:多路分解器 4142,4144:複製模組 4120b:光耦合器 4122b:光偵測器 4200:調變值機率分佈圖 4202:調變器功率圖 4300:馬赫曾德爾干涉儀調變器 4302:輸入光分離器 4304:主動相位移器 4306:被動相位移器 4308:輸出光組合器 4400:調變器電路 4402:泵浦電容 4404:控制電壓波形 4405:反相器電路 4406:驅動電壓波形 4408:端子 4410:端子 4412:電流源 4414:開關 4500:股 4502:分離器 4504:光電子節點 4505:MZI調變器 4507:光偵測器 4510:排線 4512A、4512B:線 4514:瓦片 4515:連接部分 4516:凸塊 4520:排線 4522:瓦片 4524:根調變器 4526:節點 4528、4530:凸塊 4532:轉阻放大器(TIA) 4534、4536:波導部分 4540:光學排線 4542-4548:瓦片 4550:光學排線 4552:瓦片 4560:資料處理電路 4570:資料上傳電路 4580:光電計算系統
當結合圖式閱讀時,從以下詳細描述中可以最好地理解本揭露。所要強調的是,根據慣例,圖式的各種特徵不是按比例的。相反地,為了清楚起見,各種特徵的尺寸被任意擴大或縮小。 第1A圖是人工神經網路(ANN)計算系統的示意圖。 第1B圖是光矩陣乘法單元的示意圖。 第1C圖和第1D圖是互連馬赫曾德爾干涉儀(MZI)的示例配置的示意圖。 第1E圖是MZI的示意圖。 第1F圖是波長分波多路複用ANN(wavelength division multiplexed ANN)計算系統的示意圖。 第2A圖是顯示用於執行ANN計算的方法的流程圖。 第2B圖是顯示第2A圖的方法的一個觀點的示意圖。 第3A圖和第3B圖是ANN計算系統的示意圖。 第4A圖是具有1位元內部解析度(internal resolution)的ANN計算系統的示意圖。 第4B圖是第4A圖的ANN計算系統的操作的數學表示。 第5圖是人工神經網路(ANN)計算系統的示意圖。 第6圖是光矩陣乘法單元的示意圖。 第7圖是人工神經網路(ANN)計算系統的示意圖。 第8圖是光矩陣乘法單元的示意圖。 第9圖是人工神經網路(ANN)計算系統的示意圖。 第10圖是光矩陣乘法單元的示意圖。 第11圖是緊湊矩陣乘法器單元(compact matrix multiplier unit)的示意圖。 第12A圖顯示了比較光子矩陣乘法器單元的示意圖。 第12B圖是緊湊互連干涉儀的示意圖。 第13圖是緊湊矩陣乘法器單元的示意圖。 第14圖是光生成對抗網路(optical generative adversarial network)的示意圖。 第15圖是馬赫曾德爾干涉儀的示意圖。 第16圖、第17A圖以及第17B圖是光子電路的示意圖。 第18圖是光電計算系統的示意圖。 第19A圖和第19B圖是系統配置的示意圖。 第20A圖是對稱差分配置(symmetric differential configuration)的示意圖。 第20B圖和第20C圖是系統模組的電路圖。 第21A圖是對稱差分配置的示意圖。 第21B圖是系統配置的示意圖。 第22A圖是光幅度調變器的示意圖。 第22B圖至第22D圖是在對稱差分配置中使用光學偵測的光幅度調變器的示意圖。 第23A圖至第23C圖是系統配置的光電電路圖。 第24A圖至第24E圖是使用多個光電子系統的計算系統的示意圖。 第25圖是顯示用於執行ANN計算的方法的流程圖。 第26圖和第27圖是ANN計算系統的示意圖。 第28圖是使用被動2D光矩陣乘法單元(passive 2D optical matrix multiplication unit)的神經網路計算系統的示意圖。 第29圖是被動3D光矩陣乘法單元的神經網路計算系統的示意圖。 第30圖是具有1位元內部解析度的人工神經網路計算系統的示意圖,其中系統使用被動2D光矩陣乘法單元。 第31圖是具有1位元內部解析度的人工神經網路計算系統的示意圖,其中系統使用被動3D光矩陣乘法單元。 第32A圖是人工神經網路(ANN)計算系統的示意圖。 第32B圖是光電矩陣乘法單元的示意圖。 第33圖是顯示用於使用光電處理器執行ANN計算的方法的流程圖。 第34圖是顯示第33圖的方法的一個觀點的示意圖。 第35A圖是使用光電處理器的波長分波多路複用ANN計算系統的示意圖。 第35B圖和第35C圖是波長分波多路複用光電矩陣乘法單元的示意圖。 第36圖和第37圖是使用光電處理器的ANN計算系統的示意圖。 第38圖是具有1位元內部解析度的人工神經網路計算系統的示意圖,其中系統使用光電矩陣乘法單元。 第39A圖是馬赫曾德爾調變器的示意圖。 第39B圖是顯示第39A圖的馬赫曾德爾調變器的強度-電壓曲線的曲線圖。 第40圖是零差偵測器的示意圖。 第41圖是包括光纖的計算系統的示意圖,其每一個光纖承載具有多個波長的訊號。 第42圖是調變值機率分佈和調變器功率與調變值之間的關係的曲線圖。 第43圖馬赫曾德爾調變器的示意圖。 第44圖電荷泵(charge-pump)帶寬增強電路的示意圖。 第45A圖-第45G圖是部分晶粒上以控制塌陷高度晶片連接配置之光子積體電路與電子積體電路之布局示意圖。 各圖式中相同的圖式標記和名稱表示相同的元件。
100:人工神經網路計算系統
102:電腦
110:控制器
120:記憶體單元
130:數位類比轉換器單元
132:第一數位類比轉換器子單元
134:第二數位類比轉換器子單元
140:光處理器
142:雷射單元
144:調變器陣列
146:偵測單元
150:光矩陣乘法單元
160:類比數位轉換器單元

Claims (79)

  1. 一種光電計算系統,包括:一第一半導體晶粒,包括一光子積體電路(PIC),該PIC包括:複數光波導,其中在由上述光波導所承載的相應複數光訊號上編碼一組多個輸入值;一光複製分配網路,包括複數光分離器,其中各該光分離器將位於輸入端口之輸入光波之功率之一半分別傳送到兩個輸出端口,其中該複數光分離器被設置為二元樹設置中之節點,該二元樹設置藉由作為二元樹設置之連結之光波導連接;以及一光電子電路區段之陣列,各光電子電路區段從該光複製分配網路之輸出端口之一接收一光波,且各光電子電路區段包含:至少一光偵測器,偵測光電子操作之至少一光波;至少一集成於PIC之導線,與該光偵測器電性耦接並與電輸出端口電性耦接;以及一第二半導體晶粒,包括一電子積體電路(EIC),該EIC包括:複數電輸入端口,接收相應之電氣值;其中該第一半導體晶粒以及該第二半導體晶粒以控制塌陷高度晶片連接(Controlled Collapsed Chip Connection)電性耦接,伴隨該PIC之該電輸出端口連接到該EIC之其中一個該電輸入端口。
  2. 如請求項1之光電計算系統,其中各該光電子電路 區段包含:一光電子操作模組,在兩個值中擇一執行操作:(1)以該光複製分配網路縮放的該等輸入值之一為依據之光學值,以及(2)電輸入端口提供之電氣值;至少一光偵測器,從該光電子操作中偵測至少一光波;以及至少一集成於PIC之導線,與該光偵測器以及電輸出端電性耦接。
  3. 如請求項2之光電計算系統,其中該EIC更進一步包括:複數數位類比轉換器(DACs),提供電氣值給各自相應的電輸出端口,且該PIC之該電輸入端口連接到該EIC之該電輸出端口。
  4. 如請求項1之光電計算系統,其中該光複製分配網路包括複數二元樹設置,該二元樹設置之每一者分配編碼在相應光訊號之複數輸入值之不同之一者。
  5. 如請求項1之光電計算系統,其中該光複製分配網路包括複數二元樹設置,該二元樹設置之每一者分配編碼在相應光訊號之複數輸入值之不同一者。
  6. 如請求項1之光電計算系統,其中光傳播長度在該二元樹設置之根以及不同的光電子電路區段之間各自不同。
  7. 如請求項6之光電計算系統,其中該光複製分配網路中之該光波導,被設置在該第一半導體晶粒中以避免穿過任何該光複製分配網路中的光波導。
  8. 如請求項7之光電計算系統,其中該光電子電路區段被設置在該第一半導體晶粒上,整體上排列成複數直線。
  9. 如請求項8之光電計算系統,其中該複數直線藉由該光複製分配網路中的一個或多個該光波導,各自與每條其他直線光學耦合。
  10. 如請求項1至3中任一項之光電計算系統,其中該光複製分配網路中之該光波導,被設置在該第一半導體晶粒中,以避免穿過任何該光複製分配網路中的光波導。
  11. 如請求項1至3中任一項之光電計算系統,其中該光電子電路區段被設置在該第一半導體晶粒上,整體上排列成複數直線。
  12. 如請求項11之光電計算系統,其中該複數直線藉由該光複製分配網路中的一個或多個該光波導,各自與每條其他直線光學耦合。
  13. 如請求項2或3之光電計算系統,其中該集成於該PIC之該導線的一部分,將該光偵測器連接到來自不同光電子電路區段之導線間之接點。
  14. 如請求項2或3之光電計算系統,其中該光電子操作模組包括一馬赫曾德爾干涉儀,該馬赫曾德爾干涉儀被配置以在兩個值中擇一執行乘法操作(1)以該光複製分配網路縮放的該等輸入值之一為依據之光學值,以及(2)電輸入端口提供之電氣值。
  15. 如請求項2或3之光電計算系統,其中該EIC更進 一步包括具有與PIC之電輸出端口電性耦接之一輸入之一跨阻抗放大器。
  16. 一種光電計算系統,包括:一第一半導體晶粒,包括一光子積體電路(PIC),該PIC包括:複數光波導,其中在由上述光波導所承載的相應複數光訊號上編碼一組多個輸入值;一光複製分配網路,包括複數光分離器或定向耦合器,其中該複數光分離器被設置為二元樹設置中之節點,該二元樹設置藉由作為二元樹設置之連結之光波導連接;以及一光電子電路區段之陣列,各光電子電路區段從該光複製分配網路之輸出端口之一接收一光波,且各光電子電路區段包含:至少一光偵測器,偵測光電子操作之至少一光波;至少一集成於PIC之導線,與該光偵測器電性耦接並與電輸出端口電性耦接;以及一第二半導體晶粒,包括一電子積體電路(EIC),該EIC包括:複數電輸入端口,接收相應之電氣值;其中該第一半導體晶粒以及該第二半導體晶粒以控制塌陷高度晶片連接(Controlled Collapsed Chip Connection)電性耦接,伴隨該PIC之該電輸出端口連接到該EIC之其中一個該電輸入端口。
  17. 如請求項16之光電計算系統,其中各該光分離器將位於輸入端口之輸入光波之功率之一半分別傳送到兩個輸出端 口。
  18. 如請求項16之光電計算系統,其中該光複製分配網路包括串級定向耦合器。
  19. 如請求項16至18中任一項之光電計算系統,其中各該光電子電路區段包括:一光電子操作模組,在兩個值中擇一執行操作:(1)以該光複製分配網路縮放的該等輸入值之一為依據之光學值,以及(2)電輸入端口提供之電氣值;至少一光偵測器,從該光電子操作中偵測至少一光波;以及至少一集成於PIC之導線,與該光偵測器以及電輸出端口電性耦接。
  20. 如請求項19之光電計算系統,其中該EIC更進一步包括複數數位類比轉換器(DACs),提供電氣值給各自相應的電輸出端口,且該PIC之該電輸入端口連接到該EIC之該電輸出端口。
  21. 如請求項16之光電計算系統,其中該光複製分配網路包括複數二元樹設置,該二元樹設置之每一者分配編碼在相應光訊號之複數輸入值之不同之一者。
  22. 如請求項16之光電計算系統,其中光傳播長度在該二元樹設置之根以及不同的光電子電路區段之間各自不同。
  23. 如請求項22之光電計算系統,其中該光複製分配網路中之該光波導,被設置在該第一半導體晶粒中以避免穿過任何 該光複製分配網路中的光波導。
  24. 如請求項23之光電計算系統,其中該光電子電路區段被設置在該第一半導體晶粒上,整體上排列成複數直線。
  25. 如請求項24之光電計算系統,其中該複數直線藉由該光複製分配網路中的一個或多個該光波導,各自與每條其他直線光學耦合。
  26. 如請求項19之光電計算系統,其中該集成於該PIC之該導線的一部分,將該光偵測器連接到來自不同光電子電路區段之導線間之接點。
  27. 如請求項19之光電計算系統,其中該光電子操作模組包括一馬赫曾德爾干涉儀,該馬赫曾德爾干涉儀被配置以在兩個值中擇一執行乘法操作(1)以該光複製分配網路縮放的該等輸入值之一為依據之光學值,以及(2)電輸入端口提供之電氣值。
  28. 如請求項19之光電計算系統,其中該EIC更進一步包括具有與PIC之電輸出端口電性耦接之一輸入之一跨阻抗放大器。
  29. 如請求項16至18中任一項之光電計算系統,其中該光複製分配網路包括複數二元樹設置,該二元樹設置之每一者分配編碼在相應光訊號之複數輸入值之不同之一者。
  30. 如請求項16至18中任一項之光電計算系統,其中該光複製分配網路中之該光波導,被設置在該第一半導體晶粒中以避免穿過任何該光複製分配網路中的光波導。
  31. 如請求項16至18中任一項之光電計算系統,其中該光電子電路區段被設置在該第一半導體晶粒上,整體上排列成複數直線。
  32. 如請求項31之光電計算系統,其中該複數直線藉由該光複製分配網路中的一個或多個該光波導,各自與每條其他直線光學耦合。
  33. 一種光電計算系統,包括:一第一半導體晶粒,包括一光子積體電路(PIC),該PIC包括:複數光波導,其中在由上述光波導所承載的相應複數光訊號上編碼一組多個輸入值;一光複製分配網路,包括複數光分離器,其中各該光分離器將位於輸入端口之輸入光波之功率之一比例傳送到兩個輸出端口,且各該光複製分配網路之輸出端口提供一比例之輸入光波,該輸入光波乘載一光訊號,該光訊號編碼藉由相同比例縮放之該輸入值之一者;以及一光電子電路區段之陣列,各光電子電路區段從該光複製分配網路之輸出端口之一接收一光波,且各光電子電路區段包含:至少一光偵測器,偵測光電子操作之至少一光波;至少一集成於PIC之導線,與該光偵測器電性耦接並與電輸出端口電性耦接;以及一第二半導體晶粒,包括一電子積體電路(EIC),該EIC包括:複數電輸入端口,接收相應之電氣值; 其中該第一半導體晶粒以及該第二半導體晶粒以控制塌陷高度晶片連接(Controlled Collapsed Chip Connection)電性耦接,伴隨該PIC之該電輸出端口連接到該EIC之其中一個該電輸入端口。
  34. 如請求項33之光電計算系統,其中各該光電子電路區段包含:一光電子操作模組,在兩個值中擇一執行操作:(1)以該光複製分配網路縮放的該等輸入值之一為依據之光學值,以及(2)電輸入端口提供之電氣值;至少一光偵測器,從該光電子操作中偵測至少一光波;以及至少一集成於PIC之導線,與該光偵測器以及電輸出端口電性耦接。
  35. 如請求項33或34之光電計算系統,其中該EIC更進一步包括:複數數位類比轉換器(DACs),提供電氣值給各自相應的電輸出端口,且該PIC之該電輸入端口連接到該EIC之該電輸出端口。
  36. 如請求項35之光電計算系統,其中各該光分離器將位於輸入端口之輸入光波之功率之一半分別傳送到兩個輸出端口,且各該光分離器被設置為二元樹設置中之節點,該二元樹設置藉由作為二元樹設置之連結之光波導連接。
  37. 如請求項36之光電計算系統,其中該光複製分配 網路包括複數二元樹設置,該二元樹設置之每一者分配編碼在相應光訊號之複數輸入值之不同之一者,且藉由在不同二元樹設置中縮放之相應輸入值之比例相同。
  38. 如請求項36之光電計算系統,其中光傳播長度在該二元樹設置之根以及不同的光電子電路區段之間各自不同。
  39. 如請求項38之光電計算系統,其中該光複製分配網路中之該光波導,被設置在該第一半導體晶粒中以避免穿過任何該光複製分配網路中的光波導。
  40. 如請求項39之光電計算系統,其中該光電子電路區段被設置在該第一半導體晶粒上,整體上排列成複數直線。
  41. 如請求項40之光電計算系統,其中該複數直線藉由該光複製分配網路中的一個或多個該光波導,各自與每條其他直線光學耦合。
  42. 如請求項34之光電計算系統,其中該集成於該PIC之該導線的一部分,將該光偵測器連接到來自不同光電子電路區段之導線間之接點。
  43. 如請求項34或42之光電計算系統,其中該光電子操作模組包括一馬赫曾德爾干涉儀,該馬赫曾德爾干涉儀被配置以在兩個值中擇一執行乘法操作(1)以該光複製分配網路縮放的該等輸入值之一為依據之光學值,以及(2)電輸入端口提供之電氣值。
  44. 如請求項34或42之光電計算系統,其中該EIC更進一步包括具有與PIC之電輸出端口電性耦接之一輸入之一跨阻抗 放大器。
  45. 如請求項33或34之光電計算系統,其中各該光分離器將位於輸入端口之輸入光波之功率之一半分別傳送到兩個輸出端口,且各該光分離器被設置為二元樹設置中之節點,該二元樹設置藉由作為二元樹設置之連結之光波導連接。
  46. 如請求項33或34之光電計算系統,其中該光複製分配網路包括複數二元樹設置,該二元樹設置之每一者分配編碼在相應光訊號之複數輸入值之不同之一者,且藉由在不同二元樹設置中縮放之相應輸入值之比例相同。
  47. 如請求項33或34之光電計算系統,其中該光複製分配網路中之該光波導,被設置在該第一半導體晶粒中以避免穿過任何該光複製分配網路中的光波導。
  48. 如請求項33或34之光電計算系統,其中該光電子電路區段被設置在該第一半導體晶粒上,整體上排列成複數直線。
  49. 如請求項48之光電計算系統,其中該複數直線藉由該光複製分配網路中的一個或多個該光波導,各自與每條其他直線光學耦合。
  50. 一種光電計算系統,包括:一第一半導體晶粒,包括一光子積體電路(PIC),該PIC包括:複數光波導,其中在由上述光波導所承載的相應複數光訊號上編碼一組多個輸入值;一光複製分配網路,包括複數光分離器,其中各該光分離 器將位於輸入端口之輸入光波之功率之一半分別傳送到兩個輸出端口,其中該光複製分配網路包括複數二元樹設置,該二元樹設置之每一者分配編碼在相應光訊號之複數輸入值之不同一者;以及一光電子電路區段之陣列,各光電子電路區段從該光複製分配網路之輸出端口之一接收一光波,且各光電子電路區段包含:至少一光偵測器,偵測光電子操作之至少一光波;至少一集成於PIC之導線,與該光偵測器電性耦接並與電輸出端口電性耦接;以及一第二半導體晶粒,包括一電子積體電路(EIC),該EIC包括:複數電輸入端口,接收相應之電氣值;其中該第一半導體晶粒以及該第二半導體晶粒以控制塌陷高度晶片連接(Controlled Collapsed Chip Connection)電性耦接,伴隨該PIC之該電輸出端口連接到該EIC之其中一個該電輸入端口。
  51. 如請求項50之光電計算系統,其中各該光電子電路區段包含:一光電子操作模組,在兩個值中擇一執行操作:(1)以該光複製分配網路縮放的該等輸入值之一為依據之光學值,以及(2)電輸入端口提供之電氣值;至少一光偵測器,從該光電子操作中偵測至少一光波;以及 至少一集成於PIC之導線,與該光偵測器以及電輸出端電性耦接。
  52. 如請求項51之光電計算系統,其中該EIC更進一步包括:複數數位類比轉換器(DACs),提供電氣值給各自相應的電輸出端口,且該PIC之該電輸入端口連接到該EIC之該電輸出端口。
  53. 如請求項50之光電計算系統,其中該光複製分配網路包括複數二元樹設置,該二元樹設置之每一者分配編碼在相應光訊號之複數輸入值之不同之一者。
  54. 如請求項50之光電計算系統,其中光傳播長度在該二元樹設置之根以及不同的光電子電路區段之間各自不同。
  55. 如請求項54之光電計算系統,其中該光複製分配網路中之該光波導,被設置在該第一半導體晶粒中以避免穿過任何該光複製分配網路中的光波導。
  56. 如請求項55之光電計算系統,其中該光電子電路區段被設置在該第一半導體晶粒上,整體上排列成複數直線。
  57. 如請求項56之光電計算系統,其中該複數直線藉由該光複製分配網路中的一個或多個該光波導,各自與每條其他直線光學耦合。
  58. 如請求項50至52中任一項之光電計算系統,其中該光複製分配網路中之該光波導,被設置在該第一半導體晶粒中,以避免穿過任何該光複製分配網路中的光波導。
  59. 如請求項50至52中任一項之光電計算系統,其中該光電子電路區段被設置在該第一半導體晶粒上,整體上排列成複數直線。
  60. 如請求項59之光電計算系統,其中該複數直線藉由該光複製分配網路中的一個或多個該光波導,各自與每條其他直線光學耦合。
  61. 如請求項51或52之光電計算系統,其中該集成於該PIC之該導線的一部分,將該光偵測器連接到來自不同光電子電路區段之導線間之接點。
  62. 如請求項51或52之光電計算系統,其中該光電子操作模組包括一馬赫曾德爾干涉儀,該馬赫曾德爾干涉儀被配置以在兩個值中擇一執行乘法操作(1)以該光複製分配網路縮放的該等輸入值之一為依據之光學值,以及(2)電輸入端口提供之電氣值。
  63. 如請求項51或52之光電計算系統,其中該EIC更進一步包括具有與PIC之電輸出端口電性耦接之一輸入之一跨阻抗放大器。
  64. 一種光電計算系統,包括:一第一半導體晶粒,包括一光子積體電路(PIC),該PIC包括:複數光波導,其中在由上述光波導所承載的相應複數光訊號上編碼一組多個輸入值;一光複製分配網路,包括複數光分離器或定向耦合器,其中該光複製分配網路包括複數二元樹設置,該二元樹設置之每一 者分配編碼在相應光訊號之複數輸入值之不同之一者;以及一光電子電路區段之陣列,各光電子電路區段從該光複製分配網路之輸出端口之一接收一光波,且各光電子電路區段包含:至少一光偵測器,偵測光電子操作之至少一光波;至少一集成於PIC之導線,與該光偵測器電性耦接並與電輸出端口電性耦接;以及一第二半導體晶粒,包括一電子積體電路(EIC),該EIC包括:複數電輸入端口,接收相應之電氣值;其中該第一半導體晶粒以及該第二半導體晶粒以控制塌陷高度晶片連接(Controlled Collapsed Chip Connection)電性耦接,伴隨該PIC之該電輸出端口連接到該EIC之其中一個該電輸入端口。
  65. 如請求項64之光電計算系統,其中各該光分離器將位於輸入端口之輸入光波之功率之一半分別傳送到兩個輸出端口。
  66. 如請求項64之光電計算系統,其中該光複製分配網路包括串級定向耦合器。
  67. 如請求項64至66中任一項之光電計算系統,其中各該光電子電路區段包括:一光電子操作模組,在兩個值中擇一執行操作:(1)以該光複製分配網路縮放的該等輸入值之一為依據之光學值,以及(2)電輸入端口提供之電氣值; 至少一光偵測器,從該光電子操作中偵測至少一光波;以及至少一集成於PIC之導線,與該光偵測器以及電輸出端口電性耦接。
  68. 如請求項67之光電計算系統,其中該EIC更進一步包括複數數位類比轉換器(DACs),提供電氣值給各自相應的電輸出端口,且該PIC之該電輸入端口連接到該EIC之該電輸出端口。
  69. 如請求項64之光電計算系統,其中該光複製分配網路包括複數二元樹設置,該二元樹設置之每一者分配編碼在相應光訊號之複數輸入值之不同之一者。
  70. 如請求項64之光電計算系統,其中光傳播長度在該二元樹設置之根以及不同的光電子電路區段之間各自不同。
  71. 如請求項70之光電計算系統,其中該光複製分配網路中之該光波導,被設置在該第一半導體晶粒中以避免穿過任何該光複製分配網路中的光波導。
  72. 如請求項71之光電計算系統,其中該光電子電路區段被設置在該第一半導體晶粒上,整體上排列成複數直線。
  73. 如請求項72之光電計算系統,其中該複數直線藉由該光複製分配網路中的一個或多個該光波導,各自與每條其他直線光學耦合。
  74. 如請求項67之光電計算系統,其中該集成於該PIC之該導線的一部分,將該光偵測器連接到來自不同光電子電路 區段之導線間之接點。
  75. 如請求項67之光電計算系統,其中該光電子操作模組包括一馬赫曾德爾干涉儀,該馬赫曾德爾干涉儀被配置以在兩個值中擇一執行乘法操作(1)以該光複製分配網路縮放的該等輸入值之一為依據之光學值,以及(2)電輸入端口提供之電氣值。
  76. 如請求項67之光電計算系統,其中該EIC更進一步包括具有與PIC之電輸出端口電性耦接之一輸入之一跨阻抗放大器。
  77. 如請求項64至66中任一項之光電計算系統,其中該光複製分配網路中之該光波導,被設置在該第一半導體晶粒中以避免穿過任何該光複製分配網路中的光波導。
  78. 如請求項64至66中任一項之光電計算系統,其中該光電子電路區段被設置在該第一半導體晶粒上,整體上排列成複數直線。
  79. 如請求項78之光電計算系統,其中該複數直線藉由該光複製分配網路中的一個或多個該光波導,各自與每條其他直線光學耦合。
TW109109209A 2019-03-19 2020-03-19 計算系統、計算裝置及計算系統的操作方法 TWI741533B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201962820562P 2019-03-19 2019-03-19
US62/820,562 2019-03-19
US16/703,278 2019-12-04
US16/703,278 US11507818B2 (en) 2018-06-05 2019-12-04 Optoelectronic computing systems

Publications (2)

Publication Number Publication Date
TW202103063A TW202103063A (zh) 2021-01-16
TWI741533B true TWI741533B (zh) 2021-10-01

Family

ID=72521231

Family Applications (2)

Application Number Title Priority Date Filing Date
TW109109209A TWI741533B (zh) 2019-03-19 2020-03-19 計算系統、計算裝置及計算系統的操作方法
TW110132252A TWI819368B (zh) 2019-03-19 2020-03-19 光電計算系統

Family Applications After (1)

Application Number Title Priority Date Filing Date
TW110132252A TWI819368B (zh) 2019-03-19 2020-03-19 光電計算系統

Country Status (4)

Country Link
EP (1) EP3942482A4 (zh)
CN (1) CN112912900A (zh)
TW (2) TWI741533B (zh)
WO (1) WO2020191217A1 (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220104218A (ko) 2019-11-22 2022-07-26 라이트매터, 인크. 선형 광자 프로세서들 및 관련 방법들
TWI806042B (zh) 2020-04-29 2023-06-21 新加坡商光子智能私人有限公司 光電處理設備、系統及方法
JP2023536703A (ja) * 2020-07-24 2023-08-29 ライトマター インコーポレイテッド フォトニックプロセッサにおいて光子の自由度を利用するためのシステム及び方法
US11817903B2 (en) 2020-08-06 2023-11-14 Celestial Ai Inc. Coherent photonic computing architectures
CN117255967A (zh) * 2020-12-17 2023-12-19 天体人工智能公司 用于矩阵计算的平衡光子架构
KR20230129447A (ko) * 2020-12-17 2023-09-08 셀레스티얼 에이아이 인코포레이티드 매트릭스 계산을 위한 밸런스된 포토닉 아키텍처
US20220374575A1 (en) * 2021-05-20 2022-11-24 Lightmatter, Inc. Electronic-photonic processors and related packages
AT525103B1 (de) * 2021-05-28 2024-03-15 Ait Austrian Inst Tech Gmbh Optische Anordnung zur Emulation eines neuronalen Netzes
CN113644984B (zh) * 2021-10-14 2022-03-11 清华大学 光电数字逻辑运算的光学逻辑元件及其逻辑运算方法
CN114301527B (zh) * 2021-12-31 2024-04-02 杭州电子科技大学 基于权重因子压扩函数的压扩量化方法及系统
US11835777B2 (en) 2022-03-18 2023-12-05 Celestial Ai Inc. Optical multi-die interconnect bridge (OMIB)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9391708B2 (en) * 2014-05-21 2016-07-12 Stmicroelectronics S.R.L. Multi-substrate electro-optical interconnection system
TW201837894A (zh) * 2017-02-15 2018-10-16 日商半導體能源研究所股份有限公司 半導體裝置及顯示系統
CN109477938A (zh) * 2016-06-02 2019-03-15 麻省理工学院 用于光学神经网络的设备和方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8213751B1 (en) * 2008-11-26 2012-07-03 Optonet Inc. Electronic-integration compatible photonic integrated circuit and method for fabricating electronic-integration compatible photonic integrated circuit
US8532497B2 (en) * 2010-05-11 2013-09-10 The Invention Science Fund I, Llc Optical power transmission system and method having multiple optical power forms with partial free-space transmission
CN113156594A (zh) * 2015-02-18 2021-07-23 思敏光子控股有限责任公司 用于光子ic表征和封装的多端口光学探头
JP6784644B2 (ja) * 2017-05-26 2020-11-11 日本電信電話株式会社 光信号処理回路
WO2019014345A1 (en) * 2017-07-11 2019-01-17 Massachusetts Institute Of Technology OPTICAL ISING MACHINES AND OPTICAL CONVOLUTIVE NEURAL NETWORKS
US11144821B2 (en) * 2017-08-30 2021-10-12 The Regents Of The University Of California Implementing a neuromorphic computing system using nanophotonic neurons
US10606004B2 (en) * 2018-06-01 2020-03-31 Intel Corporation Distributed optoelectronic receiver

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9391708B2 (en) * 2014-05-21 2016-07-12 Stmicroelectronics S.R.L. Multi-substrate electro-optical interconnection system
CN109477938A (zh) * 2016-06-02 2019-03-15 麻省理工学院 用于光学神经网络的设备和方法
TW201837894A (zh) * 2017-02-15 2018-10-16 日商半導體能源研究所股份有限公司 半導體裝置及顯示系統

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Ke Xu et al., "All passive photonic power divider with arbitrary split ratio", arXiv:1609.03823v1, 13 September 2016, https://arxiv.org/abs/1609.03823。

Also Published As

Publication number Publication date
WO2020191217A1 (en) 2020-09-24
CN112912900A (zh) 2021-06-04
TW202103063A (zh) 2021-01-16
EP3942482A4 (en) 2022-12-28
EP3942482A1 (en) 2022-01-26
TWI819368B (zh) 2023-10-21
TW202201165A (zh) 2022-01-01

Similar Documents

Publication Publication Date Title
TWI735886B (zh) 計算系統
US11853871B2 (en) Optoelectronic computing systems
TWI741533B (zh) 計算系統、計算裝置及計算系統的操作方法
US11734556B2 (en) Optoelectronic computing systems
TWI777108B (zh) 計算系統、計算裝置及計算系統的操作方法
TW202147060A (zh) 光電計算系統