CN114514490A - 使用线性光子处理器进行模拟计算的系统和方法 - Google Patents

使用线性光子处理器进行模拟计算的系统和方法 Download PDF

Info

Publication number
CN114514490A
CN114514490A CN202080068642.9A CN202080068642A CN114514490A CN 114514490 A CN114514490 A CN 114514490A CN 202080068642 A CN202080068642 A CN 202080068642A CN 114514490 A CN114514490 A CN 114514490A
Authority
CN
China
Prior art keywords
optical
matrix
output
vector
processor
Prior art date
Legal status (The legal status 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 status listed.)
Pending
Application number
CN202080068642.9A
Other languages
English (en)
Inventor
达吕斯·布南达尔
尼古拉斯·C·哈里斯
迈克尔·古尔德
卡尔·雷米
托莫·拉佐维奇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Light Material Co
Original Assignee
Light Material Co
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
Application filed by Light Material Co filed Critical Light Material Co
Publication of CN114514490A publication Critical patent/CN114514490A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06EOPTICAL COMPUTING DEVICES; COMPUTING DEVICES USING OTHER RADIATIONS WITH SIMILAR PROPERTIES
    • G06E3/00Devices not provided for in group G06E1/00, e.g. for processing analogue or hybrid data
    • G06E3/001Analogue devices in which mathematical operations are carried out with the aid of optical or electro-optical elements
    • G06E3/005Analogue devices in which mathematical operations are carried out with the aid of optical or electro-optical elements using electro-optical or opto-electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/28Supervision thereof, e.g. detecting power-supply failure by out of limits supervision
    • 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
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/20Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits characterised by logic function, e.g. AND, OR, NOR, NOT circuits
    • H03K19/21EXCLUSIVE-OR circuits, i.e. giving output if input signal exists at only one input; COINCIDENCE circuits, i.e. giving output only if all input signals are identical
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B10/00Transmission systems employing electromagnetic waves other than radio-waves, e.g. infrared, visible or ultraviolet light, or employing corpuscular radiation, e.g. quantum communication
    • H04B10/80Optical aspects relating to the use of optical transmission for specific applications, not provided for in groups H04B10/03 - H04B10/70, e.g. optical power feeding or optical transmission through water
    • H04B10/801Optical aspects relating to the use of optical transmission for specific applications, not provided for in groups H04B10/03 - H04B10/70, e.g. optical power feeding or optical transmission through water using optical interconnects, e.g. light coupled isolators, circuit board interconnections
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B10/00Transmission systems employing electromagnetic waves other than radio-waves, e.g. infrared, visible or ultraviolet light, or employing corpuscular radiation, e.g. quantum communication
    • H04B10/80Optical aspects relating to the use of optical transmission for specific applications, not provided for in groups H04B10/03 - H04B10/70, e.g. optical power feeding or optical transmission through water
    • H04B10/801Optical aspects relating to the use of optical transmission for specific applications, not provided for in groups H04B10/03 - H04B10/70, e.g. optical power feeding or optical transmission through water using optical interconnects, e.g. light coupled isolators, circuit board interconnections
    • H04B10/803Free space interconnects, e.g. between circuit boards or chips

Abstract

提供了一种使用线性光子处理器执行矩阵运算的系统和方法。线性光子处理器形成为第一振幅调制器和第二振幅调制器的阵列,第一振幅调制器被配置为将向量元素编码为第一光信号,并且第二振幅调制器被配置为将向量元素和矩阵元素之间的乘积编码为第二光信号。线性光子处理器可被配置为执行矩阵与向量和/或矩阵与矩阵运算。

Description

