TWI831932B - 混合類比-數位處理器及該處理器中執行的方法 - Google Patents
混合類比-數位處理器及該處理器中執行的方法 Download PDFInfo
- Publication number
- TWI831932B TWI831932B TW109106267A TW109106267A TWI831932B TW I831932 B TWI831932 B TW I831932B TW 109106267 A TW109106267 A TW 109106267A TW 109106267 A TW109106267 A TW 109106267A TW I831932 B TWI831932 B TW I831932B
- Authority
- TW
- Taiwan
- Prior art keywords
- analog
- matrix
- processor
- parameter set
- optical
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 85
- 239000011159 matrix material Substances 0.000 claims abstract description 477
- 230000003287 optical effect Effects 0.000 claims description 367
- 230000036961 partial effect Effects 0.000 claims description 40
- 238000004364 calculation method Methods 0.000 claims description 24
- 230000002238 attenuated effect Effects 0.000 claims description 6
- 238000013527 convolutional neural network Methods 0.000 abstract 1
- 238000011773 genetically engineered mouse model Methods 0.000 abstract 1
- 239000013598 vector Substances 0.000 description 68
- 238000012545 processing Methods 0.000 description 44
- 238000010586 diagram Methods 0.000 description 28
- 238000000354 decomposition reaction Methods 0.000 description 27
- 238000009826 distribution Methods 0.000 description 22
- 230000010363 phase shift Effects 0.000 description 18
- 235000012431 wafers Nutrition 0.000 description 13
- 230000035508 accumulation Effects 0.000 description 11
- 238000009825 accumulation Methods 0.000 description 11
- 238000013528 artificial neural network Methods 0.000 description 11
- 230000003321 amplification Effects 0.000 description 10
- 238000013135 deep learning Methods 0.000 description 10
- 238000003199 nucleic acid amplification method Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 10
- 238000000638 solvent extraction Methods 0.000 description 10
- 238000012549 training Methods 0.000 description 9
- 230000009471 action Effects 0.000 description 7
- 238000007667 floating Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 238000001514 detection method Methods 0.000 description 6
- 239000000463 material Substances 0.000 description 6
- 238000003491 array Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 238000003062 neural network model Methods 0.000 description 5
- 238000005192 partition Methods 0.000 description 5
- 239000000758 substrate Substances 0.000 description 5
- 230000000903 blocking effect Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 4
- 238000013507 mapping Methods 0.000 description 4
- 238000005259 measurement Methods 0.000 description 4
- 239000013307 optical fiber Substances 0.000 description 4
- 230000001902 propagating effect Effects 0.000 description 4
- 238000013139 quantization Methods 0.000 description 4
- 239000004065 semiconductor Substances 0.000 description 4
- 238000003860 storage Methods 0.000 description 4
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 3
- 238000013459 approach Methods 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 3
- 230000001934 delay Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000000670 limiting effect Effects 0.000 description 3
- 238000010801 machine learning Methods 0.000 description 3
- 229910052710 silicon Inorganic materials 0.000 description 3
- 239000010703 silicon Substances 0.000 description 3
- 230000009466 transformation Effects 0.000 description 3
- 239000006096 absorbing agent Substances 0.000 description 2
- 238000010521 absorption reaction Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000008033 biological extinction Effects 0.000 description 2
- 239000003990 capacitor Substances 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 239000013078 crystal Substances 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 229910044991 metal oxide Inorganic materials 0.000 description 2
- 150000004706 metal oxides Chemical class 0.000 description 2
- 238000002156 mixing Methods 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000002829 reductive effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000002123 temporal effect Effects 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 229910002601 GaN Inorganic materials 0.000 description 1
- 229910001218 Gallium arsenide Inorganic materials 0.000 description 1
- 229910000530 Gallium indium arsenide Inorganic materials 0.000 description 1
- 102100030148 Integrator complex subunit 8 Human genes 0.000 description 1
- 101710092891 Integrator complex subunit 8 Proteins 0.000 description 1
- 230000005697 Pockels effect Effects 0.000 description 1
- 238000001069 Raman spectroscopy Methods 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000010339 dilation Effects 0.000 description 1
- 239000006185 dispersion Substances 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 229910052732 germanium Inorganic materials 0.000 description 1
- GNPVGFCGXDBREM-UHFFFAOYSA-N germanium atom Chemical compound [Ge] GNPVGFCGXDBREM-UHFFFAOYSA-N 0.000 description 1
- 238000012804 iterative process Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- GQYHUHYESMUTHG-UHFFFAOYSA-N lithium niobate Chemical compound [Li+].[O-][Nb](=O)=O GQYHUHYESMUTHG-UHFFFAOYSA-N 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 239000004038 photonic crystal Substances 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 229910052761 rare earth metal Inorganic materials 0.000 description 1
- 150000002910 rare earth metals Chemical class 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 238000010079 rubber tapping Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003595 spectral effect Effects 0.000 description 1
- 230000036962 time dependent Effects 0.000 description 1
- 238000002834 transmittance Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06J—HYBRID COMPUTING ARRANGEMENTS
- G06J1/00—Hybrid computing arrangements
- G06J1/02—Differential analysers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06J—HYBRID COMPUTING ARRANGEMENTS
- G06J1/00—Hybrid computing arrangements
- G06J1/005—Hybrid computing arrangements for correlation; for convolution; for Z or Fourier Transform
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/22—Arrangements for sorting or merging computer data on continuous record carriers, e.g. tape, drum, disc
- G06F7/32—Merging, i.e. combining data contained in ordered sequence on at least two record carriers to produce a single carrier or set of carriers having all the original data in the ordered sequence merging methods in general
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/40—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using contact-making devices, e.g. electromagnetic relay
- G06F7/44—Multiplying; Dividing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/52—Multiplying; Dividing
- G06F7/523—Multiplying only
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
- G06N3/065—Analogue means
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Computational Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- Fuzzy Systems (AREA)
- Automation & Control Theory (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Biomedical Technology (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biophysics (AREA)
- Electromagnetism (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Analogue/Digital Conversion (AREA)
- Optical Modulation, Optical Deflection, Nonlinear Optics, Optical Demodulation, Optical Logic Elements (AREA)
- Image Processing (AREA)
- Complex Calculations (AREA)
Abstract
描述了用於在尺寸有限的混合類比-數位矩陣處理器上針對任意大型的矩陣計算矩陣運算的技術。描述了用於尺寸有限的混合類比-數位矩陣處理器中的增益調整的技術,該等技術允許系統獲得較高的能量效率、較大的實體密度、及改善的數值準確度。在一些實施例中,這些技術允許最大化使用低精確度資料表示的基於GEMM的卷積神經網絡的預測準確度。
Description
此申請案依據專利法主張於2019年2月26日所提出的第62/810,851號標題為「GENERAL MATRIX MULTIPLICATION WITH SUB-ARRAY TILING AND MULTIPLE SCALING FOR HYBRID ANALOG-DIGITAL MATRIX PROCESSORS」且代理人案號為L0858.70011US00的美國臨時專利申請案的優先權,該文獻的整體內容特此以引用方式併入本文中。
此揭示內容與被配置為執行數學矩陣運算的混合類比-數位處理器相關。
深度學習、機器學習、潛在變數模型、神經網絡、及其他基於矩陣的可微程式用來解決各種問題,包括自然語言處理及影像中的物體辨識。用深度神經網絡解決這些問題一般需要很長的處理時間來執行所需的計算。解決這些問題時計算量最大的運算通常是數學矩陣運算,例如通用的矩陣乘法或多通道卷積。加速深度學習演算法的常規方法是開發專門的硬體架構。這是因為由包括數億電晶體來在由電訊號所表示的資訊位元上實施邏輯閘的電路組成的常規電腦處理器(例如中央處理單元(CPU))是針對通用計算而設計的,且因此未針對用於深度學習及其他基於矩陣的可微程式的演算法所需的特定的資料移動及計算的模式而最佳化。用於深度學習的專門硬體的一個常規示例是圖形處理單元(GPU),該等圖形處理單元具有高度並行的架構,該架構使得該等圖形處理單元對於執行影像處理及圖形操控而言比CPU更高效。在針對圖形處理開發GPU之後,發現GPU對於其他可並行的演算法(例如用於神經網絡及深度學習中的彼等演算法)而言比CPU更高效。
使用神經網絡的深度學習在常規上需要兩個階段:訓練階段及估算階段(有時候稱為「推理」)。在深度學習演算法可以在估算階段期間有意義地執行在處理器上(例如以分類影像或語音樣本)之前,必須先訓練神經網絡。訓練階段可能是耗時的,且需要大量的計算。
一些實施例與一種混合類比-數位處理器相關,該混合類比-數位處理器包括:電路系統,包括類比處理器,其中該電路系統被配置為使用複數個運算次(pass)執行數學運算,其中針對該複數個運算次中的每一者,該電路系統被配置為:基於表示矩陣的一部分的參數集來針對該運算次決定一或更多個縮放因子;基於該一或更多個縮放因子來縮放該參數集的至少一些參數以產生縮放的參數集;基於該縮放的參數集來程式化該類比處理器;基於輸入資料集來產生複數個輸入類比訊號;基於該複數個輸入類比訊號及該縮放的參數集來產生複數個輸出類比訊號;基於該複數個輸出類比訊號來產生部分輸出資料集;及基於該一或更多個縮放因子來縮放該部分輸出資料集以產生縮放的部分輸出資料集,其中該電路系統更被配置為藉由累加由該複數個運算次中的至少兩者所產生的該等縮放的部分輸出資料集來產生累加的輸出資料集,其中該累加的輸出資料集表示該數學運算的結果。
在一些實施例中,基於該複數個輸入類比訊號及該縮放的參數集來產生複數個輸出類比訊號的步驟包括以下步驟:基於該複數個輸入類比訊號及該縮放的參數集來執行矩陣-矩陣乘法。
在一些實施例中,基於該複數個輸入類比訊號及該縮放的參數集來產生複數個輸出類比訊號的步驟包括以下步驟:基於該複數個輸入類比訊號及該縮放的參數集來執行卷積。
在一些實施例中,基於該縮放的參數集來程式化該類比處理器的步驟包括以下步驟:基於該縮放的參數集來針對該類比處理器的複數個類比放大器或衰減器設定相應的增益或衰減。
在一些實施例中,該類比處理器包括光子處理器,該光子處理器包括複數個可程式化的光子設備,且其中基於該縮放的參數集來程式化該類比處理器的步驟包括以下步驟:基於該縮放的參數集來針對該複數個可程式化的光子設備設定相應的特性。
在一些實施例中,該等可程式化的光子設備包括Mach-Zehnder干涉儀,且其中基於該縮放的參數集來針對該複數個可程式化的光子設備設定相應的特性的步驟包括以下步驟:基於該縮放的參數集來針對該複數個Mach-Zehnder干涉儀設定相應的光學特性。
在一些實施例中,該等可程式化的光子設備包括光學諧振器,且其中基於該縮放的參數集來針對該複數個可程式化的光子設備設定相應的特性的步驟包括以下步驟:基於該縮放的參數集來針對該複數個光學諧振器設定相應的光學特性。
在一些實施例中,該電路系統包括複數個數位轉類比轉換器(DAC),且該複數個DAC被配置為:基於該輸入資料集來產生該複數個輸入類比訊號。
在一些實施例中,該電路系統包括複數個類比轉數位轉換器(ADC),且該複數個ADC被配置為基於該複數個輸出類比訊號來產生該部分輸出資料集。
在一些實施例中,該複數個ADC包括n位元ADC,其中n等於或小於12。
在一些實施例中,累加由該複數個運算次中的至少兩者所產生的該縮放的部分輸出資料集的步驟包括以下步驟:針對該等運算次中的至少一些,將由該運算次所產生的該縮放的部分輸出資料集與由先前的運算次所產生的該縮放的部分輸出資料集加總在一起。
在一些實施例中,程式化該類比處理器的步驟包括以下步驟:基於該縮放的參數集來用複數個矩陣程式化該類比處理器,該複數個矩陣共同表示任意矩陣。
在一些實施例中,用複數個矩陣程式化該類比處理器的步驟包括以下步驟:基於該縮放的參數集來用複數個矩陣程式化該類比處理器,該複數個矩陣基於該任意矩陣的奇異值分解(SVD)來共同表示該任意矩陣。
在一些實施例中,用複數個矩陣程式化該類比處理器的步驟包括以下步驟:基於該縮放的參數集來用複數個矩陣程式化該類比處理器,該複數個矩陣基於該任意矩陣的擴張來共同表示該任意矩陣。
在一些實施例中,基於該一或更多個縮放因子來縮放該參數集中的至少一些的步驟包括以下步驟:將該參數集中的至少一些除以該一或更多個縮放因子,及基於該一或更多個縮放因子來縮放該部分輸出資料集的步驟包括以下步驟:將該部分輸出資料集乘以該一或更多個縮放因子。
在一些實施例中,針對該複數個運算次中的每一者,該電路系統更被配置為基於該矩陣的與該運算次相關聯的分塊來決定該一或更多個縮放因子。
在一些實施例中,針對該複數個運算次中的每一者,該電路系統更被配置為基於該矩陣的一或更多個列來決定該一或更多個縮放因子。
在一些實施例中,針對該複數個運算次中的每一者,該電路系統更被配置為基於該矩陣的一或更多個奇異值來決定該一或更多個縮放因子。
在一些實施例中,該一或更多個縮放因子包括第一縮放因子及第二縮放因子,及基於該一或更多個縮放因子來縮放該參數集的至少一些參數的步驟包括以下步驟:基於該第一縮放因子來縮放該參數集的第一子集,及基於該第二縮放因子來縮放該參數集的第二子集。
一些實施例與一種用於使用藉由類比處理器進行的複數個運算次來執行數學運算的方法相關,該方法包括以下步驟:針對該複數個運算次中的每一者:基於表示矩陣的一部分的參數集來針對該運算次決定一或更多個縮放因子;基於該一或更多個縮放因子來縮放該參數集的至少一些參數以產生縮放的參數集;基於該縮放的參數集來程式化該類比處理器;基於輸入資料集來產生複數個輸入類比訊號;基於該複數個輸入類比訊號及該縮放的參數集來產生複數個輸出類比訊號;基於該複數個輸出類比訊號來產生部分輸出資料集;及基於該一或更多個縮放因子來縮放該部分輸出資料集以產生縮放的部分輸出資料集;及藉由累加由該複數個運算次中的至少兩者所產生的該等縮放的部分輸出資料集來產生累加的輸出資料集,其中該累加的輸出資料集表示該數學運算的結果。
在一些實施例中,基於該複數個輸入類比訊號及該縮放的參數集來產生複數個輸出類比訊號的步驟包括以下步驟:基於該複數個輸入類比訊號及該縮放的參數集來執行矩陣-矩陣乘法。
在一些實施例中,基於該複數個輸入類比訊號及該縮放的參數集來產生複數個輸出類比訊號的步驟包括以下步驟:基於該複數個輸入類比訊號及該縮放的參數集來執行卷積。
在一些實施例中,基於該縮放的參數集來程式化該類比處理器的步驟包括以下步驟:基於該縮放的參數集來針對該類比處理器的複數個類比放大器或衰減器設定相應的增益或衰減。
在一些實施例中,該類比處理器包括光子處理器,該光子處理器包括複數個可程式化的光子設備,且其中基於該縮放的參數集來程式化該類比處理器的步驟包括以下步驟:基於該縮放的參數集來針對該複數個可程式化的光子設備設定相應的特性。
在一些實施例中,該等可程式化的光子設備包括Mach-Zehnder干涉儀,且其中基於該縮放的參數集來針對該複數個可程式化的光子設備設定相應的特性的步驟包括以下步驟:基於該縮放的參數集來針對該複數個Mach-Zehnder干涉儀設定相應的光學特性。
在一些實施例中,該等可程式化的光子設備包括光學諧振器,且其中基於該縮放的參數集來針對該複數個可程式化的光子設備設定相應的特性的步驟包括以下步驟:基於該縮放的參數集來針對該複數個光學諧振器設定相應的光學特性。
在一些實施例中,基於該輸入資料集來產生該複數個輸入類比訊號的步驟包括以下步驟:向複數個數位轉類比轉換器(DAC)提供該輸入資料集。
在一些實施例中,基於該複數個輸出類比訊號來產生該部分輸出資料集的步驟包括以下步驟:提供該複數個輸出類比訊號作為對複數個類比轉數位轉換器(ADC)的輸入。
在一些實施例中,該複數個ADC包括n位元ADC,其中n等於或小於12。
在一些實施例中,累加由該複數個運算次中的至少兩者所產生的該縮放的部分輸出資料集的步驟包括以下步驟:針對該等運算次中的至少一些,將由該運算次所產生的該縮放的部分輸出資料集與由先前的運算次所產生的該縮放的部分輸出資料集加總在一起。
在一些實施例中,程式化該類比處理器的步驟包括以下步驟:基於該縮放的參數集來用複數個矩陣程式化該類比處理器,該複數個矩陣共同表示任意矩陣。
在一些實施例中,用複數個矩陣程式化該類比處理器的步驟包括以下步驟:基於該縮放的參數集來用複數個矩陣程式化該類比處理器,該複數個矩陣基於該任意矩陣的奇異值分解(SVD)來共同表示該任意矩陣。
在一些實施例中,用複數個矩陣程式化該類比處理器的步驟包括以下步驟:基於該縮放的參數集來用複數個矩陣程式化該類比處理器,該複數個矩陣基於該任意矩陣的擴張來共同表示該任意矩陣。
在一些實施例中,基於該一或更多個縮放因子來縮放該參數集中的至少一些的步驟包括以下步驟:將該參數集中的至少一些除以該一或更多個縮放因子,及基於該一或更多個縮放因子來縮放該部分輸出資料集的步驟包括以下步驟:將該部分輸出資料集乘以該一或更多個縮放因子。
在一些實施例中,決定該一或更多個縮放因子的步驟包括以下步驟:基於該矩陣的與該運算次相關聯的分塊來決定該一或更多個縮放因子。
在一些實施例中,決定該一或更多個縮放因子的步驟包括以下步驟:基於該矩陣的一或更多個列來決定該一或更多個縮放因子。
在一些實施例中,決定該一或更多個縮放因子的步驟包括以下步驟:基於該矩陣的一或更多個奇異值來決定該一或更多個縮放因子。
在一些實施例中,該一或更多個縮放因子包括第一縮放因子及第二縮放因子,及基於該一或更多個縮放因子來縮放該參數集的至少一些參數的步驟包括以下步驟:基於該第一縮放因子來縮放該參數集的第一子集,及基於該第二縮放因子來縮放該參數集的第二子集。
一些實施例與一種混合類比-數位處理器相關,該混合類比-數位處理器包括:數位轉類比轉換器(DAC)單元,包括複數個DAC;類比處理器,被佈置為執行矩陣-矩陣乘法且耦接到該DAC單元的輸出;類比轉數位(ADC)單元,包括複數個ADC且耦接到該類比處理器的輸出;數位縮放單元,耦接到該ADC單元的輸出;及數位累加器,耦接到該數位縮放單元的輸出,其中該數位累加器包括記憶單元及數位加法器。
在一些實施例中,該混合類比-數位處理器更包括耦接在該DAC單元與該ADC單元之間的放大或衰減單元。
在一些實施例中,該類比處理器包括光子處理器,該光子處理器包括複數個可程式化的光子設備。
在一些實施例中,該等可程式化的光子設備包括Mach-Zehnder干涉儀。
在一些實施例中,該等可程式化的光子設備包括光學諧振器。
在一些實施例中,用共同表示任意矩陣的複數個矩陣來程式化該類比處理器。
在一些實施例中,該複數個矩陣基於該任意矩陣的奇異值分解(SVD)來共同表示該任意矩陣。
在一些實施例中,該複數個矩陣基於該任意矩陣的擴張來共同表示該任意矩陣。
一些實施例與一種混合類比-數位處理器相關,該混合類比-數位處理器被配置為執行數學運算,該混合類比-數位處理器包括:電路系統,包括類比處理器及類比縮放單元,其中該電路系統被配置為:基於輸入資料集來產生複數個輸入類比訊號;基於縮放因子來設定該類比縮放單元的增益;用表示矩陣的參數集程式化該類比處理器;基於該複數個輸入類比訊號及該參數集來產生複數個輸出類比訊號;藉由使用該類比縮放單元放大該複數個輸入類比訊號及/或該複數個輸出類比訊號來產生複數個放大的輸出類比訊號;及基於該複數個放大的輸出類比訊號來產生輸出資料集。
在一些實施例中,該類比縮放單元包括類比放大器或衰減器。
在一些實施例中,該混合類比-數位處理器更被配置為基於該數學運算來執行多運算次計算,其中該電路系統更被配置為:在該多運算次計算的第一運算次期間將該類比縮放單元的該增益設定為第一值;及在該多運算次計算的第二運算次期間將該類比縮放單元的該增益設定為與該第一值不同的第二值。
在一些實施例中,基於該複數個輸入類比訊號及該參數集來產生複數個輸出類比訊號的步驟包括以下步驟:基於該複數個輸入類比訊號及該參數集來執行矩陣-矩陣乘法。
在一些實施例中,基於該複數個輸入類比訊號及該參數集來產生複數個輸出類比訊號的步驟包括以下步驟:基於該複數個輸入類比訊號及該參數集來執行卷積。
在一些實施例中,該電路系統包括複數個類比轉數位轉換器(ADC),且該複數個ADC被配置為基於該複數個輸出類比訊號來產生該輸出資料集。
在一些實施例中,該複數個ADC包括n位元ADC,其中n等於或小於12。
在一些實施例中,程式化該類比處理器的步驟包括以下步驟:基於該參數集來用複數個矩陣程式化該類比處理器,該複數個矩陣共同表示任意矩陣。
在一些實施例中,用複數個矩陣程式化該類比處理器的步驟包括以下步驟:基於該參數集來用複數個矩陣程式化該類比處理器,該複數個矩陣基於該任意矩陣的奇異值分解(SVD)來共同表示該任意矩陣。
在一些實施例中,用複數個矩陣程式化該類比處理器的步驟包括以下步驟:基於該縮放的參數集來用複數個矩陣程式化該類比處理器,該複數個矩陣基於該任意矩陣的擴張來共同表示該任意矩陣。
在一些實施例中,該電路系統更被配置為基於該參數集及該輸入資料集來決定該縮放因子。
在一些實施例中,決定該縮放因子的步驟包括以下步驟:基於該參數集的統計邊界及該輸入資料集的統計邊界來決定該縮放因子。
一些實施例與一種執行數學運算的方法相關,該方法包括以下步驟:基於輸入資料集來產生複數個輸入類比訊號;基於縮放因子來設定該類比縮放單元的增益;用表示矩陣的參數集程式化類比處理器;基於該複數個輸入類比訊號及該參數集來產生複數個輸出類比訊號;藉由使用該類比縮放單元放大該複數個輸入類比訊號及/或該複數個輸出類比訊號來產生複數個放大的輸出類比訊號;及基於該複數個放大的輸出類比訊號來產生輸出資料集。
在一些實施例中,該類比縮放單元包括類比放大器或衰減器。
在一些實施例中,該混合類比-數位處理器更被配置為基於該數學運算來執行多運算次計算,其中該電路系統更被配置為:在該多運算次計算的第一運算次期間將該類比縮放單元的該增益設定為第一值;及在該多運算次計算的第二運算次期間將該類比縮放單元的該增益設定為與該第一值不同的第二值。
在一些實施例中,基於該複數個輸入類比訊號及該參數集來產生複數個輸出類比訊號的步驟包括以下步驟:基於該複數個輸入類比訊號及該參數集來執行矩陣-矩陣乘法。
在一些實施例中,基於該複數個輸入類比訊號及該參數集來產生複數個輸出類比訊號的步驟包括以下步驟:基於該複數個輸入類比訊號及該參數集來執行卷積。
在一些實施例中,該電路系統包括複數個類比轉數位轉換器(ADC),且該複數個ADC被配置為基於該複數個輸出類比訊號來產生該輸出資料集。
在一些實施例中,該複數個ADC包括n位元ADC,其中n等於或小於12。
在一些實施例中,程式化該類比處理器的步驟包括以下步驟:基於該參數集來用複數個矩陣程式化該類比處理器,該複數個矩陣共同表示任意矩陣。
在一些實施例中,用複數個矩陣程式化該類比處理器的步驟包括以下步驟:基於該參數集來用複數個矩陣程式化該類比處理器,該複數個矩陣基於該任意矩陣的奇異值分解(SVD)來共同表示該任意矩陣。
在一些實施例中,用複數個矩陣程式化該類比處理器的步驟包括以下步驟:基於該縮放的參數集來用複數個矩陣程式化該類比處理器,該複數個矩陣基於該任意矩陣的擴張來共同表示該任意矩陣。
在一些實施例中,該方法更包括以下步驟:基於該參數集及該輸入資料集來決定該縮放因子。
在一些實施例中,決定該縮放因子的步驟包括以下步驟:基於該參數集的統計邊界及該輸入資料集的統計邊界來決定該縮放因子。
一些實施例與一種混合類比-數位處理器相關,該混合類比-數位處理器包括:電路系統,包括光子處理器,其中該電路系統被配置為使用複數個運算次執行數學運算,其中針對該複數個運算次中的每一者,該電路系統被配置為:基於表示矩陣的一部分的參數集來針對該運算次決定一或更多個縮放因子;基於該一或更多個縮放因子來縮放該參數集的至少一些參數以產生縮放的參數集;基於該縮放的參數集來程式化該光子處理器;基於輸入資料集來產生複數個輸入光學訊號;基於該複數個輸入光學訊號及該縮放的參數集來產生複數個輸出光學訊號;基於該複數個輸出光學訊號來產生部分輸出資料集;及基於該一或更多個縮放因子來縮放該部分輸出資料集以產生縮放的部分輸出資料集,其中該電路系統更被配置為藉由累加由該複數個運算次中的至少兩者所產生的該等縮放的部分輸出資料集來產生累加的輸出資料集,其中該累加的輸出資料集表示該數學運算的結果。
在一些實施例中,該光子處理器包括複數個可程式化的光子設備,且其中基於該縮放的參數集來程式化該類比處理器的步驟包括以下步驟:基於該縮放的參數集來針對該複數個可程式化的光子設備設定相應的特性。
在一些實施例中,該等可程式化的光子設備包括光學諧振器,且其中基於該縮放的參數集來針對該複數個可程式化的光子設備設定相應的特性的步驟包括以下步驟:基於該縮放的參數集來針對該複數個光學諧振器設定相應的光學特性。
在一些實施例中,該光學諧振器包括光學環形或碟形諧振器,且其中針對該複數個光學諧振器設定該等相應的光學特性的步驟包括以下步驟:基於該縮放的參數集針對該複數個光學環形或碟形諧振器設定相應的諧振頻率。
在一些實施例中,該等可程式化的光子設備包括Franz-Keldysh調變器,且其中基於該縮放的參數集來針對該複數個可程式化的光子設備設定相應的特性的步驟包括以下步驟:基於該縮放的參數集來針對該複數個Franz-Keldysh調變器設定相應的吸收。
在一些實施例中,該光子處理器包括:互連的可變分束器(VBS)的第一陣列,包括第一複數個光學輸入及第一複數個光學輸出;互連的VBS的第二陣列,包括第二複數個光學輸入及第二複數個光學輸出;及複數個可控制光學構件,該複數個這些可控制光學構件中的每一者均將該第一陣列的該第一複數個光學輸出中的單個光學輸出耦接到該第二陣列的該第二複數個光學輸入中的相應的單個光學輸入。
在一些實施例中,基於該縮放的參數集來程式化該光子處理器的步驟包括以下步驟:基於該縮放的參數集來程式化該複數個可控制的光學構件。
在一些實施例中,該第一陣列及該第二陣列的該等VBS中的每一者包括Mach-Zehnder干涉儀,該Mach-Zehnder干涉儀包括:第一分束器;
第二分束器;及至少一個相位調變器,被配置為調變耦合該第一分束器及該第二分束器的光學模式的光的相位。
在一些實施例中,該等可控制光學構件中的每一者均包括可變衰減器及至少一個相位調變器。
在一些實施例中,基於該複數個輸入光學訊號及該縮放的參數集來產生複數個輸出光學訊號的步驟包括以下步驟:基於該複數個輸入光學訊號及該縮放的參數集來執行矩陣-矩陣乘法。
在一些實施例中,程式化該光子處理器的步驟包括以下步驟:基於該縮放的參數集來用複數個矩陣程式化該光子處理器,該複數個矩陣共同表示任意矩陣。
一些實施例與一種混合類比-數位處理器相關,該混合類比-數位處理器包括:數位轉類比轉換器(DAC)單元,包括複數個DAC;光子處理器,被佈置為執行矩陣-矩陣乘法且耦接到該DAC單元的輸出;類比轉數位(ADC)單元,包括複數個ADC且耦接到該光子處理器的輸出;數位縮放單元,耦接到該ADC單元的輸出;及數位累加器,耦接到該數位縮放單元的輸出,其中該數位累加器包括記憶單元及數位加法器。
在一些實施例中,該混合類比-數位處理器更包括耦接在該DAC單元與該ADC單元之間的光學放大或衰減單元。
在一些實施例中,該光子處理器包括複數個光學諧振器。
在一些實施例中,該光子處理器包括:互連的可變分束器(VBS)的第一陣列,包括第一複數個光學輸入及第一複數個光學輸出;互連的VBS的第二陣列,包括第二複數個光學輸入及第二複數個光學輸出;及複數個可控制光學構件,該複數個這些可控制光學構件中的每一者均將該第一陣列的該第一複數個光學輸出中的單個光學輸出耦接到該第二陣列的該第二複數個光學輸入中的相應的單個光學輸入。
在一些實施例中,用共同表示任意矩陣的複數個矩陣來程式化該光子處理器。
一些實施例與一種混合類比-數位處理器相關,該混合類比-數位處理器被配置為執行數學運算,該混合類比-數位處理器包括:電路系統,包括光子處理器及至少一個放大器,其中該電路系統被配置為:基於輸入資料集來產生複數個輸入類比訊號;基於縮放因子來設定該至少一個放大器的相應的增益;用表示矩陣的參數集程式化該光子處理器;基於該複數個輸入光學訊號及該參數集來產生複數個輸出光學訊號;基於該複數個輸出光學訊號來產生複數個輸出類比訊號;藉由使用該至少一個放大器放大該複數個輸入光學訊號、該複數個輸出光學訊號、及該複數個輸出類比訊號中的至少一者來產生複數個放大的輸出訊號;及基於該複數個放大的輸出訊號來產生輸出資料集。
在一些實施例中,該至少一個放大器包括光學放大器及電子放大器,其中使用該至少一個放大器來放大該複數個輸入光學訊號、該複數個輸出光學訊號、及該複數個輸出類比訊號中的至少一者的步驟包括以下步驟:用該光學放大器放大該複數個輸入光學訊號;及用該電子放大器放大該複數個輸出類比訊號。
在一些實施例中,該至少一個放大器包括雷射器,且其中設定該放大器的該增益的步驟包括以下步驟:設定該雷射器的增益。
在一些實施例中,該混合類比-數位處理器更被配置為基於該數學運算來執行多運算次計算,其中該電路系統更被配置為:在該多運算次計算的第一運算次期間將該至少一個放大器的該增益設定為第一值;及在該多運算次計算的第二運算次期間將該至少一個放大器的該增益設定為與該第一值不同的第二值。
在一些實施例中,基於該複數個輸入類比訊號及該參數集來產生複數個輸出類比訊號的步驟包括以下步驟:基於該複數個輸入類比訊號及該參數集來執行矩陣-矩陣乘法。
在一些實施例中,基於該複數個輸入類比訊號及該參數集來產生複數個輸出類比訊號的步驟包括以下步驟:基於該複數個輸入類比訊號及該參數集來執行卷積。
在一些實施例中,該光子處理器包括複數個光學諧振器。
在一些實施例中,該光子處理器包括:互連的可變分束器(VBS)的第一陣列,包括第一複數個光學輸入及第一複數個光學輸出;互連的VBS的第二陣列,包括第二複數個光學輸入及第二複數個光學輸出;及複數個可控制光學構件,該複數個這些可控制光學構件中的每一者均將該第一陣列的該第一複數個光學輸出中的單個光學輸出耦接到該第二陣列的該第二複數個光學輸入中的相應的單個光學輸入。
在一些實施例中,程式化該類比處理器的步驟包括以下步驟:基於該參數集來用複數個矩陣程式化該類比處理器,該複數個矩陣共同表示任意矩陣。
在一些實施例中,用複數個矩陣程式化該類比處理器的步驟包括以下步驟:基於該參數集來用複數個矩陣程式化該類比處理器,該複數個矩陣基於該任意矩陣的奇異值分解(SVD)來共同表示該任意矩陣。
在一些實施例中,用複數個矩陣程式化該類比處理器的步驟包括以下步驟:基於該縮放的參數集來用複數個矩陣程式化該類比處理器,該複數個矩陣基於該任意矩陣的擴張來共同表示該任意矩陣。
在一些實施例中,該電路系統更被配置為基於該參數集及該輸入資料集來決定該縮放因子。
在一些實施例中,決定該縮放因子的步驟包括以下步驟:基於該參數集的統計邊界及該輸入資料集的統計邊界來決定該縮放因子。
一些實施例與一種製造混合類比-數位處理器的方法相關,該方法包括以下步驟:形成數位轉類比轉換器(DAC)單元,該DAC單元包括複數個DAC;形成光子處理器,該光子處理器被佈置為執行矩陣-矩陣乘法且耦接到該DAC單元的輸出;形成類比轉數位(ADC)單元,該ADC單元包括複數個ADC且耦接到該光子處理器的輸出;形成數位縮放單元,該數位縮放單元耦接到該ADC單元的輸出;及形成數位累加器,該數位累加器耦接到該數位縮放單元的輸出,其中該數位累加器包括記憶單元及數位加法器。
在一些實施例中,形成該光子處理器的步驟及形成該數位累加器的步驟包括以下步驟:將該光子處理器及該數位累加器形成在共用晶片上。
在一些實施例中,形成該光子處理器的步驟及形成該數位累加器的步驟包括以下步驟:將該光子處理器形成在第一晶片上;將該數位累加器形成在第二晶片上;及將該第一晶片與該第二晶片黏合。
在一些實施例中,形成該ADC單元的步驟包括以下步驟:形成複數個n位元ADC,其中n小於或等於12。
I. 概述
隨著最近深度學習應用的激增,對專門用於張量代數運算(例如卷積或通用矩陣乘法(GEMM))的高效能計算的數位加速器的需求不斷增長。常規上,已經在此類應用中將包括圖形處理單元(GPU)、現場可程式化邏輯閘陣列(FPGA)、及應用特定集成電路(ASIC)的數位處理器架構用作加速器。
發明人已經理解,常規的數位加速器具有一個主要的缺點—它們是耗電的。考慮例如程式化為執行大型GEMM運算的數位加速器。此類數位加速器依賴時脈頻率非常高的大量電晶體來計算所需的乘法。幾十年來,電晶體的尺寸指數地縮小、效能指數地升高、且電力消耗指數地降低—這就是專家一般稱為的莫耳定律。然而,在最近幾年,此趨勢已經開始減慢。主要由於尺寸極小的電晶體之間的洩漏電流,已經變得越來越難以繼續在不犠牲電力消耗的情況下縮放效能。
認識到這些限制,發明人已經開發了新的加速器架構,該等架構就效能及能量效率的角度而言改善了可縮放性。由發明人所開發的加速器將數位控制器的彈性及可程式化性與類比電路的能量效率及固有速度結合在一起。這些加速器在本文中稱為混合類比-數位處理器。
本文中所述的類型的混合類比-數位處理器特別適於計算數學運算。一個此類數學運算是通用矩陣乘法(GEMM),且另一個此類運算是卷積,然而本申請案的實施例不限於任何特定的運算。
可以如下表示GEMM運算:
其中α及β是純量(個別的數字),且A、B、C、及D是矩陣。A與B的內尺度一致,使得(A × B)是矩陣乘法。可以依據GEMM運算分解幾個數學運算,因此使得由發明人所開發的加速器可適用於各種背景脈絡。
一些特定的應用(例如深度類神經網絡)需要計算大量的資料(一般表示為矩陣或張量)。對大量資料執行運算的一個方法是使用大型混合類比-數位處理器。例如,為了執行涉及具有數萬個列及行的矩陣或張量的線性運算,可以使用具有數萬個類比構件的混合類比-數位處理器。
然而,發明人已經理解,此方法可能是昂貴的,因為設計具有如此多的類比元件的處理器可能需要比可用的佔據空間更多的晶片佔據空間或比對於此類晶片而言實際的電力更多的電力。此外,發明人已經理解,一些應用涉及異質工作負載,其中一些矩陣運算具有非常大的尺度,而其他運算具有較小的尺度,使得具有足夠用於最大計算的構件的處理器的整體利用會不良。因此,一些實施例與混合類比-數位處理器相關,該等混合類比-數位處理器可以用相對小量的類比元件處理大量的資料。例如,在一些實施例中,可以使用僅具有數百個類比構件的混合類比-數位處理器來執行涉及具有數千個列及行的矩陣的矩陣運算(應理解,這些數量僅是藉由示例的方式來提供的,因為可以使用不同數量的類比元件)。
在一些實施例中,矩陣運算可以藉由藉由混合類比-數位處理器進行多個運算次(pass)來執行。在藉由處理器進行的每個運算次時,對矩陣的子部分(在本文中稱為「分塊」)執行運算。圖1-1A及1-1B繪示可以如何使用分塊來執行矩陣乘法。首先參照圖1-1A,藉由將矩陣A乘以矩陣B來獲得矩陣C。矩陣A具有I個列及K個行,而矩陣B具有K個列及J個行。其結果是,矩陣C具有I個列及J個行。A1及A2表示矩陣A的分塊。為了明確起見,在此示例中已經將矩陣A分段成四個分塊,然而在一些實施例中,也可以將矩陣A分段成數十、數百、或數千、或更多個分塊。類似地,在此示例中已經將矩陣B分段成四個非方形的分塊,然而在一些實施例中,也可以將矩陣B分段成數十、數百、或數千、或更多個分塊。分塊A1及B1可以各自包括N個列及M個行(然而本文中所述的類型的分塊不需要是方形的),其中N≤I、N≤K、N≤J、M≤I、M≤K、及M≤J。在此示例中,矩陣B被分成分塊列B1及B2。每個分塊列均包括N個列及J個行。
矩陣C的每個分塊列均是藉由以下步驟來獲得的:矩陣A的將相應的分塊與矩陣B的相應的分塊列相乘,及累加結果。每個乘法均被執行為藉由混合類比-數位處理器進行的運算次。如圖1-1B中所繪示,例如,在藉由混合類比-數位處理器進行的第一運算次時將分塊A1乘以分塊列B1,且在第二運算次時將分塊A2乘以分塊列B2。接著累加結果,使得:
C1=A1×B1+A2×B2
此示例涉及累加兩個部分結果。然而,在其他的實施例中,取決於分塊相對於要被相乘的矩陣的尺度的尺度,可以存在更多的部分結果。對於GEMM應用(例如被設計為進行預測的彼等應用)(其中相同的「權重」矩陣(A)重複與許多不同批的資料(B)一起使用)而言,此分塊排序可以具有空間性或時間性的局部性及減少權重資料移動的益處。
發明人已經進一步開發了使用光訊號的特定類別的類比處理器。發明人已經理解,因為光訊號在光行進的介質中用光速行進,所以延遲遠小於電系統中的限制。此外,實際上沒有電力由於增加光訊號行進的距離而消耗,從而開闢了在使用電訊號的情況下會是不可行的新的拓撲結構及處理器佈局。因此,基於光的處理器(在本文中稱為「光子處理器」)可以具有比常規的電處理器更佳的速率及效率效能。應理解,光子處理器僅是本文中所述的加速器的一個可能的實施方式,因為也可以使用其他類型的混合類比-數位處理器。下文進一步詳細提供此類混合類比-數位處理器的示例。
發明人已經進一步理解,在一些情況下,表示輸入資料(B)及/或「權重」矩陣(A)的矩陣可能跨其值的量值展現大的變化。考慮例如圖1-1C的矩陣,其中較暗的區域表示較大量值的群集,而較亮的區域表示較小量值的群集。表項跨值的量值具有大的變化帶來了重大的挑戰,這是由於數位化類比訊號的有限動態範圍而引起的,對於混合類比-數位處理器中的數字表示而言也是如此。小的量值被捨入為最小非零的可表示值,意味著低位元中的資訊可能受到輸入量化雜訊的限制。單純放大訊號以讀取低位元可能產生嘈雜的結果。
發明人已經開發了用於克服上述挑戰的技術。由發明人所開發的技術涉及正規化(normalize)權重矩陣的表項,或正規化輸入資料集的表項,以匹配系統的動態範圍。正規化可以涉及用縮放矩陣的不同部分達不同的量。可以基於分塊、基於列、基於分塊列、或用任何其他合適的方式進行正規化。
然而,在縮放矩陣的不同部分達不同的量時,會引起一個問題一根據不同的矩陣部分計算的值可能不再被直接累加。為了解決此問題,在一些實施例中執行逆縮放。一旦回向縮放,不同矩陣部分的結果就被恢復成原始的資料範圍,因此允許直接累加。
發明人已經進一步理解,用大量的位元表示數位值同時提供高度的表示準確度可能導致電力消耗的顯著增加。考慮例如類比轉數位轉換器(ADC)。除了其他因素以外,ADC的電力消耗取決於用來表示值的位元數。一些ADC所需的能量隨著輸出位元數指數成長。本質上,在表示準確度與電力消耗之間存在取捨。
常規的數位處理器利用二進制數字表示,例如浮點數、整數、定點數、拐點數(flex-point)等等。為了針對某些應用實現較高的效能,已經開發了包括非線性有效數圖(例如對數表示)、二進制隨機數、及熵編碼(例如假定數(posit)、通用數(unum)、及錐形浮點數
(tapered floating point))的非標準的二進制數字表示。相對於一些真實矩陣乘法,具有此類表示的捨入及溢位/下溢可能造成數位GEMM的結果與真實的算術結果不一致。在浮點數(FP)表示(例如標準IEEE 754的「binary64」,也稱為「double」或「FP64」)中,此準確度損失在大多數情況下可以忽視。也可以相對於IEEE 754標準修改尾數、指數、及指數偏差的劃分。例如,16位元的腦浮點數或「bfloat16」表示將8位元專用於指數,而不是IEEE標準「半」精確度(FP16)的5位元。為了實現較高的效能及改善能量效率,許多加速器用較低的精確度表示執行計算(例如16位元浮點數(FP16)),且可能使用混合精確度表示。例如,NVIDIA的Volta世代Tensor Core用「半」精確度(FP16)用4x4矩陣A及B計算及用半精確度或「單」精確度(FP32)中的任一者用矩陣C計算GEMM。
發明人已經理解,就晶片面積及電力需求的角度而言,低精確度(例如16位元或更少、12位元或更少、10位元或更少)的定點二進制數表示的需求比浮點二進制數表示低得多。進一步地,並非所有應用都需要用全精確度表示數學運算的結果。例如,深度學習應用通常可以容忍比數值線性代數的其他應用明顯更低的精確度。然而,使用低精確度的表示在以下方面帶來了重大的挑戰:其減少了可以用來表示數字的準確度。更糟的是,減少ADC的精確度也可能減少其動態範圍。其結果是,在表示訊號的全
動態範圍與精確地表示較小的輸出值之間存在取捨。在將訊號從類比域轉換成數位域時,低精確度的ADC可能試圖設定輸出的最高位元。然而,這可能造成ADC將最高位元設定為零一也就是說,ADC試圖讀取不具有有意義的資訊的訊號範圍。此問題由於神經網絡模型中的計算的性質(條件隨時間變化,例如從網絡的一個層到網絡的另一層變化)而進一步惡化。
發明人已經開發了被設計為用低精確度定點二進制數字表示運算的加速器架構,藉此限制了晶片面積及電力消耗,該等數字表示為各種實際的應用(包括深度學習應用)提供充足的準確度。可以動態地重新配置這些加速器架構,因此顧及到了神經網絡模型變化的動態條件。由發明人所開發的加速器架構被設計為移動ADC能夠讀取的訊號範圍或「窗口」。移動窗口允許ADC將轉換聚焦在訊號的一部分上,該部分可能具有最多有意義的資訊或至少具有某種有意義的資訊。
在一些實施例中,如此移動讀出窗口可以涉及類比縮放單元(例如放大器或衰減器)的使用。調整類比縮放單元的增益造成讀出窗口移動,這轉而允許更準確地讀取。考慮例如8位元ADC,將增益設定為2可以使得讀出窗口朝向最低位元移動1位元,而將增益設定為1/2可以使得讀出窗口朝向最高位元移動1位元。在一些實施例中,動態地調整讀出窗口的位置,因此允許加速器基於眼前問題的規模來重新配置自身。例如,可能需要在神經網絡模型的
不同層之間動態地變化讀出窗口的位置以計及可能發生在層與層之間的輸出資料分佈的改變,如與圖1-9B結合詳細描述的。
II.矩陣劃分
在一些實施例中,矩陣運算可以藉由藉由混合類比-數位處理器進行多個運算次(pass)來執行。在每個運算次時,處理器對矩陣的分塊執行運算。圖1-2A是依據一些實施例的方塊圖,其繪示實施劃分技術的混合類比-數位矩陣處理器的示例。混合類比-數位矩陣處理器1-100(在本文中也稱為加速器1-100)包括數位轉類比轉換器(DAC)單元1-102、類比處理器1-104、類比轉數位轉換器(ADC)單元1-106、數位縮放單元1-108、數位累加器1-110、及控制器1-120。控制器1-120可以控制加速器1-100的運算。例如,控制器1-120可以包括在執行時使得加速器執行數學運算的軟體指令。圖1-2A的元件(及可選的其他元件)在本文中統稱為「電路系統」。可以將圖1-2A的元件形成於共同晶片上、或黏合在一起的不同晶片上。
如下文進一步詳細描述,加速器1-100被配置為藉由藉由類比處理器1-104執行幾個運算次來執行數學運算。在藉由類比處理器1-104進行的每個運算次時,加速器1-100使用類比處理器1-104來計算部分結果。使用數位累加器1-110來將部分結果加在一起。
可以使用類比元件用許多方式中的任一者實施類比處理器1-104。在一些實施例中,類比處理器1-104被配置為執行線性運算,例如矩陣-向量乘法或矩陣-矩陣乘法。因此,處理器1-104可以包括被設計為執行類比乘法或其他數學運算的多個類比元件。
DAC單元1-102包括多個DAC。可以使用任何合適類型的DAC,包括例如電阻梯形DAC、切換式電容器DAC、切換式電阻器DAC、二進制加權DAC、溫度表編碼的DAC、逐次近似DAC、過取樣DAC、內插DAC、混合DAC等等。類似地,ADC單元1-106包括多個ADC。可以使用任何合適類型的ADC,包括例如並行比較器ADC、快閃ADC、逐次近似ADC、Wilkinson ADC、積分ADC、Σ-△ADC、流水線ADC、積分ADC、循環ADC、時間交錯的ADC等等。
圖1-2B是可以使用加速器1-100來執行的矩陣-矩陣乘法的表示。在一些實施例中,矩陣A表示權重矩陣,且矩陣B表示依據對類比處理器的輸入資料來編碼的輸入矩陣。在其他的實施例中,矩陣A表示輸入矩陣,且矩陣B表示權重矩陣。無論哪種方式,矩陣C都表示輸出資料。可以將矩陣A的表項(在本文中也稱為「參數」)儲存在加速器的記憶體中,且可以提供矩陣B的表項作為對加速器的輸入。C是藉由將權重矩陣A應用於輸入矩陣B來計算的。更具體而言,矩陣C是藉由將矩陣A乘以矩陣B來計算的。為了明確起見,矩陣A被繪示為4x4矩陣,矩陣B被繪示為4x3
矩陣,且矩陣C被繪示為4x3矩陣。當然,矩陣可以具有任何合適數量的列及行。在一些實施例中,矩陣可以具有數百、數千、數萬、或更多個列及行。在一些實施例中,A及B可以是N維張量,使得矩陣運算要對相同大小的矩陣的多個實例執行。在一些實施例中,A的行的數量等於B的列的數量,因此允許矩陣彼此相乘。例如,矩陣A可以具有I個列及K個行,矩陣B可以具有K個列及J個行。其結果是,矩陣C具有I個列及J個行。可以將此關係如下表示:dim(A)=(I,K)且dim(B)=(K,J)且dim(C)=(I,J)其中,運算符dim( )在應用於矩陣時回傳該矩陣的列及行的數量。矩陣A的表項為aik,其中i=1、2、...、I,且k=1、2、...、K。矩陣B的表項為bkj,其中j=1、2、...、J。矩陣C的表項為cij。
用單個運算次將整個矩陣A與整個矩陣B相乘需要大型的類比處理器,特別是在I、K、及J大的時候。設計大型處理器可能是不切實際的,因為這可能需要比可用的晶片佔據空間更多的晶片佔據空間,且可能造成大量的電力消耗。在一些實施例中,使用相對小的類比處理器來執行圖1-2B的運算可能是更實際的。在這些實施例中,代替直接對整個矩陣進行乘法,可以藉由分塊來分解乘法。在圖1-2C的繪圖中,例如,矩陣A被分段成四個分塊-A1、A2、A3、及A4。在此具體的示例中,N=2-A的每個分塊均具有兩個列及兩個行(然而其他的N值也是可能的,只要NI、NJ、及NK)。矩陣B被分段成分塊列B1
及B2,且矩陣C被分段成分塊列C1及C2。矩陣C的分塊列由以下表達式所給定:C1=A1×B1+A2×B2
C2=A3×B1+A4×B2
可以用藉由類比處理器進行的第一個運算次來執行乘法A1×B1,可以用藉由類比處理器進行的第二個運算次來執行乘法A2×B2,且隨後可以將結果彼此累加來獲得C1。類似地,可以用藉由類比處理器進行的第三個運算次來執行乘法A3×B1,可以用藉由類比處理器進行的第四個運算次來執行乘法A4×B2,且隨後可以將結果彼此累加來獲得C2。
圖1-3是依據一些實施例的流程圖,其繪示用於執行數學運算的方法的示例。可以使用加速器1-100(圖1-2A)來執行方法1-300,然而也可以使用任何其他合適的加速器。應理解,可以用圖1-3中所描繪的順序或用任何其他合適的順序執行方法1-300的步驟。詳細而言,可以將運算的順序選擇為利用空間性及/或時間性的局部性。方法1-300循環多次,其中每個循環均與藉由類比處理器進行的一個運算次對應。圖1-2A繪示第p次迭代,其中p=1、2...P。
在步驟1-301處,控制器1-120針對目前的運算次決定一或更多個縮放因子。如上文與圖1-1C結合描述,在一些實施例中,矩陣可能跨其表項展現顯著的量值變化,使得可能需要正規化矩陣A或矩陣B的表項以匹配類比
處理器的動態範圍。步驟1-301的決定可以涉及決定縮放輸入資料集的縮放因子的值以匹配ADC單元的動態範圍。可以用許多方式中的任一者執行此決定。在一些實施例中,可以基於矩陣A的參數來作出決定。在一些實施例中,可以基於矩陣A的目前分塊或其他分塊的參數來作出決定。在此情況下,重新排序矩陣A,使得具有類似動態範圍的表項落在相同的分塊中可能是有利的。對於矩陣B而言也可能是這種情況。在一些實施例中,可以取決於需要用來縮放矩陣的粒度程度來選擇矩陣A的分塊的尺度。例如,若預期矩陣將跨其值展現尖銳的變化,則可以將分塊的尺度選擇為是小的,因此提供了精細的解析度。缺點是,將需要更多的運算次。相比之下,若預期矩陣B將跨其值展現相對緩慢的變化,則可以將分塊的尺度選擇為是較大的,因此限制了運算次的數量。
可以用任何合適的方式來決定縮放因子。在一個示例中,縮放因子被設定為目前分塊的表項的平均值。在另一個示例中,縮放因子被設定為目前分塊的表項的最高值。在又另一個示例中,縮放因子被設定為目前分塊的表項的最低值。在又另一個示例中,可以將縮放因子設定為目前分塊的列的最大絕對值。
在一些實施例中,可以將矩陣A因子分解或分解成乘法矩陣。這些矩陣的表項可以使得將該等矩陣結合(例如相乘)在一起產生原始的矩陣A。可以應用於矩陣A的矩陣分解的示例包括奇異值分解(SVD)、下上分解、擴張
(例如整體擴張)、秩分解、Cholesky分解、QR分解、內插分解、譜分解、極分解等等。在一些實施例中,縮放因子是基於由矩陣A的分解所造成的矩陣中的一者的參數來決定的。
在一個示例中,基於SVD來分解矩陣A,且基於矩陣A的奇異值中的一或更多者來決定縮放因子。例如,可以將縮放因子設定為目前分塊的最高奇異值,例如設定為目前分塊的奇異值的絕對值之中的最高值。在一些實施例中:t p =max{|σ i |}使得i=1,2,...,N且Σ p =diag[σ i ]其中tp表示分塊p的縮放因子,Σp表示與分塊p相關聯的對角矩陣,而σi表示矩陣Σp的對角值(即A的第p個分塊的奇異值)。量|σi|指示σi的絕對值。在又另一個示例中,將縮放因子設定為目前分塊的奇異值的平均值。在又另一個示例中,縮放因子被設定為目前分塊的奇異值的最低值。
不需要出於決定縮放因子的目的而將矩陣A分段成分塊。在一些實施例中,可以基於矩陣A的分塊的列(分塊列)、基於矩陣A的多個分塊、基於矩陣A的列、基於矩陣A的一或更多個行、或基於矩陣A的任何其他合適部分,來決定縮放因子。在一些實施例中,可以為矩陣A的多於一個分塊將縮放因子設定為相同的值。
在步驟1-302處,控制器1-120基於在步驟1-301處決定的縮放因子來縮放矩陣A的參數中的至少一些。在一些實施例中,控制器1-120基於縮放因子來縮放
矩陣A的目前分塊的參數(或參數中的至少一些)。例如,控制器1-120可以基於第一縮放因子來縮放參數的第一子集(例如矩陣A的一或更多個列及/或矩陣的一或更多個行),且可以基於第二縮放因子來縮放參數的第二子集。在圖1-4A的示例中,基於針對分塊所決定的縮放因子來縮放該特定分塊的參數。縮放因子t1指示針對分塊A1所決定的縮放因子,縮放因子t2指示針對分塊A2所決定的縮放因子,縮放因子t3指示針對分塊A3所決定的縮放因子,而縮放因子t4指示針對分塊A4所決定的縮放因子。在此示例中,將分塊A1的表項除以t1,將分塊A2的表項除以t2,將分塊A3的表項除以t3,及將分塊A4的表項除以t4(然而除法以外的運算也是可能的,包括乘法)。
在圖1-4B的示例中,基於針對分塊列所決定的縮放因子來縮放矩陣A的該特定分塊列的參數。縮放因子tr1指示針對分塊A1及A2所決定的縮放因子,而縮放因子tr2指示針對分塊A3及A4所決定的縮放因子。在此示例中,將由分塊A1及A2組成的分塊列的表項除以tr1,且將由分塊A3及A4組成的分塊列的表項除以tr2。
在一些實施例中,代替縮放矩陣A的參數,控制器1-120可以縮放矩陣B(輸入資料集)的表項。可以在數位域中或類比域(在已經傳遞通過DAC單元1-102之後)中縮放表項。在類比域中完成時,縮放可以涉及基於縮放因子來衰減或放大輸入類比訊號。
在圖1-4C的示例中,基於針對矩陣A的對應分塊所決定的縮放因子來縮放矩陣B的分塊列的參數。此處,縮放因子t1指示針對分塊A1所決定的縮放因子,而縮放因子t2指示針對分塊A2所決定的縮放因子。在此示例中,將分塊列B1的表項除以t1,且將分塊列B2的表項除以t2。
在步驟1-304處,控制器1-120基於矩陣A的目前分塊的參數來程式化類比處理器1-104。在已經在步驟1-302處縮放矩陣A的參數的實施例中的至少一些中,控制器1-120基於矩陣A的目前分塊的縮放的參數來程式化類比處理器1-104。回到圖1-2A,例如,控制器1-120基於a11/t1、a12/t1、a21/t1、及a22/t1來程式化類比處理器1-104。程式化類比處理器可以涉及基於參數來設定類比處理器的某些特性。在一個示例中,類比處理器1-104包括多個電子放大器(例如電壓放大器、電流放大器、功率放大器、跨阻放大器、跨導放大器、運算放大器、或電晶體放大器等等),且程式化類比處理器涉及基於分塊A1的參數來設定電子放大器的增益。在另一個示例中,類比處理器1-104包括多個電子衰減器(例如電壓衰減器、電流衰減器、或功率衰減器等等),且程式化類比處理器涉及基於分塊A1的參數來設定電子衰減器的衰減。在又另一個示例中,類比處理器1-104包括多個電子相移器,且程式化類比處理器涉及基於分塊A1的參數來設定電子相移器的相移。在另一個示例中,類比處理器包括一般用交叉方式佈局的記憶設備陣列,例如快閃記憶體或ReRAM。程
式化類比處理器涉及設定記憶單元中的每一者的電導(或電阻)。
如下文進一步詳細描述的,在一些實施例中,用光子處理器來實施類比處理器1-104。在一些此類實施例中,類比處理器1-104包括多個光學放大器(例如半導體光學放大器或其他固態放大器、摻雜稀土金屬的光學放大器(例如摻鉺光學放大器)、Raman放大器、或光學參數放大器等等),且程式化類比處理器涉及基於分塊A1的參數來設定光學放大器的增益。在另一個示例中,類比處理器1-104包括多個光學衰減器(例如Mach Zehnder干涉儀、洩漏波導器、環回衰減器、液晶衰減器、可飽和吸收器、或Franz-Keldysh吸收器、金屬氧化物半導體電容器調變器、載子耗竭電光調變器等等),且程式化類比處理器涉及基於分塊A1的參數來設定光學衰減器的衰減。在又另一個示例中,類比處理器1-104包括多個光學相移器(例如熱光相移器、聲光相移器、電光相移器、電漿色散效應相移器、Pockels效應相移器、奈米光電機相移器、或非線性相位調變器等等),且程式化類比處理器涉及基於分塊A1的參數來設定光學相移器的相移。在又另一個示例中,類比處理器1-104包括多個光學諧振器(例如環形諧振器、及碟形諧振器、光子晶體、脊形諧振器等等),且程式化類比處理器涉及基於分塊A1的參數來設定光學諧振器的諧振頻率。
在步驟1-306處,加速器1-100接收輸入資料集。回到圖1-2C,例如,加速器可以在一個運算次時接收分塊列B1的表項,而在另一個運算次時接收分塊列B2的表項。在一些實施例中,控制器1-120同時接收及儲存矩陣B的表項,但一次(例如在每個運算次時)向DAC單元1-102提供一個分塊列。表項可以表示實數。在一些實施例中,表項可以表示正實數或帶符號的實數(正實數以及負實數)。
在步驟1-308處,加速器1-100基於在步驟1-302處所接收的輸入資料集來產生複數個輸入類比訊號。回到圖1-2A,步驟1-304的產生涉及使用DAC單元1-102來將輸入資料集轉換成類比訊號。
在步驟1-310處,類比處理器1-104基於該複數個輸入類比訊號及用以在步驟1-301處程式化類比處理器的參數集來產生複數個輸出類比訊號。在一些實施例中,這可以涉及執行矩陣乘法。結果是,將該複數個輸入類比訊號乘以目前分塊的相應參數。對於第p個運算次而言,結果是以下表達式:
其中Ap是矩陣A的第p個分塊,Bp是矩陣B的第p個分塊列,而tp是第p個縮放因子。在其他的實施例中,產生該複數個輸出類比訊號涉及基於該複數個輸入類比訊號及該參數集來進行卷積。
類比處理器1-104可以包括被設計為執行矩陣乘法或卷積的任何合適的類比元件。舉一個例子,類比處理器1-104可以包括類比混合器。每個混合器均將輸入類比訊號與基於矩陣A的對應參數來編碼(例如調變)的類比訊號混合。舉另一個例子,類比處理器1-104可以包括幅度調變器。舉另一個例子,類比處理器1-104可以包括電流操縱電路。每個調變器均藉由基於矩陣A的對應參數獲得的量來調變輸入類比訊號。舉另一個例子,類比處理器1-104可以包括放大器。每個放大器均藉由基於矩陣A的對應參數獲得的增益來放大輸入類比訊號。舉另一個例子,類比處理器1-104可以包括衰減器。每個衰減器均藉由基於矩陣A的對應參數獲得的衰減來衰減輸入類比訊號。可以使用任何合適的技術來實施類比處理器1-104,包括例如使用互補金屬氧化物半導體(CMOS)元件、射頻(RF)元件、及微波元件來實施,然而也可以使用其他的技術。在一些實施例中,類比處理器1-104包括光子處理器,且在光域中執行乘法。在一些實施例中,類比處理器1-104包括光子及類比電子元件的組合,且一些乘法可以在光域中執行而其他乘法或加法在電子域中執行。下文進一步詳細描述光子處理器的示例。
在一些實施例中,代替基於輸入類比訊號及縮放的參數集來執行運算(例如矩陣乘法或卷積),步驟1-310可以涉及基於縮放的輸入類比訊號及未縮放的參數來執行運算(如例如與圖1-4C及1-4D結合描述的)。無論哪種
方式,結果都是A p ×。在一些實施例中,可以基於行分塊來執行矩陣B的縮放。也就是說,由不同的因子縮放矩陣B的相異的行分塊。
在一些實施例中,類比乘法可以涉及矩陣分解。這些矩陣的表項可以使得將該等矩陣結合(例如相乘)在一起產生原始的矩陣A。在一些此類實施例中,可以將類比處理器1-104設計為基於矩陣中的每一者來對輸入資料集執行變換,其中在該等矩陣中,矩陣A已經被分解。上文提供了矩陣分解的具體示例。一個此類示例為SVD。如圖1-5A中所繪示,控制器1-120可以將矩陣A分解為由三個組成矩陣所表示:A=UΣV †,其中U及V分別是單式I x I及K x K矩陣(U † U=UU †=I及V † V=VV †=I),且Σ是具有實數或複數值的表項的I x K對角矩陣。在一些實施例中,也可以進一步正規化對角奇異值的值,使得奇異值的最大絕對值為1。值σ 1、σ 2…σ K表示奇異值。類比處理器1-104可以包括被設計為依據矩陣U、Σ、及V中的每一者來變換輸入類比訊號的類比硬體。
回到圖1-3,在步驟1-312處,加速器1-100基於在步驟1-310處獲得的該複數個輸出類比訊號來產生部分輸出資料集。在一些實施例中,步驟1-312的產生涉及將輸出類比訊號傳遞通過ADC單元1-106。
在步驟1-314處,加速器1-100基於縮放因子來縮放部分輸出資料集以產生縮放的部分輸出資料集。步驟1-314的縮放可以涉及將部分輸出資料集傳遞通過數位縮
放單元1-108。在一些實施例中,可以將數位縮放單元1-108配置為應用在步驟1-308處執行的運算的逆運算。例如,在步驟1-308涉及除法的實施例中的至少一些中,步驟1-314可以涉及乘法。類似地,在步驟1-308涉及乘法的實施例中的至少一些中,步驟1-314可以涉及除法。這將輸出矩陣的表項恢復成原始的範圍。
在一些實施例中,步驟1-314的縮放可以基於用於步驟1-302的縮放的相同縮放因子(然而其也可以使用逆運算來應用)。因此,若步驟1-302的縮放涉及除以tp,則步驟1-314的縮放涉及乘以tp。在其他的實施例中,步驟1-314的縮放可以涉及額外的因子。例如,若步驟1-308的縮放涉及除法tp,則步驟1-314的縮放可以涉及乘以tp/r,其中可以基於所有縮放因子tp來計算出因子r。在一個示例中,如下計算因子r:r=f({t p :p=1,2,...,K//N)其中函數f(‧)可以表示任何合適的函數,例如max(‧)、min(‧)、或mean(‧)。由因子tp/r進行縮放具有統一縮放因子的資料範圍的效果。
在步驟1-316處,累加在步驟1-314處產生的縮放的部分輸出資料集。在每個運算次時,累加均可以涉及將由目前的運算次所產生的縮放的部分輸出資料集與先前累加的結果加總。因此,每個運算次均將目前的結果與累計的結果相加。可以使用數位累加器1-110來執行步驟1-320的累加。依據一些實施例,累加器1-110的示例繪
示在圖1-5B中。在此示例中,累加器1-110包括記憶單元1-520及數位加法器1-522。記憶單元1-520儲存先前累加的結果。數位加法器1-522將由目前的運算次所產生的縮放的部分輸出資料集與累計的結果相加。
在一些實施例中,代替在每個運算次時均執行累加步驟,可以將部分結果暫時儲存在記憶體中,且可以在完成運算次之後執行單次累加。無論哪種方式,工序1-100均可以涉及至少一個累加步驟,其中由該複數個運算次中的至少兩者所產生的縮放的部分輸出資料集被累加。
在步驟1-318處,加速器1-100決定是否應執行額外的運算次。這可以涉及例如決定是否存在矩陣A的還未處理的額外分塊。也就是說,在一些實施例中,方法1-300迭代達等於矩陣A的分塊的數量的循環次數。
若加速器1-100決定需要額外的迭代,則方法1-300藉由加速器執行另一個運算次。在下一個運算次中,矩陣A的另一個分塊被處理。相比之下,若加速器1-100決定不需要額外的迭代,則方法1-300結束。
III.部分乘積
在一些實施例中,類比處理器執行矩陣-向量乘積:,其中是輸入向量,A是n×n矩陣,而是輸出向量。用索引表示法,此乘法被寫作(針對[0,N-1]中的所有i),其是A ij 的n個元素(迭代遍歷j)與b j 的n個元素(迭代遍歷j)之間的乘法,然後將這些乘法的結果加總在一起。在一些實施例中,可以用無符號的定點數表示(例
如INT8)來表示元素A ij 及b j 。在此表示內,若A ij 是m 1位元的數字而b j 是m 2位元的數字,則使用了總共m 1+m 2+log 2(n)個位元來完全表示生成的向量元素c i 。一般,在不損失準確度的情況下表示矩陣-向量乘積的結果所需的位元數大於表示運算的輸入所需的位元數。若ADC單元1-106不能用全精確度讀出輸出向量,則可以將輸出向量元素捨入到ADC的精確度。
發明人已經認識及理解,建構在與用以將呈類比訊號的形式的輸入向量發送藉由類比處理器1-104的速率對應的帶寬下具有高位元精確度的ADC可能是難以實現的。因此,在一些實施例中,DAC 1-102的位元精確度可能限制用以表示矩陣元素A ij 及向量元素b j 的位元精確度。因此,發明人已經設計了一種藉由計算部分乘積及總和來用輸出向量的全精確度(其可能任意地高)獲得該輸出向量的方法。為了明確起見,將假設,表示A ij 或b j 中的任一者所需的位元數是相同的,即m 1=m 2=m。然而,此假設也可以被移除且並不限制本揭示內容的實施例的範圍。
依據一些實施例,該方法包括以下步驟作為第一行動:將矩陣元素A ij 及向量元素b j 的位元串表示分成d個分區,其中每個分區包含k=m/d個位元。(若k不是整數,則可以附加零,直到m可被d整除為止。)其結果是,矩陣元素A ij =A ij [0]2 k(d-1)+A ij [1]2 k(d-2)+…+A ij [d-1]20,其中A ij [f]是A ij 的第f個最高位k位元字串的k位元值。就位元串的角度而言,可以寫成A ij =A ij [0] A ij [1]…A ij [d-1]。類似地,也可以獲得
b j =b j [0]2 k(d-1)+b j [1]2 k(d-2)+…+b j [d-1]20,其中依據其位元串,向量元素b j =b j [0] b j [1]…b j [d-1]。可以依據這些分區將乘法c i =Σ j A ij b j 分解為:,其中集合S p 是f及g的所有整數值的集合,其中f+g=p。
該方法包括以下步驟作為第二行動:控制類比處理器1-104實施矩陣A ij [f]及呈編碼的類比訊號的形式將輸入向量b j [g](其中的每一者均僅k位元精確)傳播通過類比處理器1-104。在使用上述劃分法中的任一者的情況下,矩陣-向量乘積運算執行c i [f,g]=Σ j A ij [f] b j [g]。該方法包括以下步驟:儲存輸出向量c i [f,g],其精確到高達2k+log 2(n)位元。
該方法更包括以下步驟:迭代遍歷集合S p 內的不同值的f,g,及針對不同值的f、g中的每一者重複第二行動,及儲存中間結果c i [f,g]。
依據此方法的一些實施例用來捕捉全精確度計算的ADC的精確度僅為2k+log 2(n)位元,其少於在其他情況下會需要的2m+log 2(n)位元的精確度。
發明人已經進一步認識及理解,可以將前述方法的實施例概括為對張量進行運算。如先前所述,混合類比-數位處理系統可以使用分塊來執行矩陣-矩陣乘法。上述的方法可以應用於矩陣分塊及輸入資料集分塊列以用全精確度獲得輸入資料集分塊列。
如下文進一步詳細描述的,在類比處理器包括光子處理器的實施例中的一些,可以依據光學可變分束器(VBS)的相位來表示矩陣。在一些此類實施例中,可以對表示相位的位元串執行除法,而不是直接對矩陣元素執行。在一些實施例中,在相位與矩陣元素之間的映射是線性映射時,輸入參數(在此情況下為VBS的相位及輸入向量元素)與輸出向量之間的關係可以是線性的。在此關係為線性時,上述方法仍然可適用。然而,一般而言,依據一些實施例,也可以考慮從矩陣的基本表示到光子表示的非線性映射。例如,歐幾里得空間矩陣元素的從它們的最高位k位元串到最低位k位元串的位元串劃分可以用來產生被分解為相位表示且使用光子處理器來實施的一系列不同矩陣。
不需要同時對權重矩陣表項及輸入資料集表項執行劃分。在一些實施例中,光子處理器可以針對相同的矩陣傳播許多輸入資料集。僅對輸入資料集執行劃分且將VBS控制保持在設定的精確度(例如全精確度)下可以是高效的,因為用於向量準備的數位轉類比轉換器(DAC)可以在高帶寬下運算,而用於VBS的DAC對於多個向量而言可以是準靜態。一般而言,在較高帶寬下包括具有高位元精確度的DAC比在較低的帶寬下設定DAC更困難。因此,在一些實施例中,輸出向量元素可以比ADC所允許的精確度更精確,但ADC將對輸出向量值自動執行一些捨入到高達ADC所允許的位元精確度。
IV.類比增益
發明人已經理解,就晶片面積及電力需求的角度而言,低精確度(16位元或更少、12位元或更少、10位元或更少)的定點二進制數表示的需求比高精確度浮點二進制數表示低得多。然而,與常規上用在現代處理器中的高精確度浮點數表示(例如FP32)相比,低精確度定點數表示導致明顯較低的表示準確度。進一步地,減少精確度可能減少ADC的動態範圍。這造成表示資料向量的全動態範圍與精確地表示較小的輸出值之間的取捨。本文中所述的是用於使用具有低精確度ADC的混合類比-數位處理器來執行矩陣運算的技術。更具體而言,依據一些實施例的一些加速器架構使用用於移動ADC的讀出窗口的技術。移動窗口允許ADC將轉換聚焦在訊號的一部分上,該部分可能具有最多有意義的資訊或至少具有某種有意義的資訊。利用這些技術,一些加速器架構被設計為用低精確度的定點二進制數表示來運算,因此與常規的高精確度浮點數表示相比顯著減少了電力消耗。
圖1-6A是繪圖一個此類技術的繪圖。該繪圖表示訊號分佈的示例,可以將該訊號分佈呈現為對ADC的輸入(參照標示為「輸入分佈」的曲線)。(在此示例中,分佈被表示為電壓的函數,但將分佈表示為其他量的函數也是可能的。)輸入分佈取決於需要處理的資料,且可以在資料與資料之間急劇變化。ADC的動態範圍(標示為「動態範圍」)指示ADC可以讀取的最大量值範圍。動態範圍
的一端是ADC可以讀取的最小訊號(例如電壓)。動態範圍的相對端是ADC可以讀取的最大訊號。在此詳細的示例中,輸入分佈僅在ADC的動態範圍的一小部分上延伸。然而,在其他的情況下,輸入資料可以使得訊號絕大部分延伸於動態範圍外。
本文中所述的技術允許調整輸入分佈以更緊密地匹配ADC的動態範圍。在一些實施例中,這可以藉由在將類比訊號提供為對ADC的輸入之前縮放(例如放大或衰減)類比訊號來完成。在一些實施例中,可以縮放類比訊號,使得訊號分佈從動態範圍的一端延伸到動態範圍的另一端。在一些實施例中,如圖1-6A中所繪示,可以縮放類比訊號,使得分佈的尾部的小部分位於動態範圍外。在圖1-6A的示例中,應用了放大,該放大將輸入分佈拉伸(標示為「放大的分佈」的生成的分佈)橫跨整個動態範圍,其中尾部的一部分位於動態範圍外。可以將不在動態範圍內的彼等輸入修剪到ADC範圍的最小值及最大值中。在圖1-6A中,這是用ADC範圍的端點處的「放大的分佈」中的垂直尖峰來繪示的。發明人已經認識到,雖然如圖1-6A中所示地截去分佈的一部分可能造成資訊的損失,但損失的資訊可能不像動態範圍內的資訊一樣有意義。
此概念繪示在圖1-6B中。考慮例如利用整數(或定點數)算術的矩陣-向量乘法,其中A是n x n矩陣。A的表項是用m1個位元表示的無符號數字,而b的表項是用m2個位元表示的無符號數字。輸出向量c的表項的全準確
度表示需要bc個位元,其中bc=log2(n)+m1+m2(參照位元串1)。然而,若用具有badc<bc個位元的ADC讀取此類計算的輸出,則在表示c的全動態範圍與更精確地表示較小的輸出值之間存在取捨。藉由示例的方式考慮n=16、m1=2、及m2=4,則全精確度會是bc=10。如圖式中進一步示出,被配置為讀出c的全動態範圍的4位元ADC將讀取輸出的最高的4位元(參照位元串2)。對於一些值分佈而言,在此範圍中可以存在有用的資訊。然而,最高位元一般有高的機率將不會被設定。其結果是,轉換不產生任何有意義的資訊。
在一些實施例中,可以藉由放大訊號來移動ADC讀出窗口。藉由用等於4的增益放大訊號來獲得位元串3,這將讀出窗口朝向最低位元移動2個位元。其結果是,有用的資訊開始出現在窗口內。生成的4位元輸出捕捉具有全精確度的輸出的大部分的有意義資訊。藉由用等於64的增益(其在此情況下恰好使ADC飽和)放大訊號來獲得位元串4,這進一步將讀出窗口朝向最低位元移動3個位元。飽和的結果指示,真實值大於在這些最低位元的進位制下可表示的最大資料值,且因此是此輸入位元串在此資料進位制上最準確的表示。
發明人已經理解以下事實:較低位元中的有用資訊可能受到輸入量化雜訊的限制。考慮以下示例:程式化正規化的矩陣A(具有0與1之間的值)的類比設備精確到m1位元且具有2-(m1+1)的水平下的編碼雜訊,及程式化b
的正規化的表項(具有0與1之間的值)的類比設備精確到m2位元且具有2-(m2+1)的水平下的編碼雜訊。對於n=16而言,m1=2且m2=4,全精確度會是bc=10。但是,考慮將A的最大值(所有值都等於1)程式化進來的情況,則第(log2n+m2+1)個位元可能是嘈雜的。類似地,在將b的最大值(所有值都等於1)程式化進來的情況下,則第(log2n+m1+1)個位元可能是嘈雜的。放大訊號以讀取此位元及較低位的位元可能產生嘈雜的結果。然而,可能藉由進行多次測量及求平均來恢復這些嘈雜位元的值。此編碼量化雜訊基本上提供了對於在遭遇到嘈雜的位元之前可以對訊號應用多少的放大率的限制。在一些實施例中,編碼量化雜訊不是唯一的雜訊來源。TIA及光學接收器(在光子處理器的情況下)的雜訊本底可能限制在讀出嘈雜位元之前的放大量。
一般而言,可能難以預測需要多少增益來最大化有意義資訊的收集。在一些實施例中,可以基於權重矩陣(例如矩陣A)的統計資料來決定增益。在一些實施例中,此決定可以進一步基於輸入向量資料(矩陣B)的統料資料或輸入向量資料的統料資料的邊界中的任一者。在一個示例中,可以將決定增益作為訓練程序的一部分。也就是說,增益是可以學習的參數。在其他的實施例中,可以在不使用機器學習技術的情況下學習增益參數。例如,可以決定特定的增益水平對於訓練資料而言是否足夠準確,且若否,則可以調整它直到它足夠準確為止。進一步地,可能
需要在訓練程序期間朝向下限值正則化(regularize)增益(例如藉由將正則化損失項添加到整體訓練損失函數來正則化),以減少在估算類比處理器中的計算時需要的能量的量,或允許類比處理器在較高的帶寬下運算同時保持放大器的增益-帶寬乘積。
在一些實施例中,對於神經網絡的每個層而言,增益設定可以不同。在一些此類實施例中,可能需要針對每個層學習增益設定,且在從一個層過渡到下一個層時,增益可以變化。在一些實施例中,在加速器接收到新的資料時,控制器可以將增益設定為用於訓練該新的資料的值。
依據一些實施例,基於上述技術的加速器的示例繪示在圖1-7A中。與加速器1-100類似,加速器1-700包括DAC單元1-102、類比處理器1-104、及ADC單元1-106。加速器1-700更包括類比縮放單元1-103(其安置在DAC單元1-102與類比處理器1-104之間)及類比縮放單元1-105(其安置在類比處理器1-104與ADC單元1-106之間)。圖1-7A的元件(及可選的其他元件)在本文中統稱為「電路系統」。
不像加速器1-100,加速器1-700被配置為在單個運算次中執行數學運算。因此,省略了數位累加器1-110。然而,如上文進一步詳細描述的,用於改善低精確度定點數表示的準確度的技術也可以與被佈置為執行多個運算次的加速器一起使用。詳細而言,可以在輸入資料
的不同精確度水平與在類比處理器中編碼的值之間執行多個運算次。
可以在沿著從DAC單元到ADC單元的資料路徑的任何地方執行與圖1-6A結合描述的縮放。可以將類比縮放單元1-103配置為在類比訊號被提供到類比處理器之前縮放(例如放大或衰減)該等類比訊號。可以將類比縮放單元1-105配置為在類比處理器1-104之後縮放類比訊號。類比縮放單元可以包括任何合適類型的可控制放大器或衰減器,包括電壓放大器、電流放大器、功率放大器、跨阻放大器、跨導放大器、電壓衰減器、電流衰減器、及功率衰減器等等。如下文進一步詳細描述的,在光子類比處理器中,類比縮放單元可以是上述的類比縮放單元、光學放大器、或可變增益雷射等等中的一者。在圖1-7B的示例中,類比縮放單元1-103包括複數個放大器或衰減器1-702。控制器1-120設定這些設備的增益。(取決於增益是否大於1或小於1,在本文中指稱增益來指示放大或衰減)。
圖1-8是依據一些實施例的流程圖,其繪示用於執行數學運算的方法的示例。在一些實施例中,加速器1-700(圖1-7A)可以執行方法1-800,然而也可以使用任何其他合適的加速器。應理解,可以用圖1-8中所描繪的順序或用任何其他合適的順序執行方法1-800的步驟。
在步驟1-801處,加速器1-700接收輸入資料集。回到圖1-2B,例如,加速器可以接收矩陣B的表項。
在步驟1-802處,加速器1-700基於在步驟1-801處所接收的輸入資料集來產生複數個輸入類比訊號。參照回圖1-7A,在一些實施例中,步驟1-804的產生涉及使用DAC單元1-102來將輸入資料集轉換成類比訊號。
在步驟1-804處,控制器1-120決定一或更多個縮放因子。如上所述,在一些實施例中,可以基於參數集及輸入資料集來決定縮放因子。例如,可以基於參數集的統料資料及輸入資料集的統料資料來決定縮放因子。或者,可以基於參數集的統料資料及關於輸入資料集的統料資料的假設來決定縮放因子。在一些實施例中,可以決定兩個縮放因子,一個用於類比縮放單元1-103而一個用於類比縮放單元1-105。
如上所述,可能存在最大化利用數字表示來執行的計算的準確度的最佳增益值。雖然最佳增益可能不是先驗已知的,但在一些實施例中,也可以將學習增益作為訓練程序的一部分。圖1-9A是繪圖,其繪示執行影像分類任務的神經網絡的準確度(用百分比表示)與增益的關係。如圖式中所示,存在最大化準確度的最佳增益,可以將其作為訓練程序的一部分來學習。在一些實施例中,可以在執行方法1-800之前計算最佳值,且可以將指示最佳增益的資訊儲存在記憶體或查找表中以在方法1-800期間擷取。
在步驟1-806處,控制器1-120基於在步驟1-806處決定的縮放因子來設定類比縮放單元1-103的增益及/或類比縮放單元1-105的增益。
在步驟1-808處,類比縮放單元1-103基於縮放因子來放大或衰減由DAC單元1-102所產生的輸入類比訊號。如上文所論述,這可以使得訊號分佈更緊密地匹配ADC的動態範圍。
在步驟1-810處,控制器1-120程式化類比處理器1-104。更具體而言,控制器1-120基於參數集(例如基於矩陣A的參數)來程式化類比處理器1-104。程式化類比處理器可以涉及基於參數來設定類比處理器的某些特性,如上文與圖1-2A及圖1-3結合描述的。
在步驟1-812處,類比處理器1-104基於該複數個輸入類比訊號及用以在步驟1-810處程式化類比處理器的參數集來產生複數個輸出類比訊號。在一些實施例中,這可以涉及執行矩陣乘法或卷積。與在圖1-3的示例中一樣,可以使用矩陣分解來執行運算。
在步驟1-814處,加速器1-700用在步驟1-806處決定的增益或衰減因子放大或衰減由DAC單元1-102所輸出的類比訊號。可以使用類比縮放單元1-105來執行放大或衰減。在一些實施例中,僅執行步驟1-808與1-814之間的一個。也就是說,僅在傳遞通過類比處理器1-104之前或之後放大或衰減訊號。在其他的實施例中,兩個步驟都執行。
在步驟1-816處,加速器1-700基於在步驟1-814處獲得的該複數個輸出類比訊號來產生輸出資料集。在一些實施例中,步驟1-816的產生涉及將輸出類比訊號傳遞通過ADC單元1-106。
發明人已經理解,在一些實施例中,在多層(例如多運算次)神經網絡模型中在層與層之間變化增益或衰減因子可能有益。事實上,發明人已經理解,低精確度定點數表示的誤差可能與層有關。圖1-9B描繪與低精確度定點數表示相關聯的均方差如何在神經網絡的三個不同的層上作為增益的函數而變化。相對於FP32表示來計算均方差。在此特定的示例中,將增益設定為2最小化第二層的均方差,將增益設定為4最小化第三層的均方差,而將增益設定為6最小化第四層的均方差。這主要是由於改變神經網絡模型的不同層處的資料分佈而發生。因此,在一些實施例中,增益可以在層與層之間變化。可以額外地在網絡的分配給處理器的任何合適的子部分之間變化增益,包括但不限於層內的矩陣分塊。
圖1-10的加速器將與圖1-2A的加速器結合描述的態樣跟與圖1-7A的加速器結合描述的態樣結合在一起。加速器1-1000包括DAC單元1-102、類比縮放單元1-103、類比處理器1-104、類比縮放單元1-105、ADC單元1-106、數位縮放單元1-108、數位累加單元1-110、及控制器1-120。加速器1-1000被配置為執行如與圖1-2A結合描述的藉由類比處理器1-104進行的多個運算
次,且也被配置為執行如與圖1-7A結合描述的放大或衰減。圖1-10的元件(及可選的其他元件)在本文中統稱為「電路系統」。
圖1-11是依據一些實施例的流程圖,其繪示用於執行數學運算的方法的示例。可以使用加速器1-1000(圖1-10)來執行方法1-1100,然而也可以使用任何其他合適的加速器。方法1-1100與方法1-300類似,然而其更包括方法1-800的步驟中的一些。
V.光學類比-數位矩陣處理器的示例
發明人已經開發了使用光訊號的特定類別的類比處理器。發明人已經理解,因為光訊號在光行進的介質中用光速行進,所以延遲遠小於電系統中的限制。此外,實際上沒有電力由於增加光訊號行進的距離而消耗,從而開闢了在使用電訊號的情況下會是不可行的新的拓撲結構及處理器佈局。因此,在一些實施例中,可以將光子處理器用作加速器的一部分。
可以將上述技術中的任一者應用於包括光子處理器的加速器。依據一些實施例,此類加速器的一個示例繪示在圖1-12中。加速器1-1200包括DAC單元1-102、一或更多個雷射器1-1250、光學編碼器1-1201、光學縮放單元1-1203、光子處理器1-1204、光學縮放單元1-1205、光學接收器1-1207、電子類比縮放單元1-105、ADC單元1-106、數位縮放單元1-108、數位累加單元1-110、及控制器1-120。雖然使用光學訊號,但
也可以將加速器1-1200配置為用與加速器1-100(圖1-2A)的方式類似的方式、用與加速器1-700(圖1-7A)的方式類似的方式、用與加速器1-1000(圖1-10)的方式類似的方式、或這些加速器的任何合適組合來運算。可以將光子處理器1-1204設計為執行與由類比處理器1-104(圖1-2A及圖1-7A)所執行的彼等數學運算類似的數學運算,但是是在光域中進行。下文進一步詳細描述光子處理器的示例。圖1-12的元件(無論是光學的或電子的)(及可選的其他元件)在本文中統稱為「電路系統」。
DAC單元1-102、電子類比縮放單元1-105、ADC單元1-106、數位縮放單元1-108、及數位累加單元1-110具有與與圖1-2A及圖1-7A結合描述的彼等特性類似的特性。
雷射器1-1250向光學編碼器1-1201提供參考光學訊號。在一些實施例中,控制器1-120可以控制雷射器的輸出功率。光學編碼器1-1201被配置為將從DAC單元1-102所接收的類比訊號轉換成要由光子處理器1-1204所處理的光學編碼的訊號。在一些實施例中,光學訊號將相關聯的位元串的值及符號表示為光學脈波的幅度及相位。在一些實施例中,可以將相位限制於零相移或π相移中的任一者的二進制選擇,從而分別表示正及負值。實施例不限於實數的輸入向量值。可以在對光學訊號進行編碼時藉由例如使用多於兩個的相位值來表示複數向量分量。
與類比縮放單元1-103(圖1-7A)類似,可以將光學縮放單元1-1203配置為縮放由光學編碼器1-1201所產生的光學輸入訊號以更緊密地匹配ADC的動態範圍。進一步地,可以將光學縮放單元1-1205配置為縮放處理器1-1204的光學輸出。與圖1-7A中一樣,可以將類比縮放單元1-105配置為縮放接收到的電輸出以更緊密地匹配ADC的動態範圍。在一些實施例中,利用跨阻放大器來實施類比縮放單元1-105。附加性或替代性地,可以基於雷射器的輸出功率來調整訊號分佈以更緊密地匹配ADC的動態範圍。實際上,可以將包括光學放大介質的雷射器用作放大器。應理解,雖然圖1-12的示例包括光學縮放單元1-1203、光學縮放單元1-1205、及電類比縮放單元1-105,但其他的實施例也可以僅包括這些單元的子集。在一些實施例中,加速器1-1200使用以下光學放大器的任何組合來產生複數個放大的輸出光學訊號:雷射器1-1250、光學縮放單元1-1203、及光學縮放單元1-1205,因為放大及衰減可以在沿著到ADC的路徑的任何地方執行。
光學接收器1-1207被配置為將光學訊號轉換成電訊號。例如,光學接收器1-1207可以包括複數個光電偵測器,例如pn接面光電偵測器、pin接面光電偵測器、雪崩光電偵測器、或光電晶體。在一些實施例中,光電偵測器包括鍺光電二極體。
與圖1-2A中一樣,可以將數位縮放單元1-108配置為縮放部分輸出資料集,且可以將數位累加單元1-110配置為累加縮放的部分輸出資料集。
可以用許多方式中的任一者實施光子處理器1-1204。如與類比處理器1-104結合描述,可以將光子處理器1-1204設計為基於矩陣分解來執行矩陣運算,下文提供其示例。可以使用不同的處理器架構來對權重矩陣進行編碼。在一些實施例中,這可以藉由可程式化光子設備來完成,例如光學調變器。光學調變器的示例是光學諧振調變器,包括環形及碟形調變器。另一個示例是Franz-Keldysh調變器。在一些實施例中,基於矩陣的參數來程式化光子處理器的步驟涉及設定可程式化光子設備的光學特性。例如,程式化光學諧振器的步驟可以涉及程式化諧振器的諧振頻率,而程式化Franz-Keldysh調變器的步驟可以涉及程式化調變器的吸收。
現在論述光子處理器的其他實施方式。
圖2-1繪示依據一些實施例的可以用來實施加速器1-1200的元件中的一些的光子處理系統2-100。光子處理系統2-100包括光學編碼器2-101、光子處理器2-103、光學接收器2-105、及控制器2-107。光學編碼器2-100充當光學編碼器1-1201(圖1-12),光子處理器2-103充當光子處理器1-1204,光學接收器2-105充當光學接收器1-1207,而控制器2-107充當控制器1-120。雖然未繪示在圖2-1中,但在一些實施例中,可以將光學類
比縮放單元安插在光學編碼器2-101與光子處理器2-103之間。附加性或替代性地,可以將光學類比縮放單元安插在光子處理器2-103與光學接收器2-105之間。
光子處理系統2-100例如從外部處理器(例如CPU)接收由輸入位元串的群組所表示的輸入向量及產生由輸出位元串的群組所表示的輸出向量。例如,若輸入向量是n維向量,則輸入向量可以由n個單獨的位元串所表示,每個位元串均表示向量的相應分量。可以將輸入位元串作為電訊號或光學訊號從外部處理器接收,而可以將輸出位元串作為電訊號或光學訊號向外部處理器傳送。在一些實施例中,控制器2-107不一定在每個工序迭代之後都輸出輸出位元串。反而,控制器2-107可以使用一或更多個輸出位元串來決定新的輸入位元串流以饋送通過光子處理系統2-100的元件。在一些實施例中,可以將輸出位元串本身用作輸入位元串以用於由光子處理系統2-100所實施的後續工序迭代。在其他的實施例中,用各種方式結合多個輸出位元串流以決定後續的輸入位元串。例如,可以作為後續輸入位元串的決定的一部分將一或更多個輸出位元串加總在一起。
光學編碼器2-101輸出向光子處理器2-103傳送的n個單獨的光學脈波。光學編碼器2-101的每個輸出均一對一地耦接到光子處理器2-103的單個輸入。在一些實施例中,可以將光學編碼器2-101設置在與光子處理器2-103相同的基板上(例如光學編碼器2-101及光子處理
器2-103位於相同的晶片上)。在此類實施例中,可以在波導器(例如矽光子波導器)中從光學編碼器2-101向光子處理器2-103傳送光學訊號。在其他的實施例中,可以將光學編碼器2-101設置在與光子處理器2-103分離的基板上。在此類實施例中,可以在光纖中從光學編碼器2-101向光子處理器2-103傳送光學訊號。
光子處理器2-103執行將輸入向量乘以矩陣M的乘法。如下文詳細描述的,可以使用奇異值分解(SVD)與單式矩陣分解的組合來將矩陣M分解成三個矩陣。在一些實施例中,利用與QR分解中的Givens旋轉類似的運算來執行單式矩陣分解。例如,可以使用SVD與Householder分解的組合。將矩陣M分解成三個組成部分的步驟可以由控制器2-107執行,而組成部分中的每一者可以由光子處理器2-103的一部分實施。在一些實施例中,該光子處理器2-103包括三個部分:第一可變分束器(VBS)陣列,被配置為對輸入光學脈波的陣列實施等同於第一矩陣乘法的變換(參照例如圖2-3的第一矩陣模組2-301);可控制光學構件的群組,被配置為調整從第一陣列所接收的光學脈波中的每一者的強度及/或相位,該調整等同於乘以對角矩陣的第二矩陣乘法(參照例如圖2-3的第二矩陣模組2-303);及第二VBS陣列,被配置為對從可控制電光構件群組所接收的光學脈波實施變換,該變換等同於第三矩陣乘法(參照例如圖3的第三矩陣模組2-305)。
光子處理器2-103輸出向光學接收器2-105傳送的n個單獨的光學脈波。光子處理器2-103的每個輸出均一對一地耦接到光學接收器2-105的單個輸入。在一些實施例中,可以將光子處理器2-103設置在與光學接收器2-105相同的基板上(例如光子處理器2-103及光學接收器2-105位於相同的晶片上)。在此類實施例中,可以在矽光子波導器中從光子處理器2-103向光學接收器2-105傳送光學訊號。在其他的實施例中,可以將光子處理器2-103設置在與光學接收器2-105分離的基板上。在此類實施例中,可以在光纖中從光子處理器2-103向光學接收器2-105傳送光學訊號。
光學接收器2-105從光子處理器2-103接收n個光學脈波。接著將光學脈波中的每一者轉換成電訊號。在一些實施例中,藉由光學接收器內的光學偵測器來測量光學脈波中的每一者的強度及相位。接著向控制器2-107輸出表示彼等測量到的值的電訊號。
控制器2-107包括記憶體2-109及處理器2-111以供控制光學編碼器2-101、光子處理器2-103、及光學接收器2-105。可以使用記憶體2-109來儲存輸入位元串及輸出位元串及來自光學接收器2-105的測量結果。記憶體2-109也儲存可執行指令,該等可執行指令在由處理器2-111執行時,控制光學編碼器2-101、執行矩陣分解演算法、控制光子處理器2-103的VBS、及控制光學接收器2-105。記憶體2-109也可以包括可執行指令,該等可執
行指令使得處理器2-111基於由光學接收器2-105執行的測量所決定的一或更多個輸出向量的集合來決定新的輸入向量以向光學編碼器發送。如此,控制器2-107可以藉由以下步驟來控制藉以將輸入向量乘以多個矩陣的迭代工序:調整光子處理器2-103的設定,及將偵測資訊從光學接收器2-105饋送回光學編碼器2-101。因此,由光子處理系統2-100向外部處理器所傳送的輸出向量可以是多次矩陣乘法的結果,而不僅僅是單次矩陣乘法的結果。
在一些實施例中,矩陣可能太大而不能使用單個運算次來在光子處理器中編碼。在此類情況下,可以在光子處理器中對大型矩陣的一個部分進行編碼,且可以針對大型矩陣的該單個部分執行乘法工序。可以將該第一次運算的結果儲存在記憶體2-109中。隨後,可以在光子處理器中對大型矩陣的第二部分進行編碼,且可以執行第二乘法工序。大型矩陣的此種「組塊化」可以繼續直到已經對大型矩的所有部分執行了乘法工序為止。可以接著結合可以儲存在記憶體2-109中的多個乘法工序的結果,以形成將輸入向量乘以大型矩陣的乘法的最終結果。
在其他的實施例中,只有輸出向量的集合行為被外部處理器使用。在此類實施例中,只有集合結果(例如多個輸出向量的平均值或最大值/最小值)被傳送到外部處理器。
A.光學編碼器
參照圖2-2,依據一些實施例,光學編碼器包括至少一個光源2-201、功率樹2-203、幅度調變器2-205、相位調變器2-207、與幅度調變器2-205相關聯的數位轉類比轉換器(DAC)2-209、及與相位調變器2-207相關聯的DAC 2-211。DAC 2-209及2-211可以是DAC單元1-102(圖1-12)的一部分。雖然幅度調變器2-205及相位調變器2-207在圖2-2中繪示為具有n個輸入及n個輸出的單個模塊(輸入及輸出中的每一者均是例如波導器),但在一些實施例中,每個波導器也可以包括相應的幅度調變器及相應的相位調變器,使得光學編碼器包括n個幅度調變器及n個相位調變器。並且,每個幅度調變器及相位調變器均可以有個別的DAC。在一些實施例中,可以使用單個調變器來對幅度資訊及相位資訊進行編碼,而不是具有與每個波導器相關聯的幅度調變器及單獨的相位調變器。雖然使用單個調變器來執行此類編碼限制了精確地調整每個光學脈波的幅度及相位的能力,但存在不需要精確調整光學脈波的幅度及相位的一些編碼方案。下文將描述此類方案。
光源2-201可以是任何合適的相干光源。在一些實施例中,光源2-201可以是二極體雷射器或垂直空腔表面發射雷射器(VCSEL)。在一些實施例中,光源2-201被配置為具有大於10mW、大於25mW、大於50mW、或大於75mW的輸出功率。在一些實施例中,光源2-201被配置為具有小於100mW的輸出功率。可以將光源
2-201配置為用一或更多個波長(例如C帶或O帶)發射連續的光波或光脈波(「光學脈波」)。光學脈波的持續時間可以是例如約100ps。
雖然光源2-201在圖2-2中繪示為位於與光學編碼器的其他元件相同的半導體基板上,但實施例不限於此。例如,光源2-201可以是邊緣黏合或表面黏合到光學編碼器晶片的單獨雷射封裝。或者,光源2-201可以完全在晶片外,且可以經由光纖及/或光柵耦合器將光學脈波耦合到光學編碼器2-101的波導器2-202。
光源2-201被繪示為兩個光源2-201a及2-201b,但實施例不限於此。一些實施例可以包括單個光源。萬一光源中的一者故障,包括多個光源2-201a-b(其可以包括多於兩個的光源)可以提供冗餘。包括多個光源可以延長光子處理系統2-100的使用壽命。多個光源2-201a-b可以各自耦合到光學編碼器2-101的波導器,然後在波導結合器處結合,該波導結合器被配置為從每個光源向功率樹2-203引導光學脈波。在此類實施例中,在任何給定的時間只使用一個光源。
一些實施例可以同時使用相同波長的二或更多個鎖相光源以增加進入光學編碼器系統的光功率。可以向零差偵測器引導來自該二或更多個光源(例如經由波導器分接頭獲取)中的每一者的光的一小部分,在該零差偵測器處,可以測量搏動誤差訊號。可以使用搏動誤差訊號來決定兩個光源之間的可能的相位漂移。可以例如將搏動誤差
訊號饋送到控制相位調變器的反饋電路中,該相位調變器將一個光源的輸出與其他光源的相位鎖相。可以用主從方案來概括鎖相,其中N 1個從光源被鎖相到單個主光源。結果是總供N+1個鎖相的光源可用於光學編碼器系統。
在其他的實施例中,每個單獨的光源均可以與不同波長的光相關聯。使用多個光波長允許對一些實施例進行多路複用,使得可以使用相同的光學硬體來同時執行多個計算。
功率樹2-203被配置為將來自光源2-201的單個光學脈波分成空間分離的光學脈波的陣列。因此,功率樹2-203具有一個光學輸入及n個光學輸出。在一些實施例中,來自光源2-201的光功率跨與n個波導器相關聯的n個光學模式均勻分配。在一些實施例中,功率樹2-203是50:50的分束器2-801的陣列,如圖2-8中所繪示。功率樹2-203的數量「深度」取決於輸出處的波導器的數量。對於具有n個輸出模式的功率樹而言,功率樹2-203的深度是ceil(log 2 (n))。圖2-8的功率樹2-203僅繪示三的樹深度(跨功率樹2-203的底部標示了樹的每個層)。每個層均包括2 m-1 個分束器,其中m是層數。從而,第一層具有單個分束器2-801a,第二層具有兩個分束器2-801b-2-801c,而第三層具有四個分束器2-801d-2-801g。
雖然功率樹2-203被繪示為級聯的分束器的陣列,其可以被實施為漸消波導耦合器,但實施例不限於此,因為也可以使用將一個光學脈波轉換成複數個空間分離的
光學脈波的任何光學設備。例如,可以使用一或更多個多模干涉儀(MMI)來實施功率樹2-203,在該情況下,會適當修改控制層的寬度及深度的等式。
無論使用什麼類型的功率樹2-203,即使不是不可能,也很可能,製造功率樹2-203使得分配比率在n個輸出模式之間精確地均勻將是困難的。因此,可以對幅度調變器的設定進行調整以校正由功率樹所輸出的n個光學脈波的不相等的強度。例如,可以將具有最低光功率的波導器針對向光子處理器2-103傳送的任何給定的脈波設定為最大功率。因此,除了對幅度進行調變以將資訊編碼到光學脈波中以外,還可以藉由幅度調變器2-205將具有高於最大功率的功率的任何光學脈波調變為具有較低的功率。也可以將相位調變器安置在n個輸出模式中的每一者處,這可以用來調整功率樹2-203的每個輸出模式的相位,使得所有輸出訊號都具有相同的相位。
替代性或附加性地,可以使用一或更多個Mach-Zehnder干涉儀(MZI)來實施功率樹2-203,可以將該等干涉儀調整為使得功率樹中的每個分束器的分配比率在功率樹2-203的輸出處均造成實質相等的強度脈波。
幅度調變器2-205被配置為基於相應的輸入位元串來修改從功率樹2-203所接收的每個光學脈波的幅度。幅度調變器2-205可以是由DAC 2-209所控制的可變衰減器或任何其他合適的幅度調變器,該DAC可以進一步由
控制器2-107所控制。一些幅度調變器對於電信應用而言是已知的,且可以用在一些實施例中。在一些實施例中,可以將可變分束器用作幅度調變器2-205,其中僅保留可變分束器的一個輸出且丟棄或忽略其他輸出。可以用在一些實施例中的幅度調變器的其他示例包括行進波調變器、基於空腔的調變器、Franz-Keldysh調變器、基於電漿子的調變器、基於2-D材料的調變器、及奈米光電機開關(NOEMS)。
相位調變器2-207被配置為基於相應的輸入位元串來修改從功率樹2-203所接收的每個光學脈波的相位。相位調變器可以是可以由2-211電控制的熱光相移器或任何其他合適的相移器,2-211可以進一步由控制器2-107所控制。
雖然圖2-2將幅度調變器2-205及相位調變器2-207繪示為兩個單獨的元件,但也可以將它們結合成控制光學脈波的幅度及相位的單個構件。然而,單獨控制光學脈波的幅度及相位是有優點的。即,由於幅度移動及相移之間經由Kramers-Kronenig關係的連接,存在若與任何幅度移動相關聯的相移。為了精確地控制光學脈波的相位,應使用相位調變器2-207來補償由幅度調變器2-205所產生的相移。舉例來說,離開光學編碼器2-101的光學脈波的總幅度是A=a 0 a 1 a 2,而離開光學編碼器的光學脈波的總相位是θ=△θ+△φ+φ,其中a 0 是輸入光學脈波的輸入強度(假設調變器的輸入處的相位為零),a 1是幅度調變器
2-205的幅度衰減,△θ是在調變幅度的同時由幅度調變器2-205所賦予的相移,△φ是由相位調變器2-207所賦予的相移,a 2 是與傳遞通過相位調變器2-209的光學脈波相關聯的衰減,而φ是由於光訊號的傳播而在光學訊號上賦予的相位。因此,設定光學脈波的幅度及相位不是兩個獨立的決定。而是,為了準確地將特定的幅度及相位編碼到從光學編碼器2-101輸出的光學脈波中,幅度調變器2-205及相位調變器2-207的設定都應針對這兩個設定而被考慮。
在一些實施例中,光學脈波的幅度與位元串值直接相關。例如,高幅度脈波與高位元串值對應,而低幅度脈波與低位元串值對應。光學脈波的相位對位元串值是否為正或負進行編碼。在一些實施例中,由光學編碼器2-101所輸出的光學脈波的相位可以選自隔開180度(π弧度)的兩個相位。例如,可以用零度相移對正位元串值進行編碼,且可以用180度(π弧度)相移對負位元串值進行編碼。在一些實施例中,向量旨在是複數值,且因此光學脈波的相位是從0與2π之間的多於僅兩個的值選擇的。
在一些實施例中,控制器2-107基於輸入位元串及上述等式來決定要由幅度調變器2-205及相位調變器2-207所施加的幅度及相位,該等等式將輸出幅度及輸出相位與由幅度調變器2-204及相位調變器2-207所賦予的幅度及相位聯結。在一些實施例中,控制器2-107可以將數位值的表格儲存在記憶體2-109中以供驅動幅度調變器
2-205及相位調變器2-207。在一些實施例中,可以將記憶體緊鄰調變器安置以減少通訊時間延遲及電力消耗。
與幅度調變器2-205相關聯且通訊耦接到該幅度調變器的DAC 2-209從控制器2-107接收數位驅動值,及將數位驅動值轉換成驅動幅度調變器2-205的類比電壓。類似地,與相位調變器2-207相關聯且通訊耦接到該相位調變器的DAC 2-211從控制器2-107接收數位驅動值,及將數位驅動值轉換成驅動相位調變器2-207的類比電壓。在一些實施例中,DAC可以包括放大器,該放大器將類比電壓放大到足夠高的水平以實現幅度調變器內所需的消光比(例如物理上可能使用特定的相位調變器來實施的最高消光比)及相位調變器內所需的相移範圍(例如涵蓋0與2π之間的全範圍的相移範圍)。雖然DAC 2-209及DAC 2-211在圖2-2中繪示為位於光學編碼器2-101的晶片中及/或上,但在一些實施例中DAC 2-209及2-211也可以位於晶片外,同時仍然利用導電跡線及/或電線分別通訊耦接到幅度調變器2-205及相位調變器2-207。
在由幅度調變器2-205及相位調變器2-207進行調變之後,從光學編碼器2-101向光子處理器2-103傳送n個光學脈波。
B.光子處理器
參照圖2-3,光子處理器2-103對由n個輸入光學脈波所表示的輸入向量實施矩陣乘法且包括三個主要元件:第一矩陣模組2-301、第二矩陣模組2-303、及第三
矩陣模組2-305。在一些實施例中,如下文更詳細論述的,第一矩陣模組2-301及第三矩陣模組2-305包括可程式化、可重新配置、可變的分束器(VBS)的互連陣列,該陣列被配置為將來自輸入向量的n個輸入光學脈波變換成輸出向量,向量的分量由光學脈波中的每一者的幅度及相位所表示。在一些實施例中,第二矩陣模組2-303包括電光構件的群組。
輸入向量藉由將輸入光學脈波傳遞通過光子處理器2-103所相乘的矩陣稱為A。矩陣A是控制器2-107已知作為應由光子處理器2-103所實施的矩陣的通用m x n。如此,控制器2-107使用奇異值分解(SVD)來分解矩陣A,使得矩陣A由三個組成矩陣所表示:A=V T ΣU,其中U及V分別是實數正交的n x n及m x m矩陣(U T U=UU T =I及V T V=VV T =I),且Σ是具有實數表項的m x n對角矩陣。所有等式中的上標「T」表示相關聯矩陣的轉置。決定矩陣的SVD的步驟是已知的,且控制器2-107可以使用任何合適的技術來決定矩陣A的SVD。在一些實施例中,矩陣A是複數矩陣,在該情況下,可以將矩陣A分解成A=V T ΣU,其中V及U分別是複數單式的n×n及m×m矩陣(U † U=UU †=I及V † V=VV †=I),而Σ是具有實數或複數表項的m×n對角矩陣。也可以進一步正規化對角奇異值的值,使得奇異值的最大絕對值為1。
一旦控制器2-107已經針對矩陣A決定了矩陣U、Σ、及V,在矩陣U及V是正交的實數矩陣的情況下,控
制就可以進一步將兩個正交的矩陣U及V分解成一系列實數值的Givens旋轉矩陣。Givens旋轉矩陣G(i,j,θ)由以下等式用分量方式界定:g kk =1,對於k≠i,j
g kk =cos(θ),對於k=i,j
g ij =-g ji =-sin(θ),g kl =0其他情況,其中gij表示矩陣G的第i個列及第j個行中的元素,而θ是與矩陣相關聯的旋轉角度。一般而言,矩陣G是具有行列式1(SU(2)群組)的任意2×2單式矩陣,且由兩個參數所參數化。在一些實施例中,這兩個參數是旋轉角θ及另一個相位值。儘管如此,矩陣G也可以由角度及相位以外的其他值所參數化,例如由反射率/透射率或由分隔距離所參數化(在NOEMS的情況下)。
用於依據複數空間中的Givens旋轉的集合的乘積來表示任意實數正交矩陣的演算法提供在Physical Review Letter期刊第73卷第58頁(1994年出版)中M.Reck等人所著的「Experimental realization of any discrete unitary operator」(「Reck」)中及Optica期刊第3卷第12頁(2016年出版)中W.R.Clements等人所著的「Optimal design for universal multiport interferometers」(「Clements」)中,這兩個文獻的整體內容及至少它們對於用於依據Givens旋轉來分解實數正交矩陣的技術
的論述以引用方式併入本文中。(若本文中所使用的任何術語與Reck及/或Clements中的該術語的使用衝突,則應將與通常技術人員在本文中會如何瞭解其使用最一致的意義提供給該術語。)生成的分解由以下等式所給定:
其中U是n x n的正交矩陣,S k 是與所應用的(由分解演算法所界定的)Givens旋轉的第k個集合相關的指數的集合,θ ij (k)表示Givens旋轉的第k個集合中的分量i與j之間針對Givens旋轉所應用的角度,而D是表示每個分量上的全域符號的+1或-1表項中的任一者的對角矩陣。指數集合S k 取決於n是否是偶數或奇數。例如,在n是偶數時:S k ={(1,2),(3,4),...,(n-1,n)}對於奇數的k
S k ={(2,3),(4,5),...,(n-2,n-1)}對於偶數的k
在n為奇數時:S k ={(1,2),(3,4),...,(n-2,n-1)}對於奇數的k
S k ={(2,3),(4,5),...,(n-1,n)}對於偶數的k
上述演算法的生成的矩陣U’是下三角矩陣且藉由以下等式與原始矩陣U相關:
其中標示S L 標示由VBS連接到U’的左側的兩個模式的集合,而標示S R 標示由VBS連接到U’的右側的兩個模式的集合。因為U是正交矩陣,所以U’是沿著對角線具有{-1,1}表項的對角矩陣。此矩陣(U'=D U )稱為「相位屏蔽」。
上述演算法也可以用來分解V及/或V T 以決定VBS值的m個層及相關聯的相位屏蔽。
可以將上述將正交矩陣分解成實數值Givens旋轉矩陣的概念擴展到複數矩陣,例如單式矩陣而不是正交矩陣。在一些實施例中,這可以藉由將附加相位包括在Givens旋轉矩陣的參數化中來完成。因此,在添加了附加的相位項的情況下的Givens矩陣的一般形式為T(i,j,θ,),其中t kk =1對於k≠i,j,t ii =e i cos(θ),t jj =cos(θ),t ij =-sin(θ),t ji =e i sin(θ),t kl =0其他情況,其中t ij 表示矩陣T的第i個列及第j個行,θ是與矩陣相關聯的旋轉角度,而是附加的相位。可以將任何單式矩陣分解成類型T(i,j,θ,)的矩陣。藉由作出選擇以設定相位=0,獲得了上述的常規實數值Givens旋轉矩陣。相反地,若相位=π,則獲得稱為Householder矩陣的矩陣集合。Householder矩陣(H)具有形式H=I-(v v),其中I是n×n單位矩陣,v是單位向量,而是外積。Householder矩陣表示關於與單位向量v正交的超平面的映射。在此參數化中,超平面是二維子空間,而不是在針對QR分解界定Householder矩陣時常見的n-1維子空間。因此,將矩陣分解成Givens旋轉等同於將矩陣分解成Householder矩陣。
基於上述將任意單式矩陣分解成限制的Givens旋轉集合的步驟,任何單式矩陣均可以由特定的旋轉及相移序列所實施。並且在光子學中,旋轉可以由可變分束器(VBS)所表示,且容易使用相位調變器來實施相移。因此,對於光子處理器2-103的n個光學輸入而言,表示矩陣A的SVD的單式矩陣的第一矩陣模組2-301及第三矩陣模組2-305可以藉由VBS及相移器的互連陣列來實施。因為同時將n個光學脈波傳遞通過VBS陣列的並行本質,可以用O(IJK/n2)的時間執行維度(I,K)x(K,J)的矩陣乘法。第二矩陣模組2-303是矩陣A的SVD的對角矩陣,其與跟SVD的正交矩陣中的每一者相關聯的對角矩陣D結合。如上所述,每個矩陣D均稱為「相位屏蔽」,且可以標示有下標以指示其是否為與矩陣U或矩陣V相關聯的相位屏蔽。因此,第二矩陣模組303是矩陣Σ'=D V ΣD U 。將這些相位屏蔽因子分解出矩陣U及矩陣V,我們獲得了圖2-3中的矩陣U及V。
在一些實施例中,光子處理器2-103的與第一矩陣模組2-301及第三矩陣模組2-305相關聯的VBS單元胞可以是具有內部相移器的Mach-Zehnder干涉儀(MZI)。在其他的實施例中,VBS單元胞可以是微電機系統(MEMS)致動器。在一些實施例中,可以使用外部相移器以實施Givens旋轉所需的附加相位。
可以使用幅度調變器及相移器來實施表示對角矩陣D V ΣD U 的第二矩陣模組2-303。在一些實施例中,可以使
用VBS來分離出光的一部分,可以轉儲該部分以可變地衰減光學脈波。附加性或替代性地,可以使用可控制的增益介質來放大光學訊號。例如,可以將GaAs、InGaAs、GaN、或InP用作主動增益介質以供放大光學訊號。也可以使用其他的主動增益工序,例如晶體反轉對稱的材料(例如KTP及鈮酸鋰)中的二次諧波產生,及缺乏反轉對稱性的材料(例如矽)中的四波混合工序。取決於所實施的相位屏蔽,每個光學模式下的相移器均可以用來應用零或π相移中的任一者。在一些實施例中,僅每個光學模式使用單個相移器,而不是每個相位屏蔽使用一個相移器。這是可能的,因為矩陣D V 、Σ、及D U 中的每一者均是對角的且因此是對易的(commute)。因此,光子處理器2-103的第二矩陣模組2-303的每個相移器的值均是兩個相位屏蔽的乘積的結果:D V D U 。
參照圖2-4,依據一些實施例,第一矩陣模組2-301及第三矩陣模組2-305被實施為VBS 2-401的陣列。為了簡單起見,僅繪示n=6(列數)的輸入光學脈波,從而造成「電路深度」(例如行數)等於輸入光學脈波的數量(例如六)。為了明確起見,只有單個VBS 2-401標有參考標號。然而,VBS標有下標及上標,該等下標識別哪些光學模式被特定的VBS混合,該上標標示相關聯的行。每個VBS 2-401均實施如上文所論述的複數Givens旋轉(T(i,j,θ,)),其中i及j等同於VBS 2-401的下標
標示,θ是Givens旋轉的旋轉角,而是與概括的旋轉相關聯的附加相位。
參照圖2-5,每個VBS 2-401均可以使用MZI 2-510及至少一個外部相移器2-507來實施。在一些實施例中,也可以包括第二外部相移器2-509。MZI 2-510包括第一漸消耦合器2-501及第二漸消耦合器2-503以供混合MZI 2-510的兩個輸入模式。內部相移器2-505調變MZI 2-510的一個支路中的相位θ以在兩個支路之間產生相位差。調整相位θ使得由VBS 2-401所輸出的光的強度從MZI 2-510的一種輸出模式變化到另一種輸出模式,藉此產生可控制及可變的分束器。在一些實施例中,可以在第二支路上應用第二內部相移器。在此情況下,正是兩個內部相移器之間的差異造成輸出光強度變化。兩個內部相位之間的平均值將把全域相位賦予給進入模式i及模式j的光。因此,兩個參數θ及可以各自由相移器所控制。在一些實施例中,可以使用第二外部相移器2-509來校正由靜態相位錯亂引起的跨VBS的輸出模式的不需要的差分相位。
在一些實施例中,相移器2-505、2-507、及2-509可以包括熱光相位調變器、電光相位調變器、或光機相位調變器。在其他的實施例中,可以使用NOEMS調變器,而不是將內部相位調變器505包括在MZI 510內。
在一些實施例中,VBS的數量隨著矩陣的尺寸而增長。發明人已經理解,控制大量的VBS可能是有挑戰性
的,且在多個VBS之中共用單個控制電路有益處。可以用來控制多個VBS的並行控制電路的示例是數位轉類比轉換器,該數位轉類比轉換器接收數位字串作為輸入,該數位字串對要在特定VBS上賦予的類比訊號進行編碼。在一些實施例中,電路也接收要控制的VBS的位址作為第二輸入。電路可以接著在定址的VBS上賦予類比訊號。在其他的實施例中,控制電路可以自動掃描多個VBS,及在不被主動給予位址的情況下在多個VBS上賦予類比訊號。在此情況下,定址序列被預先界定,使其用已知的順序遍歷VBS陣列。
參照圖2-6,第二矩陣模組2-303實施乘以對角矩陣的乘法Σ'=D V ΣD U 。這可以使用用來實施兩個相位屏蔽的兩個相移器2-601及2-605及用來調整相關聯的光學脈波的強度達量η的幅度調變器2-603來完成。如上所述,在一些實施例中,可以僅使用單個相位調變器2-601,這是因為由於形成Σ'的三個組成矩陣是對角的且因此是對易的,所以可以將兩個相位屏蔽結合在一起。
在一些實施例中,可以使用衰減器及/或放大器來實施幅度調變器2-603。若幅度調變η的值大於一,則光學脈波被放大。若幅度調變η的值小於一,則光學脈波被衰減。在一些實施例中,僅使用衰減。在一些實施例中,可以由一行集成的衰減器實施衰減。在其他的實施例中,如圖2-7中所繪示,可以使用MZI來實施衰減2-603,該MZI包括兩個漸消耦合器2-701及2-703以及可控制的內
部相移器2-705,以調整從MZI的輸入向MZI的第一輸出端口2-709透射多少輸入光。可以省略、阻斷、或轉儲MZI的第二輸出端口2-707。
在一些實施例中,控制器2-107控制光子處理器2-103中的每個相移器的值。上文所論述的每個相移器均可以包括與跟光學編碼器2-101的相位調變器2-207結合論述的DAC類似的DAC。
光子處理器2-103可以包括任何數量的輸入模式,但互連VBS陣列2-301及2-305的尺寸及複雜度將隨著輸入模式的數量增加增加。例如,若有n個輸入光學模式,則光子處理器2-103將具有2n+1的電路深度,其中第一矩陣模組2-301及第三矩陣模組2-305各自具有電路深度n而第二矩陣模組2-303的電路深度為一。重要的是,執行單次矩陣乘法的時間的複雜度與輸入資料的行的數量成線性關係。若所處理的矩陣乘法的維度為(I,K)x(K x J),則在具有n模式的光學處理器上執行此乘法的時間複雜度為O(IKJ/n2)。在一些實施例中,由並行化所提供的此種低階複雜度造成了不能使用常規的電處理器來獲得的能量及時間效率。
注意,雖然本文中所述的實施例將光子處理器2-103說明為具有n個輸入及n個輸出,但在一些實施例中,由光子處理器2-103所實施的矩陣A也可以不是方形矩陣。在此類實施例中,光子處理器2-103可以具有不同數量的輸出及輸入。
也注意,由於第一矩陣模組2-301及第三矩陣模組2-305內的VBS的互連結構的拓撲,可以將光子處理器2-103細分成不交互作用的列子集,使得可以同時執行多於一次的矩陣乘法。例如,在圖2-4中所繪示的VBS陣列中,若耦合光學模式3及4的每個VBS 2-401均被設定為使得光學模式3及4根本不耦合(例如好像具有下標「34」的VBS 2-401不存在於圖2-4),則上側的三個光學模式會完全獨立於下側的三個光學模式而操作。可以利用具有較大數量的輸入光學模式的光子處理器用大得多的規模進行此類細分。例如,n=64的光子處理器可以同時將八個八分量輸入向量乘以相應的8 x 8矩陣(8 x 8矩陣中的每一者均單獨地可程式化及可控制)。並且,不需要均勻地細分光子處理器2-103。例如,n=64的光子處理器可以細分成分別具有20、13、11、8、6、4、及2個分量的七個不同的輸入向量,每個輸入向量均同時乘以相應的矩陣。應瞭解,上述的數值示例僅用於說明,且任何數量的細分是可能的。
此外,雖然光子處理器2-103執行矩陣-向量乘法,其中藉由將光學訊號傳遞通過VBS陣列來將向量乘以矩陣,但光子處理器2-103也可以用來執行矩陣-矩陣乘法。例如,可以一個接一個地、一次一個輸入向量地將多個輸入向量傳遞通過光子處理器2-103,其中每個輸入向量均表示輸入矩陣的一個行。在光學地計算個別的矩陣-向量乘法中的每一者之後(每個乘法均造成與生成矩陣的一
行輸出行對應的輸出向量),可以數位地結合結果以形成由矩陣-矩陣乘法所造成的輸出矩陣。
C.光學接收器
光子處理器2-103輸出向光學接收器2-105傳送的n個光學脈波。光學接收器2-105接收光學脈波及基於所接收的光學訊號來產生電訊號。在一些實施例中,每個光學脈波的幅度及相位均被決定。在一些實施例中,這是使用零差或外差偵測方案來實現的。在其他的實施例中,可以使用常規的光電二極體來執行簡單的相位不敏感光電偵測。
參照圖2-9,依據一些實施例,光學接收器2-105包括零差偵測器2-901、跨阻放大器2-903、及ADC 2-905。跨阻放大器2-903可以充當電子類比縮放單元1-105(圖1-12),而ADC 2-905可以是ADC單元1-106的一部分。雖然在圖2-9中將元件示為用於所有光學模式的一個構件,但這是為了簡單起見。每個光學模式均可以具有專用的零差偵測器2-901、專用的跨阻放大器2-903、及專用的ADC 2-905。在一些實施例中,可以不使用跨阻放大器2-903。而是,可以使用將電流轉換成電壓的任何其他合適的電子電路。
參照圖2-10,依據一些實施例,零差偵測器2-903包括本端振盪器(LO)2-1001、九十度相位差(quadrature)控制器2-1003、分束器2-1005、及兩個偵測器2-1007及2-1009。零差偵測器2-903輸出電
流,該電流基於由第一偵測器2-1007與第二偵測器2-1009所輸出的電流之間的差異。
本端振盪器2-1001在分束器2-1005處與輸入光學脈波結合。在一些實施例中,經由光學波導器及/或光纖向零差偵測器2-901透射光源2-201的一部分。來自光源2-201的光本身可以用作本端振盪器2-1001,或在其他的實施例中,本端振盪器2-1001可以是使用來自光源2-201的光來產生相位匹配的光學脈波的單獨光源。在一些實施例中,MZI可以替換分束器2-1005,使得可以在訊號與本端振盪器之間作出調整。
九十度相位差控制器2-1003控制相位空間中的橫截面角度,測量是在該相位空間中進行的。在一些實施例中,九十度相位差控制器2-1003可以是相移器,該相移器控制輸入光學脈波與本端振盪器之間的相對相位。九十度相位差控制器2-1003被示為輸入光學模式下的相移器。但在一些實施例中,九十度相位差控制器2-1003可以處於本端振盪器模式。
第一偵測器2-1007偵測由分束器2-1005的第一輸出所輸出的光,而第二偵測器2-1009偵測由分束器2-1005的第二輸出所輸出的光。偵測器2-1007及2-1009可以是用零偏壓操作的光電二極體。
減法電路2-1011將來自第一偵測器2-1007的電流從來自第二偵測器2-1009的電流減去。生成的電流因此具有幅度及符號(正或負)。跨阻放大器2-903將電流
的此差異轉換成電壓,其可以是正或負的。最後,ADC 2-905將類比訊號轉換成數位位元串。此輸出位元串表示矩陣乘法的輸出向量結果,且是由光子處理器2-103所輸出的輸出向量的電氣、數位版本的光學輸出表示。在一些實施例中,可以向控制器2-107發送輸出位元串以供進行額外處理,如上所述,該額外處理可以包括以下步驟:基於一或更多個輸出位元串來決定下一個輸入位元串,及/或向外部處理器傳送輸出位元串。
發明人已經進一步理解,上述光子處理系統2-100的元件不需要背對背地鏈接在一起使得第一矩陣模組2-301連接到第二矩陣模組2-303,該第二矩陣模組連接到第三矩陣模組2-305。在一些實施例中,光子處理系統2-103可以僅包括單個單式電路以供執行一或更多個乘法。可以將單個單式電路的輸出直接連接到光學接收器2-105,其中藉由偵測輸出光學訊號來決定乘法的結果。在此類實施例中,單個單式電路可以例如實施第一矩陣模組2-301。可以接著將由光學接收器2-105所偵測到的結果數位地傳送到常規的處理器(例如處理器2-111),其中使用常規的處理器(例如2-111)來在數位域中執行對角的第二矩陣模組2-303。控制器2-107可以接著重新程式化單個單式電路以:執行第三矩陣模組2-305;基於第二矩陣模組的數位實施的結果來決定輸入位元串;及控制光學編碼器以將光學訊號(基於新的輸入位元串來編碼)用重新程式化的設定傳送通過單個單式電路。接著使用由
光學接收器2-105所偵測到的生成的輸出光學訊號以決定矩陣乘法的結果。
發明人也已經理解,將多個光子處理器2-103背對背地串聯鏈接可能有優點。例如,為了實施矩陣乘法M=M 1 M 2(其中M 1及M 2是任意矩陣,但基於改變的輸入工作負載,M 2比M 1更頻繁地改變),可以控制第一光子處理器以實施M 2,且光學耦合到第一光子處理器的第二光子處理器可以實施保持靜態的M 1。如此,僅需要基於改變的輸入工作負載來頻繁更新第一光子處理系統。此類佈置不僅加速了計算,也減少了在控制器2-107與光子處理器之間行進的資料位元數量。
D.折疊式光子處理系統
在圖2-1中,在此類佈置中,光學編碼器2-101及光學接收器2-105定位在光子處理系統2-100的相對側。在使用來自光學接收器2-105的反饋來針對工序的未來迭代決定光學編碼器2-101的輸入的應用中,將資料從光學接收器2-105向控制器2-107電子地傳輸然後向光學編碼器2-101電子地傳輸。發明人已經理解,減少這些電訊號所需要行進的距離(例如藉由減少電跡線及/或電線的長度來減少)造成了功率節省及較低的延遲。並且,不需要將光學編碼器2-101及光學接收器2-105安置在光子處理系統的相對端上。
因此,在一些實施例中,光學編碼器2-101及光學接收器2-105定位在彼此附近(例如定位在光子處理器
2-103的相同側),使得電訊號在光學編碼器2-101與光學接收器2-105之間所需要行進的距離小於光子處理器2-103的寬度。這可以藉由以下步驟來完成:使第一矩陣模組2-301及第三矩陣模組2-305的元件實體交錯,使得它們在實體上位在晶片的相同部分中。此佈置稱為「折疊式」光子處理系統,因為光首先在第一方向上傳播通過第一矩陣模組2-301直到其達到晶片的遠離光學編碼器2-101及光學接收器2-105的實體部分為止,然後折疊起來,使得波導器在實施第三矩陣模組2-305時使光轉向以在與第一方向相對的方向上傳播。在一些實施例中,第二矩陣模組2-303實體上位在波導器中的折線附近。此類佈置減少連接光學編碼器2-101、光學接收器2-105、及控制器2-107的電跡線的複雜度,且減少用來實施光子處理系統2-100的總晶片面積。例如,使用折疊式佈置的一些實施例僅使用在使用圖2-1的背對背光子佈置時所會需要的總晶片面積的65%。這可以減少光子處理系統的成本及複雜度。
發明人已經理解,折疊式佈置不僅有電氣的優點,也有光學的優點。例如,藉由減少光訊號從要用作用於零差偵測的本端振盪器的光源所需要行進的距離,可以減少光學訊號的與時間有關的相位波動,從而造成較高品質的偵測結果。詳細而言,藉由將光源及零差偵測器定位在光子處理器的相同側,用於本端振盪器的光訊號所行進的距離不再取決於矩陣的尺寸。例如,在圖2-1的背對背佈
置中,本端振盪器的光訊號所行進的距離隨著矩陣的尺寸而線性縮放,而在折疊式佈置中行進的距離是恆定的,無論矩陣的尺寸如何。
圖2-11是依據一些實施例的折疊式光子處理系統2-1100的示意圖。折疊式光子處理系統2-1100包括功率樹2-1101、複數個光學編碼器2-1103a-2-1103d、複數個零差偵測器2-1105a-2-1105d、複數個選擇器開關2-1107a-2-1107d、複數個U矩陣元件2-1109a-2-1109j、複數個對角矩陣元件2-1111a-2-1111d、及複數個V矩陣元件2-1113a-2-1113j。為了明確起見,在圖式中未示出折疊式光子處理系統的所有元件。應瞭解,折疊式光子處理系統2-1100可以包括與背對背光子處理系統2-100類似的元件。
功率樹2-1101與圖2的功率樹2-203類似,且被配置為從光源(未示出)向光學編碼器2-1103遞送光。然而,功率樹2-1101與功率樹2-203的差異在於,功率樹直接向零差偵測器2-1105a遞送光學訊號。在圖2中,光源201藉由從光源分接出光學訊號的一部分及使用波導器引導光學訊號,來向光子處理器的另一側的零差偵測器遞送本端振盪器訊號。在圖2-11中,功率樹2-1101包括等於空間模式的數量的兩倍的輸出數量。例如,圖2-11僅繪示光子處理器的四個空間模式,這造成了來自功率樹2-1101的八個輸出模式-一個輸出向每個光學編碼器2-1103引
導光,而一個輸出向每個零差偵測器2-1105引導光。可以例如使用級聯分束器或多模干涉儀(MMI)來施實功率樹。
光學編碼器2-1103與圖1的功率樹光學編碼器2-101類似,且被配置為將資訊編碼到從功率樹2-1101所接收的光學訊號的幅度及/或相位中。這可以例如如與圖2的光學編碼器2-101結合描述地實現。
零差偵測器2-1105位在功率樹2-1101與U矩陣元件2-1109之間。在一些實施例中,零差偵測器2-1105實體上與光學編碼器2-1103一起定位在一個行中。在一些實施例中,光學編碼器2-1103及零差偵測器2-1105可以在單個行中交錯。如此,光學編碼器2-1103及零差偵測器2-1105彼此緊鄰,從而減少了用來連接光學編碼器2-1103及零差偵測器2-1105以及控制器(未示出)的電跡線(未示出)的距離,該控制器可以實體上位在光學編碼器2-1103及零差偵測器2-1105的行附近。
光學編碼器2-1103中的每一者均與相應的零差偵測器2-1105相關聯。光學編碼器2-1103及零差偵測器2-1105都從功率樹2-1101接收光學訊號。如上所述,光學編碼器2-1103使用光學訊號來對輸入向量進行編碼。如上所述,零差偵測器2-1105使用從功率樹所接收的接收到的光學訊號作為本端振盪器。
每一對的光學編碼器2-1103及零差偵測器2-1105均藉由一個波導器與一個選擇器開關2-1107相關聯且連接到該選擇器開關。可以例如使用常規的2x2光學
開關來實施選擇器開關2-1107a-2-1107d。在一些實施例中,2×2光學開關是MZI,該MZI具有內部相移器以控制MZI從交叉到橫條的行為。開關2-1107連接到控制器(未示出)以控制是否將朝向U矩陣元件2-1109或V矩陣元件2-1113引導從光學編碼器2-1103所接收的光學訊號。光學開關也被控制為朝向零差偵測器2-1105引導從U矩陣元件2-1109及/或V矩陣元件2-1113所接收的光以供偵測。
用於實施矩陣乘法的技術與上文與背對背系統(描述於圖2-3中)結合描述的光子折疊式光子處理系統2-1100中的技術類似。兩個系統之間的差異在於矩陣元件的實體安置及折線2-1120的實施方式,在該折線處,光學訊號從大約從圖2-11中的左側向右側傳播改變成大約從右側向左側傳播。在圖2-11中,元件之間的連接可以表示波導器。在一些實施例中,實線連接表示光學訊號從左側向右側傳播的波導器部分,而在一些實施例中,虛線連接表示光學訊號從右側向左側傳播的波導器部分。詳細而言,給定此命名,圖2-11中所繪示的實施例是選擇器開關2-1107首先向U矩陣元件2-1109引導光學訊號的實施例。在其他實施例中,選擇器開關2-1107可以首先向V矩陣元件2-1113引導光學訊號,在該情況下,虛線會表示光學訊號從左側向右側傳播的波導器部分,而實線連接會表示光學訊號從右側向左側傳播的波導器部分。
使用U矩陣元件2-1109來在光子處理系統2-1100中實施矩陣A的SVD的U矩陣,該等U矩陣元件與V矩陣元件2-1113交錯在一起。因此,不像圖2-3中所繪示背對背佈置的實施例,所有U矩陣元件2-1109及V矩陣元件2-1113實體上都不位於單個實體區域內相應的獨立陣列中。因此,在一些實施例中,光子處理系統2-1100包括複數行的矩陣元件,且該等行中的至少一者包含U矩陣元件2-1109及V矩陣元件2-1113。在一些實施例中,第一行可以僅具有U矩陣元件2-1109,如圖2-11中所繪示。與圖3的第一矩陣模組2-301類似地實施U矩陣元件2-1109。
由於U矩陣元件2-1109及V矩陣元件2-1113的交錯結構,折疊式光子處理系統2-1100包括矩陣構件的行之間的各種位置處的波導岔道2-1110。在一些實施例中,可以使用集成光子晶片中的二或更多個層之間的絕熱漸消提升體(elevator)來建構波導岔道。在其他的實施例中,可以將U矩陣及V矩陣定位在相同晶片的不同層上,且不使用波導岔道。
在光學訊號傳播通過所有U矩陣元件2-1109之後,光學訊號向對角矩陣元件2-1111傳播,該等對角矩陣元件與圖2-3的第二矩陣模組2-303類似地實施。
在光學訊號傳播通過所有對角矩陣元件2-1111之後,光學訊號向V矩陣元件2-1113傳播,該等V矩陣元件與圖2-3的第三矩陣模組2-305類似地實施。使用V矩陣
元件2-1113來在光子處理系統2-1100中實施矩陣A的SVD的V矩陣,該等V矩陣元件與U矩陣元件2-1109交錯在一起。因此,所有V矩陣元件2-1113實體上都不位於單個獨立的陣列中。
在光學訊號傳播通過所有V矩陣元件2-1113之後,光學訊號返回選擇器開關2-1107,該選擇器開關向零差偵測器2-1105引導光學訊號以供偵測。
發明人已經進一步理解,藉由在光學編碼器之後及在矩陣元件之前包括選擇器開關,折疊式光子處理系統2-1100允許電路的高效雙向性。因此,在一些實施例中,控制器(例如與圖2-1結合描述的控制器2-107)可以控制是否將光學訊號先乘以U矩陣或先乘以V T 矩陣。對於設定為在從左側向右側傳播光學訊號時實施單式矩陣U的VBS陣列而言,從右側向左側傳播光學訊號實施了乘以單式矩陣U T 的乘法。因此,取決於光學訊號以何種方式傳播通過陣列(其可以使用2-1107中的選擇器開關來控制),相同的用於VBS陣列的設定可以實施U及U T 。在一些應用(例如用來訓練機器學習演算法的反向傳播)中,可能需要使光學訊號反向通過一或更多個矩陣。在其他的應用中,可以使用雙向性來計算對輸入向量進行的逆矩陣的運算。例如,對於可逆的n×n矩陣A而言,SVD造成A=V T ΣU。此矩陣的逆元是A -1=U T Σ -1 V,其中Σ -1是對角矩陣的逆元,其可以藉由倒轉每個對角元素來高效地計算。為了將向量乘以矩陣A,將開關配置為在第一方向上將光學訊號引導通過矩
陣U,然後通過Σ,然後通過V T 。為了將向量乘以逆元A-1,首先設定奇異值以程式化Σ -1矩陣的實施。這引起僅改變VBS的一個行而不是光子處理器的所有2n+1行的設定,這對於單向光子處理系統(例如圖2-3中所繪示的單向光子處理系統)而言就是這種情況。接著在與第一方向相對的第二方向上將表示輸入向量的光學訊號傳播通過矩陣V T ,然後通過Σ -1,然後通過U。使用選擇器開關2-1107,折疊式光子處理系統2-1100可以容易改變從先實施U矩陣(或其轉置)及先實施V T 矩陣(或其轉置)。
VI.結論
在已經如此描述了此申請案的技術的幾個態樣及實施例的情況下,要理解,本領域中的通常技術人員將容易想到各種變更、變體、及改善。此類變更、變體、及改善旨在落在本案中所描述的技術的精神及範圍之內。因此,要瞭解,前述實施例是僅藉由示例的方式的呈現的,且在隨附請求項及其等效物的範圍內,可以用具體描述的方式以外的其他方式實行發明性的實施例。此外,本文中所述的二或更多個特徵、系統、製品、材料、及/或方法的任何組合,在此類特徵、系統、製品、材料、及/或方法不互相矛盾時,被包括在本揭示內容的範圍內。
並且,如所述,可以將一些態樣實施為一或多個方法。作為方法的一部分而執行的行動可以用任何合適的方式排序。因此,可以建構行動用與所說明的順序不同的
順序執行的實施例,即使在說明性的實施例中示為順序的行動,這也可以包括同時執行一些行動。
應將如本文中所界定及使用的所有定義瞭解為支配字典定義、以引用方式併入的文件中的定義、及/或所界定的用語的通常意義。
除非明確地相反指示,否則應將如本文中在說明書中及請求項中所使用的不定冠詞「一」及「一個」瞭解為意味著「至少一個」。
應將如本文中在說明書中及請求項中所使用的語句「及/或」瞭解為意味著如此結合的元素(即在一些情況下結合地存在而在其他情況下分離地存在的元素)「中的任一者或兩者」。
應將如本文中在說明書中及請求項中所使用的用語「電路系統」瞭解為意味著任何類型的電路,該電路無論是單獨考慮或與其他電路結合考慮,包括例如類比電路、數位電子電路、及光學電路。光學電路包括固態光學元件及其組合及自由空間光學元件及其組合等等。
如本文中在說明書中及請求項中所使用的,應將關於一或更多個元素的列表的語句「至少一個」瞭解為意味著選自元素列表中的元素中的任一者或更多者的至少一個元素,但不一定包括元素列表內具體列出的每個元素中的至少一者且不排除元素列表中的元素的任何組合。此定義也允許,語句「至少一個」所指稱的元素列表內具體識
別的元素以外的元素可以可選地存在,無論與具體識別的彼等元素相關或不相關。
用語「大約」及「約」可以用來意指在一些實施例中的目標值的±20%內、在一些實施例中的目標值的±10%內、在一些實施例中的目標值的±5%內、還有在一些實施例中的目標值的±2%內。用語「大約」及「約」可以包括目標值。
1-100:混合類比-數位矩陣處理器/加速器
1-1000:加速器
1-102:DAC單元
1-103:類比縮放單元
1-104:類比處理器
1-105:類比縮放單元
1-106:ADC單元
1-108:數位縮放單元
1-110:數位累加器
1-1100:方法
1-120:控制器
1-1200:加速器
1-1201:光學編碼器
1-1203:光學縮放單元
1-1204:光子處理器
1-1205:光學縮放單元
1-1207:光學接收器
1-1250:雷射器
1-300:方法
1-301:步驟
1-302:步驟
1-304:步驟
1-306:步驟
1-308:步驟
1-310:步驟
1-312:步驟
1-314:步驟
1-316:步驟
1-318:步驟
1-520:記憶單元
1-522:數位加法器
1-700:加速器
1-702:放大器或衰減器
1-800:方法
1-801:步驟
1-802:步驟
1-804:步驟
1-806:步驟
1-808:步驟
1-810:步驟
1-812:步驟
1-814:步驟
1-816:步驟
2-100:光子處理系統
2-1001:本端振盪器(LO)
2-1003:九十度相位差控制器
2-1005:分束器
2-1007:偵測器
2-1009:偵測器
2-101:光學編碼器
2-1011:減法電路
2-103:光子處理器
2-105:光學接收器
2-107:控制器
2-109:記憶體
2-1100:折疊式光子處理系統
2-1101:功率樹
2-1103a:光學編碼器
2-1103b:光學編碼器
2-1103c:光學編碼器
2-1103d:光學編碼器
2-1105a:零差偵測器
2-1105b:零差偵測器
2-1105c:零差偵測器
2-1105d:零差偵測器
2-1107a:選擇器開關
2-1107b:選擇器開關
2-1107c:選擇器開關
2-1107d:選擇器開關
2-1109a:U矩陣元件
2-1109b:U矩陣元件
2-1109c:U矩陣元件
2-1109d:U矩陣元件
2-1109e:U矩陣元件
2-1109f:U矩陣元件
2-1109g:U矩陣元件
2-1109h:U矩陣元件
2-1109i:U矩陣元件
2-1109j:U矩陣元件
2-111:處理器
2-1110:波導岔道
2-1111a:對角矩陣元件
2-1111b:對角矩陣元件
2-1111c:對角矩陣元件
2-1111d:對角矩陣元件
2-1113a:V矩陣元件
2-1113b:V矩陣元件
2-1113c:V矩陣元件
2-1113d:V矩陣元件
2-1113e:V矩陣元件
2-1113f:V矩陣元件
2-1113g:V矩陣元件
2-1113h:V矩陣元件
2-1113i:V矩陣元件
2-1113j:V矩陣元件
2-1120:折線
2-201a:光源
2-201b:光源
2-202:波導器
2-203:功率樹
2-205:幅度調變器
2-207:相位調變器
2-209:相位調變器
2-211:DAC
2-301:第一矩陣模組
2-303:第二矩陣模組
2-305:第三矩陣模組
2-401:VBS
2-501:第一漸消耦合器
2-503:第二漸消耦合器
2-507:相移器
2-509:相移器
2-510:MZI
2-601:相移器
2-603:幅度調變器
2-605:相移器
2-701:漸消耦合器
2-703:漸消耦合器
2-705:內部相移器
2-707:第二輸出端口
2-709:第一輸出端口
2-801a:分束器
2-801b:分束器
2-801c:分束器
2-801d:分束器
2-801e:分束器
2-801f:分束器
2-801g:分束器
2-901:零差偵測器
2-903:跨阻放大器
2-905:ADC
將參照以下圖式來描述本申請案的各種態樣及實施例。應理解,圖式不一定是依比例繪製的。出現在多個圖式中的項目在出現該等項目的所有圖式中由相同的參考標號所指示。
圖1-1A是依據一些實施例基於分塊(tile)來計算的矩陣乘法運算的表示。
圖1-1B描繪依據一些實施例可以如何計算圖1-1A的矩陣的子部分。
圖1-1C是依據一些實施例的熱圖,其繪示輸入矩陣的數值的分佈。
圖1-2A是依據一些實施例的方塊圖,其繪示混合類比-數位矩陣處理器。
圖1-2B是依據一些實施例的圖解,其繪示矩陣乘法。
圖1-2C是依據一些實施例的圖解,其繪示使用劃分法來執行的矩陣乘法。
圖1-3是依據一些實施例的流程圖,其繪示用於使用混合類比-數位矩陣處理器來處理資訊的方法。
圖1-4A是依據一些實施例的圖解,其繪示使用基於分塊因子的劃分法及縮放法來執行的矩陣乘法。
圖1-4B是依據一些實施例的圖解,其繪示使用基於分塊列因子的劃分法及縮放法來執行的矩陣乘法。
圖1-4C是依據一些實施例的圖解,其繪示使用基於分塊因子的劃分法及縮放法來執行的另一種矩陣乘法。
圖1-4D是依據一些實施例的圖解,其繪示使用基於分塊列因子的劃分法及縮放法來執行的另一種矩陣乘法。
圖1-5A是依據一些實施例的圖解,其繪示基於奇異值分解來進行因子分解的矩陣。
圖1-5B是依據一些實施例的方塊圖,其繪示接收n個向量元素的數位累加器。
圖1-6A是依據一些實施例的繪圖,其繪示與類比處理器的動態範圍相關的輸出訊號分佈。
圖1-6B是依據一些實施例的圖解,其繪示變化增益對根據類比訊號來數位化的資料的數位表示的效果。
圖1-7A是依據一些實施例的方塊圖,其繪示另一個混合類比-數位矩陣處理器。
圖1-7B是依據一些實施例的方塊圖,其繪示複數個類比縮放單元。
圖1-8是依據一些實施例的流程圖,其繪示另一種用於使用混合類比-數位矩陣處理器來處理資訊的方法。
圖1-9A是依據一些實施例的繪圖,其繪圖神經網絡計算的準確度與增益的關係。
圖1-9B是依據一些實施例的繪圖,其繪示神經網絡計算的分量部分中的均方差與增益的關係。
圖1-10是依據一些實施例的方塊圖,其繪示另一個混合類比-數位矩陣處理器。
圖1-11是依據一些實施例的流程圖,其繪示另一種用於使用混合類比-數位矩陣處理器來處理資訊的方法。
圖1-12是依據一些實施例的方塊圖,其繪示光子混合類比-數位矩陣處理器。
圖2-1是依據一些實施例的光子處理系統的示意圖。
圖2-2是依據一些實施例的光學編碼器的示意圖。
圖2-3是依據一些實施例的光子處理器的示意圖。
圖2-4是依據一些實施例的互連的可變分束器陣列的示意圖。
圖2-5是依據一些實施例的可變分束器的示意圖。
圖2-6是依據一些實施例可以用來表示作用在n個光學模式上的對角矩陣的衰減及相移實施方式的示意圖。
圖2-7是依據一些實施例的光學衰減器的示意圖。
圖2-8是依據一些實施例的光學功率樹的示意圖。
圖2-9是依據一些實施例的依據一些非限制性實施例的光學接收器的示意圖。
圖2-10是依據一些實施例的依據一些非限制性實施例的零差偵測器的示意圖。
圖2-11是依據一些實施例的折疊式光子處理系統的示意圖。
國內寄存資訊(請依寄存機構、日期、號碼順序註記)
無
國外寄存資訊(請依寄存國家、機構、日期、號碼順序註記)
無
1-1000:加速器
1-102:DAC單元
1-103:類比縮放單元
1-104:類比處理器
1-105:類比縮放單元
1-106:ADC單元
1-108:數位縮放單元
1-110:數位累加器
1-120:控制器
Claims (25)
- 一種混合類比-數位處理器,包括:電路系統,包括一類比處理器,其中該電路系統被配置為使用複數個運算次(pass)執行一數學運算,其中針對該複數個運算次中的每一者,該電路系統被配置為:基於表示一矩陣的一部分的一參數集來針對該運算次決定一或更多個縮放因子;基於該一或更多個縮放因子來縮放該參數集的至少一些參數以產生一縮放的參數集;基於該縮放的參數集來程式化該類比處理器;基於一輸入資料集來產生複數個輸入類比訊號;基於該複數個輸入類比訊號及該縮放的參數集來產生複數個輸出類比訊號;基於該複數個輸出類比訊號來產生一部分輸出資料集;及基於該一或更多個縮放因子來縮放該部分輸出資料集以產生一縮放的部分輸出資料集,其中該電路系統更被配置為藉由累加由該複數個運算次中的至少兩者所產生的該等縮放的部分輸出資料集來產生一累加的輸出資料集,其中該累加的輸出資料集表示該數學運算的一結果。
- 如請求項1所述的混合類比-數位處理器,其中基於該複數個輸入類比訊號及該縮放的參數集來產 生複數個輸出類比訊號的步驟包括以下步驟:基於該複數個輸入類比訊號及該縮放的參數集來執行一矩陣-矩陣乘法。
- 如請求項1所述的混合類比-數位處理器,其中基於該複數個輸入類比訊號及該縮放的參數集來產生複數個輸出類比訊號的步驟包括以下步驟:基於該複數個輸入類比訊號及該縮放的參數集來執行一卷積。
- 如請求項1所述的混合類比-數位處理器,其中基於該縮放的參數集來程式化該類比處理器的步驟包括以下步驟:基於該縮放的參數集來針對該類比處理器的複數個類比放大器或衰減器設定相應的增益或衰減。
- 如請求項1所述的混合類比-數位處理器,其中該類比處理器包括一光子處理器,該光子處理器包括複數個可程式化的光子設備,且其中基於該縮放的參數集來程式化該類比處理器的步驟包括以下步驟:基於該縮放的參數集來針對該複數個可程式化的光子設備設定相應的特性。
- 如請求項5所述的混合類比-數位處理器,其中該等可程式化的光子設備包括Mach-Zehnder干涉儀,且其中基於該縮放的參數集來針對該複數個可程式化的光子設備設定相應的特性的步驟包括以下步驟:基於該縮放的參數集來針對該複數個Mach-Zehnder干涉儀設定相應的光學特性。
- 如請求項1所述的混合類比-數位處理器,其中累加由該複數個運算次中的至少兩者所產生的該縮放的部分輸出資料集的步驟包括以下步驟:針對該等運算次中的至少一些,將由該運算次所產生的該縮放的部分輸出資料集與由一先前的運算次所產生的該縮放的部分輸出資料集加總在一起。
- 一種混合類比-數位處理器,被配置為執行一數學運算,該混合類比-數位處理器包括:電路系統,包括一類比處理器及一類比縮放單元,其中該電路系統被配置為:基於一輸入資料集來產生複數個輸入類比訊號;基於一或更多個縮放因子來設定該類比縮放單元的一增益;用表示一矩陣的一參數集程式化該類比處理器;基於該複數個輸入類比訊號及該參數集來產生複數個輸出類比訊號;藉由使用該類比縮放單元放大或衰減該複數個輸入類比訊號及/或該複數個輸出類比訊號來產生複數個放大的或衰減的輸出類比訊號;及基於該複數個放大的或衰減的輸出類比訊號來產生一輸出資料集。
- 如請求項8所述的混合類比-數位處理器,其中該類比縮放單元包括一類比放大器或衰減器。
- 如請求項8所述的混合類比-數位處理器, 其中該混合類比-數位處理器更被配置為基於該數學運算來執行一多運算次計算,其中該電路系統更被配置為:在該多運算次計算的一第一運算次期間將該類比縮放單元的該增益設定為一第一值;及在該多運算次計算的一第二運算次期間將該類比縮放單元的該增益設定為與該第一值不同的一第二值。
- 如請求項8所述的混合類比-數位處理器,其中基於該複數個輸入類比訊號及該參數集來產生複數個輸出類比訊號的步驟包括以下步驟:基於該複數個輸入類比訊號及該參數集來執行一矩陣-矩陣乘法。
- 如請求項8所述的混合類比-數位處理器,其中基於該複數個輸入類比訊號及該參數集來產生複數個輸出類比訊號的步驟包括以下步驟:基於該複數個輸入類比訊號及該參數集來執行一卷積。
- 如請求項8所述的混合類比-數位處理器,其中該電路系統包括複數個類比轉數位轉換器(ADC),且該複數個ADC被配置為基於該複數個輸出類比訊號來產生該輸出資料集。
- 如請求項13所述的混合類比-數位處理器,其中該複數個ADC包括n位元ADC,其中n等於或小於12。
- 如請求項8所述的混合類比-數位處理器,其中該電路系統更被配置為基於該參數集及該輸入資料 集來決定該一或更多個縮放因子。
- 如請求項15所述的混合類比-數位處理器,其中決定該一或更多個縮放因子的步驟包括以下步驟:基於該參數集的統計邊界及該輸入資料集的統計邊界來決定該一或更多個縮放因子。
- 一種執行一數學運算的方法,該方法包括以下步驟:基於一輸入資料集來產生複數個輸入類比訊號;基於一或更多個縮放因子來設定一類比縮放單元的一增益;用表示一矩陣的一參數集程式化一類比處理器;基於該複數個輸入類比訊號及該參數集來產生複數個輸出類比訊號;藉由使用該類比縮放單元放大或衰減該複數個輸入類比訊號及/或該複數個輸出類比訊號來產生複數個放大的或衰減的輸出類比訊號;及基於該複數個放大的或衰減的輸出類比訊號來產生一輸出資料集。
- 如請求項17所述的方法,其中該類比縮放單元包括一類比放大器或衰減器。
- 如請求項17所述的方法,其中該混合類比-數位處理器更被配置為基於該數學運算來執行一多運算次計算,其中該電路系統更被配置為:在該多運算次計算的一第一運算次期間將該類比縮放 單元的該增益設定為一第一值;及在該多運算次計算的一第二運算次期間將該類比縮放單元的該增益設定為與該第一值不同的一第二值。
- 如請求項17所述的方法,其中基於該複數個輸入類比訊號及該參數集來產生複數個輸出類比訊號的步驟包括以下步驟:基於該複數個輸入類比訊號及該參數集來執行一矩陣-矩陣乘法。
- 如請求項17所述的方法,其中基於該複數個輸入類比訊號及該參數集來產生複數個輸出類比訊號的步驟包括以下步驟:基於該複數個輸入類比訊號及該參數集來執行一卷積。
- 如請求項17所述的方法,其中該電路系統包括複數個類比轉數位轉換器(ADC),且該複數個ADC被配置為基於該複數個輸出類比訊號來產生該輸出資料集。
- 如請求項22所述的方法,其中該複數個ADC包括n位元ADC,其中n等於或小於12。
- 如請求項17所述的方法,更包括以下步驟:基於該參數集及該輸入資料集來決定該一或更多個縮放因子。
- 如請求項24所述的方法,其中決定該一或更多個縮放因子的步驟包括以下步驟:基於該參數集的統計邊界及該輸入資料集的統計邊界來決定該一或更多個縮放因子。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962810851P | 2019-02-26 | 2019-02-26 | |
US62/810,851 | 2019-02-26 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202103025A TW202103025A (zh) | 2021-01-16 |
TWI831932B true TWI831932B (zh) | 2024-02-11 |
Family
ID=72140412
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW109106267A TWI831932B (zh) | 2019-02-26 | 2020-02-26 | 混合類比-數位處理器及該處理器中執行的方法 |
Country Status (9)
Country | Link |
---|---|
US (6) | US10803258B2 (zh) |
EP (1) | EP3931727A4 (zh) |
JP (1) | JP7555944B2 (zh) |
KR (1) | KR20220002875A (zh) |
CN (1) | CN113853600A (zh) |
CA (1) | CA3130114A1 (zh) |
SG (1) | SG11202108799QA (zh) |
TW (1) | TWI831932B (zh) |
WO (1) | WO2020176538A1 (zh) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107247575A (zh) * | 2017-06-06 | 2017-10-13 | 上海德衡数据科技有限公司 | 一种多路数据浮点处理器原型 |
CA3100326A1 (en) | 2018-05-15 | 2019-11-21 | Lightmatter, Inc. | Photonic processing systems and methods |
WO2020096913A1 (en) | 2018-11-08 | 2020-05-14 | Luminous Computing, Inc. | System and method for photonic computing |
US11209856B2 (en) | 2019-02-25 | 2021-12-28 | Lightmatter, Inc. | Path-number-balanced universal photonic network |
JP7555944B2 (ja) | 2019-02-26 | 2024-09-25 | ライトマター インコーポレイテッド | ハイブリッドアナログ・デジタル行列プロセッサ |
EP4004673A4 (en) | 2019-07-29 | 2023-06-21 | Lightmatter, Inc. | ANALOG COMPUTING SYSTEMS AND METHODS USING A LINEAR PHOTONIC PROCESSOR |
WO2021049116A1 (ja) * | 2019-09-10 | 2021-03-18 | 株式会社カネカ | 太陽電池群の製造装置、太陽電池群、及び太陽電池群の製造方法 |
US20210125066A1 (en) * | 2019-10-28 | 2021-04-29 | Lightmatter, Inc. | Quantized architecture search for machine learning models |
CN115023909A (zh) | 2019-11-22 | 2022-09-06 | 光物质公司 | 线性光子处理器和相关方法 |
US11610104B1 (en) * | 2019-12-30 | 2023-03-21 | Ali Tasdighi Far | Asynchronous analog accelerator for fully connected artificial neural networks |
US11500410B1 (en) * | 2020-05-06 | 2022-11-15 | Luminous Computing, Inc. | System and method for parallel photonic computation |
US11101810B1 (en) * | 2020-07-20 | 2021-08-24 | Nxp B.V. | Training a machine learning system for ADC compensation |
EP4186005A4 (en) | 2020-07-24 | 2024-08-21 | Lightmatter Inc | SYSTEMS AND METHODS FOR USING PHOTONIC DEGREES OF FREEDOM IN A PHOTONIC PROCESSOR |
RU2739723C1 (ru) * | 2020-09-25 | 2020-12-28 | Федеральное государственное бюджетное образовательное учреждение высшего образования "Московский авиационный институт (национальный исследовательский университет)" | Континуальный процессор |
WO2022099205A1 (en) * | 2020-11-09 | 2022-05-12 | Lightmatter, Inc. | An efficient buffering technique for transferring data |
WO2022115704A1 (en) * | 2020-11-30 | 2022-06-02 | Lightmatter, Inc. | Machine learning model training using an analog processor |
WO2023043712A1 (en) * | 2021-09-14 | 2023-03-23 | University Of Pittsburgh - Of The Commonwealth System Of Higher Education | Systems and methods for coherent photonic crossbar arrays |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8700184B2 (en) * | 2005-11-11 | 2014-04-15 | L&L Engineering, Llc | Methods and systems for adaptive control |
CN106814924A (zh) * | 2015-11-27 | 2017-06-09 | 原相科技股份有限公司 | 讯号取样方法以及感测系统 |
WO2017127086A1 (en) * | 2016-01-21 | 2017-07-27 | Hewlett Packard Enterprise Development Lp | Analog sub-matrix computing from input matrixes |
CN107408103A (zh) * | 2015-02-02 | 2017-11-28 | 优创半导体科技有限公司 | 配置成使用一个或多个复数算术指令对可变长度向量进行操作的向量处理器 |
US20180004708A1 (en) * | 2016-07-01 | 2018-01-04 | Hewlett Packard Enterprise Development Lp | Vector-matrix multiplications involving negative values |
TW201815196A (zh) * | 2016-10-07 | 2018-04-16 | 華碩電腦股份有限公司 | 無線通訊系統中導出上行參考訊號的傳送功率的方法和設備 |
Family Cites Families (108)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3872293A (en) | 1972-01-07 | 1975-03-18 | Us Navy | Multi-dimensional fourier transform optical processor |
US4567569A (en) | 1982-12-15 | 1986-01-28 | Battelle Development Corporation | Optical systolic array processing |
US4739520A (en) | 1983-09-14 | 1988-04-19 | The Ohio State University | Optical switching system |
GB2154772B (en) | 1984-02-25 | 1987-04-15 | Standard Telephones Cables Ltd | Optical computation |
US4607344A (en) | 1984-09-27 | 1986-08-19 | The United States Of America As Represented By The Secretary Of The Navy | Triple matrix product optical processors using combined time-and-space integration |
US4686646A (en) | 1985-05-01 | 1987-08-11 | Westinghouse Electric Corp. | Binary space-integrating acousto-optic processor for vector-matrix multiplication |
US4809204A (en) | 1986-04-04 | 1989-02-28 | Gte Laboratories Incorporated | Optical digital matrix multiplication apparatus |
US5142677A (en) | 1989-05-04 | 1992-08-25 | Texas Instruments Incorporated | Context switching devices, systems and methods |
US4849940A (en) | 1987-12-10 | 1989-07-18 | The Washington Technology Center | Optical neural net memory |
US4877297A (en) | 1988-04-29 | 1989-10-31 | Rockwell International Corporation | Reconfigurable 0ptical interconnect using dynamic hologram |
GB2220780B (en) | 1988-07-05 | 1992-12-23 | Mitsubishi Electric Corp | Neurocomputer |
US5004309A (en) | 1988-08-18 | 1991-04-02 | Teledyne Brown Engineering | Neural processor with holographic optical paths and nonlinear operating means |
US4948212A (en) | 1988-08-22 | 1990-08-14 | California Institute Of Technology | Optical processing in III-V and II-VI compound semiconductors |
US5077619A (en) | 1989-10-25 | 1991-12-31 | Tacan Corporation | High linearity optical transmitter |
US5220644A (en) | 1989-11-22 | 1993-06-15 | Hitachi, Ltd. | Optical neural network system |
JP2762808B2 (ja) | 1991-01-09 | 1998-06-04 | 松下電器産業株式会社 | 空間光変調素子および投写型ディスプレイ装置 |
GB2267165A (en) | 1992-05-11 | 1993-11-24 | Sharp Kk | Optical information processor |
GB2269296A (en) | 1992-08-01 | 1994-02-02 | Northern Telecom Ltd | Telecommunications switch architecture |
US5495356A (en) | 1993-04-30 | 1996-02-27 | Nec Research Institute, Inc. | Multidimensional switching networks |
US5333117A (en) | 1993-10-04 | 1994-07-26 | Nec Research Institute, Inc. | Parallel MSD arithmetic using an opto-electronic shared content-addressable memory processor |
US6116768A (en) * | 1993-11-30 | 2000-09-12 | Texas Instruments Incorporated | Three input arithmetic logic unit with barrel rotator |
WO1995024006A1 (de) | 1994-03-02 | 1995-09-08 | Matthias Budil | Optischer vektormultiplizierer für neuronale netze |
US5640261A (en) | 1994-08-18 | 1997-06-17 | Fuji Photo Film Co., Ltd. | Optical operation apparatus for finding an inner product of vectors using light |
US5699449A (en) | 1994-11-14 | 1997-12-16 | The University Of Connecticut | Method and apparatus for implementation of neural networks for face recognition |
US6005998A (en) | 1998-02-20 | 1999-12-21 | Lucent Technologies Inc. | Strictly non-blocking scalable matrix optical switch |
US6060710A (en) | 1998-12-21 | 2000-05-09 | The United States Of America As Represented By The Secretary Of The Army | Infrared Mueller matrix detection and ranging system |
US6178020B1 (en) | 1999-09-30 | 2001-01-23 | Ut-Battelle, Llc | Modules and methods for all photonic computing |
WO2001091342A2 (en) | 2000-05-24 | 2001-11-29 | Purdue Research Foundation | Method and system for polarization control and polarization mode dispersion compensation for wideband optical signals |
AU2001282416A1 (en) | 2000-07-27 | 2002-02-13 | Civcom Devices & Systems Ltd. | Data processing using polarization-based optical switching and broadcasting |
US6728434B2 (en) | 2001-06-04 | 2004-04-27 | Axun Technologies, Inc. | MEMS dynamic optical spectral filter |
AUPR726901A0 (en) | 2001-08-24 | 2001-09-20 | Uniquest Limited | Quantum optical cnot gate |
IL145245A0 (en) | 2001-09-03 | 2002-06-30 | Jtc 2000 Dev Delaware Inc | System and method including vector-matrix multiplication |
KR20050042243A (ko) | 2001-11-06 | 2005-05-06 | 더 존스 홉킨스 유니버시티 | 단일 양자들의 양자 상태들을 이용하는 논리 연산들을수행하기 위한 기술들 |
US7136587B1 (en) | 2001-11-15 | 2006-11-14 | Meshnetworks, Inc. | System and method for providing simulated hardware-in-the-loop testing of wireless communications networks |
US7317574B2 (en) | 2002-05-20 | 2008-01-08 | Magiq Technologies, Inc. | Long-distance quantum communication |
DE50201169D1 (de) | 2002-06-24 | 2004-11-04 | Alcatel Sa | Vorrichtung für ein passives optisches Netzwerk |
WO2005029404A2 (en) | 2002-12-09 | 2005-03-31 | The Johns Hopkins University | Method and apparatus for single-photon source and quantum memory |
US7366416B2 (en) | 2003-08-11 | 2008-04-29 | General Instrument Corporation | Hub for a passive optical network hub |
US7133173B2 (en) | 2004-07-26 | 2006-11-07 | Hewlett-Packard Development Company, L.P. | Nonlinear electromagnetic quantum information processing |
US7660533B1 (en) | 2004-08-04 | 2010-02-09 | The United States Of America As Represented By The Secretary Of The Army | Quantum Fourier transform based information transmission system and method |
JP4927548B2 (ja) | 2004-08-04 | 2012-05-09 | 古河電気工業株式会社 | 光回路装置 |
WO2007086888A2 (en) | 2005-03-04 | 2007-08-02 | Cornell Research Foundation, Inc. | Electro-optic modulation |
US8560282B2 (en) | 2005-07-11 | 2013-10-15 | D-Wave Systems Inc. | Quantum processor-based systems, methods and apparatus for solving problems as logic circuits |
US7843572B2 (en) | 2005-09-29 | 2010-11-30 | The General Hospital Corporation | Method and apparatus for optical imaging via spectral encoding |
JP5053282B2 (ja) | 2005-10-13 | 2012-10-17 | ナショナル・アイシーティ・オーストラリア・リミテッド | サンプリングされた光信号の監視のための方法および装置 |
US8023828B2 (en) | 2005-10-17 | 2011-09-20 | Hewlett-Packard Development Company, L.P. | Quantum information conversion between matter and light representations |
US7774675B1 (en) | 2005-12-05 | 2010-08-10 | Marvell International Ltd. | LDPC codes and expansion method |
KR101309677B1 (ko) | 2006-01-27 | 2013-09-17 | 디-웨이브 시스템즈, 인코포레이티드 | 단열 양자 연산 방법 |
JP5313912B2 (ja) | 2006-12-05 | 2013-10-09 | ディー−ウェイブ システムズ,インコーポレイテッド | 量子プロセッサ要素の局所的プログラミングのためのシステム、方法、および装置 |
KR100890389B1 (ko) | 2006-12-05 | 2009-03-26 | 한국전자통신연구원 | 편광 무의존 단방향 양자 암호 수신 및 송수신 장치 |
US8548334B2 (en) | 2006-12-06 | 2013-10-01 | Mohammad Mazed | Dynamic intelligent bidirectional optical access communication system with object/intelligent appliance-to-object/intelligent appliance interaction |
US7985965B2 (en) | 2007-03-29 | 2011-07-26 | Raytheon Company | Quantum computing device and method including qubit arrays of entangled states using negative refractive index lenses |
US7843209B2 (en) | 2007-04-25 | 2010-11-30 | D-Wave Systems Inc. | Architecture for local programming of quantum processor elements using latching qubits |
US7539375B2 (en) | 2007-05-04 | 2009-05-26 | Massachusetts Institute Of Technology | Optical coupled resonator structures based on loop-coupled cavities and loop coupling phase |
US8045645B2 (en) * | 2007-06-08 | 2011-10-25 | Telefonaktiebolaget Lm Ericsson (Publ) | Signal processor for estimating signal parameters using an approximated inverse matrix |
EP2176727A1 (en) | 2007-07-09 | 2010-04-21 | BAE Systems PLC | Improvements relating to optical vector matrix multipliers |
US8027587B1 (en) | 2007-08-21 | 2011-09-27 | Sandia Corporation | Integrated optic vector-matrix multiplier |
EP2209038B1 (en) | 2007-10-10 | 2014-06-25 | NEC Corporation | Optical modulator and optical communication system |
US8190553B2 (en) | 2007-12-20 | 2012-05-29 | Routt Thomas J | Methods and systems for quantum search, computation and memory |
JP5091717B2 (ja) | 2008-02-21 | 2012-12-05 | 株式会社東芝 | 量子計算方法および量子計算機 |
CN101630178B (zh) | 2008-07-16 | 2011-11-16 | 中国科学院半导体研究所 | 一种硅基集成化的光学向量-矩阵乘法器 |
US9641884B2 (en) * | 2008-11-15 | 2017-05-02 | Adobe Systems Incorporated | Method and device for establishing a content mirroring session |
JP4786727B2 (ja) | 2009-03-27 | 2011-10-05 | 株式会社東芝 | 量子計算方法、量子計算機およびプログラム |
US8620855B2 (en) | 2009-04-17 | 2013-12-31 | Microsoft Corporation | Use of topological charge measurements to change between different qubit encodings |
US8705900B2 (en) | 2010-03-19 | 2014-04-22 | Nippon Telegraph And Telephone Corporation | Optical modulator |
US8026837B1 (en) | 2010-04-22 | 2011-09-27 | The Aerospace Corporation | Systems and methods for converting wideband signals in the optical domain |
US9002160B2 (en) | 2011-07-28 | 2015-04-07 | Jds Uniphase Corporation | Optical switch having a multirow waveguide array |
US8837544B2 (en) | 2011-10-28 | 2014-09-16 | Hewlett-Packard Development Company, L.P. | Quantum optical device |
US8693895B2 (en) | 2011-11-11 | 2014-04-08 | Wuhan Research Institute Of Posts And Telecommunications | Signal transmission and reception device and method |
US9014568B2 (en) | 2012-02-16 | 2015-04-21 | Nec Laboratories America, Inc. | Next generation optical access network with centralized digital OLT |
US9712235B2 (en) | 2012-02-28 | 2017-07-18 | Spatial Digital Systems, Inc. | Resource allocation in PON networks via wave-front multiplexing and de-multiplexing |
US8625936B1 (en) | 2012-06-29 | 2014-01-07 | Alcatel Lucent | Advanced modulation formats using optical modulators |
US10534189B2 (en) | 2012-11-27 | 2020-01-14 | The Board Of Trustees Of The Leland Stanford Junior University | Universal linear components |
FR3002654A1 (fr) | 2013-02-26 | 2014-08-29 | St Microelectronics Sa | Modulateur optique avec correction de polarisation automatique |
JP6011719B2 (ja) | 2013-04-24 | 2016-10-19 | 日本電気株式会社 | 偏波分離器、及び光デバイス |
US9633715B2 (en) | 2013-05-31 | 2017-04-25 | Hitachi, Ltd. | Semiconductor device capable of attaining ground state in an ising model |
WO2015006494A1 (en) | 2013-07-09 | 2015-01-15 | Board Of Trustees Of The Leland Stanford Junior University | Computation using a network of optical parametric oscillators |
GB201402736D0 (en) | 2013-07-26 | 2014-04-02 | Isis Innovation | Method of training a neural network |
CN105531946B (zh) | 2013-12-23 | 2018-01-19 | 华为技术有限公司 | 一种光差分信号的发送和接收方法、装置和系统 |
US9354039B2 (en) | 2014-06-06 | 2016-05-31 | Massachusetts Institute Of Technology | Methods, systems, and apparatus for programmable quantum photonic processing |
US9544062B2 (en) | 2014-12-22 | 2017-01-10 | Opel Solar, Inc. | Coherent optical receiver |
US9753224B2 (en) | 2015-03-25 | 2017-09-05 | The Board Of Trustees Of The Leland Stanford Junior University | Field-programmable optical component |
WO2016191679A1 (en) | 2015-05-28 | 2016-12-01 | Massachusetts Institute Of Technology | Apparatus and methods for quantum key distribution |
US9941957B2 (en) | 2016-01-07 | 2018-04-10 | Luxtera, Inc. | Method and system for connectionless integrated optical receiver and transmitter test |
GB2551685B (en) | 2016-02-16 | 2019-12-11 | Toshiba Kk | An optical device, a transmitter for a quantum communication system and a quantum communication system |
US10126572B2 (en) | 2016-03-31 | 2018-11-13 | Huawei Technologies Co., Ltd. | Automatic endless polarization controller for a silicon-on-insulator platform |
EP4057185A1 (en) | 2016-06-02 | 2022-09-14 | Massachusetts Institute of Technology | Apparatus and methods for optical neural network |
US20170372202A1 (en) * | 2016-06-15 | 2017-12-28 | Nvidia Corporation | Tensor processing using low precision format |
US10367590B2 (en) | 2016-09-22 | 2019-07-30 | Hewlett Packard Enterprise Development Lp | Concurrently performing attribute-dependent operations on optical signals |
WO2018071866A1 (en) | 2016-10-13 | 2018-04-19 | Fathom Computing | Wavelength multiplexed matrix-matrix multiplier |
WO2018098230A1 (en) | 2016-11-22 | 2018-05-31 | Massachusetts Institute Of Technology | Systems and methods for training neural networks |
US10095262B2 (en) | 2016-12-12 | 2018-10-09 | The Aerospace Corporation | Systems and methods for performing linear algebra operations using multi-mode optics |
US10382139B2 (en) | 2016-12-21 | 2019-08-13 | Ceragon Networks Ltd. | Polarization pre-coding for a single carrier communication system |
US10325007B2 (en) | 2017-04-05 | 2019-06-18 | International Business Machines Corporation | Noise and bound management for RPU array |
US11290150B2 (en) | 2017-05-03 | 2022-03-29 | Assia Spe, Llc | Systems and methods for implementing high-speed waveguide transmission over wires |
US10634851B2 (en) | 2017-05-17 | 2020-04-28 | Massachusetts Institute Of Technology | Apparatus, systems, and methods for nonblocking optical switching |
CN109146073B (zh) * | 2017-06-16 | 2022-05-24 | 华为技术有限公司 | 一种神经网络训练方法和装置 |
JP6724869B2 (ja) | 2017-06-19 | 2020-07-15 | 株式会社デンソー | 多層ニューラルネットワークのニューロンの出力レベル調整方法 |
US10757450B2 (en) | 2017-10-05 | 2020-08-25 | Cable Television Laboratories, Inc | System and methods for data compression and nonuniform quantizers |
WO2019217835A1 (en) | 2018-05-10 | 2019-11-14 | The Board Of Trustees Of The Leland Stanford Junior University | Training of photonic neural networks through in situ backpropagation |
TW202005312A (zh) | 2018-05-15 | 2020-01-16 | 美商萊特美特股份有限公司 | 用於訓練基於矩陣的可微分程式的系統及方法 |
CA3100326A1 (en) | 2018-05-15 | 2019-11-21 | Lightmatter, Inc. | Photonic processing systems and methods |
WO2019236251A1 (en) | 2018-06-04 | 2019-12-12 | Lightmatter, Inc. | Convolutional layers for neural networks using programmable nanophotonics |
WO2019236250A1 (en) | 2018-06-04 | 2019-12-12 | Lightmatter, Inc. | Real-number photonic encoding |
US11132423B2 (en) * | 2018-10-31 | 2021-09-28 | Hewlett Packard Enterprise Development Lp | Partition matrices into sub-matrices that include nonzero elements |
US11157237B2 (en) * | 2018-11-13 | 2021-10-26 | Hewlett Packard Enterprise Development Lp | Memristive dot product circuit based floating point computations |
KR102658831B1 (ko) * | 2018-12-31 | 2024-04-18 | 삼성전자주식회사 | 비휘발성 메모리 장치 및 비휘발성 메모리 장치를 이용한 계산 방법 |
JP7555944B2 (ja) | 2019-02-26 | 2024-09-25 | ライトマター インコーポレイテッド | ハイブリッドアナログ・デジタル行列プロセッサ |
-
2020
- 2020-02-25 JP JP2021549796A patent/JP7555944B2/ja active Active
- 2020-02-25 CN CN202080029762.8A patent/CN113853600A/zh active Pending
- 2020-02-25 US US16/800,998 patent/US10803258B2/en active Active
- 2020-02-25 US US16/801,015 patent/US10803259B2/en active Active
- 2020-02-25 SG SG11202108799QA patent/SG11202108799QA/en unknown
- 2020-02-25 CA CA3130114A patent/CA3130114A1/en active Pending
- 2020-02-25 KR KR1020217030751A patent/KR20220002875A/ko unknown
- 2020-02-25 EP EP20763126.8A patent/EP3931727A4/en active Pending
- 2020-02-25 WO PCT/US2020/019747 patent/WO2020176538A1/en unknown
- 2020-02-26 TW TW109106267A patent/TWI831932B/zh active
- 2020-08-17 US US16/995,674 patent/US11023691B2/en active Active
-
2021
- 2021-05-03 US US17/246,892 patent/US11775779B2/en active Active
- 2021-12-08 US US17/545,137 patent/US11886942B2/en active Active
-
2023
- 2023-12-13 US US18/538,172 patent/US20240193379A1/en active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8700184B2 (en) * | 2005-11-11 | 2014-04-15 | L&L Engineering, Llc | Methods and systems for adaptive control |
CN107408103A (zh) * | 2015-02-02 | 2017-11-28 | 优创半导体科技有限公司 | 配置成使用一个或多个复数算术指令对可变长度向量进行操作的向量处理器 |
CN106814924A (zh) * | 2015-11-27 | 2017-06-09 | 原相科技股份有限公司 | 讯号取样方法以及感测系统 |
WO2017127086A1 (en) * | 2016-01-21 | 2017-07-27 | Hewlett Packard Enterprise Development Lp | Analog sub-matrix computing from input matrixes |
US20180004708A1 (en) * | 2016-07-01 | 2018-01-04 | Hewlett Packard Enterprise Development Lp | Vector-matrix multiplications involving negative values |
TW201815196A (zh) * | 2016-10-07 | 2018-04-16 | 華碩電腦股份有限公司 | 無線通訊系統中導出上行參考訊號的傳送功率的方法和設備 |
Also Published As
Publication number | Publication date |
---|---|
CA3130114A1 (en) | 2020-09-03 |
US20200272795A1 (en) | 2020-08-27 |
JP7555944B2 (ja) | 2024-09-25 |
US20210279432A1 (en) | 2021-09-09 |
SG11202108799QA (en) | 2021-09-29 |
US20240193379A1 (en) | 2024-06-13 |
CN113853600A (zh) | 2021-12-28 |
EP3931727A4 (en) | 2022-11-30 |
US20200272794A1 (en) | 2020-08-27 |
US10803258B2 (en) | 2020-10-13 |
EP3931727A1 (en) | 2022-01-05 |
US20220100973A1 (en) | 2022-03-31 |
KR20220002875A (ko) | 2022-01-07 |
TW202103025A (zh) | 2021-01-16 |
JP2022523209A (ja) | 2022-04-21 |
US11023691B2 (en) | 2021-06-01 |
WO2020176538A1 (en) | 2020-09-03 |
US20200380217A1 (en) | 2020-12-03 |
US11886942B2 (en) | 2024-01-30 |
US10803259B2 (en) | 2020-10-13 |
US11775779B2 (en) | 2023-10-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI831932B (zh) | 混合類比-數位處理器及該處理器中執行的方法 | |
TWI818020B (zh) | 光子處理系統及方法 | |
KR102589616B1 (ko) | 광전자 컴퓨팅 시스템 | |
US11671182B2 (en) | Systems and methods for analog computing using a linear photonic processor | |
WO2019222150A1 (en) | Algorithms for training neural networks with photonic hardware accelerators | |
TW202032187A (zh) | 實數光子編碼 | |
TW202013265A (zh) | 使用可編程奈米光子器件計算旋積的方法 | |
CN112823359A (zh) | 光电计算系统 | |
CN113570051B (zh) | 光电处理系统 | |
CN113496281A (zh) | 光电计算系统 | |
CN113935493A (zh) | 一种基于集成光学的可编程高维量子计算芯片结构 |