使用线性光子处理器进行模拟计算的系统和方法
相关申请
本申请根据35§USC 119(e)要求于2019年7月29日提交的题为“LINEAR PHOTONICPROCESSOR”的美国临时专利申请序列号62/879,936、代理人卷宗号为L0858.70016US00的优先权,并且本申请根据35§USC 119(e)要求于2019年11月22日提交的题为“SYSTEMS ANDMETHODS FOR ANALOG COMPUTING”、代理人卷宗号为L0858.70016US01的美国临时专利申请序列号62/939,480的优先权,它们的全部内容通过引用纳入本文。
背景技术
常规的计算使用包括数百万个晶体管的电路的处理器对电信号所表示的信息位实施逻辑门。常规的中央处理器(CPU)的架构是为通用计算而设计的,但没有针对特定类型的算法进行优化。因此,专门的处理器已经开发出更适合特定算法的架构。例如,图形处理单元(GPU)具有高度并行的架构,在执行图像处理、图形操作和其他可并行化应用(诸如神经网络和深度学习)时,它们比CPU更高效。
发明内容
本发明的一些实施例涉及一种用于实施有符号数值的装置,该装置包括:光学检测器,其包括第一端子和第二端子;将光学检测器的第一端子与节点或参考电压耦合的第一开关;将光学检测器的第二端子与节点或电压轨耦合的第二开关;以及控制电路,被配置为:至少部分地通过将第一开关设置为将第一端子与参考电压耦合、并且将第二开关设置为将第二端子与节点耦合,来产生正符号数值输出;以及至少部分地通过将第一开关设置为将第一端子与节点耦合、并将第二开关设置为将第二端子与电压轨耦合,来产生负符号数值输出。
一些实施例涉及一种光处理系统,包括:第一多个光调制器,每个光调制器被配置为接收输入光信号,调制输入光信号,并输出表示向量元素的第一光信号;第二多个光调制器,每个光调制器与第一多个光调制器的光调制器在光学上耦合,并被配置为接收第一光信号,调制第一光信号,并输出表示向量和矩阵之间的矩阵与向量乘法的一部分的第二光信号;多个光学检测器,每个光学检测器与第二多个光调制器的光调制器光学耦合,并被配置为将第二光信号转换为表示矩阵与向量乘法的一部分的电信号,其中,多个光学检测器中的每个光学检测器包括第一端子和第二端子;将第一光学检测器的第一端子与输出节点或参考电压耦合的第一开关;将第一光学检测器的第二端子与输出节点或电压轨耦合的第二开关;以及控制电路,被配置为:至少部分地通过将第一开关设置为将第一光学检测器的第一端子与参考电压耦合、并且将第二开关设置为将第一光学检测器的第二端子与输出节点耦合,来产生正符号数值输出;以及至少部分地通过将第一光学检测器的第一开关设置为将第一端子与输出节点耦合、并将第一光学检测器的第二开关设置为将第二端子与电压轨耦合,来产生负符号数值输出。
一些实施例涉及一种用于实施由光学处理器的光学检测器输出的有符号数值的方法,该方法包括:使用包括第一端子和第二端子的光学检测器将输出光信号转换为第一电信号,输出光信号由光学处理器的一部分输出;使用与光学处理器耦合的至少一个常规处理器,来确定第一电信号表示的是正符号数值还是负符号数值;响应于确定出第一电信号表示的是正符号数值还是负符号数值,使用光学处理器的控制电路,来布置与第一端子耦合的第一开关的设置和与第二端子耦合的第二开关的设置,其中,控制电路被配置为:至少部分地通过将第一开关设置为将第一端子与参考电压耦合、以及将第二开关设置为将第二端子与节点耦合,来产生正符号数值输出;以及至少部分地通过将第一开关设置为将第一端子与节点耦合、并将第二开关设置为将第二端子与电压轨耦合,来产生负符号数值输出;以及从光学检测器输出第一电信号,使得第一电信号基于第一电信号表示的是正符号数值还是负符号数值的确定,而通过第一开关或第二开关。
一些实施例涉及一种用于实施矩阵与向量乘法运算的光学处理器,该光学处理器包括:第一多个光调制器,每个光调制器被配置为接收输入光信号、调制输入光信号、并输出表示向量元素的第一光信号;第二多个光调制器,每个光调制器与第一多个光调制器中的光调制器光学耦合,并被配置为接收第一光信号,调制第一光信号,并输出表示向量和矩阵之间的矩阵与向量乘法的一部分的第二光信号;多个光学检测器,每个光学检测器与第二多个光调制器中的光调制器耦合,并被配置为将第二光信号转换为表示矩阵与向量乘法的一部分的电信号;以及多个开关,被配置成当向量和/或矩阵的值包括零时,通过阻止光信号或电信号的传输来在矩阵与向量乘法运算中实施零值,其中多个开关中的开关与第一多个光调制器中的每一个或多个光学检测器中的每一个的输出耦合。
一些实施例涉及一种使用光学处理器执行矩阵与向量行乘法运算的方法,该方法包括:使用第一光调制器调制输入光信号来以第一光信号光学地表示向量元素;使用第二光调制器调制第一光信号来以第二多个光信号光学地表示被加项(summand),其中,被加项在被求和时表示向量元素与矩阵行之间的乘积;使用光学检测器将第二多个光信号转换为多个被加项电信号;以及当向量元素的值等于零时,致使与第一光调制器的输出耦合的开关阻止第一光信号传输到第二光调制器,和/或当矩阵行的一个或多个元素的值等于零时,致使与光学检测器的输出耦合的一个或多个开关阻止被加项电信号的传输。
一些实施例涉及包括指令的至少一种非暂时性计算机可读介质,当该指令由至少一个光学处理器执行时,使光学处理器执行以下方法:使用第一光调制器调制输入光信号来以第一光信号光学地表示向量元素;使用第二光调制器调制第一光信号来以第二多个光信号光学地表示被加项,其中被加项在被求和时表示向量和矩阵行之间的乘积;使用光学检测器将第二多个光信号转换为多个被加项电信号;以及当向量元素的值等于零时,致使与第一光调制器的输出耦合的开关阻止第一光信号传输到第二光调制器,和/或当矩阵行的一个或多个元素的值等于零时,致使与光学检测器的输出耦合的一个或多个开关阻止被加项电信号的传输。
一些实施例涉及一种使用光学处理器执行矩阵与矩阵运算的方法,该方法包括:将第一矩阵编程到第一光学子处理器中;将第二矩阵编程到第二光学子处理器中,第二光学子处理器包括与第一光学子处理器的输出耦合的输入;将多个独热向量作为光信号输入第一光学子处理器;以及从第二光学子处理器输出表示第一和第二矩阵的乘法的一部分的输出向量。
一些实施例涉及一种被配置为执行矩阵与矩阵运算的光学处理器,该光学处理器包括:第一光学子处理器,被配置为光学地执行独热向量和第一矩阵的矩阵与向量乘法以获得第一向量;以及第二光学子处理器,被配置为从第一光学子处理器接收输出信号并光学地执行第一向量和第二矩阵的矩阵与向量乘法。
一些实施例涉及一种被配置为执行矩阵与矩阵运算的光学处理器,该光学处理器包括:第一光学子处理器,包括:第一多个光调制器,每个光调制器被配置为接收输入光信号,调制输入光信号,以及输出表示独热向量元素的第一光信号;第二多个光调制器,每个光调制器与第一多个光调制器中的光调制器光学耦合,并被配置为接收第一光信号,调制第一光信号,以及输出表示独热向量和第一矩阵之间的矩阵与向量乘法的一部分的第二光信号;第一多个光学检测器,每个光学检测器与第二多个光调制器中的光调制器耦合,并被配置为将第二光信号转换为表示矩阵与向量乘法的一部分的电信号;以及第一多个电求和单元,每个电求和单元与第一多个光学检测器中的两个或更多个光学检测器的输出耦合,并且被配置为输出表示由矩阵与向量乘法的一部分求和所产生的向量元素的电信号;以及第二光学子处理器,包括:第三多个光调制器,每个光调制器从第一光学子处理器的多个电求和单元中的电求和单元接收输出电信号,并且其中每个光调制器被配置为接收输入光信号,根据接收到的输出电信号调制输入光信号,并输出表示向量元素的第三光信号;第四多个光调制器,每个光调制器与第三多个光调制器中的光调制器光学耦合,并被配置为接收表示向量元素的第三光信号,调制第三光信号,以及输出表示第一矩阵和第二矩阵之间的矩阵与矩阵乘法的一部分的第四光信号;第二多个光学检测器,每个光学检测器与第三多个光调制器中的光调制器耦合,并被配置为将第三光信号转换为表示矩阵与矩阵乘法的一部分的电信号;以及第二多个电求和单元,每个电求和单元与第二多个光学检测器中的两个或更多个光学检测器的输出耦合,并且被配置为输出表示由矩阵与矩阵乘法的一部分求和所产生的矩阵元素的电信号。
附图说明
将参考以下图纸描述各种方面和实施例。应该理解的是,这些图纸不一定是按比例绘制的。在附图中,在各种图纸中示出的每个相同或几乎相同的部件由类似的数字表示。为清晰起见,并非每个部件都可以在每个图纸中标记。
图1是示出根据本文所述技术的一些实施例的光子处理系统的示例的示意图;
图2是示出根据本文所述技术的一些实施例的线性光子处理器的示意图;
图3A是示出根据本文所述技术的一些实施例的用于实施矩阵与向量(matrix-vector)运算的光子架构的示例的框图;
图3B是示出根据本文所述技术的一些实施例的用于最小化电气路径长度的光子架构布局的示例的框图;
图4A-4C是根据本文所述技术的一些实施例的配置为在光学上表示零的强度调制器的说明性示例;
图5是示出根据本文所述技术的一些实施例的包括波分复用(WDM)的光子架构的示例的框图;
图6A是根据本文所述技术的一些实施例的用于实施有符号值的电路的示意图;
图6B是根据本文所述技术的一些实施例的用于实施有符号值的布尔电路的示意图;
图7是根据本文所述技术的一些实施例的用于分配符号位的光学电路的示意图;
图8是示出根据本文所述技术的一些实施例的用于实施有符号值的过程的流程图;
图9A-9D是示出根据本文所述技术的一些实施例布置成子矩阵的光子处理器的示意图;
图10A-10B是示出根据本文所述技术的一些实施例布置成子矩阵且其输出在本地相加的光子处理器的示意图;
图11是根据本文所述技术的一些实施例的被配置为使用具有多个波长的输入光的光子处理器的示意图;
图12A是根据本文所述技术的一些实施例的配置用于多波长光的光学组合器的示意图;
图12B是根据本文所述技术的一些实施例的图12A的组合器的自由光谱范围(FSR)的图表。
图12C是根据本文所述技术的一些实施例的传输作为对于图12A的几个组合器的波长的函数的图表;
图13A-13C是示出根据本文所述技术的一些实施例的被配置为实施稀疏向量和/或矩阵的光子处理器的框图;
图14是示出根据本文所述技术的一些实施例的执行包括稀疏向量和/或矩阵的矩阵与向量运算的过程的流程图;
图15A-15D是示出根据本文所述技术的一些实施例的用于光子处理器的信号读出策略的示意图;
图16A-16D是示出根据本文所述技术的一些实施例的具有集群读出电路的光子处理器架构的示意图;
图17是根据本文所述技术的一些实施例的配置为实施矩阵与矩阵运算的光子处理器的框图;以及
图18是示出根据本文所述技术的一些实施例的使用光子处理器执行矩阵与矩阵运算的过程的流程图。
具体实施方式
基于电路的处理器由于诸如阻抗等电气特性,在速度和效率方面受到限制。例如,连接多个处理器内核和/或将处理器内核连接到存储器,使用了具有非零阻抗的导电迹线。较大的阻抗值限制了在可忽略的误码率情况下数据通过迹线传输的最大速率。对于需要数十亿次运算的处理,这些延迟可能会导致大量时间损失。除了电路在速度上的低效率外,由电路阻抗引起的能量耗散所生成的热量也是开发电处理器的障碍。
发明人已经认识到并理解到,使用光信号代替电信号或与电信号结合使用克服了电计算的许多上述问题。光信号在光传播的介质中以光速行进;因此,光子信号的延迟远小于电传播延迟的限制。附加地,增加光信号行进的距离不会消耗任何功耗,从而开辟了新的拓扑结构和处理器布局,这使用电信号是不可行的。因此,基于光的处理器,诸如基于光子的处理器,可能比常规的电子处理器具有更好的速度和效率性能。
发明人已经认识到并理解到,基于光的处理器,例如基于光子的处理器,可能非常适合于特定类型的算法。例如,许多机器学习算法,例如支持向量机、人工神经网络、概率图形模型学习等,严重依赖多维度阵列/张量的线性变换。最简单的例子是将向量乘以矩阵,其使用具有复杂度为O(N2)的常规算法,其中N是乘以相同维度的向量的矩形矩阵的维度。本发明人已经认识到并理解到,基于光子的处理器可以借由传播特定的输入光信号集通过有源光学部件的可配置阵列,以高度并行的方式执行诸如矩阵乘法的线性变换。使用这样的实施方案,N=512维度的矩阵与向量乘法可以在数百皮秒内完成,而使用常规的基于电路的处理则为几十到几百纳秒。
通用矩阵与矩阵(GEMM)运算在软件算法中无处不在,包括那些用于图形处理、人工智能、神经网络和深度学习的算法。当今计算机中的GEMM计算通常使用基于晶体管的系统(诸如GPU系统或脉动阵列系统)执行。还可以通过使用表示输入矩阵元素的干涉仪的网格阵列混合表示输入向量元素的输入光信号阵列,来在光子域中执行GEMM计算。
使用光子阵列的矩阵与向量乘法与它们的电子对应物相比可以是高功率效率的,这是因为光信号可以在半导体基板内以最小的损耗传播。本发明人已经认识到并理解到与使用此类光子阵列相关联的许多挑战。虽然干涉在数学上是由单式矩阵描述的,但通过有意地在干涉仪的网格阵列中添加损耗,该方案可以推广到任意线性变换。然而,光子阵列通常使用几乎无损耗的干涉仪,这些干涉仪不展现相位相关的损耗。该属性会限制系统中可允许的调制方案;特别地,它阻止了使用基于结点的高带宽(例如,高达100GHz)调制方案。此外,每个光路“看到”的光学设备的数量随矩阵的维度而缩放。对于较大的矩阵,这导致每个光信号上的损失量更大。因此,现实世界调制器中的非零插入损耗对这种光子处理系统中可以表示的矩阵大小设置了实际限制。此外,将矩阵编程到干涉仪阵列中可能具有挑战性,这是因为矩阵元素必须通过算法转换为每个干涉仪的相位设置。
因此,本发明人开发了一种用于执行矩阵与向量乘法(GEMM运算的核心运算)的新型光子处理架构,其避免或减轻了上述挑战。该光子处理架构通过以下方式来执行矩阵与向量乘法:即,调制光信号阵列的强度以编码输入向量的元素、对光信号阵列进行衰减或放大以执行输入矩阵的元素与输入向量的元素之间的乘法、使用输出检测器阵列检测光信号、并将所产生的光电检测器电流相加以产生表示矩阵与向量乘积的最终输出结果。
本发明人已经认识到并理解到,这样的光子处理架构可以利用非相干光(例如,这样的光,其中电磁波在一段时间内彼此不保持固定的且可预测的相位关系)用于其运算。使用非相干光源阵列的优点是不需要相位校正方案(例如,校正热漂移和/或设备制造缺陷)。此外,本发明人已经认识到并理解到,在这种光子处理架构中,矩阵元素可以直接编码在衰减器中。最后,发明人已经认识到,无论与被编码的矩阵的大小如何,这种光子处理架构中的光路都要经过两个调制器(例如,向量调制器和矩阵调制器)。因此,本文描述的光子处理架构允许具有耦合的振幅和相位调制的调制方案,以及动态损耗、不随矩阵大小缩放的损耗缩放,以及更直接的编码方案,同时保持基于光子的GEMM处理器的功率效率优势。
以下是与使用线性光子处理器执行GEMM运算的技术相关的各种概念和实施例的更详细描述。应当理解,本文描述的各个方面可以以多种方式中的任何一种实施。本文提供的具体实施方案的示例仅用于说明目的。此外,以下实施例中描述的各个方面可以单独使用或以任何组合使用,并且不限于本文明确描述的组合。
图1是根据本文所述技术的一些实施例的实施光子处理技术的光子处理系统的示意图。光子处理系统100包括控制器102、光源108和光子处理器110。光子处理系统100接收由一组输入位串表示的输入向量和/或矩阵(作为来自外部处理器(例如,CPU)的输入),并产生由一组输出位串表示的输出向量和/或矩阵。例如,如果输入向量是M维向量,则输入向量可由M个单独的位串表示,每个位串表示向量的相应分量。可替选地或附加地,例如,如果输入矩阵是N×N矩阵,则输入矩阵可以由N2个单独的位串表示,每个位串表示输入矩阵的相应分量。输入位串可以作为电信号或光信号从外部处理器接收,而输出位串可以作为电信号或光信号传输到外部处理器。
在一些实施例中,控制器102不必在每个过程迭代之后输出输出位串。相反,控制器102可以使用一个或多个输出位串来确定新输入位流以馈送通过光子处理系统100的部件。在一些实施例中,输出位串本身可以被用作由光子处理系统100实施的过程的后续迭代的输入位串。在其他实施例中,以各种方式组合多个输出位流以确定后续输入位串。例如,一个或多个输出位串可以在一起求和,以作为后续输入位串的确定的一部分。
在一些实施例中,控制器102包括用于控制光源108和/或光子处理器110的处理器104和存储器106。存储器106可被用于存储来自光子处理器110的输入和输出位串和/或结果。存储器106还可以存储可执行指令,当由处理器104执行时,该指令控制光源108和/或光子处理器110的控制部件(例如,编码器、移相器和/或检测器)。例如,存储器106可以存储可执行指令,其致使处理器104基于已经发生的计算的迭代次数来确定要发送给光子处理器110的新输入值。因此,由光子处理系统100向外部处理器传输的输出矩阵可以是多个累积乘法运算的结果,而不仅仅是单个乘法运算。在另一实施例中,光子处理系统100计算的结果可在存储在存储器106中之前,由处理器104进行数字地操作。位串上的运算可能不仅仅是线性的,还可能是非线性的,或者更一般地说,是图灵完备的。
根据本技术的一些实施例,光源108可被配置为向光子处理器110提供N个光信号。光源108可以包括例如一个或多个相干和/或非相干光源,这些光源被配置为产生N个光信号。在一些实施例中,光源108可包括被配置为发射波长为λ0的光的激光器。发射的波长可以是电磁光谱的可见光、红外(包括近红外、中红外和远红外)或紫外部分。在一些实施例中,λ0可以是O波段、C波段或L波段。在一些实施例中,光学的光源108可包括多个激光器,其被配置为发射不同波长λ1、λ2、…、λn的光。
根据本文描述的技术的一些实施例,光源108的每个输出可以与光子处理器110的单个输入一对一地耦合。在一些实施例中,光源108可被布置在与光子处理器110相同的基板(例如,相同的芯片)上。在这样的实施例中,光信号可以在被布置在相同基板上的波导(例如,硅光子波导)中从光源108传输到光子处理器110。在其他实施例中,光源108可被布置在与光子处理器110分离的基板上。在这些实施例中,光信号可以通过一根或多根光纤从光源108传输到光子处理器110。
光子处理器110可根据本文所述技术的一些实施例执行矩阵与向量、矩阵与矩阵和/或张量与张量乘法运算。在一些实施例中,光子处理器110包括两部分:调制器,被配置为在来自光源108的光信号的振幅和/或强度中对输入向量、矩阵和/或张量的元素进行编码(例如,参见图2的振幅调制器204和208);以及光学检测器,被配置为检测光信号并将其转换为与编码元素的乘积成比例的电信号(例如,参见图2的检测器210)。光子处理器110将这些电信号输出到控制器102以进行进一步处理和/或输出到外部处理器。
在一些实施例中,输入矩阵或张量中的一个或多个可能太大,以致于无法使用单通路在光子处理器中进行编码。在这种情况下,可以在光子处理器中对较大矩阵的一部分进行编码,并且可以对较大矩阵和/或较大多个矩阵的单个部分执行乘法处理。该第一运算的结果可以存储在存储器106中。随后,可以在光子处理器中对较大矩阵的第二部分进行编码,并且可以执行第二乘法处理。较大矩阵的这种“平铺(tiling)”可以继续进行,直到对较大矩阵的所有部分执行了乘法处理为止。多个乘法处理的结果可存储在存储器106中,然后可以组合以形成张量乘法运算的最终结果。
在一些实施例中,光子处理器110可以将N个单独的光脉冲转换为电信号。在一些实施例中,每个光脉冲的强度和/或相位可由光子处理器110内的光学检测器进行测量,如至少结合图2和3更详细地描述。表示这些测量值的电信号随后可被电求和和/或输出到控制器102以用于进一步的计算和/或显示。
图2是示出根据本文所述技术的一些实施例的线性光子处理器200的示例的示意图。线性光子处理器200可以被实施为如结合图1所述的光子处理系统100的光源108和光子处理器110。
在一些实施例中,线性光子处理器200可被配置为执行矩阵与向量乘法运算
Figure BDA0003570903000000111
其中w是输入PXQ矩阵,
Figure BDA0003570903000000112
是具有Q个元素的输入向量,并且
Figure BDA0003570903000000113
是具有P个元素的输出向量。光源202可产生被传递到Q个第一振幅调制器204的相干或非相干光。在一些实施例中,光源202可位于与第一振幅调制器204相同的基板上,并且光可通过光子波导传递到第一振幅调制器204。在一些实施例中,光源202可位于与第一振幅调制器204不同的基板上,并且光可至少部分通过光纤传递到第一振幅调制器204。
在一些实施例中,第一振幅调制器204可被配置成基于相应的输入位串(例如,如图1所示,来自控制器)将输入向量的元素编码为从光源202接收到的光信号的振幅。调制机制可以包括,例如,机电、等离子体色散、电光(χ(2)、χ(3)、χ(4)……)、热光和/或压电光学。设Ij为接收到的光信号的强度,该光信号是第j个第一振幅调制器的输入。每个第一振幅调制器j对光的强度进行调制以编码xj的值,使得每个第一振幅调制器j输出具有强度xjIj的第一光信号。
在一些实施例中,第一振幅调制器204可以是可变衰减器或由DAC(未示出)控制的任何其他合适的振幅调制器,其还可以由控制器(例如,图1的控制器102)控制。一些振幅调制器已知用于电信应用,并且可以在一些实施例中使用。在一些实施例中,可变分束器可被用作第一振幅调制器204,其中仅保持可变分束器的一个输出,并且丢弃或忽略另一个输出。可在一些实施例中使用的振幅调制器的其他示例包括行波调制器、基于腔的调制器、弗兰之-克尔德什(Franz-Keldysh)调制器、基于质子体的调制器、基于二维材料的调制器和纳米光机电开关(NOEMS)。
在一些实施例中,来自第一振幅调制器204的第一光信号可以被分割log2(P)次,并使用光子波导206传输到P个第二振幅调制器208。光子波导206可以包括例如硅光子波导或任何其他合适的电介质光子波导材料。分割后(例如,当由每个第二振幅调制器208接收时)的第一光信号的强度为xjIj/P。
在一些实施例中,第二振幅调制器208中的每一个可被配置为对矩阵w的一个元素的一个值进行编码。第二振幅调制器208可以是与第一振幅调制器204相同种类的调制器,或者可替选地,可以是与第一振幅调制器204不同种类的调制器。可能总共有P×Q个第二振幅调制器来表示整个矩阵w。接收到的具有强度xjIj/P的第一光信号可由矩阵w的第p行中的第二振幅调制器208进行调制,以产生具有强度wpjxjIj/P的第二光信号。该光强度表示输出光信号的振幅中矩阵元素wpj和向量元素xj的乘积。
在一些实施例中,由每个第二振幅调制器208输出的输出第二光信号可以被传输到光学检测器210,并使用光学检测器210对其进行检测。例如,光学检测器210可以是,例如,被配置成产生与入射到检测器上的光强度成比例的光电流的光学检测器。具体地,由位于行p和列j中的光学检测器210产生的光电流是ipj∝wpjxjIj/P。在一些实施例中,光学检测器210可以是例如于2019年5月14日提交的题为“Optical Differential Low-NoiseReceivers and Related Methods”的美国专利申请公开号2020-0228077中描述的光电检测器,其通过引用全部纳入本文。
在一些实施例中,从每行中的光学检测器210生成的光电流可被组合以产生表示输出向量
Figure BDA0003570903000000121
的元素的求和输出
Figure BDA0003570903000000122
其是向量
Figure BDA0003570903000000123
和矩阵w的行的乘积。该求和可通过例如使用导电迹线212(例如,金属迹线)将单个行的所有光电探测器的所有阴极连接在一起来执行。在一些实施例中,可使用具有适当位宽度和精度的跨阻放大器(TIA)和模数转换器(ADC)的组合来读出求和的光电流的值。读出值随后可以返回给控制器(例如,图1的控制器102),以用于进一步的计算和/或应用。
在一些实施例中,可以理解,通过将由第二振幅调制器208输出的光信号路由到同一检测器,可以减少光学检测器210的数量。这种更改仍将产生适当的电信号输出,这是因为矩阵与向量乘法信息是编码在光的强度中的,该强度与光学探测器产生的光电流成正比。为了阻止路由到同一检测器的信号之间的不必要干扰,可以使用充分地非相干的光源,或者还可以对光学检测器210进行时间复用,使得第一输出信号首先到达,第二输出信号在第一输出信号之后到达,第三输出信号在第二输出信号之后到达,以此类推。检测器读出电路可使用电存储电路来存储在该实施例中已累积的电荷。
在先前的光子处理架构中,到编码矩阵w的调制器的输入必须使用计算上昂贵的分解程序来计算。在所描述的线性光子处理器200中,到每个矩阵调制器的输入是矩阵w本身的元素,完全消除了在执行光学计算之前进行任何分解的需要。
附加地,作为矩阵w的“欧几里德空间”表示法而不是先前光子处理架构所使用的“相空间”表示法的直接结果,在上述线性光子处理架构中存在用于NXN矩阵的N2个光路,每个光路都与矩阵w的单个元素相关联。这一结果对该架构的性能和缩放有两个重要影响。
首先,无论所表示的矩阵大小如何,每个光路都包含两个调制器。相反,某些光子处理架构中的光路包含O(N)调制器。现实世界中的调制器受到非零插入损耗的影响,因此限制了在给定可接受光损耗下可被表示的矩阵的大小。上述线性光子处理器200在矩阵大小上不受此限制。
其次,在其他光子处理架构中,每个矩阵元素通常与通过光学阵列的许多光路相关联。通过任何给定“相空间”调制器的路径数影响了所表示的矩阵的许多元素。此外,受特定调制器影响的元素数量不是恒定的,从而导致不均匀的错误灵敏度。例如,调制器阵列中心附近的调制器的灵敏度可能比边缘和角落处的调制器的灵敏度高得多。这是因为与边缘或角落处的调制器相比,中心调制器位于更多输入光信号的传播路径中。相反,上述线性光子处理器200中的每个“欧几里德空间”矩阵调制器中的错误仅影响矩阵元素的特定值。
可以进一步理解,在一些实施例中,上述线性光子处理器200可以减少光子处理架构内的(例如,波导206的)光子交叉的数量。由于矩阵与向量乘法中的数据流的性质(例如,单个向量元素可以广播到多行,并且来自每行的不同列的信号可以组合在一起以产生单个输出向量元素),所以在数据路径中将固有地存在交叉,其可以是在光子域或在电子域中。例如,对于光子处理器的情况,评估部分乘积Mijxj涉及xj广播到i的多行。此时,无需交叉。但是,要在单行内执行不同列的求和,即∑jMijxj,光子或电交叉成为必要。
两个光子波导之间的交叉可以通过使用同一半导体层内的多模干涉仪(MMI)交叉或通过使用半导体基板的另一层而物理地实现。与电交叉相比,光子交叉是理想的,这是因为光子交叉可以减少电路的总电容,该总电容对系统的带宽产生不利影响。然而,基于MMI的交叉会对光信号造成严重的串扰和损耗。
被用于广播xj值的二叉树的性质实际上可以减少必要交叉的次数。例如,考虑当值xj被分割N次的情况(对于N×N矩阵与大小为N的向量的乘法)。如果使用单个1对N分割器执行分割,则可能需要大约N/2个光子交叉。另一方面,如果使用以树状方式间隔的二元1对2分离器来执行分割,则可能需要大约N个光子交叉来清除广播波导。
在一些实施例中,当串扰和损耗由于光子波导交叉的数量而变得显著时,可能希望以牺牲额外电容为代价在电域中设计交叉。电域中的交叉包括在同一半导体基板的两个不同金属层中路由两个信号。电气交叉可以放置在光电探测器的输出端。
图3A是根据本文描述的技术的一些实施例的用于实施矩阵与向量运算的线性光子处理器300a的说明性示例的框图。线性光子处理器300a类似于结合图2所述的线性光子处理器200,并且被配置为执行相同的矩阵与向量乘法运算
Figure BDA0003570903000000141
其中w是PXQ矩阵输入,
Figure BDA0003570903000000142
是具有Q个元素的输入向量,并且
Figure BDA0003570903000000143
是具有P个元素的输出向量。
在一些实施例中,线性光子处理器300a可以包括被配置为输出光信号的单个光源302。光源302可以是相干(例如,激光器)或非相干光源(例如,热光、超发光二极管、LED等)。在一些实施例中,由光源302输出的光信号可以通过被配置为将光信号分为Q个光信号的分束器304,每个光信号都被传输到第一振幅调制器306。
如在图2的线性光子处理器200中,第一振幅调制器306可被配置为将输入向量的元素编码为从光源302接收到的光信号的振幅。第一振幅调制器306可以是可变衰减器或由DAC(未示出)控制的任何其他合适的振幅调制器,其可以进一步由控制器(例如,图1的控制器102)控制。一些振幅调制器已知用于电信应用,并且可以在一些实施例中使用。在一些实施例中,可变分束器可被用作第一振幅调制器204,其中仅保持可变分束器的一个输出,并且丢弃或忽略另一个输出。可在一些实施例中使用的振幅调制器的其他示例包括行波调制器、基于腔的调制器、弗兰之-克尔德什(Franz-Keldysh)调制器、基于质子体的调制器、基于二维材料的调制器和纳米光机电开关(NOEMS)。
第一振幅调制器306随后可以输出第一光信号,该第一光信号表示第一光信号的振幅(例如,强度)中的输入向量的元素。第一光信号可以通过附加分束器304传输,使得第一分束器可以被分割P次。然后可以将分割的第一光信号传输到P个第二振幅调制器308。
在一些实施例中,第二振幅调制器308中的每一个可被配置为对矩阵w的一个元素的一个值进行编码。第二振幅调制器308可以是与第一振幅调制器306相同种类的调制器,或者可替选地,可以是与第一振幅调制器306不同种类的调制器。接收到的第一光信号可以由第二振幅调制器208进行调制,以产生第二光信号,其具有在输出第二光信号的振幅中表示矩阵元素wpj和向量元素xj的乘法的强度。
在一些实施例中,由每个第二振幅调制器308输出的输出第二光信号可以被传输到光学检测器310,并使用光学检测器310对其进行检测。例如,光学检测器310可以是,例如,被配置成产生与入射到检测器上的光强度成比例的光电流的光学检测器。
在一些实施例中,光学检测器310的一些输出可被传输到电求和电路312。如图3A的示例中所示,耦合到第二振幅调制器308(其被配置为表示矩阵行(例如,元素w11、w12和w13))的光学检测器310的输出被传输到相同的电求和电路312。在这些实施例中,电求和电路312可以包括:被配置为将从光学检测器310接收到的光电流相加的电路,使得来自电求和电路312的输出电信号表示输入向量和矩阵行(例如,对于矩阵w的第一行,电性地表示x1w11+x2w12+x3w13)的乘积。
在一些实施例中,电求和电路312可包括电压求和电路。例如,电求和电路312可以包括电阻器网络和放大器电路。在一些实施例中,由光学检测器310输出的电信号可以通过简单地将输出节点捆绑在一起进行求和。在读取输出结果之前执行此电求和有两个好处。首先,该较早的求和可减少在光子处理架构中使用的混合信号读出电路的数量,使得在该架构中仅使用P个读出电路元件(而不是如图2的线性光子处理器200的示例中的总共P×Q个此类电路)。其次,较早的求和增加了将由读出电路检测的光电流的大小。在光信号到达每个第二振幅调制器308之前,它们被分割成P条路。组合从Q个不同光电探测器生成的光电流可以补偿由于分割(如果Q≥P)导致的强度降低。
图3B是示出根据本文所述技术的一些实施例的线性光子处理器300b的示例的框图,该线性光子处理器300b具有被配置为使电气路径长度最小化的布局。由于电线受到寄生电阻、电感和电容的影响,因此设计此类电线的布局以最小化这些寄生效应(例如,通过最小化电迹线长度)是有用的。由光学检测器310输出的电信号是电流,并且这些电流可切换的速度可以取决于上述电寄生现象。为了实现高速运算,应尽量减少这些电寄生现象。
线性光子处理器300b具有与图3A的示例的线性光子处理器300a相同的部件,尽管为了清楚起见未示出分束器304。然而,在图3B的示例中,光学检测器310以环形配置被布置在电求和电路312周围。该环形配置最小化了光学检测器310和电求和电路312之间的电迹线的长度,从而最小化电寄生现象,诸如电阻、电感和电容。
一、代码和信号之间的非线性关系
模拟计算机通常将可转换为执行计算的某些物理过程(例如,电气、光子)的位串作为输入。然后,计算机基于这些物理过程的一个或多个测量值输出位串。
在一些实施例中,输入位串和调制信号以及输出信号和输出位串之间的关系不需要是线性的。事实上,非线性信号与代码的关系可能对某些算法有利。例如,在一些与图像分类相关的深度学习算法中,区分多个较小值可能更有价值,而区分多个较大值可能没有价值或没有必要。因此,此类算法可与输入DAC和输出ADC一起运行,其使用较大部分的码本对接近零的值进行编码,并使用较小部分的码本对接近最大输入/输出的较大值进行编码。通过非线性映射可以增加输入和输出的有效动态范围。
二、错误校正
模拟计算机在计算期间可能会出现错误。使用电子设备的模拟计算机基本上会遇到约翰逊-奈奎斯特(Johnson-Nyquist)噪声和电散粒噪声,这会在读出过程期间导致错误。当在输出读出电路的本底噪声附近操作时,电噪声可能具有小概率导致输出的最低有效位(LSB)中的位反转。对于具有更高带宽的读出电路来说,LSB反转的概率更高。这些LSB反转错误与数字计算电路(例如,乘法累加单元)中的门错误同义,但仅影响LSB。因此,如果发生LSB反转错误,则它们将被限制为与正确输出相差几个百分比的错误。例如,对于N位输出,LSB中的位反转错误对应于相对错误的约1/2N×100%。这与数字计算电路形成对比,在数字计算电路中虽然极不可能出现门错误,但会导致最高有效位(MSB)中的错误,因为数字电路对每一个位都平等对待。在模拟处理系统中,诸如图2、3A和3B的线性光子处理器,LSB具有更接近噪声功率的信号功率,而更高有效位具有指数级高于噪声功率的信号功率。结果,当与LSB相比时,更高有效位可能以指数级地不太可能承认位反转错误。
减轻位反转错误的一种方法是对计算执行错误校正。可以执行的最简单的错误校正算法是通过多次(例如,至少三次)执行相同的计算来增加冗余,并执行多数表决以更高的概率确定正确的结果。由于模拟计算机中影响LSB的错误的性质,不必对整个输出位串进行表决。相反,表决可以仅对LSB进行,或者至少仅对几个LSB进行。
当模拟处理器运行对较小错误具有鲁棒性的算法(诸如人工神经网络或常微分方程求解器)时,更高有效位对错误的弹性使模拟处理器具有优势。本发明人已经认识到,以LSB中更高的位反转错误概率为代价的更快的模拟处理器可被用于评估更具弹性的算法。在某些深度学习算法(例如,用于图像分类)中,较小错误仅会导致预测置信度降低,但不一定会导致预测精度降低。
使用基于强度的光学系统(诸如图2、3A和3B的线性光子处理器)有许多好处,包括大幅降低对温度波动和制造缺陷的敏感性。基于场的光子系统通常需要显著的稳定和微调以可靠地工作。上述提出的架构基本上不受此类相位错误和波动的影响。此外,由于基于强度的架构在其计算中不使用相位信息,所以它们适用于具有耦合的相位调制的强度调制方案。
三、部分乘积及其求和
在一些实施例中,矩阵元素wij和向量元素xj用定点数字表示来表示。在这种表示法中,如果
Figure BDA0003570903000000181
是无符号m1位数,并且
Figure BDA0003570903000000182
是无符号m2位数,则可以使用总共m1+m2+log2(n)位来完全表示生成的向量元素yi=∑jwijxj,其中n是矩阵w中的列数。通常,表示矩阵与向量乘积的结果的位数可能大于表示运算的输入的位数。如果被用于从光子处理器读出值的模数转换器(ADC)不能以全精度读出输出向量,则输出向量元素可以被四舍五入到ADC的精度。
在与光信号形式的输入向量通过光子处理系统发送的速率相对应的带宽上构建具有高比特精度的ADC是一种挑战。因此,如果需要完全精确的计算,则ADC的位精度通常可以限制表示矩阵元素wij和向量元素xj的位精度。因此,本发明人已经开发出一种方法,通过如下所述计算部分乘积和总和来获得其全精度下的输出向量,其可以是任意高的。为了清楚起见,需要表示wij或xj的位数被假定为相同,例如,m1=m2=m。
首先,矩阵元素wij和xj的位串表示可以被划分为d个部分,其中每个部分包含k=m/d位。因此,矩阵元素wij可被写成wij=wij [0]2k(d-1)+wij [1]2k(d-2)+…+wij [d-1]20,其中wij [a]是wij的第a个最高有效k位串的k位值。就位串而言,wij可被写成wij=wij [0]wij [1]…wij [d-1]。类似地,xj也可被写成xj=xj [0]2k(d-1)+xj [1]2k(d-2)+…+xj [d-1]20,其中,就其其位串而言,向量元素xj可被写成xj=xj [0]xj [1]…xj [d-1]…xj [d-1]。乘法yi=∑jwijxj可以用以下除法进行分解:
Figure BDA0003570903000000183
其中,集合Sp是a和b的所有值的集合,其中a+b=p。
然后,在一些实施例中,线性光子处理器随后可以被编程以实施矩阵wij [a]和输入向量xj [b],其每一个仅为k位精度。矩阵与向量乘法产生中间结果:yi [a,b]=∑jwij [a]xj [b]。然后可以存储输出向量yi [a,b],并且其精度可高达2k+log2(n)位。此乘法在集合Sp中的不同值a,b上进行迭代。然后,可以通过用数字电子设备(例如,在控制器或在其他地方)在a和b的不同迭代上执行求和
Figure BDA0003570903000000184
来计算最终结果。
上述方法允许用户通过操纵部分乘积及其求和来获得完全精确的计算,即使在可用ADC不能立即捕获完全精度的情况下。
四、通过序列化推广到具有张量的GEMM
在一些实施例中,本文描述的线性光子处理器(例如,结合图2、3A和3B)可以从矩阵与向量乘法运算扩展到矩阵与矩阵乘法。给定I×J个矩阵A和J×K个矩阵B,线性光子处理器可被配置为产生I×K个矩阵C=AB。矩阵A可以被编码到光子处理器中的第二振幅调制器(例如,第二振幅调制器208或308)中,并且矩阵B的列bk可以被编码到第一振幅调制器(例如,第一振幅调制器204或306)中。每个矩阵与向量乘法的结果是矩阵C的列ck。通过执行与bk的不同列的乘法并将结果存储在存储器中(例如,在控制器102中),可以逐列构建矩阵C。类似地,矩阵B可以被编码到光子处理器中的第二振幅调制器中,并且矩阵A的行ai可以被编码到第一振幅调制器中。在这种情况下,矩阵与向量乘法的结果是矩阵C的行ci,并且可以逐行构建输出矩阵C。
在一些实施例中,矩阵可能太大而无法在光子处理器中进行编码。在这种情况下,可以在第一较大输入矩阵的一部分和第二较大输入矩阵的一部分之间执行矩阵与矩阵乘法。乘法的结果被存储在内存中。随后,可以在光子处理器中对第一大输入矩阵的第二部分进行编码,并且可以使用第二大输入矩阵的一部分执行第二矩阵与矩阵乘法。较大矩阵的这种“平铺”可以继续进行,直到对两个较大矩阵的所有部分执行乘法处理为止。然后,可以组合乘法过程的结果以生成两个较大矩阵的乘法的最终结果。通过每次处理张量切片、将结果存储在内存中、并且随后将结果组合以形成输出张量,这种序列化思想可以应用于张量与张量乘法。
五、应用于神经网络和深度学习
本文描述的线性光子处理器(例如,结合图2、3A和3B)具有广泛的适用性,因为它可以加速各种GEMM运算并使它们更节能。今天,GEMM被用于线性代数计算,诸如执行特征值分解、奇异值分解或矩阵求逆。GEMM的一种重要应用是人工神经网络。
一种深层人工神经网络,在其最基本的层面上,涉及多个(多达数百层的)张量与张量乘法,其中每一层的线性变换后是非线性激活函数。考虑一种具有维度D的神经网络。对于具有O(ND)元素的输入张量和具有O(ND)元素的权重张量,执行张量与张量乘法所需的计算量为O(N2D-1),而执行激活函数所需的计算量为O(ND)。因此,张量与张量乘法通常主导深度神经网络的计算,并且因此本文提出的光子处理器可被用于加速人工神经网络计算。
训练人工神经网络通常涉及运行反向传播算法。考虑一种具有加权矩阵w和偏置向量
Figure BDA0003570903000000201
的深度人工神经网络的单层。对于输入向量
Figure BDA0003570903000000202
该层神经网络的输出结果是yi=f((wx)i+bi),其中f(.)是按元素应用的非线性函数。在具有常规随机梯度下降的反向传播中,迭代地调整权重矩阵,使得在时间t+1处的权重矩阵被定义为在时间t处的权重矩阵的函数和损耗函数相对于权重矩阵的权重的导数,如下所示:
Figure BDA0003570903000000203
其中η为学习率,并且(a,b)分别表示权重矩阵w的第a行和第b列条目。
演算链式规则可被应用于计算关于与该单一输入向量x相关联的权重矩阵(其中为便于表示,使用定义zi=(wx)i+bi=∑jwijxj+bi)内任何参数的损耗函数的梯度:
Figure BDA0003570903000000204
计算z关于wab的导数,结果为:
Figure BDA0003570903000000205
然后,表示损耗函数的梯度的求和可被重写为:
Figure BDA0003570903000000206
然后,可将第一求和定义为反向传播的错误向量
Figure BDA0003570903000000207
其中
Figure BDA0003570903000000208
为输入向量,从而得出最终表达式:
Figure BDA0003570903000000211
它是错误向量和输入向量之间的外积。在非张量表示法中,表达式可被写成:
Figure BDA0003570903000000212
通常,为了减少梯度更新中的噪声(这可能导致模型参数频繁跳转),
Figure BDA0003570903000000213
的更新不是从单个数据样本(例如,单个输入向量x和单个错误向量e)中提取的。实际上,平均更新是从整批训练数据集或这批训练数据集的一部分中计算出来的。将
Figure BDA0003570903000000214
Figure BDA0003570903000000215
指示为具有总共Q个训练示例的一袋训练数据集中的第q个输入向量和错误向量。Δw的更新可按如下方式计算:
Figure BDA0003570903000000216
使用两个矩阵Me和Mx之间的矩阵与矩阵乘积可以有效地计算
Figure BDA0003570903000000217
项。假定错误向量为P个元素长,并且输入向量为R个元素长,则Me为其列是错误向量
Figure BDA0003570903000000218
的P×Q矩阵,并且Mx为其行是转置输入向量
Figure BDA0003570903000000219
的Q×R矩阵。将两个矩阵相乘可提供更新:
Figure BDA00035709030000002110
由于所提出的线性光子处理器是在欧几里德空间中运行的,因此它可以有效地计算这种矩阵更新Δw。因此,本文描述的线性光子处理器不仅适用于深度人工神经网络的正向传播(评估),而且适用于反向传播(训练)。虽然上述推导适用于形式为wx+b的完全连接层,但由线性变换和非线性组成的任何其他层都可以以类似方式计算其梯度。
六、带宽和信号之间的权衡
本发明人进一步认识到,本文所述的线性光子处理器架构可以执行电流域中的部分乘积之间(例如,∑jMijvj的j个元素之间)的和。在电流域中执行这个和允许在积分时间的长度和所收集的信号量之间进行权衡。输出采样电路所收集的信号量与光学探测器所收集的光强度成正比,并且是输入光功率和通过光子处理器的光传播损耗的函数。当光子处理器工作在接近系统的本底噪声时,可以通过选择更长的积分时间来提高信噪比(SNR)。这种更长的积分时间在光子处理器的输出端存储了更多的电荷量,当这些电荷被输出采样电路读取时,加起来就形成了更大的输出信号。输出采样电路可被连接到模数转换器(ADC),其输出描述了由输出采样电路感测的电荷量的位串。为了使该位串可靠(例如,多个测量产生相同的输出位串),光子处理器的SNR可能需要足够高以支持输出的有效位数(ENOB)。因此,可以选择光子处理器的速度,使得系统的SNR对于输出位串的所需位宽度足够高。
七、重新缩放
用于矩阵处理的模拟计算系统具有有限的动态范围,该范围受到物理噪声限值(例如散粒噪声、热噪声等)或基于架构的限值的限制。在基于耗散(例如,光或电功率耗散)的计算方案中,这种耗散从根本上影响了处理器的链路预算、信噪比和精度。为了避免这些限制并增加通过系统传输的信号量,发明人已经理解到,矩阵的行可被重新缩放以最小化耗散,同时仍然执行与所需计算成正比的计算。矩阵m可以逐行重新缩放。下面,矩阵m乘以向量x。m的每一行可以与不同的比例因子αi相关联。例如,这些比例因子可以是从0到无穷大的连续变量,或是2的幂。在一些使用数字计算机执行重新缩放的实施例中,可以使用浮点数或定点数执行缩放和重新缩放操作。矩阵m也可以按切片或按矩阵重新缩放。为了获得按切片的缩放,可以仅将不同的行缩放因子设置为相同的值,并且为了获得按矩阵的缩放,可以将不同的切片缩放因子设置为相同的值。
Figure BDA0003570903000000221
执行这种按行的重新缩放后,可以通过将比例因子αi从矩阵计算结果中除去来移除比例因子。例如,如果比例因子是2的幂,则可以使用电子节能位移位运算来移除比例因子。如果按行的比例因子不是2的幂,则可以执行除法。在一些实施例中,由于振幅调制器存在有限的动态范围,因此可以对条目mij进行归一化。如果αmij>1,则条目在1处饱和。例如,设mi=(0.1 0.1 1 0.1)。如果α=10,则αmi=(1 1 10 1)。然而,如果振幅调制器在值为1处饱和,则不能在光学上表示值10,并且光学上向量将被表示为αmi=(1 1 1 1)。因此,可以选择比例因子的值,使得向量中的元素αmi的最大值不大于1。
八、用仅正的处理器计算实值矩阵
本发明人已经认识到,模拟处理器通常只能对正值矩阵和张量进行编码。例如,当使用非相干光源时,光子处理器可仅调制光信号的强度而不调制相位。在物理上,强度是非负数。本发明人已经认识到,对于大多数应用,光子处理器将执行矩阵与可包括正值和/或负值元素的向量之间的乘法。因此,发明人已开发了一种方法,通过偏移和/或重新缩放数字线,仅使用振幅调制来执行实值矩阵和实值向量之间的矩阵与向量乘法运算。
设原实值矩阵为M,其中元素Mij∈R,且设原实值向量为x,其中元素xj∈R。原矩阵的每个条目可以以常量值cM进行偏移,以产生新的矩阵M′,使得Mij′=Mij+cM≥0。可以选择常量值cM作为矩阵最大负条目的绝对值,例如
Figure BDA0003570903000000231
或者矩阵最大可能负条目的绝对值,即使在特定矩阵M中未观察到该值。类似地,向量元素可以以常量值cx进行偏移,以产生新的向量x′,使得x′=x+cx≥0。该常数cv可再次被选择为向量的最大负条目的绝对值或向量的最大可能负元素的绝对值。
然后可以使用新矩阵M′和向量x′计算输出向量yi=∑jMijxj,如下所示:
Figure BDA0003570903000000232
Figure BDA0003570903000000233
Figure BDA0003570903000000241
Figure BDA0003570903000000242
其中,可以使用光子处理器评估第一项∑jMij′xj′,并且其中可以使用第二振幅调制器对值M′ij进行编码,并且可以使用第一振幅调制器对值x′j进行编码。第二项cMjxj和第三项cxjMij可以由数字向量处理器来评估。尽管计算第三项会产生O(IJ)运算的成本,但假定I×J矩阵,该成本可以在将由光子处理器计算的不同向量的数量上摊销。如果这个数字足够大,人们可以选择使用光子处理器以流水线方式计算第三项和矩阵乘法。
在第一振幅调制器能够编码负数(但不是第二振幅调制器)的情况下,还可以通过将光子处理器的行数扩展1并将该新的最后一行(行号I+1)中的所有第二振幅调制器设置为单位化(例如,对于所有j设置为MI+1,j=1)来计算第二项cMjxj。注意,对于这种情况,cx的值可以被设置为使得cx=0或者可以由于诸如ADC和读出电路的动态范围之类的其他原因而保持该恒定偏移,如下所述。类似地,在第二振幅调制器能够编码负数(但不是第一振幅调制器)的情况下,可以通过计算与具有值为1的元素的向量的矩阵与向量乘法来评估第三项cxjMij。类似地,cM可以被选择为使得cM=0或者可以出于其他原因保持恒定偏移。
本发明人进一步认识到,这种避免在光子处理器中编码负数的需要的方法可以产生其元素超出光子处理器的编码范围的新矩阵Mij′或新向量xj′。在不丧失通用性的情况下,可以对输入矩阵和输入向量进行归一化,使得每个条目都在编码范围内。例如,假定原始矩阵元素和原始向量元素的值介于-1和1之间,例如Mij∈[-1,1]和xj∈[-1,1]。加上常量偏移cM和cx意味着修改后的矩阵元素值处于新范围Mij′∈[-1+cM,1+cM]≥0内,并且类似地,修改后的向量元素值处于新范围xj′∈[-1+cx,1+cx]≥0内。如果光子处理器调制器只能对0和1之间的值进行编码,则在一些实施例中,可以引入比例因子αM和αx。在这样的实施例中,αM和αx可以被选择为以便αM=1/(1+cM)和αx=1/(1+cx)使得αMMij′∈[(-1+cM)/(1+cM),1]和αxxj′∈[(-1+cx)/(1+cx),1]在光子处理器的可能值的范围内。换句话说,代替如上所述计算yj,可以如下计算:
Figure BDA0003570903000000251
其中在后处理阶段可以移除这些因子αMαx
上述偏移和缩放方法排除了在处理器的第一和第二振幅调制器中编码负数的需要。该方法还可在输出端获得更高的信号积累的附加益处。由于编码的矩阵和编码的向量现在具有非负元素,因此在输出处相加的电流具有相同的流动方向,从而导致将由输出采样电路采样的更大量的累积电荷。这导致对输出向量y进行编码的输出端的较大信号。本发明人认识到,较大的信号输出对于在电子本底噪声附近工作的处理器非常重要,这些噪声通常包括约翰逊-奈奎斯特噪声、电子散粒噪声和光子散粒噪声。
八、基于损耗的调制和零值的光学表示
根据本文所述技术的一些实施例,图4A-4C示出了在一些实施例中可以用作如结合图2、3A和3B的示例所述的第一和/或第二振幅调制器的振幅调制器的说明性示例。图4A示出了调制器400a,其使用不完美振幅或相位调制器404和408以在干涉仪布置中实现“良好”零值。分束器402和410分别分割和重新组合通过调制器400a的光信号。可以添加移相器406来偏置干涉仪以便增加消光比,并且调制器408被用于损耗匹配。在一些实施例中,调制器400a可被用在推挽模式下。图4B示出在一些实施例中使用完美消光的电吸收调制器412来增加调制器的消光比的调制器400b。图4C示出了使用环形谐振器414或被调谐为非共振的腔的调制器400c。在一些实施例中,可将环形谐振器414调谐为非共振,以使得1/2b部分光在谐振状态下通过,其中b是所需的计算精度。
由于此类振幅调制器的目标仅为调制光强度,因此几乎任何强度调制策略(例如,包括耦合相位调制)都可被用于振幅调制。为了获得更精确的性能,振幅调制器的消光比应尽可能大。在一些实施例中,可能希望链式调制器(例如,串联放置调制器)以增加其消光比或相移。然而,如下所述,可以将该精度与作为结果的输出的有效插入损耗进行交换。
如果强度调制中的任何一个从基于损耗的调制(如图4A-4C所示)切换为基于增益的调制,则相同的矩阵与向量乘法架构也将适用。这意味着相同的架构也将适用于包括半导体光学放大器的光子集成电路平台(例如,磷化铟(InP)或其他III-V半导体平台)。在一些实施例中,选择基于损耗的调制和基于增益的调制的组合可能是有利的。前者可以更节能,并且后者可被用来消除电路中的损耗。
当仅使用基于损耗的调制方案时,输入矩阵和输入向量条目只能降低光的强度。从数学上讲,这是通过具有小于1的值的条目来描述的:xj≤1和wpj≤1。为此,对输入矩阵和输入向量进行归一化。不是直接计算
Figure BDA0003570903000000261
而是首先提取常数因子使得
Figure BDA0003570903000000262
其中||A||max指示按元素的最大范数(例如,A的最大绝对值条目,对于矩阵为
Figure BDA0003570903000000263
并且对于向量为
Figure BDA0003570903000000264
)。光子处理器可被用于计算
Figure BDA0003570903000000265
并且数字电路可被用于通过将最终结果与
Figure BDA0003570903000000266
相乘来恢复输出向量
Figure BDA0003570903000000267
由于信号被编码为光强度,因此上述矩阵与向量乘法将仅应用于非负值矩阵和非负值向量。该算法可以通过使用四个乘法计算任意实值矩阵和实值向量之间的矩阵与向量乘法来增大。为此,可将输入矩阵分割为其正分量和负分量。例如,w=w+-w-,其中w+(w-)对应于仅包含正(负)分量的矩阵。类似地,输入向量可被分割成其正分量和负分量。例如,
Figure BDA0003570903000000268
其中
Figure BDA0003570903000000269
对应于仅包含正(负)分量的向量。为了执行乘法
Figure BDA00035709030000002610
可以单独执行乘法
Figure BDA00035709030000002611
以及
Figure BDA00035709030000002612
并且可以相应地加上和/或减去结果。这种方法可以用“微分矩阵乘法”(DMM)这一名称来描述。
振幅调制器通常不能(1)完全消灭光和(2)允许光完全通过。然而,这两个特性是振幅调制器的重要参数;前者与消光比有关,并且后者与调制器的插入损耗有关。乍看之下,本文描述的技术要求对w和x进行编码的振幅调制器能够完全消灭光(例如,具有任意高消光比的调制器)。然而,被计算出以减去w和x调制器处的不完全消光所产生的该“共模偏移”的四个项
Figure BDA00035709030000002613
以及
Figure BDA00035709030000002614
可被利用。即使使用不完美的强度或相位调制器,也可以使用干涉方案实现高消光比,如图4A-4C所示。
上述DMM技术允许使用具有较差的消光比且不能对接近零的值进行编码的振幅调制器进行一般矩阵乘法。设第j振幅调制器“AM”的强度调制范围为xj∈[xj min>0,xj max<1]。该调制器的消光比为xj max/xj min,其为有限值。驱动该调制器的电子电路(其包括数模转换器)将xj min和xj max之间的范围离散化。类似地,让第p列和第j行振幅调制器“M”的强度调制范围为wpj∈[wpj min>0,wpj max<1]。该调制器的消光比为wpj max/wpj min。驱动该调制器的电路还将wpj min和wpj max之间的范围离散化。
对于第一振幅调制器,新的调制范围x′j≡xj-xj min可被定义,其值的范围为x′j∈[0,xj max-xj min]。并且,还可以为第二振幅调制器定义新的调制范围w′pj≡wpj-wpj min,其值范围为w′pj∈[0,wpj max-wpj min]。然后,矩阵与向量乘积可被计算为:
Figure BDA0003570903000000271
Figure BDA0003570903000000272
Figure BDA0003570903000000273
Figure BDA0003570903000000274
因为矩阵和向量的正负部分都由相同的调制器进行调制,它们具有相同的最小值。因此,通过使用这些DMM技术抵消共模偏移,可以执行矩阵与向量乘法,就好像第一和第二振幅调制器都具有完美的消光比一样。这允许使用范围更广的调制机制,并且允许向量和矩阵元素进行更高速度调制,而不是在需要高消光比的情况下实现。该权衡是减少合成光电流的范围,这可以是也可以不是输出的位精度上的限制因素。
九、波分复用
图5是示出根据本文所述技术的一些实施例的包括波分复用(WDM)的线性光子处理器500的示例的框图。线性光子处理器500类似于图2、3A和3B的示例的线性光子处理器,但已由WDM电路506和512进行扩充。可替选地,在一些实施例中,这些WDM电路506和512可以是偏振分复用电路。线性光子处理器500不需要任何光路之间的干扰,并且因此有益于完全由宽带光子元素组装,从而放松对用于WDM的波长范围的约束。
图5的示例线性光子处理器500被配置为使用三个3元素的向量xir、xig以及xib,对3×3矩阵w进行复用。线性光子处理器500可以包括多个光源502a、502b和502c,这些光源被配置为生成具有不同波长的光信号。例如,光源502a、502b和502c可被配置成分别生成红光、绿光和蓝光的光信号。向量xir、xig以及xib的每个元素因此可以由第一振幅调制器504编码为具有不同波长的光信号的振幅。
在通过第一WDM电路506之后,第一光信号可以被分束器508分割并传输到第二振幅调制器510,第二振幅调制器510被配置为将矩阵与向量元素乘积编码为输出第二光信号。这些输出的第二光信号可由第二WDM电路512接收,并且随后由光学检测器514检测并转换为电信号。电信号可以如本文前面所述被求和和/或读出。
十、实施有符号值
在一些实施例中,可以使用电路实现负矩阵和/或向量值。例如,图6A是根据本文所述技术的一些实施例的用于实施负值和正值的电路600a的示意图。光学检测器606可以具有第一端子和第二端子(例如,阴极和阳极,用于其中光学检测器606包括如图6A所示的光二极管的实施例)。第一端子可以通过开关604与轨道电压602或求和节点耦合。第二端子可通过开关605与参考电压608(例如,接地)或求和节点耦合。开关604、605可以是例如晶体管开关。通过使用开关604和605将第一端子或第二端子连接到求和节点,可以改变从光学检测器606输出的电流的方向,从而实施标识(例如,正或负)。晶体管开关的开关状态可由光子处理器和/或与光子处理器耦合的控制器的附加控制电路(未图示)所控制。
附加地,可以使用异或运算预计算计算的符号、并且随后设置光学检测器606的输出电信号的符号,来实施带符号矩阵和/或向量值,如图6B所示。在一些实施例中,电路600b可以包括异或运算610。(例如,光学检测器606的)阴极定向可通过获取输入向量元素xj的符号和矩阵元素wij的符号并对这些信号执行异或运算来计算。输出阴极定向位可以设置来自光学检测器的电流是正的还是负的(例如,输出阴极定向位可以触发电路600a的开关604和605的布置或设置的改变)。
本发明人进一步开发了一种在整个光子处理器中分配这些“符号位”的方法。每个向量元素的符号位可在被配置为对向量元素值进行编码的每个第一振幅调制器附近传输,在那里在该向量符号位和矩阵符号位之间执行异或运算之后,符号位信号可被用于控制检测器电流的流量。
可替选地或附加地,可以使用电子通信来分配符号位。该通信可以使用标准数字设计实践来执行,以最小化倾斜和抖动。例如,树状或网格拓扑可被用于同时将单个位分布到多个地方。该树状的时间延迟可能超过处理器的向量速率,此时将有多个符号同时被传输到调制器。
本发明人进一步认识到,符号位可以以光子的方式分布。例如,可以使用附加波导对符号位进行编码和传输。然而,也可以使用光信号的未使用自由度来传输符号位。例如,可以用另一偏振或另一波长调制光信号以对符号位进行编码和分配。符号位也可以在偏振或波长的逻辑选择中进行编码。例如,如果向量符号位为正,则光子处理器可以使用波长λ1的光,如果向量符号位为负,则光子处理器可以使用波长λ2的光。光子符号位分布赋予多种优势。首先,符号位信号和矩阵与向量乘积信号可以以相同的传播速度传播。其次,符号位信号和矩阵与向量乘积信号可以在同一光波导中传播,从而避免了在系统中使用额外的波导。
图7示出了根据本文所述技术的一些实施例的用于光子处理器内的符号位分布的基于偏振的方案。第一分束器702可以分割输入光信号,并且向量元素值可以在第一振幅调制器704处以光的振幅编码。可以使用偏振旋转器706和符号调制器708将符号位编码为光信号的偏振。然后,可以使用偏振分束器710来重新组合这两个光信号。可以理解,偏振分束器可被用于(1)将两个不同偏振的输入光按它们的偏振分割成两个输出路径,以及(2)将来自两个输入路径的光(每个输入路径具有其自身的偏振)组合成两个不同偏振的单个输出光。
重新组合的光信号可以被分割并发送到第二振幅调制器712,第二振幅调制器712被配置为输出表示向量元素与矩阵元素乘积的第二光信号。第二光信号可以通过附加偏振分束器716,从而实现符号716和值718的分离。
图8是示出根据本文所述技术的一些实施例的用于实施有符号值的过程800的流程图。过程800可以由任何合适的计算设备执行。例如,在一些实施例中,过程800可由与光子处理器耦合的控制器(例如,如结合图1所述的控制器102)执行。在一些实施例中,过程800可由远离光子处理器的一个或多个处理器(例如,作为云计算系统的一部分)执行。
过程800开始于动作802,其中光学检测器可将接收到的光信号转换为第一电信号,该光信号由光子处理器的一部分输出。光学检测器可包括第一端子和第二端子。例如,光学检测器可包括光二极管,且第一端子和第二端子可分别为阳极和阴极。在一些实施例中,第一电信号可以是光电流。
在动作802之后,过程800可进行到动作804,其中在一些实施例中,与光学处理器耦合的至少一个常规处理器可确定第一电信号是表示正符号数值还是负符号数值。至少一个常规处理器可以至少部分地基于输入向量元素的符号和输入矩阵元素的符号来确定第一电信号的标识(signage)。例如,如结合图6B所述,至少一个常规处理器可以使用异或运算来确定第一电信号的标识。
在动作802之后,过程800可进行到动作806,其中,光子处理器的控制电路可以响应于确定第一电信号表示的是正符号数值还是负符号数值,来布置与光学检测器的第一端子耦合的第一开关的设置和与光学检测器的第二端子耦合的第二开关的设置。例如,在一些实施例中,第一开关和/或第二开关可包括晶体管开关,并且布置第一开关和/或第二开关的设置可包括施加或移除栅极电压以启用第一开关和/或第二开关。
动作806可在两个子动作806a和806b中进一步进行。在子动作806a中,控制电路可至少部分地通过将第一开关设置为将第一端子与参考电压耦合并将第二开关设置为将第二端子与节点耦合(例如,输出节点),来产生正符号数值输出。第一开关和第二开关的这种设置可导致光学检测器输出正电流。在子动作806b中,控制电路可至少部分地通过将第一开关设置为将第一端子与节点耦合并将第二开关设置为将第二端子与电压轨耦合,来产生负符号数值输出。第一开关和第二开关的这种设置可导致光学检测器输出负电流。
在动作806之后,过程800可进行到动作808,其中光学检测器可输出第一电信号,使得第一电信号通过第一开关或第二开关。第一电信号的路径基于第一电信号表示的是正符号数值还是负符号数值的先前确定。
十一、子矩阵处理架构
矩阵与矩阵、矩阵与向量和张量与张量乘法运算具有递归的性质。考虑矩阵M=[[M11,M12],[M21,M22]](用Python的符号)和向量x=[x1,x2]之间的乘法。输出y1=M11x1+M12x2和y2=M21x1+M22x2的乘法可以看作是子矩阵M11,M12,M21,M22和子向量x1,x2之间的乘法。这个逻辑可以递归,直到元素M11,M12,M21,M22和x1,x2是标量元素为止。上述递归适用于大小为2N×2N的矩阵乘以大小为2N的向量,其中N为整数。给定任意大小的矩阵,可以根据需要添加零以满足这些大小要求。然而,应该理解的是,没有必要将矩阵分成两行两列。矩阵可以分为R行和C列,这将导致不同的缩放。
矩阵处理器可以在使用子矩阵组以这种递归方式进行配置。图9A-9D是示出根据本文所述技术的一些实施例布置成子矩阵处理器的光子处理器900的示意图。每个子矩阵处理器902被标记为M(ij),并且向量904被标记为x(j)。在图9A-9D的示例中,i,j∈{1,2,3,4},尽管可以理解,在一些实施例中,子矩阵和向量可以具有其他大小。子向量被分割并传输到相关子矩阵处理器。在振幅调制器906处,在子矩阵和子向量之间的每个子矩阵处理器中执行矩阵与向量乘法。然后,矩阵与向量乘法在光学上被传输到光学检测器908。光学检测器908被配置成将接收到的光信号转换为电信号。然后,可在不同子矩阵处理器之间对相关子向量电信号一起进行求和。在图10A-10B中,根据一些实施例,示出了光子处理器1000的另一实施例。使用ADC 1010将子向量的输出在本地转换为位串,并使用数字电路(未示出)将最终输出相加在一起。
十二、用多波长的光的光子处理
到目前为止,已经描述了一种使用电子电路执行求和的线性光子处理器架构。图11示出了根据本文所述技术的一些实施例的线性光子处理器1100的可替选实施例的示意图,该线性光子处理器1100被配置为在光域中执行求和并使用具有多个波长的输入光。在图11的示例中,每个第一振幅调制器1102接收不同波长的光:λ1、λ2,……,λQ。线性光子处理器1100中的向量调制策略和矩阵调制策略类似于由图2、3A和3B的线性光子处理器所执行的策略。然而,在线性光子处理器1100中,光信号在由第二振幅调制器1104调制之后不会被立即检测。相反,光信号可以在由光学检测器1108检测之前馈送到光组合器电路1106。因此,与先前描述的图2、3A和3B的线性光子处理器中的总共P×Q个光学检测器相比,图11的实施例中仅存在P个光学检测器1108。
图12A是根据本文所述技术的一些实施例的配置为与多个波长的光一起使用的光组合器1106的示意图。光组合器1106可以包括分插环形滤波器(add-drop ring filter)1210。与环谐振并从输入1(例如,从第二振幅调制器1104)接收的光信号可以落入输出总线波导中,并且来自输入2(例如,从总线)的不与环谐振的光信号通过环到达输出总线波导。因此,该环被调谐为与到达对应的第二振幅调制器1104的光的波长相谐振,但不与处理器中使用的任何其他波长相谐振。因此,至少在一些实施例中,环形滤波器可以具有足够大以支持单个FSR内总共至少Q个谐振的自由光谱范围(FSR)。
图12B是根据本文所述技术的一些实施例的图12A的组合器的FSR的示意图表。环形滤波器可被设计为具有较大的自由光谱范围(FSR),但具有足够高的品质因数,以便捕获了来自第二振幅调制器的输入的许多谐振峰。
图12C是根据本文描述的技术的一些实施例的对于图12A的几个组合器的传输作为波长的函数的示意图。每个组合器可以彼此失谐,使得只有一个波长的光从输入1(例如,从第二振幅调制器1104)落入到输出。其他非谐振多波长组合器,如y型组合器或定向耦合器,也可被用于以牺牲一些光损耗为代价对不同波长的输出光进行组合。
十三、实施稀疏矩阵和/或向量
稀疏矩阵(例如,含有很少非零元素的矩阵)在许多计算领域中都很常见。在一些实施例中,可通过使用放置在处理器架构内的电或光开关来在矩阵w或向量x中实施稀疏条目,如图13A-13C的示例所示。线性光子处理器1300a、1300b和1300c类似于结合图3所述的线性光子处理器300a,并且包括光源1302、第一振幅调制器1306、第二振幅调制器1308、光学检测器1310和电求和电路1312。然而,线性光子处理器1300a、1300b和1300c包括附加的电或光开关,以实施稀疏矩阵或向量条目。
如在图13A的线性光子处理器1300a中那样,将电开关1311放置在光学检测器1310之后可以实施矩阵w中的稀疏条目。可替选地或附加地,如图13B的线性光子处理器1300b中所示,电开关1313可以放置在电求和电路1312之后,以便实施矩阵w的稀疏行。可替选地或附加地,图13C的线性光子处理器1300c中所示的光开关1314可以放置在第一振幅调制器1306之后,以实施向量x中的稀疏条目。可以理解,开关1311、1313和1314的任何组合可被用在线性光子处理器中以实施稀疏矩阵和/或向量条目。通过确保零值对应于第二振幅调制器1308的默认状态,可以为稀疏矩阵条目节省能量。这样,能源就不会在应用零上耗尽。
可替选地或附加地,可以使用预计算来实施稀疏或单位子矩阵。模拟处理器通常从极其计算密集的密集(非稀疏)运算中获得优势。假设矩阵M和向量x;如果矩阵M的行是稀疏的,则在数字计算系统上单独执行这些运算可能是有益的。例如,如果M的一整行i上包含零条目,则计算机不应进行计算,并且只需为该向量条目xi输出零。另一个极端的示例,如果完整的矩阵是单位矩阵,则计算机应该仅返回向量x。这两个示例都不需要任何计算,只需要输入和输出之间的简单映射,这可以使用数字电路有效地完成。可实施光子处理器外部的编译器系统,以确定M的矩阵行与向量x之间的特定乘法将使用数字电路(如前一情况中)还是使用模拟处理器进行计算。
图14是示出根据本文所述技术的一些实施例的执行包括稀疏向量和/或矩阵的矩阵与向量运算的过程的流程图。过程1400可以部分地由任何合适的计算设备与光子处理器组合来执行。例如,在一些实施例中,过程1400可由与光子处理器耦合的控制器执行(例如,与光子处理器(如结合图13A-13C所述)耦合的控制器102(如结合图1所述))。
过程1400开始于动作1402,其中在一些实施例中,可以使用第一光调制器调制输入光信号。输入光信号可以例如由光源(例如,图13A-13C的光源1302)提供。输入光信号可由第一光调制器调制来以第一光调制器输出的第一光信号光学地表示向量的元素。例如,第一光调制器可被配置为调制输入光信号的振幅(例如,强度),并将向量的元素的值编码为光的振幅。
过程1400可进行到动作1404,其中第一光信号可由第二光调制器进行调制。第一光信号可以被分割(例如,使用分束器)并传输到多个第二光调制器。第二光调制器可以用矩阵行的元素进行编程。第二光调制器,通过调制第一光信号的振幅,可以产生光学上表示被加值(例如,向量元素和矩阵行元素的乘积)的第二光信号。如果求和在一起,则被加项可以表示向量元素和矩阵行之间的乘积。
在动作1404之后,过程1400可进行到动作1406,其中第二光信号可由光学检测器转换为多个被加项电信号。在一些实施例中,每个光信号可由光学检测器接收,该光学检测器配置成将接收到的光的振幅转换为电信号。例如,光学检测器可包括光电检测器,被配置为输出具有与光电检测器接收到的光强度成比例的幅度的光电流。在一些实施例中,多个第二光信号可由单个光学检测器接收(例如,在同一时间或不同时间,例如,通过时分复用)。
动作1400随后可进行到动作1408,其中可致使与第一光调制器的输出耦合的开关和/或与光学检测器的输出耦合的开关阻止一个或多个信号的传输。例如,在一些实施例中,当向量的元素的值等于零时,光开关可以与第一光调制器的输出耦合,以阻止第一光信号传输到第二光调制器。光开关可以例如断开以阻止第一光信号的传输。这样,真实零值可以通过光子处理器传播。可替选地或附加地,当矩阵行的一个或多个元素的值等于零时,可致使与光学检测器的输出耦合的一个或多个开关阻止被加项电信号的传输。例如,当矩阵行的对应元素的值等于零时,可致使与光学检测器的输出耦合的电开关断开。在一些实施例中,如果整个矩阵行的值等于零,则与多个光学检测器的输出耦合的附加开关(例如,与电求和电路1312的输出耦合)可被配置为阻止求和的电信号的传输。
十四、信号读出策略
对于较大矩阵,上述通过将检测器输出电气捆绑在一起将矩阵行电流相加的方法可能会导致显著的寄生电容。由于接收器电路的负载,这些寄生电容会对高速运算造成挑战。根据本文描述的一些实施例,为了避免这种情况,发明人已开发了几个信号读出策略,如图15A-15D所示。
图15A示出了根据一些实施例的基于光-电-光转换的说明性读出系统1500a。在说明性读出系统1500a中,通过使用第一振幅调制器1502和第二振幅调制器1504调制光信号来在光学上执行矩阵与向量元素乘法。来自第二振幅调制器1504的光信号可由光学检测器1506转换为电信号,然后加入到电流域中。可使用跨阻放大器(TIA)1508将求和的电信号转换为放大的电压,所述跨阻放大器(TIA)1508随后可驱动光调制器1510。来自光调制器1510的信号可以被传输到光学检测器1512并转换为电信号。然后,可以使用TIA 1514将这些电信号转换为电压,并且随后使用模数转换器(ADC)1516将其作为数字串读出。这样的实施例可以实现子组信号的长距离路由而不产生较大的寄生电容(例如,通过在光调制器1510和光学检测器1512之间使用光子波导来路由信号,而不是在电域中路由信号)。
图15B示出了根据本文描述的一些实施例的基于子组电流放大的说明性读出系统1500b。该子组电流放大可以使用例如电流镜电路1518来执行。然后,可以使用TIA 1514将放大的电流转换为电压,并使用ADC 1516将其作为数字串读出。
图15C示出了根据本文描述的一些实施例的基于电流域中的子组内加法和电压域中的子组加法的说明性读出系统1500c。光学检测器1506的子组内输出可以在电流域中执行。子组内输出可以使用TIA 1508转换为电压。此后,例如,可以使用与多个电阻器(例如,R1、R2)耦合的运算放大器作为输入来执行较大的子组加法。可使用ADC 1522将求和的电压信号作为数字串读出。
图15D示出了根据本文描述的一些实施例的基于数字加法的说明性读出系统1500d。光学检测器1506的子组内输出可以在电流域中执行,并且随后使用TIA和ADC 1524转换为数字电压信号。然后可以使用数字加法器1526执行数字加法。
光子处理器在半导体基板中的布局可对处理器的性能(例如,速度和/或功率)产生较大影响。减少读出电路(例如,包括TIA和ADC)的电容的一个一般策略是将光电探测器和读出电路彼此靠近分组以减少电气连接的长度。电气连接(例如,经由电线)会导致输出读出电路产生附加电容,这限制读出电路的增益或带宽。
另一方面,光子连接(例如,经由光子波导)不会给系统增加更多电容。因此,在半导体基板中布局光子处理器的另一策略(其中设备通常布局在二维平面中)是具有四个独立块:每个块沿x轴和y轴相互反射,如图16A-16D的布局1600所示。光调制器1602和1604可以通过波导1606连接到光学检测器1608。反射块允许光学探测器1608彼此靠近地聚集,并减少了附加电容的量,如果以电气方式进行连接,则该附加电容的量将被添加到系统中。
如果系统可以被布局在三维块中(在未来先进的半导体基板中),则将系统划分为八个独立块可能是有利的:每个块沿x轴、y轴和z轴(未示出)反射。输出光电探测器可以彼此靠近地聚集。通常,如果系统可以被布局在N维块中,则具有2N个独立块是有利的,每个块沿N个可能维度的一个轴反射,使得输出光电探测器彼此靠近地聚集。
十五、矩阵与矩阵运算
图17是根据本文描述的技术的一些实施例的配置为实施矩阵与矩阵运算的光子处理器1700的框图。光子处理器1700包括两个矩阵向量子处理器。这些矩阵向量子处理器具有与如结合图3所述的线性光子处理器300类似的架构。这两个矩阵子处理器都包括光源1702、分束器1704和第一振幅调制器1706。由第一振幅调制器1706输出的第一光信号可由附加的分束器1704分割并被传输到第二振幅调制器1708。由第二振幅调制器1708输出的光信号可由光学检测器1710检测并转换为电信号。由光学检测器1710输出的电信号可由电求和电路1717进行求和。然而,光子处理器1700使用第一子处理器的电输出作为到第二子处理器的输入。在一些实施例中,第一子处理器的电输出可以在被传输到第二矩阵子处理器之前由放大器1714进行放大。
考虑两个矩阵A和B之间的乘法,其中输出矩阵C=AB。该矩阵B可以被编程到第一矩阵与向量处理器的第二振幅调制器1708中,并且该矩阵A可以被编程到第二矩阵与向量处理器的第二振幅调制器1708中。为了读出结果矩阵C,可以将独热向量(例如,一个条目具有值为1并且所有其他条目具有值为0的向量)编程到第一子矩阵向量的第一振幅调制器1706中,使得在任何单个时间仅打开一个调制器。
在一些实施例中,独热向量通过光子处理器1700进行传播。当独热向量通过第一矩阵子处理器的第二振幅调制器1708进行传播时,它们承载表示矩阵B的列的信息。矩阵B的列可以被传输并被编程到第二矩阵处理器的第一振幅调制器1706中。然后,来自光源1702的光信号可以将矩阵B的列传输到第二矩阵子处理器的第二振幅调制器1708,其使用矩阵A的元素进行编程。输出向量对应于最终矩阵C的列。更具体地说,如果用户发送向量ei(除作为第i个元素为1之外的全为零的向量),则输出将是C的第i列。例如,发送e1=(1 0 00 …)返回C的第一列。因此,矩阵B的列和矩阵A的元素之间的乘法可以被执行并以数字方式存储(例如,由外部存储器)。借由通过光子处理器1700传播不同的独热向量,可以执行整个矩阵与矩阵乘法运算。
图18是示出根据本文所述技术的一些实施例的使用光子处理器执行矩阵与矩阵运算的过程的流程图。过程1800可以部分地由任何合适的计算设备与光子处理器组合来执行。例如,在一些实施例中,过程1800可由与光子处理器耦合的控制器执行(例如,与光子处理器(如结合图17所述)耦合的控制器102(如结合图1所述))。
在一些实施例中,过程1800可在动作1802处开始,其中第一矩阵可被编程到第一光学子处理器中。例如,可将第一矩阵编程到第一光学子处理器的第二振幅调制器(例如,第二振幅调制器1708)中。例如,可以基于从外部控制器接收到的位串,来将第一矩阵编程到第二振幅调制器中。第一矩阵的各个元素可以分别被编程到第二振幅调制器的各个振幅调制器中。例如,具有值为1的第一矩阵元素可以被编程到第二振幅调制器的第一个中,使得第一个第二振幅调制器可以允许接收到的光信号的强度通过振幅调制器而不改变。具有零值的第二矩阵元素可以被编程到第二振幅调制器的第二个中,使得第二个振幅调制器可以消灭接收到的光信号的强度,并且可以输出振幅为零或接近零的光信号。
在一些实施例中,过程1800随后可进行到动作1804,其中第二矩阵可被编程到第二光学子处理器中。第二矩阵可被编程到第二光学子处理器的第二振幅调制器(例如,第二振幅调制器1708)中。例如,可以基于从外部控制器接收到的位串,将第二矩阵编程到第二振幅调制器中。与第一矩阵一样,第二矩阵的各个元素可以被编程到第二光学子处理器的第二振幅调制器的各个振幅调制器中。在一些实施例中,第二光学子处理器可包括与第一光学子处理器的输出耦合的输入;
在动作1804之后,过程1800可进行到动作1806,其中多个独热向量被输入到第一光学子处理器。例如,可以将多个独热向量编程到第一光学子处理器的第一振幅调制器1706中。通过将光信号从光源传播通过第一振幅调制器(例如,传播独热向量)并传播到使用第一矩阵编程的第二振幅调制器,第一光学子处理器可以将第一组矩阵元素(例如,矩阵行、矩阵列)传播到第二光学子处理器。例如,来自第一光学子处理器的输出光信号可被用于将第一矩阵的第一组矩阵元素编程到第二光学子处理器的第一振幅调制器中。通过将另一光信号(例如,源于光源)传播通过第二光学子处理器的第一和第二振幅调制器,可以执行第一矩阵的第一组矩阵元素和第二矩阵元素之间的乘法。
随后,在动作1808处,在一些实施例中,第二光学子处理器可以输出表示第一和第二矩阵乘法的一部分的输出向量。例如,第二光学子处理器可以输出表示第一和第二矩阵的元素的乘积的求和的电信号(例如,来自电求和电路1712)。
在这样描述了该技术的至少一个实施例的几个方面之后,应当理解,本领域技术人员将容易地进行各种改变、修改和改进。
本文描述的技术的上述实施例可以以多种方式中的任何一种实施。例如,可以使用硬件、软件或其组合来实施实施例。当在软件中实施时,软件代码可以在任何合适的处理器或处理器集合上执行,无论是提供在单个计算机中还是分布在多个计算机之间。这种处理器可以实施为集成电路,在集成电路组件中具有一个或多个处理器,包括本领域中已知的商用集成电路部件,其名称例如CPU芯片、GPU芯片、微处理器、微控制器或协处理器。可替选地,处理器可以在定制电路(诸如ASIC)中实施,或者由配置可编程逻辑设备产生的半定制电路中实施。作为又一个可替选方案,处理器可以是更大电路或半导体设备的一部分,无论是商用的、半定制的还是定制的。作为一个具体示例,一些商用微处理器具有多个内核,使得这些内核中的一个或一个子集可以构成处理器。然而,处理器可以使用任何适当格式的电路来实施。
此外,本文概述的各种方法或过程可被编码为软件,该软件可在运行各种操作系统或平台中的任何一个的一个或多个处理器上执行。此类软件可以使用多种合适的编程语言和/或编程工具(包括脚本语言和/或脚本工具)中的任何一种进行编写。在一些实例中,此类软件可被编译为可执行机器语言代码或在框架或虚拟机上执行的中间代码。附加地,或可替选地,这种软件可以被解释。
本文公开的技术可以体现为非暂时性计算机可读介质(或多个计算机可读介质)(例如,计算机存储器、一张或多张软盘、光碟、光盘、磁带、闪存、现场可编程门阵列或其他半导体设备中的电路配置,或其他非暂时性有形计算机存储介质)用一个或多个程序进行编码,当在一个或多个处理器上执行时,执行实施上述本公开的各种实施例的方法。计算机可读介质或媒介可以是可运输的,使得存储在其上的一个或多个程序可以加载到一个或多个不同的计算机或其他处理器上,以实施如上所述的本公开的各个方面。
计算设备还可以具有一个或多个部件外围设备,包括输入和输出设备。除其他外,这些设备可用于呈现用户界面。可被用于提供用户界面的输出设备的示例包括用于输出的可视化呈现的打印机或显示屏以及用于输出的音频呈现的扬声器或其他声音生成设备。可被用于用户界面的输入设备的示例包括键盘和指针设备,诸如鼠标、触摸板和数位板。作为另一示例,计算设备可以通过语音识别或以其他音频格式接收输入信息。作为另一示例,计算设备可接收来自照相机、激光雷达或产生视觉数据的其他设备的输入。
计算设备的实施例还可以包括光子处理器,诸如本文所述的一个光子处理器。计算设备的处理器可以经由一个或多个接口向光子处理器发送和接收信息。发送和接收的信息可以包括光子处理器的检测器的设置和/或来自光子处理器的检测器的测量结果。
术语“程序”或“软件”在本文中用于指代任何类型的计算机代码或计算机可执行指令集,其可被用于对一个或多个处理器进行编程以实施上述本公开的各个方面。此外,应当理解,根据本实施例的一个方面,当执行时,执行本公开的方法的一个或多个计算机程序不需要驻留在单个计算机或处理器上,而可以模块化方式分布在多个不同的计算机或处理器之间,以实施本公开的各个方面。
计算机可执行指令可以是多种形式,诸如程序模块,由一台或多台计算机或其他设备执行。程序模块可包括执行特定任务或实施特定抽象数据类型的例程、程序、对象、部件、数据结构等。在各种实施例中,可根据需要组合或分布程序模块的功能。
此外,数据结构可以以任何合适的形式存储在计算机可读媒介中。为便于说明,数据结构可被显示为具有通过数据结构中的位置而相关的字段。类似地,可以通过将用于字段的存储分配给计算机可读介质中传递字段之间关系的位置来实现这种关系。然而,可以使用任何合适的机制来在数据结构的字段中建立信息之间的关系,包括通过使用指针、标记或建立数据元素之间关系的其他机制。
本文所述技术的各个方面可以单独、组合使用,或在前述实施例中未具体描述的各种布置中使用,并且因此其应用不限于前述描述中所述或附图中所示的部件的细节和布置。例如,一个实施例中描述的方面可以以任何方式与其他实施例中描述的方面组合。
此外,本文描述的技术可以体现为方法,本文提供了其示例,包括参考图8、15和19。作为方法一部分执行的动作可以以任何合适的方式进行排序。因此,可以构造实施例,其中以与所示不同的顺序执行动作,其可以包括同时执行一些动作,即使在说明性实施例中被示为顺序动作。
此外,本文使用的措辞和术语仅用于描述的目的,不应被视为限制。本文中“包括”、“组成”或“具有”、“包含”、“涉及”及其变体的使用意指涵盖其后列出的项目及其等效物以及附加项目。

Claims (45)

1.一种用于实施有符号数值的装置,所述装置包括:
光学检测器,其包括第一端子和第二端子;
第一开关,其将所述光学检测器的第一端子与节点或参考电压耦合;
第二开关,其将所述光学检测器的第二端子与节点或电压轨耦合;以及
控制电路,被配置为:
至少部分地通过设置所述第一开关以使所述第一端子与所述参考电压耦合、并且设置所述第二开关以使所述第二端子与所述节点耦合,来产生正符号数值输出;以及
至少部分地通过设置所述第一开关以使所述第一端子与所述节点耦合、并且设置所述第二开关以使所述第二端子与所述电压轨耦合,来产生负符号数值输出。
2.根据权利要求1所述的装置,其中,
所述光学检测器包括光二极管;
所述第一端子包括阳极;并且
所述第二端子包括阴极。
3.根据权利要求1所述的装置,其中,所述第一开关和所述第二开关各自包括晶体管开关。
4.根据权利要求1所述的装置,其中,所述参考电压是接地的。
5.根据权利要求1所述的装置,其中所述控制电路包括逻辑门,其被配置为输出符号定向位,其中所述符号定向位包括:指示数值输出包括的是正符号数值还是负符号数值的信息。
6.根据权利要求5所述的装置,其中,所述逻辑门包括异或门。
7.根据权利要求5所述的装置,其中,所述逻辑门被配置为将输入向量元素的值的符号与输入矩阵元素的值的符号进行比较。
8.一种光学处理系统,包括:
第一多个光调制器,其每个被配置为接收输入光信号,对所述输入光信号进行调制,并输出表示向量元素的第一光信号;
第二多个光调制器,其每个与所述第一多个光调制器的光调制器光学耦合,并被配置为接收所述第一光信号,对所述第一光信号进行调制,并输出表示所述向量和所述矩阵之间的矩阵与向量乘法的一部分的第二光信号;
多个光学检测器,每个光学检测器与所述第二多个光调制器的光调制器光学耦合,并被配置为将所述第二光信号转换为表示矩阵与向量乘法的所述一部分的电信号,其中,所述多个光学检测器中的每个光学检测器包括第一端子和第二端子;
第一开关,其将第一光学检测器的第一端子与输出节点或参考电压耦合;
第二开关,其将所述第一光学检测器的第二端子与所述输出节点或电压轨耦合;以及
控制电路,被配置为:
至少部分地通过设置所述第一开关以使所述第一光学检测器的第一端子与所述参考电压耦合、并且设置所述第二开关以使所述第一光学检测器的第二端子与所述输出节点耦合,来产生正符号数值输出;以及
至少部分地通过设置所述第一光学检测器的第一开关以使所述第一端子与所述输出节点耦合、并且设置所述第一光学检测器的第二开关以使所述第二端子与所述电压轨耦合,来产生负符号数值输出。
9.根据权利要求8所述的光学处理系统,其中,
所述光学检测器包括光二极管;
所述第一端子包括阳极;并且
所述第二端子包括阴极。
10.根据权利要求9所述的光学处理系统,其中,所述第一开关和所述第二开关各自包括晶体管开关。
11.根据权利要求9所述的光学处理系统,其中,所述参考电压是接地的。
12.根据权利要求9所述的光学处理系统,还包括多个电求和电路,其中:
第一电求和电路与两个或更多个输出节点耦合,所述两个或更多个输出节点的每一个输出节点通过所述第一开关或所述第二开关与光学检测器耦合;以及
所述第一电求和电路被配置为输出电信号,其表示由与所述两个或更多个输出节点耦合的所述光学检测器输出的矩阵与向量运算的一部分之和。
13.根据权利要求8所述的光学处理系统,其中,所述控制电路包括逻辑门,其配置为输出符号定向位,其中所述符号定向位包括:指示数值输出包括的是正符号数值还是负符号数值的信息。
14.根据权利要求13所述的光学处理系统,其中,所述逻辑门包括异或门。
15.根据权利要求13所述的光学处理系统,其中,所述逻辑门被配置为将输入向量元素的值的符号和输入矩阵元素的值的符号进行比较。
16.一种用于实施由光学处理器的光学检测器输出的有符号数值的方法,所述方法包括:
使用包括第一端子和第二端子的光学检测器,将输出光信号转换为第一电信号,所述输出光信号由所述光学处理器的一部分输出;
使用与所述光学处理器耦合的至少一个常规处理器,来确定所述第一电信号表示的是正符号数值还是负符号数值;
响应于确定出所述第一电信号表示的是正符号数值还是负符号数值,使用所述光学处理器的控制电路,来布置与所述第一端子耦合的第一开关的设置和与所述第二端子耦合的第二开关的设置,其中所述控制电路被配置为:
至少部分地通过设置所述第一开关以使所述第一端子与参考电压耦合、并且设置所述第二开关以使所述第二端子与节点耦合,来产生正符号数值输出;以及
至少部分地通过设置所述第一开关以使所述第一端子与所述节点耦合、并且设置所述第二开关以使所述第二端子与电压轨耦合,来产生负符号数值输出;以及
从所述光学检测器输出所述第一电信号,使得所述第一电信号基于所述第一电信号表示的是正符号数值还是负符号数值的确定而通过所述第一开关或所述第二开关。
17.根据权利要求16所述的方法,其中,布置所述第一开关和所述第二开关的设置包括:从所述控制电路向所述第一开关和所述第二开关发送一个或多个电信号,其中所述第一开关和所述第二开关各自包括晶体管开关。
18.根据权利要求16所述的方法,还包括:
使用第一光调制器对输入光信号进行调制来以第一光信号光学地表示向量的元素;
使用第二光调制器对第一光信号进行调制来以所述输出光信号光学地表示被加项,其中所述被加项在与其他被加项进行求和时表示所述向量与矩阵行之间的乘积;以及
使用所述光学检测器对所述输出光信号进行检测。
19.根据权利要求16所述的方法,其中,布置所述第一开关的设置和所述第二开关的设置还包括:使用逻辑门来生成符号定向位,其中所述符号定向位包括:指示所述第一电信号包括的是正符号数值还是负符号数值的信息。
20.根据权利要求19所述的方法,其中,使用所述逻辑门包括使用异或门。
21.一种用于实施矩阵与向量乘法运算的光学处理器,所述光学处理器包括:
第一多个光调制器,其每个被配置为接收输入光信号、对所述输入光信号进行调制、并输出表示向量元素的第一光信号;
第二多个光调制器,其每个与所述第一多个光调制器中的光调制器光学耦合,并被配置为接收所述第一光信号、调制所述第一光信号、并输出表示向量和矩阵之间的矩阵与向量乘法的一部分的第二光信号;
多个光学检测器,其每个与所述第二多个光调制器中的光调制器耦合,并被配置为将所述第二光信号转换为表示所述矩阵与向量乘法的所述一部分的电信号;以及
多个开关,被配置成当所述向量和/或矩阵的值包括零时,通过阻止光信号或电信号的传输来在所述矩阵与向量乘法运算中实施零值,其中,所述多个开关中的开关与所述第一多个光调制器中的每一个或所述多个光学检测器中的每一个的输出耦合。
22.根据权利要求21所述的光学处理器,其中,所述多个开关中的开关包括电开关,并与所述第一多个光学检测器中的一个的输出耦合。
23.根据权利要求22所述的光学处理器,其中,所述开关被配置为当矩阵的元素的对应值为零时阻止电信号的传输。
24.根据权利要求21所述的光学处理器,其中,所述多个开关中的开关包括光开关,并与所述第二多个光调制器中一个的输出耦合。
25.根据权利要求24所述的光学处理器,其中,所述开关被配置为当所述向量的元素的对应值为零时阻止光信号的传输。
26.根据权利要求21所述的光学处理器,还包括多个电求和单元,每个电求和单元与所述多个光学检测器中的两个或更多个光学检测器的输出耦合,并被配置为输出表示由所述两个或更多个光学检测器输出的矩阵与向量运算的一部分之和的电信号。
27.根据权利要求26所述的光学处理器,还包括与所述多个电求和单元的输出耦合的另外多个开关,所述另外多个开关中的开关被配置为在所述矩阵行的元素的所有值均等于零时阻止表示所述和的电信号的传输。
28.一种使用光学处理器执行矩阵与向量行乘法运算的方法,所述方法包括:
使用第一光调制器对输入光信号进行调制来以第一光信号光学地表示向量的元素;
使用第二光调制器对所述第一光信号进行调制来以第二多个光信号光学地表示被加项,其中,所述被加项在被求和时表示所述向量的元素和矩阵行之间的乘积;
使用光学检测器将所述第二多个光信号转换为多个被加项电信号;以及
当所述向量的元素的值等于零时,致使与所述第一光调制器的输出耦合的开关阻止所述第一光信号传输到所述第二光调制器,和/或当所述矩阵行的一个或多个元素的值等于零时,致使与所述光学检测器的输出耦合的一个或多个开关阻止所述被加项电信号的传输。
29.根据权利要求28所述的方法,还包括:
使用电求和单元对所述被加项电信号进行求和,以获得乘积电信号;以及
输出所述乘积电信号。
30.根据权利要求29所述的方法,还包括:
当所述矩阵行的所有元素的值都等于零时,致使与所述电求和单元的输出耦合的开关阻止所述乘积电信号的传输。
31.根据权利要求28所述的方法,其中,当所述向量的元素的值等于零时,致使与所述第一光调制器耦合的开关阻止所述第一光信号传输到所述第二光调制器包括:断开光开关。
32.根据权利要求28所述的方法,其中,当所述矩阵行的一个或多个元素的值等于零时,致使与所述光学检测器的输出耦合的一个或多个开关阻止所述被加项电信号的传输包括:断开电开关。
33.根据权利要求28所述的方法,其中,使用所述第一光调制器对所述输入光信号进行调制包括:调制所述输入光信号的振幅。
34.至少一个非暂时性计算机可读介质,包括指令,当所述指令由至少一个光学处理器执行时,使所述光学处理器执行以下方法:
使用第一光调制器对输入光信号进行调制来以第一光信号光学地表示向量的元素;
使用第二光调制器对所述第一光信号进行调制来以第二多个光信号光学地表示被加项,其中所述被加项在被求和时表示所述向量和所述矩阵行之间的乘积;
使用光学检测器将所述第二多个光信号转换为多个被加项电信号;以及
当所述向量的元素的值等于零时,致使与所述第一光调制器的输出耦合的开关阻止所述第一光信号传输到所述第二光调制器,和/或当所述矩阵行的一个或多个元素的值等于零时,致使与所述光学检测器的输出耦合的一个或多个开关阻止所述被加项电信号的传输。
35.根据权利要求34所述的至少一种非暂时性计算机可读介质,其中,所述方法还包括:
使用电求和单元对所述被加项电信号进行求和,以获得乘积电信号;以及
输出所述乘积电信号。
36.根据权利要求35所述的至少一种非暂时性计算机可读介质,其中,所述方法还包括:
当所述矩阵行的所有元素的值都等于零时,致使与所述电求和单元的输出耦合的开关阻止所述乘积电信号的传输。
37.根据权利要求34所述的至少一种非暂时性计算机可读介质,其中,当所述向量的元素的值等于零时,致使与所述第一光调制器耦合的开关阻止所述第一光信号传输到所述第二光调制器包括:断开光开关。
38.根据权利要求34所述的至少一种非暂时性计算机可读介质,其中,当所述矩阵行的一个或多个元素的值等于零时,致使与所述光学检测器的输出耦合的一个或多个开关阻止所述被加项电信号的传输包括:断开电开关。
39.根据权利要求34所述的至少一种非暂时性计算机可读介质,其中,使用所述第一光调制器对所述输入光信号进行调制包括:调制所述输入光信号的振幅。
40.一种使用光学处理器执行矩阵与矩阵运算的方法,所述方法包括:
将第一矩阵编程到第一光学子处理器中;
将第二矩阵编程到第二光学子处理器中,所述第二光学子处理器包括与所述第一光学子处理器的输出耦合的输入;
将多个独热向量作为光信号输入到所述第一光学子处理器;以及
从所述第二光学子处理器输出表示所述第一矩阵和第二矩阵乘法的一部分的输出向量。
41.根据权利要求40所述的方法,还包括:
从所述第一光学子处理器输出表示所述独热向量和所述第一矩阵之间的乘法的多个电信号。
42.根据权利要求41所述的方法,还包括:
在所述第二光学子处理器处,从所述第一光学子处理器接收所述多个电信号;以及
使用所述第二光学子处理器的光调制器,来使用从所述第一光学子处理器接收的所述多个电信号对输入光信号进行调制。
43.根据权利要求41所述的方法,还包括:
在输出表示所述独热向量和所述第一矩阵之间的乘法的所述多个电信号之后,使用一个或多个放大器对所述多个电信号进行放大。
44.一种被配置为执行矩阵与矩阵运算的光学处理器,所述光学处理器包括:
第一光学子处理器,被配置为光学地执行独热向量和第一矩阵的矩阵与向量乘法以获得第一向量;以及
第二光学子处理器,被配置为从所述第一光学子处理器接收输出信号并光学地执行所述第一向量和第二矩阵的矩阵与向量乘法。
45.一种被配置为执行矩阵与矩阵运算的光学处理器,所述光学处理器包括:
第一光学子处理器,包括:
第一多个光调制器,其每个被配置为接收输入光信号、对所述输入光信号进行调制、并输出表示独热向量的元素的第一光信号;
第二多个光调制器,其每个与所述第一多个光调制器中的光调制器光学耦合,并被配置为接收所述第一光信号、对所述第一光信号进行调制、并且输出表示所述独热向量和第一矩阵之间的矩阵与向量乘法的一部分的第二光信号;
第一多个光学检测器,其每个与所述第二多个光调制器中的光调制器耦合,并被配置为将所述第二光信号转换为表示矩阵与向量乘法的所述一部分的电信号;以及
第一多个电求和单元,其每个与所述第一多个光学检测器中的两个或更多个光学检测器的输出耦合,并被配置为输出表示由所述矩阵与向量乘法的一部分的总和所产生的向量的元素的电信号;以及
第二光学子处理器,包括:
第三多个光调制器,其每个从所述第一光学子处理器的多个电求和单元中的电求和单元接收输出电信号,并且其每个被配置为接收输入光信号、根据接收到的输出电信号对所述输入光信号进行调制、以及输出表示所述向量的元素的第三光信号;
第四多个光调制器,其每个与所述第三多个光调制器中的光调制器光学耦合,并被配置为接收表示所述向量的元素的所述第三光信号、对所述第三光信号进行调制、以及输出表示所述第一矩阵和第二矩阵之间的矩阵与矩阵乘法的一部分的第四光信号;
第二多个光学检测器,其每个与所述第三多个光调制器中的光调制器耦合,并被配置为将所述第三光信号转换为表示所述矩阵与矩阵乘法的一部分的电信号;以及
第二多个电求和单元,其每个与所述第二多个光学检测器中的两个或更多个光学检测器的输出耦合,并被配置为输出表示由所述矩阵与矩阵乘法的一部分的总和所产生的矩阵的元素的电信号。
CN202080068642.9A 2019-07-29 2020-07-28 使用线性光子处理器进行模拟计算的系统和方法 Pending CN114514490A (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201962879936P 2019-07-29 2019-07-29
US62/879,936 2019-07-29
US201962939480P 2019-11-22 2019-11-22
US62/939,480 2019-11-22
PCT/US2020/043841 WO2021021787A1 (en) 2019-07-29 2020-07-28 Systems and methods for analog computing using a linear photonic processor

Publications (1)

Publication Number Publication Date
CN114514490A true CN114514490A (zh) 2022-05-17

Family

ID=74230814

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080068642.9A Pending CN114514490A (zh) 2019-07-29 2020-07-28 使用线性光子处理器进行模拟计算的系统和方法

Country Status (8)

Country Link
US (3) US11398871B2 (zh)
EP (1) EP4004673A4 (zh)
JP (1) JP2022543366A (zh)
KR (1) KR20220039775A (zh)
CN (1) CN114514490A (zh)
CA (1) CA3148118A1 (zh)
TW (1) TW202112074A (zh)
WO (1) WO2021021787A1 (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11196395B2 (en) 2019-01-16 2021-12-07 Lightmatter, Inc. Optical differential low-noise receivers and related methods
KR20220039775A (ko) 2019-07-29 2022-03-29 라이트매터, 인크. 선형 포토닉 프로세서를 이용한 아날로그 계산을 위한 시스템들 및 방법들
US11093215B2 (en) 2019-11-22 2021-08-17 Lightmatter, Inc. Linear photonic processors and related methods
US11700078B2 (en) * 2020-07-24 2023-07-11 Lightmatter, Inc. Systems and methods for utilizing photonic degrees of freedom in a photonic processor
EP4193306A1 (en) * 2020-08-06 2023-06-14 Celestial AI Inc. Coherent photonic computing architectures
US20220097690A1 (en) * 2020-09-30 2022-03-31 Toyota Motor Engineering & Manufacturing North America, Inc. Optical sense-compute solution for real-time navigation involving multiple vehicles
US11509397B2 (en) * 2020-12-17 2022-11-22 Celestial Ai Inc. Balanced photonic architectures for matrix computations
EP4040259A1 (en) * 2021-02-05 2022-08-10 Microsoft Technology Licensing, LLC Optical vector multiplier
EP4040258A1 (en) * 2021-02-05 2022-08-10 Microsoft Technology Licensing, LLC Optical vector multiplier
CN112988113B (zh) * 2021-04-29 2021-09-14 中国科学院西安光学精密机械研究所 一种光子矩阵向量乘法器
CN113644984B (zh) * 2021-10-14 2022-03-11 清华大学 光电数字逻辑运算的光学逻辑元件及其逻辑运算方法
WO2023162857A1 (ja) * 2022-02-24 2023-08-31 国立大学法人東京大学 光集積回路、情報処理装置、及び演算方法
TW202401062A (zh) 2022-03-18 2024-01-01 美商天聖Ai公司 光學多晶粒互連橋接(omib)
WO2023230764A1 (zh) * 2022-05-30 2023-12-07 华为技术有限公司 一种光计算系统以及芯片

Family Cites Families (168)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3872293A (en) 1972-01-07 1975-03-18 Us Navy Multi-dimensional fourier transform optical processor
US4183623A (en) 1977-10-11 1980-01-15 Haines Kenneth A Tomographic cross-sectional imaging using incoherent optical processing
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
US4592004A (en) * 1984-05-21 1986-05-27 The United States Of America As Represented By The Secretary Of The Navy Electrooptical matrix multiplication using the twos complement arithmetic for improved accuracy
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
CA1290019C (en) 1986-06-20 1991-10-01 Hideo Kuwahara Dual balanced optical signal receiver
US5297068A (en) * 1987-03-27 1994-03-22 Opticomp Corporation Global interconnect architecture for optical computer
EP0288033B1 (en) 1987-04-20 1993-04-07 Fuji Photo Film Co., Ltd. Pickup apparatus for magneto-optical recording medium
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
US5254957A (en) 1989-01-04 1993-10-19 Information Storage, Inc. Apparatus and method for amplifying optically sensed signals
US5117099A (en) 1989-09-01 1992-05-26 Schmidt Terrence C Ambient light rejecting quad photodiode sensor
US5077619A (en) 1989-10-25 1991-12-31 Tacan Corporation High linearity optical transmitter
WO1991007714A1 (en) 1989-11-20 1991-05-30 British Telecommunications Public Limited Company Neural networks
JPH03164816A (ja) * 1989-11-22 1991-07-16 Mitsubishi Electric Corp 情報処理装置
US5220644A (en) 1989-11-22 1993-06-15 Hitachi, Ltd. Optical neural network system
JP2795015B2 (ja) 1991-01-09 1998-09-10 松下電器産業株式会社 空間光変調素子および神経ネットワーク回路
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
US5288990A (en) * 1992-12-28 1994-02-22 At&T Bell Laboratories Differential self-electrooptic effect device
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
US5410145A (en) 1994-02-25 1995-04-25 Coroy; Trenton G. Light detector using reverse biased photodiodes with dark current compensation
US5784309A (en) 1994-03-02 1998-07-21 Budil; Matthias Optical vector multiplier for neural networks
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
US5621227A (en) 1995-07-18 1997-04-15 Discovery Semiconductors, Inc. Method and apparatus for monolithic optoelectronic integrated circuit using selective epitaxy
US5597068A (en) 1995-08-25 1997-01-28 Alpha Enterprises, Inc. Compact disc security container
JP3204624B2 (ja) 1996-02-23 2001-09-04 シチズン時計株式会社 半導体装置
JP2970844B2 (ja) 1997-06-04 1999-11-02 日本電気株式会社 光受信器及びそれを用いた光ネットワークシステム
US6005998A (en) 1998-02-20 1999-12-21 Lucent Technologies Inc. Strictly non-blocking scalable matrix optical switch
US6303923B1 (en) 1998-12-18 2001-10-16 California Institute Of Technology Fabricating a hybrid imaging device having non-destructive sense nodes
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
WO2000072107A1 (en) 1999-05-19 2000-11-30 Jtc 2000 Development (Delaware), Inc. Optical processing
US7515753B2 (en) * 1999-05-19 2009-04-07 Lenslet Labs Ltd. Phase extraction in optical processing
US6178020B1 (en) 1999-09-30 2001-01-23 Ut-Battelle, Llc Modules and methods for all photonic computing
US7369773B2 (en) 2000-05-24 2008-05-06 Purdue Research Foundation Methods and systems 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
US6720830B2 (en) 2001-06-11 2004-04-13 Johns Hopkins University Low-power, differential optical receiver in silicon on insulator
DE10136515C2 (de) 2001-07-26 2003-10-23 Wacker Construction Equipment Bohr- und/oder Schlaghammer mit Handgriff
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
FR2832579A1 (fr) 2001-11-19 2003-05-23 St Microelectronics Sa Dispositif de calibrage pour un etage d'entree video
US6690853B1 (en) 2002-03-11 2004-02-10 Pts Corporation Tunable DWDM demultiplexer
US7317574B2 (en) 2002-05-20 2008-01-08 Magiq Technologies, Inc. Long-distance quantum communication
EP1376918B1 (de) 2002-06-24 2004-09-29 Alcatel 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
CN1726547A (zh) 2002-12-12 2006-01-25 皇家飞利浦电子股份有限公司 具有分区的光检测器的位检测器
US7279731B1 (en) 2006-05-15 2007-10-09 Udt Sensors, Inc. Edge illuminated photodiodes
US7366416B2 (en) 2003-08-11 2008-04-29 General Instrument Corporation Hub for a passive optical network hub
US7271461B2 (en) 2004-02-27 2007-09-18 Banpil Photonics Stackable optoelectronics chip-to-chip interconnects and method of manufacturing
US7133173B2 (en) 2004-07-26 2006-11-07 Hewlett-Packard Development Company, L.P. Nonlinear electromagnetic quantum information processing
US7492983B2 (en) 2004-08-04 2009-02-17 The Furukawa Electric Co., Ltd. Optical circuit device
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
CN1243262C (zh) 2004-09-09 2006-02-22 上海交通大学 可调谐波长选择/锁定光密集波分复用合波/分波器
US7230227B2 (en) 2004-10-08 2007-06-12 The Boeing Company Lenslet/detector array assembly for high data rate optical communications
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
JP5371433B2 (ja) 2005-09-29 2013-12-18 ザ ジェネラル ホスピタル コーポレイション スペクトル符号化による光学イメージング方法および装置
JP2009512031A (ja) 2005-10-13 2009-03-19 ナショナル・アイシーティ・オーストラリア・リミテッド 信号特性の自動識別を行うための方法および装置
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
JP4883273B2 (ja) 2006-01-11 2012-02-22 日本電気株式会社 乱数品質管理装置および管理方法
KR101309677B1 (ko) 2006-01-27 2013-09-17 디-웨이브 시스템즈, 인코포레이티드 단열 양자 연산 방법
US20080002993A1 (en) 2006-06-30 2008-01-03 Kirkpatrick Peter E Optical receiver with dual photodetector for common mode noise suppression
KR100890389B1 (ko) 2006-12-05 2009-03-26 한국전자통신연구원 편광 무의존 단방향 양자 암호 수신 및 송수신 장치
WO2008067664A1 (en) 2006-12-05 2008-06-12 D-Wave Systems Inc. Systems, methods and apparatus for local programming of quantum processor elements
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
WO2009007741A1 (en) 2007-07-09 2009-01-15 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
US8204387B2 (en) 2007-10-10 2012-06-19 Nec Corporation Optical modulator and optical communication system
JP5339088B2 (ja) 2007-11-30 2013-11-13 日本電気株式会社 光受信回路および信号処理方法
US8190553B2 (en) 2007-12-20 2012-05-29 Routt Thomas J Methods and systems for quantum search, computation and memory
JP2009194138A (ja) * 2008-02-14 2009-08-27 Nec Corp 半導体レーザ駆動装置、方法、光モジュールおよび光送信装置
JP5091717B2 (ja) 2008-02-21 2012-12-05 株式会社東芝 量子計算方法および量子計算機
US8014686B2 (en) 2008-03-20 2011-09-06 Infinera Corporation Polarization demultiplexing optical receiver using polarization oversampling and electronic polarization tracking
JP4972602B2 (ja) 2008-04-10 2012-07-11 株式会社日立製作所 光信号検出回路及びそれを用いた情報再生装置
CN101630178B (zh) 2008-07-16 2011-11-16 中国科学院半导体研究所 一种硅基集成化的光学向量-矩阵乘法器
JP5272686B2 (ja) 2008-11-28 2013-08-28 富士通株式会社 光受信器、光受信回路および光受信方法
FR2940432B1 (fr) 2008-12-23 2011-01-21 H2I Technologies Dispositif pour quantifier et localiser un signal lumineux module a une frequence predeterminee
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
CN102804033B (zh) 2010-03-19 2015-07-29 日本电信电话株式会社 光调制器
US8026837B1 (en) 2010-04-22 2011-09-27 The Aerospace Corporation Systems and methods for converting wideband signals in the optical domain
JP5799531B2 (ja) 2010-04-30 2015-10-28 ソニー株式会社 A/d変換器、a/d変換方法、固体撮像素子およびカメラシステム
US9667379B2 (en) 2010-06-04 2017-05-30 Ecole Polytechnique Federale De Lausanne (Epfl) Error control coding for orthogonal differential vector signaling
US8247780B2 (en) 2010-11-10 2012-08-21 Siemens Aktiengesellschaft High density, proportional-mode, APD arrays for individual scintillator readout in PET applications
JP5439355B2 (ja) 2010-12-28 2014-03-12 富士通テレコムネットワークス株式会社 光パケットスイッチ装置
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
CN104041068A (zh) 2012-01-31 2014-09-10 惠普发展公司,有限责任合伙企业 光学架构、光学分布矩阵以及用于制造光学结构的方法
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
US9485048B2 (en) 2012-06-08 2016-11-01 The Royal Institution For The Advancement Of Learning/Mcgill University Methods and devices for space-time multi-plane optical networks
US8625936B1 (en) 2012-06-29 2014-01-07 Alcatel Lucent Advanced modulation formats using optical modulators
CN102866876B (zh) 2012-08-22 2015-03-04 清华大学 一种单片集成的光学矩阵-向量乘法器
EP2709295A1 (fr) 2012-09-14 2014-03-19 Alcatel Lucent Visualisation d'un signal optique par échantillonnage optique linéaire
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
JP6300049B2 (ja) 2013-07-09 2018-03-28 ザ ボード オブ トラスティーズ オブ ザ レランド スタンフォード ジュニア ユニバーシティー 光パラメトリック発振器のネットワークを使用する計算
GB201402736D0 (en) 2013-07-26 2014-04-02 Isis Innovation Method of training a neural network
EP2843854B1 (en) 2013-08-27 2018-04-04 ADVA Optical Networking SE Method, transmitter and receiver device for transmitting a binary digital transmit signal over an optical transmission link
CN103473213A (zh) 2013-09-12 2013-12-25 中国科学院半导体研究所 用于光学向量-矩阵乘法器并行信息加载和提取的系统
CN105531946B (zh) 2013-12-23 2018-01-19 华为技术有限公司 一种光差分信号的发送和接收方法、装置和系统
CN105917257B (zh) 2014-02-24 2017-08-29 洛克利光子有限公司 检测器重调器和光电子交换机
JP2015169847A (ja) 2014-03-07 2015-09-28 国立大学法人徳島大学 位相感応型光増幅器及び励起光位相同期回路
WO2016028363A2 (en) 2014-06-06 2016-02-25 Massachusetts Institute Of Technology Methods, systems, and apparatus for programmable quantum photonic processing
US9239264B1 (en) 2014-09-18 2016-01-19 Joseph R. Demers Transceiver method and apparatus having phase modulation and common mode phase drift rejection
WO2016051410A1 (en) 2014-10-02 2016-04-07 B.G. Negev Technologies And Applications Ltd., At Ben-Gurion University All-optical silicon-photonic constellation conversion of amplitude-phase modulation formats
US9544062B2 (en) 2014-12-22 2017-01-10 Opel Solar, Inc. Coherent optical receiver
US10009135B2 (en) 2015-02-06 2018-06-26 The Trustees Of Princeton University System and method for photonic processing
US10050713B2 (en) 2015-03-02 2018-08-14 Futurewei Technologies, Inc. Optical transceiver using duplex media, self-homodyne detection (SHD), coherent detection, and uncooled laser
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
CN105681787B (zh) 2016-01-22 2019-01-18 北京大学 对时空信号进行编码的方法和装置
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
KR102542496B1 (ko) 2016-06-02 2023-06-13 메사추세츠 인스티튜트 오브 테크놀로지 광 신경망 용 장치 및 방법
US10367590B2 (en) 2016-09-22 2019-07-30 Hewlett Packard Enterprise Development Lp Concurrently performing attribute-dependent operations on optical signals
US10408672B2 (en) 2016-10-03 2019-09-10 Government Of The United States Of America, As Represented By The Secretary Of Commerce Protector for photon detector
US10274989B2 (en) 2016-10-13 2019-04-30 Fathom Computing Wavelength multiplexed matrix-matrix multiplier
EP3319311B1 (fr) 2016-11-03 2019-10-23 Commissariat à l'Energie Atomique et aux Energies Alternatives Capteur d'images synchrone à codage temporel
US20180260703A1 (en) 2016-11-22 2018-09-13 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
JP6970513B2 (ja) 2017-02-17 2021-11-24 キヤノン株式会社 光電変換装置
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
WO2019014345A1 (en) 2017-07-11 2019-01-17 Massachusetts Institute Of Technology OPTICAL ISING MACHINES AND OPTICAL CONVOLUTIVE NEURAL NETWORKS
US10197971B1 (en) 2017-08-02 2019-02-05 International Business Machines Corporation Integrated optical circuit for holographic information processing
US10757450B2 (en) 2017-10-05 2020-08-25 Cable Television Laboratories, Inc System and methods for data compression and nonuniform quantizers
US10812118B2 (en) 2017-12-04 2020-10-20 Massachusetts Institute Of Technology Methods and apparatus for photonic-enabled radio-frequency (RF) cancellation
JP7242697B2 (ja) 2017-12-11 2023-03-20 プロフェシー イベントベースの画像センサおよびその操作方法
WO2020027868A2 (en) 2018-02-06 2020-02-06 Massachusetts Institute Of Technology Serialized electro-optic neural network using optical weights encoding
US11922136B2 (en) 2018-02-23 2024-03-05 The George Washington University Residue arithmetic nanophotonic system
EP3540774B1 (en) 2018-03-16 2020-09-30 Teledyne Dalsa B.V. Image sensor and imaging system comprising the same
US10345519B1 (en) 2018-04-11 2019-07-09 Microsoft Technology Licensing, Llc Integrated optical beam steering system
US11494461B2 (en) 2018-04-17 2022-11-08 The Trustees Of The University Of Pennsylvania Metastructures for solving equations with waves
US10670860B2 (en) 2018-04-30 2020-06-02 The Trustees Of Princeton University Photonic filter bank system and method of use
JP2021523461A (ja) 2018-05-10 2021-09-02 ザ ボード オブ トラスティーズ オブ ザ レランド スタンフォード ジュニア ユニバーシティー 原位置逆伝搬を通した光子ニューラルネットワークの訓練
SG11202011352SA (en) 2018-05-15 2020-12-30 Lightmatter Inc Photonic processing systems and methods
WO2019222150A1 (en) 2018-05-15 2019-11-21 Lightmatter, Inc. Algorithms for training neural networks with photonic hardware accelerators
TW202013265A (zh) 2018-06-04 2020-04-01 美商萊特美特股份有限公司 使用可編程奈米光子器件計算旋積的方法
US10608663B2 (en) 2018-06-04 2020-03-31 Lightmatter, Inc. Real-number photonic encoding
US10461967B1 (en) 2018-06-22 2019-10-29 Elenion Technologies, Llc Optical domain equalization for coherent optical receivers
WO2020096913A1 (en) 2018-11-08 2020-05-14 Luminous Computing, Inc. System and method for photonic computing
US11196395B2 (en) 2019-01-16 2021-12-07 Lightmatter, Inc. Optical differential low-noise receivers and related methods
JP2022523209A (ja) 2019-02-26 2022-04-21 ライトマター インコーポレイテッド ハイブリッドアナログ・デジタル行列プロセッサ
KR20220039775A (ko) 2019-07-29 2022-03-29 라이트매터, 인크. 선형 포토닉 프로세서를 이용한 아날로그 계산을 위한 시스템들 및 방법들
US11093215B2 (en) 2019-11-22 2021-08-17 Lightmatter, Inc. Linear photonic processors and related methods
IL291772A (en) 2021-03-31 2022-10-01 Cognifiber Ltd Ultra wideband optical data processor

Also Published As

Publication number Publication date
US20210036783A1 (en) 2021-02-04
US20230353252A1 (en) 2023-11-02
US11671182B2 (en) 2023-06-06
US11936434B2 (en) 2024-03-19
EP4004673A1 (en) 2022-06-01
US20220416908A1 (en) 2022-12-29
EP4004673A4 (en) 2023-06-21
US11398871B2 (en) 2022-07-26
JP2022543366A (ja) 2022-10-12
CA3148118A1 (en) 2021-02-04
TW202112074A (zh) 2021-03-16
WO2021021787A1 (en) 2021-02-04
WO2021021787A8 (en) 2021-03-04
KR20220039775A (ko) 2022-03-29

Similar Documents

Publication Publication Date Title
US11936434B2 (en) Systems and methods for analog computing using a linear photonic processor
TWI825452B (zh) 光電計算系統
TWI818020B (zh) 光子處理系統及方法
US11775779B2 (en) Hybrid analog-digital matrix processors
US20190370644A1 (en) Convolutional layers for neural networks using programmable nanophotonics
WO2019222150A1 (en) Algorithms for training neural networks with photonic hardware accelerators
US11860666B2 (en) Matrix multiplication using optical processing
TWI806042B (zh) 光電處理設備、系統及方法
CN112912900A (zh) 光电计算系统
CN113496281A (zh) 光电计算系统
CN113570051A (zh) 光电处理系统
Filipovich et al. Monolithic silicon photonic architecture for training deep neural networks with direct feedback alignment
US20230071600A1 (en) Switched spatial tensor data manipulation with photonics
Li et al. A wavelength-multiplexed photonic tensor processor based on Mach-Zehnder modulator

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination