光电计算系统的制作方法

文档序号:25085755发布日期:2021-05-18 18:36阅读:90来源:国知局
光电计算系统的制作方法
光电计算系统
1.相关申请的交叉引用
2.本申请要求于2019年1月14日提交的美国临时申请62/792,144、于2019年3月19日提交的美国临时申请62/820,562、以及于2019年6月4日提交的美国申请16/431,167的优先权。以上申请的全部公开内容通过引用合并于此。
技术领域
3.本公开涉及一种光电计算系统。


背景技术:

4.神经形态计算(neuromorphic computing)是电子领域中近似大脑的操作的方法。神经形态计算的一个突出方法是人工神经网络(artificial neural network;ann),它是人工神经元的集合,人工神经元以特定的方式相互连接,以类似于大脑功能的方式处理信息。ann已经在多种应用中找到了用途,这些应用包括人工智能、语音识别、文本识别、自然语言处理以及各种形式的模式识别。
5.ann具有输入层、一个或多个隐藏层以及输出层。每个层具有节点或人工神经元,并且节点在层之间互连。隐藏层的每个节点执行从先前层的节点所接收的信号的加权总和(weighted sum),并且执行加权总和的非线性变换(“激活”)以产生输出。可以通过执行矩阵乘法步骤来计算加权总和。因此,计算ann通常涉及多个矩阵乘法步骤,其通常使用电子集成电路来执行。
6.在电子信号(例如电压或电流)上以模拟或数字形式编码的电子数据上所执行的计算通常使用电子计算硬件来实现,例如在集成电路(例如:处理器、专用集成电路(application

specific integrated circuit;asic)或片上系统(system on a chip;soc))、电子电路板或其他电子电路中实现的模拟或数字电子装置。光信号已被用于在长距离和较短距离(例如:在数据中心内)上传输数据。在这种光信号上执行的操作通常在光数据传输的环境中进行,例如用于在网络中切换或过滤光信号的装置内。在计算平台中使用光信号已被更多限制。用于全光(all

optical)计算的各种部件和系统已被提出。这种系统可包括分别地在输入和输出处从电信号和到电信号的转换,但是对于在计算中执行的重要操作不可使用两种类型(电和光)的信号。


技术实现要素:

7.在通常情况下,在第一方面,一种系统包括:第一单元,被配置以产生多个调制器控制信号;以及处理单元。处理单元包括:光源或端口,被配置以提供多个光输出;以及第一组光调制器,耦合至光源或端口和第一单元。第一组光调制器中的光调制器被配置以基于与多个调制器控制信号中的第一组调制器控制信号相对应的数字输入值,调制由光源或端口所提供的多个光输出,来产生光输入向量,光输入向量包括多个光信号。处理单元还包括矩阵乘法单元,矩阵乘法单元包括第二组光调制器。矩阵乘法单元耦合至第一单元,并且被
配置以基于与施加到第二组光调制器的多个调制器控制信号中的第二组调制器控制信号相对应的多个数字权重值,将光输入向量转换为模拟输出向量。第一组光调制器或第二组光调制器中的至少之一的至少一个光调制器被配置以基于多个调制器控制信号中的第一调制器控制信号来调制光信号,并且第一单元被配置以整形第一调制器控制信号,以包括与幅度变化相关的带宽增强,幅度变化与对应于第一调制器控制信号的连续数字值的对应变化相关。
8.系统的实施例可包括以下特征的一或多个。系统可包括第二单元,耦合至矩阵乘法单元,并且第二单元被配置以将模拟输出向量转换成数字输出向量;以及控制器。控制器可包括集成电路,被配置以执行操作,包括:接收人工神经网络计算请求,人工神经网络计算请求包括输入数据集,输入数据集包括第一数字输入向量;接收第一多个神经网络权重;以及通过第一单元,基于第一数字输入向量产生第一多个调制器控制信号,并且基于第一多个神经网络权重产生第一多个权重控制信号。
9.第一单元可包括数字模拟转换器(digital to analog converter;dac)。
10.系统可包括存储单元,被配置以储存数据集和多个神经网络权重。
11.控制器的集成电路还可被配置以执行包括在存储单元中储存输入数据集和第一多个神经网络权重的操作。
12.控制器可包括专用集成电路(application specific integrated circuit;asic),并且接收人工神经网络计算请求可包括从通用数据处理器接收人工神经网络计算请求。
13.第一单元、处理单元、第二单元以及控制器可被布置在多芯片模块或集成电路中的至少一个上。接收人工神经网络计算请求可包括从第二数据处理器接收人工神经网络计算请求,其中第二数据处理器在多芯片模块或集成电路的外部,第二数据处理器通过通信通道(communication channel)耦合至多芯片模块或集成电路,并且处理单元可以以比通信通道的数据速率大至少一数量级的数据速率来处理数据。
14.第一单元、处理单元、第二单元以及控制器可被用于在多个迭代中重复的光电处理循环。光电处理循环包括:(1)基于调制器控制信号的至少一个的至少第一光调制操作,以及基于权重控制信号的至少一个的至少第二光调制操作,以及(2)(a)电求和操作或(b)电储存操作中的至少一个。
15.光电处理循环可包括电储存操作,并且电储存操作使用耦合至控制器的存储单元来执行。通过控制器所执行的操作还可包括在存储单元中储存输入数据集和第一多个神经网络权重。
16.光电处理循环可包括电求和操作,并且电求和操作可使用在矩阵乘法单元内的电求和模块来执行。电求和模块可被配置以产生对应于模拟输出向量的元素的电流,电流表示光输入向量的相应元素乘以相应神经网络权重的总和。
17.第一调制器控制信号可包括与多个预定幅度水平相关的模拟信号,并且幅度水平的每一个与不同对应数字值相关。
18.第一调制器控制信号可包括与两个预定幅度水平相关的模拟信号,并且幅度水平的每一个与不同的对应二进制值相关。
19.连续数字值可包括在一系列二进制值中的多个连续二进制值。
20.控制器可被配置以通过增加与第一时间间隔相关的第一预定幅度水平和与第二时间间隔相关的第二预定幅度水平之间的幅度变化的大小,来整形第一调制器控制信号,以包括用于第二时间间隔的初始部分的带宽增强。
21.一系列二进制值可用于确定用于根据不归零(non

return

to

zero;nrz)调制模式来调制光信号的第一调制器控制信号的幅度水平。
22.第一单元可被配置以通过在第二组光调制器中的第一调制器的二极管结构和串联连接在二极管结构和提供第一调制器控制信号的电路之间的电容之间泵浦(pumping)电流,来整形第一调制器控制信号,以包括带宽增强,并且泵浦电流所传输的电荷量可以至少部分地基于在提供连续数字值的时间周期内的恒定电压来确定。
23.在另一一般方面,装置包括:多个光波导,耦合至第一组光幅度调制器,其中使用第一组光幅度调制器,在由光波导所承载的相应的光信号上编码一组多个输入值。装置包括多个复制模块,并且对于一个或多个光信号的至少两个子集中的每一个,一个或多个复制模块的对应组被配置以将一个或多个光信号的子集分成光信号的二或多个副本。装置包括多个乘法模块,乘法模块的每一个包括第二组光幅度调制器的光幅度调制器,并且对于一个或多个光信号的第一子集的至少两个副本中的每一个,对应一个的乘法模块被配置以使用第二组光幅度调制器的光幅度调制器将第一子集的一个或多个光信号乘以一个或多个矩阵元素值。装置包括一个或多个求和模块,并且对于两个或更多个乘法模块的结果,对应的一个求和模块被配置以产生电信号,电信号表示两个或更多个乘法模块的结果的总和。第一组光幅度调制器或第二组光幅度调制器中的至少一个的至少一个光幅度调制器被配置以使用相对调制值的绝对值单调增加(monotonically increase)的功率,通过调制值来调制光信号。
24.装置的实施例可包括以下特征的一个或多个。第一组光幅度调制器或第二组光幅度调制器中的至少一个的至少一个光幅度调制器可包括相干敏感光幅度调制器,相干敏感光幅度调制器被配置以基于光波之间的干涉,通过调制值调制光信号,光波具有相干长度,相干长度至少与通过相干敏感光幅度调制器的传播距离一样长。
25.相干敏感光幅度调制器可包括马赫曾德尔干涉仪(mach

zehnder interferometer;mzi),马赫曾德尔干涉仪将输入光波导所引导的光波分配至马赫曾德尔干涉仪的第一光波导臂和马赫曾德尔干涉仪的第二光波导臂。第一光波导臂可包括有源移相器,有源移相器相对于第二光波导臂的相位延迟产生相对相移,并且马赫曾德尔干涉仪可将来自第一光波导臂和第二光波导臂的光波组合到至少一个输出光波导。
26.用于通过调制值来调制光信号的功率可包括施加到有源移相器的功率。
27.编码在相应光信号上的一组多个输入值中的输入值可表示与包括一个或多个矩阵元素值的矩阵相乘的输入向量的元素。
28.一组多个输出值可被编码在由一个或多个求和模块所产生的多个相应电信号上,并且一组多个输出值中的输出值可表示输出向量的元素,输出向量通过输入向量乘以矩阵产生。
29.由光波导所承载的光信号的每一个可包括具有共同波长的光波,共同波长对于所有光信号大致相同。
30.复制模块可包括具有分光器的至少一个复制模块,分光器将复制模块的输入端口
的预定比例的光波的功率传输至复制模块的第一输出端口,并且将复制模块的输入端口处的剩余比例的光波的功率传输至复制模块的第二输出端口。
31.分光器可包括波导分光器,波导分光器将由复制模块的输入光波导所引导的预定比例的光波的功率传输至复制模块的第一输出光波导,并且将由复制模块的输入光波导所引导的剩余比例的光波的功率传输至复制模块的第二输出光波导。
32.输入光波导的引导模式可被绝热地耦合至第一输出光波导和第二输出光波导中的每一个的多个引导模式。
33.分光器可包括分束器,分束器包括至少一个表面,其传输输入端口处的预定比例的光波的功率,并且反射输入端口处剩余比例的光波的功率。
34.多个光波导的至少一个可包括耦合至光耦合器的光纤,光耦合器将光纤的引导模式耦合至自由空间传播模式(free

space propagation mode)。
35.乘法模块可包括至少一个相干敏感光幅度调制器,相干敏感光幅度调制器被配置以基于光波之间的干涉,将第一子集的一个或多个光信号乘以一个或多个矩阵元素值,光波具有相干长度,相干长度至少与通过相干敏感光幅度调制器的传播距离一样长。
36.相干敏感光幅度调制器可包括马赫曾德尔干涉仪(mzi),马赫曾德尔干涉仪将输入光波导所引导的光波分配至马赫曾德尔干涉仪的第一光波导臂和马赫曾德尔干涉仪的第二光波导臂。第一光波导臂可包括移相器,移相器相对于第二光波导臂的相位延迟产生相对相移,并且马赫曾德尔干涉仪可将来自第一光波导臂和第二光波导臂的多个光波组合到至少一个输出光波导。
37.马赫曾德尔干涉仪可将来自第一光波导臂和第二光波导臂的光波组合到第一输出光波导和第二输出光波导中的每一个。第一光电检测器可从第一输出光波导接收光波以产生第一光电流,第二光电检测器可从第二输出光波导接收光波以产生第二光电流,并且相干敏感光幅度调制器的结果可包括第一光电流与第二光电流之间的差值。
38.相干敏感光幅度调制器可包括一个或多个环形共振器,环形共振器包括耦合至第一光波导的至少一个环形共振器和耦合至第二光波导的至少一个环形共振器。
39.第一光电检测器可接收来自第一光波导的光波,以产生第一光电流,第二光电检测器可接收来自第二光波导的光波,以产生第二光电流,并且相干敏感光幅度调制器的结果可包括第一光电流与第二光电流之间的差值。
40.乘法模块可包括至少一个相干非敏感光幅度调制器,相干非敏感光幅度调制器被配置以基于光波内的能量吸收,将第一子集的一个或多个光信号乘以一个或多个矩阵元素值。
41.相干非敏感光幅度调制器可包括电吸收调制器。
42.一个或多个求和模块可包括具有以下部件的至少一个求和模块:(1)两个或更多个输入导体,输入导体的每一个以输入电流的形式承载电信号,输入电流的幅度表示乘法模块的相应一个的相应结果,以及(2)至少一个输出导体,输出导体以输出电流的形式承载表示相应结果的总和的电信号,输出电流与输入电流的总和成比例。
43.两个或更多个输入导体和输出导体可包括导线,其在导线之间的一个或多个结点接触,并且输出电流可大致等于输入电流的总和。
44.输入电流的至少第一输入电流可以以至少一个光电流的形式提供,光电流由至少
一个光电检测器产生,光电检测器接收由乘法模块的第一乘法模块所产生的光信号。
45.第一输入电流可以以两个光电流之间的差值的形式提供,两个光电流由不同的相应光电检测器产生,光电检测器接收由第一乘法模块所产生的不同相应光信号。
46.一个或多个光信号的第一子集的副本中的一个可由单一光信号组成,输入值中的一个被编码在该单一光信号上。
47.对应于第一子集的副本的乘法模块可将编码的输入值乘以单一矩阵元素值。
48.一个或多个光信号的第一子集的副本中的一个可包括的光信号多于一个,并且少于所有光信号,其中多个输入值被编码在该光信号上。
49.对应于第一子集的副本的乘法模块可将编码的输入值乘以不同的相应矩阵元素值。
50.对应于一个或多个光信号的第一子集的不同相应副本的不同乘法模块可被不同装置包含,不同装置进行光学通信以在不同装置之间传输一个或多个光信号的第一子集的副本中的一个。
51.多个光波导的两个或更多个、多个复制模块的两个或更多个、多个乘法模块的两个或更多个、以及一个或多个求和模块的至少一个可被布置在公共装置的基板上。
52.装置可执行向量矩阵乘法,其中可提供输入向量作为一组光信号,并且可提供输出向量作为一组电信号。
53.装置还可包括累加器,累加器集成对应于乘法模块或求和模块的输出的输入电信号,其中使用时域编码来编码输入电信号,时域编码在多个时隙的每一个内使用开关幅度调制,并且累加器产生输出电信号,输出电信号以多于两个幅度水平编码,幅度水平对应于多个时隙上的时域编码的不同占空比。
54.两个或更多个乘法模块的每一个可对应于一个或多个光信号的不同子集。
55.装置还可包括:用于与一个或多个光信号的第一子集中的光信号不同的一个或多个光信号的第二子集的每一个副本的乘法模块,其被配置以使用光幅度调制将第二子集的一个或多个光信号乘以一个或多个矩阵元素值。
56.在另一一般方面,方法包括:使用第一组光幅度调制器在相应光信号上编码一组多个输入值;对于一个或多个光信号的至少两个子集中的每一个,使用一个或多个复制模块的对应一组以将一个或多个光信号的子集分成光信号的两个或更多个副本;对于一个或多个光信号的第一子集的至少两个副本中的每一个,使用对应乘法模块以使用第二组光幅度调制器的光幅度调制器将第一子集的一个或多个光信号乘以一个或多个矩阵元素值;以及对于两个或更多个乘法模块的结果,使用被配置为产生电信号的求和模块,电信号表示两个或更多个乘法模块的结果的总和。第一组光幅度调制器或第二组光幅度调制器中的至少一个的至少一个光幅度调制器被配置以使用相对于调制值的绝对值单调增加的功率,通过调制值来调制光信号。
57.在另一一般方面,系统包括:存储单元,被配置以储存数据集和多个神经网络权重;数字模拟转换(dac)单元,被配置以产生多个调制器控制信号,并且产生多个权重控制信号;光处理器,包括激光单元,被配置以产生多个光输出;多个光调制器,耦合至激光单元和dac单元,多个光调制器被配置以通过基于多个调制器控制信号调制由激光单元所产生的多个光输出,来产生光输入向量;光矩阵乘法单元,耦合至多个光调制器和dac单元,光矩
阵乘法单元被配置以基于多个权重控制信号将光输入向量转换成光输出向量;以及光电检测单元,耦合至光矩阵乘法单元,并且被配置以产生对应光输出向量的多个输出电压;模拟数字转换(adc)单元,耦合至光电检测单元,并且被配置以将多个输出电压转换成多个数字光输出;控制器,包括集成电路,被配置以执行以下操作:从计算机接收包括输入数据集和第一多个神经网络权重的人工神经网络计算请求,其中输入数据集包括第一数字输入向量;在存储单元中储存输入数据集和第一多个神经网络权重;以及通过dac单元,基于第一数字输入向量产生第一多个调制器控制信号,并且基于第一多个神经网络权重产生第一多个权重控制信号。
58.系统的实施例可包括以下特征的一个或多个。例如,操作可进一步包括:从adc单元得到对应于光矩阵乘法单元的光输出向量的第一多个数字光输出,第一多个数字光输出形成第一数字输出向量;对第一数字输出向量执行非线性变换,以产生第一变换数字输出向量;以及在存储单元中储存第一变换数字输出向量。
59.系统可具有第一循环时段,其被定义为在存储单元中储存输入数据集和第一多个神经网络权重的步骤与在存储单元中储存第一变换数字输出向量的步骤之间所经过的时间。第一循环时段可小于或等于1ns。
60.在一些实施例中,操作可进一步包括:输出基于第一变换数字输出向量所产生的人工神经网络输出。
61.在一些实施例中,操作可进一步包括:通过dac单元基于第一变换数字输出向量产生第二多个调制器控制信号。
62.在一些实施例中,人工神经网络计算请求可进一步包括第二多个神经网络权重,并且操作可进一步包括:基于第一多个数字光输出的获得,通过dac单元基于第二多个神经网络权重产生第二多个权重控制信号。第一多个神经网络权重和第二多个神经网络权重可对应人工神经网络的不同层。
63.在一些实施例中,输入数据集可进一步包括第二数字输入向量,并且操作可进一步包括:通过dac单元,基于第二数字输入向量产生第二多个调制器控制信号;从adc单元得到对应于光矩阵乘法单元的光输出向量的第二多个数字光输出,第二多个数字光输出形成第二数字输出向量;对第二数字输出向量执行非线性变换以产生第二变换数字输出向量;在存储单元中储存第二变换数字输出向量;以及输出基于第一变换数字输出向量和第二变换数字输出向量所产生的人工神经网络输出。光矩阵乘法单元的光输出向量由基于第二多个调制器控制信号所产生的第二光输入向量产生,第二光输入向量由光矩阵乘法单元基于首先提到的多个权重控制信号来变换。
64.在一些实施例中,系统可进一步包括:模拟非线性单元,被布置在光电检测单元与adc单元之间,模拟非线性单元被配置以从光电检测单元接收多个输出电压、应用非线性传递函数、以及输出多个转换输出电压至adc单元,并且操作进一步包括:从adc单元得到对应多个转换输出电压的第一多个转换数字输出电压,第一多个转换数字输出电压形成第一变换数字输出向量;以及在存储单元中储存第一变换数字输出向量。
65.在一些实施例中,控制器的集成电路可被配置以大于或等于8ghz的速率产生第一多个调制器控制信号。
66.在一些实施例中,系统可进一步包括:模拟存储单元,被布置在dac单元与多个光
调制器之间,模拟存储单元被配置以储存模拟电压,并且输出储存的模拟电压;以及模拟非线性单元,被布置在光电检测单元与adc单元之间,模拟非线性单元被配置以从光电检测单元接收多个输出电压、应用非线性传递函数、以及输出多个转换输出电压。模拟存储单元可包括多个电容。
67.在一些实施例中,模拟存储单元可被配置以接收和储存模拟非线性单元的多个转换输出电压,并且将储存的多个转换输出电压输出至多个光调制器,并且操作可进一步包括:基于产生第一多个调制器控制信号和第一多个权重控制信号,在模拟存储单元中储存模拟非线性单元的多个转换输出电压;通过模拟存储单元输出储存的转换输出电压;从adc单元得到第二多个转换数字输出电压,第二多个转换数字输出电压形成第二变换数字输出向量;以及在存储单元中储存第二变换数字输出向量。
68.在一些实施例中,人工神经网络计算请求的输入数据集可包括多个数字输入向量。激光单元可被配置以产生多个波长。多个光调制器可包括:光调制器组(bank),被配置以产生多个光输入向量,每一个光调制器组对应多个波长之一,并且产生具有相应波长的相应光输入向量;以及光多路复用器,被配置以将多个光输入向量组合成包括多个波长的组合光输入向量。光电检测单元可进一步被配置以多路分解多个波长,并且产生多个多路分解输出电压。操作可包括:从adc单元得到多个数字多路分解光输出,多个数字多路分解光输出形成多个第一数字输出向量,其中多个第一数字输出向量中的每一个对应多个波长之一;对多个第一数字输出向量中的每一个执行非线性变换,以产生多个变换第一数字输出向量;以及在存储单元中储存多个变换第一数字输出向量。多个数字输入向量中的每一个可对应多个光输入向量之一。
69.在一些实施例中,人工神经网络计算请求可包括多个数字输入向量。激光单元可被配置以产生多个波长。多个光调制器可包括:光调制器组,被配置以产生多个光输入向量,每一个光调制器组对应多个波长之一,并且产生具有相应波长的相应光输入向量;以及光多路复用器,被配置以将多个光输入向量组合成包括多个波长的组合光输入向量。操作可包括:从adc单元得到对应光输出向量的第一多个数字光输出,光输出向量包括多个波长,第一多个数字光输出形成第一数字输出向量;对第一数字输出向量执行非线性变换,以产生第一变换数字输出向量;以及在存储单元中储存第一变换数字输出向量。
70.在一些实施例中,dac单元可包括:1比特dac子单元,被配置以产生多个1比特调制器控制信号。adc单元的分辨率可为1比特。第一数字输入向量的分辨率可为n比特。操作可包括:将第一数字输入向量分解为n个1比特输入向量,n个1比特输入向量中的每一个对应第一数字输入向量的n比特中的一个;通过1比特dac子单元产生对应n个1比特输入向量的n个1比特调制器控制信号的序列;从adc单元得到对应n个1比特调制器控制信号的序列的n个数字1比特光输出的序列;从n个数字1比特光输出的序列建构n比特数字输出向量;对建构的n比特数字输出向量执行非线性变换,以产生变换n比特数字输出向量;以及在存储单元中储存变换n比特数字输出向量。
71.在一些实施例中,存储单元可包括:数字输入向量存储器,被配置以储存第一数字输入向量,并且包括至少一个sram;以及神经网络权重存储器,被配置以储存多个神经网络权重,并且包括至少一个dram。
72.在一些实施例中,dac单元可包括:第一dac子单元,被配置以产生多个调制器控制
信号;以及第二dac子单元,被配置以产生多个权重控制信号,其中第一dac子单元和第二dac子单元是不同的。
73.在一些实施例中,激光单元可包括:激光源,被配置以产生光;以及光功率分离器,被配置以将由激光源所产生的光分成多个光输出,其中多个光输出中的每一个具有基本相同的功率。
74.在一些实施例中,所述多个光调制器可包括mzi调制器、环形共振调制器(ring resonator modulator)或电吸收(electro

absorption)调制器中的一个。
75.在一些实施例中,光电检测单元可包括:多个光电检测器;以及多个放大器,被配置以将由光电检测器所产生的光电流转换成多个输出电压。
76.在一些实施例中,集成电路可以是专用集成电路。
77.在一些实施例中,光矩阵乘法单元可包括:输入波导阵列,用于接收光输入向量;光干涉单元,与输入波导阵列光学通信,用于执行将光输入向量转换成第二光信号阵列的线性变换;以及输出波导阵列,与光干涉单元光学通信,用于引导第二光信号阵列,其中在输入波导阵列中的至少一个输入波导通过光干涉单元与在输出波导阵列中的每一个输出波导光学通信。
78.在一些实施例中,光干涉单元可包括:多个互连马赫曾德尔干涉仪(mach

zehnder interferometer;mzi),多个互连mzi中的每一个mzi包括:第一移相器,被配置以改变mzi的分光比;以及第二移相器,被配置以移动mzi的一个输出的相位,其中第一移相器和第二移相器耦合至多个权重控制信号。
79.在另一方面,一种系统包括:存储单元,被配置以储存数据集和多个神经网络权重;驱动器单元,被配置以产生多个调制器控制信号和产生多个权重控制信号;光处理器,包括:激光单元,被配置以产生多个光输出;多个光调制器,耦合至激光单元和驱动器单元,多个光调制器被配置以通过基于多个调制器控制信号调制由激光单元所产生的多个光输出,来产生光输入向量;光矩阵乘法单元,耦合至多个光调制器和驱动器单元,光矩阵乘法单元被配置以基于多个权重控制信号将光输入向量转换成光输出向量;以及光电检测单元,耦合至光矩阵乘法单元,并且被配置以产生对应光输出向量的多个输出电压;比较器单元,耦合至光电检测单元,并且被配置以将多个输出电压转换成多个数字1比特光输出;以及控制器,包括集成电路,被配置以执行以下操作:从计算机接收包括输入数据集和第一多个神经网络权重的人工神经网络计算请求,其中输入数据集包括具有n比特分辨率的第一数字输入向量;在存储单元中储存输入数据集和第一多个神经网络权重;将第一数字输入向量分解为n个1比特输入向量,n个1比特输入向量中的每一个对应第一数字输入向量的n比特中的一个;通过驱动器单元产生对应n个1比特输入向量的n个1比特调制器控制信号的序列;从比较器单元得到对应n个1比特调制器控制信号的序列的n个数字1比特光输出的序列;从n个数字1比特光输出的序列建构n比特数字输出向量;对建构的n比特数字输出向量执行非线性变换,以产生变换n比特数字输出向量;以及在存储单元中储存变换n比特数字输出向量。
80.在另一方面,一种方法用于在系统中执行人工神经网络计算,系统具有光矩阵乘法单元,光矩阵乘法单元被配置以基于多个权重控制信号将光输入向量转换成光输出向量,该方法包括:从计算机接收包括输入数据集和第一多个神经网络权重的人工神经网络
计算请求,其中输入数据集包括第一数字输入向量;在存储单元中储存输入数据集和第一多个神经网络权重;通过数字模拟转换(dac)单元,基于第一数字输入向量产生第一多个调制器控制信号,并且基于第一多个神经网络权重产生第一多个权重控制信号;从模拟数字转换(adc)单元得到对应于光矩阵乘法单元的光输出向量的第一多个数字光输出,第一多个数字光输出形成第一数字输出向量;由控制器对第一数字输出向量执行非线性变换,以产生第一变换数字输出向量;在存储单元中储存第一变换数字输出向量;以及由控制器输出基于第一变换数字输出向量所产生的人工神经网络输出。
81.在另一方面,一种方法包括:以电子格式提供输入信息;将至少一部分电子输入信息转换成光输入向量;基于光矩阵乘法将光输入向量光学地转换成光输出向量;将光输出向量转换成电子格式;以及将非线性变换电子地应用于电子转换后的光输出向量,以提供电子格式的输出信息。
82.方法的实施例可包括以下特征的一个或多个。例如,方法可进一步包括:对于对应以电子格式所提供的输出信息的新电子输入信息,重复电光转换(electronic

to

optical converting)、光变换(optical transforming)、光电转换(optical

to

electronic converting)以及电应用的非线性变换。
83.在一些实施例中,用于初始光变换的光矩阵乘法和重复光变换的光矩阵乘法可以是相同的,并且可对应人工神经网络的相同层。
84.在一些实施例中,用于初始光变换的光矩阵乘法和重复光变换的光矩阵乘法可以是不同的,并且可对应人工神经网络的不同层。
85.在一些实施例中,方法可进一步包括:对于电子输入信息的不同部分,重复电光转换、光变换、光电转换以及电应用的非线性变换,其中用于初始光变换的光矩阵乘法和重复光变换的光矩阵乘法是相同的,并且对应人工神经网络的第一层。
86.在一些实施例中,方法可进一步包括:基于由人工神经网络的第一层所产生的用于电子输入信息的多个部分的电子输出信息,以电子格式提供中间信息;以及对于电子中间信息的每一个不同部分,重复电光转换、光变换、光电转换以及电应用的非线性变换,其中用于初始光变换的光矩阵乘法和与电子中间信息的不同部分相关的重复光变换的光矩阵乘法是相同的,并且对应人工神经网络的第二层。
87.在另一方面,一种系统包括:光处理器,包括无源衍射光学组件(passive diffractive optical element),其中无源衍射光学组件被配置以将光输入向量或矩阵变换成光输出向量或矩阵,其表示应用于光输入向量或矩阵和由衍射光学组件的布置所定义的预定向量的矩阵处理的结果。
88.系统的实施例可包括以下特征的一个或多个。例如,矩阵处理可包括光输入向量或矩阵与由衍射光学组件的布置所定义的预定向量之间的矩阵乘法。
89.在一些实施例中,光处理器可包括光矩阵处理单元,其包括:输入波导阵列,用于接收光输入向量;包括无源衍射光学组件的光干涉单元,其中光干涉单元与输入波导阵列光学通信,并且被配置以执行将光输入向量转换成第二光信号阵列的线性变换;以及输出波导阵列,与光干涉单元光学通信,用于引导第二光信号阵列,其中输入波导阵列的至少一个输入波导通过光干涉单元与输出波导阵列中的每一个输出波导光学通信。
90.在一些实施例中,光干涉单元可包括具有孔洞或条带(stripe)中至少一个的基
板,孔洞的尺寸在100nm至10μm的范围内,并且条带的宽度在100nm至10μm的范围内。
91.在一些实施例中,光干涉单元可包括具有以二维配置来布置的无源衍射光学组件的基板,并且基板包括平面基板或弯曲基板中的至少一个。
92.在一些实施例中,基板可包括平面基板,其平行于从输入波导阵列到输出波导阵列的光传播方向。
93.在一些实施例中,光处理器可包括光矩阵处理单元,其包括:输入波导矩阵,用于接收光输入矩阵;包括无源衍射光学组件的光干涉单元,其中光干涉单元与输入波导矩阵光学通信,并且被配置以执行将光输入矩阵变换成第二光信号矩阵的线性变换;以及输出波导矩阵,与光干涉单元光学通信,用于引导第二光信号矩阵,其中输入波导矩阵的至少一个输入波导通过光干涉单元与输出波导矩阵中的每一个输出波导光学通信。
94.在一些实施例中,光干涉单元可包括具有孔洞或条带中至少一个的基板,孔洞的尺寸在100nm至10μm的范围内,并且条带的宽度在100nm至10μm的范围内。
95.在一些实施例中,光干涉单元可包括具有以三维配置来布置的无源衍射光学组件的基板。
96.在一些实施例中,基板可具有立方体状、柱状、棱柱状或不规则体积中的至少一个的形状。
97.在一些实施例中,光处理器可包括光干涉单元,其包括具有无源衍射光学组件的全息图(hologram),光处理器被配置以接收表示光输入矩阵的调制光,并且在光通过全息图时连续转换光,直到光作为光输出矩阵从全息图射出。
98.在一些实施例中,光干涉单元可包括具有无源衍射光学组件的基板,并且基板包括硅、氧化硅、氮化硅、石英、铌酸锂、相变化材料或聚合物中的至少一个。
99.在一些实施例中,光干涉单元可包括具有无源衍射光学组件的基板,并且基板包括玻璃基板或丙烯酸基板中的至少一个。
100.在一些实施例中,无源衍射光学组件可由掺杂物来部分地形成。
101.在一些实施例中,矩阵处理可表示神经网络对输入数据的处理,输入数据由光输入向量表示。
102.在一些实施例中,光处理器可包括:激光单元,被配置以产生多个光输出;多个光调制器,耦合至激光单元,并且被配置以通过基于多个调制器控制信号调制由激光单元所产生的多个光输出,来产生光输入向量;光矩阵处理单元,耦合至多个光调制器,光矩阵处理单元包括无源衍射光学组件,其被配置以基于由无源衍射光学组件所定义的多个权重,将光输入向量转换成光输出向量;以及光电检测单元,耦合至光矩阵处理单元,并且被配置以产生对应光输出向量的多个输出电信号。
103.在一些实施例中,无源衍射光学组件可以以三维配置来布置,多个光调制器包括二维光调制器阵列,并且光电检测单元包括二维光电检测器阵列。
104.在一些实施例中,光矩阵处理单元可包括外壳模块(housing module)以支持和保护输入波导阵列、光干涉单元以及输出波导阵列,光处理器包括接收模块,接收模块被配置以接收光矩阵处理单元,接收模块包括第一接口(interface),使光矩阵处理单元能够从多个光调制器接收光输入向量,以及第二接口,使光矩阵处理单元能够将光输出向量传输至光电检测单元。
105.在一些实施例中,多个输出电信号可包括多个电压信号或多个电流信号中的至少一个。
106.在一些实施例中,系统可包括:存储单元;数字模拟转换(dac)单元,被配置以产生多个调制器控制信号;模拟数字转换(adc)单元,耦合至光电检测单元,并且被配置以将多个输出电信号转换成多个数字输出;以及控制器,包括集成电路,被配置以执行以下操作:从计算机接收包括输入数据集的人工神经网络计算请求,其中输入数据集包括第一数字输入向量;在存储单元中储存输入数据集;以及通过dac单元,基于第一数字输入向量产生第一多个调制器控制信号。
107.在另一方面,一种方法包括:3d打印包括无源衍射光学组件的光矩阵处理单元,其中无源衍射光学组件被配置以将光输入向量或矩阵变换成光输出向量或矩阵,其表示应用于光输入向量或矩阵和由衍射光学组件的布置所定义的预定向量的矩阵处理的结果。
108.在另一方面,一种方法包括:使用一个或多个激光束产生包括无源衍射光学组件的全息图,其中无源衍射光学组件被配置以将光输入向量或矩阵变换成光输出向量或矩阵,其表示应用于光输入向量或矩阵和由衍射光学组件的布置所定义的预定向量的矩阵处理的结果。
109.在另一方面,一种系统包括:光处理器,包括以一维方式布置的无源衍射光学组件,其中无源衍射光学组件被配置以将光输入转换成光输出,其表示应用于光输入和由衍射光学组件的布置所定义的预定向量的矩阵处理的结果。
110.系统的实施例可包括以下特征的一个或多个。例如,矩阵处理可包括光输入与由衍射光学组件的布置所定义的预定向量之间的矩阵乘法。
111.在一些实施例中,光处理器可包括光矩阵处理单元,其包括:输入波导,用于接收光输入;包括无源衍射光学组件的光干涉单元,其中光干涉单元与输入波导光学通信,并且被配置以执行对光输入的线性变换;以及输出波导,与光干涉单元光学通信,用于引导光输出。
112.在一些实施例中,光干涉单元可包括具有孔洞或光栅(grating)中至少一个的基板,孔洞或光栅组件可具有在100nm至10μm的范围内的尺寸。
113.在另一方面,一种系统包括:存储单元;数字模拟转换(dac)单元,被配置以产生多个调制器控制信号;以及光处理器,包括:激光单元,被配置以产生多个光输出;多个光调制器,耦合至激光单元和dac单元,多个光调制器被配置以通过基于多个调制器控制信号调制由激光单元所产生的多个光输出,来产生光输入向量;光矩阵处理单元,耦合至多个光调制器,光矩阵处理单元包括无源衍射光学组件,其被配置以基于由无源衍射光学组件所定义的多个权重,将光输入向量转换成光输出向量;以及光电检测单元,耦合至光矩阵处理单元,并且被配置以产生对应光输出向量的多个输出电信号。系统进一步包括:模拟数字转换(adc)单元,耦合至光电检测单元,并且被配置以将多个输出电信号转换成多个数字光输出;以及控制器,包括集成电路,被配置以执行以下操作:从计算机接收包括输入数据集的人工神经网络计算请求,其中输入数据集包括第一数字输入向量;在存储单元中储存输入数据集;以及通过dac单元,基于第一数字输入向量产生第一多个调制器控制信号。
114.系统的实施例可包括以下特征的一个或多个。例如,矩阵处理单元可包括无源衍射光学组件,其被配置以将光输入向量转换成光输出向量,光输出向量表示光输入向量与
由无源衍射光学组件所定义的预定向量之间的矩阵乘法的乘积。
115.在一些实施例中,操作进一步包括:从adc单元得到对应光矩阵处理单元的光输出向量的第一多个数字光输出,第一多个数字光输出形成第一数字输出向量;对第一数字输出向量执行非线性变换,以产生第一变换数字输出向量;以及在存储单元中储存第一变换数字输出向量。
116.在一些实施例中,系统可具有第一循环时段,其被定义为在存储单元中储存输入数据集的步骤与在存储单元中储存第一变换数字输出向量的步骤之间所经过的时间,并且其中第一循环时段可小于或等于1ns。
117.在一些实施例中,操作可进一步包括:输出基于第一变换数字输出向量所产生的人工神经网络输出。
118.在一些实施例中,操作可进一步包括:通过dac单元基于第一变换数字输出向量产生第二多个调制器控制信号。
119.在一些实施例中,输入数据集可进一步包括第二数字输入向量,并且其中操作可进一步包括:通过dac单元,基于第二数字输入向量产生第二多个调制器控制信号;从adc单元得到对应光矩阵处理单元的光输出向量的第二多个数字光输出,第二多个数字光输出形成第二数字输出向量;对第二数字输出向量执行非线性变换以产生第二变换数字输出向量;在存储单元中储存第二变换数字输出向量;以及输出基于第一变换数字输出向量和第二变换数字输出向量所产生的人工神经网络输出,其中光矩阵处理单元的光输出向量由基于第二多个调制器控制信号所产生的第二光输入向量产生,第二光输入向量由光矩阵处理单元基于由无源衍射光学组件所定义的多个权重来转换。
120.在一些实施例中,系统可进一步包括:模拟非线性单元,被布置在光电检测单元与adc单元之间,模拟非线性单元被配置以从光电检测单元接收多个输出电信号、应用非线性传递函数、以及输出多个转换输出电信号至adc单元,其中操作可进一步包括:从adc单元得到对应多个转换输出电信号的第一多个转换数字输出电信号,第一多个转换数字输出电信号形成第一变换数字输出向量;以及在存储单元中储存第一变换数字输出向量。
121.在一些实施例中,控制器的集成电路可被配置以大于或等于8ghz的速率产生第一多个调制器控制信号。
122.在一些实施例中,系统可进一步包括:模拟存储单元,被布置在dac单元与多个光调制器之间,模拟存储单元被配置以储存模拟电压,并且输出储存的模拟电压;以及模拟非线性单元,被布置在光电检测单元与adc单元之间,模拟非线性单元被配置以从光电检测单元接收多个输出电信号、应用非线性传递函数、以及输出多个转换输出电信号。
123.在一些实施例中,模拟存储单元可包括多个电容器。
124.在一些实施例中,模拟存储单元可被配置以接收和储存模拟非线性单元的多个转换输出电信号,并且将储存的多个转换输出电信号输出至多个光调制器,并且其中操作可进一步包括:基于产生第一多个调制器控制信号,在模拟存储单元中储存模拟非线性单元的多个转换输出电信号;通过模拟存储单元输出储存的转换输出电信号;从adc单元得到第二多个转换数字输出电信号,第二多个转换数字输出电信号形成第二变换数字输出向量;以及在存储单元中储存第二变换数字输出向量。
125.在一些实施例中,人工神经网络计算请求的输入数据集可包括多个数字输入向
量,其中激光单元可被配置以产生多个波长,并且其中多个光调制器可包括:光调制器组,被配置以产生多个光输入向量,每一个光调制器组对应多个波长之一,并且产生具有相应波长的相应光输入向量;以及光多路复用器,被配置以将多个光输入向量组合成包括多个波长的组合光输入向量。光电检测单元可进一步被配置以多路分解多个波长,并且产生多个多路分解输出电信号,并且操作可包括:从adc单元得到多个数字多路分解光输出,多个数字多路分解光输出形成多个第一数字输出向量,其中多个第一数字输出向量中的每一个对应多个波长之一;对多个第一数字输出向量中的每一个执行非线性变换,以产生多个变换第一数字输出向量;以及在存储单元中储存多个变换第一数字输出向量,其中多个数字输入向量中的每一个对应多个光输入向量之一。
126.在一些实施例中,人工神经网络计算请求可包括多个数字输入向量,其中激光单元被配置以产生多个波长,并且其中多个光调制器可包括:光调制器组,被配置以产生多个光输入向量,每一个光调制器组对应多个波长之一,并且产生具有相应波长的相应光输入向量;以及光多路复用器,被配置以将多个光输入向量组合成包括多个波长的组合光输入向量。操作可包括:从adc单元得到对应光输出向量的第一多个数字光输出,光输出向量包括多个波长,第一多个数字光输出形成第一数字输出向量;对第一数字输出向量执行非线性变换,以产生第一变换数字输出向量;以及在存储单元中储存第一变换数字输出向量。
127.在一些实施例中,dac单元可包括:1比特dac单元,被配置以产生多个1比特调制器控制信号,其中adc单元的分辨率可为1比特,并且其中第一数字输入向量的分辨率可为n比特。操作可包括:将第一数字输入向量分解为n个1比特输入向量,n个1比特输入向量中的每一个对应第一数字输入向量的n比特中的一个;通过1比特dac单元产生对应n个1比特输入向量的n个1比特调制器控制信号的序列;从adc单元得到对应n个1比特调制器控制信号的序列的n个数字1比特光输出的序列;从n个数字1比特光输出的序列建构n比特数字输出向量;对建构的n比特数字输出向量执行非线性变换,以产生变换n比特数字输出向量;以及在存储单元中储存变换n比特数字输出向量。
128.在一些实施例中,存储单元可包括:数字输入向量存储器,被配置以储存第一数字输入向量,并且包括至少一个sram。
129.在一些实施例中,激光单元可包括:激光源,被配置以产生光;以及光功率分离器,被配置以将由激光源所产生的光分成多个光输出,其中多个光输出中的每一个具有基本相同的功率。
130.在一些实施例中,多个光调制器包括mzi调制器、环形共振调制器或电吸收调制器中的一个。
131.在一些实施例中,光电检测单元可包括:多个光电检测器;以及多个放大器,被配置以将由光电检测器所产生的光电流转换成多个输出电信号。
132.在一些实施例中,集成电路可包括专用集成电路。
133.在一些实施例中,光矩阵处理单元可包括:输入波导阵列,用于接收光输入向量;光干涉单元,与输入波导阵列光学通信,用于执行将光输入向量转换成第二光信号阵列的线性变换,其中光干涉单元包括无源衍射光学组件;以及输出波导阵列,与光干涉单元光学通信,用于引导第二光信号阵列,其中在输入波导阵列中的至少一个输入波导通过光干涉单元与在输出波导阵列中的每一个输出波导光学通信。
134.在另一方面,一种系统包括:存储单元;驱动器单元,被配置以产生多个调制器控制信号;光处理器,包括:激光单元,被配置以产生多个光输出;多个光调制器,耦合至激光单元和驱动器单元,多个光调制器被配置以通过基于多个调制器控制信号调制由激光单元所产生的多个光输出,来产生光输入向量;光矩阵处理单元,耦合至多个光调制器和驱动器单元,光矩阵处理单元包括无源衍射光学组件,被配置以基于由无源衍射光学组件所定义的多个权重控制信号将光输入向量转换成光输出向量;以及光电检测单元,耦合至光矩阵处理单元,并且被配置以产生对应光输出向量的多个输出电信号。系统还包括比较器单元,耦合至光电检测单元,并且被配置以将多个输出电信号转换成多个数字1比特光输出;以及控制器,包括集成电路,被配置以执行以下操作:从计算机接收包括输入数据集的人工神经网络计算请求,其中输入数据集包括具有n比特分辨率的第一数字输入向量;在存储单元中储存输入数据集;将第一数字输入向量分解为n个1比特输入向量,n个1比特输入向量中的每一个对应第一数字输入向量的n比特中的一个;通过驱动器单元产生对应n个1比特输入向量的n个1比特调制器控制信号的序列;从比较器单元得到对应n个1比特调制器控制信号的序列的n个数字1比特光输出的序列;从n个数字1比特光输出的序列建构n比特数字输出向量;对建构的n比特数字输出向量执行非线性变换,以产生变换n比特数字输出向量;以及在存储单元中储存变换n比特数字输出向量。
135.系统的实施例可包括以下特征的一个或多个。例如,光矩阵处理单元可包括光矩阵乘法单元,无源衍射其被配置以将光输入向量转换成光输出向量,光输出向量表示由光输入向量所表示的输入向量与由无源衍射光学组件所定义的预定向量之间的矩阵乘法的乘积。
136.在另一方面,一种方法用于在具有光矩阵处理单元的系统中执行人工神经网络计算,方法包括:从计算机接收包括输入数据集的人工神经网络计算请求,输入数据集包括第一数字输入向量;在存储单元中储存输入数据集;通过数字模拟转换(dac)单元,基于第一数字输入向量产生第一多个调制器控制信号;通过使用包括无源衍射光学组件的布置的光矩阵处理单元,将光输入向量转换成光输出向量,其中光输出向量表示应用于光输入向量和由衍射光学组件的布置所定义的预定向量的矩阵处理的结果;从模拟数字转换(adc)单元得到对应光矩阵处理单元的光输出向量的第一多个数字光输出,第一多个数字光输出形成第一数字输出向量;通过控制器对第一数字输出向量执行非线性变换,以产生第一变换数字输出向量;在存储单元中储存第一变换数字输出向量;以及通过控制器输出基于第一变换数字输出向量所产生的人工神经网络输出。
137.方法的实施例可包括以下特征的一个或多个。例如,将光输入向量转换成光输出向量可包括将光输入向量转换成表示数字输入向量与由衍射光学组件的布置所定义的预定向量之间的矩阵乘法的乘积的光输出向量。
138.在另一方面,一种方法包括:以电子格式提供输入信息;将至少一部分电子输入信息转换成光输入向量;通过包括无源衍射光学组件的光处理器,基于光矩阵处理将光输入向量光学地转换成光输出向量;将光输出向量转换成电子格式;以及将非线性变换电子地应用于电子转换后的光输出向量,以提供电子格式的输出信息。
139.方法的实施例可包括以下特征的一个或多个。例如,将光输入向量光学地转换成光输出向量可包括基于由光输入向量所表示的数字输入向量与由无源衍射光学组件所定
义的预定向量之间的光矩阵乘法,将光输入向量光学地转换成光输出向量。
140.在一些实施例中,方法可进一步包括:对于对应以电子格式所提供的输出信息的新电子输入信息,重复电光转换、光变换、光电转换以及电应用的非线性变换。
141.在一些实施例中,用于初始光变换的光矩阵处理和重复光变换的光矩阵处理可为相同的,并且可对应人工神经网络的相同层。
142.在一些实施例中,方法可进一步包括:对于电子输入信息的不同部分,重复电光转换、光变换、光电转换以及电应用的非线性变换,其中用于初始光变换的光矩阵处理和重复光变换的光矩阵处理可为相同的,并且对应人工神经网络的一个层。
143.在另一方面,一种系统包括:光矩阵处理单元,被配置以处理n长度的输入向量,其中光矩阵处理单元包括n+2层的定向耦合器(directional coupler)和n层的移相器,并且n为正整数。
144.系统的实施例可包括以下特征的一个或多个。例如,光矩阵处理单元可包括不多于n+2层的定向耦合器。
145.在一些实施例中,光矩阵处理单元可包括光矩阵乘法单元。
146.在一些实施例中,光矩阵处理单元可包括基板和布置在基板上的互连干涉仪,其中每一个干涉仪包括布置在基板上的光波导,并且定向耦合器和移相器是互连干涉仪的一部分。
147.在一些实施例中,光矩阵处理单元可包括一层衰减器(attenuator),其在最后一层定向耦合器之后。
148.在一些实施例中,一层衰减器可包括n个衰减器。
149.在一些实施例中,系统可包括一个或多个零差检测器(homodyne detector),用于检测来自衰减器的输出。
150.在一些实施例中,n=3,并且光矩阵处理单元可包括:输入端(terminal),被配置以接收输入向量;第一层定向耦合器,耦合至输入端;第一层移相器,耦合至第一层定向耦合器;第二层定向耦合器,耦合至第一层移相器;第二层移相器,耦合至第二层定向耦合器;第三层定向耦合器,耦合至第二层移相器;第三层移相器,耦合至第三层定向耦合器;第四层定向耦合器,耦合至第三层移相器;以及第五层定向耦合器,耦合至第四层定向耦合器。
151.在一些实施例中,n=4,并且光矩阵处理单元可包括:输入端,被配置以接收输入向量;第一层、第二层、第三层以及第四层定向耦合器,每层定向耦合器后续是一层移相器,其中第一层定向耦合器耦合至输入端;倒数第二层(second

to

last layer)定向耦合器,耦合至第四层移相器;以及最终层定向耦合器,耦合至倒数第二层定向耦合器。
152.在一些实施例中,n=8,并且光矩阵处理单元可包括:输入端,被配置以接收输入向量;八层定向耦合器,每一层定向耦合器后续是一层移相器,其中第一层定向耦合器耦合至输入端;倒数第二层定向耦合器,耦合至第八层移相器;以及最终层定向耦合器,耦合至倒数第二层定向耦合器。
153.在一些实施例中,光矩阵乘法单元可包括:输入端,被配置以接收输入向量;n层定向耦合器,每一层定向耦合器后续是一层移相器,其中第一层定向耦合器耦合至输入端;倒数第二层定向耦合器,耦合至第n层定向耦合器;以及最终层定向耦合器,耦合至倒数第二层定向耦合器。
154.在一些实施例中,n是偶数。
155.在一些实施例中,每一个第i层定向耦合器包括n/2个定向耦合器,其中i是奇数,并且每一个第j层定向耦合器包括n/2

1个定向耦合器,其中j是偶数。
156.在一些实施例中,对于i为奇数的每一个第i层定向耦合器,第k个定向耦合器可耦合至前一层的第(2k

1)个和第2k个输出,k是从1到n/2的整数。
157.在一些实施例中,对于其中j为偶数的每一个第j层定向耦合器,第m个定向耦合器可耦合至前一层的第(2m)个和第(2m+1)个输出,m是从1到n/2

1的整数。
158.在一些实施例中,每一个第i层移相器可包括n个移相器,其中i是奇数,并且每一个第j层移相器可包括n

2个移相器,其中j是偶数。
159.在一些实施例中,n可为奇数。
160.在一些实施例中,每一层定向耦合器可包括(n

1)/2个定向耦合器。
161.在一些实施例中,每一层移相器可包括n

1个移相器。
162.在另一方面,一种系统包括:产生器(generator),被配置以产生第一数据集,其中产生器包括光矩阵处理单元;以及鉴别器(discriminator),被配置以接收包括来自第一数据集的数据和来自第三数据集的数据的第二数据集,第一数据集中的数据具有与第三数据集中的数据类似的特性(characteristics),并且将第二数据集中的数据分类为来自第一数据集的数据或来自第三数据集的数据。
163.方法的实施例可包括以下特征的一个或多个。例如,光矩阵处理单元可包括以下至少一个:(i)上述光矩阵乘法单元、(ii)上述无源衍射光学组件、或(iii)上述光矩阵处理单元。
164.在一些实施例中,第三数据集可包括真实数据,产生器被配置以产生类似于真实数据的合成数据(synthesized data),并且鉴别器被配置以将数据分类为真实数据或合成数据。
165.在一些实施例中,产生器可被配置以产生数据集,用于训练自动驾驶交通工具(vehicle)、医疗诊断系统、欺诈检测系统、天气预报系统、财务预测系统、面部识别系统、语音识别系统或产品缺陷检测系统中的至少一个。
166.在一些实施例中,产生器可被配置以产生图像,其类似于真实对象或真实场景中的至少一个的图像,并且鉴别器被配置以将接收的图像分类为(i)真实对象或真实场景的图像,或(ii)由产生器产生的合成图像。
167.在一些实施例中,真实对象可包括人物、动物、细胞、组织或产品中的至少一个,并且真实场景包括交通工具遇到的场景。
168.在一些实施例中,鉴别器可被配置以将接收的图像分类成是否为(i)真实人物、真实动物、真实细胞、真实组织、真实产品或交通工具遇到的真实场景的图像,或(ii)由产生器产生的合成图像。
169.在一些实施例中,交通工具可包括摩托车、汽车、卡车、火车、直升机、飞机、潜艇、船舶或无人机中的至少一种。
170.在一些实施例中,产生器可被配置以产生与人类疾病、动物疾病或植物疾病中的至少一个相关的组织或细胞的图像。
171.在一些实施例中,产生器可被配置以产生与人类疾病相关的组织或细胞的图像,
并且疾病包括癌症、帕金森病、镰状细胞贫血症、心脏病、心血管疾病、糖尿病、胸部疾病或皮肤病中的至少一个。
172.在一些实施例中,产生器可被配置以产生与癌症相关的组织或细胞的图像,并且癌症可包括皮肤癌、乳癌、肺癌、肝癌、前列腺癌或脑癌中的至少一个。
173.在一些实施例中,系统可进一步包括随机噪声产生器,被配置以产生输入到产生器的随机噪声,并且产生器被配置以基于随机噪声产生第一数据集。
174.在另一方面,一种系统包括:随机噪声产生器,被配置以产生随机噪声;以及产生器,被配置以基于随机噪声产生数据,其中产生器包括光矩阵处理单元。
175.系统的实施例可包括以下特征的一个或多个。例如,光矩阵处理单元可包括(i)上述光矩阵乘法单元、(ii)上述无源衍射光学组件、或(iii)上述光矩阵处理单元中的至少一个。
176.在另一方面,一种系统包括:光电路,被配置以对两个输入信号执行逻辑函数(logic function),光电路包括:第一定向耦合器,具有两个输入端和两个输出端,两个输入端被配置以接收两个输入信号;第一对(pair)移相器,被配置以修改在第一定向耦合器的两个输出端的信号的相位;第二定向耦合器,具有两个输入端和两个输出端,两个输入端被配置以接收来自第一对移相器的信号;以及第二对移相器,被配置以修改在第二定向耦合器的两个输出端的信号的相位。
177.方法的实施例可包括以下特征的一个或多个。例如,移相器可被配置以致使光电路执行旋转(rotation):
[0178][0179]
在一些实施例中,当输入信号x1和x2被提供到第一定向耦合器的两个输入端时,移相器可被配置以致使光电路执行操作:
[0180][0181]
在一些实施例中,光电路可包括第一光电检测器,其被配置以产生来自第二对移相器的信号的绝对值,以致使光电路执行操作:
[0182][0183]
在一些实施例中,光电路可包括比较器,其被配置以将第一光电检测器的输出信号与阈值比较,以产生二进制值(binary value)来致使光电路产生输出:
[0184]
[0185]
在一些实施例中,光电路可包括反馈机制(feedback mechanism),反馈机制被配置以使光电检测器的输出信号被反馈至第一定向耦合器的输入端,并且通过第一定向耦合器、第一对移相器、第二定向耦合器以及第二对移相器,并且由光电检测器检测以致使光电路执行操作:
[0186][0187]
其产生输出and(x1,x2)和or(x1,x2)。
[0188]
在一些实施例中,光电路可包括:第三定向耦合器,具有两个输入端和两个输出端,两个输入端被配置以接收来自第二对移相器的信号;第三对移相器,被配置以修改在第三定向耦合器的两个输出端的信号的相位;第四定向耦合器,具有两个输入端和两个输出端,两个输入端被配置以接收来自第三对移相器的信号;第四对移相器,被配置以修改在第四定向耦合器的两个输出端的信号的相位;以及第二光电检测器,被配置以产生来自第四对移相器的信号的绝对值,以致使光电路执行操作:
[0189][0190]
其产生输出and(x1,x2)和or(x1,x2)。
[0191]
在一些实施例中,系统可包括双调排序器(bitonic sorter),其被配置以使用光电路执行双调排序器的排序函数(sorting function)。
[0192]
在一些实施例中,系统可包括被配置以使用光电路来执行哈希函数(hashing function)的装置。
[0193]
在一些实施例中,哈希函数可包括安全哈希算法(secure hash algorithm)2(sha

2)。
[0194]
通常来说,用于执行计算的系统使用不同类型的操作来产生计算结果,每一个操作都是针对最适合操作的基本物理特性(例如:在能量消耗和/或速度方面)的信号(例如:电信号或光信号)执行的。例如,三个这种操作为:复制(copying)、求和(summation)以及乘法(multiplication)。可以使用光功率分离(optical power splitting)来执行复制,可以使用基于电流的求和(electrical current

based summation)来执行求和,并且可以使用光幅度调制(optical amplitude modulation)来执行乘法,如下面更详细的描述。可以使用这三种类型的操作来执行的计算的示例是将向量乘以矩阵(例如:如人工神经网络计算所采用的)。可以使用这些操作来执行各种其他计算,这些操作表示可以执行各种计算的一组通用线性操作,包括但不限于:向量

向量点积(vector

vector dot product)、向量

向量逐元素乘法(vector

vector element

wise multiplication)、向量

标量逐元素乘法(vector

scalar element wise multiplication)、或矩阵

矩阵逐元素乘法(matrix

matrix element

wise multiplication)。此处所述的一些示例示出了用于向量

矩阵乘法的技术和配置,但是相应的技术和配置可以用于这些类型的计算中的任何一个。
[0195]
各方面可具有以下优点中的一个或多个。
[0196]
此处所述的使用电信号和光信号的光电计算系统可以促进增加的灵活性和/或效率。在过去,可能存在与将光(或光子)集成装置与电(或电子)集成装置组合在公共(common)平台(例如:公共半导体晶粒(die),或在受控塌陷芯片连接(controlled collapsed chip connection)或“倒装芯片(flip

chip)”布置中组合的多个半导体晶粒)相关的潜在挑战。例如,这种潜在挑战可能包括输入/输出(i/o)封装或温度控制。对于本文所述的那些系统,当与相对大量的光输入端口(port)和相对大量的电输出端口一起使用时(例如:4个或更多个光输入/输出端口,200个或更多个电输入/输出端口),可能增加潜在的挑战。使用适当的系统设计可以减轻这些潜在挑战。例如,系统可使用高密度封装布置,其使用温度控制(例如:热电冷却)来控制不同材料类型(例如:半导体材料(例如硅)、玻璃材料(二氧化硅或“硅石(silica)”)、陶瓷材料等)之间的热膨胀,和/或使用封闭壳体(enclosing housing)作为散热器并且提供一定程度的密封(sealing)。利用这种温度稳定技术,可以限制不同的热膨胀系数(coefficients of thermal expansion;cte)以及所导致的系统端口和封装的高密度光纤阵列的端口之间的不对准。
[0197]
对于复制操作,由于光功率分离是无源的,因此不需要消耗功率来执行操作。另外,电分离器的频率带宽具有与rc时间常数相关的限制。相较之下,分光器的频率带宽是实质上无限的。可以使用不同类型的光功率分离器(optical power splitter),包括波导分光器(waveguide optical splitter)或自由空间分束器(free

space beam splitter),如下面更详细的描述。
[0198]
对于乘法操作,可以将一个值编码为光信号,并且可以将另一个值编码为幅度缩放系数(amplitude scaling coefficient)(例如,乘以在0到1的范围内的值)。在设定了缩放系数之后,光域(optical domain)中的乘法运算对电信号的调节的要求降低(或没有),并因此减少因于电噪声、功率消耗和带宽限制的约束(constraint)。通过适当选择检测方案,可以获得有符号的(signed)结果(例如:乘以

1到+1之间的值),如下面更详细的描述。
[0199]
对于求和操作,可以使用不同的技术来实现其中基于不同贡献的总和来确定导体中的电流的大小的结果。在输入电流信号的情况下,当承载那些输入电流信号的两个或更多个导体在结点(junction)组合时,承载输出电流信号的单一导体表示那些输入电流信号的总和。在输入光信号的情况下,当两个或更多个不同波长的光波照射到检测器上时,由检测器产生的光电流上承载的电流信号表示输入光信号中的功率的总和。两者都产生电信号(例如:电流)作为表示总和的输出,但是一个使用电流作为输入(基于电流输入的求和(current

input

based summation),也称为在“电域(electrical domain)”中执行的“电求和(electrical summation)”),而另一个使用光波作为输入(基于光输入的求和(optical

input

based summation),也称为在“光电域(optoelectronic domain)”中执行的“光电求和(optoelectronic summation)”)。但是,在一些实施例中,使用基于电流输入的求和而不是基于光输入的求和,这使单一光学波长能够在系统中使用,避免可能需要提供的系统的潜在复杂组件并且保持多个波长。
[0200]
由这些模块执行的这些基本操作的组合可以被布置以提供执行线性操作(例如具有任意矩阵元素大小(arbitrary matrix element magnitude)的向量矩阵乘法(vector

matrix multiplication))的装置。使用光信号和用于使用光干涉来组合信号的干涉仪的矩阵乘法的其他实现已被限于提供具有某些限制(例如,酉矩阵(unitary matrix)或对角
矩阵)的向量矩阵乘法。另外,一些其他实施例可能依赖于多个光信号的大规模相位对准,因为它们传播通过相对大量的光学组件(例如:光调制器)。可替换地,本文所述的实施例可通过在传播通过较少光学组件(例如,在传播通过不超过单个光幅度调制器之后)之后将光信号转换成电信号,来放宽这种相位对准约束,这允许使用具有降低相干性的光信号,或甚至使用不依赖于相长/相消(constructive/destructive)干涉的光调制器的非相干光信号。
[0201]
对于光信号和电信号的时域编码,下面将更详细地描述,模拟电子电路可被优化用于在特定功率水平(level)下操作,如果电路以高速操作,这可能是有帮助的。这种时域编码在减少可能与精确控制每一个符号的相对大量可清楚区分的强度水平相关联的任何挑战是有用的。相反,当在单一符号持续时间(single symbol duration)内的多个时隙(time slot)上的时域中应用占空比(duty cycle)的精确控制时,可以使用相对恒定的幅度(对于“开”水平,具有零或接近零的幅度处于“关”水平)。
[0202]
通过将光子和电子集成在公共基板(例如:硅芯片)上,可以大规模方便地制造模块。基板上的布线信号(routing signal)作为光信号而不是电信号并且将光电检测器分组在基板的一部分中,可帮助避免长电子布线及其相关的挑战(例如,寄生电容、电感以及串扰(crosstalk))。
[0203]
对于使用子矩阵乘法的系统的实施例,可以使用不同的装置(例如:不同的核心(core)、不同的处理器、不同计算机、不同服务器)同时计算输出向量的每个元素,有助于缓解某些潜在的限制(例如存储墙(memory wall)),并且帮助整个系统扩展到非常大的矩阵。在一些实施例中,可以使用不同的装置将每一个子矩阵乘以对应的子向量。然后可以通过收集或累积来自不同装置的被加数(summand)来计算总和。光信号形式的中间结果可以在装置之间方便地传输,即使装置分开相对较大的距离。
[0204]
其他方面包括上述特征的其他组合和表示为方法、设备、系统、程序产品以及其他方式的其他特征。
[0205]
可以实施本说明书中描述的主题的特定实施例以实现以下优点中的一个或多个。可以改进ann计算吞吐量(throughput)、延迟(latency)或两者。可以改进ann计算的功率效率。
[0206]
在另一方面,一种装置包括:多个光波导,其中一组多个输入值被编码在由光波导承载的相应光信号上;多个复制模块,并且对于一个或多个光信号的至少两个子集中的每一个,一个或多个复制模块的相应一组被配置以将一个或多个光信号的子集分成两个或更多个光信号的副本(copies);多个乘法模块,并且对于一个或多个光信号的第一子集的至少两个副本中的每一个,相应的乘法模块被配置以使用光幅度调制将第一子集的一个或多个光信号乘以一个或多个矩阵元素值,其中乘法模块中的至少一个包括光幅度调制器,光幅度调制器包括一个输入端口和两个输出端口,并且从两个输出端口提供一对相关光信号,使得相关光信号的幅度之间的差值对应于将输入值乘以有符号矩阵元素值的结果;以及一个或多个求和模块,并且对于两个或更多个乘法模块的结果,相应的一个求和模块被配置以产生电信号,电信号表示两个或更多个乘法模块的结果的总和。
[0207]
装置的实施例可包括以下特征的一个或多个。例如,在相应的光信号上编码的一组多个输入值中的输入值可以表示与包括一个或多个矩阵元素值的矩阵相乘的输入向量
的元素。
[0208]
在一些实施例中,一组多个输出值可被编码在由一个或多个求和模块所产生的相应电信号上,并且一组多个输出值中的输出值可表示输出向量的元素,输出向量通过输入向量乘以矩阵产生。
[0209]
在一些实施例中,由光波导所承载的每一个光信号可包括具有共同波长的光波,共同波长对于所有光信号基本相同。
[0210]
在一些实施例中,复制模块可包括具有分光器的至少一个复制模块,分光器在输入端口将预定比例的光波的功率传输至第一输出端口,并且在输入端口将剩余比例的光波的功率传输至第二输出端口。
[0211]
在一些实施例中,分光器可包括波导分光器,波导分光器将由输入光波导所引导的预定比例的光波的功率传输至第一输出光波导,并且将由输入光波导所引导的剩余比例的光波的功率传输至第二输出光波导。
[0212]
在一些实施例中,输入光波导的引导模式可被绝热地(adiabatically)耦合至第一输出光波导和第二输出光波导中的每一个的引导模式。
[0213]
在一些实施例中,分光器可包括分束器,分束器包括至少一个表面,其在输入端口传输预定比例的光波的功率,并且反射输入端口处剩余比例的光波的功率。
[0214]
在一些实施例中,多个光波导中的至少一个可包括耦合至光耦合器的光纤,光耦合器将光纤的引导模式耦合至自由空间传播模式(free

space propagation mode)。
[0215]
在一些实施例中,乘法模块可包括至少一个相干敏感乘法模块(coherence

sensitive multiplication module),相干敏感乘法模块被配置以基于光波之间的干涉,使用光幅度调制将第一子集的一个或多个光信号乘以一个或多个矩阵元素值,光波具有相干长度,相干长度至少与通过相干敏感乘法模块的传播距离一样长。
[0216]
在一些实施例中,相干敏感乘法模块可包括马赫曾德尔干涉仪(mzi),马赫曾德尔干涉仪将输入光波导所引导的光波分离进入mzi的第一光波导臂(optical waveguide arm)和mzi的第二光波导臂,第一光波导臂包括移相器,移相器相对于第二光波导臂的相位延迟产生相对相移,并且mzi将来自第一光波导臂和第二光波导臂的光波组合成至少一个输出光波导。
[0217]
在一些实施例中,mzi可将来自第一光波导臂和第二光波导臂的光波组合到第一输出光波导和第二输出光波导中的每一个,第一光电检测器可从第一输出光波导接收光波以产生第一光电流,第二光电检测器可从第二输出光波导接收光波以产生第二光电流,并且相干敏感乘法模块的结果可包括第一光电流与第二光电流之间的差值。
[0218]
在一些实施例中,相干敏感乘法模块可包括一个或多个环形共振器(ring resonator),环形共振器包括耦合至第一光波导的至少一个环形共振器和耦合至第二光波导的至少一个环形共振器。
[0219]
在一些实施例中,第一光电检测器可接收来自第一光波导的光波,以产生第一光电流,第二光电检测器可接收来自第二光波导的光波,以产生第二光电流,并且相干敏感乘法模块的结果可包括第一光电流与第二光电流之间的差值。
[0220]
在一些实施例中,乘法模块可包括至少一个相干非敏感乘法模块(coherence

insensitive multiplication module),相干非敏感乘法模块被配置以基于光波内的能量
吸收,使用光幅度调制将第一子集的一个或多个光信号乘以一个或多个矩阵元素值。
[0221]
在一些实施例中,相干非敏感乘法模块可包括电吸收调制器(electro

absorption modulator)。
[0222]
在一些实施例中,一个或多个求和模块可包括具有以下部件的至少一个求和模块:(1)两个或更多个输入导体,每一个输入导体以输入电流的形式承载电信号,输入电流的幅度表示相应一个乘法模块的相应结果,以及(2)至少一个输出导体,输出导体承载表示输出电流形式的相应结果的总和的电信号,输出电流与输入电流的总和成比例。
[0223]
在一些实施例中,两个或更多个输入导体和输出导体可包括多个导线,其在导线之间的一个或多个结点接触,并且输出电流基本等于输入电流的总和。
[0224]
在一些实施例中,输入电流的至少第一输入电流可以以至少一个光电流的形式提供,光电流由至少一个光电检测器产生,光电检测器接收由乘法模块的第一乘法模块所产生的光信号。
[0225]
在一些实施例中,第一输入电流可以以两个光电流之间的差值的形式提供,两个光电流由不同相应光电检测器产生,光电检测器接收由第一乘法模块所产生的不同相应光信号。
[0226]
在一些实施例中,一个或多个光信号的第一子集的副本之一可由单一光信号组成,其中在单一光信号上编码输入值之一。
[0227]
在一些实施例中,对应于第一子集的副本的乘法模块可将编码的输入值乘以单一矩阵元素值。
[0228]
在一些实施例中,一个或多个光信号的第一子集的副本之一可包括的光信号多于一个,并且少于所有光信号,其中多个输入值被编码在该光信号上。
[0229]
在一些实施例中,对应于第一子集的副本的乘法模块可将编码的输入值乘以不同的相应矩阵元素值。
[0230]
在一些实施例中,对应于一个或多个光信号的第一子集的不同相应副本的不同乘法模块可被不同的装置包含,不同装置进行光学通信以在不同装置之间传输一个或多个光信号的第一子集的副本之一。
[0231]
在一些实施例中,多个光波导的两个或更多个、多个复制模块的两个或更多个、多个乘法模块的两个或更多个、以及一个或多个求和模块的至少一个可被布置在公共装置的基板上。
[0232]
在一些实施例中,装置执行向量矩阵乘法,其中可提供输入向量作为一组光信号,并且可提供输出向量作为一组电信号。
[0233]
在一些实施例中,装置可进一步包括累加器,累加器合并对应乘法模块或求和模块的输出的输入电信号,其中可使用时域编码(time domain encoding)来编码输入电信号,时域编码在多个时隙的每一个内使用开关幅度调制(on

off amplitude modulation),并且累加器可产生输出电信号,输出电信号以多于两个幅度水平来编码,幅度水平对应于多个时隙上的时域编码的不同占空比。
[0234]
在一些实施例中,乘法模块的两个或更多个中的每一个对应于一个或多个光信号的不同子集。
[0235]
在一些实施例中,装置还可包括用于与一个或多个光信号的第一子集中的光信号
不同的一个或多个光信号的第二子集的每一个副本的乘法模块,其被配置以使用光幅度调制将第二子集的一个或多个光信号乘以一个或多个矩阵元素值。
[0236]
在另一方面,一种方法包括:在相应光信号上编码一组多个输入值;对于一个或多个光信号的至少两个子集中的每一个,使用一个或多个复制模块的相应组以将一个或多个光信号的子集分成两个或更多个光信号的副本;对于一个或多个光信号的第一子集的至少两个副本中的每一个,使用相应的乘法模块以使用光幅度调制将第一子集的一个或多个光信号乘以一个或多个矩阵元素值,其中至少一个乘法模块包括光幅度调制器,光幅度调制器包括一个输入端口和两个输出端口,并且从两个输出端口提供一对相关光信号,使得相关光信号的幅度之间的差值对应于将输入值乘以有符号矩阵元素值的结果;以及对于两个或更多个乘法模块的结果,使用被配置为产生电信号的求和模块,电信号表示两个或更多个乘法模块的结果的总和。
[0237]
在另一方面,一种方法包括:编码表示相应光信号上的输入向量的元素的一组输入值;将表示矩阵元素的一组系数编码作为耦合至光信号的一组光幅度调制器的幅度调制水平,其中包括一个输入端口和两个输出端口的至少一个光幅度调制器从两个输出端口提供一对相关光信号,使得相关光信号的幅度之间的差值对应于将输入值乘以有符号矩阵元素值的结果;以及编码表示相应电信号上的输出向量的元素的一组输出值,其中至少一个电信号是电流形式,其幅度对应输入向量的相应元素乘以矩阵的一行(row)的相应元素的总和。
[0238]
方法的实施例可包括以下特征的一个或多个。例如,至少一个光信号可以由第一光波导提供,并且第一光波导可以耦合至分光器,分光器将由第一光波导所引导的预定比例的光波的功率传输至第二输出光波导,并且将由第一光波导所引导的光波的功率的剩余比例传输至第三光波导。
[0239]
在另一方面,一种装置包括:多个光波导,编码表示由光波导承载的相应光信号上的输入向量的元素的一组输入值;一组光幅度调制器,耦合至光信号,将表示矩阵元素的一组系数编码作为幅度调制水平,其中包括一个输入端口和两个输出端口的至少一个光幅度调制器从两个输出端口提供一对相关光信号,使得相关光信号的幅度之间的差值对应于将输入值乘以有符号矩阵元素值的结果;多个求和模块,其编码表示相应电信号上的输出向量的元素的一组输出值,其中至少一个电信号是电流形式,其幅度对应输入向量的相应元素乘以矩阵的一行(row)的相应元素的总和。
[0240]
在另一方面,一种用于将输入向量乘以给定矩阵的方法包括:编码表示一组光信号的相应光信号上的输入向量的元素的一组输入值;将第一组一个或多个装置耦合至提供该组光信号的第一子集的第一组一个或多个波导,并且产生给定矩阵的第一子矩阵乘以在该组光信号的第一子集编码上的值的结果;将第二组一个或多个装置耦合至提供该组光信号的第二子集的第二组一个或多个波导,并且产生给定矩阵的第二子矩阵乘以在该组光信号的第二子集上编码的值的结果;将第三组一个或多个装置耦合至提供由第一分光器所产生的该组光信号的第一子集的副本的第三组一个或多个波导,并且产生给定矩阵的第三子矩阵乘以在该组光信号的第一子集上编码的值的结果;将第四组一个或多个装置耦合至提供由第二分光器所产生的该组光信号的第二子集的副本的第四组一个或多个波导,并且产生给定矩阵的第四子矩阵乘以在该组光信号的第二子集上编码的值的结果;其中连接在一
起的第一、第二、第三以及第四子矩阵形成给定矩阵;以及其中表示输出向量的元素的至少一个输出值被编码在电信号上,输出向量对应输入向量乘以给定矩阵,电信号由与第一组一个或多个装置和第二组一个或多个装置通信的装置产生。
[0241]
方法的实施例可包括以下特征的一个或多个。例如,第一组一个或多个装置、第二组一个或多个装置、第三组一个或多个装置、以及第四组一个或多个装置中的每一对组可以是互斥的(mutually exclusive)。
[0242]
在另一方面,一种装置包括:第一组一个或多个装置,被配置以接收第一组光信号,并且产生第一矩阵乘以在第一组光信号上编码的值的结果;第二组一个或多个装置,被配置以接收第二组光信号,并且产生第二矩阵乘以在第二组光信号上编码的值的结果;第三组一个或多个装置,被配置以接收第三组光信号,并且产生第三矩阵乘以在第三组光信号上编码的值的结果;第四组一个或多个装置,被配置以接收第四组光信号,并且产生第四矩阵乘以在第四组光信号上编码的值的结果;以及可配置连接路径,在第一组一个或多个装置、第二组一个或多个装置、第三组一个或多个装置或第四组一个或多个装置中的两个或更多个之间,其中可配置连接路径的第一配置被配置以(1)提供第一组光信号的副本作为第二组光信号、第三组光信号或第四组光信号中的至少一个,并且(2)将来自第一组一个或多个装置的一个或多个信号和来自第二组一个或多个装置的一个或多个信号提供至求和模块,求和模块被配置以产生电信号,电信号表示在由求和模块接收的信号上编码的值的总和。
[0243]
在另一方面,一种装置包括:第一组一个或多个装置,被配置以接收第一组光信号,并且基于第一组光信号的一个或多个光信号的光幅度调制产生结果;第二组一个或多个装置,被配置以接收第二组光信号,并且基于第二组光信号的一个或多个光信号的光幅度调制产生结果;第三组一个或多个装置,被配置以接收第三组光信号,并且基于第三组光信号的一个或多个光信号的光幅度调制产生结果;第四组一个或多个装置,被配置以接收第四组光信号,并且基于第四组光信号的一个或多个光信号的光幅度调制产生结果;以及可配置连接路径,在第一组一个或多个装置、第二组一个或多个装置、第三组一个或多个装置或第四组一个或多个装置中的两个或更多个之间,其中可配置连接路径的第一配置被配置以(1)提供第一组光信号的副本作为第三组光信号,或(2)将来自第一组一个或多个装置的一个或多个信号和来自第二组一个或多个装置的一个或多个信号提供至求和模块,求和模块被配置以产生电信号,电信号表示在由求和模块接收的信号上编码的值的总和。
[0244]
装置的实施例可包括以下特征的一个或多个。例如,第一组一个或多个装置、第二组一个或多个装置、第三组一个或多个装置、以及第四组一个或多个装置中的每一对组可以是互斥的。
[0245]
在一些实施例中,可配置连接路径的第一配置被配置以(1)提供第一组光信号的副本作为第三组光信号,并且(2)将来自第一组一个或多个装置的一个或多个信号和来自第二组一个或多个装置的一个或多个信号提供至求和模块,求和模块被配置以产生电信号,电信号表示在由求和模块接收的至少两个不同信号上编码的值的总和。
[0246]
在一些实施例中,可配置连接路径的第一配置可被配置以提供第一组光信号的副本作为第三组光信号,并且可配置连接路径的第二配置可被配置以将来自第一组一个或多个装置的一个或多个信号和来自第二组一个或多个装置的一个或多个信号提供至求和模
块,求和模块被配置以产生电信号,电信号表示在由求和模块接收的信号上编码的值的总和。
[0247]
在另一方面,一种装置包括:多个光波导,其中一组多个输入值被编码在由光波导承载的相应光信号上;多个复制模块,对于一个或多个光信号的至少两个子集中的每一个,多个复制模块包括一个或多个复制模块的相应一组,其被配置以将一个或多个光信号的子集分成两个或更多个光信号的副本;多个乘法模块,对于一个或多个光信号的第一子集的至少两个副本中的每一个,多个乘法模块包括相应的乘法模块,其被配置以使用光幅度调制将第一子集的一个或多个光信号乘以一个或多个值;以及一个或多个求和模块,对于两个或更多个乘法模块的结果,一个或多个求和模块包括被配置以产生电信号的求和模块,电信号表示两个或更多个乘法模块的结果的总和,其中该结果包括在电信号上编码的至少一个结果,并且该结果是从光信号的一个副本导出的,其在被转换成电信号之前传播通过不超过单个光幅度调制器。
[0248]
在另一方面,一种系统包括:第一单元,被配置以产生多个调制器控制信号;以及处理器,包括:光源,被配置以提供多个光输出;多个光调制器,耦合至光源和第一单元,多个光调制器被配置以通过基于多个调制器控制信号调制由光源所提供的多个光输出,来产生光输入向量,光输入向量包括多个光信号;以及矩阵乘法单元,耦合至多个光调制器和第一单元,矩阵乘法单元被配置以基于多个权重控制信号,将光输入向量转换成模拟输出向量。计算系统还包括第二单元,耦合至矩阵乘法单元,并且第二单元被配置以将模拟输出向量转换成数字输出向量;以及控制器,包括集成电路,被配置以执行以下操作:接收人工神经网络计算请求,人工神经网络计算请求包括输入数据集,输入数据集包括第一数字输入向量;接收第一多个神经网络权重;以及通过第一单元,基于第一数字输入向量产生第一多个调制器控制信号,并且基于第一多个神经网络权重产生第一多个权重控制信号。
[0249]
系统的实施例可包括以下特征的一个或多个。例如,第一单元可包括数字模拟转换器(dac)。
[0250]
在一些实施例中,第二单元可包括模拟数字转换器(adc)。
[0251]
在一些实施例中,系统可包括存储单元,被配置以储存数据集和多个神经网络权重。
[0252]
在一些实施例中,控制器的集成电路可进一步被配置以执行包括在所述存储单元中储存输入数据集和第一多个神经网络权重的操作。
[0253]
在一些实施例中,第一单元可被配置以产生多个权重控制信号。
[0254]
在一些实施例中,控制器可包括专用集成电路(asic),并且接收人工神经网络计算请求可包括从通用数据处理器接收人工神经网络计算请求。
[0255]
在一些实施例中,第一单元、处理单元、第二单元以及控制器可被布置在多芯片模块或集成电路中的至少一个上。接收人工神经网络计算请求可包括从第二数据处理器接收人工神经网络计算请求,其中第二数据处理器可在多芯片模块或集成电路的外部,第二数据处理器可通过通信信道(communication channel)耦合至多芯片模块或集成电路,并且处理单元可以以比通信信道的数据速率大至少一数量级的数据速率来处理数据。
[0256]
在一些实施例中,第一单元、处理单元、第二单元以及控制器可被用于在多个迭代中重复的光电处理循环,并且光电处理循环包括:(1)基于多个调制器控制信号中的至少一
个的至少第一光调制操作,以及基于权重控制信号的至少一个的至少第二光调制操作,以及(2)(a)电求和操作或(b)电储存操作中的至少一个。
[0257]
在一些实施例中,光电处理循环可包括电储存操作,并且电储存操作使用耦合至控制器的存储单元来执行,其中通过控制器所执行的操作可进一步包括在存储单元中储存输入数据集和第一多个神经网络权重。
[0258]
在一些实施例中,光电处理循环可包括电求和操作,并且电求和操作可使用在矩阵乘法单元内的电求和模块来执行,其中电求和模块可被配置以产生对应于模拟输出向量的元素的电流,模拟输出向量表示光输入向量的相应元素乘以相应神经网络权重的总和。
[0259]
在一些实施例中,光电处理循环可包括至少一个信号路径,在信号路径上,基于多个调制器控制信号的至少一个,在单一循环迭代中执行不超过一个第一光调制操作,并且基于权重控制信号的至少一个,在单一循环迭代中执行不超过一个第二光调制操作。
[0260]
在一些实施例中,第一光调制操作可通过耦合至光输出的光源和矩阵乘法单元的多个光调制器之一来执行,并且第二光调制操作可通过被包括在矩阵乘法单元中的光调制器来执行。
[0261]
在一些实施例中,光电处理循环可包括至少一个信号路径,在所述信号路径上,在单一循环迭代中执行不超过一个电储存操作。
[0262]
在一些实施例中,光源可包括激光单元,被配置以产生多个光输出。
[0263]
在一些实施例中,矩阵乘法单元可包括:输入波导阵列,用于接收光输入向量,并且光输入向量包括第一光信号阵列;光干涉单元,与输入波导阵列光学通信,用于执行将光输入向量转换成第二光信号阵列的线性变换;以及输出波导阵列,与光干涉单元光学通信,用于引导第二光信号阵列,其中在输入波导阵列中的至少一个输入波导通过光干涉单元与在输出波导阵列中的每一个输出波导光学通信。
[0264]
在一些实施例中,光干涉单元可包括:多个互连马赫曾德尔干涉仪(mzi),多个互连mzi中的每一个mzi包括:第一移相器,被配置以改变mzi的分光比;以及第二移相器,被配置以移动mzi的一个输出的相位,其中第一移相器和第二移相器耦合至多个权重控制信号。
[0265]
在一些实施例中,矩阵乘法单元可包括:多个复制模块,其中每一个复制模块对应光输入向量的一个或多个光信号的子集,并且被配置以将一个或多个光信号的子集分成光信号的两个或更多个副本;多个乘法模块,其中每一个乘法模块对应于一个或多个光信号的子集,并且被配置以使用光幅度调制将子集的一个或多个光信号乘以一个或多个矩阵元素值;以及一个或多个求和模块,其中每一个求和模块被配置以产生电信号,电信号表示乘法模块的两个或更多个的结果的总和。
[0266]
在一些实施例中,至少一个乘法模块包括光幅度调制器,光幅度调制器包括一个输入端口和两个输出端口,并且可从两个输出端口提供一对相关光信号,使得相关光信号的幅度之间的差值对应于将输入值乘以有符号矩阵元素值的结果。
[0267]
在一些实施例中,矩阵乘法单元可被配置以将光输入向量乘以包括一个或多个矩阵元素值的矩阵。
[0268]
在一些实施例中,一组多个输出值可被编码在由一个或多个求和模块所产生的相应电信号上,并且一组多个输出值中的输出值可表示输出向量的元素,输出向量通过光输入向量乘以矩阵产生。
[0269]
在一些实施例中,系统可包括存储单元,存储单元被配置以储存输入数据集和神经网络权重,第二单元可包括模拟数字转换(adc)单元,并且操作可进一步包括:从adc单元得到对应矩阵乘法单元的模拟输出向量的第一多个数字输出,第一多个数字输出形成第一数字输出向量;对第一数字输出向量执行非线性变换以产生第一变换数字输出向量;以及在存储单元中储存第一变换数字输出向量。
[0270]
在一些实施例中,系统具有第一循环时段,第一循环时段被定义为在存储单元中储存输入数据集和第一多个神经网络权重的步骤与在存储单元中储存第一变换数字输出向量的步骤之间所经过的时间,以及其中第一循环时段小于或等于1ns。
[0271]
在一些实施例中,操作可进一步包括:输出基于第一变换数字输出向量所产生的人工神经网络输出。
[0272]
在一些实施例中,第一单元可包括数字模拟转换(dac)单元,并且操作可进一步包括:通过dac单元,基于第一变换数字输出向量产生第二多个调制器控制信号。
[0273]
在一些实施例中,第一单元可包括数字模拟转换(dac)单元,人工神经网络计算请求可进一步包括第二多个神经网络权重,并且其中操作可进一步包括:基于第一多个数字输出的获得,通过dac单元基于第二多个神经网络权重产生第二多个权重控制信号。
[0274]
在一些实施例中,第一多个神经网络权重和第二多个神经网络权重可对应人工神经网络的不同层。
[0275]
在一些实施例中,第一单元可包括数字模拟转换(dac)单元,并且输入数据集可进一步包括第二数字输入向量。操作可进一步包括:通过dac单元,基于第二数字输入向量产生第二多个调制器控制信号;从adc单元得到对应矩阵乘法单元的模拟输出向量的第二多个数字输出,第二多个数字输出形成第二数字输出向量;对第二数字输出向量执行非线性变换以产生第二变换数字输出向量;在存储单元中储存第二变换数字输出向量;以及输出基于第一变换数字输出向量和第二变换数字输出向量所产生的人工神经网络输出。矩阵乘法单元的模拟输出向量可由基于第二多个调制器控制信号所产生的第二光输入向量产生,第二光输入向量由矩阵乘法单元基于首先提到的多个权重控制信号转换。
[0276]
在一些实施例中,系统可包括存储单元,存储单元被配置以储存输入数据集和神经网络权重,并且第二单元可包括模拟数字转换(adc)单元。系统可进一步包括:模拟非线性单元,布置在矩阵乘法单元与adc单元之间,模拟非线性单元可被配置以从矩阵乘法单元接收多个输出电压、应用非线性传递函数、以及输出多个转换输出电压至adc单元。控制器的集成电路执行的操作可进一步包括:从adc单元得到对应多个转换输出电压的第一多个转换数字输出电压,第一多个转换数字输出电压形成第一变换数字输出向量;以及在存储单元中储存第一变换数字输出向量。
[0277]
在一些实施例中,控制器的集成电路可被配置以大于或等于8ghz的速率产生第一多个调制器控制信号。
[0278]
在一些实施例中,第一单元可包括数字模拟转换(dac)单元,第二单元可包括模拟数字转换(adc)单元。矩阵乘法单元可包括:光矩阵乘法单元,耦合至多个光调制器和dac单元,光矩阵乘法单元被配置以基于多个权重控制信号将光输入向量转换成光输出向量;以及光电检测单元,耦合至光矩阵乘法单元,并且被配置以产生对应光输出向量的多个输出电压。
[0279]
在一些实施例中,系统可进一步包括:模拟存储单元,被布置在dac单元与多个光调制器之间,模拟存储单元被配置以储存模拟电压,并且输出储存的模拟电压;以及模拟非线性单元,被布置在光电检测单元与adc单元之间,模拟非线性单元被配置以从光电检测单元接收多个输出电压、应用非线性传递函数、以及输出多个转换输出电压。
[0280]
在一些实施例中,模拟存储单元可包括多个电容器。
[0281]
在一些实施例中,模拟存储单元可被配置以接收和储存模拟非线性单元的多个转换输出电压,并且将储存的多个转换输出电压输出至多个光调制器。操作可进一步包括:基于产生第一多个调制器控制信号和第一多个权重控制信号,在模拟存储单元中储存模拟非线性单元的多个转换输出电压;通过模拟存储单元输出储存的转换输出电压;从adc单元得到第二多个转换数字输出电压,第二多个转换数字输出电压形成第二变换数字输出向量;以及在存储单元中储存第二变换数字输出向量。
[0282]
在一些实施例中,系统可包括存储单元,被配置以储存输入数据集和神经网络权重,并且人工神经网络计算请求的输入数据集可包括多个数字输入向量。光源可被配置以产生多个波长。多个光调制器可包括:光调制器组,被配置以产生多个光输入向量,每一个光调制器组对应多个波长之一,并且产生具有相应波长的相应光输入向量;以及光多路复用器,被配置以将多个光输入向量组合成包括多个波长的组合光输入向量。光电检测单元可进一步被配置以多路分解多个波长,并且产生多个多路分解输出电压。操作可包括:从adc单元得到多个数字多路分解光输出,多个数字多路分解光输出形成多个第一数字输出向量,其中多个第一数字输出向量中的每一个对应多个波长之一;对多个第一数字输出向量中的每一个执行非线性变换,以产生多个变换第一数字输出向量;以及在存储单元中储存多个变换第一数字输出向量。多个数字输入向量中的每一个对应多个光输入向量之一。
[0283]
在一些实施例中,系统可包括存储单元,被配置以储存输入数据集和神经网络权重,第二单元可包括模拟数字转换(adc)单元,并且人工神经网络计算请求可包括多个数字输入向量。光源可被配置以产生多个波长。多个光调制器可包括:光调制器组,被配置以产生多个光输入向量,每一个光调制器组对应多个波长之一,并且产生具有相应波长的相应光输入向量;以及光多路复用器,被配置以将多个光输入向量组合成包括多个波长的组合光输入向量。操作可包括:从adc单元得到对应光输出向量的第一多个数字光输出,光输出向量包括多个波长,第一多个数字光输出形成第一数字输出向量;对第一数字输出向量执行非线性变换,以产生第一变换数字输出向量;以及在存储单元中所述第一变换数字输出向量。
[0284]
在一些实施例中,第一单元可包括数字模拟转换(dac)单元,第二单元可包括模拟数字转换(adc)单元,并且dac单元可包括:1比特dac子单元,被配置以产生多个1比特调制器控制信号。adc单元的分辨率可为1比特,并且第一数字输入向量的分辨率可为n比特。操作可包括:将第一数字输入向量分解为n个1比特输入向量,n个1比特输入向量中的每一个对应第一数字输入向量的n比特中的一个;通过1比特dac子单元产生对应n个1比特输入向量的n个1比特调制器控制信号的序列;从adc单元得到对应n个1比特调制器控制信号的序列的n个数字1比特光输出的序列;从n个数字1比特光输出的序列建构n比特数字输出向量;对建构的n比特数字输出向量执行非线性变换,以产生变换n比特数字输出向量;以及在存储单元中储存变换n比特数字输出向量。
[0285]
在一些实施例中,系统可包括存储单元,被配置以储存输入数据集和神经网络权重。存储单元可包括:数字输入向量存储器,被配置以储存第一数字输入向量,并且包括至少一个sram;以及神经网络权重存储,被配置以储存多个神经网络权重,并且包括至少一个dram。
[0286]
在一些实施例中,第一单元可包括数字模拟转换(dac)单元,数字模拟转换单元包括:第一dac子单元,被配置以产生多个调制器控制信号;以及第二dac子单元,被配置以产生多个权重控制信号,其中第一dac子单元和第二dac子单元是不同的。
[0287]
在一些实施例中,光源可包括:激光源,被配置以产生光;以及光功率分离器,被配置以将由激光源所产生的光分成多个光输出,其中多个光输出中的每一个具有基本相同的功率。
[0288]
在一些实施例中,多个光调制器包括mzi调制器、环形共振调制器或电吸收调制器中的一个。
[0289]
在一些实施例中,光电检测单元可包括:多个光电检测器;以及多个放大器,被配置以将由光电检测器所产生的光电流转换成多个输出电压。
[0290]
在一些实施例中,集成电路可以是专用集成电路。
[0291]
在一些实施例中,系统可包括多个光波导,光波导耦合在光调制器与矩阵乘法单元之间,其中光输入向量可包括一组多个输入值,一组多个输入值被编码在由光波导所承载的相应光信号上,并且由光波导之一所承载的每一个光信号可包括具有共同波长的光波,共同波长对于所有光信号基本相同。
[0292]
在一些实施例中,复制模块可包括具有分光器的至少一个复制模块,分光器在输入端口将预定比例的光波的功率传输至第一输出端口,并且在输入端口将剩余比例的光波的功率传输至第二输出端口。
[0293]
在一些实施例中,分光器可包括波导分光器,波导分光器将由输入光波导所引导的预定比例的光波的功率传输至第一输出光波导,并且将由输入光波导所引导的剩余比例的光波的功率传输至第二输出光波导。
[0294]
在一些实施例中,输入光波导的引导模式可被绝热地(adiabatically)耦合至第一输出光波导和第二输出光波导中的每一个的引导模式。
[0295]
在一些实施例中,分光器可包括分束器,分束器包括至少一个表面,其在输入端口传输预定比例的光波的功率,并且反射输入端口处剩余比例的光波的功率。
[0296]
在一些实施例中,多个光波导中的至少一个可包括耦合至光耦合器的光纤,光耦合器将光纤的引导模式耦合至自由空间传播模式。
[0297]
在一些实施例中,乘法模块可包括至少一个相干敏感乘法模块,相干敏感乘法模块被配置以基于光波之间的干涉,使用光幅度调制将第一子集的一个或多个光信号乘以一个或多个矩阵元素值,光波具有相干长度,相干长度至少与通过相干敏感乘法模块的传播距离一样长。
[0298]
在一些实施例中,相干敏感乘法模块可包括马赫曾德尔干涉仪(mzi),mzi将输入光波导所引导的光波分离进入mzi的第一光波导臂和mzi的第二光波导臂,第一光波导臂包括移相器,移相器相对于第二光波导臂的相位延迟产生相对相移,并且mzi可将来自第一光波导臂和第二光波导臂的光波组合成至少一个输出光波导。
[0299]
在一些实施例中,mzi可将来自第一光波导臂和第二光波导臂的光波组合到第一输出光波导和第二输出光波导中的每一个,第一光电检测器可从第一输出光波导接收光波以产生第一光电流,第二光电检测器可从第二输出光波导接收光波以产生第二光电流,并且相干敏感乘法模块的结果可包括第一光电流与第二光电流之间的差值。
[0300]
在一些实施例中,相干敏感乘法模块可包括一个或多个环形共振器,环形共振器包括耦合至第一光波导的至少一个环形共振器和耦合至第二光波导的至少一个环形共振器。
[0301]
在一些实施例中,第一光电检测器可接收来自第一光波导的光波,以产生第一光电流,第二光电检测器可接收来自第二光波导的光波,以产生第二光电流,并且相干敏感乘法模块的结果可包括第一光电流与第二光电流之间的差值。
[0302]
在一些实施例中,乘法模块可包括至少一个相干非敏感乘法模块,相干非敏感乘法模块被配置以基于光波内的能量吸收,使用光幅度调制将第一子集的一个或多个光信号乘以一个或多个矩阵元素值。
[0303]
在一些实施例中,相干非敏感乘法模块可包括电吸收调制器。
[0304]
在一些实施例中,一个或多个求和模块可包括具有以下部件的至少一个求和模块:(1)两个或更多个输入导体,每一个输入导体以输入电流的形式承载电信号,输入电流的幅度表示相应一个乘法模块的相应结果,以及(2)至少一个输出导体,输出导体承载表示输出电流形式的相应结果的总和的电信号,输出电流与输入电流的总和成比例。
[0305]
在一些实施例中,两个或更多个输入导体和输出导体可包括导线,其在导线之间的一个或多个结点接触,并且输出电流基本等于输入电流的总和。
[0306]
在一些实施例中,输入电流的至少第一输入电流可以以至少一个光电流的形式提供,光电流由至少一个光电检测器产生,光电检测器接收由乘法模块的第一乘法模块所产生的光信号。
[0307]
在一些实施例中,第一输入电流可以以两个光电流之间的差值的形式提供,两个光电流由不同相应光电检测器产生,光电检测器接收由第一乘法模块所产生的不同相应光信号。
[0308]
在一些实施例中,一个或多个光信号的第一子集的副本之一可由单一光信号组成,其中在单一光信号上编码输入值之一。
[0309]
在一些实施例中,对应于第一子集的副本的乘法模块可将编码的输入值乘以单一矩阵元素值。
[0310]
在一些实施例中,一个或多个光信号的第一子集的副本之一可包括的光信号多于一个,并且少于所有光信号,其中多个输入值被编码在该光信号上。
[0311]
在一些实施例中,对应于第一子集的副本的乘法模块可将编码的输入值乘以不同的相应矩阵元素值。
[0312]
在一些实施例中,对应于一个或多个光信号的第一子集的不同相应副本的不同乘法模块可被不同的装置包含,不同装置进行光学通信以在不同装置之间传输一个或多个光信号的第一子集的副本之一。
[0313]
在一些实施例中,多个光波导的两个或更多个、多个复制模块的两个或更多个、多个乘法模块的两个或更多个、以及一个或多个求和模块的至少一个可被布置在公共装置的
基板上。
[0314]
在一些实施例中,装置执行向量矩阵乘法,其中可提供输入向量作为一组光信号,并且可提供输出向量作为一组电信号。
[0315]
在一些实施例中,装置可进一步包括累加器,累加器合并对应乘法模块或求和模块的输出的输入电信号,其中可使用时域编码来编码输入电信号,时域编码在多个时隙的每一个内使用开关幅度调制,并且累加器可产生输出电信号,输出电信号以多于两个幅度水平来编码,幅度水平对应于多个时隙上的时域编码的不同占空比。
[0316]
在一些实施例中,乘法模块的两个或更多个中的每一个对应于一个或多个光信号的不同子集。
[0317]
在一些实施例中,装置还可包括用于与一个或多个光信号的第一子集中的光信号不同的一个或多个光信号的第二子集的每一个副本的乘法模块,其被配置以使用光幅度调制将第二子集的一个或多个光信号乘以一个或多个矩阵元素值。
[0318]
在另一方面,一种系统包括:存储单元,被配置以储存数据集和多个神经网络权重;以及驱动器单元,被配置以产生多个调制器控制信号。系统包括光电处理器,光电处理器包括:光源,被配置以提供多个光输出;多个光调制器,耦合至光源和驱动器单元,多个光调制器被配置以通过基于多个调制器控制信号调制由光源所产生的多个光输出,来产生光输入向量;矩阵乘法单元,耦合至多个光调制器和驱动器单元,矩阵乘法单元被配置以基于多个权重控制信号将光输入向量转换成模拟输出向量;以及比较器单元,耦合至矩阵乘法单元,并且被配置以将模拟输出向量转换成多个数字1比特输出。系统包括控制器,控制器包括集成电路,被配置以执行以下操作:接收包括输入数据集和第一多个神经网络权重的人工神经网络计算请求,其中输入数据集包括具有n比特分辨率的第一数字输入向量;在存储单元中储存输入数据集和第一多个神经网络权重;将第一数字输入向量分解为n个1比特输入向量,n个1比特输入向量中的每一个对应第一数字输入向量的n比特中的一个;通过驱动器单元产生对应n个1比特输入向量的n个1比特调制器控制信号的序列;从比较器单元得到对应n个1比特调制器控制信号的序列的n个数字1比特输出的序列;从n个数字1比特输出的序列建构n比特数字输出向量;对建构的n比特数字输出向量执行非线性变换,以产生变换n比特数字输出向量;以及在存储单元中储存变换n比特数字输出向量。
[0319]
系统的实施例可包括以下特征的一个或多个。例如,接收人工神经网络计算请求可包括从通用计算机(general purpose computer)接收人工神经网络计算请求。
[0320]
在一些实施例中,驱动器单元可被配置以产生多个权重控制信号。
[0321]
在一些实施例中,矩阵乘法单元可包括:光矩阵乘法单元,耦合至多个光调制器和驱动器单元,光矩阵乘法单元被配置以基于多个权重控制信号将光输入向量转换成光输出向量;以及光电检测单元,耦合至光矩阵乘法单元,并且被配置以产生对应光输出向量的多个输出电压。
[0322]
在一些实施例中,矩阵乘法单元可包括:输入波导阵列,用于接收光输入向量;光干涉单元,与输入波导阵列光学通信,用于执行将光输入向量转换成第二光信号阵列的线性变换;以及输出波导阵列,与光干涉单元光学通信,用于引导第二光信号阵列,其中在输入波导阵列中的至少一个输入波导通过光干涉单元与在输出波导阵列中的每一个输出波导光学通信。
[0323]
在一些实施例中,光干涉单元可包括:多个互连马赫曾德尔干涉仪(mzi),多个互连mzi中的每一个mzi包括:第一移相器,被配置以改变mzi的分光比;以及第二移相器,被配置以移动mzi的一个输出的相位,其中第一移相器和第二移相器可耦合至多个权重控制信号。
[0324]
在一些实施例中,矩阵乘法单元可包括:多个复制模块,对于光输入向量的一个或多个光信号的至少两个子集中的每一个,多个复制模块包括一个或多个复制模块的相应一组,其被配置以将一个或多个光信号的子集分成两个或更多个光信号的副本;多个乘法模块,对于一个或多个光信号的第一子集的至少两个副本中的每一个,多个乘法模块包括相应的乘法模块,其被配置以使用光幅度调制将第一子集的一个或多个光信号乘以一个或多个矩阵元素值;以及一个或多个求和模块,对于两个或更多个乘法模块的结果,一个或多个求和模块包括被配置以产生电信号的求和模块,电信号表示两个或更多个乘法模块的结果的总和。
[0325]
在一些实施例中,至少一个乘法模块可包括光幅度调制器,光幅度调制器包括一个输入端口和两个输出端口,并且可从两个输出端口提供一对相关光信号,使得相关光信号的幅度之间的差值对应于将输入值乘以有符号矩阵元素值的结果。
[0326]
在一些实施例中,矩阵乘法单元可被配置以将光输入向量乘以包括一个或多个矩阵元素值的矩阵。
[0327]
在一些实施例中,一组多个输出值可被编码在由一个或多个求和模块所产生的相应电信号上,并且一组多个输出值中的输出值可表示输出向量的元素,输出向量通过光输入向量乘以矩阵产生。
[0328]
在另一方面,提供了一种方法,用于在具有矩阵乘法单元的系统中执行人工神经网络计算,矩阵乘法单元被配置以基于多个权重控制信号将光输入向量转换成模拟输出向量。方法包括:接收包括输入数据集和第一多个神经网络权重的人工神经网络计算请求,其中输入数据集包括第一数字输入向量;在存储单元中储存输入数据集和第一多个神经网络权重;基于第一数字输入向量产生第一多个调制器控制信号,并且基于第一多个神经网络权重产生第一多个权重控制信号;得到对应矩阵乘法单元的输出向量的第一多个数字输出,第一多个数字输出形成第一数字输出向量;通过控制器对第一数字输出向量执行非线性变换,以产生第一变换数字输出向量;在存储单元中储存第一变换数字输出向量;以及通过控制器输出基于第一变换数字输出向量所产生的人工神经网络输出。
[0329]
方法的实施例可包括以下特征的一个或多个。例如,接收人工神经网络计算请求可包括通过通信信道从计算机接收人工神经网络计算请求。
[0330]
在一些实施例中,产生第一多个调制器控制信号可包括通过数字模拟转换(dac)单元产生第一多个调制器控制信号。
[0331]
在一些实施例中,得到第一多个数字输出可包括从模拟数字转换(adc)单元得到第一多个数字输出。
[0332]
在一些实施例中,方法可包括:将第一多个调制器控制信号施加至耦合到光源和dac单元的多个光调制器;以及使用多个光调制器通过基于多个调制器控制信号调制由激光单元所产生的多个光输出,来产生光输入向量。
[0333]
在一些实施例中,矩阵乘法单元可耦合至多个光调制器和dac单元,并且方法可包
括:使用矩阵乘法单元基于多个权重控制信号将光输入向量转换成模拟输出向量。
[0334]
在一些实施例中,adc单元可耦合至矩阵乘法单元,并且方法可包括:使用adc单元将模拟输出向量转换成第一多个数字输出。
[0335]
在一些实施例中,矩阵乘法单元可包括耦合至多个光调制器和dac单元的光矩阵乘法单元。将光输入向量转换成模拟输出向量可包括使用光矩阵乘法单元基于多个权重控制信号将光输入向量转换成光输出向量。方法可包括:使用耦合至光矩阵乘法单元的光电检测单元,产生对应光输出向量的多个输出电压。
[0336]
在一些实施例中,方法可包括:在输入波导阵列接收光输入向量;使用与输入波导阵列光学通信的光干涉单元,执行将光输入向量转换成第二光信号阵列的线性变换;以及使用与光干涉单元光学通信的输出波导阵列,引导第二光信号阵列,其中在输入波导阵列中的至少一个输入波导通过光干涉单元与在输出波导阵列中的每一个输出波导光学通信。
[0337]
在一些实施例中,光干涉单元可包括:多个互连马赫曾德尔干涉仪(mzi),多个互连mzi中的每一个mzi可包括第一移相器和第二移相器,并且第一移相器和第二移相器可耦合至多个权重控制信号。方法可包括:使用第一移相器改变mzi的分光比,并且使用第二移相器移动mzi的一个输出的相位。
[0338]
在一些实施例中,方法可包括:对于光输入向量的一个或多个光信号的至少两个子集中的每一个,使用一个或多个复制模块的相应一组将一个或多个光信号的子集分成两个或更多个光信号的副本;对于一个或多个光信号的第一子集的至少两个副本中的每一个,使用相应的乘法模块以使用光幅度调制将第一子集的一个或多个光信号乘以一个或多个矩阵元素值;以及对于两个或更多个乘法模块的结果,使用被配置为产生电信号的求和模块,电信号表示两个或更多个乘法模块的结果的总和。
[0339]
在一些实施例中,至少一个乘法模块可包括光幅度调制器,光幅度调制器包括一个输入端口和两个输出端口,并且可从两个输出端口提供一对相关光信号,使得相关光信号的幅度之间的差值对应于将输入值乘以有符号矩阵元素值的结果。
[0340]
在一些实施例中,方法可包括使用矩阵乘法单元将光输入向量乘以包括一个或多个矩阵元素值的矩阵。
[0341]
在一些实施例中,方法可包括在由一个或多个求和模块所产生的相应电信号上编码一组多个输出值,并且使用一组多个输出值中的输出值表示输出向量的元素,输出向量通过光输入向量乘以矩阵产生。
[0342]
在另一方面,一种方法包括:以电子格式提供输入信息;将至少一部分电子输入信息转换成光输入向量;基于矩阵乘法将光输入向量光电地转换成模拟输出向量;以及将非线性变换电子地应用于模拟输出向量,以提供电子格式的输出信息。
[0343]
方法的实施例可包括以下特征的一个或多个。例如,方法可进一步包括:对于对应以电子格式所提供的输出信息的新电子输入信息,重复电光转换、光电转换以及电应用的非线性变换。
[0344]
在一些实施例中,用于初始光电转换的矩阵乘法和重复光电转换的矩阵乘法可以是相同的,并且可对应人工神经网络的相同层。
[0345]
在一些实施例中,用于初始光电转换的矩阵乘法和重复光电转换的矩阵乘法可以是不同的,并且可对应人工神经网络的不同层。
[0346]
在一些实施例中,方法可进一步包括:对于电子输入信息的不同部分,重复电光转换、光电转换以及电应用的非线性变换,其中用于初始光电转换的矩阵乘法和重复光电转换的矩阵乘法是相同的,并且对应人工神经网络的第一层。
[0347]
在一些实施例中,方法可进一步包括:基于由人工神经网络的第一层所产生的用于电子输入信息的多个部分的电子输出信息,以电子格式提供中间信息;以及对于电子中间信息的不同部分的每一个,重复电光转换、光电转换以及电应用的非线性变换,其中用于初始光电转换的矩阵乘法和与电子中间信息的不同部分相关的重复光电转换的矩阵乘法是相同的,并且对应人工神经网络的第二层。
[0348]
在另一方面,提供了一种系统,用于执行人工神经网络计算。该系统包括:第一单元,被配置以产生多个向量控制信号,并且产生多个权重控制信号;第二单元,被配置以基于多个向量控制信号提供光输入向量;以及矩阵乘法单元,耦合至第二单元和第一单元,矩阵乘法单元被配置以基于多个权重控制信号将光输入向量转换成输出向量。系统包括控制器,控制器包括集成电路,被配置以执行以下操作:接收包括输入数据集和第一多个神经网络权重的人工神经网络计算请求,其中输入数据集包括第一数字输入向量;以及通过第一单元,基于第一数字输入向量产生第一多个向量控制信号,并且基于第一多个神经网络权重产生第一多个权重控制信号;其中第一单元、第二单元、矩阵乘法单元以及控制器被用于在多个迭代中重复的光电处理循环,并且光电处理循环包括:(1)至少两次光调制操作,以及(2)(a)电求和操作或(b)电储存操作中的至少一个。
[0349]
在另一方面,提供了一种方法,用于执行人工神经网络计算。方法包括:以电子格式提供输入信息;将至少一部分电子输入信息转换成光输入向量;以及使用一组神经网络权重,基于矩阵乘法将光输入向量转换成输出向量。所述提供和转换在光电处理循环中执行,使用不同相应组神经网络权重和不同相应输入信息,在多个迭代中重复光电处理循环,并且光电处理循环包括:(1)至少两次光调制操作,以及(2)(a)电求和操作或(b)电储存操作中的至少一个。
[0350]
在附图和以下描述中阐述了在本公开中所描述的主题的一个或多个实施例的细节。根据说明书、附图和权利要求书,本公开的其他特征、方面和优点将变得显而易见。
[0351]
除非另外定义,否则此处所使用的所有技术和科学术语具有与所属技术领域的普通技术人员通常理解的相同含义。如果与引用并入本文的专利申请或专利申请出版物相冲突,则以本公开(包括定义)为准。
附图说明
[0352]
当结合附图阅读时,从以下详细描述中可以最好地理解本公开。所要强调的是,根据惯例,附图的各种特征不是按比例的。相反地,为了清楚起见,各种特征的尺寸被任意扩大或缩小。
[0353]
图1a是人工神经网络(ann)计算系统的示例的示意图。
[0354]
图1b是光矩阵乘法单元的示例的示意图。
[0355]
图1c和图1d是互连马赫曾德尔干涉仪(mzi)的示例配置的示意图。
[0356]
图1e是mzi的示例的示意图。
[0357]
图1f是波分多路复用ann(wavelength division multiplexed ann)计算系统的
示例的示意图。
[0358]
图2a是示出用于执行ann计算的方法的示例的流程图。
[0359]
图2b是示出图2a的方法的一个方面的图。
[0360]
图3a和图3b是ann计算系统的示例的示意图。
[0361]
图4a是具有1比特内部分辨率(internal resolution)的ann计算系统的示例的示意图。
[0362]
图4b是图4a的ann计算系统的操作的数学表示。
[0363]
图5是人工神经网络(ann)计算系统的示例的示意图。
[0364]
图6是光矩阵乘法单元的示例的示意图。
[0365]
图7是人工神经网络(ann)计算系统的示例的示意图。
[0366]
图8是光矩阵乘法单元的示例的图。
[0367]
图9是人工神经网络(ann)计算系统的示例的示意图。
[0368]
图10是光矩阵乘法单元的示例的图。
[0369]
图11是紧凑矩阵乘法器单元(compact matrix multiplier unit)的示例的图。
[0370]
图12a示出了比较光子矩阵乘法器单元的图。
[0371]
图12b是紧凑互连干涉仪的图。
[0372]
图13是紧凑矩阵乘法器单元的图。
[0373]
图14是光生成对抗网络(optical generative adversarial network)的图。
[0374]
图15是马赫曾德尔干涉仪的图。
[0375]
图16、图17a以及图17b是光子电路的图。
[0376]
图18是光电计算系统的示例的示意图。
[0377]
图19a和图19b是示例系统配置的示意图。
[0378]
图20a是对称差分配置(symmetric differential configuration)的示例的示意图。
[0379]
图20b和图20c是系统模块的示例的电路图。
[0380]
图21a是对称差分配置的示例的示意图。
[0381]
图21b是系统配置的示例的示意图。
[0382]
图22a是示例光幅度调制器的示意图。
[0383]
图22b至图22d是在对称差分配置中使用光学检测的光幅度调制器的示例的示意图。
[0384]
图23a至图23c是示例系统配置的光电电路图。
[0385]
图24a至图24e是使用多个光电子系统的示例计算系统的示意图。
[0386]
图25是示出用于执行ann计算的方法的示例的流程图。
[0387]
图26和图27是ann计算系统的示例的示意图。
[0388]
图28是使用无源2d光矩阵乘法单元(passive 2d optical matrix multiplication unit)的神经网络计算系统的示例的示意图。
[0389]
图29是使用无源3d光矩阵乘法单元的神经网络计算系统的示例的示意图。
[0390]
图30是具有1比特内部分辨率的人工神经网络计算系统的示例的示意图,其中系统使用无源2d光矩阵乘法单元。
[0391]
图31是具有1比特内部分辨率的人工神经网络计算系统的示例的示意图,其中系统使用无源3d光矩阵乘法单元。
[0392]
图32a是人工神经网络(ann)计算系统的示例的示意图。
[0393]
图32b是光电矩阵乘法单元的示例的示意图。
[0394]
图33是示出用于使用光电处理器执行ann计算的方法的示例的流程图。
[0395]
图34是示出图33的方法的一个方面的图。
[0396]
图35a是使用光电处理器的波分多路复用ann计算系统的示例的示意图。
[0397]
图35b和图35c是波分多路复用光电矩阵乘法单元的示例的示意图。
[0398]
图36和图37是使用光电矩阵乘法单元的ann计算系统的示例的示意图。
[0399]
图38是具有1比特内部分辨率的人工神经网络计算系统的示例的示意图,其中系统使用光电矩阵乘法单元。
[0400]
图39a是马赫曾德尔调制器的示例的示意图。
[0401]
图39b是示出图39a的马赫曾德尔调制器的强度

电压曲线的曲线图。
[0402]
图40是零差检测器的示意图。
[0403]
图41是包括光纤的计算系统的示意图,其每一个光纤承载具有多个波长的信号。
[0404]
图42是调制值概率分布和调制器功率与调制值之间的示例关系的图。
[0405]
图43马赫曾德尔调制器的示例的图。
[0406]
图44电荷泵浦(charge

pump)带宽增强电路的示例的图。
[0407]
各图中相同的附图标记和名称表示相同的组件。
具体实施方式
[0408]
图1a示出了人工神经网络(ann)计算系统100的示例的示例的图。系统100包括控制器110、存储单元120、数字模拟转换(dac)单元130、光处理器140以及模拟数字转换(adc)单元160。控制器110耦合至计算机102、存储单元120、dac单元130以及adc单元160。控制器110包括集成电路,其被配置以控制ann计算系统100的操作来执行ann计算。
[0409]
控制器110的集成电路可以是特别配置以执行ann计算处理的步骤的专用集成电路。例如,集成电路可实现特定于执行ann计算处理的微代码或固件。如此一来,控制器110可以具有相对于用于传统计算机(例如计算机102)中的通用处理器的减少的指令集。在一些实施例中,控制器110的集成电路可包括两个或更多个电路,其被配置以执行ann计算处理的不同步骤。
[0410]
在ann计算系统100的示例操作中,计算机102可以对ann计算系统100发出人工神经网络计算请求。ann计算请求可包括定义ann的神经网络权重,以及由所提供的ann处理的输入数据集。控制器110接收ann计算请求,并将输入数据集和神经网络权重储存在存储单元120中。
[0411]
输入数据集可对应ann将要处理的各种数字信息。输入数据集的示例包括图像文件、音频(audio)文件、激光雷达(lidar)点云和gps坐标序列,并且将基于接收图像文件作为输入数据集来描述ann计算系统100的操作。通常来说,输入数据集的大小可以变化很大,从数百个数据点(data point)到数百万个数据点或更大。例如,具有1百万像素(megapixel)分辨率的数字图像文件具有大约一百万个像素,并且一百万个像素中的每一
个可以是由ann处理的数据点。由于在典型输入数据集中的大量数据点,输入数据集通常被分成较小尺寸的多个数字输入向量,以通过光处理器140来分别地处理。作为示例,对于灰度数字图像(greyscale digital image),数字输入向量的元素可为表示图像强度的8位值,并且数字输入向量可具有范围从数十元素(例如:32元素、64元素)到数百元素(例如:256元素、512元素)的长度。通常来说,任意大小的输入数据集可以被分成适合用于由光处理器140处理的大小的数字输入向量。在输入数据集的元素数量不能被数字输入向量的长度整除的情况下,可以使用零填充(zero padding)来填充数据集,以使其可被数字输入向量的长度整除。可以处理分别数字输入向量的处理输出以重建完整输出,其为通过ann处理输入数据集的结果。在一些实施例中,可以使用块矩阵乘法技术(block matrix multiplication technique)来实现将输入数据集分成多个输入向量和后续的向量级(vector

level)处理。
[0412]
神经网络权重是一组值,其定义ann的人工神经元的连接性(connectivity),包括那些连接的相对重要性或权重。ann可包括具有相应节点集的一个或多个隐藏层。在具有单一隐藏层的ann的情况下,ann可以由两组神经网络权重定义,一组对应输入节点与隐藏层的节点之间的连接性,第二组对应隐藏层与输出节点之间的连接性。描述连接性的每组神经网络权重对应于由光处理器140实现的矩阵。对于具有两个或更多个隐藏层的ann,需要额外组的神经网络权重来定义额外隐藏层之间的连接性。如此一来,在通常情况下,ann计算请求中包括的神经网络权重可包括多组神经网络权重,其表示ann的相应层之间的连接性。
[0413]
由于要处理的输入数据集通常被分成用于分别处理的多个较小的数字输入向量,因此输入数据集通常储存在数字存储中。然而,计算机102的存储和处理器之间的存储操作的速度明显慢于ann计算系统100可以执行ann计算的速率。例如,ann计算系统100可以在计算机102的典型存储器读取时段期间执行数十个到数百个ann计算。如此一来,在处理ann计算请求的过程期间,如果ann计算系统100的ann计算涉及系统100与计算机102之间的多个数据传输,则可被ann计算系统100执行的ann计算的速率可以被限制在其全部处理速率之下。例如,如果计算机102要从它自己的存储存取输入数据集,并且在请求时将数字输入向量提供给控制器110,则ann计算系统100的操作可能会因计算机102与控制器110之间所需的一系列数据传输所需的时间而大大减慢。值得注意的是,计算机102的存储存取延迟(latency)通常是非确定性的(non

deterministic),这进一步将数字输入向量可被提供给ann计算系统100的速度复杂化并且降低该速度。此外,计算机102的处理器周期可能在管理计算机102与ann计算系统100之间的数据传输时被浪费。
[0414]
相反,在一些实施例中,ann计算系统100将整个输入数据集储存在存储单元120中,存储单元120是ann计算系统100的一部分并且专用于ann计算系统100。专用的存储单元120允许存储单元120与控制器110之间的交易(transaction)特别适于允许存储单元120与控制器110之间平滑且不间断的数据流。通过允许光处理器140以其全部处理速率执行矩阵乘法,而不受传统计算机(例如计算机102)的慢速存储操作的限制,这种不间断的数据流可以显著地改善ann计算系统100的总吞吐量。此外,因为在执行ann计算中所需的所有数据是由计算机102在单一交易中提供给ann计算系统100的,所以ann计算系统100可以以独立于计算机102的独有方式执行其ann计算。这种ann计算系统100的独有操作减轻了计算机102
的计算负担,并且消除了在ann计算系统100的操作中的外部依赖性,提高了系统100和计算机102的性能。
[0415]
现在将描述ann计算系统100的内部操作。光处理器140包括激光单元142、调制器阵列144、检测单元146以及光矩阵乘法(optical matrix multiplication;omm)单元150。光处理器140通过将长度n的数字输入向量编码到长度n的光输入向量上并且通过omm单元150传播光输入向量来进行操作。omm单元150接收长度n的光输入向量,并且在光域(optical domain)中在接收的光输入向量上执行n
×
n矩阵乘法。由omm单元150所执行的n
×
n矩阵乘法由omm单元150的内部配置确定。omm单元150的内部配置可以由电信号控制,例如dac单元130所产生的电信号。
[0416]
可以以各种方式实现omm单元150。图1b示出了omm单元150的示例的示例的图。omm单元150可包括输入波导152的阵列以接收光输入向量;与输入波导152的阵列光学通信的光干涉单元154;以及与光干涉单元154光学通信的输出波导156的阵列。光干涉单元154将光输入向量线性变换成第二光信号阵列。输出波导156的阵列引导由光干涉单元154所输出的第二光信号阵列。输入波导152的阵列中的至少一个输入波导通过光干涉单元154与输出波导156的阵列中的每一个输出波导光学通信。例如,对于长度n的光输入向量,omm单元150可包括n个输入波导152和n个输出波导156。
[0417]
光干涉单元可包括多个互连的马赫曾德尔干涉仪(mzi)。图1c和图1d示出了互连mzi的示例的配置157和158的示例的图。mzi可以以各种方式互连(例如在配置157或158中)以实现通过输入波导152的阵列所接收的光输入向量的线性变换。
[0418]
图1e示出了mzi 170的示例的示例的图。mzi 170包括第一输入波导171、第二输入波导172、第一输出波导178以及第二输出波导179。此外,多个互连的mzi中的每一个mzi 170包括第一移相器174,第一移相器174被配置以改变mzi 170的分光比(splitting ratio);以及第二移相器176,被配置以移动mzi 170的一个输出的相位,例如通过第二输出波导179的离开mzi 170的光。mzi 170的第一移相器174和第二移相器176耦合至由dac单元130所产生的多个权重控制信号。第一移相器174和第二移相器176是omm单元150的可重新配置组件的示例。重新配置组件的示例包括热光移相器(thermo

optic phase shifter)或电光移相器(electro

optic phase shifter)。热光移相器通过加热波导来改变波导和包覆材料的折射率来操作,其转换为相位的变化。电光移相器通过施加电场(例如:铌酸锂(linbo3),反向偏置pn结)或电流(例如:正向偏置pin结)来操作,其改变了波导材料的折射率。通过改变权重控制信号,可以改变每一个互连的mzi 170的第一移相器174和第二移相器176的相位延迟,这重新配置omm单元150的光干涉单元154以实现由在整个光干涉单元154上布置的相位延迟所确定的特定矩阵乘法。omm单元150和光干涉单元154的额外实施例在标题为“apparatus and methods for optical neural network”的美国专利公开第us 2017/0351293a1号中公开,其由引用完全并入本文。
[0419]
通过激光单元142和调制器阵列144产生光输入向量。长度n的光输入向量具有n个独立的光信号,每一个光信号的强度对应长度n的数字输入向量的相应元素的值。作为示例,激光单元142可以产生n个光输出。n个光输出具有相同的波长,并且是光学相干的(optically coherent)。光输出的光学相干性允许光输出彼此光干涉,这是omm单元150所利用的特性(例如:在mzi的操作中)。此外,激光单元142的光输出可以彼此基本相同。例如,
n个光输出可在它们的强度(例如:在5%内、3%内、1%内、0.5%内、0.1%内或0.01%内)中和它们的相对相位(例如:在10度内、5度内、3度内、1度内、0.1度内)中为基本均匀的。光输出的均匀性可以改善光输入向量对数字输入向量的忠实性(faithfulness),从而改善光处理器140的整体精确度。在一些实施例中,激光单元142的光输出可具有每个输出0.1mw至50mw的光功率、近红外光范围的波长(例如:900nm至1600nm之间)以及小于1nm的线宽。激光单元142的光输出可以是单一横向模式(transverse

mode)光输出。
[0420]
在一些实施例中,激光单元142包括单一激光源和光功率分离器(optical power splitter)。单一激光源被配置以产生激光光。光功率分离器被配置以将由激光源所产生的光分成具有基本相同强度和相位的n个光输出。通过将单一激光输出分成多个输出,可以实现多个光输出的光学相干性。例如,单一激光源可以是半导体激光二极管、垂直腔表面发射激光器(vertical

cavity surface

emitting laser;vcsel)、分布反馈(distributed feedback;dfb)激光器或分布式布拉格反射器(distributed bragg reflector;dbr)激光。例如,光功率分离器可以是1:n多模干涉(multimode interference;mmi)分离器、包括多个1:2mmi分离器或定向耦合器的多级分离器(multi

stage splitter)、或星型耦合器(star coupler)。在一些其它实施例中,可使用主从激光配置(master

slave laser configuration),其中从属激光由主要激光注入锁定(injection locked),以对主要激光具有稳定的相位关系。
[0421]
激光单元142的光输出耦合至调制器阵列144。调制器阵列144被配置以接收来自激光单元142的光输入,并且基于调制器控制信号(其为电信号)来调制所接收的光输入的强度。调制器的示例包括马赫曾德尔干涉(mzi)调制器、环形共振调制器(ring resonator modulator)以及电吸收调制器(electro

absorption modulator)。调制器阵列144具有n个调制器,每一个调制器接收激光单元142的n个光输出中的一个。调制器接收对应数字输入向量的元素的控制信号,并且调制光的强度。控制信号可由dac单元130产生。
[0422]
dac单元130被配置以在控制器110的控制下产生多个调制器控制信号并产生多个权重控制信号。例如,dac单元130从控制器110接收第一dac控制信号,第一dac控制信号对应将由光处理器140处理的数字输入向量。dac单元130基于第一dac控制信号产生调制器控制信号,调制器控制信号是适于驱动调制器阵列144和omm 150的模拟信号。例如,模拟信号可以是电压或电流,取决于阵列144的调制器的技术和设计。电压可具有范围从
±
0.1v到
±
10v的幅度,并且电流可具有范围从100μa到100ma的幅度。在一些实施例中,dac单元130可包括调制器驱动器,其被配置以缓冲、放大或调节模拟信号,使得阵列144的调制器和omm 150可被充分驱动。例如,某些类型的调制器可以用差分控制信号驱动。在这种情况下,调制器驱动器可以是差分驱动器,其基于单端(single

ended)输入信号产生差分电输出。作为另一示例,某些类型的调制器可具有3db带宽,其小于光处理器140的期望处理速率。在这种情况下,调制器驱动器可包括预加重电路(pre

emphasis circuit)或其他带宽增强电路,其被设计以扩展调制器的操作带宽。例如,这种带宽增强对于基于pin二极管结构的调制器可以是有用的,pin二极管结构是正向偏置的,以使用载流子注入来调制引导被调制的光波的波导的一部分的折射率。例如,如果调制器是mzi调制器,则pin二极管结构可用于在mzi调制器的一个或两个波导臂中实现移相器。将移相器配置为正向偏置操作有利于较短的调制器长度和更紧凑的总体设计,这对于具有大量调制器的omm单元150可能是有用的。
[0423]
例如,在带宽增强的预加重形式(pre

emphasis form)中,可以将驱动调制器的模拟电信号(例如:电压或电流)整形为包括瞬间脉冲(transient pulse),瞬间脉冲使模拟信号水平的变化过冲(overshoot),该模拟信号水平表示一系列数字数据值(digital data value)中的dac控制信号的给定数字数据值。每一个数字数据值可具有任意数量的比特,包括单一1比特数据值,如本示例其余部分所假定的那样。因此,如果比特的数值与先前的数值相同,则驱动调制器的模拟电信号被维持在稳态水平(steady

state level)(例如:比特值为0的信号水平x0和比特值为1的较高信号水平x1)。然而,如果比特从0变成1,则用于驱动调制器的对应模拟电信号可包括瞬间脉冲,该瞬间脉冲在稳定为稳态值x1之前,在比特转变(bit transition)的一开始具有峰值x1+(x1‑
x0)。同样地,如果比特从1变成0,则用于驱动调制器的对应模拟电信号可包括一个瞬间脉冲,该瞬间脉冲在稳定为稳态值x0之前,在比特转变的一开始具有峰值x0+(x0‑
x1)。可以选择瞬间脉冲的大小和长度以优化带宽增强(例如:最大化不归零(nrz)调制模式的眼图(eye diagram)的开放区域)。
[0424]
在带宽增强的电荷泵浦形式中,可以将驱动调制器的模拟电流信号整形为包括移动精确确定的电荷量的瞬间脉冲。图44示出了电荷泵浦带宽增强电路,电荷泵浦带宽增强电路使用串联连接在电压源和调制器之间的电容来精确控制电荷流。图44所示的电路的一部分可包括在上面所述的调制器驱动器中。在该实施例中,调制器由调制器电路4400表示,调制器电路4400将调制器的移相器的电特性建模为pin二极管。调制器电路4400包括理想二极管、具有电容c
d
的电容器以及具有电阻r的电阻器的并联连接。泵浦电容器(pump capacitor)4402具有电容c
p
。控制电压波形4404被提供给反相器电路(inverter circuit)4405,以产生驱动电压波形4406,其幅度可以被精确地校准以通过泵浦电容器4402将预定量的电荷移入或移出调制器电路4400。通过在端子4408施加恒定电压vdd_io,对调制器电路4400建模的pin二极管进行正向偏置。在反相器4405的端子4410施加电荷泵浦控制电压vcp,以控制在驱动电压波形4406的转变时泵浦的电荷量,以及由调制器施加的对应光相移。
[0425]
可以在操作之前调整电荷泵浦控制电压vcp的数值,使得储存在电荷泵浦电容器4402中的标称电荷(nominal charge)q基于电容c
p
(例如:由于制造期间的不确定性,可能会有一些可变性(variability))的测量值被精确地校准。例如,电压vcp可等于标称电荷q除以电容c
p
。与pin二极管相交的一部分波导的折射率的引起的变化可接着提供引导光波的相移,相移与在pin二极管和电荷泵浦电容4402之间移动的电荷量q(例如:通过内部电容c
d
储存)成线性比例。如果驱动电压从低值变为高值,则从电荷泵浦电容4402流入到pin二极管的电流会在短时间内传递预定量的电荷(即正电流随时间的积分)。如果驱动电压从高值变为低值,则从pin二极管流入到电荷泵浦电容4402的电流会在短时间内移除预定量的电荷(即负电流随时间的积分)。在此相对短的开关时间(switching time)之后,由电流源4412提供稳态电流,电流源4412由开关4414控制,以替换由于在保持驱动电压的同时内部电容通过内部电阻r损失电流而丢失的电荷(例如:在特定数字值的保持时间期间)。使用这种电荷泵浦配置可具有优点,例如比其他技术(包括一些预加重技术)更好的精度,因为在短开关时间内移动的电荷量取决于恒定的物理参数(c
p
)和稳态控制值(vcp),并因此精确可控且可重复。
[0426]
在一些实施例中,可通过设计调制器阵列144的调制器和/或omm单元150来实现降
低的功耗,使得当操作调制器以产生表示更常出现的系数的调制值时消耗更少的功率,并且当操作调制器以产生表示更不常出现的系数的调制值时消耗更多的功率。例如,对于已知具有某些特性的某些数据集,可以降低功耗。图42示出了用于调制器阵列144的调制器和/或omm单元150的特定设计的叠加在调制器功率图4202(实线)上的调制值概率分布图4200(虚线)。这两个图都是以标准化单位(normalized unit)表示的调制值(在水平轴上)的函数,以代表

1和1之间的系数。在该实施例中,数据集包括用于人工神经网络计算的各种系数(例如:向量系数和/或矩阵系数),使得系数的概率分布函数(probability distribution functio;pdf)对于较小的系数(即绝对值相对较小的系数)产生较高的概率(并因此实例更加频繁)。对于这种数据集(“低系数权重数据集”),可以通过设计调制器以达到降低的功耗,使得调制器在较低功率状态下操作以使用较小的系数(在数据集中出现的频率较高)进行计算,而在较高功率状态下操作以使用较大的系数(在数据集中出现的频率较低)进行计算。
[0427]
一些光幅度调制器使用相对较高的功率以通过小的调制值来调制光信号。例如,对于相干非敏感光幅度调制器,接近零的调制值可能需要相对较高的调制器功率,例如对于电吸收调制器,对于大吸收光功率,电吸收调制器需要以相对较高的电流来驱动基于二极管的吸收器,以降低调制光信号的光幅度。对于相干敏感光幅度调制器,接近零的调制值可能需要相对较高的调制器功率,例如对于mzi调制器,mzi调制器需要以相对较高的电流来驱动基于二极管的移相器,以在两个mzi臂之间提供用于破坏性光干涉的相对相移,从而降低了调制信号的光幅度。
[0428]
可以配置光幅度调制器以克服此功率关系并实现如图42所示的调制器功率,其将低功率调制器状态分配至接近零的调制值。例如,如图43所示,mzi调制器4300可被配置具有不对称臂,不对称臂提供内置被动相对相移(built

in passive relative phase shift)(例如:180度附近的相移),使得对于破坏性光干涉仅需要较小的主动相对相移(并因此需要低调制器功率)。mzi调制器4300包括输入分光器4302,其将进入的光信号分离以将50%的功率提供给第一臂,并且将50%的功率提供给第二臂。第一臂中的有源移相器4304提供了一种使用可变相移以在可能值(possible value)(在该实施例中,对于在0和1之间的无符号调制值)的范围内改变调制值的方法。可变相移是基于施加的电信号的大小确定的,其要求一定量的供应电功率(例如:由在第一臂的波导之内或附近的掺杂半导体材料形成的基于二极管的移相器)。即使没有电力施加到mzi调制器4300,第二臂中的被动移相器4306也提供在第一臂和第二臂之间的相对相移。例如,具有高折射率的光学材料可被配置以在臂之间施加180度的相对相移,使得输出光组合器4308提供光干涉,使得没有明显的光功率耦合到其输出。可以实现有源移相器和被动移相器的多种替代配置,包括(但不限于):有源移相器和被动移相器两者可在一个臂中,而另一臂中没有调制器或移相器;两个臂都可具有有源移相器和被动移相器(在推挽式布置(push

pull arrangement)中);或两个臂都可具有有源移相器,而一个臂可以具有被动移相器。
[0429]
可替代地,根据本文所述的对称差分配置来配置的mzi调制器可用于仅使用小主动相对相移(并因此低调制器功率)来提供接近零的系数。例如,图22a示出了使用根据对称差分配置来配置的mzi所构建的光幅度调制器,其中如图22b所示检测光输出。低调制功率被用于执行具有低幅度(即绝对值)的调制值的乘法(使用光幅度调制)。具体地,施加到相
位调制器2204的低功率对应低幅度调制值的调制,从而在耦合器2206的输出中产生对应接近均等的分离(例如,接近50%/50%),并且在结点2216产生低幅度电流,代表乘法的结果。对称差分配置还具有能够提供

1至+1之间的有符号调制值的优势(如下面更详细的描述)。尽管此实现在mzi的单一臂中使用了相位调制器,但其他实现可具有其他配置,例如在两个臂中都具有相位调制器的推挽式布置,以提供相反符号的相移。
[0430]
在图42中所示的示例功率分布中示出了零调制功率被用于实现零调制值,但是在其他实施例中,在零调制值可能存在残留的低但非零的调制功率。对于这些低系数权重数据集,通常可通过使用调制器来实现降低的功耗,调制器被设计使得调制器使用相对调制值的绝对值增加的功率通过调制值调制光信号。随着调制值的大小增加,随着调制值而变化的调制功率的精确形状对于不同的实现可能有所不同,并且不一定是线性增加。光幅度调制器中可能存在不同功耗元件,它们对总体功耗做出了贡献。在一些实施例中,调制器被设计为使得它们使用相对于调制值的绝对值单调增加的功率,通过调制值来调制光信号。
[0431]
在一些情况下,阵列144的调制器和/或omm 150可具有非线性传递函数。例如,mzi光调制器可以在施加的控制电压与其传输之间具有非线性关系(例如:正弦依赖性(sinusoidal dependence))。在这种情况下,可以基于调制器的非线性传递函数来调整或补偿第一dac控制信号,使得数字输入向量与所产生的光输入向量之间的线性关系可被保持。保持这种线性通常对于确保omm单元150的输入是数字输入向量的精确表示是重要的。在一些实施例中,第一dac控制信号的补偿可以由控制器110通过查找表来执行,查找表将数字输入向量的值映射到dac单元130所要输出的值,使得得到的调制的光信号与数字输入向量的元素成线性比例。可以通过表征(characterizing)调制器的非线性传递函数并且计算非线性传递函数的反函数(inverse function)来产生查找表。
[0432]
在一些实施例中,调制器的非线性和在所产生的光输入向量中所得到的非线性可以通过ann计算算法来补偿。
[0433]
由调制器阵列144所产生的光输入向量被输入至omm单元150。光输入向量可以是n个空间分离的光信号,其每一个光信号具有对应数字输入向量的元素的光功率。例如,光信号的光功率通常在1μw至10mw的范围内。omm单元150接收光输入向量,并且基于其内部配置执行n
×
n矩阵乘法。内部配置由dac单元130所产生的电信号来控制。例如,dac单元130从控制器110接收第二dac控制信号,第二dac控制信号对应将由omm单元150实现的神经网络权重。dac单元130基于第二dac控制信号产生权重控制信号,权重控制信号是适于控制omm单元150内的可重新配置组件的模拟信号。例如,模拟信号可以是电压或电流,取决于omm单元150的重新配置组件的类型。电压可具有范围从0.1v到10v的幅度,并且电流可具有范围从100μa到10ma的幅度。
[0434]
调制器阵列144可以以与可重新配置omm单元150的重新配置速率不同的调制速率来操作。由调制器阵列144产生的光输入向量以光速的大致比例(例如:光速的80%、50%或25%)传播通过omm单元,这取决于omm单元150的光学特性(例如:有效折射率(effective index))。对于典型的omm单元150,光输入向量的传播时间在1到数10皮秒的范围内,其对应于处理速率的数10到数100ghz。如此一来,光处理器140可以执行矩阵乘法操作的速率部分地受到可以产生光输入向量的速率的限制。具有数10ghz的带宽的调制器是容易获得的,并且具有超过100ghz的带宽的调制器正在开发。如此一来,例如,调制器阵列144的调制速率
可以在5ghz、8ghz或数10ghz至数100ghz的范围内。为了以这样的调制速率维持调制器阵列144的操作,控制器110的集成电路可被配置以大于或等于例如5ghz、8ghz、10ghz、20ghz、25ghz、50ghz或100ghz的速率来输出用于dac单元130的控制信号。
[0435]
取决于由omm单元150实现的可重新配置组件的类型,omm单元150的重新配置速率可以明显慢于调制速率。例如,omm单元150的可重新配置组件可以是热光型,其使用微加热器来调整omm单元150的光波导的温度,其反过来影响omm单元150内的光信号的相位并且导致矩阵乘法。由于与结构的加热和冷却相关的热时间常数(thermal time constant),重新配置速率可以被限制为数100khz至数10mhz。如此一来,用于控制调制器阵列144的调制器控制信号和用于重新配置omm单元150的权重控制信号可能具有显著不同的速度要求。此外,调制器阵列144的电特性可以与omm单元150的可重新配置组件的电特性显著不同。
[0436]
为了适应调制器控制信号和权重控制信号的不同特性,在一些实施例中,dac单元130可包括第一dac子单元132和第二dac子单元134。第一dac子单元132可被具体布置以产生调制器控制信号,第二dac子单元134可被具体布置以产生权重控制信号。例如,调制器阵列144的调制速率可以是25ghz,并且第一dac子单元132可具有每秒25千兆采样(giga

samples per second;gsps)的每信道输出更新速率(per

channel output update rate)和8位或更高的分辨率。omm单元150的重新配置速率可以是1mhz,并且第二dac子单元134可具有每秒1兆采样(mega

samples per second;msps)的输出更新速率和10位的分辨率。实现分开的第一dac子单元132和第二dac子单元134允许针对相应信号独立优化dac子单元,这可以降低dac单元130的总功率消耗、复杂性、成本或其组合。值得注意的是,虽然第一dac子单元132和第二dac子单元134被描述为dac单元130的子组件,但是通常来说,第一dac子单元132和第二dac子单元134可以集成成在公共芯片(common chip)上,或者可以实现为分开的芯片。
[0437]
基于第一dac子单元132和第二dac子单元134的不同特性,在一些实施例中,存储单元120可包括第一存储子单元和第二存储子单元。第一存储子单元可以是专用于储存输入数据集和数字输入向量的存储器,并且可具有足以支持调制速率的操作速度。第二存储子单元可以是专用于储存神经网络权重的存储器,并且可以具有足以支持omm单元150的重配置速率的操作速度。在一些实施例中,第一存储子单元可使用sram来实施,并且第二存储子单元可使用dram来实施。在一些实施例中,第一存储子单元和第二存储子单元可使用dram来实施。在一些实施例中,第一存储单元可实施作为控制器110的一部分或作为控制器110的缓存(cache)。在一些实施例中,第一和第二存储子单元可以由单一物理存储装置作为不同的地址空间来实施。
[0438]
omm单元150输出长度n的光输出向量,其对应于光输入向量和神经网络权重的n
×
n矩阵乘法的结果。omm单元150耦合至检测单元146,检测单元146被配置以产生对应光输出向量的n个光信号的n个输出电压。例如,检测单元146可包括n个光电检测器的阵列(其被配置以吸收光信号并产生光电流)以及n个跨阻放大器(transimpedance amplifier)的阵列(其被配置以将光电流转换成输出电压)。可以基于调制器阵列144的调制速率来布置光电检测器和跨阻放大器的带宽。光电检测器可以基于所检测的光输出向量的波长由各种材料形成。用于光电检测器的材料的示例包括锗、硅锗合金和铟镓砷(ingaas)。
[0439]
检测单元146耦合至adc单元160。adc单元160被配置以将n个输出电压转换成n个
数字光输出,n个数字光输出是输出电压的量化数字表示。例如,adc单元160可以是n通道adc。控制器110可以从adc单元160得到对应光矩阵乘法单元150的光输出向量的n个数字光输出。控制器110可以从n个数字光输出形成长度n的数字输出向量,其对应长度n的输入数字向量的n
×
n矩阵乘法的结果。
[0440]
ann计算系统100的各种电子部件可以以各种方式集成。例如,控制器110可以是制造在半导体晶粒上的专用集成电路。其他电子部件(例如存储单元120、dac单元130、adc单元160或其组合)可以单片集成在其上制造控制器110的半导体晶粒上。作为另一示例,可以将两个或更多个电子部件集成成片上系统(system

on

chip;soc)。在soc的实施例中,控制器110、存储单元120、dac单元130、adc单元160可以制造在相应的晶粒上,并且相应的晶粒可以集成在提供集成部件之间的电连接的公共平台(例如:插入器(interposer))上。相对于在印刷电路板(printed circuit board;pcb)上分开地布置和布线部件的方法,这种soc方法可以允许ann计算系统100的电子部件之间更快的数据传输,从而提高ann计算系统100的操作速度。此外,soc方法可以允许使用用于不同电子部件优化的不同制造技术,其可以改善不同部件的性能并且降低单片集成方法的总体成本。虽然已经描述了控制器110、存储单元120、dac单元130以及adc单元160的集成,但是通常来说,可以集成部件的子集,而由于各种原因(例如性能或成本)将其他部件实现为分离部件。例如,在一些实施例中,存储单元120可与控制器110集成为控制器110内的功能块(functional block)。
[0441]
ann计算系统100的各种光学部件也可以以各种方式集成。ann计算系统100的光学部件的示例包括激光单元142、调制器阵列144、omm单元150以及检测单元146的光电检测器。这些光学部件可以以各种方式集成,以改善性能和/或降低成本。例如,激光单元142、调制器阵列144、omm单元150以及光电检测器可以单片地集成在作为光子集成电路(photonic integrated circuit;pic)的公共半导体基板上。在基于化合物半导体材料系统(例如:iii

v族化合物半导体(例如磷化铟(inp)))形成的光子集成电路上,激光、调制器(例如电吸收调制器)、波导以及光电检测器可以单片地集成在单一晶粒上。这种单片集成方法可以降低对准各种分离光学部件的输入和输出的复杂性,这可能需要范围从亚微米(sub

micron)到几微米的对准精确度。作为另一示例,激光单元142的激光源可以制造在化合物半导体晶粒上,而激光单元142的光功率分离器、调制器阵列144、omm单元150以及检测单元146的光电检测器可以制造在硅晶粒上。在硅晶圆上制造的pic(可称为硅光子技术)相对于基于iii

v族的pic,通常具有更大的集成密度、更高的平版印刷(lithographic)分辨率和更低的成本。这种更大的集成密度在omm单元150的制造中可能是有益的,因为omm单元150通常包括数10到数100的光学部件,例如功率分离器和移相器。此外,硅光子技术的较高平版印刷分辨率可以减少omm单元150的制造差异,从而提高omm单元150的精确度。
[0442]
ann计算系统100可以以各种形式因素实现。例如,ann计算系统100可以实现为插入主计算机(host computer)的协同处理器(co

processor)。这种ann计算系统100可具有例如快速pci(pci express)卡的形式因素并且通过pcie总线与主计算机通信。主计算机可以主持(host)多个协同处理器类型的ann计算系统100,并通过网络连接至计算机102。这种类型的实施例可适用于云端数据中心,其中服务器机架可以专用于处理从其他计算机或服务器接收的ann计算请求。作为另一实施例,协同处理器类型的ann计算系统100可以直接插入发出ann计算请求的计算机102中。
[0443]
在一些实施例中,ann计算系统100可以集成至需要实时ann计算能力的物理系统上。例如,严重依赖于实时人工智能任务(real

time artificial intelligence task)的系统(例如自动驾驶交通工具、自主无人机(autonomous drone)、对象或脸部识别安全照相机以及各种物联网(internet

of

things;iot)装置)可以受益于使ann计算系统100直接与这种系统的其他子系统集成。具有直接集成的ann计算系统100可以在具有较差或没有网络连接的设备中实现实时人工智能,并且增强关键任务人工智能系统的可靠性和可用性。
[0444]
虽然dac单元130和adc单元160被显示耦合至控制器110,但是在一些实施例中,dac单元130、adc单元160或两者可替换地或另外地耦合至存储单元120。例如,dac单元130或adc单元160的直接存储器访问(direct memory access;dma)操作可以减少控制器110上的计算负担,并且减少读取和写入存储单元120的延迟,从而进一步提高ann计算单元100的操作速度。
[0445]
图2示出了用于执行ann计算的处理200的示例的流程图。处理200的步骤可以由控制器110执行。在一些实施例中,处理200的相应步骤可以并行、组合、循环或以任何顺序运行。
[0446]
在步骤210,接收包括输入数据集和第一多个神经网络权重的人工神经网络(ann)计算请求。输入数据集包括第一数字输入向量。第一个数字输入向量是输入数据集的子集。例如,它可以是图像的子区域。ann计算请求可以由各种实体(例如计算机102)产生。计算机可包括各种类型的计算装置中的一个或多个,例如个人计算机、服务器计算机、交通工具计算机(vehicle computer)和飞行计算机(flight computer)。ann计算请求通常是指将要执行ann的计算通知或告知给ann计算系统100的电信号。在一些实施例中,ann计算请求可以被分为两个或更多个信号。例如,第一信号可以询问(query)ann计算系统100以检查系统100是否准备好接收输入数据集和第一多个神经网络权重。响应于系统100的肯定应答,计算机可以传输包括输入数据集和第一多个神经网络权重的第二信号。
[0447]
在步骤220中,储存输入数据集和第一多个神经网络权重。控制器110可以将输入数据集和第一多个神经网络权重储存在存储单元120中。在存储单元120中储存输入数据集和第一多个神经网络权重可以允许ann计算系统100的操作中的灵活性,这例如可以改善系统的整体性能。例如,通过从存储单元120取得(retrieve)输入数据集的期望部分,可以将输入数据集分为设定大小和格式的数字输入向量。输入数据集的不同部分可以以各种顺序处理,或者被混洗(shuffled),以允许执行各种类型的ann计算。例如,在输入和输出矩阵大小不同的情况下,混洗可以允许通过块矩阵乘法技术执行矩阵乘法。作为另一示例,将输入数据集和第一多个神经网络权重储存在存储单元120中可以允许通过ann计算系统100对多个ann计算请求进行排队,这可以允许ann计算系统100以其全速维持操作而没有不活动的时段。
[0448]
在一些实施例中,输入数据集可以储存在第一存储子单元中,并且第一多个神经网络权重可以储存在第二存储子单元中。
[0449]
在步骤230中,基于第一数字输入向量产生第一多个调制器控制信号,并且基于第一多个神经网络权重产生第一多个权重控制信号。控制器110可以将第一dac控制信号传输至dac单元130,以产生第一多个调制器控制信号。dac单元130基于第一dac控制信号产生第一多个调制器控制信号,并且调制器阵列144产生表示第一数字输入向量的光输入向量。
function),x^2函数以及|x|函数。由控制器110对第一数字输出执行这种非线性变换,以产生第一变换数字输出向量。在一些实施例中,非线性变换可由控制器110内的专用数字集成电路执行。例如,控制器110可包括一个或多个模块或电路块,其特别适于加速一种或多种类型的非线性变换的计算。
[0457]
在步骤260中,储存第一变换数字输出向量。控制器110可以将第一变换数字输出向量储存在存储单元120中。在输入数据集被分成多个数字输入向量的情况下,第一变换数字输出向量对应例如第一数字输入向量的输入数据集的一部分的ann计算结果。如此一来,储存第一变换数字输出向量允许ann计算系统100在输入数据集的其他数字输入向量上执行和储存额外计算,以在稍后被聚合成单一ann输出。
[0458]
在步骤270中,输出基于第一变换数字输出向量产生的人工神经网络输出。控制器110产生ann输出,其是通过由第一多个神经网络权重所定义的ann处理输入数据集的结果。在输入数据集被分成多个数字输入向量的情况下,所产生的ann输出是包括第一转换数字输出的聚合输出,但是可进一步包括对应输入数据集的其他部分的额外转换数字输出。一旦产生ann输出,就将所产生的输出传输至发起ann计算请求的计算机(例如计算机102)。
[0459]
可以为实现处理200的ann计算系统100定义各种性能指标(performance metric)。定义性能指标可以允许将实现光处理器140的ann计算系统100的性能与用于替代实现电矩阵乘法单元(electronic matrix multiplication unit)的ann计算的其他系统的性能进行比较。在一个方面,可以执行ann计算的速率可以部分地由第一循环时段指示,第一循环时段定义为在存储单元中储存输入数据集和第一多个神经网络权重的步骤220与在存储单元中储存第一变换数字输出向量的步骤260之间所经过的时间。因此,第一循环时段包括将电信号转换成光信号(例如:步骤230)、在光域中执行矩阵乘法、以及将结果转换回电域(例如:步骤240)所花费的时间。步骤220和260都涉及将数据储存至存储单元120中,这是在ann计算系统100和没有光处理器140的传统ann计算系统之间共享的步骤。如此一来,测量存储器到存储器交易时间(memory

to

memory transaction time)的第一循环时段可以允许在ann计算系统100与没有光处理器140的ann计算系统(例如实现电矩阵乘法单元的系统)之间进行ann计算吞吐量的实际或公平比较。
[0460]
由于调制器阵列144可以产生光输入向量的速率(例如:在25ghz)和omm单元150的处理速率(例如:>100ghz),用于执行单一数字输入向量的单一ann计算的ann计算系统100的第一循环时段可以接近调制器阵列144的速度的倒数(例如40ps)。在考虑与dac单元130的信号产生和adc单元160的adc转换相关联的延迟之后,第一循环时段可以例如小于或等于100ps、小于或等于200ps、小于或等于500ps、小于或等于1ns、小于或等于2ns、小于或等于5ns、或小于或等于10ns。
[0461]
作为比较,电矩阵乘法单元的m
×
1向量和m
×
m矩阵的乘法运行时间通常与m^2

1个处理器时钟周期(processor clock cycle)成比例。对于m=32,这种乘法将花费大约1024个周期,其在3ghz时钟速度下导致运行时间超过300ns,这比ann计算系统100的第一循环时段慢几个数量级。
[0462]
在一些实施例中,处理200进一步包括基于第一变换数字输出向量产生第二多个调制器控制信号的步骤。在一些类型的ann计算中,单一数字输入向量可以通过相同的ann重复传播或由相同的ann处理。实现多通处理(multi

pass processing)的ann可以称为递
归神经网络(recurrent neural network;rnn)。rnn是神经网络,其中在第(k)次通过神经网络期间网络的输出被再循环回到神经网络的输入并且在第(k+1)次通过期间被用作输入。rnn可以在模式识别任务中具有各种应用,例如语音或手写识别。一旦产生了第二多个调制器控制信号,处理200就可以从步骤240进行到步骤260,以完成第一数字输入向量第二通ann。通常来说,根据在ann计算请求中所接收的rnn的特性,可以针对预定数量的循环,重复将转换的数字输出再循环为数字输入向量。
[0463]
在一些实施例中,处理200进一步包括基于第二多个神经网络权重产生第二多个权重控制信号的步骤。在一些情况下,人工神经网络计算请求进一步包括第二多个神经网络权重。通常来说,除了输入层和输出层之外,ann还具有一个或多个隐藏层。对于具有两个隐藏层的ann,第二多个神经网络权重可对应ann的第一层与ann的第二层之间的连接性。为了通过ann的两个隐藏层处理第一数字输入向量,可以首先根据处理200处理第一数字输入向量直到步骤260,其中在步骤260通过ann的第一隐藏层处理第一数字输入向量的结果储存在存储单元120中。接着控制器110重新配置omm单元150以执行对应与ann的第二隐藏层相关联的第二多个神经网络权重的矩阵乘法。一旦omm单元150被重新配置,处理200可以基于第一变换数字输出向量产生多个调制器控制信号,其产生对应第一隐藏层的输出的更新的光输入向量。接着更新的光输入向量由重新配置的omm单元150处理,omm单元150对应ann的第二隐藏层。通常来说,所述的步骤可以重复直到已经通过ann的所有隐藏层处理了数字输入向量。
[0464]
如上面所述,在omm单元150的一些实施例中,omm单元150的重新配置速率可明显慢于调制器阵列144的调制速率。在这种情况下,ann计算系统100的吞吐量可能受到在不能执行ann计算期间,重新配置omm单元150所花费的时间量的不利影响。为了减轻omm单元150的相对慢的重新配置时间的影响,可以利用批量处理(batch processing)技术,其中两个或更多个数字输入向量传播通过omm单元150而没有配置改变,以将重新配置时间分摊(amortize)在更大数量的数字输入向量上。
[0465]
图2b示出了说明图2a的处理200的方面的图290。对于具有两个隐藏层的ann,代替通过第一隐藏层处理第一数字输入向量、重新配置omm单元150用于第二隐藏层、通过重新配置的omm单元150处理第一数字输入向量、以及对剩余的数字输入向量重复相同的操作,可以首先通过对第一隐藏层(配置#1)配置的omm单元150来处理输入数据集的所有数字输入向量,如图290的上部所示。一旦通过具有配置#1的omm单元150处理了所有数字输入向量,则将omm单元150重新配置成配置#2,其对应ann的第二隐藏层。此重新配置可以明显慢于omm单元150可以处理输入向量的速率。一旦omm单元150被重新配置用于第二隐藏层,来自先前隐藏层的输出向量可以由omm单元150批量处理。对于具有数十或数十万个数字输入向量的大输入数据集,可以通过大致相同的因素来减少重新配置时间的影响,这可以显著减少ann计算系统100在重新配置中花费的时间部分。
[0466]
为了实现批量处理,在一些实施例中,处理200进一步包括通过dac单元基于第二数字输入向量产生第二多个调制器控制信号的步骤;从adc单元得到对应于光矩阵乘法单元的光输出向量的第二多个数字光输出的步骤,第二多个数字光输出形成第二数字输出向量;对第二数字输出向量执行非线性变换以产生第二变换数字输出向量的步骤;以及在存储单元中储存第二变换数字输出向量的步骤。例如,产生第二多个调制器控制信号可以在
步骤260之后。此外,在这种情况下的步骤270的ann输出现在是基于第一变换数字输出向量和第二变换数字输出向量。获取、执行和储存步骤类似于步骤240到步骤260。
[0467]
批量处理技术是用于提高ann计算系统100的吞吐量的多种技术之一。用于提高ann计算系统100的吞吐量的另一种技术是通过利用波分多路复用(wavelength division multiplexing;wdm)并行处理多个数字输入向量。wdm是通过公共传播信道(例如omm单元150的波导)同时传播不同波长的多个光信号的技术。与电信号不同,不同波长的光信号可以通过公共信道传播,而不会影响在同一信道上不同波长的其他光信号。此外,可以使用诸如光学多路复用器(multiplexer)和多路分解器(demultiplexer)的公知结构从公共传播信道添加(多路复用(multiplexed))或丢弃(多路分解(demultiplexed))光信号。
[0468]
在ann计算系统100的背景下,不同波长的多个光输入向量可以独立地产生、同时传播通过omm单元150、以及被独立地检测以增强ann计算系统100的吞吐量。参照图1f,示出了波分多路复用(wdm)人工神经网络(ann)计算系统104的示例的示例的图。除非另外描述,否则wdm ann计算系统104类似于ann计算系统100。为了实现wdm技术,在ann计算系统104的一些实施例中,激光单元142被配置以产生多个波长,例如λ1、λ2以及λ3。多个波长可以优选地通过足够大的波长间隔分开,以允许容易地多路复用和多路分解到公共传播信道上。例如,大于0.5nm、1.0nm、2.0nm、3.0nm或5.0nm的波长间隔可以允许简单的多路复用和多路分解。另一方面,多个波长的最短波长与最长波长之间的范围(“wdm带宽”)可以优选地足够小,使得omm单元150的特性或性能在多个波长上保持基本相同。光学部件通常是分散的(dispersive),这意味着它们的光学特性随着波长而变化。例如,mzi的功率分光比可以随着波长而变化。然而,通过将omm单元150设计成具有足够大的操作波长窗口(operating wavelength window),并且通过将波长限制在操作波长窗口内,由omm单元150在每一个波长所输出的光输出向量可以是由omm单元150实现的矩阵乘法的足够精确的结果。操作波长窗口可以是例如1nm、2nm、3nm、4nm、5nm、10nm或20nm。
[0469]
图39a示出了可用于调制光信号的幅度的马赫曾德尔调制器3900的示例的图。马赫曾德尔调制器3900包括两个1
×
2端口多模干涉耦合器(mmi_1x2)3902a和3902b、两个平衡的臂(arm)3904a和3904b、以及一个臂中的移相器3906(或每一个臂中的一个移相器)。当通过信号线3908将电压施加到一个臂中的移相器时,在两个臂3904a与3904b之间将存在将要转换为幅度调制的相位差。1x2端口多模干涉耦合器3902a和3902b以及移相器3906被配置为宽带(broadband)光子部件,并且两个臂3904a和3904b的光路径长度被配置为相等。这使马赫曾德尔调制器3900能够在宽波长范围内工作。
[0470]
图39b是曲线图3910,其示出了对于波长1530nm、1550nm以及1570nm使用在图39a中所示的配置的马赫曾德尔调制器3900的强度

电压曲线。曲线图3910示出了马赫曾德尔调制器3900对于1530nm至1570nm范围内的不同波长具有类似的强度

电压特性。
[0471]
返回参照图1f,wdm ann计算系统104的调制器阵列144包括光调制器组(banks of optical modulators),其被配置以产生多个光输入向量,光调制器组中的每一个对应于多个波长之一并且产生具有相应波长的相应光输入向量。例如,对于具有长度为32和3个波长(例如:λ1、λ2以及λ3)的光输入向量的系统,调制器阵列144可以具有每一组32个调制器的3个组。此外,调制器阵列144还包括光多路复用器,其被配置以将多个光输入向量组合成包括多个波长的组合光输入向量。例如,光多路复用器可以将三个不同波长的三个调制器组
的输出组合成光输入向量的每个元素的单一传播信道(例如波导)。如此一来,返回上面的示例,组合光输入向量将具有32个光信号,每一个信号包括3个波长。
[0472]
此外,wdm ann计算系统104的检测单元146进一步被配置以多路分解多个波长并且产生多个多路分解的输出电压。例如,检测单元146可包括多路分解器,其被配置以多路分解包括在多波长光输出向量的32个信号中的每个信号中的三个波长,并且将3个单一波长光输出向量布线(route)到耦合至三组跨阻放大器的三组光电检测器。
[0473]
此外,wdm ann计算系统104的adc单元160包括adc组,其被配置以转换检测单元146的多个多路分解的输出电压。adc组中的每一组对应多个波长中的一个,并且产生相应数字多路分解光输出。例如,adc组可以耦合至检测单元146的跨阻放大器组。
[0474]
控制器110可以实现类似于处理200的方法,但是扩展为支持多波长操作。例如,该方法可包括从adc单元160得到多个数字多路分解光输出的步骤,多个数字多路分解光输出形成多个第一数字输出向量,其中多个第一数字输出向量中的每一个对应多个波长之一;对多个第一数字输出向量中的每一个执行非线性变换,以产生多个变换第一数字输出向量的步骤;以及在存储单元中储存多个变换第一数字输出向量的步骤。
[0475]
在一些情况下,可以专门设计ann,并且可以具体地形成数字输入向量,使得可以在不进行多路分解的情况下检测多波长光输出向量。在这种情况下,检测单元146可以是波长非敏感(wavelength

insensitive)的检测单元,其不会多路分解多波长光输出向量的多个波长。如此一来,检测单元146的每一个光电检测器有效地将光信号的多个波长加到单一光电流中,并且检测单元146输出的每一个电压对应多个数字输入向量的矩阵乘法结果的逐元素总和(element

by

element sum)。
[0476]
到目前为止,作为ann计算的一部分所执行的加权总和的非线性变换是通过控制器110在数字域(digital domain)中执行的。在一些情况下,非线性变换可能是计算密集的或耗功率的,显著地增加了控制器110的复杂性,或者在吞吐量或功率效率方面限制了ann计算系统100的性能。如此一来,在ann计算系统的一些实施例中,可以通过模拟电子装置在模拟域(analog domain)中执行非线性变换。
[0477]
图3a示出了ann计算系统300的示例的示例的图。ann计算系统300类似于ann计算系统100,不同之处在于添加了模拟非线性单元310。模拟非线性单元310布置在检测单元146和adc单元160之间。模拟非线性单元310被配置以从检测单元146接收输出电压、应用非线性传递函数、以及将转换输出电压输出到adc单元160。
[0478]
当adc单元160接收已经由模拟非线性单元310非线性变换的电压时,控制器110可以从adc单元160得到对应转换输出电压的转换数字输出电压。因为从adc单元160得到的数字输出电压已经被非线性变换(“激活”),所以可以省略控制器110的非线性变换步骤,从而减少了控制器110的计算负担。接着,可以将直接从adc单元160得到的第一转换电压作为第一变换数字输出向量储存在存储单元120中。
[0479]
可以以各种方式实现模拟非线性单元310。例如,在反馈配置中的高增益放大器、具有可调整参考电压、二极管的非线性iv特性、二极管的击穿特性(breakdown behavior)、可变电容的非线性cv特性或可变电阻的非线性iv特性的比较器可用来实现模拟非线性单元310。
[0480]
使用模拟非线性单元310可以通过减少在数字域中执行的步骤来改善ann计算系
统300的性能,例如吞吐量或功率效率。将非线性变换步骤移出数字域可以允许ann计算系统的操作中的额外的灵活性和改进。例如,在递归神经网络中,omm单元150的输出被激活,并且再循环回到omm单元150的输入。激活步骤由ann计算系统100中的控制器110执行,这需要在每次通过omm单元150时数字化检测单元146的输出电压。然而,因为激活步骤现在在adc单元160的数字化之前执行,所以可以减少在执行递归神经网络计算中所需的adc转换的次数。
[0481]
在一些实施例中,模拟非线性单元310可以集成到adc单元160中作为非线性adc单元。例如,非线性adc单元可以是具有非线性查找表的线性adc单元,非线性查找表将线性adc单元的线性数字输出映射到所期望的非线性变换数字输出。
[0482]
图3b示出了ann计算系统302的示例的示例的图。ann计算系统302类似于图3a的系统300,不同之处在于它进一步包括模拟存储单元320。模拟存储单元320耦合至dac单元130(例如:通过第一dac子单元132)、调制器阵列144和模拟非线性单元310。模拟存储单元320包括多路复用器,其具有耦合至dac单元130的第一输入和耦合至模拟非线性单元310的第二输入。这允许模拟存储单元320从dac单元130或模拟非线性单元310接收信号。模拟存储单元320被配置以储存模拟电压并且输出所储存的模拟电压。
[0483]
可以以各种方式实现模拟存储单元320。例如,电容阵列可以用作模拟电压储存组件。模拟存储单元320的电容可以通过充电电路被充电至输入电压。可以基于从控制器110接收的控制信号来控制输入电压的储存。电容可以与周围环境电隔离,以减少导致不希望的电容放电的电荷漏电。另外地(或可替换地),反馈放大器可用以维持储存在电容上的电压。可以通过缓冲放大器读出电容的储存电压,这允许保持由电容储存的电荷,同时输出储存电压。模拟存储单元320的这些方面可类似于采样保持电路(sample and hold circuit)的操作。缓冲放大器可以实现用于驱动调制器阵列144的调制器驱动器的功能。
[0484]
现在将描述ann计算系统302的操作。由dac单元130(例如:由第一dac子单元132)输出的第一多个调制器控制信号首先通过模拟存储单元320输入至调制器阵列144。在此步骤中,模拟存储单元320可以简单地传递或缓冲第一多个调制器控制信号。调制器阵列144基于第一多个调制器控制信号产生光输入向量,其通过omm单元150传播并由检测单元146检测。检测单元146的输出电压由模拟非线性单元310非线性变换。此时,代替由adc单元160数字化,检测单元146的输出电压由模拟存储单元320储存,其接着输出到调制器阵列144,以被转换成将要通过omm单元150传播的下一个光输入向量。在控制器110的控制下,可以在预设时间量或预设数量的循环下执行该递归处理(recurrent processing)。一旦对于给定数字输入向量完成了递归处理,模拟非线性单元310的转换输出电压就由adc单元160转换。
[0485]
模拟存储单元320的使用可以显著减少在递归神经网络计算期间的adc转换的数量,例如降低到对于每次给定数字输入向量的rnn计算一个单一adc转换。每一次adc转换都需要一段时间,并且消耗一定的能量。如此一来,ann计算系统302的rnn计算的吞吐量可以高于ann计算系统100的rnn计算的吞吐量。
[0486]
可以通过控制模拟存储单元320来控制递归神经网络计算的执行。例如,控制器可以控制模拟存储单元320在特定时间储存电压,并在不同时间输出储存的电压。如此一来,从模拟存储320到调制器阵列144通过模拟非线性单元310并且回到模拟存储单元320的信号循环可以通过控制器110控制模拟存储单元320的储存和读出来控制。
[0487]
如此一来,在一些实施例中,ann计算系统302的控制器110可以执行以下步骤:基于产生第一多个调制器控制信号和第一多个权重控制信号,通过模拟存储单元储存模拟非线性单元的多个转换输出电压;通过模拟存储单元输出储存的转换输出电压;从adc单元得到第二多个转换数字输出电压,第二多个转换数字输出电压形成第二变换数字输出向量;以及在存储单元中储存第二变换数字输出向量。
[0488]
由ann计算系统处理的输入数据集通常包括具有分辨率大于1比特的数据。例如,灰度数字图像的通常像素可具有8位的分辨率,即256个不同的水平。在光域中表示和处理该数据的一种方式是将256个不同强度水平的像素编码作为输入到omm单元150的光信号的256个不同功率水平。光信号本质上是模拟信号,因此容易受噪声和检测误差的影响。返回参照图1a,为了在整个ann计算系统100中保持数字输入向量的8比特分辨率,并且在adc单元160的输出产生真实的8比特数字光输出,信号链(signal chain)的每个部分可以优选地设计成再现(reproduce)和保持8比特分辨率。
[0489]
例如,dac单元130可以优选地被设计为支持将8比特数字输入向量转换成至少8比特分辨率的调制器控制信号,使得调制器阵列144可以产生忠实地表示数字输入向量的8位的光输入向量。通常来说,调制器控制信号可能需要具有超过数字输入向量的8位的额外分辨率,以补偿调制器阵列144的非线性响应。此外,omm单元150的内部配置可以优选地足够稳定,以确保光输出向量的值不会被omm单元150的配置的任何波动破坏。例如,omm单元150的温度可能需要稳定在5度、2度、1度或0.1度内。此外,检测单元146可以优选地具有足够低的噪声以不破坏光输出向量的8比特分辨率,并且adc单元160可以优选地被设计以支持具有至少8比特分辨率的模拟电压的数字化。
[0490]
各种电子部件的功率消耗和设计复杂性通常随着比特分辨率、操作速度和带宽而增加。例如,作为第一阶近似(first

order approximation),adc单元160的功率消耗可以随着采样速率线性地缩放,并且缩放因子为2^n,其中n是转换结果的比特分辨率。此外,dac单元130和adc单元160的设计考虑因素通常导致采样率和比特分辨率之间的权衡。如此一来,在一些情况下,可以期望ann计算系统在内部以比输入数据集的分辨率要低的比特分辨率来操作,同时保持ann计算输出的分辨率。
[0491]
参照图4a,示出了具有1比特内部分辨率的人工神经网络(ann)计算系统400的示例的示例的图。ann计算系统400类似于ann计算系统100,不同之处在于dac单元130现在由驱动器单元430代替,并且adc单元160现在由比较器单元460代替。
[0492]
驱动器单元430被配置以产生1比特调制器控制信号和多位权重控制信号。例如,驱动器单元430的驱动电路可以直接从控制器110接收二进制(binary)数字输出,并且将二进制信号调节成适合于驱动调制器阵列144的两级(two

level)电压或电流输出。
[0493]
比较器单元460被配置以将检测单元146的输出电压转换为数字1比特光输出。例如,比较器单元460的比较电路可以从检测单元146接收电压、将电压与预设阈值电压进行比较,以及当接收电压分别小于或大于预设阈值电压时,输出数字0或1。
[0494]
参照图4b,示出了ann计算系统400的操作的数学表示。现在将参照图4b描述ann计算系统400的操作。对于由ann计算系统400所要执行的给定ann计算,存在对应的数字输入向量v和神经网络权重矩阵u。在该实施例中,输入向量v是具有元素v0到v3的长度4的向量,并且矩阵u是具有权重u
00
到u
33
的4
×
4矩阵。向量v的每个元素具有4位的分辨率。每一个4比
特向量元素具有分别对应2^0到2^3个位置的第0位(bit0)到第3位(bit3)。如此一来,通过2^0*bit0+2^1*bit1+2^2*bit2+2^3*bit3的总和来计算4比特向量元素的十进制(decimal)(基数10)值。因此,如图所示,输入向量v可以类似地由控制器110模拟分解为v
bit0
至v
bit3

[0495]
接着,可以通过执行1比特向量的一系列矩阵乘法,接着对相应矩阵乘法结果求和来执行特定ann计算。例如,通过通过驱动器单元430产生对应4个1比特输入向量的4个1比特调制器控制信号的序列,可以将分解的输入向量v
bit0
到v
bit3
中的每一个与矩阵u相乘。这继而产生4个1比特光输入向量的序列,其传播通过omm单元150,omm单元150被配置以通过驱动器单元430实现矩阵u的矩阵乘法。接着,控制器110可以从比较器单元460得到对应4个1比特调制器控制信号的序列的4个数字1比特光输出的序列。
[0496]
在将4比特向量分解为4个1比特向量的情况下,每一个向量应该由ann计算系统400处理,其处理速度是其他ann计算系统(例如系统100)可以处理单个4比特向量的速度的四倍,以保持相同的有效ann计算吞吐量。这种增加的内部处理速度可以被视为将4个1比特向量时分多路复用(time

division multiplexing)到用于处理4比特向量的单一时隙(timeslot)中。处理速度所需的增加可以至少部分地通过驱动器单元430和比较器单元460相对于dac单元130和adc单元160的增加的操作速度来实现,因为信号转换处理的分辨率的降低通常造成可实现的信号转换速率的增加。
[0497]
虽然在1比特操作中的信号转换速率增加了四倍,但是相对于4位操作,所产生的功率消耗可以显著降低。如上面所述,信号转换处理的功率消耗通常随着比特分辨率指数地缩放,同时随着转换速率线性地缩放。如此一来,每次转换功率降低16倍可能是由于比特分辨率降低4倍,接着是由于转换速率增加而产生的功率的4倍增加。总而言之,通过ann计算系统400可以在例如ann计算系统100之上实现操作功率的4倍减小,同时保持相同的有效ann计算吞吐量。
[0498]
接着,控制器110可以通过将每一个数字1比特光输出乘以相应的权重2^0到2^3,从4个数字1比特光输出建构4比特数字输出向量。一旦建构了4比特数字输出向量,就可以通过对所建构的4比特数字输出向量执行非线性变换来进行ann计算,以产生转换4比特数字输出向量;以及在存储单元120中储存转换4比特数字输出向量。
[0499]
可替换地(或另外地),在一些实施例中,可以对4个数字1比特光输出中的每一个进行非线性变换。例如,阶梯函数非线性函数(step

function nonlinear function)可以用于非线性变换。接着可以从非线性变换的数字1比特光输出建构出转换4比特数字输出向量。
[0500]
虽然已经显示并描述了单独的ann计算系统400,但通常来说,图1a的ann计算系统100可以被设计以实现类似于ann计算系统400的功能。例如,dac单元130可包括1比特dac子单元,其被配置以产生1比特调制器控制信号,并且adc单元160可以被设计为具有1比特的分辨率。这种1比特adc可以与比较器类似或有效地等同于比较器。
[0501]
此外,虽然已经描述了具有1比特内部分辨率的ann计算系统的操作,但通常来说,ann计算系统的内部分辨率可以降低到低于输入数据集的n比特分辨率的中间水平。例如,内部分辨率可以减少到2^y比特,其中y是大于或等于0的整数。
[0502]
本公开所述的主题和功能操作的实施例可以在数字电子电路中实现,或者在计算机软件、固件或硬件中实现,其包括本公开中公开的结构及其结构等同物,或者其中的一个
或多个组合。本公开所述的主题的实施例可以使用在计算机可读介质上所编码的一个或多个计算机程序指令模块来实现,以由数据处理装置来执行或控制数据处理装置的操作。计算机可读介质可以是制造产品(例如计算机系统中的硬盘驱动器或通过零售管道销售的光盘)或嵌入式系统。计算器可读介质可以分别地获取并随后使用计算机程序指令的一个或多个模块进行编码,例如通过有线或无线网络传送计算机程序指令的一个或多个模块。计算机可读介质可以是机器可读储存装置、机器可读储存基板、存储装置或它们中的一个或多个的组合。
[0503]
计算机程序(也称为程序、软件、软件应用、脚本(script)或代码)可以用任何形式的编程语言编写,包括编译或直译语言、声明性(declarative)或程序(procedural)语言,并且可以以任何形式部署,包括作为独立程序(stand alone program)或作为模块、部件、子例程或适用于计算环境的其他单元。计算机程序不一定对应于文件系统中的文件。程序可以储存在保存其他程序或数据(例如:储存在标记语言文档(markup language document)中的一个或多个脚本)的文件的一部分中、储存在专用于所讨论的程序的单一文件中、或储存在多个协调文件(multiple coordinated file)(例如:储存一个或多个模块、子程序或代码部分的文件)中。计算机程序可被部署为在一个计算机上或在位于一个站点或分布在多个站点并通过通信网络互连的多个计算机上执行。
[0504]
本公开中所述的处理和逻辑流程可以由执行一个或多个计算机程序的一个或多个可编程处理器(programmable processor)执行,以通过对输入数据进行操作并产生输出来执行功能。处理和逻辑流程也可由专用逻辑电路(special purpose logic circuitry)执行,并且装置也可以实现为专用逻辑电路,专用逻辑电路是例如现场可编码门阵列(field programmable gate array;fpga)或专用集成电路(asic)。
[0505]
虽然本公开包含许多实现细节,但是这些不应被解释为对本公开的范围或权利要求的限制,而是作为对本公开的特定实施例的特定特征的描述。在分别实施例的上下文中的本公开中所描述的某些特征也可以在单一实施例中组合实现。相对来说,在单一实施例的上下文中所描述的各种特征也可以分别地在多个实施例或以任何合适的子组合中实现。此外,尽管上面的特征被描述作用于某些组合并且甚至最初如此请求保护,但是在某些情况下,可以从所请求保护的组合中移除一个或多个特征,并且所请求保护的组合可以指向子组合或子组合的变化。
[0506]
相似地,虽然在附图中以特定顺序描述了操作,但这不应被理解为要求以所示的特定顺序或按顺序执行这些操作,或者执行所有显示的操作以实现期望的结果。在某些情况下,多任务处理和并行处理可能是有利的。此外,不应将所述实施例中的各种系统部件的分离理解为在所有实施例中都需要这样的分离,并且应理解所述的程序部件和系统通常可以集成在单一软件产品中或者打包到多个软件产品中。
[0507]
因此,已经描述了本公开的特定实施例。其他实施例在以下权利要求的范围内。另外,权利要求中所记载的动作可以以不同的顺序执行并仍实现期望的结果。例如,图1a中的光矩阵乘法单元150包括光学干涉单元154,其包括多个互连的马赫曾德尔干涉。在一些实施例中,光干涉单元可以使用几乎不消耗功率的一维、二维或三维无源衍射光学组件(passive diffractive optical element)来实现。与包括马赫曾德尔干涉仪的光干涉单元相比,如果输入/输出的数量保持不变,则使用无源衍射光学组件的光干涉单元可具有更
小的尺寸,或者对于相同的芯片尺寸可以处理更大数量的输入/输出。与马赫曾德尔干涉仪相比,可以以更低的成本制造无源衍射光学组件。
[0508]
参照图5,在一些实施例中,人工神经网络计算系统500包括控制器110、存储单元120、dac单元506、光处理器504以及adc单元160。存储单元120和adc单元160类似于图1a中的系统100的对应部件。光处理器504被配置以使用光学部件执行矩阵计算。在系统500中,光矩阵乘法单元502的权重是固定的。dac单元506类似于图1a的系统100的第一dac子单元132。
[0509]
在ann计算系统500的示例操作中,计算机102可以对ann计算系统500发出人工神经网络计算请求。ann计算请求可包括将要由所提供的ann处理的输入数据集。控制器110接收ann计算请求,并且将输入数据集储存在存储单元120中。
[0510]
在一些实施例中,使用混合方法,其中光矩阵乘法单元150的一部分包括马赫曾德尔干涉仪,并且光矩阵乘法单元150的另一部分包括无源衍射组件。
[0511]
现在将描述ann计算系统500的内部操作。光处理器504包括激光单元142、调制器阵列144、检测单元146以及光矩阵乘法(omm)单元502。激光单元142、调制器阵列144以及检测单元146类似于图1a中的系统100的对应部件。在此示例中,omm单元502包括二维衍射光学组件,并且可以实现为无源集成硅光子芯片(passive integrated silicon photonic chip)。光矩阵乘法单元502可被配置以实现衍射神经网络,并且可以在几乎零功率消耗下执行矩阵乘法。
[0512]
光处理器504通过将长度n的数字输入向量编码到长度n的光输入向量上,并且通过omm单元502传播光输入向量来进行操作。omm单元502接收长度n的光输入向量,并且在光域中对接收的光输入向量执行n
×
n矩阵乘法。由omm单元502执行的n
×
n矩阵乘法由omm单元502的内部配置来确定。omm单元502的内部配置包括衍射光学组件的尺寸、位置和几何形状,以及杂质的掺杂(如果有的话)。
[0513]
可以以各种方式实现omm单元502。图6示出了使用二维衍射组件阵列的omm单元502的示例的示例的图。omm单元502可包括输入波导602的阵列以接收光输入向量、与输入波导602的阵列光学通信的二维的光干涉单元600,以及与光干涉单元600光学通信的输出波导604的阵列。光干涉单元600包括多个衍射光学组件,并且执行光输入向量到第二光信号阵列的转换(例如:线性变换)。输出波导604的阵列引导由光干涉单元600输出的第二光信号阵列。输入波导602的阵列中的至少一个输入波导通过光干涉单元600与输出波导604的阵列中的每一个输出波导光学通信。例如,对于长度n的光输入向量,omm单元502可包括n个输入波导602和n个输出波导604。
[0514]
在一些实施例中,光干涉单元600包括具有衍射组件的基板,衍射组件以二维(例如:以2d阵列)布置。例如,可以在基板中钻出或蚀刻多个圆形孔洞。这些孔洞的尺寸在数量级上可与输入光的波长的尺寸相当,使得光被孔洞(或定义孔洞的结构)衍射。例如,孔洞的尺寸可以在100nm至2μm的范围内。孔洞可以具有相同或不同的尺寸。孔洞还可以具有其他剖面形状,例如三角形、正方形、矩形、六边形或不规则形状。基板可以由对于输入光为透明或半透明的材料制成,例如相对于输入光具有1%至99%的传输率。例如,基板可以由硅、氧化硅、氮化硅、石英、晶体(例如:铌酸锂(linbo3))、iii

v族材料(例如砷化镓或磷化铟),铒改性的半导体(erbium modified semiconductor)或聚合物制成。
[0515]
在一些实施例中,全息方法(holographic method)可用于在基板中形成二维衍射光学组件。基板可以由玻璃、晶体或光折射材料(photorefractive material)制成。
[0516]
在设计omm单元502时,在二维(例如:x方向和y方向)中考虑衍射组件的尺寸和位置,而不考虑衍射组件在第三维(例如:z方向)中的相对位置。每一个衍射组件可以是形成在基板中的三维结构,例如具有一定深度的孔洞、柱状物(column)或条带(stripe)。
[0517]
在图6中,衍射光学组件由圆形表示。衍射光学组件还可具有其他形状,例如三角形、正方形、矩形或不规则形状。衍射光学组件可具有各种尺寸。衍射光学组件不必位于网格点(grid point)上,它们的位置可以改变。图6中的图仅用于说明的目的。实际的衍射光学组件可以与图中所示的不同。衍射光学组件的不同布置可用于实现不同的矩阵计算,例如不同的矩阵乘法函数。
[0518]
可以使用优化处理来确定衍射光学组件的配置。例如,基板可以分成像素阵列,并且每个像素可被填充基板材料(无孔洞)或被填充空气(孔洞)。可以迭代地修改像素的配置,并且对于像素的每个配置,可以通过使光通过衍射光学组件并评估输出来执行仿真(simulation)。在执行像素的所有可能配置的仿真之后,选择提供最接近所期望的矩阵处理的结果的配置作为omm单元502的衍射光学组件配置。
[0519]
作为另一示例,衍射组件最初被配置为孔洞阵列。孔洞的位置、尺寸和形状可以与它们的初始配置稍微不同。可以迭代地调整每个孔洞的参数,并且可以执行仿真以找到孔洞的优化配置。
[0520]
在一些实施例中,机器学习处理用于设计衍射光学组件。确定像素如何影响输入光以产生输出光的分析函数,并且使用优化处理(例如:梯度下降方法(gradient descent method))来确定像素的最佳配置。
[0521]
在一些实施例中,omm单元502可实施作为用户可变部件(user

changeable component),并且可以为不同应用安装具有不同光干涉单元600的不同omm单元502。例如,系统500可以被配置作为光学字符识别系统,并且光干涉单元600可被配置以实现用于执行光学字符识别的神经网络。例如,第一omm单元可具有第一光干涉单元,第一光干涉单元包括无源衍射光学组件,其被配置以针对第一组书面语言和字体实现用于光学字符识别引擎的第一神经网络。第二omm单元可以具有第二光干涉单元,第二光干涉单元包括无源衍射光学组件,其被配置以针对第二组书面语言和字体等实现用于光学字符识别引擎的第二神经网络。当用户想要使用系统500将光学字符识别应用于第一组书面语言和字体时,用户可以将第一omm单元插入至系统中。当用户想要使用系统500将光学字符识别应用于第二组书面语言和字体时,用户可以换出第一omm单元并且将第二omm单元插入至系统中。
[0522]
例如,系统500可被配置作为语音识别系统,并且光干涉单元600可被配置以实现用于执行语音识别的神经网络。例如,第一omm单元可具有第一光干涉单元,第一光干涉单元包括无源衍射光学组件,其被配置以针对第一口语实现用于语音识别引擎的第一神经网络。第二omm单元可以具有第二光干涉单元,第二光干涉单元包括无源衍射光学组件,其被配置以针对第二口语等实现用于语音识别引擎的第二神经网络,等等。当用户想要使用系统500来识别第一口语中的语音时,用户可以将第一omm单元插入至系统中。当用户想要使用系统500来识别第二口语中的语音时,用户可以换出第一omm单元并且将第二omm单元插入至系统中。
[0523]
例如,系统500可以是自动驾驶交通工具的控制单元的一部分,并且光干涉单元600可被配置以实现用于执行道路状况识别的神经网络。例如,第一omm单元可具有第一光干涉单元,第一光干涉单元包括无源衍射光学组件,其被配置以实现用于识别在美国的道路状况(包括路标)的第一神经网络。第二omm单元可以具有第二光干涉单元,第二光干涉单元包括无源衍射光学组件,其被配置以实现用于识别在加拿大的道路状况(包括路标)的第二神经网络。第三omm单元可以具有第三光干涉单元,第三光干涉单元包括无源衍射光学组件,其被配置以实现用于识别在墨西哥的道路状况(包括路标)的第三神经网络,等等。当在美国使用自动驾驶交通工具时,将第一omm单元插入至系统中。当自动驾驶交通工具越过边界并进入加拿大时,第一omm单元被换出,并且第二omm单元被插入至系统中。另一方面,当自动驾驶交通工具越过边界并进入墨西哥时,第一omm单元被换出,并且第三omm单元被插入至系统中。
[0524]
例如,系统500可用于基因测序(genetic sequencing)。可以使用卷积神经网络对dna序列进行分类,卷积神经网络使用包括无源衍射光学组件的系统500来实现。例如,系统500可以实现用于区分肿瘤类型、预测肿瘤等级(tumor grade)、以及从基因表现模式(gene expression pattern)预测患者存活的神经网络。例如,系统500可以实现用于识别对所分析的特性最具预测性的基因或特征的子集的神经网络。例如,系统500可以实现用于从基因子集的数据图(profile)预测或推断所有基因的表达水平(expression level)的神经网络。例如,系统500可以实现用于表观基因分析(epigenomic analyse)的神经网络,例如预测转录因子结合位点(transcription factor binding site)、增强子区域(enhancer region)和来自基因序列的染色质可接近性(chromatin accessibility)。例如,系统500可以实现用于捕获基因序列内的结构的神经网络。
[0525]
例如,系统500可被配置作为医疗诊断系统,并且omm单元502可被配置以实现用于分析生理参数(physiological parameter)以对疾病执行筛查的神经网络。例如,系统500可被配置作为细菌检测系统,并且omm单元502可被配置以实现用于分析dna序列以检测某些细菌菌株的乘法函数。
[0526]
在一些实施例中,omm单元502包括保护具有衍射光学组件的基板的外壳(例如:匣盒(cartridge))。外壳支持耦合到输入波导602的输入接口,以及耦合到输出波导604的输出接口。输入接口被配置以接收来自调制器阵列144的输出,并且输出接口被配置以将omm单元502的输出传输到检测单元146。omm单元502可以被设计作为适合由普通消费者处理的模块,允许用户容易地从一个omm单元502切换到另一个omm单元502。机器学习技术随着时间而改进。用户可通过换出旧omm单元502,并且插入新的升级版本来升级系统500。
[0527]
类似于光学压缩盘(optical compact disc)可以储存可由cd播放器取得的数字信息的方式,omm单元可以储存可在光处理器中使用的神经网络配置。正如光学压缩盘是用于向消费者分配数字信息(包括音频、视频以及软件程序)的低成本介质一样,omm单元可以是用于向消费者分配预配置神经网络或矩阵处理功能(例如:乘法、卷积或任何其他线性操作)的低成本介质。
[0528]
在一些实施例中,系统500是光学计算平台,其被配置为可利用不同公司所提供的omm单元进行操作。这允许不同公司为各种应用开发不同的无源光学神经网络。无源光学神经网络以标准化包装出售给最终用户,其可被安装在光学计算平台中以允许系统500执行
各种智能功能。
[0529]
在一些实施例中,系统可以具有用于支撑多个omm单元502的保持器机构,并且可以提供机械处理机构以用于自动换出omm单元502。系统确定当前应用需要哪个omm单元502,并且使用机械处理机构从保持器机构自动取得适当的omm单元并将其插入光处理器504。
[0530]
对于特定尺寸的光学芯片,与使用有源干涉仪(例如马赫曾德尔干涉仪)相比,可以装配更多的无源衍射组件在基板上。例如,使用马赫曾德尔干涉仪的图1b中的光干涉单元154可以被配置以处理200
×
200矩阵乘法,而具有相同总尺寸并且使用无源衍射组件(每个具有约100nm
×
100nm的尺寸)的光干涉单元600可以被配置以处理5000
×
5000矩阵乘法。
[0531]
无源衍射光学组件几乎不消耗功率,因此omm单元502可用于低功率装置,例如电池操作装置。omm单元502适用于边缘计算(edge computing)。例如,omm单元502可用于智能传感器中,其中来自传感器的原始数据使用了使用omm单元502的光处理器来处理。智能传感器可被配置以将处理后的数据传输到中央计算机服务器,从而减少传输到中央计算机服务器的原始数据量。通过在智能传感器上放置智能处理功能,可以更早地检测故障和异常并更有效地处理。omm单元502适用于需要处理大矩阵乘法的应用。omm单元502适用于已经训练过神经网络并且已经确定了权重并且不需要修改的应用。
[0532]
其中形成衍射光学组件的基板可以是平面的或弯曲的。在图6的示例中,输入光从左侧进入光干涉单元600,并且输出光从右侧离开光干涉单元600(术语“左”、“右”、“上”和“下”参照附图中所示的方向”)。在一些实施例中,无源衍射光学组件可以被配置以使得一些输出光从上部或下部、,或者光干涉单元600的左、右、上以及下侧的任何组合离开光干涉单元。用于光干涉单元600的基板可具有各种形状,例如正方形、矩形、三角形、圆形或椭圆形。光干涉单元600可包括反射组件或反射镜以重定向光传播方向。
[0533]
在一些实施例中,可通过在检测单元146与adc单元160之间加入模拟非线性单元310来修改人工神经网络计算系统500。模拟非线性单元310被配置以从检测单元146接收输出电压、应用非线性传递函数、以及将转换输出电压输出到adc单元160。控制器110可以从adc单元160得到对应转换输出电压的转换数字输出电压。因为从adc单元160得到的数字输出电压已经被非线性变换(“激活”),所以可以省略控制器110的非线性变换步骤,从而减少了控制器110的计算负担。接着,可以将从adc单元160直接得到的第一转换电压作为第一变换数字输出向量储存在存储单元120中。
[0534]
可以使用以三维布置的无源衍射光学组件来实现光干涉单元。参照图7,在一些实施例中,人工神经网络计算系统700具有光处理器702,其包括三维的oom单元708。系统700包括存储单元120和adc单元160,其类似于图5中的系统500的对应部件。光处理器702被配置以使用以三维布置的衍射光学组件来执行矩阵计算。
[0535]
光处理器702包括激光单元704,其被配置以输出二维光束阵列714,以及二维的调制器阵列706,其被配置以调制二维光束阵列714以产生调制二维光束阵列716。光处理器702包括光矩阵乘法(omm)单元708,其具有三维布置的衍射光学组件,并且被配置以处理调制二维光束阵列716并产生二维输出光束阵列718。光处理器702包括具有二维光传感器阵列的检测单元710,以检测二维输出光束阵列718。adc单元160将检测单元710的输出转换为数字信号。
[0536]
例如,3d omm单元708可以实现作为无源集成硅光子柱或立方体。光矩阵乘法单元708可以被配置以实现衍射神经元网络,并且可以在几乎零功率消耗下执行矩阵乘法。
[0537]
有许多方法对输入数据进行编码以供光处理器702使用。例如,长度为n
×
n的数字输入向量可以被编码到大小为n
×
n的光输入矩阵上,其通过omm单元708传播。omm单元708在光域中对接收的光输入矩阵执行(n
×
n)
×
(n
×
n)矩阵乘法。由omm单元708执行的(n
×
n)
×
(n
×
n)矩阵乘法由omm单元708的内部配置来确定,内部配置包括以三维布置的衍射光学组件的尺寸、位置和几何形状,以及杂质的掺杂(如果有的话)。
[0538]
可以以各种方式实现omm单元708。图8示出了使用衍射组件的三维布置的omm单元708的示例的示例的图。omm单元708可包括用于接收光输入矩阵802的输入波导矩阵、与输入波导矩阵光学通信的三维的光干涉单元804,以及与光干涉单元804光学通信的输出波导矩阵,用于提供光输出矩阵806。光干涉单元804包括多个衍射光学组件,并且执行光输入(例如:n
×
n向量或矩阵)到光输出(例如:n
×
n向量或矩阵)的转换(例如:线性变换)。输出波导矩阵引导光干涉单元804输出的光信号。输入波导矩阵中的至少一个输入波导通过光干涉单元804与输出波导矩阵中的每一个输出波导光学通信。例如,对于长度n
×
n的光输入向量,omm单元708可包括n
×
n个输入波导和n
×
n个输出波导。
[0539]
在一些实施例中,光干涉单元804包括具有衍射组件的基板块,衍射组件以三维(例如:以3d矩阵)布置。例如,可以在多个基板切片中的每一个中钻出或蚀刻多个孔洞,并且可以组合多个基板切片以形成基板块。这些孔洞的尺寸在数量级上可与输入光的波长的尺寸相当,使得光被孔洞(或定义孔洞的结构)衍射。孔洞可以具有相同或不同的尺寸。孔洞还可以具有其他剖面形状,例如三角形、正方形、矩形、六边形或不规则形状。在一些实施例中,全息方法可用于在整个基板块中形成三维衍射光学组件。基板可以由对于输入光为透明或半透明的材料制成,例如相对于输入光具有1%至99%的传输率。
[0540]
当设计omm单元708时,考虑衍射组件在x、y和z方向上的尺寸和位置。可以使用优化处理来确定衍射光学组件的配置。例如,基板块可以分成三维像素矩阵,并且每个像素可被填充基板材料(无孔洞)或被填充空气(孔洞)。可以迭代地修改像素的配置,并且对于像素的每个配置,可以通过使光通过衍射光学组件并评估输出来执行仿真。在执行像素的所有可能配置的仿真之后,选择提供最接近所期望的矩阵处理的结果的配置作为omm单元708的衍射光学组件配置。
[0541]
作为另一示例,衍射组件最初被配置为三维孔洞矩阵。孔洞的位置、尺寸和形状可以与它们的初始配置稍微不同。可以迭代地调整每个孔洞的参数,并且可以执行仿真以找到孔洞的优化配置。
[0542]
在一些实施例中,机器学习处理用于设计三维衍射光学组件。确定像素如何影响输入光的分析函数,并且使用梯度下降方法来确定像素的最佳配置。
[0543]
在一些实施例中,omm单元708可实施作为用户可变部件,并且可以为不同应用安装具有不同光干涉单元804的不同omm单元708。例如,系统700可被配置作为医疗诊断系统,并且光干涉单元804可被配置以实现用于分析生理参数以对疾病执行筛查的神经网络。例如,第一omm单元可具有第一光干涉单元,第一光干涉单元包括3d无源衍射光学组件,其被配置以实现用于筛查第一组疾病的第一神经网络。第二omm单元可具有第二光干涉单元,第二光干涉单元包括3d无源衍射光学组件,其被配置以实现用于筛查第二组疾病的第二神经
网络,等等。第一和第二omm单元可以由专门开发用于筛查不同疾病的技术的不同公司来开发。当用户想要使用系统700来筛查第一组疾病时,用户可以将第一omm单元插入至系统中。当用户想要使用系统700来筛查第二组疾病时,用户可以换出第一omm单元并且将第二omm单元插入至系统中。
[0544]
例如,系统700可被配置作为光学字符识别系统,并且光干涉单元804可被配置以实现用于执行光学字符识别的神经网络。例如,系统700可被配置作为语音识别系统,并且光干涉单元804可被配置以实现用于执行语音识别的神经网络。例如,系统700可以是自动驾驶交通工具的控制单元的一部分,并且光干涉单元804可被配置以实现用于执行道路状况识别的神经网络。
[0545]
例如,系统700可用于基因测序。可以使用卷积神经网络对dna序列进行分类,卷积神经网络使用包括无源衍射光学组件的系统700来实现。例如,系统700可以实现用于区分肿瘤类型、预测肿瘤等级、以及从基因表现模式预测患者存活的神经网络。例如,系统700可以实现用于识别对所分析的特性最具预测性的基因或特征的子集的神经网络。例如,系统700可以实现用于从基因子集的数据图预测或推断所有基因的表达水平的神经网络。例如,系统700可以实现用于表观基因分析的神经网络,例如预测转录因子结合位点、增强子区域和来自基因序列的染色质可接近性。例如,系统700可以实现用于捕获基因序列内的结构的神经网络。例如,系统700可被配置作为细菌检测系统,并且光干涉单元804可被配置以实现用于分析dna序列以检测某些细菌菌株的乘法函数。
[0546]
在一些实施例中,omm单元708包括保护具有3d衍射光学组件的基板的外壳(例如:匣盒)。外壳支持耦合到输入波导的输入接口,以及耦合到输出波导的输出接口。输入接口被配置以接收来自调制器阵列706的输出,并且输出接口被配置以将omm单元708的输出传输到检测单元710。omm单元708可以被设计作为适合由普通消费者处理的模块,允许用户容易地从一个omm单元708切换到另一个omm单元708。机器学习技术随着时间而改进。用户可通过换出旧omm单元708,并且插入新的升级版本来升级系统700。
[0547]
在一些实施例中,系统700是光学计算平台,其被配置为可利用不同公司所提供的omm单元进行操作。这允许不同公司为各种应用开发不同的3d无源光学神经网络。3d无源光学神经网络以标准化包装出售给最终用户,其可被安装在光学计算平台中以允许统700执行各种智能功能。
[0548]
在一些实施例中,系统可以具有用于支撑多个omm单元708的保持器机构,并且可以提供机械处理机构以用于自动换出omm单元708。系统确定当前应用需要哪个omm单元708,并且使用机械处理机构从保持器机构自动取得适当的omm单元708并将其插入光处理器702。
[0549]
在一些实施例中,可通过在检测单元710与adc单元160之间加入模拟非线性单元来修改人工神经网络计算系统700。模拟非线性单元被配置以从检测单元710接收输出电压、应用非线性传递函数、以及将转换输出电压输出到adc单元160。控制器110可以从adc单元160得到对应转换输出电压的转换数字输出电压。因为从adc单元160得到的数字输出电压已经被非线性变换(“激活”),所以可以省略控制器110的非线性变换步骤,从而减少了控制器110的计算负担。接着,可以将从adc单元160直接得到的第一转换电压作为第一变换数字输出向量储存在存储单元120中。
[0550]
可以使用以一维布置的无源衍射光学组件来实现光干涉单元。参照图9,在一些实施例中,人工神经网络计算系统900具有光处理器906,其包括一维的光乘法单元916。系统900包括存储单元120,其类似于图1a中的系统100的对应部件。光处理器906被配置以使用以一维布置(沿着光传播轴)的衍射光学组件来执行乘法计算。
[0551]
光处理器906包括:激光单元908,被配置以输出激光束910;以及调制器912,被配置以调制激光束910以产生调制光束914。光处理器906包括一维的光乘法单元916,其具有一维布置的衍射光学组件,并被配置以处理调制光束914和产生输出光束918。光处理器906包括检测单元920,检测单元920具有用于检测输出光束916的光传感器。检测单元920的输出由adc单元930转换为数字信号。
[0552]
例如,光乘法单元916可以实现作为具有衍射光学组件(例如:光栅或孔洞)的无源集成硅光子波导。光乘法单元916可被配置以几乎零功率消耗执行乘法操作。
[0553]
有许多方法对输入数据进行编码以供光处理器906使用。例如,数字输入向量可以被编码作为传播通过光乘法单元916的光输入。光乘法单元916在光域中对接收的光输入执行乘法。由光乘法单元916执行的乘法由光乘法单元916的内部配置来确定,例如包括沿着光传播路径在一维上布置的衍射光学组件的尺寸、位置和几何形状,以及杂质的掺杂(如果有的话)。
[0554]
可以以各种方式实现光乘法单元916。图10示出了使用衍射组件的一维布置的光乘法单元916的示例的示例的图。光乘法单元916可包括用于接收光输入1002的输入波导、与输入波导光学通信的一维的光干涉单元1004,以及与光干涉单元1004光学通信的用于提供光输出1006的输出波导。光干涉单元1004包括多个衍射光学组件,并且执行光输入到光输出的转换(例如:线性变换)。输出波导引导光干涉单元1004输出的光信号。
[0555]
在一些实施例中,光干涉单元1004包括细长基板,细长基板具有沿着光传播路径在一维上布置的衍射组件。例如,可以在基板中钻出或蚀刻多个孔洞。这些孔洞的尺寸在数量级上可与输入光的波长的尺寸相当,使得光被孔洞(或定义孔洞的结构)衍射。孔洞可以具有相同或不同的尺寸。基板可以由对于输入光为透明或半透明的材料制成,例如相对于输入光具有1%至99%的传输率。在一些实施例中,全息方法也可用于在基板中形成衍射光学组件。
[0556]
当设计光干涉单元1004时,考虑衍射组件沿着光束的传播路径的尺寸和位置。可以使用优化处理来确定衍射光学组件的配置。例如,基板可以分成一系列像素,并且每个像素可被填充基板材料(无孔洞)或被填充空气(孔洞)。可以迭代地修改像素的配置,并且对于像素的每个配置,可以通过使光通过衍射光学组件并评估输出来执行仿真。在执行像素的所有可能配置的仿真之后,选择提供最接近所期望的乘法处理的结果的配置作为光干涉单元1004的衍射光学组件配置。
[0557]
作为另一实施例,衍射组件最初被配置为一系列孔洞。孔洞的位置和尺寸可以与它们的初始配置稍微不同。可以迭代地调整每个孔洞的参数,并且可以执行仿真以找到孔洞的优化配置。
[0558]
在一些实施例中,机器学习处理用于设计一维衍射光学组件。确定像素如何影响输入光的分析函数,并且使用梯度下降方法来确定像素的最佳配置。
[0559]
在一些实施例中,光乘法单元916可实施作为用户可变部件,并且可以为不同应用
安装具有不同光干涉单元1004的不同光乘法单元916。例如,系统900可被配置作为细菌检测系统,并且光干涉单元1004可被配置以实现用于分析dna序列以检测某些细菌菌株的乘法函数。例如,第一光乘法单元可具有第一光干涉单元,第一光干涉单元包括1d无源衍射光学组件,其被配置以实现用于检测第一组细菌的第一乘法函数。第二光乘法单元可具有第二光干涉单元,第二光干涉单元包括1d无源衍射光学组件,其被配置以实现用于检测第二组细菌的第二乘法函数,等等。第一和第二光乘法单元可以由专门开发用于检测不同细菌的技术的不同公司来开发。当用户想要使用系统900来检测第一组细菌时,用户可以将第一光乘法单元插入至系统中。当用户想要使用系统900来检测第二组细菌时,用户可以换出第一光乘法单元并且将第二光乘法单元插入至系统中。通过使用一维衍射光学组件,可以以低成本制造激光单元908、调制器912、检测单元920以及adc单元930。
[0560]
在一些实施例中,光乘法单元916包括保护具有1d衍射光学组件的基板的外壳(例如:匣盒)。外壳支持耦合到输入波导的输入接口,以及耦合到输出波导的输出接口。输入接口被配置以接收来自调制器912的输出,并且输出接口被配置以将光乘法单元916的输出传输到检测单元920。光乘法单元916可以被设计作为适合由普通消费者处理的模块,允许用户容易地从一个光乘法单元916切换到另一个光乘法单元916。机器学习技术随着时间而改进。用户可通过换出旧光乘法单元916,并且插入新的升级版本来升级系统900。
[0561]
在一些实施例中,系统900是光学计算平台,其被配置为可利用不同公司所提供的光乘法单元进行操作。这允许不同公司为各种应用开发不同的1d无源光乘法功能。1d无源光乘法功能以标准化包装出售给最终用户,其可被安装在光学计算平台中以允许系统900执行各种智能功能。
[0562]
在一些实施例中,系统可以具有用于支撑多个光乘法单元916的保持器机构,并且可以提供机械处理机构以用于自动换出光乘法单元916。系统确定当前应用需要哪个光乘法单元916,并且使用机械处理机构从保持器机构自动取得适当的光乘法单元916并将其插入光处理器906。
[0563]
在一些实施例中,可通过在检测单元920与adc单元930之间加入模拟非线性单元来修改人工神经网络计算系统900。模拟非线性单元被配置以从检测单元920接收输出电压、应用非线性传递函数、以及将转换输出电压输出到adc单元930。控制器902可以从adc单元930得到对应转换输出电压的转换数字输出电压。因为从adc单元930得到的数字输出电压已经被非线性变换(“激活”),所以可以省略控制器902的非线性变换步骤,从而减少了控制器902的计算负担。接着,可以将从adc单元930直接得到的第一转换电压作为第一变换数字输出向量储存在存储单元120中。
[0564]
具有无源衍射光学组件的无源芯片具有许多优点。首先,因为有源组件(通常是最庞大的部件)已被淘汰,任何给定尺寸的芯片都可以包含更大的神经网络。通常有用的神经网络可包括数百万个权重,这在有源芯片上实现是有挑战性的,并且可能需要通过芯片的多次数据运行和芯片的重新编程。相较之下,单一无源芯片可能能够支持整个神经网络。其次,无源芯片的非常低的功率消耗对于“边缘(edge)”应用是重要的,因为这样的应用可能需要小占用面积(footprint)和低功率消耗。第三,无源芯片可以以非常低的成本制造,因为它们不包含有源组件。
[0565]
具有无源衍射光学组件的光矩阵乘法单元也可以用在波分多路复用人工神经网
络计算系统中。例如,图1f中的系统104的omm单元150可以被使用了无源衍射光学组件的omm单元代替。在此示例中,可以移除第二dac子单元134。
[0566]
在一些实施例中,光处理器(例如:504、702)可执行除了矩阵乘法以外的矩阵处理。光矩阵乘法单元502和708可以由执行其他类型的矩阵处理的光矩阵处理单元来代替。
[0567]
图25示出了使用ann计算系统500、700或900执行ann计算的方法2500的示例的流程图,ann计算系统500、700或900包括一个或多个光矩阵乘法单元或具有无源衍射组件的光乘法单元,例如2d omm单元502、3d omm单元708或1d om单元916。处理2500的步骤可以至少部分地由控制器110或902执行。在一些实施例中,方法2500的相应步骤可以并行、组合、循环或以任何顺序运行。
[0568]
在步骤2510中,接收包括输入数据集的人工神经网络(ann)计算请求。输入数据集包括第一数字输入向量。第一数字输入向量是输入数据集的子集。例如,它可以是图像的子区域。ann计算请求可以由各种实体(例如计算机102)产生。计算机可包括各种类型的计算装置中的一个或多个,例如个人计算机、服务器计算机、交通工具计算机和飞行计算机。ann计算请求通常是指将要执行ann计算通知或告知给ann计算系统500、700或900的电信号。在一些实施例中,ann计算请求可以被分为两个或更多个信号。例如,第一信号可以询问ann计算系统500、700或900以检查系统500、700或900是否准备好接收输入数据集。响应于系统500、700或900的肯定应答,计算机可以传输包括输入数据集的第二信号。
[0569]
在步骤2520中,储存输入数据集。控制器110可以将输入数据集储存在存储单元120中。在存储单元120中储存输入数据集可以允许ann计算系统500、700或900的操作中的灵活性,例如可以改善系统的整体性能。例如,通过从存储单元120取得输入数据集的期望部分,可以将输入数据集分为设定大小和格式的数字输入向量。输入数据集的不同部分可以以各种顺序处理,或者被混洗,以允许执行各种类型的ann计算。例如,在输入和输出矩阵大小不同的情况下,混洗可以允许通过块矩阵乘法技术执行矩阵乘法。作为另一示例,将输入数据集储存在存储单元120中可以允许通过ann计算系统500、700或900对多个ann计算请求进行排队,这可以允许系统500、700或900以其全速维持操作而没有不活动的时段。
[0570]
在步骤2530中,基于第一数字输入向量产生第一多个调制器控制信号。控制器110可以将第一dac控制信号传输至dac单元506、712或904,以产生第一多个调制器控制信号。dac单元506、712或904基于第一dac控制信号产生第一多个调制器控制信号,并且调制器阵列144、706或调制器912产生表示第一数字输入向量的光输入向量。
[0571]
第一dac控制信号可包括将要由dac单元506、712或904转换成第一多个调制器控制信号的多个数字值。多个数字值通常对应第一数字输入向量,并且可以通过各种数学关系或查找表来关联。例如,多个数字值可以与第一数字输入向量的元素的值成线性比例。作为另一示例,多个数字值可以通过查找表与第一数字输入向量的元素关联,该查找表被配置以维持数字输入向量与由调制器阵列144、706或调制器912产生的光输入向量之间的线性关系。
[0572]
在一些实施例中,2d omm单元502、3d omm单元708或1d om单元916被配置以基于光输入向量和使用无源衍射组件实施的多个神经网络权重来执行光矩阵处理或光乘法。表示矩阵m的多个神经网络权重可以通过奇异值分解(svd)方法被分解成m=usv*,其中u是m
×
m酉矩阵,s是在对角线具有非负实数的m
×
n对角矩阵,并且v*是n
×
n酉矩阵v的复共轭。
在这种情况下,无源衍射组件可被配置以实现矩阵v、矩阵s以及矩阵u,使得omm单元502或708作为整体实现矩阵m。
[0573]
在步骤2540中,得到对应光矩阵乘法单元或光乘法的光输出向量的第一多个数字光输出。由调制器阵列144、706或调制器912所产生的光输入向量由2d omm单元502、3d omm单元708或1d om单元916处理,并且转换为光输出向量。光输出向量由检测单元146、710或920检测并且转换成电信号,该电信号可由adc单元160或930转换成数字值。控制器110或902可以例如将转换请求传输至adc单元160或930,以开始将检测单元146、710或920输出的电压转换为数字光输出。一旦转换完成,adc单元160或930可将转换结果传输至控制器110或902。可替换地,控制器110或902可以从adc单元160或930取得转换结果。控制器110或902可以从数字光输出形成数字输出向量,该数字输出向量对应输入数字向量的矩阵乘法或向量乘法的结果。例如,数字光输出可以被组织或连接以具有向量格式。
[0574]
在一些实施例中,可基于由控制器110或902将dac控制信号发出到dac单元506、712或904,来设定或控制adc单元160或930以执行adc转换。例如,adc转换可以被设定以在dac单元506、712或904产生调制控制信号的后的预设时间开始。adc转换的这种控制可以简化控制器110或902的操作并且减少必要的控制操作的数量。
[0575]
在步骤2550中,对第一数字输出向量执行非线性变换以产生第一变换数字输出向量。ann的节点或人工神经元通过首先执行从先前层的节点接收的信号的加权总和,然后执行加权总和的非线性变换(“激活”)以产生输出来进行操作。各种类型的ann可以实现各种类型的可微分的非线性变换。非线性变换函数的示例包括修正线性单元(relu)函数、s型函数、双曲正切函数(hyperbolic tangent function),x^2函数以及|x|函数。由控制器110或902对第一数字输出执行这种非线性变换,以产生第一变换数字输出向量。在一些实施例中,非线性变换可由控制器110或902内的专用数字集成电路执行。例如,控制器110或902可包括一个或多个模块或电路块,其特别适于加速一种或多种类型的非线性变换的计算。
[0576]
在步骤2560中,储存第一变换数字输出向量。控制器110或902可以将第一变换数字输出向量储存在存储单元120中。在输入数据集被分成多个数字输入向量的情况下,第一变换数字输出向量对应例如第一数字输入向量的输入数据集的一部分的ann计算结果。如此一来,储存第一变换数字输出向量允许ann计算系统500、700或900在输入数据集的其他数字输入向量上执行和储存额外计算,以在稍后被聚合成单一ann输出。
[0577]
在步骤2570中,输出基于第一变换数字输出向量产生的人工神经网络输出。控制器110或902产生ann输出,其是通过由第一多个神经网络权重所定义的ann处理输入数据集的结果。在输入数据集被分成多个数字输入向量的情况下,所产生的ann输出是包括第一转换数字输出的聚合输出,但是可进一步包括对应输入数据集的其他部分的额外转换数字输出。一旦产生ann输出,就将所产生的输出传输至发起ann计算请求的计算机(例如计算机102)。
[0578]
2d omm单元502、3d omm单元708或1d om单元916可表示神经网络的一个隐藏层的权重系数。如果神经网络具有多个隐藏层,则可以串联耦合额外的2d omm单元502、3d omm单元708或1d om单元916。图26示出了用于实现具有两个隐藏层的神经网络的ann计算系统2600的示例。第一2d光矩阵乘法单元2604表示第一隐藏层的权重系数,第二2d光矩阵乘法单元2606表示第二隐藏层的权重系数。ann计算系统2600包括控制器110、存储单元120、dac
单元506和光电处理器2602。存储单元120和dac单元506类似于图5中的系统500的对应部件。光电处理器2602被配置以使用光学和电子部件执行矩阵计算。
[0579]
光电处理器2602包括第一激光单元142a、第一调制器阵列144a、第一2d光矩阵乘法单元2604、第一检测单元146a、第一模拟非线性单元310a、模拟存储单元320、第二激光单元142b、第二调制器阵列144b、第二2d光矩阵乘法单元2606、第二检测单元146b、第二模拟非线性单元310b以及adc单元160。第一激光单元142、第一调制器阵列144a、第一检测单元146a、第一模拟非线性单元310a以及模拟存储单元320的操作类似于图3b中所示的对应部件。第一2d omm单元2604类似于图5的2d omm 502。模拟存储单元320的输出驱动第二调制器阵列144b,第二调制器阵列144b调制来自第二激光单元142b的激光光以产生光向量。来自第二调制器阵列144b的光向量由第二2d omm单元2606处理,第二2d omm单元2606执行矩阵乘法并产生光输出向量,光输出向量由第二检测单元246b检测。第二检测单元246b被配置以产生对应来自第二2d omm单元2606的光输出向量的光信号的输出电压。adc单元160被配置以将输出电压转换为数字输出电压。控制器110可以从adc单元160得到对应第二2d omm单元2606的光输出向量的数字输出。控制器110可以从数字输出形成数字输出向量,数字输出向量对应输入数字向量的第一矩阵乘法的结果的非线性变换的第二矩阵乘法的结果。通过使用分光器将第二激光单元142b与第一激光单元142a组合,以将来自第一激光单元142a的一些光转向到第二调制器阵列144b。
[0580]
上述原理可以应用于实现具有三个或更多个隐藏层的神经网络,其中每个隐藏层的权重系数由对应的2d omm单元表示。
[0581]
图27示出了用于实现具有两个隐藏层的神经网络的ann计算系统2700的示例。第一3d光矩阵乘法单元2704表示第一隐藏层的权重系数,第二3d光矩阵乘法单元2706表示第二隐藏层的权重系数。ann计算系统2700包括控制器110、存储单元120、dac单元712和光电处理器2702。存储单元120和dac单元712类似于图7中的系统700的对应部件。光电处理器2702被配置以使用光学和电子部件执行矩阵计算。
[0582]
光电处理器2702包括第一激光单元704a、第一调制器阵列706a、第一3d光矩阵乘法单元2704、第一检测单元710a、第一模拟非线性单元310a、模拟存储单元320、第二激光单元704b、第二调制器阵列706b、第二3d光矩阵乘法单元2706、第二检测单元710b、第二模拟非线性单元310b以及adc单元160。第一激光单元704a、第一调制器阵列706a、第一检测单元710a、第一模拟非线性单元310a以及模拟存储单元320的操作类似于图3b中所示的对应部件。第一3d omm单元2704类似于图7的3d omm 708。模拟存储单元320的输出驱动第二调制器阵列706b,第二调制器阵列706b调制来自第二激光单元704b的激光光以产生光向量。来自第二调制器阵列706b的光向量由第二3d omm单元2706处理,第二3d omm单元2706执行矩阵乘法并产生光输出向量,光输出向量由第二检测单元710b检测。第二检测单元710b被配置以产生对应来自第二3d omm单元2706的光输出向量的光信号的输出电压。adc单元160被配置以将输出电压转换为数字输出电压。控制器110可以从adc单元160得到对应第二3d omm单元2406的光输出向量的数字输出。控制器110可以从数字输出形成数字输出向量,数字输出向量对应输入数字向量的第一矩阵乘法的结果的非线性变换的第二矩阵乘法的结果。可以通过使用分光器将来自第一激光单元704a的一些光转向到第二调制器阵列706b来将第二激光单元704b与第一激光单元704a组合。
[0583]
上述原理可以应用于实现具有三个或更多个隐藏层的神经网络,其中每个隐藏层的权重系数由对应的3d omm单元表示。
[0584]
具有无源衍射光学组件的2d omm单元502和3d omm单元708适用于递归神经网络(rnn),其中在第(k)次通过神经网络期间的网络的输出被再循环回至神经网络的输入并且在第(k+1)次通过期间用来作为输入,使得神经网络的权重系数在多通期间保持相同。
[0585]
图28示出了神经网络计算系统2800的示例,其可用于实现递归神经网络。系统2800包括光处理器2802,其以类似于图3b的光处理器140的方式操作,除了omm单元150由2d omm单元2804代替,2d omm单元2804可以类似于图6的2d omm单元502。2d omm单元2804的神经网络权重是固定的,因此系统2800不需要在图3b的系统302中所使用的第二dac子单元134。
[0586]
图29示出了神经网络计算系统2900的示例,其可用于实现递归神经网络。系统2900包括光处理器2902,其以类似于图3b的光处理器140的方式操作,除了激光单元142、调制器阵列144、omm单元150以及检测单元146分别地由图7的激光单元704、调制器阵列706、3d omm单元2904以及检测单元710代替。3d omm单元2904的神经网络权重是固定的,因此系统2900不需要在图3b的系统302中所使用的第二dac子单元134。
[0587]
图30示出了具有1比特内部分辨率的人工神经网络计算系统3000的示例的示例的图。ann计算系统3000类似于图4a的ann计算系统400,除了omm单元150由2d omm单元3004(其类似于图5的2d omm单元502)代替,并且第二驱动器子单元434被省略。ann计算系统3000以类似于ann计算系统400的方式操作,其中输入向量被分解成多个1比特向量,并且接着可以通过在执行1比特向量的一系列矩阵乘法之后对相应矩阵乘法结果求和,来执行某些ann计算。
[0588]
图31示出了具有1比特内部分辨率的人工神经网络计算系统3100的示例的示例的图。ann计算系统3100类似于图4a的ann计算系统400,除了omm单元150由3d omm单元3104(其类似于图7的3d omm单元708)代替,并且第二驱动器子单元434被省略。在图31的示例中,图4a的激光单元142、调制器阵列144以及检测单元146分别地由图7的激光单元704、调制器阵列706以及检测单元710代替。ann计算系统3100以类似于ann计算系统400的方式操作,其中输入向量被分解成多个1比特向量,并且接着可以通过在执行1比特向量的一系列矩阵乘法之后对相应矩阵乘法结果求和,来执行某些ann计算。
[0589]
以下描述光学衍射神经网络的原理。光学衍射神经网络可以实现为几层衍射或传输光学介质。基于惠更斯

菲涅耳原理(huygens

fresnel principle),衍射介质中的每个点可以被认为是二次光源(secondary light source)。对于每个光源,远场衍射(far field diffraction)可以用以下等式描述:
[0590][0591]
这里,指数l和i表示第l层神经网络中的第i个神经元,λ是光的波长,r是距离,其中:
[0592]
[0593]
来自每个二次光源的输出可以被写为输入乘以光源的相位和强度调制:
[0594]
这里,t是传输调制(transmission modulation),其是包括幅度和相位调制两者的多个项(complex term),并且是来自所有先前光源的输入的总和。总体来说,输出可以合并为远场衍射时间w和幅度|a|和额外相位项(phase term)。因此,每一层中的每个点可以被认为是从前一层获取来自多个神经元的输入、并且在输出到下一层之前加入额外的相位和强度调制的神经元。
[0595]
以下描述了可以实现一般酉矩阵乘法的紧凑光子矩阵乘法器单元的紧凑设计(compact design)。参照图11,光子矩阵乘法器单元1100包括调制器1102、多个互连干涉仪1104以及衰减器(attenuator)1106。互连干涉仪1104包括定向耦合器层(或定向耦合器组或定向耦合器集)1108a、1108b、1108c、1108d以及1108e(统称为1108)和移相器层(或移相器组或移相器集)1110a、1110b、1110c以及1110d(统称为1110)。每个定向耦合器层(或定向耦合器组或定向耦合器集)可包括一个或多个定向耦合器。每个移相器层可包括一个或多个移相器。在此示例中,互连干涉仪1104包括五层定向耦合器1108和四层移相器。在其他实施例中,光子矩阵乘法器单元1100可以具有不同的定向耦合器和移相器层。与使用互连马赫曾德尔干涉仪的传统矩阵乘法器单元相比,光子矩阵乘法器单元1100具有定向耦合器1108,定向耦合器1108以使得定向耦合器1108的层数减少的方式定位。
[0596]
这里,短语“定向耦合器层”和“移相器层”中的术语“层”是指基于它们在光子矩阵乘法器单元1100中相对于输入端口和输出端口的位置的一组或一个集合的定向耦合器或移相器。在图11的示例中,输入光信号由第一层定向耦合器1108a处理,然后由第二层移相器1110a处理,然后由第三层定向耦合器1108b处理,然后由第四层移相器1110b处理等。
[0597]
例如,使用互连马赫曾德尔干涉仪的传统矩阵乘法器单元可能需要2n层定向耦合器,而光子矩阵乘法器单元1100仅需要n+2层定向耦合器。n表示输入信号的数量,或输入向量中的数字数(number of digit)。光子矩阵乘法器单元1100中使用的网格架构(mesh architecture)可能具有可以执行一般矩阵计算的光子互连干涉仪的最紧凑的几何结构。
[0598]
图12a示出了针对各种数量的输入信号对光子矩阵乘法器单元1100的互连干涉仪1104与传统设计的互连干涉仪进行比较的图。当存在4个输入信号时,根据传统设计的互连马赫曾德尔干涉仪1200需要8层定向耦合器,而根据新紧凑设计的互连干涉仪1202仅需要6层定向耦合器。当存在3个输入信号时,根据传统设计的互连马赫曾德尔干涉仪1204需要6层定向耦合器,而根据新紧凑设计的互连干涉仪1206仅需要5层定向耦合器。当存在8个输入信号时,根据传统设计的互连马赫曾德尔干涉仪1208需要16层定向耦合器,而根据新紧凑设计的互连干涉仪1210仅需要10层定向耦合器。
[0599]
通常来说,当存在n个输入信号时,根据传统设计的互连马赫曾德尔干涉仪需要2n层定向耦合器,而根据新紧凑设计的互连干涉仪仅需要n+2层定向耦合器。
[0600]
在传统设计中,对于n个输入信号,存在n层马赫曾德尔干涉仪,并且每个马赫曾德尔干涉仪包括定向耦合器,接着是一对移相器,接着是另一个定向耦合器。因此,n层马赫曾德尔干涉仪具有2n层定向耦合器。结果,在传统设计中,对于n个输入信号,需要n层移相器和2n层定向耦合器。
[0601]
相较之下,在新紧凑设计中,一层定向耦合器之后是第一层移相器,接着是一层定向耦合器,接着是第二层移相器,接着是一层定向器耦合器,接着是第三层移相器,依此类推。在最后一层移相器之后,有两层定向耦合器。结果,对于n个输入信号,存在n层移相器和n+2层定向耦合器。
[0602]
因为定向耦合器占据了大量的空间,与传统设计相比,将定向耦合器的数量从2
·
n减少到n+2可以使光子矩阵乘法器单元1100的尺寸显著减小。
[0603]
图12b示出了根据新设计的紧凑互连干涉仪1212的图,其中输入信号的数量是5。
[0604]
以下描述使用梯度下降的紧凑设计分解。上面所述的光子矩阵乘法器的紧凑设计可以采用任何酉矩阵u,并且使用分析分解算法(analytic decomposition algorithm)来确定需要使用移相器实现哪些相位,并因此实现矩阵u。例如,可通过使用梯度下降从给定的矩阵u中提取相位。梯度下降过程如下。从固定的矩阵u开始,并且为紧凑设计的移相器初始化随机权重θ。使用紧凑设计建构矩阵u',即u'=compactdesign(θ)。接着看一下损失函数(loss function)l=|u

u'|^2(这是矩阵的弗罗贝尼乌斯范数(frobenius norm)),并且使用梯度下降最小化该函数(即通过使用梯度更新来更新θ)。
[0605]
参照图13,使用零差检测(homodyne detection)(例如:在输出取出实部(real part)),因此在检测之前提供额外的衰减器层1302以便仿真正交矩阵。这意味着与θ一起,还需要学习衰减器的对角线权重(diagonal weight)x。通过这种方式,可以了解u所需的相位和对角线权重,并且可以以值方式获得分解。
[0606]
以下描述了光生成对抗网络(optical generative adversarial network;ogan),其包括被配置以高效地产生忠实数据(faithful data)的产生器。图14示出了光生成对抗网络1400的示例,其中产生器1404包括被配置或训练以产生类似于真实图像的合成图像1410的神经网络,并且鉴别器1402包括被训练以确定输入图像是真实的还是合成的神经网络。提供初始训练图像集1406以训练鉴别器1402,使得鉴别器1402学习真实图像的特征。相似地,使用一组训练图像(未显示)训练产生器1404,使得产生器1404可以产生具有类似于真实图像的特征的特征的合成图像1410。
[0607]
在一些实施例中,鉴别器1402的训练是被电子地执行的,例如,使用基于晶体管的数据处理器(例如中央处理单元或通用图形处理器单元(general purpose graphic processor unit))来计算鉴别器1402的神经层的权重。相似地,还电子地执行产生器1404的训练以计算产生器1404的神经层的权重。
[0608]
由产生器1404产生的合成图像1410可以被提供给鉴别器1402以进一步训练鉴别器1402,使得鉴别器1402可以更精确地检测真实图像。鉴别器1402的检测结果还可以用于进一步训练产生器1404,使得产生器1404可以产生更逼真的合成图像1410,即更接近真实图像。
[0609]
光生成对抗网络1400具有许多应用。例如,在一些应用中,得到用于训练鉴别器1402的大量真实图像可能是困难的或昂贵的。为了训练鉴别器1402来检测(例如癌细胞),在训练阶段期间需要大量癌细胞图像。从癌症患者得到大量癌细胞图像可能是困难且昂贵的,因此可能没有足够的样本以足够的精确度训练鉴别器1402。为了改进鉴别器1402,训练产生器1404以产生癌细胞的逼真图像,并且使用癌细胞的合成的逼真图像1410来进一步训练鉴别器1402,从而改进鉴别器1402检测癌细胞的能力。
[0610]
在一些实施例中,产生器1404可为光学芯片,其包含有源组件,例如用于修改神经网络的权重的有源移相器。在训练产生器1404之后,固定有源组件以使权重固定。随机噪声1408被馈送到产生器1404,产生器1404接着基于随机噪声1408产生合成图像1410,其中合成图像1410类似于癌细胞的真实图像。
[0611]
在一些实施例中,使用图5、图7和/或图9中所示的光矩阵乘法单元来实现产生器1404。在确定神经网络的权重之后,基于所确定的权重来配置光矩阵乘法单元以实现神经网络。因为产生器1404的输入是随机噪声1408,所以不必具有调制器阵列,允许了产生器1404具有小占用面积。
[0612]
无论产生器1404是使用无源光学芯片还是使用具有有源组件的光学芯片来实现,经过训练的产生器1404都可以产生逼真的图像(例如:类似于癌细胞的真实图像),然后可以将其提供给鉴别器1402,以进一步训练和改进鉴别器1402。产生器1404具有高吞吐量并且可以以比使用传统电子数据处理器(例如通用图形处理单元)潜在地快几个数量级的速率产生合成图像1410。与使用传统电子数据处理器相比,产生器1404具有低功率消耗,可能功率消耗低了几个数量级。
[0613]
产生器1404具有多种应用。例如,由产生器1404产生的合成图像可以在医学领域中具有许多应用。产生器1404可被配置以合成与某些疾病相关的组织的图像,并且合成的图像可以用于训练鉴别器1402,以识别与疾病相关的组织。例如,由产生器1404产生的合成图像可以在自动驾驶或导航领域中具有许多应用。例如,产生器1404可以被配置以产生各种交通状况的合成图像,并且合成图像可以用于训练鉴别器1402,以识别交通状况。例如,由产生器1404产生的合成图像可以在制造质量控制领域(field of manufacturing quality control)中具有许多应用。例如,产生器1404可以被配置以产生具有缺陷的产品的合成图像,并且合成图像可以用于训练鉴别器1402以检测缺陷产品。
[0614]
在一些实施例中,光生成对抗网络1400包括相干光源(coherent light source)、用于随机幅度和相位的输入的滤波器,其中幅度和相位两者都遵循已知的分布。光生成对抗网络1400包括用于快速处理信息的干涉仪网格(mesh of interferometers)。光生成对抗网络1400可以被设计以具有不需要混洗(shuffle)权重的架构,即不对干涉仪进行重新编程。光生成对抗网络1400还可以被设计以包括具有大于1ghz的操作速率的快速移相器。光生成对抗网络1400可以具有非线性的快速执行。例如,它可以具有(i)模拟电子领域中的非线性、(ii)简单的光学非线性、或(iii)数字电子领域中的非线性。
[0615]
以下描述了一种新颖的光子电路,其具有互连的马赫曾德尔干涉仪,并且被配置以实现逻辑门(logic gate)。参照图15,马赫曾德尔干涉仪1500包括移相器1502,其被配置以使得马赫曾德尔干涉仪1500实现以下旋转:
[0616][0617]
参照图16,光子电路1600可以实现xor门和or门。光子电路1600包括马赫曾德尔干涉仪1500、检测器1602以及具有模拟电子阈值的比较器1604。当输入信号x1和x2被提供给光子电路1600时,马赫曾德尔干涉仪1500执行以下操作:
[0618][0619]
检测器1602产生表示检测信号的绝对值的输出,因此检测器1602的输出为:
[0620][0621]
比较器1604的模拟电子阈值被偏置(biased)为1/2,以移除因子,因此比较器1604的输出是:
[0622][0623]
光子电路1600针对输入信号x1、x2的各种组合产生以下结果:
[0624][0625]
在上述内容中,第一对数字是输入信号、第二对数字是检测器1602的输出以及第三对数字是比较器1604的输出。当输入(x1,x2)=(0,0)时,马赫曾德尔干涉仪1500执行乘法,产生结果(0,0),检测器1602输出(0,0),并且比较器1604产生结果(0,0)。当输入(x1,x2)=(0,1)时,马赫曾德尔干涉仪1500执行乘法,产生结果检测器1602输出并且比较器1604产生结果(1,1)。当输入(x1,x2)=(1,0)时,马赫曾德尔干涉仪1500执行乘法,产生结果检测器1602输出并且比较器1604产生结果(1,1)。当输入(x1,x2)=(1,1)时,马赫曾德尔干涉仪1500执行乘法,产生结果检测器1602输出并且比较器1604产生结果(0,1)。上述结果指示出检测器1602在第一输出1606a产生并且在第二输出1606b产生比较器1604移除因子以在第一输出1608a产生xor(x1,x2)并且在第二输出1605b产生or(x1,x2)。
[0626]
参照图17a,光子电路1700可以实现and门和or门。光子电路1700包括马赫曾德尔干涉仪1500和检测器1602,其中检测器1602的输出被再循环一次。当输入信号x1和x2被提供给光子电路1700时,马赫曾德尔干涉仪1500和检测器1602产生输出:
[0627][0628]
检测器1602的输出被再循环回到光子电路1700的输入,并且在信号第二通马赫曾德尔干涉仪1500和检测器1602之后,检测器1602产生最终输出:
[0629][0630]
光子电路1700针对输入信号x1、x2的各种组合产生以下结果:
[0631][0632]
在上述内容中,第一对数字是输入信号,第二对数字是第一次通过之后检测器1602的输出,并且第三对数字是第二通之后检测器1602的输出。当输入(x1,x2)=(0,0)时,在第一次通过马赫曾德尔干涉仪1500之后,检测器1602输出(0,0),并且在第二通马赫曾德尔干涉仪1500之后,检测器1602输出(0,0)。当输入(x1,x2)=(0,1)时,在第一次通过马赫曾德尔干涉仪1500之后,检测器1602输出并且在第二通马赫曾德尔干涉仪1500之后,检测器1602输出(0,1)。当输入(x1,x2)=(1,0)时,在第一次通过马赫曾德尔干涉仪1500之后,检测器1602输出并且在第二通马赫曾德尔干涉仪1500之后,检测器1602输出(0,1)。当输入(x1,x2)=(1,1)时,在第一次通过马赫曾德尔干涉仪1500之后,检测器1602输出并且在第二通马赫曾德尔干涉仪1500之后,检测器1602输出(1,1)。上述结果指示出在两次通过之后,检测器1602在第一输出1704产生表示and(x1,x2)的信号,并且在第二输出1706产生表示or(x1,x2)的信号。
[0633]
图17b显示光子电路1710的另一实施例,其包括第一马赫曾德尔干涉仪1712、第一检测器1714、第二马赫曾德尔干涉仪1716以及第二检测器1718。第二检测器1718产生表示and(x1,x2)的第一输出1720和表示or(x1,x2)的第二输出1722。
[0634]
上面描述了使用包括马赫曾德尔干涉仪、定向耦合器、平面光波导以及光电检测器的光子电路来实现逻辑门(例如and、or和xor门)。逻辑门可用于产生用来排序算法的比较器,例如,类似于链接url<https://en.wikipedia.org/wiki/bitonic_sorter>中所描述的双调排序器(bitonic sorter)的算法。作为另一示例,逻辑门可用于建构类似于sha

2的哈希算法(hashing algorithm),sha

2在链接url<https://en.wikipedia.org/wiki/sha

2>中描述,这是nist建议的标准并且具有许多应用,包括例如比特币挖掘和比特币地址的创建。因为使用上述光子电路所实现的逻辑电路大多是无源的,所以与cmos逻辑门相比,它们可以具有更少的延迟和更低的功率消耗。光学逻辑门的设计中没有光学非线性。非线性
响应来自使用光电检测器的信号的检测。
[0635]
非相干或低相干光学计算系统
[0636]
以下描述了在执行矩阵计算时处理非相干或低相干光信号的光电计算系统。图1中的ann计算系统100的光处理器140包括激光单元142,其产生具有相同波长且光学相干的n个光输出。光矩阵乘法单元150在光域中执行n
×
n矩阵乘法,其中光信号从omm单元150的输入到omm单元150的输出保持相干。上面已经描述了omm单元150在光域中执行矩阵乘法的优点。以下描述了光电计算系统,其不要求光信号在整个矩阵乘法过程中是相干的,其中计算的一部分在光域中执行,并且计算的一部分在电域中执行。光电计算系统的优点已在上面的发明内容中描述。
[0637]
光电计算系统使用不同类型的操作来产生计算结果,每一个操作都是针对最适合于操作的基本物理特性(例如:在能量消耗和/或速度方面)的信号(例如:电信号或光信号)执行的。例如,可以使用光功率分离来执行复制,可以使用基于电流的求和来执行求和,并且可以使用光幅度调制来执行乘法。可以使用这三种类型的操作所执行的计算的示例是将向量乘以矩阵(例如:如人工神经网络计算所采用的)。可以使用这些操作来执行各种其他计算,这些操作表示可以执行各种计算的一组通用线性操作,包括但不限于:向量

向量点积、向量

向量逐元素乘法、向量

标量逐元素乘法、或矩阵

矩阵逐元素乘法。
[0638]
参照图18,光电计算系统1800的示例包括提供光信号的一组光学端口/光源1802a、1802b等。例如,在一些实施例中,光学端口/光源1802a可包括光输入耦合器,其提供耦合到光路径1803的光信号。在其他实施例中,光学端口/光源1802a可包括调制光源,例如激光(例如:用于相干敏感实施例)或发光二极管(light emitting diode;led)(例如:用于相干非敏感实施例),其产生耦合到光路径1803的光信号。一些实施例可以包括将光信号耦合到系统1800中的端口和在系统1800内产生光信号的源的组合。光信号可包括已经或正在使用各种形式的调制中的任何一种来利用信息进行调制的任何光波(例如电磁波,其频谱包括在大约100nm和大约1mm之间的范围内的波长)。光路径1803可以例如基于光波导(例如:嵌入光子集成电路(pic)或光纤中的波导)的引导模式来定义,或者基于光学端口/光源1802a与系统1800的另一模块之间的预定自由空间路径来定义。
[0639]
在一些实施例中,光电计算系统1800被配置以对在通过光学端口/光源1802a、1802b等所提供的相应光信号上编码的输入值阵列执行计算。例如,对于基于神经网络的各种机器学习应用,计算可以实现向量矩阵乘法(或向量对矩阵乘法(vector

by

matrix multiplication)),其中输入向量乘以矩阵以产生输出向量作为结果。光信号可以表示向量的元素,可能仅包括向量的所选元素的子集。例如,对于一些神经网络模型,在计算中使用的矩阵的大小可以大于可以加载到执行计算的向量矩阵乘法部分的硬件系统(例如,较大系统的引擎或协处理器)中的矩阵的大小。因此,执行计算的一部分可以涉及将矩阵和向量分成可以分别提供给硬件系统的较小片段(segment)。
[0640]
图18中所显示的模块可以是对例如64
×
64元素矩阵的相对较大的矩阵(或子矩阵)执行向量矩阵乘法的较大系统的一部分。但是,出于说明的目的,将在使用2
×
2元素矩阵执行向量矩阵乘法的示例计算的上下文中描述模块。在该示例中引用的模块将包括两个复制模块1804a和1804b,四个乘法模块1806a、1806b、1806c以及1806d,以及两个求和模块,
其中仅一个求和模块1808在图18中显示。这些模块将使输入向量乘以矩阵乘以矩阵以产生输出向量对于该向量矩阵乘法输出向量的两个元素中的每一个可以由不同的等式表示,如下所示。
[0641]
y
a
=m
a
x
a
+m
b
x
b
[0642]
y
b
=m
c
x
a
+m
d
x
b
[0643]
这些等式可以分解为可以使用一组基本操作在系统1800中执行的分开的步骤:复制操作、乘法操作以及求和操作。在这些等式中,输入向量的每个元素出现两次,因此有两个复制操作。还有四个乘法操作,并且有两个求和操作。对于使用较大矩阵实现向量矩阵乘法的系统,执行的操作数量会更大,并且使用形状不是方形矩阵的矩阵(即,列数与行数不同),每个操作的相对实例数量将不同。
[0644]
在此示例中,通过复制模块1804a和1804b来执行复制操作。输入向量x
a
和x
b
的元素分别由来自光学端口/光源1802a和1802b的光信号上所编码的值来表示。这些值中的每一个都用于两个等式中,因此复制每个值以将得到的两个副本提供给不同的相应乘法模块。例如,如下面更详细的描述,可以使用已被调制为具有来自一组多个功率水平的功率的光波,或具有来自一组多个占空比的占空比的光波,在特定时隙中编码值。通过复制在其上编码值的光信号来复制值。被编码具有表示元素x
a
的值的光信号由复制模块1804a复制,并且被编码具有表示元素x
b
的值的光信号由复制模块1804b复制。每个复制模块可以例如使用光功率分离器来实现,光功率分离器例如是波导分光器,其将输入波导中的引导模式耦合到y形分离器上的两个输出波导中的每一个,y形分离器逐渐(例如绝热地(adiabatically))分离功率,或者光功率分离器例如是自由空间分束器,其使用具有一个或多个层的介电界面或薄膜,以分别从输入光束传输和反射两个输出光束。
[0645]
在本公开中,当说通过复制模块1804a来复制被编码具有表示元素x
a
的值的光信号时,是指基于输入信号来产生表示元素x
a
的多个信号副本,复制模块1804a的输出信号不一定具有与输入信号相同的幅度。例如,如果复制模块1804a在两个输出信号之间均匀地分离输入信号功率,则两个输出信号中的每一个将具有等于或小于输入信号功率的50%的功率。两个输出信号是彼此的副本,而复制模块1804a的每个输出信号的幅度不同于输入信号的幅度。而且,在具有用于复制给定光信号或光信号子集的一组多个复制模块的一些实施例中,每个单独的复制模块不一定在其产生的副本之间均匀地分离功率,但是该组复制模块可以共同地被配置以提供与下游模块(downstream module)(例如:下游乘法模块)的输入具有基本相等的功率的副本。
[0646]
在该实施例中,乘法操作由四个乘法模块1806a、1806b、1806c以及1806d执行。对于一个光信号的每个副本,一个乘法模块将光信号的副本乘以矩阵元素值,这可以使用光幅度调制来执行。例如,乘法模块1806a将输入向量元素x
a
乘以矩阵元素m
a
。向量元素x
a
的值可以在光信号上编码,并且矩阵元素m
a
的值可以编码作为光幅度调制器的幅度调制水平(amplitude modulation level)。
[0647]
被编码具有向量元素x
a
的光信号可以使用不同形式的幅度调制来编码。光信号的幅度可以对应特定时隙内的物理光波的特定瞬时功率水平p
a
,或者可以对应特定时隙上的
物理光波的特定能量e
a
(随着时间的推移积分的功率(the power integrated over time)产生总能量)。例如,可以调制激光源的功率以具有来自预定的一组多个功率水平的特定功率水平。在一些实施例中,在优化的操作点附近操作电子电路可能是有用的,因此代替在许多可能的功率水平上改变功率,使用优化的“开启(on)”功率水平,其中信号被调制为对于时隙的特定部分是“开启(on)”和“关闭(off)”(处于零功率)。功率在“开启(on)”水平的时间部分对应特定能量水平。可以将功率或能量的这些特定值中的任何一个映射到元素x
a
的特定值(使用线性或非线性映射关系)。在信号处在电域中的后,产生特定总能量水平的随着时间的实际积分(actual integration over time)可以在系统1800的下游发生,如下面更详细的描述。
[0648]
另外,术语“幅度”可以指由光波中的瞬时或积分功率表示的信号的幅度,或者也可以等效地指光波的“电磁场幅度”。这是因为电磁场幅度与信号幅度具有定义良好的关系(例如:通过在引导模式或自由空间光束的横向尺寸上积分电磁场强度(与电磁场幅度的平方成比例)以产生瞬时功率)。这导致调制值之间的关系,因为通过特定值调制电磁场幅度的调制器也可以被认为是通过对应的值m调制基于功率的信号幅度(因为光功率与电磁场幅度的平方成比例)。
[0649]
通过乘法模块用来编码矩阵元素m
a
的光幅度调制器可以通过使用各种物理相互作用中的任何一种来改变光信号的幅度(即光信号中的功率)来操作。例如,调制器可包括环形共振器、电吸收调制器、热电光调制器(thermal electro

optical modulator)或马赫曾德尔干涉(mzi)调制器。在一些技术中,一部分功率被吸收作为物理相互作用的一部分,并且在其他技术中,使用物理相互作用来转移功率,物理相互作用修改光波的其他特性而不是其功率,例如其偏振或相位,或者修改不同光学结构之间的光功率的耦合(例如:使用可调共振器)。对于使用已经在不同路径上行进的光波之间的干涉(例如,相消和/或相长干涉)来进行操作的光幅度调制器,可以使用相干光源(例如激光)。对于使用吸收来操作的光幅度调制器,可以使用相干或非相干或低相干光源中任一个,例如led。
[0650]
在波导1
×
2光幅度调制器的一个示例中,相位调制器被用以通过将相位调制器放置在调制器的多个波导之一中来调制光波中的功率。例如,波导1
×
2光幅度调制器可以将由输入光波导引导的光波分离进入第一臂和第二臂。第一臂包括移相器,其相对于第二臂的相位延迟产生相对相移。接着调制器组合来自第一臂和第二臂的光波。在一些实施例中,不同的相位延迟值通过相长干涉或相消干涉将输入光波导所引导的光波中的功率乘以0到1之间的值。在一些实施例中,第一臂和第二臂组合成两个输出波导中的每一个,并且由接收来自两个输出波导的光波的相应光电检测器所产生的光电流之间的差异提供有符号的乘法结果(例如,乘以

1到1之间的值),如下面更详细的描述。通过适当选择编码光信号的幅度缩放,矩阵元素值的范围可以映射到正值(0到m)或有符号值(

m到m)的任意范围。
[0651]
在该实施例中,求和操作由两个求和模块执行,其中求和模块1808(如图18所示)用于在用来计算输出向量元素y
b
的等式中执行求和。对应的求和模块(未显示)用于在用来计算输出向量元素y
a
的等式中执行求和。求和模块1808产生电信号,电信号表示两个乘法模块1806c和1806d的结果的总和。在此示例中,电信号是电流i
sum
的形式,其分别与由乘法模块1806c和1806d所产生的输出光信号中的功率的总和成比例。在一些实施例中,产生此电流i
sum
的求和操作在光电域中执行,并且在其他实施例中在电域中执行。或者,一些实施
例可以使用用于一些求和模块的光电域求和以及使用用于其他求和模块的电域求和。
[0652]
在电域中执行求和的实施例中,求和模块1808可以使用以下来实现:(1)两个或更多个输入导体,每个输入导体承载输入电流,输入电流的幅度表示乘法模块之一的结果,以及(2)至少一个输出导体,其承载作为输入电流的总和的电流。例如,如果导体是在结点接触的导线,则会发生这种情况。例如(不受理论束缚),基于基尔霍夫电流定律(kirchhoff’s current law)可以理解这种关系,该定律指出流入结点的电流等于流出结点的电流。对于这些实施例,提供给求和模块1808的信号1810a和1810b是输入电流,其可以由光电检测器产生,光电检测器是乘法模块的一部分,乘法模块产生相应的光电流,其幅度与接收的光信号中的功率成比例。求和模块1808接着提供输出电流i
sum
。接着可以使用输出电流的瞬时值(instantaneous value)或输出电流的积分值(integrated value)来表示总和的定量值(quantitative value)。
[0653]
在光电域中执行求和的实施例中,求和模块1808可以使用光电检测器(例如:光电二极管)来实现,光电检测器接收由不同相应乘法模块产生的光信号。对于这些实施例,提供给求和模块1808的信号1810a和1810b是输入光信号,每个输入光信号包括光波,其功率代表乘法模块之一的结果。在该实施例中的输出电流i
sum
是由光电检测器产生的光电流。由于光波的波长是不同的(例如:足够不同使得它们之间不发生显著的相长干涉或相消干涉),光电流将与接收的光信号的功率的总和成比例。光电流也基本等于相应电流的总和,相应电流将导致由分开的等效光电检测器所检测到的相应检测光功率。光波的波长是不同的,但足够接近以使光电检测器具有基本相同的响应(例如:光电检测器的基本平坦的检测带宽内的波长)。如上面所述,使用电流求和的在电域中的求和可以通过避免对多个波长的需求来实现更简单的系统架构。
[0654]
图19a示出了用于使用2
×
2元素矩阵执行向量矩阵乘法的系统的实现的系统1900的示例配置,其中在电域中执行求和操作。在此示例中,输入向量是并且矩阵是输入向量的每个元素在不同的光信号上编码。两个不同的复制模块1902执行光复制操作以在不同的路径(例如:“上”路径和“下”路径)上分离计算。存在四个乘法模块1904,每个乘法模块1904使用光幅度调制乘以不同的矩阵元素。在每个乘法模块1904的输出,存在光电检测模块1906,其将光信号转换为电流形式的电信号。使用求和模块1908将不同输入向量元素的两个上路径组合,并且使用求和模块1908将不同输入向量元素的两个下路径组合,求和模块1908在电域中执行求和。因此,输出向量的每个元素都在不同的电信号上编码。如图19a所示,随着计算的进行,递增地产生输出向量的每个分量,以分别地产生上路径和下路径的以下结果。
[0655]
m
11
v1+m
12
v2[0656]
m
21
v1+m
22
v2[0657]
可以使用各种光电技术中的任何一种来实现系统1900的配置。在一些实施例中,存在公共基板(例如:半导体(例如硅)),其可以支持集成光学部件和电子部件。光路径可以在波导结构中实现,波导结构具有由具有较低光学指数(optical index)的材料围绕的具有较高光学指数的材料,该材料定义用于传播承载了光信号的光波的波导。电路径可以由
导电材料实现,用于传播承载了电信号的电流。(在图19a至图20a、图21a至图24e中,除非另外说明,表示路径的线的厚度用于区分光路径(由较粗的线表示)和电路径(由较细的线或虚线表示)。)可以在公共基板上制造光学装置(例如分离器和光幅度调制器)以及电装置(例如光电检测器和运算放大器(operational amplifier;op

amp))。可替换地,可以使用具有不同基板的不同装置来实现系统的不同部分,并且那些装置可以通过通信信道进行通信。例如,光纤可用于提供通信信道,以在用于实现整个系统的多个装置之间传输光信号。那些光信号可以表示当执行向量矩阵乘法时所提供的输入向量的不同子集,和/或当执行向量矩阵乘法时所计算的中间结果的不同子集,如下面更详细的描述。
[0658]
在本公开中,附图可显示穿过电信号线的光波导,应理解光波导不与电信号线相交。电信号线和光波导可以布置在装置的不同层。
[0659]
图19b示出了用于使用2
×
2元素矩阵执行向量矩阵乘法的系统的实现的系统1920的示例配置,其中在光电域中执行求和操作。在此示例中,使用两个不同的相应波长λ1和λ2将不同的输入向量元素编码在光信号上。而且,乘法模块1904的光输出信号被组合在光组合器模块1910中,使得光波导将两个波长上的两个光信号引导到每个光电求和模块1912,这可以使用光电检测器来实现,如用于图19a的示例中的光电检测模块1906。但是,在这个示例中,总和由表示两个波长中的功率的光电流表示,而不是由离开不同导体之间的结点的电流表示。
[0660]
在本公开中,当附图显示两个彼此交叉的光波导时,从描述中将清楚两个光波导是否实际上彼此光学耦合。例如,从装置的俯视图显示的看起来彼此交叉的两个波导可以在不同的层中实现,并因此不相互交叉。例如,将光信号λ2作为输入提供到复制模块1902的光路径和从乘法模块1904提供光信号m
11
v1到光组合器模块1910的光路径彼此不是光学耦合的,尽管在附图中它们可能看起来彼此交叉。相似地,从复制模块1902提供光信号λ2到乘法模块1904的光路径和从乘法模块1904提供光信号m
21
v1到光组合器模块1910的光路径彼此不是光学耦合的,尽管在附图中它们可能看起来互相交叉。
[0661]
可以扩展图19a和图19b中所示的系统配置以实现用于使用m
×
n元素矩阵执行向量矩阵乘法的系统配置。在此示例中,输入向量是并且矩阵是例如,输入向量元素v1至v
n
由n个波导提供,并且每个输入向量元素由一个或多个复制模块处理,以将输入向量元素的m个副本提供至m个相应路径。存在m
×
n个乘法模块,每个乘法模块使用光幅度调制乘以不同的矩阵元素以产生表示m
ij
·
v
j
(i=1...m,j=1...n))的电信号或光信号。使用第i个求和模块(i=1...m)组合表示m
ij
·
v
j
(j=1...n)的信号,以分别产生m个路径的以下结果。
[0662]
m
11
v1+m
12
v2+

+m
1n
v
n
[0663]
m
21
v1+m
22
v2+

+m
2n
v
n
[0664]

[0665]
m
m1
v1+m
m2
v2+

+m
mn
v
n
[0666]
由于光幅度调制能够将光信号中的功率从其全值(full value)降低到较低值,降低到零(或接近零)功率,因此可以实现乘以0到1之间的任何值。然而,一些计算可能要求乘以大于1的值和/或乘以有符号(正或负)值。首先,为了将范围扩展至0到m
max
(其中m
max
>1),光信号的原始调制可包括通过m
max
显性(explicit)或隐性(implicit)缩放原始向量元素幅度(或等效地,通过1/m
max
缩放映射到线性映射中特定向量元素幅度的值)使得矩阵元素幅度的范围0到1在计算中定量地对应范围0到m
max
。第二,为了将矩阵元素值的正范围0到m
max
扩展到有符号范围

m
max
到m
max
,可以使用对称差分配置,如下面更详细的描述。相似地,对称差分配置也可用于将在各种信号上编码的值的正范围扩展到值的有符号范围。
[0667]
图20a示出了对称差分配置2000的示例,其用于为在光信号上编码的值提供有符号范围的值。在此示例中,存在两个相关的光信号,被编码为无符号值(unsigned value),指定为和其中假设每个值在0(例如:对应接近零的光功率)与v
max
(例如:对应最大功率水平的光功率)之间变化。两个光信号之间的关系是,当一个光信号用“主要(main)”值编码时,另一个光信号用对应的“反对称(anti

symmetric)”值编码,使得在一个光信号上编码的主要值从0单调增加(monotonically increase)到v
max
,在配对光信号上编码的反对称值从v
max
单调减少(monotonically decrease)到0。或者,相反地,当在一个光信号上编码的主要值从v
max
单调减少到0时,在配对光信号上编码的反对称值从0单调增加到v
max
。在上路径和下路径中的光信号被相应光电检测模块1906转换为电流信号之后,电流信号之间的差异可以由电流减法模块(current subtraction module)2002产生。编码和的电流信号之间的差异导致用有符号值v1编码的电流,给定为:
[0668][0669]
其中随着无符号主要值从0单调增加到v
max
并且与其成对的反对称值从v
max
单调减少到0,有符号值v1在

v
max
与v
max
之间单调增加。存在可用于实现图20a的对称差分配置的各种技术,如图20b和图20c所示。
[0670]
在图20b中,在公共端配置(common

terminal configuration)中检测光信号,其中两个光电二极管检测器连接至运算放大器2030的公共端2032(例如:反相端(inverting terminal))。在此配置中,从第一光电二极管检测器2012产生的电流2010和从第二光电二极管检测器2016产生的电流2014在三个导体之间的结点2018组合,以产生电流2010与电流2014之间的差值电流2020。电流2010和电流2014是从相应光电二极管的相对侧提供的,光电二极管在另一端连接到提供相同幅度v
bias
但相反符号的偏置电压的电压源(未显示),如图20b所示。在此配置中,由于在公共结点2018接触的电流的行为而产生差值。差值电流2020表示在电信号上编码的有符号值,其对应在检测的光信号上编码的无符号值之间的差值。运算放大器2030可以配置成跨阻放大器(transimpedance amplifier;tia)配置,其中另一端2024接地,并且输出端2026使用电阻组件2028反馈到公共端2032,电阻组件2028提供与差值电流2020成比例的电压。这种tia配置将提供结果值作为电压信号形式的电信号。
[0671]
在图20c中,光信号在差分端子配置中检测,其中两个光电二极管检测器连接到运算放大器2050的不同端子。在此配置中,从第一光电二极管检测器2042产生的电流2040连接到反相端2052,并且从第二光电二极管检测器2046产生的电流2044连接到非反相端
2054。电流2040和2044从相应光电二极管的相同端提供,光电二极管在另一端连接到提供相同幅度v
bias
和相同符号的偏置电压的电压源(未显示),如图20c所示。在此配置中的运算放大器2050的输出端2056提供与电流2040和电流2044之间的差值成比例的电流。在此配置中,由于运算放大器2050的电路的行为而产生差值。从输出端2056流出的差值电流表示在电信号上编码的有符号值,其对应在检测的光信号上编码的无符号值之间的差值。
[0672]
图21a示出了对称差分配置2100的示例,其用于为被编码为实现乘法模块1904的光幅度调制器的调制水平的值提供有符号范围的值。在此示例中,存在两个相关的调制器,被配置以通过被指定为和的无符号值来进行调制,其中假设每个值在0(例如:对应被调制降低至接近零的光功率)与m
max
(例如:对应保持在最大功率水平附近的光功率)之间变化。两个调制水平之间的关系是,当一个调制水平被配置在“主要”值时,另一个调制水平被配置在对应的“反对称”值使得当一个调制器的主要值从0单调增加到m
max
时,另一个调制器的反对称值从m
max
单调减少到0。或者,相反地,当一个调制器的主要值从m
max
单调减少到0时,另一个调制器的反对称值从0单调增加到m
max
。在复制模块1902复制编码了值v的输入光信号之后,每个调制器将调制的输出光信号提供给对应的光电检测模块1906。在上路径中的乘法模块1904包括与相乘并且提供以值编码的光信号的调制器。在下路径中的乘法模块1904包括与相乘并且提供以值编码的光信号的调制器。在光信号被相应光电检测模块1906转换为电流信号之后,它们之间的差值可以由电流减法模块2102产生。编码和的电流信号之间的差值导致用v编码的电流乘以有符号值m
11
,给定为:
[0673][0674]
其中随着无符号主要值从0单调增加到m
max
并且与其成对的反对称值从m
max
单调减少到0,有符号值m
11


m
max
与m
max
之间单调增加。
[0675]
图21b示出了用于使用2
×
2元素矩阵执行向量矩阵乘法的系统1800的实现的系统2110的示例配置,其中求和操作在电域中执行,并且具有输入向量的有符号元素和矩阵的有符号元素。在此示例中,对于输入向量的每个有符号元素,存在两个编码无符号值的相关光信号。对于第一有符号输入向量元素值v1,有两个指定为和的无符号值,并且对于第二有符号输入向量元素值v2,有两个指定为和的无符号值。在光信号上编码的每个无符号值由复制模块2112接收,复制模块2112执行一个或多个光复制操作,光复制操作在四个相应光路径上产生四个光信号副本。在复制模块2112的一些实施例中,存在三个不同的y形波导分离器,每个y形波导分离器被配置以使用不同的功率比进行分离(这例如可以使用各种光子装置中的任何一种来实现)。例如,第一分离器可以使用1∶4的功率比进行分离,以将25%(1/4)的功率转移到第一路径,第二分离器可以使用1∶3的功率比进行分离,以将25%(1/4=1/3
×
3/4)的功率转移到第二路径,以及第三分离器可以使用1∶2的功率比进行分离,以将25%(1/4=1/2
×
2/3
×
3/4)的功率转移到第三路径,并且将剩余的25%的功率转移到第四路径。例如,作为复制模块2112的一部分的相应分离器可以布置在基板的不同部分中,以将不同副本适当地分配到系统内的不同路径。在复制模块2112的其他实施
例中,可以适当地以不同的分离率分离不同数量的路径。例如,第一分离器可以使用1∶2的功率比分离以提供两个中间光信号。接着,可以使用具有1∶2的功率比的第二分离器来分离这些中间光信号中的一个,以将25%的功率转移到第一路径和第二路径中的每一个,并且可以使用具有1∶2功率比的第三分离器来分离这些中间光信号中的另一个,以将25%的功率转移到第三路径和第四路径中的每一个。
[0676]
系统2110的配置还包括如图21b所示布置的其他模块,以提供表示输出向量的两个不同的输出电信号,输出向量是由系统100执行的向量矩阵乘法的结果。存在16个不同的乘法模块1904,其调制表示输入向量的光信号的不同副本,并且存在16个不同的光电检测模块1906,以提供表示计算的中间结果的电信号。还存在两个不同的求和模块2114a和2114b,其计算每个输出电信号的总体求和。在附图中,以虚线示出了将光电检测模块1906电耦合到求和模块2114b的信号线。因为每个总体求和可包括从来自于用于向量元素和/或矩阵元素的任何对称差分配置的成对主要项(paired main term)中减去的一些反对称项(anti

symmetric term),所以求和模块2114a和2114b可包括用于将求和中的一些项在被反转(invert)之后进行加入的机制(等效地,从非反转项(non

inverted term)中减去)。例如,在一些实施例中,求和模块2114a和2114b包括反相输入端口和非反相输入端口,使得在总体求和中要加入的项可以连接到非反相输入端口,并且在总体求和中要减去的项可以连接到反相输入端口。这种求和模块的一个示例实施例是运算放大器,其中非反相端连接到传导了表示要被加入的信号的电流的导线,并且反相端连接到传导了表示要被减去的信号的电流的导线。可替换地,如果通过其他方式执行反对称项的反转,则在求和模块上可能不需要反相输入端口。求和模块2114a和2114b分别产生以下求和结果,以完成向量矩阵乘法。
[0677][0678][0679]
在本公开中,当附图显示彼此交叉的两条电信号线时,从描述中可以清楚两条电信号线是否彼此电耦合。例如,承载m
21+
v1
+
信号的信号线不电耦合至承载m
11+
v1‑
信号的信号线或承载m
11

v1‑
信号的信号线。
[0680]
可以扩展图21b中所示的系统配置以实现使用m
×
n元素矩阵执行向量矩阵乘法的系统配置,其中输入向量和矩阵包括有符号元素。
[0681]
存在可以用于实现图21b的对称差分配置的各种技术。这些技术中的一些利用1
×
2光幅度调制器来实现乘法模块1904,和/或提供与主要和反对称配对相关的光信号对。图22a示出了1
×
2光幅度调制器2200的示例。在此示例中,1
×
2光幅度调制器2200包括输入分光器2202,其将输入光信号分离以将50%的功率提供给包括相位调制器2204(也称为移相器)的第一路径,并且将50%功率提供给不包括相位调制器的第二路径。可以以不同的方式定义路径,这取决于光幅度调制器是否实现作为自由空间干涉仪或作为波导干涉仪。例如,在自由空间干涉仪中,通过通过分束器的波的传输来定义一条路径,并且通过来自分束器的波的反射来定义另一条路径。在波导干涉仪中,每个路径通过已耦合至入射波导(incoming waveguide)的不同光波导来定义(例如:在y形分离器中)。相位调制器2204可以被配置以产生相移,使得第一路径的总相位延迟与第二路径的总相位延迟相差一个可配置的相移值(例如:可以布置为在0度到180度之间某处的相移的值)。
[0682]1×
2光幅度调制器2200包括2
×
2耦合器2206,其以特定方式使用光学干涉或光学
耦合来组合来自第一和第二输入路径的光波,以在不同的比率将功率转移到第一和第二输出路径中,这取决于相移。例如,在自由空间干涉仪中,0度的相移导致在两个路径之间分离的基本所有输入功率的相长干涉,以从实现耦合器2206的分束器的一个输出路径离开,并且180度的相移导致在两个路径之间分离的基本所有输入功率相长干涉,以从实现耦合器2206的分束器的另一输出路径离开。在波导干涉仪中,0度的相移导致在两个路径之间分离的基本所有输入功率耦合到耦合器2206的一个输出波导,并且180度的相移导致在两个路径之间分离的基本所有输入功率耦合到耦合器2206的另一个输出波导。接着,0度和180度之间的相移可以通过部分相长干涉或相消干涉或部分波导耦合将光波中的功率(和在光波上编码的值)乘以0和1之间的值。然后可以将乘以0和1之间的任何值的乘法映射到如上所述的乘以0和m
max
之间的任何值的乘法。
[0683]
另外,从调制器2200发射的两个光波中的功率之间的关系遵循上面所述的主要和反对称配对的功率之间的关系。当一个信号的光功率的幅度增加时,另一个信号的光功率的幅度减小,因此检测到的光电流之间的差值可以产生有符号向量元素,或者乘以有符号矩阵元素,如本文所述。例如,可以从调制器2200的两个输出端口提供该对相关光信号,使得相关光信号的幅度之间的差值对应将输入值乘以有符号矩阵元素值的结果。图22b示出了1
×
2光幅度调制器2200的对称差分配置2210,其在图20b的对称差分配置的公共终端版本(common

terminal version)中在待检测的输出布置有光信号。对应由一对光电检测器2212和2214所产生的光电流的电流信号在结点2216组合,以提供输出电流信号,其幅度对应相关光信号的幅度之间的差值。在其他实施例中,例如在图20c的对称差分配置中,可以使用不同的电路组合从输出的两个光信号所检测到的光电流。
[0684]
可以使用其他技术来建构1
×
2光幅度调制器以用于实现乘法模块1904,和/或提供与主要和反对称配对相关的光信号对。图22c示出了另一种类型的1
×
2光幅度调制器的对称差分配置2220的另一示例。在此示例中,1
×
2光幅度调制器包括环形共振器2222,其被配置以将输入端口2221的光信号的光功率分到两个输出端口。环形共振器2222(也称为“微环(microring)”)可以例如通过在基板上形成圆形波导来制造,其中圆形波导耦合到对应输入端口2221的直线波导(straight waveguide)。当光信号的波长接近与环形共振器2222相关的共振波长时,耦合到环中的光波在顺时针路径2226上围绕环循环并且在耦合位置相消地干涉,使得降低功率的光波通过路径2224离开到第一输出端口。循环光波也耦合出环,使得另一光波通过弯曲波导在路径2228上离开,弯曲波导将光波引导出第二输出端口。
[0685]
由于光功率围绕环形共振器2222循环的时间尺度与光信号的幅度调制的时间尺度相比较小,因此在两个输出端口之间快速建立反对称功率关系,使得由光电检测器2212检测的光波和由光电检测器2214检测的光波形成主要和反对称对。可以调整环形共振器2222的共振波长以单调减少/增加主要/反对称信号以实现有符号结果,如上面所述。当环完全不共振时,所有功率通过路径2224离开第一输出端口,并且当它完全共振时,适当调整某些其他参数(例如:质量因子和耦合系数)的情况下,所有功率通过路径2228离开第二输出端口。具体来说,为了实现完全的功率传输,表征(characterizing)波导和环形共振器之间的耦合效率的耦合系数应要匹配。在一些实施例中,具有相对浅(shallow)的调整曲线(tuning curve)是有用的,这可以通过降低环形共振器2222的质量因子(例如:通过增加损耗)并相应地增加进入和离开环的耦合系数来实现。浅调整曲线提供对共振波长的较小幅
度灵敏度。诸如温度控制的技术也可用于共振波长的调整和/或稳定性。
[0686]
图22d示出了另一种类型的1
×
2光幅度调制器的对称差分配置2230的另一示例。在此示例中,1
×
2光幅度调制器包括两个环形共振器2232和2234。在输入端口2231的光信号的光功率被分到两个端口。当光信号的波长接近与两个环形共振器2232和2234相关的共振波长时,降低功率的光波通过路径2236离开第一输出端口。光波的一部分还耦合到在顺时针路径2238上围绕环循环的环形共振器2232中,并且还耦合到在逆时针路径2240上围绕环循环的环形共振器2234中。接着将循环的光波耦合出环,使得另一光波通过路径2242离开第二输出端口。在此示例中,由光电检测器2212检测的光波和由光电检测器2214检测的光波也形成主要和反对称配对。
[0687]
图23a和图23b示出了使用光学幅度调制器的不同示例,例如使用1
×
2光幅度调制器2200,用于实现对2
×
2元素矩阵执行向量矩阵乘法的系统1800。图23a示出了光电系统2300a的示例配置,其包括提供表示输入向量的有符号向量元素的值的光幅度调制器2302a和2302b。光幅度调制器2302a提供一对光信号,其为第一有符号向量元素编码一对值和并且光幅度调制器2302b提供一对光信号,其为第二有符号向量元素编码一对值和向量矩阵乘法器(vmm)子系统2310a接收输入光信号,执行分离操作、乘法操作以及如上面所述的一些求和操作,并且提供将由额外电路处理的输出电流信号。在一些示例中,输出电流信号表示被进一步处理以产生最终总和的部分总和,最终总和导致输出向量的有符号向量元素。在此示例中,一些最终求和操作被执行作为由运算放大器2306a和2306b的反相和非反相端处的电流信号表示的不同部分总和之间的减法。减法用以提供有符号值,如上面所述(例如:参考图21b)。此示例还说明了某些元素如何成为多个模块的一部分。具体来说,由波导分离器2303执行的光复制可以被认为是复制模块(例如:图21b中的复制模块2112的一个)的一部分和乘法模块(例如:图21b中的乘法模块1904的一个)的一部分。在vmm子系统2310a内使用的光幅度调制器被配置用于在图20b中所示的公共端子配置(common

terminal configuration)中进行检测。
[0688]
图23b示出了与图23a中所示的光电系统2300a的配置类似的光电系统2300b的示例配置。但是,vmm子系统2310b包括光调制器,其被配置用于在图20c所示的差分端子配置中进行检测。在此示例中,vmm子系统2310b的输出电流信号也表示被进一步处理以产生最终总和的部分总和,最终总和导致输出向量的有符号向量元素。作为由运算放大器2306a和2306b的反相和非反相端子的电流信号表示的不同部分总和之间的减法执行的最终求和操作与图23a的示例不同。但是,如上面所述(例如:参照第21b图),最终减法仍然导致提供有符号值。
[0689]
图23c示出了光电系统2300c的示例配置,其在公共端子配置中进行检测的情况下(如图23a所示的vvm子系统2310a中那样)使用vvm子系统2310c的替代布置,但承载乘法模块的结果的光信号通过波导内(例如,在半导体基板内)的子系统布线至基板的一部分,基板包括被布置以将光信号转换成电信号的检测器。在一些实施例中,此检测器的分组允许缩短电路径,从而可能减少由于在其他情况下将使用的长电路径所引起的电串扰或其他损害。光波导可以在基板的一个层内布线(route),或者在基板的多个层内布线,以允许在基板的两个维度上交叉但不在(基板中的深度的)第三维度中交叉的布线路径中的更大灵活
性。可以在系统配置中进行各种其他更改,包括vmm子系统中所包括的部件的更改。例如,光幅度调制器2302a和2302b可以被包括作为vmm子系统的一部分。或者,vmm子系统可以包括光输入端口,用于接收由除了光幅度调制器之外的模块所产生的成对的主要和反对称光信号,或者用于与其他类型的子系统接口。
[0690]
图24a示出了用于系统1800的实现的系统2400a的示例配置,其中存在承载(host)不同乘法模块(例如:乘法模块1806a、1806b、1806c和1806d)的多个装置2410,每个乘法模块都被配置作为vmm子系统,以通过较大矩阵的不同子矩阵对向量元素的不同子集执行向量矩阵乘法。例如,每个乘法模块可以被配置与系统2110的配置(图21b)相似,但不是使用2
×
2元素矩阵实现vmm子系统,每个乘法模块可以被配置以使用具有与在单一装置上能高效制造的尺寸一样大的尺寸的矩阵来实现vmm子系统,所述单一装置具有用于该装置内的模块的公共基板。例如,每个乘法模块可以使用64
×
64元素矩阵来实现vmm子系统。
[0691]
布置不同的vmm子系统,以便适当地组合每个子矩阵的结果,以产生较大组合矩阵的结果(例如:乘以128
×
128元素矩阵得到的128元素向量的元素)。每组光学端口或光源2402提供一组光信号,其表示较大输入向量的向量元素的不同子集。复制模块2404被配置以复制接收光信号组(在64个光波导的组2403中所引导的光波上编码)内的所有光信号,并且将该组光信号提供给两个不同光波导组中的每一组,光波导组在此示例中是64个光波导的组2405a和64个光波导的组2405b。例如,通过使用波导分离器阵列来执行此复制操作,阵列中的每个分离器通过将光波导的组2403中的光波分成在光波导的组2405a中的第一对应光波和在光波导的组2405b中的第二对应光波,来复制输入向量元素子集(例如,针对每个复制模块2404的64个元素的子集)的一个元素。如果在一些实施例中使用多个波长(例如:w个波长),则分开的波导的数量(和因此2402中分开的端口或源的数量)可以减少例如1/w。每个vmm子系统2410执行向量矩阵乘法,提供其部分结果作为一组电信号(用于输出向量的元素的子集),来自不同vmm子系统2410的相应部分结果对通过如图24a所示的求和模块2414被使用本文所述的任何技术(例如导体之间的结点处的电流求和)加在一起。在一些实施例中,对于任何数量的递归水平,可以通过组合来自较小子矩阵的结果来递归地执行使用期望矩阵的向量矩阵乘法,通过在递归的根级(root level)使用单一元素光幅度调制器来结束。在递归的不同水平,vmm子系统装置可以更紧凑(例如:通过在一个水平的长距离光纤网络连接的不同数据中心,通过在另一水平的数据中心内的光纤连接的不同多芯片装置,通过在另一水平的光纤连接的装置内的不同芯片,以及通过另一水平的芯片上波导(on

chip waveguide)连接的在相同芯片上的模块的不同部分)。
[0692]
图24b示出了系统2400b的另一示例配置,其中额外装置用于对每个vmm子系统2410的光传输和接收。在每个vmm子系统2410的输出中,光发射器阵列2420用于将每个光信号耦合到光传输线内的信道(例如:vmm子系统2410之间的光纤束(fiber bundle)中的光纤,vmm子系统2410可以由分离的装置承载(host)和/或分布在远程位置,或者是在集成装置上的一组波导中的波导,集成装置例如是在公共基板上承载vmm子系统2410的soc)。光接收器阵列2422用于输出向量元素的每个子集,以在部分结果的对应配对由求和模块2414求和之前,将光信号转换成电信号。
[0693]
图24c示出了系统2400c的另一示例配置,其中可以重新配置vmm子系统2410以使得用于不同子矩阵的不同向量矩阵乘法能够以不同方式重新布置。例如,通过组合不同子
矩阵所形成的较大矩阵的形状可为可配置的。在此示例中,两个不同的光信号子集从每组光学端口或光源2402提供至光学开关2430。还存在电开关2440,其能够重新布置电信号子集,电信号子集表示要由求和模块2414求和以提供用于期望的计算的一个输出向量或分离的输出向量的部分结果。例如,代替使用由大小m
×
n的四个子矩阵所组成的大小2m
×
2n的矩阵的向量矩阵乘法,可以重新布置vmm子系统2410以使用大小2m
×
n的矩阵或大小m
×
2n的矩阵。
[0694]
图24d示出了系统2400d的另一示例配置,其中vmm子系统2410可以以其他方式重新配置。光学开关2430可以接收多达四组分离的光信号,并且可以被配置以将不同组的光信号提供至不同的vmm子系统2410,或者将任何组的光信号复制到多个vmm子系统2410。而且,电开关2440可以被配置以将所接收到的电信号组的任何组合提供至求和模块2414。这种更大的可重新配置性使得能够进行更多各种不同的向量矩阵乘法计算,包括使用大小为m
×
3n、3m
×
n、m
×
4n、4m
×
n的矩阵进行乘法。
[0695]
图24e显示系统2400e的另一示例配置,其包括可执行各种操作(例如:数字逻辑操作)的额外电路,以使系统2400e的配置(例如:用于完整的光电计算系统,或者用于较大计算平台的光电子系统)能够用于实施计算技术,例如人工神经网络或其他形式的机器学习。数据储存子系统2450可包括易失性储存介质(例如:sram和/或dram)和/或非易失性储存介质(例如:固态硬盘和/或硬盘)。数据储存子系统2450还可包括分层缓存模块(hierarchical cache module)。储存的数据可以包括例如训练数据、中间结果数据或用于馈送至在线计算系统(online computational system)的生产数据(production data)。数据储存子系统2450可以被配置以提供对输入数据的并发存取(concurrent access),以在由光学端口或光源2402所提供的不同光学信号上进行调制。以数字形式储存的数据到可用于调制的模拟形式的转换可以由电路(例如数字模拟转换器)来执行,电路被包括在数据储存子系统2450的输出、或在光学端口或光源2402的输入、或在两者之间分开。辅助处理子系统(auxiliary processing subsystem)2460可被配置以对数据执行辅助操作(例如:非线性操作、数据混洗(data shuffling)等),数据可以使用vmm子系统2410通过向量矩阵乘法的多次迭代循环。来自那些辅助操作的结果数据2462可以以数字形式传输到数据储存子系统2450。由数据储存子系统2450取得的数据可用于使用适当的输入向量调制光信号,并且用于提供用来在vmm子系统2410中布置光幅度调制器的调制水平的控制信号(未示出)。以模拟形式编码在电信号上的数据到数字形式的转换可以由辅助处理子系统2460内的电路(例如模拟数字转换器)执行。
[0696]
在一些实施例中,提供数字控制器(未示出于附图中)以控制数据储存子系统2450、分层缓存模块、各种电路(例如数字模拟转换器和模拟数字转换器)、vmm子系统2410以及光源2402的操作。例如,数字控制器被配置以执行程序代码以实现具有多个隐藏层的神经网络。数字控制器迭代地执行与神经网络的相应层相关联的矩阵处理。数字控制器通过从数据储存子系统2450取得第一矩阵数据并且基于取得的数据布置vmm子系统2410中的光幅度调制器的调制水平来执行矩阵处理的第一次迭代,其中第一矩阵数据表示神经网络的第一层的系数。数字控制器从数据储存子系统取得一组输入数据,并且布置用于光源2402的调制水平,以产生表示第一输入向量的元素的一组光输入信号。
[0697]
vmm子系统2410基于第一输入向量和第一矩阵数据执行矩阵处理,表示神经网络
的第一层对信号的处理。在辅助处理子系统2450产生第一组结果数据2462之后,数字控制器通过从数据储存子系统取得表示神经网络的第二层的系数的第二矩阵数据,并且基于第二矩阵数据布置vmm子系统2410中的光幅度调制器的调制水平来执行矩阵处理的第二次迭代。第一组结果数据2462用来作为第二输入向量,以布置光源2402的调制水平。vmm子系统2410基于第二输入向量和第二矩阵数据执行矩阵处理,表示神经网络的第二层对信号的处理,以此类推。在最后一次迭代中,产生由神经网络的最后一层处理信号的输出。
[0698]
在一些实施例中,当执行与神经网络的隐藏层相关联的计算时,结果数据2462不是被传输到数据储存子系统2450,而是被数字控制器用来直接控制数字模拟转换器,数字模拟转换器产生用于在vmm子系统2410中布置光幅度调制器的调制水平的控制信号。这减少了将数据储存到数据储存子系统2450和从数据储存子系统2450存取数据所需的时间。
[0699]
可以将其他处理技术结合到系统配置的其他示例中。例如,与其他种类的向量矩阵乘法子系统一起使用的各种技术(例如:不具有本文所述的电求和或有符号乘法而使用光干涉的子系统)可以结合到一些系统配置中,例如美国专利公开第us 2017/0351293号中所述的一些技术,其通过引用并入本文。
[0700]
参照图32a,人工神经网络(ann)计算系统3200包括光电矩阵乘法单元3220,光电矩阵乘法单元3220例如具有如图18至图24d所示的复制模块、乘法模块以及求和模块,以能够在执行矩阵计算时处理非相干或低相干光信号。人工神经网络计算系统3200包括控制器110、存储单元120、dac单元130以及adc单元160,与图1a的系统100的那些相似。控制器110接收来自计算机102的请求,并且将计算输出传输到计算机102,与图1a所示的相似。
[0701]
光电处理器3210包括光源3230,其可以与图1a的激光单元142相似,其中光源3230的多个输出信号是相干的。光源3230还可以使用发光二极管来产生不相干或具有低相干性的多个输出信号。光电矩阵乘法单元3220包括调制器阵列144,调制器阵列144接收由第一dac子单元132基于输入向量产生的调制器控制信号,与由图1a的光处理器140所执行的操作相似。调制器阵列144的输出可比为图18中的光学端口/光源1802的输出。光电矩阵乘法单元3220处理来自调制器阵列144的光信号的方式与在图18中的复制模块1804、乘法模块1806以及求和模块1808处理来自光学端口/光源1802的光信号的方式相似。
[0702]
参照图32b,光电矩阵乘法单元3220接收输入向量并且将输入向量乘以矩阵以产生输出向量以产生输出向量
[0703]
光电矩阵乘法单元3220包括m个光路径1803_1、1803_2、......、1803_m(统称为1803),其承载表示输入向量的光信号。复制模块1804_1将输入光信号v1的副本提供给乘法模块1806_11、1806_21、......、1806_m1。复制模块1804_2将输入光信号v2的副本提供给乘法模块1806_12、1806_22、......、1806_m2。复制模块1804_n将输入光信号v
n
的副本提供给乘法模块1806_1n、1806_2n、......、1806_mn。
[0704]
如上面所述,由复制模块1804_1提供的光信号v1的副本的幅度相对于彼此是相同的(或基本相同的),但是与调制器阵列144所提供的光信号v1的幅度不同。例如,如果复制
模块1804_1在m个信号中均匀地分割由调制器阵列144所提供的光信号v1的信号功率,则m个信号中的每一个将具有等于或小于调制器阵列144所提供的光信号v1的功率的1/m的功率。
[0705]
乘法模块1806_11将输入信号v1与矩阵元素m
11
相乘以产生m
11
·
v1。乘法模块1806_21将输入信号v1与矩阵元素m
21
相乘以产生m
21
·
v1。乘法模块1806_m1将输入信号v1与矩阵元素m
m1
相乘以产生m
m1
·
v1。乘法模块1806_12将输入信号v2与矩阵元素m
12
相乘以产生m
12
·
v2。乘法模块1806_22将输入信号v2与矩阵元素m
22
相乘以产生m
22
·
v2。乘法模块1806_m2将输入信号v2与矩阵元素m
m2
相乘以产生m
m2
·
v2。乘法模块1806_1n将输入信号v
n
与矩阵元素m
1n
相乘以产生m
1n
·
v
n
。乘法模块1806_2n将输入信号v
n
与矩阵元素m
2n
相乘以产生m
2n
·
v
n
。乘法模块1806_mn将输入信号v
n
与矩阵元素m
mn
相乘以产生m
mn
·
v
n
,以此类推。
[0706]
第二dac子单元134基于矩阵元素的值产生控制信号,并且将控制信号传输到乘法模块1806,以使乘法模块1806能够通过例如使用光幅度调制将输入向量元素的值乘以矩阵元素的值。例如,乘法模块1806_11可包括光幅度调制器,并且通过将矩阵元素m
11
的值编码作为应用于表示输入向量元素v1的输入光信号的幅度调制水平,可以实现将输入向量元素v1乘以矩阵元素m
11

[0707]
求和模块1808_1接收乘法模块1806_11、1806_12、......、1806_1n的输出,并且产生等于m
11
v1+m
12
v2+

+m
1n
v
n
的总和y1。求和模块1808_2接收乘法模块1806_21、1806_22、......、1806_2n的输出,并且产生等于m
21
v1+m
22
v2+

+m
2n
v
n
的总和y2。求和模块1808_n接收乘法模块1806_m1、1806_m2、......、1806_mn的输出,并且产生等于m
m1
v1+m
m2
v2+

+m
mn
v
n
的总和y
n

[0708]
在系统3200中,光电矩阵乘法单元3220的输出被提供给adc单元160,而不会如图1a的系统100中的情况那样通过检测单元146。这是因为乘法模块1806或求和模块1808已经将光信号转换成电信号,因此系统3200中不需要分开的检测单元146。
[0709]
图33示出了使用图32a的ann计算系统3200执行ann计算的方法3300的示例的流程图。方法3300的步骤可以由系统3200的控制器110执行。在一些实施例中,方法3300的相应步骤可以并行、组合、循环或以任何顺序运行。
[0710]
在步骤3310中,接收包括输入数据集和第一多个神经网络权重的人工神经网络(ann)计算请求。输入数据集包括第一数字输入向量。第一个数字输入向量是输入数据集的子集。例如,它可以是图像的子区域。ann计算请求可以由各种实体(例如图32a的计算机102)产生。计算机可包括各种类型的计算装置中的一个或多个,例如个人计算机、服务器计算机、交通工具计算机和飞行计算机。ann计算请求通常是指将要执行ann计算通知或告知给ann计算系统100的电信号。在一些实施例中,ann计算请求可以被分为两个或更多个信号。例如,第一信号可以询问(query)ann计算系统3300以检查系统3300是否准备好接收输入数据集和第一多个神经网络权重。响应于系统3300的肯定应答,计算机102可以传输包括输入数据集和第一多个神经网络权重的第二信号。
[0711]
在步骤3320中,储存输入数据集和第一多个神经网络权重。控制器110可以将输入数据集和第一多个神经网络权重储存在存储单元120中。在存储单元120中储存输入数据集和第一多个神经网络权重可以允许ann计算系统3300的操作中的灵活性,例如可以改善系统的整体性能。例如,通过从存储单元120取得(retrieve)输入数据集的期望部分,可以将
输入数据集分为设定大小和格式的数字输入向量。输入数据集的不同部分可以以各种顺序处理,或者被混洗(shuffled),以允许执行各种类型的ann计算。例如,在输入和输出矩阵大小不同的情况下,混洗可以允许通过块矩阵乘法技术执行矩阵乘法。作为另一示例,将输入数据集和第一多个神经网络权重储存在存储单元120中可以允许通过ann计算系统3300对多个ann计算请求进行排队,这可以允许系统3300以其全速维持操作而没有不活动的时段。
[0712]
在一些实施例中,输入数据集可以储存在第一存储子单元中,并且第一多个神经网络权重可以储存在第二存储子单元中。
[0713]
在步骤3330中,基于第一数字输入向量产生第一多个调制器控制信号,并且基于第一多个神经网络权重产生第一多个权重控制信号。控制器110可以将第一dac控制信号传输至dac单元130,以产生第一多个调制器控制信号。dac单元130基于第一dac控制信号产生第一多个调制器控制信号,并且调制器阵列144产生表示第一数字输入向量的光输入向量。
[0714]
第一dac控制信号可包括将要由dac单元130转换成第一多个调制器控制信号的多个数字值。多个数字值通常对应第一数字输入向量,并且可以通过各种数学关系或查找表来关联。例如,多个数字值可以与第一数字输入向量的元素的值成线性比例。作为另一示例,多个数字值可以通过查找表与第一数字输入向量的元素关联,该查找表被配置以维持数字输入向量与由调制器阵列144产生的光输入向量之间的线性关系。
[0715]
控制器110可以将第二dac控制信号传输至dac单元130,以产生第一多个权重控制信号。dac单元130基于第二dac控制信号产生第一多个权重控制信号,并且根据第一多个权重控制信号重新配置光电矩阵乘法单元3220,实现对应第一多个神经网络权重的矩阵。
[0716]
第二dac控制信号可包括将要由dac单元130转换成第一多个权重控制信号的多个数字值。多个数字值通常对应第一多个神经网络权重,并且可以通过各种数学关系或查找表来关联。例如,多个数字值可以与第一多个神经网络权重成线性比例。作为另一示例,多个数字值可以通过对第一多个神经网络权重执行各种数学操作来计算,以产生权重控制信号,权重控制信号可以配置光电矩阵乘法单元3220以执行对应第一多个神经网络权重的矩阵乘法。
[0717]
在步骤3340中,得到对应光电矩阵乘法单元3220的电输出向量的第一多个数字输出。由调制器阵列144所产生的光输入向量由光电矩阵乘法单元3220处理并且转换为电输出向量。电输出向量由adc单元160转换成数字值。控制器110可以例如将转换请求传输至adc单元160,以开始将光电矩阵乘法单元3220输出的电压转换为数字输出。一旦转换完成,adc单元160可将转换结果传输至控制器110。可替换地,控制器110可以从adc单元160取得转换结果。控制器110可以从数字输出形成数字输出向量,该数字输出向量对应输入数字向量的矩阵乘法的结果。例如,数字输出可以被组织或连接以具有向量格式。
[0718]
在一些实施例中,可基于由控制器110将dac控制信号发出到dac单元130,来设定或控制adc单元160以执行adc转换。例如,adc转换可以被设定以在dac单元130产生调制控制信号的后的预设时间开始。adc转换的这种控制可以简化控制器110的操作并且减少必要的控制操作的数量。
[0719]
在步骤3350中,对第一数字输出向量执行非线性变换以产生第一变换数字输出向量。ann的节点或人工神经元通过首先执行从先前层的节点接收的信号的加权总和,然后执行加权总和的非线性变换(“激活”)以产生输出来进行操作。各种类型的ann可以实现各种
类型的可微分的非线性变换。非线性变换函数的示例包括修正线性单元(rectified linear unit;relu)函数、s型函数、双曲正切函数(yperbolic tangent function),x^2函数以及|x|函数。由控制器110对第一数字输出执行这种非线性变换,以产生第一变换数字输出向量。在一些实施例中,非线性变换可由控制器110内的专用数字集成电路执行。例如,控制器110可包括一个或多个模块或电路块,其特别适于加速一种或多种类型的非线性变换的计算。
[0720]
在步骤3360中,储存第一变换数字输出向量。控制器110可以将第一变换数字输出向量储存在存储单元120中。在输入数据集被分成多个数字输入向量的情况下,第一变换数字输出向量对应例如第一数字输入向量的输入数据集的一部分的ann计算结果。如此一来,储存第一变换数字输出向量允许ann计算系统3200在输入数据集的其他数字输入向量上执行和储存额外计算,以在稍后被聚合成单一ann输出。
[0721]
在步骤3370中,输出基于第一变换数字输出向量产生的人工神经网络输出。控制器110产生ann输出,其是通过由第一多个神经网络权重所定义的ann处理输入数据集的结果。在输入数据集被分成多个数字输入向量的情况下,所产生的ann输出是包括第一转换数字输出的聚合输出,但是可进一步包括对应输入数据集的其他部分的额外转换数字输出。一旦产生ann输出,就将所产生的输出传输至发起ann计算请求的计算机(例如计算机102)。
[0722]
可以为实现方法3300的ann计算系统3200定义各种性能指标(performance metric)。定义性能指标可以允许将实现光电处理器3210的ann计算系统3200的性能与用于替代实现电矩阵乘法单元(electronic matrix multiplication unit)的ann计算的其他系统的性能进行比较。在一个方面,可以执行ann计算的速率可以部分地由第一循环时段指示,第一循环时段定义为在存储单元中储存输入数据集和第一多个神经网络权重的步骤3320与在存储单元中储存第一变换数字输出向量的步骤3360之间所经过的时间。因此,第一循环时段包括将电信号转换成光信号(例如:步骤3330)、在光域和电域中执行矩阵乘法(例如:步骤3340)所花费的时间。步骤3320和3360都涉及将数据储存至存储单元120中,这是在ann计算系统3200和没有光电处理器3210的传统ann计算系统之间共享的步骤。如此一来,测量存储到存储交易时间(memory

to

memory transaction time)的第一循环时段可以允许在ann计算系统3200与没有光电处理器3210的ann计算系统(例如实现电矩阵乘法单元的系统)之间进行ann计算吞吐量的实际或公平比较。
[0723]
由于调制器阵列144可以产生光输入向量的速率(例如:在25ghz)和光电矩阵乘法单元3220的处理速率(例如:>25ghz),用于执行单一数字输入向量的单一ann计算的ann计算系统3200的第一循环时段可以接近调制器阵列144的速度的倒数(例如40ps)。在考虑与dac单元130的信号产生和adc单元160的adc转换相关联的延迟之后,第一循环时段可以例如小于或等于100ps、小于或等于200ps、小于或等于500ps、小于或等于1ns、小于或等于2ns、小于或等于5ns、或小于或等于10ns。
[0724]
作为比较,电矩阵乘法单元的m
×
1向量和m
×
m矩阵的乘法运行时间通常与m^2

1个处理器时钟周期(processor clock cycle)成比例。对于m=32,这种乘法将花费大约1024个周期,其在3ghz时钟速度下导致运行时间超过300ns,这比ann计算系统3200的第一循环时段慢几个数量级。
[0725]
在一些实施例中,方法3300进一步包括基于第一变换数字输出向量产生第二多个
调制器控制信号的步骤。在一些类型的ann计算中,单一数字输入向量可以通过相同的ann重复传播或由相同的ann处理。如上面所述,实现多通处理(multi

pass processing)的ann可以称为递归神经网络(recurrent neural network;rnn)。rnn是神经网络,其中在第(k)次通过神经网络期间网络的输出被再循环回到神经网络的输入并且在第(k+1)次通过期间被用作输入。rnn可以在模式识别任务中具有各种应用,例如语音或手写识别。一旦产生了第二多个调制器控制信号,方法3300就可以从步骤3340进行到步骤3360,以完成第一数字输入向量第二通ann。通常来说,根据在ann计算请求中所接收的rnn的特性,可以针对预定数量的循环,重复将转换的数字输出再循环为数字输入向量。
[0726]
在一些实施例中,方法3300进一步包括基于第二多个神经网络权重产生第二多个权重控制信号的步骤。在一些情况下,人工神经网络计算请求进一步包括第二多个神经网络权重。如上面所述,通常来说,除了输入层和输出层之外,ann还具有一个或多个隐藏层。对于具有两个隐藏层的ann,第二多个神经网络权重可对应ann的第一层与ann的第二层之间的连接性。为了通过ann的两个隐藏层处理第一数字输入向量,可以首先根据方法3300处理第一数字输入向量直到步骤3360,其中在步骤3360通过ann的第一隐藏层处理第一数字输入向量的结果储存在存储单元120中。接着控制器110重新配置光电矩阵乘法单元3220以执行对应与ann的第二隐藏层相关联的第二多个神经网络权重的矩阵乘法。一旦光电矩阵乘法单元3220被重新配置,方法3300可以基于第一变换数字输出向量产生多个调制器控制信号,其产生对应第一隐藏层的输出的更新的光输入向量。接着更新的光输入向量由重新配置的光电矩阵乘法单元3220处理,光电矩阵乘法单元3220对应ann的第二隐藏层。通常来说,所述的步骤可以重复直到已经通过ann的所有隐藏层处理了数字输入向量。
[0727]
在光电矩阵乘法单元3220的一些实施例中,光电矩阵乘法单元3220的重新配置速率可明显慢于调制器阵列144的调制速率。在这种情况下,ann计算系统3200的吞吐量可能受到在不能执行ann计算期间,重新配置光电矩阵乘法单元3220所花费的时间量的不利影响。为了减轻光电矩阵乘法单元3220的相对慢的重新配置时间的影响,可以利用批量处理(batch processing)技术,其中两个或更多个数字输入向量传播通过光电矩阵乘法单元3220而没有配置改变,以将重新配置时间分摊(amortize)在更大数量的数字输入向量上。
[0728]
图34示出了说明图33的方法3300的方面的图3290。对于具有两个隐藏层的ann,代替通过第一隐藏层处理第一数字输入向量、重新配置光电矩阵乘法单元3220用于第二隐藏层、通过重新配置的光电矩阵乘法单元3220处理第一数字输入向量、以及对剩余的数字输入向量重复相同的操作,可以首先通过对第一隐藏层(配置#1)配置的光电矩阵乘法单元3220来处理输入数据集的所有数字输入向量,如图3290的上部所示。一旦通过具有配置#1的光电矩阵乘法单元3220处理了所有数字输入向量,则将光电矩阵乘法单元3220重新配置成配置#2,其对应ann的第二隐藏层。此重新配置可以明显慢于光电矩阵乘法单元3220可以处理输入向量的速率。一旦光电矩阵乘法单元3220被重新配置用于第二隐藏层,来自先前隐藏层的输出向量可以由光电矩阵乘法单元3220批量处理。对于具有数十或数十万个数字输入向量的大输入数据集,可以通过大致相同的因素来减少重新配置时间的影响,这可以显著减少ann计算系统3200在重新配置中花费的时间部分。
[0729]
为了实现批量处理,在一些实施例中,方法3300进一步包括通过dac单元基于第二数字输入向量产生第二多个调制器控制信号的步骤;从adc单元得到对应光电矩阵乘法单
元的输出向量的第二多个数字输出的步骤,第二多个数字输出形成第二数字输出向量;对第二数字输出向量执行非线性变换以产生第二变换数字输出向量的步骤;以及在存储单元中储存第二变换数字输出向量的步骤。例如,产生第二多个调制器控制信号可以在步骤3360之后。此外,在这种情况下的步骤3370的ann输出现在是基于第一变换数字输出向量和第二变换数字输出向量。获取、执行和储存步骤类似于步骤3340到步骤3360。
[0730]
批量处理技术是用于提高ann计算系统3200的吞吐量的多种技术之一。用于提高ann计算系统3200的吞吐量的另一种技术是通过利用波分多路复用(wdm)并行处理多个数字输入向量。如上面所述,wdm是通过公共传播信道(例如光电矩阵乘法单元3220的波导)同时传播不同波长的多个光信号的技术。与电信号不同,不同波长的光信号可以通过公共信道传播,而不会影响在同一信道上不同波长的其他光信号。此外,可以使用诸如光学多路复用器和多路分解器的公知结构从公共传播信道添加(多路复用(multiplexed))或丢弃(多路分解(demultiplexed))光信号。
[0731]
在ann计算系统3200的背景下,不同波长的多个光输入向量可以独立地产生、同时传播通过光电矩阵乘法单元3220的光路径和光学处理部件(例如:光幅度调制器)、以及由电子处理部件(例如:检测器和/或求和模块)独立地处理以增强ann计算系统3200的吞吐量。
[0732]
参照图35a,在一些实施例中,波分多路复用(wdm)人工神经网络(ann)计算系统3500包括光电处理器3510,光电处理器3510包括光电矩阵乘法单元3520,光电矩阵乘法单元3520具有如图18至图24d所示的复制模块、乘法模块以及求和模块,以能够在执行矩阵计算时处理非相干或低相干光信号,其中光信号以多个波长编码。wdm ann计算系统3500类似于ann计算系统3200,除了其中使用了wdm技术,对于ann计算系统3500的一些实施例,光源3230被配置以产生多个波长,例如λ1、λ2以及λ3,类似于图1f的系统104。
[0733]
多个波长可以优选地通过足够大的波长间隔分开,以允许容易地多路复用和多路分解到公共传播信道上。例如,大于0.5nm、1.0nm、2.0nm、3.0nm或5.0nm的波长间隔可以允许简单的多路复用和多路分解。另一方面,多个波长的最短波长与最长波长之间的范围(“wdm带宽”)可以优选地足够小,使得光电矩阵乘法单元3520的特性或性能在多个波长上保持基本相同。光学部件通常是分散的(dispersive),这意味着它们的光学特性随着波长而变化。例如,mzi的功率分光比可以随着波长而变化。然而,通过将光电矩阵乘法单元3520设计成具有足够大的操作波长窗口(operating wavelength window),并且通过将波长限制在操作波长窗口内,由光电矩阵乘法单元3520对应每一个波长所输出的电输出向量可以是由光电矩阵乘法单元3520实现的矩阵乘法的足够精确的结果。操作波长窗口可以是例如1nm、2nm、3nm、4nm、5nm、10nm或20nm。
[0734]
wdm ann计算系统3500的调制器阵列144包括光调制器组(banks of optical modulators),其被配置以产生多个光输入向量,光调制器组中的每一个对应于多个波长之一并且产生具有相应波长的相应光输入向量。例如,对于具有长度为32和3个波长(例如:λ1、λ2以及λ3)的光输入向量的系统,调制器阵列144可以具有每一组32个调制器的3个组。此外,调制器阵列144还包括光多路复用器,其被配置以将多个光输入向量组合成包括多个波长的组合光输入向量。例如,光多路复用器可以将三个不同波长的三个调制器组的输出组合成光输入向量的每个元素的单一传播信道(例如波导)。如此一来,返回上面的示例,组合
光输入向量将具有32个光信号,每一个信号包括3个波长。
[0735]
wdm ann计算系统3500的光电处理部件进一步被配置以多路分解多个波长并且产生多个多路分解的输出电信号。参照图35b,光电矩阵乘法单元3520包括光路径1803,光路径1803被配置以从调制器阵列144接收包括多个波长的组合光输入向量。例如,光路径1803_1接收在波长λ1、λ2以及λ3的组合光输入向量元素v1。在波长λ1、λ2以及λ3的光输入向量元素v1的副本被提供给乘法模块3530_11、3530_21、
……
、以及3530_m1。在乘法模块3530输出电信号的一些实施例中,乘法模块3530_11输出表示m
11
·
v1的三个电信号,其对应在波长λ1、λ2以及λ3的输入向量元素v1。对应在波长λ1、λ2以及λ3的输入向量元素v1的乘法模块3530_11的输出电信号分别地示为(λ1)、(λ2)以及(λ3)。相似的符号应用于其他乘法模块的输出。乘法模块3530_21输出表示m
21
·
v1的三个电信号,其分别地对应在波长λ1、λ2以及λ3的输入向量元素v1。乘法模块3530_m1输出表示m
m1
·
v1的三个电信号,其对应在波长λ1、λ2以及λ3的输入向量元素v1。
[0736]
在波长λ1、λ2以及λ3的光输入向量元素v2的副本被提供给乘法模块3530_12、3530_22、
……
、以及3530_m2。乘法模块3530_12输出表示m
12
·
v2的三个电信号,其对应在波长λ1、λ2以及λ3的输入向量元素v2。乘法模块3530_22输出表示m
22
·
v2的三个电信号,其对应在波长λ1、λ2以及λ3的输入向量元素v2。乘法模块3530_m2输出表示m
m2
·
v2的三个电信号,其对应在波长λ1、λ2以及λ3的输入向量元素v2。
[0737]
包括波长λ1、λ2以及λ3的光输入向量元素v
n
的副本被提供给乘法模块3530_1n、3530_2n、
……
、以及3530_mn。乘法模块3530_1n输出表示m
1n
·
v
n
的三个电信号,其对应在波长λ1、λ2以及λ3的输入向量元素v
n
。乘法模块3530_2n输出表示m
2n
·
v
n
的三个电信号,其对应在波长λ1、λ2以及λ3的输入向量元素v
n
。乘法模块3530_mn输出表示m
mn
·
v
n
的三个电信号,其对应在波长λ1、λ2以及λ3的输入向量元素v
n
,以此类推。
[0738]
例如,每一个乘法模块3530可包括多路分解器,多路分解器被配置以多路分解包含在多波长光向量的32个信号的每一个中的三个波长,并且将3个单一波长光输出向量布线(route)到耦合至三组运算放大器或跨阻放大器(例如:运算放大器2030(图20b)或2050(图20c))的三组光电检测器(例如:光电检测器2012、2016(图20b)或2042、2046(图20c))。
[0739]
三组求和模块1808接收来自乘法模块3530的输出,并且产生对应在各种波长的输入向量的总和y。例如,三个求和模块1808_1接收乘法模块3530_11、3530_12、
……
、3530_1n的输出,并且产生分别地对应在波长λ1、λ2以及λ3的输入向量元素v1的总和y1(λ1)、y1(λ2)、y1(λ2),其中在每个波长的总和y1等于m
11
v1+m
12
v2+

+m
1n
v
n
。三个求和模块1808_2接收乘法模块3530_21、3530_22、
……
、3530_2n的输出,并且产生分别地对应在波长λ1、λ2以及λ3的输入向量元素v2的总和y2(λ1)、y2(λ2)、y2(λ3),其中在每个波长的总和y2等于m
21
v1+m
22
v2+

+m
2n
v
n
。三个求和模块1808_n接收乘法模块3530_m1、3530_m2、
……
、3530_mn的输出,并且产生分别地对应在波长λ1、λ2以及λ3的输入向量元素v
n
的总和y
n
(λ1)、y
n
(λ2)、y
n
(λ3),其中在每个波长的总和y
n
等于m
m1
v1+m
m2
v2+

+m
mn
v
n

[0740]
再次参照图35a,wdm ann计算系统3500的adc单元160包括adc组(banks of adcs),其被配置以转换光电矩阵乘法单元3520的多个多路分解输出电压(demultiplexed output voltage)。每个adc组对应于多个波长之一,并且产生相应的数字多路分解输出(digitized demultiplexed output)。例如,例如,adc 160的组可以耦合到求和模块1808
的组。
[0741]
控制器110可以实现与方法3300(图33)相似的方法,但是扩展为支持多波长操作。例如,方法可包括从adc单元160得到多个数字多路分解输出的步骤,多个数字多路分解输出形成多个第一数字输出向量的步骤,其中多个第一数字输出向量中的每一个对应多个波长之一;对多个第一数字输出向量中的每一个执行非线性变换,以产生多个变换第一数字输出向量的步骤;以及在存储单元中储存多个变换第一数字输出向量的步骤。
[0742]
在一些情况下,可以专门设计ann,并且可以具体地形成数字输入向量,使得可以在不进行多路分解的情况下加入乘法模块3530的多波长乘积(multi

wavelength product)。在这种情况下,乘法模块3530可以是波长非敏感(wavelength

insensitive)的乘法模块,其不会多路分解多波长乘积的多个波长。如此一来,乘法模块3530的每一个光电检测器有效地将光信号的多个波长加到单一光电流中,并且乘法模块3530输出的每一个电压对应于对多个波长的向量元素和矩阵元素的乘积的总和。求和模块1808(仅需要一个组)输出多个数字输入向量的矩阵乘法结果的逐元素总和(element

by

element sum)。
[0743]
图35c示出了用于使用2
×
2元素矩阵执行向量矩阵乘法的分波多路复用的光电矩阵乘法单元3520的实现的系统3500的示例配置,其中在电域中执行求和操作。在该实施例中,输入向量是并且矩阵是并且矩阵是在该实施例中,输入向量具有多个波长λ1、λ2以及λ3,并且输入向量的每个元素在不同的光信号上编码。两个不同的复制模块1902执行光复制操作以在不同的路径(例如:“上”路径和“下”路径)上分离计算。存在四个乘法模块1904,每个乘法模块1904使用光幅度调制乘以不同的矩阵元素。每个乘法模块1904的输出被提供给多路分解器和一组光电检测模块3310,光电检测模块3310将波分多路复用光信号转换成与波长λ1、λ2以及λ3相关的电流形式的电信号。使用与波长λ1、λ2以及λ3相关的一组求和模块3320来组合不同输入向量元素的两个上路径,并且使用与波长λ1、λ2以及λ3相关的一组求和模块3320来组合不同输入向量元素的两个下路径,其中求和模块3320在电域中执行求和。因此,对每个波长的输出向量的每个元素都在不同的电信号上编码。如图35a所示,随着计算的进行,递增地产生输出向量的每个分量,以对每个波长分别地产生上路径和下路径的以下结果。
[0744]
m
11
v1+m
12
v2[0745]
m
21
v1+m
22
v2[0746]
可以使用各种光电技术中的任何一种来实现系统3500配置。在一些实施例中,存在公共基板(例如:半导体(例如硅)),其可以支持集成光学部件和电子部件。光路径可以在波导结构中实现,波导结构具有由具有较低光学指数(optical index)的材料围绕的具有较高光学指数的材料,该材料定义用于传播承载了光信号的光波的波导。电路径可以由导电材料实现,用于传播承载了电信号的电流。(在图35c中,表示路径的线的厚度用于区分光路径(由较粗的线表示)和电路径(由较细的线或虚线表示)。)可以在公共基板上制造光学装置(例如分离器和光幅度调制器),以及电子装置(例如光电检测器和运算放大器(op

amp))。可替换地,可以使用具有不同基板的不同装置来实现系统的不同部分,并且那些装置可以通过通信信道进行通信。例如,光纤可用于提供通信信道,以在用于实现整个系统的多个装置之间传输光信号。那些光信号可以表示当执行向量矩阵乘法时所提供的输入向量
的不同子集,和/或当执行向量矩阵乘法时所计算的中间结果的不同子集,如下面更详细的描述。
[0747]
到目前为止,作为ann计算的一部分执行的加权总和的非线性变换由控制器110在数字域中执行。在一些情况下,非线性变换可能是计算密集的(computationally intensive)或耗电的,显著增加了控制器110的复杂性,或者在吞吐量或功率效率方面限制了ann计算系统3200(第32a图)的性能。如此一来,在ann计算系统的一些实施例中,可以通过模拟电子设备在模拟域中执行非线性变换。
[0748]
图36示出了ann计算系统3600的示例的示例的图。ann计算系统3600类似于ann计算系统3200,不同之处在于添加了模拟非线性单元310。模拟非线性单元310布置在光电矩阵乘法单元3220和adc单元160之间。模拟非线性单元310被配置以从光电矩阵乘法单元3220接收输出电压、应用非线性传递函数、以及将转换输出电压输出到adc单元160。
[0749]
当adc单元160接收已经由模拟非线性单元310非线性变换的电压时,控制器110可以从adc单元160得到对应转换输出电压的转换数字输出电压。因为从adc单元160得到的数字输出电压已经被非线性变换(“激活”),所以可以省略控制器110的非线性变换步骤,从而减少了控制器110的计算负担。接着,可以将直接从adc单元160得到的第一转换电压作为第一变换数字输出向量储存在存储单元120中。
[0750]
可以以各种方式实现模拟非线性单元310,如上面对图3a的模拟非线性单元310的讨论。使用模拟非线性单元310可以通过减少在数字域中执行的步骤来改善ann计算系统3600的性能,例如吞吐量或功率效率。将非线性变换步骤移出数字域可以允许ann计算系统的操作中的额外的灵活性和改进。例如,在递归神经网络中,光电矩阵乘法单元3220的输出被激活,并且再循环回到光电矩阵乘法单元3220的输入。激活步骤由ann计算系统3200中的控制器110执行,这需要在每次通过光电矩阵乘法单元3220时数字化光电矩阵乘法单元3220的输出电压。然而,因为激活步骤现在在adc单元160的数字化之前执行,所以可以减少在执行递归神经网络计算中所需的adc转换的次数。
[0751]
在一些实施例中,模拟非线性单元310可以集成到adc单元160中作为非线性adc单元。例如,非线性adc单元可以是具有非线性查找表的线性adc单元,非线性查找表将线性adc单元的线性数字输出映射到所期望的非线性变换数字输出。
[0752]
图37示出了ann计算系统3700的示例的示例的图。ann计算系统3700类似于图36的系统3600,不同之处在于它进一步包括模拟存储单元320。模拟存储单元320耦合至dac单元130(例如:通过第一dac子单元132)、调制器阵列144和模拟非线性单元310。模拟存储单元320包括多路复用器,其具有耦合至第一dac子单元132的第一输入和耦合至模拟非线性单元310的第二输入。这允许模拟存储单元320从第一dac子单元132或模拟非线性单元310接收信号。模拟存储单元320被配置以储存模拟电压并且输出所储存的模拟电压。可以以各种方式实现模拟存储单元320,如上面对图3b的模拟存储单元320的讨论。
[0753]
现在将描述ann计算系统3700的操作。由dac单元130(例如:由第一dac子单元132)输出的第一多个调制器控制信号首先通过模拟存储单元320输入至调制器阵列144。在此步骤中,模拟存储单元320可以简单地传递或缓冲第一多个调制器控制信号。调制器阵列144基于第一多个调制器控制信号产生光输入向量,其通过光电矩阵乘法单元3220传播。光电矩阵乘法单元3220的输出电压由模拟非线性单元310非线性变换。此时,代替由adc单元160
数字化,模拟非线性单元310的输出电压由模拟存储单元320储存,其接着输出到调制器阵列144,以被转换成将要通过光电矩阵乘法单元3220传播的下一个光输入向量。在控制器110的控制下,可以在预设时间量或预设数量的循环下执行该递归处理(recurrent processing)。一旦对于给定数字输入向量完成了递归处理,模拟非线性单元310的转换输出电压就由adc单元160转换。
[0754]
在系统3700中使用模拟存储单元320的优点与在图3b的系统302中使用模拟存储单元320的优点相似。相似地,使用系统3700的递归神经网络计算的执行可以与图3b的系统302相似。
[0755]
如上面对图4a的系统400的讨论,使用ann计算系统具有优点,ann计算系统内部操作在比输入数据集的分辨率低的比特分辨率,同时保持ann计算输出的分辨率。参照图38,示出了具有1比特内部分辨率的人工神经网络(ann)计算系统3800的示例的示例的图。ann计算系统3800与ann计算系统3200(图32a)相似,不同之处在于dac单元130现在由驱动器单元430代替,并且adc单元160现在由比较器单元460代替。
[0756]
在图38的系统3800中的驱动器单元430和比较器单元460以类似于在图4a的系统400中的驱动器单元430和比较器460的方式操作。在图38中的ann计算系统3800的操作的数学表示类似于在图4a中所示的ann计算系统400的操作的数学表示。
[0757]
ann计算系统3800通过执行1比特向量的一系列矩阵乘法,接着对相应矩阵乘法结果求和来执行ann计算。使用图4a所示的示例,通过通过驱动器单元430产生对应4个1比特输入向量的4个1比特调制器控制信号的序列,可以将分解的输入向量v
bit0
到v
bit3
中的每一个与矩阵u相乘。这继而产生4个1比特光输入向量的序列,其由通过驱动器单元430配置的光电矩阵乘法单元3220处理,以实现矩阵u的矩阵乘法。接着,控制器110可以从比较器单元460得到对应4个1比特调制器控制信号的序列的4个数字1比特光输出的序列。
[0758]
在将4比特向量分解为4个1比特向量的情况下,每一个向量应该由ann计算系统3800处理,其处理速度是其他ann计算系统(例如系统3200(图32a))可以处理单个4比特向量的速度的四倍,以保持相同的有效ann计算吞吐量。这种增加的内部处理速度可以被视为将4个1比特向量时分多路复用(time

division multiplexing)到用于处理4比特向量的单一时隙(timeslot)中。处理速度所需的增加可以至少部分地通过驱动器单元430和比较器单元460相对于dac单元130和adc单元160的增加的操作速度来实现,因为信号转换处理的分辨率的降低通常造成可实现的信号转换速率的增加。
[0759]
在此示例中,虽然在1比特操作中的信号转换速率增加了四倍,但是相对于4位操作,所产生的功率消耗可以显著降低。如上面所述,信号转换处理的功率消耗通常随着比特分辨率指数地缩放,同时随着转换速率线性地缩放。如此一来,每次转换功率降低16倍可能是由于比特分辨率降低4倍,接着是由于转换速率增加而产生的功率的4倍增加。总而言之,通过ann计算系统3800可以在例如ann计算系统3200之上实现操作功率的4倍减小,同时保持相同的有效ann计算吞吐量。
[0760]
接着,控制器110可以通过将每一个数字1比特光输出乘以相应的权重2^0到2^3,从4个数字1比特光输出建构4比特数字输出向量。一旦建构了4比特数字输出向量,就可以通过对所建构的4比特数字输出向量执行非线性变换来进行ann计算,以产生转换4比特数字输出向量;以及在存储单元120中储存转换4比特数字输出向量。
[0761]
可替换地(或另外地),在一些实施例中,可以对4个数字1比特光输出中的每一个进行非线性变换。例如,阶梯函数非线性函数(step

function nonlinear function)可以用于非线性变换。接着可以从非线性变换的数字1比特光输出建构出转换4比特数字输出向量。
[0762]
虽然已经显示并描述了单独的ann计算系统3800,但通常来说,图32a的ann计算系统3200可以被设计以实现类似于ann计算系统3800的功能。例如,dac单元130可包括1比特dac子单元,其被配置以产生1比特调制器控制信号,并且adc单元160可以被设计为具有1比特的分辨率。这种1比特adc可以与比较器类似或有效地等同于比较器。
[0763]
此外,虽然已经描述了具有1比特内部分辨率的ann计算系统的操作,但通常来说,ann计算系统的内部分辨率可以降低到低于输入数据集的n比特分辨率的中间水平。例如,内部分辨率可以减少到2^y位,其中y是大于或等于0的整数。
[0764]
各种替代系统配置或信号处理技术可以与本文所述的不同系统、子系统以及模块的各种实施例一起使用。
[0765]
在一些实施例中,一些或所有vmm子系统以替代子系统替换可能是有用的,替代子系统包括使用各种复制模块、乘法模块和/或求和模块的不同实施例的子系统。例如,vmm子系统可包括此处所描述的光复制模块和此处所描述的电求和模块,但是乘法模块可以使用在电域而不是光电域中执行乘法操作的子系统代替。在此示例中,光幅度调制器阵列可以由检测器阵列代替,以将光信号转换为电信号,后续接着是电子子系统(例如:asic、处理器或soc)。可选地,如果光信号布线(optical signal routing)将被用于被配置以检测光信号的求和模块,则电子子系统可包括例如使用电调制光源阵列(array of electrically

modulated optical sources)的电光转换。
[0766]
在一些实施例中,对于用于一些或所有vmm计算的一些或所有光信号能够使用单一波长可能是有用的。可替换地,在一些实施例中,为了帮助减少可能需要的光输入端口的数量,输入端口可以接收多路复用光信号,多路复用光信号具有在不同波长的不同光波上编码的不同值。接着,可以在系统中的适当位置将那些光波分开,这取决于复制模块、乘法模块和/或求和模块中的任何一个是否被配置以在多个波长上操作。但是,即使在多波长实施例中,例如对于在相同vmm子系统中使用的不同光信号子集,使用相同波长可能是有用的。
[0767]
在一些实施例中,累加器可用来实现由各种模块接收的光信号和电信号的时域编码,从而减轻对电子电路的需要,以在大量不同功率水平上有效操作。例如,使用二进制(开(on)

关(off))幅度调制编码的在每个符号的n个时隙上具有特定占空比的信号,可以在该信号通过累加器(合并电信号的电流或电压的模拟电子累加器)之后,被转换为每个符号具有n个幅度水平的信号。因此,如果光学装置(例如:光幅度调制器中的相位调制器)能够在符号带宽(symbol bandwidth)b操作,则它们反而可以在符号带宽b/100操作,其中每个符号值使用n=100个时隙。50%的积分幅度具有50%的占空比(例如:前50个时隙在非零的“开”水平,接着是50个时隙在零或接近零的“关”水平),而10%的积分幅度具有10%的占空比(例如:前10个时隙在非零的“开”水平,接着是90个时隙在零的“关”水平)。在本文所述的示例中,这种累加器可以被定位在vmm子系统内的任何位置的每个电信号的路径上,其对于每个电信号一致,例如在用于该vmm子系统中的所有电信号的求和模块之前或者在用于该
vmm子系统中的所有电信号的求和模块之后。vmm子系统还可以被配置使得在保持不同符号的对准的不同电信号之间不存在显著的相对时间移动。
[0768]
参照图40,在一些实施例中,零差检测可用于得到调制信号的相位和幅度。零差检测器4000包括了包括2
×
2多模干涉(mmi)耦合器的分束器4002、两个光电检测器4004a和4004b以及减法器4006。分束器4002接收输入信号e1和e2,分束器402的输出由光电检测器4004a和4004b检测。例如,输入信号e1可以是要被检测的信号,并且输入信号e2可以由具有恒定激光功率的本地振荡器产生。在信号被光电检测器4004a和4004b检测到之前,由分束器4002将本地振荡器信号e2与输入信号e1混合。减法器4006输出光电检测器4004a和4004b的输出之间的差值。减法器4006的输出4008与|e1||e2|sin(θ)成比例,其中|e1|和|e2|是两个输入光场(input optical field)的幅度,θ是它们的相对相位。由于输出与两个光场的乘积相关,因此即使在单一光子水平下也能检测到极弱的光信号。
[0769]
例如,零差检测器4000可用于图1a、图1f、图3a至图4a、图5、图7、图9、图18至24e、图26至图32b以及图35a至图38所示的系统中。零差检测器4000提供信号上的增益(gain),并因此提供更好的信噪比(signal noise ratio)。对于相干系统,零差检测器4000提供了通过检测结果的极性的揭示信号的相位信息的附加益处。
[0770]
在图19b的实施例中,系统1920的配置包括2
×
2元素矩阵,其中使用两个不同的相应波长λ1和λ2在两个光信号上编码两个输入向量元素。可以例如使用两个光纤将两个光信号提供给系统1920的配置。例如,对4
×
4矩阵执行矩阵处理的系统可以接收四个光纤上承载的四个输入光信号。虽然可以使用更多光纤来承载用于处理较大矩阵的系统的更多输入光信号,但因为光纤和光电芯片之间的耦合占用相当大的空间,很难将大量光纤耦合到光电芯片上。
[0771]
减少将光信号承载到光电芯片所需的光纤数量的方法是使用波分多路复用。可以使用单一光纤多路复用和传输具有不同波长的多个光信号。例如,参照图41,在计算系统4100中,具有波长λ1的第一光信号4102由第一调制器4104调制,以产生表示第一输入向量元素v1的第一调制光信号4120。具有波长λ2的第二光信号4106由第二调制器4108调制,以产生表示第二输入向量元素v2的第二调制光信号4122。第一和第二调制光信号由多路复用器4110组合以产生波分多路复用信号,其通过光纤4112被传输到光电芯片4114,光电芯片4114包括多个矩阵乘法模块4116a、4116b、4116c以及4116d(统称为4116)和4118a、4118b、4118c以及4118d(统称为4118)。
[0772]
在光电芯片4114内部,通过多路分解器4118多路分解波分多路复用信号,以分离光信号4120和光信号4122。在此示例中,光信号4120由复制模块4124复制,以产生传输到矩阵乘法模块4116a和4118a的光信号的副本。光信号4122由复制模块4126复制,以产生传输到矩阵乘法模块4116b和4118b的光信号的副本。矩阵乘法模块4116a和4116b的输出使用光耦合器4120a组合,并且组合信号由光电检测器4122a检测。
[0773]
具有波长λ1的第三光信号4124由第三调制器4128调制,以产生表示第三输入向量元素v3的第三调制光信号4132。具有波长λ2的第四光信号4126由第四调制器4130调制,以产生表示第四输入向量元素v4的第四调制光信号4134。第三和第四调制光信号由多路复用器4136组合以产生波分多路复用信号,其通过光纤4138传输到光电芯片4114。
[0774]
在光电芯片4114内部,由光纤4138提供的波分多路复用信号由多路分解器4140多
路分解,以分离光信号4132和4134。在此示例中,光信号4132由复制模块4142复制,以产生传输到矩阵乘法模块4116c和4118c的光信号的副本。光信号4134由复制模块4144复制,以产生传输到矩阵乘法模块4116d和4118d的光信号的副本。矩阵乘法单元4116c和4116d的输出使用光耦合器4120b组合,并且组合信号由光电检测器4122b检测。矩阵乘法单元4118a和4118b的输出使用光耦合器组合,并且组合信号由光电检测器检测。矩阵乘法单元4118c和4118d的输出使用光耦合器组合,并且组合信号由光电检测器检测。
[0775]
在一些实施例中,多路复用器可以多路复用具有三个或更多个(例如:10或100个)波长的光信号,以产生由单一光纤传输的波分多路复用信号,并且光电芯片内部的多路分解器可以多路分解波分多路复用信号,以将具有不同波长的信号分开。这允许更多的光信号并行通过光纤传输到光电芯片,增加了光电芯片的数据处理吞吐量。
[0776]
在一些示例中,图1a的激光单元142包括单个激光器,其提供可以用不同的光信号进行调制的光波。在那种情况下,系统的相应波导中的光波在激光的线宽的分辨率内具有彼此大致相同的公共波长。例如,光波可具有彼此在1nm之内的波长。然而,激光单元142还可包括多个激光器,其能够使用调制到不同相应光波(例如:每个具有1nm或更小的线宽)上的不同的光信号来进行波分复用操作。不同的光波可以具有峰值波长,其通过大于单个激光器的线宽的波长距离(例如,大于1nm)彼此分离。在一些示例中,波分复用系统可以使用被调制到具有几纳米(例如:3nm或更大)的波长的光波上的光信号。然而,如果多路分解器具有更好的分辨率,则wdm系统中不同波长之间的差异也可以小于3nm。
[0777]
本公开所述的数字控制器(例如:用于控制图24e所示的部件)和功能操作可以在数字电子电路中实现,或者在计算机软件、固件或硬件中实现,其包括本公开中的结构及其结构等同物,或者其中的一个或多个组合。本公开所述的主题的实施例可以使用在计算机可读介质上所编码的一个或多个计算机程序指令模块来实现,以由数据处理装置来执行或控制数据处理装置的操作。计算机可读介质可以是制造产品(例如计算机系统中的硬盘驱动器或通过零售管道销售的光盘)或嵌入式系统。计算器可读介质可以分别地获取并随后使用一个或多个计算机程序指令模块进行编码,例如通过有线或无线网络传送一个或多个计算机程序指令模块。计算机可读介质可以是机器可读储存装置、机器可读储存基板、存储装置或它们中的一个或多个的组合。
[0778]
计算机程序(也称为程序、软件、软件应用、脚本(script)或代码)可以用任何形式的编程语言编写,包括编译或直译语言、声明性(declarative)或程序(procedural)语言,并且可以以任何形式部署,包括作为独立程序(stand alone program)或作为模块、部件、子例程或适用于计算环境的其他单元。计算机程序不一定对应于文件系统中的文件。程序可以储存在保存其他程序或数据(例如:储存在标记语言文档(markup language document)中的一个或多个脚本)的文件的一部分中、储存在专用于所讨论的程序的单一文件中、或储存在多个协调文件(multiple coordinated file)(例如:储存一个或多个模块、子程序或代码部分的文件)中。计算机程序可被部署为在一个计算机上或在位于一个站点或分布在多个站点并通过通信网络互连的多个计算机上执行。
[0779]
本公开中所述的处理和逻辑流程可以由执行一个或多个计算机程序的一个或多个可编程处理器(programmable processor)执行,以通过对输入数据进行操作并产生输出来执行功能。处理和逻辑流程也可由专用逻辑电路(special purpose logic circuitry)
执行,并且装置也可以实现为专用逻辑电路,专用逻辑电路例如是现场可编程门阵列(field programmable gate array;fpga)或专用集成电路(asic)。
[0780]
虽然已经结合某些实施例描述了本公开,但应理解本公开不限于所公开的实施例,而是相反地,旨在涵盖包括在所附权利要求范围内的各种修改和等同布置,权利要求的范围应被赋予最广泛的解释,以包含法律允许的所有这些修改和等同结构。
[0781]
例如,图42示出了小系数更频繁出现的数据集的概率分布函数。在另一个示例中,假设数据集具有这样的特性,即系数的概率分布函数(pdf)对于大系数(即具有相对大的绝对值的系数)产生更高的概率(并且因此更频繁的实例)。对于此类数据集(“高系数加权数据集”),可通过设计调制器以使得调制器在较低功率状态下操作以用于使用较大系数(其更经常出现在数据集中)进行,并在高功率状态下使用较小的系数(在数据集中出现的次数较少)进行计算计算来实现降低的功率消耗。
[0782]
本说明书中描述的各种系统的一些背景信息在2018年6月5日提交的美国临时申请62/680,944、2018年10月12日提交的美国临时申请62/744,706和2019年6月4日提交的美国申请16/431,167中披露。将以上申请的全部公开内容通过引用并入本文。
[0783]
尽管在所附权利要求中定义了本公开,但应理解本公开也可以根据以下实施例来定义:
[0784]
实施例1:一种系统,包括:
[0785]
存储单元,被配置以储存数据集和多个神经网络权重;
[0786]
数字模拟转换(digital

to

analog converter;dac)单元,被配置以产生多个调制器控制信号,并且产生多个权重控制信号;
[0787]
光处理器,包括:
[0788]
激光单元,被配置以产生多个光输出;
[0789]
多个光调制器,耦合至激光单元和dac单元,多个光调制器被配置以通过基于多个调制器控制信号调制由激光单元所产生的多个光输出,来产生光输入向量;
[0790]
光矩阵乘法单元,耦合至多个光调制器和dac单元,光矩阵乘法单元被配置以基于多个权重控制信号将光输入向量转换成光输出向量;以及
[0791]
光电检测单元,耦合至光矩阵乘法单元,并且被配置以产生对应光输出向量的多个输出电压;
[0792]
模拟数字转换(analog

to

digital converter;adc)单元,耦合至光电检测单元,并且被配置以将多个输出电压转换成多个数字光输出;
[0793]
控制器,包括集成电路,被配置以执行以下操作:
[0794]
从计算机接收包括输入数据集和第一多个神经网络权重的人工神经网络计算请求,其中输入数据集包括第一数字输入向量;
[0795]
在存储单元中储存输入数据集和第一多个神经网络权重;以及
[0796]
通过dac单元,基于第一数字输入向量产生第一多个调制器控制信号,并且基于第一多个神经网络权重产生第一多个权重控制信号。
[0797]
实施例2:如实施例1的系统,其中操作进一步包括:
[0798]
从adc单元得到对应于光矩阵乘法单元的光输出向量的第一多个数字光输出,第一多个数字光输出形成第一数字输出向量;
[0799]
对第一数字输出向量执行非线性变换,以产生第一变换数字输出向量;以及
[0800]
在存储单元中储存第一变换数字输出向量。
[0801]
实施例3:如实施例2的系统,其中该系统具有第一循环时段,其被定义为在存储单元中储存输入数据集和第一多个神经网络权重的步骤与在存储单元中储存第一变换数字输出向量的步骤之间所经过的时间,以及
[0802]
其中第一循环时段小于或等于1ns。
[0803]
实施例4:如实施例2的系统,其中操作进一步包括:
[0804]
输出基于第一变换数字输出向量所产生的人工神经网络输出。
[0805]
实施例5:如实施例2的系统,其中操作进一步包括:
[0806]
通过dac单元基于第一变换数字输出向量产生第二多个调制器控制信号。
[0807]
实施例6:如实施例2的系统,其中人工神经网络计算请求进一步包括第二多个神经网络权重,并且
[0808]
其中操作进一步包括:
[0809]
基于第一多个数字光输出的获得,通过dac单元基于第二多个神经网络权重产生第二多个权重控制信号。
[0810]
实施例7:如实施例6的系统,其中第一多个神经网络权重和第二多个神经网络权重对应人工神经网络的不同层。
[0811]
实施例8:如实施例2的系统,其中输入数据集进一步包括第二数字输入向量,并且
[0812]
其中操作进一步包括:
[0813]
通过dac单元,基于第二数字输入向量产生第二多个调制器控制信号;
[0814]
从adc单元得到对应于光矩阵乘法单元的光输出向量的第二多个数字光输出,第二多个数字光输出形成第二数字输出向量;
[0815]
对第二数字输出向量执行非线性变换以产生第二变换数字输出向量;
[0816]
在存储单元中储存第二变换数字输出向量;以及
[0817]
输出基于第一变换数字输出向量和第二变换数字输出向量所产生的人工神经网络输出,
[0818]
其中光矩阵乘法单元的光输出向量由基于第二多个调制器控制信号所产生的第二光输入向量产生,第二光输入向量由光矩阵乘法单元基于首先提到的多个权重控制信号来变换。
[0819]
实施例9:如实施例1的系统,进一步包括:
[0820]
模拟非线性单元,被布置在光电检测单元与adc单元之间,模拟非线性单元被配置以从光电检测单元接收多个输出电压、应用非线性传递函数、以及输出多个转换输出电压至adc单元,
[0821]
其中操作进一步包括:
[0822]
从adc单元得到对应转换多个输出电压的第一多个转换数字输出电压,第一多个转换数字输出电压形成第一变换数字输出向量;以及
[0823]
在存储单元中储存第一变换数字输出向量。
[0824]
实施例10:如实施例1的系统,其中控制器的集成电路被配置以大于或等于8ghz的速率产生第一多个调制器控制信号。
[0825]
实施例11:如实施例1的系统,进一步包括:
[0826]
模拟存储单元,被布置在dac单元与多个光调制器之间,模拟存储单元被配置以储存模拟电压,并且输出储存的模拟电压;以及
[0827]
模拟非线性单元,被布置在光电检测单元与adc单元之间,模拟非线性单元被配置以从光电检测单元接收多个输出电压、应用非线性传递函数、以及输出多个转换输出电压。
[0828]
实施例12:如实施例11的系统,其中模拟存储单元包括多个电容器。
[0829]
实施例13:如实施例11的系统,其中模拟存储单元被配置以接收和储存模拟非线性单元的多个转换输出电压,并且将储存的多个转换输出电压输出至多个光调制器,以及
[0830]
其中操作进一步包括:
[0831]
基于产生第一多个调制器控制信号和第一多个权重控制信号,在模拟存储单元中储存模拟非线性单元的多个转换输出电压;
[0832]
通过模拟存储单元输出储存的转换输出电压;
[0833]
从adc单元得到第二多个转换数字输出电压,第二多个转换数字输出电压形成第二变换数字输出向量;以及
[0834]
在存储单元中储存第二变换数字输出向量。
[0835]
实施例14:如实施例1的系统,其中人工神经网络计算请求的输入数据集包括多个数字输入向量,
[0836]
其中激光单元被配置以产生多个波长,
[0837]
其中多个光调制器包括:
[0838]
光调制器组(bank),被配置以产生多个光输入向量,每一个光调制器组对应多个波长之一,并且产生具有相应波长的相应光输入向量;以及
[0839]
光多路复用器,被配置以将多个光输入向量组合成包括多个波长的组合光输入向量,
[0840]
其中光电检测单元进一步被配置以多路分解多个波长,并且产生多个多路分解输出电压,以及
[0841]
其中操作包括:
[0842]
从adc单元得到多个数字多路分解光输出,多个数字多路分解光输出形成多个第一数字输出向量,其中多个第一数字输出向量中的每一个对应多个波长之一;
[0843]
对多个第一数字输出向量中的每一个执行非线性变换,以产生多个变换第一数字输出向量;以及
[0844]
在存储单元中储存多个变换第一数字输出向量,
[0845]
其中多个数字输入向量中的每一个对应多个光输入向量之一。
[0846]
实施例15:如实施例1的系统,其中人工神经网络计算请求包括多个数字输入向量,
[0847]
其中激光单元被配置以产生多个波长,
[0848]
其中多个光调制器包括:
[0849]
光调制器组,被配置以产生多个光输入向量,每一个光调制器组对应多个波长之一,并且产生具有相应波长的相应光输入向量;以及
[0850]
光多路复用器,被配置以将多个光输入向量组合成包括多个波长的组合光输入向
量,以及
[0851]
其中操作包括:
[0852]
从adc单元得到对应光输出向量的第一多个数字光输出,光输出向量包括多个波长,第一多个数字光输出形成第一数字输出向量;
[0853]
对第一数字输出向量执行非线性变换,以产生第一变换数字输出向量;以及
[0854]
在存储单元中储存第一变换数字输出向量。
[0855]
实施例16:如实施例1的系统,其中dac单元包括:
[0856]
1比特dac子单元,被配置以产生多个1比特调制器控制信号,
[0857]
其中adc单元的分辨率为1比特,
[0858]
其中第一数字输入向量的分辨率为n比特,以及
[0859]
其中操作包括:
[0860]
将第一数字输入向量分解为n个1比特输入向量,n个1比特输入向量中的每一个对应第一数字输入向量的n比特中的一个;
[0861]
通过1比特dac子单元产生对应n个1比特输入向量的n个1比特调制器控制信号的序列;
[0862]
从adc单元得到对应n个1比特调制器控制信号的序列的n个数字1比特光输出的序列;
[0863]
从n个数字1比特光输出的序列建构n比特数字输出向量;
[0864]
对建构的n比特数字输出向量执行非线性变换,以产生变换n比特数字输出向量;以及
[0865]
在存储单元中储存变换n比特数字输出向量。
[0866]
实施例17:如实施例1的系统,其中存储单元包括:
[0867]
数字输入向量存储器器,被配置以储存第一数字输入向量,并且包括至少一个sram;以及
[0868]
神经网络权重存储器,被配置以储存多个神经网络权重,并且包括至少一个dram。
[0869]
实施例18:如实施例1的系统,其中dac单元包括:
[0870]
第一dac子单元,被配置以产生多个调制器控制信号;以及
[0871]
第二dac子单元,被配置以产生多个权重控制信号,
[0872]
其中第一dac子单元和第二dac子单元是不同的。
[0873]
实施例19:如实施例1的系统,其中激光单元包括:
[0874]
激光源,被配置以产生光;以及
[0875]
光功率分离器,被配置以将由激光源所产生的光分成多个光输出,其中多个光输出中的每一个具有基本相同的功率。
[0876]
实施例20:如实施例1的系统,其中多个光调制器包括mzi调制器、环形共振调制器或电吸收调制器中的一个。
[0877]
实施例21:如实施例1的系统,其中光电检测单元包括:
[0878]
多个光电检测器;以及
[0879]
多个放大器,被配置以将由光电检测器所产生的光电流转换成多个输出电压。
[0880]
实施例22:如实施例1的系统,其中集成电路是专用集成电路。
[0881]
实施例23:如实施例1的系统,其中光矩阵乘法单元包括:
[0882]
输入波导阵列,用于接收光输入向量;
[0883]
光干涉单元,与输入波导阵列光学通信,用于执行将光输入向量转换成第二光信号阵列的线性变换;以及
[0884]
输出波导阵列,与光干涉单元光学通信,用于引导第二光信号阵列,其中在输入波导阵列中的至少一个输入波导通过光干涉单元与在输出波导阵列中的每一个输出波导光学通信。
[0885]
实施例24:如实施例23的系统,其中光干涉单元包括:
[0886]
多个互连马赫曾德尔干涉(mzi),多个互连mzi中的每一个mzi包括:
[0887]
第一移相器,被配置以改变mzi的分光比;以及
[0888]
第二移相器,被配置以移动mzi的一个输出的相位,
[0889]
其中第一移相器和第二移相器耦合至多个权重控制信号。
[0890]
实施例25:一种系统,包括:
[0891]
存储单元,被配置以储存数据集和多个神经网络权重;
[0892]
驱动器单元,被配置以产生多个调制器控制信号和产生多个权重控制信号;
[0893]
光处理器,包括:
[0894]
激光单元,被配置以产生多个光输出;
[0895]
多个光调制器,耦合至激光单元和驱动器单元,多个光调制器被配置以通过基于多个调制器控制信号调制由激光单元所产生的多个光输出,来产生光输入向量;
[0896]
光矩阵乘法单元,耦合至多个光调制器和驱动器单元,光矩阵乘法单元被配置以基于权重控制信号将光输入向量转换成光输出向量;以及
[0897]
光电检测单元,耦合至光矩阵乘法单元,并且被配置以产生对应光输出向量的多个输出电压;
[0898]
比较器单元,耦合至光电检测单元,并且被配置以将多个输出电压转换成多个数字1比特光输出;以及
[0899]
控制器,包括集成电路,被配置以执行以下操作:
[0900]
从计算机接收包括输入数据集和第一多个神经网络权重的人工神经网络计算请求,其中输入数据集包括具有n比特分辨率的第一数字输入向量;
[0901]
在存储单元中储存输入数据集和第一多个神经网络权重;
[0902]
将第一数字输入向量分解为n个1比特输入向量,n个1比特输入向量中的每一个对应第一数字输入向量的n比特中的一个;
[0903]
通过驱动器单元产生对应n个1比特输入向量的n个1比特调制器控制信号的序列;
[0904]
从比较器单元得到对应n个1比特调制器控制信号的序列的n个数字1比特光输出的序列;
[0905]
从n个数字1比特光输出的序列建构n比特数字输出向量;
[0906]
对建构的n比特数字输出向量执行非线性变换,以产生变换n比特数字输出向量;以及
[0907]
在存储单元中储存变换n比特数字输出向量。
[0908]
实施例26:一种方法,用于在系统中执行人工神经网络计算,系统具有光矩阵乘法
单元,光矩阵乘法单元被配置以基于多个权重控制信号将光输入向量转换成光输出向量,所述方法包括:
[0909]
从计算机接收包括输入数据集和第一多个神经网络权重的人工神经网络计算请求,其中输入数据集包括第一数字输入向量;
[0910]
在存储单元中储存输入数据集和第一多个神经网络权重;
[0911]
通过数字模拟转换(dac)单元,基于第一数字输入向量产生第一多个调制器控制信号,并且基于第一多个神经网络权重产生第一多个权重控制信号;
[0912]
从模拟数字转换(adc)单元得到对应于光矩阵乘法单元的光输出向量的第一多个数字光输出,第一多个数字光输出形成第一数字输出向量;
[0913]
通过控制器对第一数字输出向量执行非线性变换,以产生第一变换数字输出向量;
[0914]
在存储单元中储存第一变换数字输出向量;以及
[0915]
通过控制器输出基于第一变换数字输出向量所产生的人工神经网络输出。
[0916]
实施例27:一种方法,包括:
[0917]
以电子格式提供输入信息;
[0918]
将至少一部分电子输入信息转换成光输入向量;
[0919]
基于光矩阵乘法将光输入向量光学地转换成光输出向量;
[0920]
将光输出向量转换成电子格式;以及
[0921]
将非线性变换电子地应用于电子转换后的光输出向量,以提供电子格式的输出信息。
[0922]
实施例28:如实施例27的方法,进一步包括:
[0923]
对于对应以电子格式所提供的输出信息的新电子输入信息,重复电光转换(electronic

to

optical converting)、光变换(optical transforming)、光电转换(optical

to

electronic converting)以及电应用的非线性变换。
[0924]
实施例29:如实施例28的方法,其中用于初始光变换的光矩阵乘法和重复光变换的光矩阵乘法是相同的,并且对应人工神经网络的相同层。
[0925]
实施例30:如实施例28的方法,其中用于初始光变换的光矩阵乘法和重复光变换的光矩阵乘法是不同的,并且对应人工神经网络的不同层。
[0926]
实施例31:如实施例27的方法,进一步包括:
[0927]
对于电子输入信息的不同部分,重复电光转换、光变换、光电转换以及电应用的非线性变换,
[0928]
其中用于初始光变换的光矩阵乘法和重复光变换的光矩阵乘法是相同的,并且对应人工神经网络的第一层。
[0929]
实施例32:如实施例31的方法,进一步包括:
[0930]
基于由人工神经网络的第一层所产生的用于电子输入信息的多个部分的电子输出信息,以电子格式提供中间信息;以及
[0931]
对于电子中间信息的每一个不同部分,重复电光转换、光变换、光电转换以及电应用的非线性变换,
[0932]
其中用于初始光变换的光矩阵乘法和与电子中间信息的不同部分相关的重复光
变换的光矩阵乘法是相同的,并且对应人工神经网络的第二层。
[0933]
实施例33:一种系统,包括:
[0934]
光处理器,包括无源衍射光学组件,其中无源衍射光学组件被配置以将光输入向量或矩阵变换成光输出向量或矩阵,其表示应用于光输入向量或矩阵和由衍射光学组件的布置所定义的预定向量的矩阵处理的结果。
[0935]
实施例34:如实施例33的系统,其中矩阵处理包括光输入向量或矩阵与由衍射光学组件的布置所定义的预定向量之间的矩阵乘法。
[0936]
实施例35:如实施例33的系统,其中光处理器包括光矩阵处理单元,其包括:
[0937]
输入波导阵列,用于接收光输入向量,
[0938]
包括无源衍射光学组件的光干涉单元,其中光干涉单元与输入波导阵列光学通信,并且被配置以执行将光输入向量转换成第二光信号阵列的线性变换;以及
[0939]
输出波导阵列,与光干涉单元光学通信,用于引导第二光信号阵列,其中输入波导阵列的至少一个输入波导通过光干涉单元与输出波导阵列中的每一个输出波导光学通信。
[0940]
实施例36:如实施例35的系统,其中光干涉单元包括具有孔洞或条带中至少一个的基板,孔洞的尺寸在100nm至10μm的范围内,并且条带的宽度在100nm至10μm的范围内。
[0941]
实施例37:如实施例35的系统,其中光干涉单元包括具有以二维配置来布置的无源衍射光学组件的基板,并且基板包括平面基板或弯曲基板中的至少一个。
[0942]
实施例38:如实施例37的系统,其中基板包括平面基板,其平行于从输入波导阵列到输出波导阵列的光传播方向。
[0943]
实施例39:如实施例33的系统,其中光处理器包括光矩阵处理单元,其包括:
[0944]
输入波导矩阵,用于接收光输入矩阵,
[0945]
包括无源衍射光学组件的光干涉单元,其中光干涉单元与输入波导矩阵光学通信,并且被配置以执行将光输入矩阵变换成第二光信号矩阵的线性变换;以及
[0946]
输出波导矩阵,与光干涉单元光学通信,用于引导第二光信号矩阵,其中输入波导矩阵的至少一个输入波导通过光干涉单元与输出波导矩阵中的每一个输出波导光学通信。
[0947]
实施例40:如实施例39的系统,其中光干涉单元包括具有孔洞或条带(stripe)中至少一个的基板,孔洞的尺寸在100nm至10μm的范围内,并且条带的宽度在100nm至10μm的范围内。
[0948]
实施例41:如实施例39的系统,其中光干涉单元包括具有以三维配置来布置的无源衍射光学组件的基板。
[0949]
实施例42:如实施例41的系统,其中基板具有立方体状、柱状、棱柱状或不规则体积中的至少一个的形状。
[0950]
实施例43:如实施例39的系统,其中光处理器包括光干涉单元,其包括具有无源衍射光学组件的全息图(hologram),光处理器被配置以接收表示光输入矩阵的调制光,并且在光通过全息图时连续转换光,直到光作为光输出矩阵从全息图射出。
[0951]
实施例44:如实施例35或39的系统,其中光干涉单元包括具有无源衍射光学组件的基板,并且基板包括硅、氧化硅、氮化硅、石英、铌酸锂、相变化材料或聚合物中的至少一个。
[0952]
实施例45:如实施例35或39的系统,其中光干涉单元包括具有无源衍射光学组件
的基板,并且基板包括玻璃基板或丙烯酸基板中的至少一个。
[0953]
实施例46:如实施例33的系统,其中无源衍射光学组件由掺杂物来部分地形成。
[0954]
实施例47:如实施例33的系统,其中矩阵处理表示神经网络对输入数据的处理,输入数据由光输入向量表示。
[0955]
实施例48:如实施例33的系统,其中光处理器包括:
[0956]
激光单元,被配置以产生多个光输出;
[0957]
多个光调制器,耦合至激光单元,并且被配置以通过基于多个调制器控制信号调制由激光单元所产生的多个光输出,来产生光输入向量;
[0958]
光矩阵处理单元,耦合至多个光调制器,光矩阵处理单元包括无源衍射光学组件,其被配置以基于由无源衍射光学组件所定义的多个权重,将光输入向量转换成光输出向量;以及
[0959]
光电检测单元,耦合至光矩阵处理单元,并且被配置以产生对应光输出向量的多个输出电信号。
[0960]
实施例49:如实施例48的系统,其中无源衍射光学组件以三维配置来布置,多个光调制器包括二维光调制器阵列,并且光电检测单元包括二维光电检测器阵列。
[0961]
实施例50:如实施例48的系统,其中光矩阵处理单元包括外壳模块(housing module)以支持和保护输入波导阵列、光干涉单元以及输出波导阵列,以及
[0962]
光处理器包括接收模块,接收模块被配置以接收光矩阵处理单元,接收模块包括使光矩阵处理单元能够从多个光调制器接收光输入向量的第一接口(interface),以及使光矩阵处理单元能够将光输出向量传输至光电检测单元的第二接口。
[0963]
实施例51:如实施例48的系统,其中输出电信号包括多个电压信号或多个电流信号中的至少一个。
[0964]
实施例52:如实施例48的系统,进一步包括:
[0965]
存储单元;
[0966]
数字模拟转换(dac)单元,被配置以产生多个调制器控制信号;
[0967]
模拟数字转换(adc)单元,耦合至光电检测单元,并且被配置以将多个输出电信号转换成多个数字输出;以及
[0968]
控制器,包括集成电路,被配置以执行以下操作:
[0969]
从计算机接收包括输入数据集的人工神经网络计算请求,其中输入数据集包括第一数字输入向量;
[0970]
在存储单元中储存输入数据集;以及
[0971]
通过dac单元,基于第一数字输入向量产生第一多个调制器控制信号。
[0972]
实施例53:一种方法,包括:
[0973]
3d打印包括无源衍射光学组件的光矩阵处理单元,其中无源衍射光学组件被配置以将光输入向量或矩阵变换成光输出向量或矩阵,其表示应用于光输入向量或矩阵和由衍射光学组件的布置所定义的预定向量的矩阵处理的结果。
[0974]
实施例54:一种方法,包括:
[0975]
使用一个或多个激光束产生包括无源衍射光学组件的全息图,其中无源衍射光学组件被配置以将光输入向量或矩阵变换成出向量或矩阵,其表示应用于光输入向量或矩阵
和由衍射光学组件的布置所定义的预定向量的矩阵处理的结果。
[0976]
实施例55:一种系统,包括:
[0977]
光处理器,包括以一维方式布置的无源衍射光学组件,其中无源衍射光学组件被配置以将光输入转换成光输出,其表示应用于光输入和由衍射光学组件的布置所定义的预定向量的矩阵处理的结果。
[0978]
实施例56:如实施例55的系统,其中矩阵处理包括光输入与由衍射光学组件的布置所定义的预定向量之间的矩阵乘法。
[0979]
实施例57:如实施例55的系统,其中光处理器包括光矩阵处理单元,其包括:
[0980]
输入波导,用于接收光输入,
[0981]
包括无源衍射光学组件的光干涉单元,其中光干涉单元与输入波导光学通信,并且被配置以执行光输入的线性变换;以及
[0982]
输出波导,与光干涉单元光学通信,用于引导光输出。
[0983]
实施例58:如实施例57的系统,其中光干涉单元包括具有孔洞或光栅(grating)中至少一个的基板,孔洞或光栅组件具有在100nm至10μm的范围内的尺寸。
[0984]
实施例59:一种系统,包括:
[0985]
存储单元;
[0986]
数字模拟转换(dac)单元,被配置以产生多个调制器控制信号;
[0987]
光处理器,包括:
[0988]
激光单元,被配置以产生多个光输出;
[0989]
多个光调制器,耦合至激光单元和dac单元,多个光调制器被配置以通过基于多个调制器控制信号调制由激光单元所产生的多个光输出,来产生光输入向量;
[0990]
光矩阵处理单元,耦合至多个光调制器,光矩阵处理单元包括无源衍射光学组件,其被配置以基于由无源衍射光学组件所定义的多个权重,将光输入向量转换成光输出向量;以及
[0991]
光电检测单元,耦合至光矩阵处理单元,并且被配置以产生对应光输出向量的多个输出电信号;
[0992]
模拟数字转换(adc)单元,耦合至光电检测单元,并且被配置以将输出多个电信号转换成多个数字光输出;
[0993]
控制器,包括集成电路,被配置以执行以下操作:
[0994]
从计算机接收包括输入数据集的人工神经网络计算请求,其中输入数据集包括第一数字输入向量;
[0995]
在存储单元中储存输入数据集;以及
[0996]
通过dac单元,基于第一数字输入向量产生第一多个调制器控制信号。
[0997]
实施例60:如实施例59的系统,其中矩阵处理单元包括无源衍射光学组件,其被配置以将光输入向量转换成光输出向量,光输出向量表示光输入向量与由无源衍射光学组件所定义的预定向量之间的矩阵乘法的乘积。
[0998]
实施例61:如实施例59的系统,其中操作进一步包括:
[0999]
从adc单元得到对应光矩阵处理单元的光输出向量的第一多个数字光输出,第一多个数字光输出形成第一数字输出向量;
[1000]
对第一数字输出向量执行非线性变换,以产生第一变换数字输出向量;以及
[1001]
在存储单元中储存第一变换数字输出向量。
[1002]
实施例62:如实施例61的系统,其中系统具有第一循环时段,其被定义为在存储单元中储存输入数据集的步骤与在存储单元中储存第一变换数字输出向量的步骤之间所经过的时间,以及
[1003]
其中第一循环时段小于或等于1ns。
[1004]
实施例63:如实施例61的系统,其中操作进一步包括:
[1005]
输出基于第一变换数字输出向量所产生的人工神经网络输出。
[1006]
实施例64:如实施例61的系统,其中操作进一步包括:
[1007]
通过dac单元基于第一变换数字输出向量产生第二多个调制器控制信号。
[1008]
实施例65:如实施例61的系统,其中输入数据集进一步包括第二数字输入向量,以及
[1009]
其中操作进一步包括:
[1010]
通过dac单元,基于第二数字输入向量产生第二多个调制器控制信号;
[1011]
从adc单元得到对应光矩阵处理单元的光输出向量的第二多个数字光输出,第二多个数字光输出形成第二数字输出向量;
[1012]
对第二数字输出向量执行非线性变换以产生第二变换数字输出向量;
[1013]
在存储单元中储存第二变换数字输出向量;以及
[1014]
输出基于第一变换数字输出向量和第二变换数字输出向量所产生的人工神经网络输出,
[1015]
其中光矩阵处理单元的光输出向量由基于第二多个调制器控制信号所产生的第二光输入向量产生,第二光输入向量由光矩阵乘法单元基于由无源衍射光学组件所定义的多个权重来转换。
[1016]
实施例66:如实施例59的系统,进一步包括:
[1017]
模拟非线性单元,被布置在光电检测单元与adc单元之间,模拟非线性单元被配置以从光电检测单元接收多个输出电信号、应用非线性传递函数、以及输出多个转换输出电信号至adc单元,
[1018]
其中操作进一步包括:
[1019]
从adc单元得到对应多个转换输出电信号的第一多个转换数字输出电信号,第一多个转换数字输出电信号形成第一变换数字输出向量;以及
[1020]
在存储单元中储存第一变换数字输出向量。
[1021]
实施例67:如实施例59的系统,其中控制器的集成电路被配置以大于或等于8ghz的速率产生第一多个调制器控制信号。
[1022]
实施例68:如实施例59的系统,进一步包括:
[1023]
模拟存储单元,被布置在dac单元与多个光调制器之间,模拟存储单元被配置以储存模拟电压,并且输出储存的模拟电压;以及
[1024]
模拟非线性单元,被布置在光电检测单元与adc单元之间,模拟非线性单元被配置以从光电检测单元接收多个输出电信号、应用非线性传递函数、以及输出多个转换输出电信号。
[1025]
实施例69:如实施例68的系统,其中模拟存储单元包括多个电容器。
[1026]
实施例70:如实施例68的系统,其中模拟存储单元被配置以接收和储存模拟非线性单元的多个转换输出电信号,并且将储存的多个转换输出电信号输出至多个光调制器,以及
[1027]
其中操作进一步包括:
[1028]
基于产生第一多个调制器控制信号,在模拟存储单元中储存模拟非线性单元的多个转换输出电信号;
[1029]
通过模拟存储单元输出储存的转换输出电信号;
[1030]
从adc单元得到第二多个转换数字输出电信号,第二多个转换数字输出电信号形成第二变换数字输出向量;以及
[1031]
在存储单元中储存第二变换数字输出向量。
[1032]
实施例71:如实施例59的系统,其中人工神经网络计算请求的输入数据集包括多个数字输入向量,
[1033]
其中激光单元被配置以产生多个波长,
[1034]
其中多个光调制器包括:
[1035]
光调制器组,被配置以产生多个光输入向量,每一个光调制器组对应多个波长之一,并且产生具有相应波长的相应光输入向量;以及
[1036]
光多路复用器,被配置以将多个光输入向量组合成包括多个波长的组合光输入向量,
[1037]
其中光电检测单元进一步被配置以多路分解多个波长,并且产生多个多路分解输出电信号,以及
[1038]
其中操作包括:
[1039]
从adc单元得到多个数字多路分解光输出,多个数字多路分解光输出形成多个第一数字输出向量,其中多个第一数字输出向量中的每一个对应多个波长之一;
[1040]
对多个第一数字输出向量中的每一个执行非线性变换,以产生多个变换第一数字输出向量;以及
[1041]
在存储单元中储存多个变换第一数字输出向量,
[1042]
其中多个数字输入向量中的每一个对应多个光输入向量之一。
[1043]
实施例72:如实施例59的系统,其中人工神经网络计算请求包括多个数字输入向量,
[1044]
其中激光单元被配置以产生多个波长,
[1045]
其中多个光调制器包括:
[1046]
多个光调制器组,被配置以产生多个光输入向量,每一个光调制器组对应多个波长之一,并且产生具有相应波长的相应光输入向量;以及
[1047]
光多路复用器,被配置以将多个光输入向量组合成包括多个波长的组合光输入向量,以及
[1048]
其中操作包括:
[1049]
从adc单元得到对应光输出向量的第一多个数字光输出,光输出向量包括多个波长,第一多个数字光输出形成第一数字输出向量;
[1050]
对第一数字输出向量执行非线性变换,以产生第一变换数字输出向量;以及
[1051]
在存储单元中储存第一变换数字输出向量。
[1052]
实施例73:如实施例59的系统,其中dac单元包括:
[1053]
1比特dac单元,被配置以产生多个1比特调制器控制信号,
[1054]
其中adc单元的分辨率为1比特,
[1055]
其中第一数字输入向量的分辨率为n比特,以及
[1056]
其中操作包括:
[1057]
将第一数字输入向量分解为n个1比特输入向量,n个1比特输入向量中的每一个对应第一数字输入向量的n比特中的一个;
[1058]
通过1比特dac单元产生对应n个1比特输入向量的n个1比特调制器控制信号的序列;
[1059]
从adc单元得到对应n个1比特调制器控制信号的序列的n个数字1比特光输出的序列;
[1060]
从n个数字1比特光输出的序列建构n比特数字输出向量;
[1061]
对建构的n比特数字输出向量执行非线性变换,以产生变换n比特数字输出向量;以及
[1062]
在存储单元中储存变换n比特数字输出向量。
[1063]
实施例74:如实施例59的系统,其中存储单元包括数字输入向量存储器,被配置以储存第一数字输入向量,并且包括至少一个sram。
[1064]
实施例75:如实施例59的系统,其中激光单元包括:
[1065]
激光源,被配置以产生光;以及
[1066]
光功率分离器,被配置以将由激光源所产生的光分成多个光输出,其中多个光输出中的每一个具有基本相同的功率。
[1067]
实施例76:如实施例59的系统,其中多个光调制器包括mzi调制器、环形共振调制器或电吸收调制器中的一个。
[1068]
实施例77:如实施例59的系统,其中光电检测单元包括:
[1069]
多个光电检测器;以及
[1070]
多个放大器,被配置以将由光电检测器所产生的光电流转换成多个输出电信号。
[1071]
实施例78:如实施例59的系统,其中集成电路包括专用集成电路。
[1072]
实施例79:如实施例59的系统,其中光矩阵处理单元包括:
[1073]
输入波导阵列,用于接收光输入向量;
[1074]
光干涉单元,与输入波导阵列光学通信,用于执行将光输入向量转换成第二光信号阵列的线性变换,其中光干涉单元包括无源衍射光学组件;以及
[1075]
输出波导阵列,与光干涉单元光学通信,用于引导第二光信号阵列,其中在输入波导阵列中的至少一个输入波导通过光干涉单元与在输出波导阵列中的每一个输出波导光学通信。
[1076]
实施例80:一种系统,包括:
[1077]
存储单元;
[1078]
驱动器单元,被配置以产生多个调制器控制信号;
[1079]
光处理器,包括:
[1080]
激光单元,被配置以产生多个光输出;
[1081]
多个光调制器,耦合至激光单元和驱动器单元,多个光调制器被配置以通过基于多个调制器控制信号调制由激光单元所产生的多个光输出,来产生光输入向量;
[1082]
光矩阵处理单元,耦合至多个光调制器和驱动器单元,光矩阵处理单元包括无源衍射光学组件,被配置以基于由无源衍射光学组件所定义的多个权重控制信号将光输入向量转换成光输出向量;以及
[1083]
光电检测单元,耦合至光矩阵处理单元,并且被配置以产生对应光输出向量的多个输出电信号;
[1084]
比较器单元,耦合至光电检测单元,并且被配置以将多个输出电信号转换成多个数字1比特光输出;以及
[1085]
控制器,包括集成电路,被配置以执行以下操作:
[1086]
从计算机接收包括输入数据集的人工神经网络计算请求,其中输入数据集包括具有n比特分辨率的第一数字输入向量;
[1087]
在存储单元中储存输入数据集;
[1088]
将第一数字输入向量分解为n个1比特输入向量,n个1比特输入向量中的每一个对应第一数字输入向量的n比特中的一个;
[1089]
通过驱动器单元产生对应n个1比特输入向量的n个1比特调制器控制信号的序列;
[1090]
从比较器单元得到对应n个1比特调制器控制信号的序列的n个数字1比特光输出的序列;
[1091]
从n个数字1比特光输出的序列建构n比特数字输出向量;
[1092]
对建构的n比特数字输出向量执行非线性变换,以产生变换n比特数字输出向量;以及
[1093]
在存储单元中储存变换n比特数字输出向量。
[1094]
实施例81:如实施例80的系统,其中光矩阵处理单元包括光矩阵乘法单元,其被配置以将光输入向量转换成光输出向量,光输出向量表示由光输入向量所表示的输入向量与由衍射光学组件所定义的预定向量之间的矩阵乘法的乘积。
[1095]
实施例82:一种方法,用于在具有光矩阵处理单元的系统中执行人工神经网络计算,所述方法包括:
[1096]
从计算机接收包括输入数据集的人工神经网络计算请求,输入数据集包括第一数字输入向量;
[1097]
在存储单元中储存输入数据集;
[1098]
通过数字模拟转换(dac)单元,基于第一数字输入向量产生第一多个调制器控制信号;
[1099]
通过使用包括衍射光学组件的布置的光矩阵处理单元,将光输入向量转换成光输出向量,其中光输出向量表示应用于光输入向量和由衍射光学组件的布置所定义的预定向量的矩阵处理的结果;
[1100]
从模拟数字转换(adc)单元得到对应光矩阵处理单元的光输出向量的第一多个数字光输出,第一多个数字光输出形成第一数字输出向量;
[1101]
通过控制器对第一数字输出向量执行非线性变换,以产生第一变换数字输出向量;
[1102]
在存储单元中储存第一变换数字输出向量;以及
[1103]
通过控制器输出基于第一变换数字输出向量所产生的人工神经网络输出。
[1104]
实施例83:如实施例82的方法,其中将光输入向量转换成光输出向量包括将光输入向量转换成表示数字输入向量与由衍射光学组件的布置所定义的预定向量之间的矩阵乘法的乘积的光输出向量。
[1105]
实施例84:一种方法,包括:
[1106]
以电子格式提供输入信息;
[1107]
将至少一部分电子输入信息转换成光输入向量;
[1108]
通过包括无源衍射光学组件的光处理器,基于光矩阵处理将光输入向量光学地转换成光输出向量;
[1109]
将光输出向量转换成电子格式;以及
[1110]
将非线性变换电子地应用于电子转换后的光输出向量,以提供电子格式的输出信息。
[1111]
实施例85:如实施例84的方法,其中将光输入向量光学地转换成光输出向量包括基于由光输入向量所表示的输入向量与由无源衍射光学组件所定义的预定向量之间的光矩阵乘法,将光输入向量光学地转换成光输出向量。
[1112]
实施例86:如实施例84的方法,进一步包括:
[1113]
对于对应以电子格式所提供的输出信息的新电子输入信息,重复电光转换、光变换、光电转换以及电应用的非线性变换。
[1114]
实施例87:如实施例86的方法,其中用于初始光变换的光矩阵处理和重复光变换的光矩阵处理为相同的,并且对应人工神经网络的相同层。
[1115]
实施例88:如实施例84的方法,进一步包括:
[1116]
对于电子输入信息的不同部分,重复电光转换、光变换、光电转换以及电应用的非线性变换,
[1117]
其中用于初始光变换的光矩阵处理和重复光变换的光矩阵处理为相同的,并且对应人工神经网络的一个层。
[1118]
实施例89:一种系统,包括:
[1119]
光矩阵处理单元,被配置以处理n长度的输入向量,其中光矩阵处理单元包括n+2层的定向耦合器(directional coupler)和n层的移相器,并且n为正整数。
[1120]
实施例90:如实施例89的系统,其中光矩阵处理单元包括不多于n+2层的定向耦合器。
[1121]
实施例91:如实施例89的系统,其中光矩阵处理单元包括光矩阵法单元。
[1122]
实施例92:如实施例89的系统,其中光矩阵处理单元包括:
[1123]
基板,以及
[1124]
互连干涉仪,布置在基板上,其中每一个干涉仪包括布置在基板上的光波导,并且定向耦合器和移相器是互连干涉仪的一部分。
[1125]
实施例93:如实施例89的系统,其中光矩阵处理单元包括一层衰减器
(attenuator),其在最后一层定向耦合器之后。
[1126]
实施例94:如实施例93的系统,其中一层衰减器包括n个衰减器。
[1127]
实施例95:如实施例93的系统,包括一个或多个零差检测器(homodyne detector),用于检测来自衰减器的输出。
[1128]
实施例96:如实施例89的系统,其中n=3,并且光矩阵处理单元包括:
[1129]
输入端(terminal),被配置以接收输入向量;
[1130]
第一层定向耦合器,耦合至输入端;
[1131]
第一层移相器,耦合至第一层定向耦合器;
[1132]
第二层定向耦合器,耦合至第一层移相器;
[1133]
第二层移相器,耦合至第二层定向耦合器;
[1134]
第三层定向耦合器,耦合至第二层移相器;
[1135]
第三层移相器,耦合至第三层定向耦合器;
[1136]
第四层定向耦合器,耦合至第三层移相器;以及
[1137]
第五层定向耦合器,耦合至第四层定向耦合器。
[1138]
实施例97:如实施例89的系统,其中n=4,并且光矩阵处理单元包括:
[1139]
输入端,被配置以接收输入向量;
[1140]
第一层、第二层、第三层以及第四层定向耦合器,每层定向耦合器后续是一层移相器,其中第一层定向耦合器耦合至输入端;
[1141]
倒数第二层(second

to

last layer)定向耦合器,耦合至第四层移相器;以及
[1142]
最终层定向耦合器,耦合至倒数第二层定向耦合器。
[1143]
实施例98:如实施例89的系统,其中n=8,并且光矩阵处理单元包括:
[1144]
输入端,被配置以接收输入向量;
[1145]
八层定向耦合器,每一层定向耦合器后续是一层移相器,其中第一层定向耦合器耦合至输入端;
[1146]
倒数第二层定向耦合器,耦合至第八层移相器;以及
[1147]
最终层定向耦合器,耦合至倒数第二层定向耦合器。
[1148]
实施例99:如实施例89的系统,其中光矩阵处理单元包括:
[1149]
输入端,被配置以接收输入向量;
[1150]
n层定向耦合器,每一层定向耦合器后续是一层移相器,其中第一层定向耦合器耦合至输入端;
[1151]
倒数第二层定向耦合器,耦合至第n层移相器;以及
[1152]
最终层定向耦合器,耦合至倒数第二层定向耦合器。
[1153]
实施例100:如实施例99的系统,其中n是偶数。
[1154]
实施例101:如实施例100的系统,其中每一个第i层定向耦合器包括n/2个定向耦合器,其中i是奇数,以及
[1155]
每一个第j层定向耦合器包括n/2

1个定向耦合器,其中j是偶数。
[1156]
实施例102:如实施例100的系统,其中对于i为奇数的每一个第i层定向耦合器,第k个定向耦合器耦合至前一层的第(2k

1)个和第2k个输出,k是从1到n/2的整数。
[1157]
实施例103:如实施例100的系统,其中对于其中j为偶数的每一个第j层定向耦合
器,第m个定向耦合器耦合至前一层的第(2m)个和第(2m+1)个输出,m是从1到n/2

1的整数。
[1158]
实施例104:如实施例100的系统,其中每一个第i层移相器包括n个移相器,其中i是奇数,并且
[1159]
每一个第j层移相器包括n

2个移相器,其中j是偶数。
[1160]
实施例105:如实施例99的系统,其中n为奇数。
[1161]
实施例106:如实施例105的系统,其中每一层定向耦合器包括(n

1)/2个定向耦合器。
[1162]
实施例107:如实施例105的系统,其中每一层移相器包括n

1个移相器。
[1163]
实施例108:一种系统,包括:
[1164]
产生器(generator),被配置以产生第一数据集,其中产生器包括光矩阵处理单元;以及
[1165]
鉴别器(discriminator),被配置以接收包括来自第一数据集的数据和来自第三数据集的数据的第二数据集,第一数据集中的数据具有与第三数据集中的数据类似的特性(characteristics),并且将第二数据集中的数据分类为来自第一数据集的数据或来自第三数据集的数据。
[1166]
实施例109:如实施例108的系统,其中光矩阵处理单元包括以下至少一个:(i)实施例1至25中任一项的光矩阵乘法单元、(ii)实施例32至52、55至81中任一项的无源衍射光学组件、或(iii)实施例89至107中任一项的光矩阵处理单元。
[1167]
实施例110:如实施例108的系统,其中第三数据集包括真实数据,产生器被配置以产生类似于真实数据的合成数据(synthesized data),并且鉴别器被配置以将数据分类为真实数据或合成数据。
[1168]
实施例111:如实施例108的系统,其中产生器被配置以产生数据集,用于训练自动驾驶交通工具(vehicle)、医疗诊断系统、欺诈检测系统、天气预报系统、财务预测系统、面部识别系统、语音识别系统或产品缺陷检测系统中的至少一个。
[1169]
实施例112:如实施例108的系统,其中产生器被配置以产生图像,其类似于真实对象或真实场景中的至少一个的图像,并且鉴别器被配置以将接收的图像分类为(i)真实对象或真实场景的图像,或(ii)由产生器产生的合成图像。
[1170]
实施例113:如实施例112的系统,其中真实对象包括人物、动物、细胞、组织或产品中的至少一个,并且真实场景包括交通工具遇到的场景。
[1171]
实施例114:如实施例113的系统,其中鉴别器被配置以将接收的图像分类成是否为(i)真实人物、真实动物、真实细胞、真实组织、真实产品或交通工具遇到的真实场景的图像,或(ii)由产生器产生的合成图像。
[1172]
实施例115:如实施例113的系统,其中交通工具包括摩托车、汽车、卡车、火车、直升机、飞机、潜艇、船舶或无人机中的至少一种。
[1173]
实施例116:如实施例113的系统,其中产生器被配置以产生与人类疾病、动物疾病或植物疾病中的至少一个相关的组织或细胞的图像。
[1174]
实施例117:如实施例116的系统,其中产生器被配置以产生与人类疾病相关的组织或细胞的图像,并且疾病包括癌症、帕金森病、镰状细胞贫血症、心脏病、心血管疾病、糖尿病、胸部疾病或皮肤病中的至少一个。
[1175]
实施例118:如实施例116的系统,其中产生器被配置以产生与癌症相关的组织或细胞的图像,并且癌症包括皮肤癌、乳癌、肺癌、肝癌、前列腺癌或脑癌中的至少一个。
[1176]
实施例119:如实施例108的系统,进一步包括随机噪声产生器,被配置以产生输入到产生器的随机噪声,并且产生器被配置以基于随机噪声产生第一数据集。
[1177]
实施例120:一种系统,包括:
[1178]
随机噪声产生器,被配置以产生随机噪声;以及
[1179]
产生器,被配置以基于随机噪声产生数据,其中产生器包括光矩阵处理单元。
[1180]
实施例121:如实施例120的系统,其中光矩阵处理单元包括以下至少一个:(i)实施例1至25中任一项的光矩阵乘法单元、(ii)实施例33至52、55至81中任一项的无源衍射光学组件、或(iii)实施例89至107中任一项的光矩阵处理单元。
[1181]
实施例122:一种系统,包括:
[1182]
光电路,被配置以对两个输入信号执行逻辑函数(logic function),光电路包括:
[1183]
第一定向耦合器,具有两个输入端和两个输出端,两个输入端被配置以接收两个输入信号;
[1184]
第一对(pair)移相器,被配置以修改在第一定向耦合器的两个输出端的信号的相位;
[1185]
第二定向耦合器,具有两个输入端和两个输出端,两个输入端被配置以接收来自第一对移相器的信号;以及
[1186]
第二对移相器,被配置以修改在第二定向耦合器的两个输出端的信号的相位。
[1187]
实施例123:如实施例122的系统,其中移相器被配置以致使光电路执行旋转(rotation):
[1188][1189]
实施例124:如实施例122的系统,其中当输入信号x1和x2被提供到第一定向耦合器的两个输入端时,移相器被配置以致使光电路执行操作:
[1190][1191]
实施例125:如实施例124的系统,其中光电路包括第一光电检测器,其被配置以产生来自第二对移相器的信号的绝对值,以致使光电路执行操作:
[1192][1193]
实施例126:如实施例125的系统,其中光电路包括比较器,其被配置以将第一光电检测器的输出信号与阈值比较,以产生二进制值(binary value)来致使光电路产生输出:
[1194][1195]
实施例127:如实施例125的系统,其中光电路包括反馈机制(feedback mechanism),反馈机制被配置以使光电检测器的输出信号被反馈至第一定向耦合器的输入端,并且通过第一定向耦合器、第一对移相器、第二定向耦合器以及第二对移相器,并且由光电检测器检测以致使光电路执行操作:
[1196][1197]
其产生输出and(x1,x2)和or(x1,x2)。
[1198]
实施例128:如实施例125的系统,其中光电路包括:
[1199]
第三定向耦合器,具有两个输入端和两个输出端,两个输入端被配置以接收来自第二对移相器的信号;
[1200]
第三对移相器,被配置以修改在第三定向耦合器的两个输出端的信号的相位;
[1201]
第四定向耦合器,具有两个输入端和两个输出端,两个输入端被配置以接收来自第三对移相器的信号;
[1202]
第四对移相器,被配置以修改在第四定向耦合器的两个输出端的信号的相位;以及
[1203]
第二光电检测器,被配置以产生来自第四对移相器的信号的绝对值,以致使光电路执行操作:
[1204][1205]
其产生输出and(x1,x2)和or(x1,x2)。
[1206]
实施例129:如实施例122的系统,包括双调排序器(bitonic sorter),其被配置以使用光电路执行双调排序器的排序函数(sorting function)。
[1207]
实施例130:如实施例122的系统,包括被配置以使用光电路来执行哈希函数(hashing function)的装置。
[1208]
实施例131:如实施例130的系统,其中哈希函数包括安全哈希算法(secure hash algorithm)2(sha

2)。
[1209]
实施例132:一种装置,包括:
[1210]
多个光波导,其中一组多个输入值被编码在由光波导承载的相应光信号上;
[1211]
多个复制模块,并且对于一个或多个光信号的至少两个子集中的每一个,一个或多个复制模块的相应一组被配置以将一个或多个光信号的子集分成两个或更多个光信号的副本(copies);
[1212]
多个乘法模块,并且对于一个或多个光信号的第一子集的至少两个副本中的每一
个,相应的乘法模块被配置以使用光幅度调制将第一子集的一个或多个光信号乘以一个或多个矩阵元素值,其中乘法模块中的至少一个包括光幅度调制器,光幅度调制器包括一个输入端口和两个输出端口,并且从两个输出端口提供一对相关光信号,使得相关光信号的幅度之间的差值对应于将输入值乘以有符号矩阵元素值的结果;以及
[1213]
一个或多个求和模块,并且对于两个或更多个乘法模块的结果,相应的一个求和模块被配置以产生电信号,电信号表示两个或更多个乘法模块的结果的总和。
[1214]
实施例133:如实施例132的装置,其中在相应的光信号上编码的一组多个输入值中的输入值表示与包括一个或多个矩阵元素值的矩阵相乘的输入向量的元素。
[1215]
实施例134:如实施例132或133的装置,其中一组多个输出值被编码在由一个或多个求和模块所产生的相应电信号上,并且一组多个输出值中的输出值表示输出向量的元素,输出向量通过输入向量乘以矩阵产生。
[1216]
实施例135:如实施例132至134中任一项的装置,其中由光波导所承载的每一个光信号包括具有共同波长的光波,共同波长对于所有光信号基本相同。
[1217]
实施例136:如实施例132至135中任一项的装置,其中复制模块包括具有分光器的至少一个复制模块,分光器在输入端口将预定比例的光波的功率传输至第一输出端口,并且在输入端口将剩余比例的光波的功率传输至第二输出端口。
[1218]
实施例137:如实施例136的装置,其中分光器包括波导分光器,波导分光器将由输入光波导所引导的预定比例的光波的功率传输至第一输出光波导,并且将由输入光波导所引导的剩余比例的光波的功率传输至第二输出光波导。
[1219]
实施例138:如实施例137的装置,其中输入光波导的引导模式被绝热地耦合至第一输出光波导和第二输出光波导中的每一个的引导模式。
[1220]
实施例139:如实施例136至138中任一项的装置,其中分光器包括分束器,分束器包括至少一个表面,其在输入端口传输预定比例的光波的功率,并且反射输入端口处剩余比例的光波的功率。
[1221]
实施例140:如实施例139的装置,其中多个光波导中的至少一个包括耦合至光耦合器的光纤,光耦合器将光纤的引导模式耦合至自由空间传播模式(free

space propagation mode)。
[1222]
实施例141:如实施例132至140中任一项的装置,其中乘法模块包括至少一个相干敏感乘法模块(coherence

sensitive multiplication module),相干敏感乘法模块被配置以基于光波之间的干涉,使用光幅度调制将第一子集的一个或多个光信号乘以一个或多个矩阵元素值,光波具有相干长度,相干长度至少与通过相干敏感乘法模块的传播距离一样长。
[1223]
实施例142:如实施例141的装置,其中相干敏感乘法模块包括马赫曾德尔干涉仪(mzi),mzi将输入光波导所引导的光波分离进入mzi的第一光波导臂(optical waveguide arm)和mzi的第二光波导臂,第一光波导臂包括移相器,移相器相对于第二光波导臂的相位延迟产生相对相移,并且mzi将来自第一光波导臂和第二光波导臂的光波组合成至少一个输出光波导。
[1224]
实施例143:如实施例142的装置,其中mzi将来自第一光波导臂和第二光波导臂的光波组合到第一输出光波导和第二输出光波导中的每一个,第一光电检测器从第一输出光
波导接收光波以产生第一光电流,第二光电检测器从第二输出光波导接收光波以产生第二光电流,并且相干敏感乘法模块的结果包括第一光电流与第二光电流之间的差值。
[1225]
实施例144:如实施例141至143中任一项的装置,其中相干敏感乘法模块包括一个或多个环形共振器(ring resonator),环形共振器包括耦合至第一光波导的至少一个环形共振器和耦合至第二光波导的至少一个环形共振器。
[1226]
实施例145:如实施例144的装置,其中,第一光电检测器接收来自第一光波导的光波,以产生第一光电流,第二光电检测器接收来自第二光波导的光波,以产生第二光电流,并且相干敏感乘法模块的结果包括第一光电流与第二光电流之间的差值。
[1227]
实施例146:如实施例132至145中任一项的装置,其中乘法模块包括至少一个相干非敏感乘法模块(coherence

insensitive multiplication module),相干非敏感乘法模块被配置以基于光波内的能量吸收,使用光幅度调制将第一子集的一个或多个光信号乘以一个或多个矩阵元素值。
[1228]
实施例147:如实施例146的装置,其中相干非敏感乘法模块包括电吸收调制器(electro

absorption modulator)。
[1229]
实施例148:如实施例132至147中任一项的装置,其中一个或多个求和模块包括具有以下部件的至少一个求和模块:(1)两个或更多个输入导体,每一个输入导体以输入电流的形式承载电信号,输入电流的幅度表示相应一个乘法模块的相应结果,以及(2)至少一个输出导体,输出导体承载表示输出电流形式的相应结果的总和的电信号,输出电流与输入电流的总和成比例。
[1230]
实施例149:如实施例148的装置,其中两个或更多个输入导体和输出导体包括导线,其在导线之间的一个或多个结点接触,并且输出电流基本等于输入电流的总和。
[1231]
实施例150:如实施例148或149的装置,其中输入电流的至少一个第一输入电流以至少一个光电流的形式提供,光电流由至少一个光电检测器产生,光电检测器接收由乘法模块的第一乘法模块所产生的光信号。
[1232]
实施例151:如实施例150的装置,其中第一输入电流以两个光电流之间的差值的形式提供,两个光电流由不同相应光电检测器产生,光电检测器接收由第一乘法模块所产生的不同相应光信号。
[1233]
实施例152:如实施例132至151中任一项的装置,其中一个或多个光信号的第一子集的副本之一由单一光信号组成,其中在单一光信号上编码输入值之一。
[1234]
实施例153:如实施例152的装置,其中对应于第一子集的副本的乘法模块将编码的输入值乘以单一矩阵元素值。
[1235]
实施例154:如实施例132至153中任一项的装置,其中一个或多个光信号的第一子集的副本之一包括的光信号多于一个,并且少于所有光信号,其中多个输入值被编码在该光信号上。
[1236]
实施例155:如实施例154的装置,其中对应于第一子集的副本的乘法模块将编码的输入值乘以不同的相应矩阵元素值。
[1237]
实施例156:如实施例155的装置,其中对应于一个或多个光信号的第一子集的不同相应副本的不同乘法模块被包含在不同装置,不同装置进行光学通信以在不同装置之间传输一个或多个光信号的第一子集的副本之一。
[1238]
实施例157:如实施例132至156中任一项的装置,其中多个光波导的两个或更多个、多个复制模块的两个或更多个、多个乘法模块的两个或更多个、以及一个或多个求和模块的至少一个被布置在公共装置的基板上。
[1239]
实施例158:如实施例157的装置,其中装置执行向量矩阵乘法,其中提供输入向量作为一组光信号,并且提供输出向量作为一组电信号。
[1240]
实施例159:如实施例132至158中任一项的装置,进一步包括累加器,累加器合并对应乘法模块或求和模块的输出的输入电信号,其中使用时域编码(time domain encoding)来编码输入电信号,时域编码在多个时隙的每一个内使用开关幅度调制(on

off amplitude modulation),并且累加器产生输出电信号,输出电信号以多于两个幅度水平来编码,幅度水平对应于多个时隙上的时域编码的不同占空比。
[1241]
实施例160:如实施例132至159中任一项的装置,其中乘法模块的两个或更多个的每一个对应于一个或多个光信号的不同子集。
[1242]
实施例161:如实施例132至160中任一项的装置,对于一个或多个光信号的第二子集的每一个副本,与一个或多个光信号的第一子集中的光信号不同,装置进一步包括乘法模块,其被配置以使用光幅度调制将第二子集的一个或多个光信号乘以一个或多个矩阵元素值。
[1243]
实施例162:一种方法,包括:
[1244]
在相应光信号上编码一组多个输入值;
[1245]
对于一个或多个光信号的至少两个子集中的每一个,使用一个或多个复制模块的相应一组以将一个或多个光信号的子集分成两个或更多个光信号的副本;
[1246]
对于一个或多个光信号的第一子集的至少两个副本中的每一个,使用相应的乘法模块以使用光幅度调制将第一子集的一个或多个光信号乘以一个或多个矩阵元素值,其中至少一个乘法模块包括光幅度调制器,光幅度调制器包括一个输入端口和两个输出端口,并且从两个输出端口提供一对相关光信号,使得相关光信号的幅度之间的差值对应于将输入值乘以有符号矩阵元素值的结果;以及
[1247]
对于两个或更多个乘法模块的结果,使用配置为产生电信号的求和模块,电信号表示两个或更多个乘法模块的结果的总和。
[1248]
实施例163:一种方法,包括:
[1249]
编码表示相应光信号上的输入向量的元素的一组输入值;
[1250]
将表示矩阵元素的一组系数编码作为耦合至光信号的一组光幅度调制器的幅度调制水平,其中包括一个输入端口和两个输出端口的至少一个光幅度调制器从两个输出端口提供一对相关光信号,使得相关光信号的幅度之间的差值对应于将输入值乘以有符号矩阵元素值的结果;以及
[1251]
编码表示相应电信号上的输出向量的元素的一组输出值,其中至少一个电信号是电流形式,其幅度对应输入向量的相应元素乘以矩阵的一行(row)的相应元素的总和。
[1252]
实施例164:如实施例163的方法,其中至少一个光信号由第一光波导提供,并且第一光波导耦合至分光器,分光器将由第一光波导所引导的预定比例的光波的功率传输至第二输出光波导,并且将由第一光波导所引导的光波的功率的剩余比例传输至第三光波导。
[1253]
实施例165:一种装置,包括:
[1254]
多个光波导,编码表示由光波导承载的相应光信号上的输入向量的元素的一组输入值;
[1255]
一组光幅度调制器,耦合至光信号,将表示矩阵元素的一组系数编码作为幅度调制水平,其中包括一个输入端口和两个输出端口的至少一个光幅度调制器从两个输出端口提供一对相关光信号,使得相关光信号的幅度之间的差值对应于将输入值乘以有符号矩阵元素值的结果;以及
[1256]
多个求和模块,其编码表示相应电信号上的输出向量的元素的一组输出值,其中至少一个电信号是电流形式,其幅度对应输入向量的相应元素乘以矩阵的一行(row)的相应元素的总和。
[1257]
实施例166:一种用于将输入向量乘以给定矩阵的方法包括:
[1258]
编码表示一组光信号的相应光信号上的输入向量的元素的一组输入值;
[1259]
将第一组一个或多个装置耦合至提供该组光信号的第一子集的第一组一个或多个波导,并且产生给定矩阵的第一子矩阵乘以在该组光信号的第一子集编码上的值的结果;
[1260]
将第二组一个或多个装置耦合至提供该组光信号的第二子集的第二组一个或多个波导,并且产生给定矩阵的第二子矩阵乘以在该组光信号的第二子集上编码的值的结果;
[1261]
将第三组一个或多个装置耦合至提供由第一分光器所产生的该组光信号的第一子集的副本的第三组一个或多个波导,并且产生给定矩阵的第三子矩阵乘以在该组光信号的第一子集上编码的值的结果;
[1262]
将第四组一个或多个装置耦合至提供由第二分光器所产生的该组光信号的第二子集的副本的第四组一个或多个波导,并且产生给定矩阵的第四子矩阵乘以在该组光信号的第二子集上编码的值的结果;
[1263]
其中连接在一起的第一、第二、第三以及第四子矩阵形成给定矩阵;以及
[1264]
其中表示输出向量的元素的至少一个输出值被编码在电信号上,输出向量对应输入向量乘以给定矩阵,电信号由与第一组一个或多个装置和第二组一个或多个装置通信的装置产生。
[1265]
实施例167:如实施例166的方法,其中第一组一个或多个装置、第二组一个或多个装置、第三组一个或多个装置、以及第四组一个或多个装置中的每一对组是互斥的(mutually exclusive)。
[1266]
实施例168:一种装置,包括:
[1267]
第一组一个或多个装置,被配置以接收第一组光信号,并且产生第一矩阵乘以在第一组光信号上编码的值的结果;
[1268]
第二组一个或多个装置,被配置以接收第二组光信号,并且产生第二矩阵乘以在第二组光信号上编码的值的结果;
[1269]
第三组一个或多个装置,被配置以接收第三组光信号,并且产生第三矩阵乘以在第三组光信号上编码的值的结果;
[1270]
第四组一个或多个装置,被配置以接收第四组光信号,并且产生第四矩阵乘以在第四组光信号上编码的值的结果;以及
[1271]
可配置连接路径,在第一组一个或多个装置、第二组一个或多个装置、第三组一个或多个装置或第四组一个或多个装置中的两个或更多个之间,
[1272]
其中可配置连接路径的第一配置被配置以(1)提供第一组光信号的副本作为第二组光信号,第三组光信号或第四组光信号中的至少一个,并且(2)将来自第一组一个或多个装置的一个或多个信号和来自第二组一个或多个装置的一个或多个信号提供至求和模块,求和模块被配置以产生电信号,电信号表示在由求和模块接收的信号上编码的值的总和。
[1273]
实施例169:一种装置,包括:
[1274]
第一组一个或多个装置,被配置以接收第一组光信号,并且基于第一组光信号的一个或多个光信号的光幅度调制产生结果;
[1275]
第二组一个或多个装置,被配置以接收第二组光信号,并且基于第二组光信号的一个或多个光信号的光幅度调制产生结果;
[1276]
第三组一个或多个装置,被配置以接收第三组光信号,并且基于第三组光信号的一个或多个光信号的光幅度调制产生结果;
[1277]
第四组一个或多个装置,被配置以接收第四组光信号,并且基于第四组光信号的一个或多个光信号的光幅度调制产生结果;以及
[1278]
可配置连接路径,在第一组一个或多个装置、第二组一个或多个装置、第三组一个或多个装置或第四组一个或多个装置中的两个或更多个之间,
[1279]
其中可配置连接路径的第一配置被配置以(1)提供第一组光信号的副本作为第三组光信号,或(2)将来自第一组一个或多个装置的一个或多个信号和来自第二组一个或多个装置的一个或多个信号提供至求和模块,求和模块被配置以产生电信号,电信号表示在由求和模块接收的信号上编码的值的总和。
[1280]
实施例170:如实施例169的装置,其中第一组一个或多个装置、第二组一个或多个装置、第三组一个或多个装置、以及第四组一个或多个装置中的每一对组是互斥的。
[1281]
实施例171:如实施例169或170的装置,其中可配置连接路径的第一配置被配置以(1)提供第一组光信号的副本作为第三组光信号,并且(2)将来自第一组一个或多个装置的一个或多个信号和来自第二组一个或多个装置的一个或多个信号提供至求和模块,求和模块被配置以产生电信号,电信号表示在由求和模块接收的至少两个不同信号上编码的值的总和。
[1282]
实施例172:如实施例169至171中任一项的装置,其中可配置连接路径的第一配置被配置以提供第一组光信号的副本作为第三组光信号,并且可配置连接路径的第二配置被配置以将来自第一组一个或多个装置的一个或多个信号和来自第二组一个或多个装置的一个或多个信号提供至求和模块,求和模块被配置以产生电信号,电信号表示在由求和模块接收的信号上编码的值的总和。
[1283]
实施例173:一种装置,包括:
[1284]
多个光波导,其中一组多个输入值被编码在由光波导承载的相应光信号上;
[1285]
多个复制模块,对于一个或多个光信号的至少两个子集中的每一个,多个复制模块包括一个或多个复制模块的相应一组,其被配置以将一个或多个光信号的子集分成两个或更多个光信号的副本;
[1286]
多个乘法模块,对于一个或多个光信号的第一子集的至少两个副本中的每一个,
多个乘法模块包括相应的乘法模块,其被配置以使用光幅度调制将第一子集的一个或多个光信号乘以一个或多个值;以及
[1287]
一个或多个求和模块,对于两个或更多个乘法模块的结果,一个或多个求和模块包括被配置以产生电信号的求和模块,电信号表示两个或更多个乘法模块的结果的总和,其中该结果包括在电信号上编码的至少一个结果,并且该结果是从光信号的一个副本导出的,其在被转换成电信号之前传播通过不超过单个光幅度调制器。
[1288]
实施例174:一种系统,包括:
[1289]
第一单元,被配置以产生多个调制器控制信号;
[1290]
处理器,包括:
[1291]
光源,被配置以提供多个光输出;
[1292]
多个光调制器,耦合至光源和第一单元,多个光调制器被配置以通过基于多个调制器控制信号调制由光源所提供的多个光输出,来产生光输入向量,光输入向量包括多个光信号;以及
[1293]
矩阵乘法单元,耦合至多个光调制器和第一单元,矩阵乘法单元被配置以基于多个权重控制信号,将光输入向量转换成模拟输出向量;
[1294]
第二单元,耦合至矩阵乘法单元,并且第二单元被配置以将模拟输出向量转换成数字输出向量;以及
[1295]
控制器,包括集成电路,被配置以执行以下操作:
[1296]
接收人工神经网络计算请求,人工神经网络计算请求包括输入数据集,输入数据集包括第一数字输入向量;
[1297]
接收第一多个神经网络权重;以及
[1298]
通过第一单元,基于第一数字输入向量产生第一多个调制器控制信号,并且基于第一多个神经网络权重产生第一多个权重控制信号。
[1299]
实施例175:如实施例174的系统,其中第一单元包括数字模拟转换器(dac)。
[1300]
实施例176:如实施例174或175的系统,其中第二单元包括模拟数字转换器(adc)。
[1301]
实施例177:如实施例174至176中任一项的系统,包括存储单元,被配置以储存数据集和多个神经网络权重。
[1302]
实施例178:如实施例177的系统,其中控制器的集成电路进一步被配置以执行包括在所述存储单元中储存输入数据集和第一多个神经网络权重的操作。
[1303]
实施例179:如实施例174至178中任一项的系统,其中第一单元被配置以产生多个权重控制信号。
[1304]
实施例180:如实施例174至178中任一项的系统,其中控制器包括专用集成电路(asic),以及
[1305]
接收人工神经网络计算请求包括从通用数据处理器接收人工神经网络计算请求。
[1306]
实施例181:如实施例174至178中任一项的系统,其中第一单元、处理单元、第二单元以及控制器被布置在多芯片模块或集成电路中的至少一个上,以及
[1307]
接收人工神经网络计算请求包括从第二数据处理器接收人工神经网络计算请求,其中第二数据处理器在多芯片模块或集成电路的外部,第二数据处理器通过通信信道(communication channel)耦合至多芯片模块或集成电路,并且处理单元能够以比通信信
道的数据速率大至少一数量级的数据速率来处理数据。
[1308]
实施例182:如实施例174的系统,其中第一单元、处理单元、第二单元以及控制器被用于在多个迭代中重复的光电处理循环,并且光电处理循环包括:
[1309]
(1)基于多个调制器控制信号中的至少一个的至少第一光调制操作,以及基于权重控制信号的至少一个的至少第二光调制操作,以及
[1310]
(2)(a)电求和操作或(b)电储存操作中的至少一个。
[1311]
实施例183:如实施例182的系统,其中光电处理循环包括电储存操作,并且电储存操作使用耦合至控制器的存储单元来执行,
[1312]
其中通过控制器所执行的操作进一步包括在存储单元中储存输入数据集和第一多个神经网络权重。
[1313]
实施例184:如实施例182的系统,其中光电处理循环包括电求和操作,并且电求和操作使用在矩阵乘法单元内的电求和模块来执行,
[1314]
其中电求和模块被配置以产生对应于模拟输出向量的元素的电流,模拟输出向量表示光输入向量的相应元素乘以相应神经网络权重的总和。
[1315]
实施例185:如实施例182的系统,其中光电处理循环包括至少一个信号路径,在信号路径上,基于多个调制器控制信号的至少一个,在单一循环迭代中执行不超过一个第一光调制操作,并且基于权重控制信号的至少一个,在单一循环迭代中执行不超过一个第二光调制操作。
[1316]
实施例186:如实施例185的系统,其中第一光调制操作通过耦合至光输出的光源和矩阵乘法单元的多个光调制器之一来执行,并且第二光调制操作通过被包括在矩阵乘法单元中的光调制器来执行。
[1317]
实施例187:如实施例182的系统,其中光电处理循环包括至少一个信号路径,在所述信号路径上,在单一循环迭代中执行不超过一个电储存操作。
[1318]
实施例188:如实施例174的系统,其中光源包括激光单元,被配置以产生多个光输出。
[1319]
实施例189:如实施例174的系统,其中矩阵乘法单元包括:
[1320]
输入波导阵列,用于接收光输入向量,并且光输入向量包括第一光信号阵列;
[1321]
光干涉单元,与输入波导阵列光学通信,用于执行将光输入向量转换成第二光信号阵列的线性变换;以及
[1322]
输出波导阵列,与光干涉单元光学通信,用于引导第二光信号阵列,其中在输入波导阵列中的至少一个输入波导通过光干涉单元与在输出波导阵列中的每一个输出波导光学通信。
[1323]
实施例190:如实施例189的系统,其中光干涉单元包括:
[1324]
多个互连马赫曾德尔干涉仪(mzi),多个互连mzi中的每一个mzi包括:
[1325]
第一移相器,被配置以改变mzi的分光比;以及
[1326]
第二移相器,被配置以移动mzi的一个输出的相位,
[1327]
其中第一移相器和第二移相器耦合至多个权重控制信号。
[1328]
实施例191:如实施例174的系统,其中矩阵乘法单元包括:
[1329]
多个复制模块,其中每一个复制模块对应光输入向量的一个或多个光信号的子
集,并且被配置以将一个或多个光信号的子集分成光信号的两个或更多个副本;
[1330]
多个乘法模块,其中每一个乘法模块对应于一个或多个光信号的子集,并且被配置以使用光幅度调制将子集的一个或多个光信号乘以一个或多个矩阵元素值;以及
[1331]
一个或多个求和模块,其中每一个求和模块被配置以产生电信号,电信号表示乘法模块的两个或更多个的结果的总和。
[1332]
实施例192:如实施例191的系统,其中至少一个乘法模块包括光幅度调制器,光幅度调制器包括一个输入端口和两个输出端口,并且从两个输出端口提供一对相关光信号,使得相关光信号的幅度之间的差值对应于将输入值乘以有符号矩阵元素值的结果。
[1333]
实施例193:如实施例191或192的系统,其中矩阵乘法单元被配置以将光输入向量乘以包括一个或多个矩阵元素值的矩阵。
[1334]
实施例194:如实施例193的系统,其中一组多个输出值被编码在由一个或多个求和模块所产生的相应电信号上,并且一组多个输出值中的输出值表示输出向量的元素,输出向量通过光输入向量乘以矩阵产生。
[1335]
实施例195:如实施例174至194中任一项的系统,其中系统包括存储单元,存储单元被配置以储存输入数据集和神经网络权重,第二单元包括模拟数字转换(adc)单元,并且操作进一步包括:
[1336]
从adc单元得到对应矩阵乘法单元的模拟输出向量的第一多个数字输出,第一多个数字输出形成第一数字输出向量;
[1337]
对第一数字输出向量执行非线性变换以产生第一变换数字输出向量;以及
[1338]
在存储单元中储存第一变换数字输出向量。
[1339]
实施例196:如实施例195的系统,其中系统具有第一循环时段,第一循环时段被定义为在存储单元中储存输入数据集和第一多个神经网络权重的步骤与在存储单元中储存第一变换数字输出向量的步骤之间所经过的时间,以及
[1340]
其中第一循环时段小于或等于1ns。
[1341]
实施例197:如实施例195或196的系统,其中操作进一步包括:
[1342]
输出基于第一变换数字输出向量所产生的人工神经网络输出。
[1343]
实施例198:如实施例195至197中任一项的系统,其中第一单元包括数字模拟转换(dac)单元,并且操作进一步包括:
[1344]
通过dac单元,基于第一变换数字输出向量产生第二多个调制器控制信号。
[1345]
实施例199:如实施例195至198中任一项的系统,其中第一单元包括数字模拟转换(dac)单元,人工神经网络计算请求进一步包括第二多个神经网络权重,并且其中操作进一步包括:
[1346]
基于第一多个数字输出的获得,通过dac单元基于第二多个神经网络权重产生第二多个权重控制信号。
[1347]
实施例200:如实施例199的系统,其中第一多个神经网络权重和第二多个神经网络权重对应人工神经网络的不同层。
[1348]
实施例201:如实施例195至200中任一项的系统,其中第一单元包括数字模拟转换(dac)单元,并且输入数据集进一步包括第二数字输入向量,以及
[1349]
其中操作进一步包括:
[1350]
通过dac单元,基于第二数字输入向量产生第二多个调制器控制信号;
[1351]
从adc单元得到对应矩阵乘法单元的模拟输出向量的第二多个数字输出,第二多个数字输出形成第二数字输出向量;
[1352]
对第二数字输出向量执行非线性变换以产生第二变换数字输出向量;
[1353]
在存储单元中储存第二变换数字输出向量;以及
[1354]
输出基于第一变换数字输出向量和第二变换数字输出向量所产生的人工神经网络输出,
[1355]
其中矩阵乘法单元的模拟输出向量由基于第二多个调制器控制信号所产生的第二光输入向量产生,第二光输入向量由矩阵乘法单元基于首先提到的多个权重控制信号转换。
[1356]
实施例202:如实施例174至201中任一项的系统,其中系统包括存储单元,存储单元被配置以储存输入数据集和神经网络权重,并且第二单元包括模拟数字转换(adc)单元,以及系统进一步包括:
[1357]
模拟非线性单元,布置在矩阵乘法单元与adc单元之间,模拟非线性单元被配置以从矩阵乘法单元接收多个输出电压、应用非线性传递函数、以及输出多个转换输出电压至adc单元,
[1358]
其中控制器的集成电路执行的操作进一步包括:
[1359]
从adc单元得到对应多个转换输出电压的第一多个转换数字输出电压,第一多个转换数字输出电压形成第一变换数字输出向量;以及
[1360]
在存储单元中储存第一变换数字输出向量。
[1361]
实施例203:如实施例174至202中任一项的系统,其中控制器的集成电路被配置以大于或等于8ghz的速率产生第一多个调制器控制信号。
[1362]
实施例204:如实施例174至190中任一项的系统,其中第一单元包括数字模拟转换(dac)单元,第二单元包括模拟数字转换(adc)单元,矩阵乘法单元包括:
[1363]
光矩阵乘法单元,耦合至多个光调制器和dac单元,光矩阵乘法单元被配置以基于多个权重控制信号将光输入向量转换成光输出向量;以及
[1364]
光电检测单元,耦合至光矩阵乘法单元,并且被配置以产生对应光输出向量的多个输出电压。
[1365]
实施例205:如实施例204的系统,进一步包括:
[1366]
模拟存储单元,被布置在dac单元与多个光调制器之间,模拟存储单元被配置以储存模拟电压,并且输出储存的模拟电压;以及
[1367]
模拟非线性单元,被布置在光电检测单元与adc单元之间,模拟非线性单元被配置以从光电检测单元接收多个输出电压、应用非线性传递函数、以及输出多个转换输出电压。
[1368]
实施例206:如实施例205的系统,其中模拟存储单元包括多个电容器。
[1369]
实施例207:如实施例205或206的系统,其中模拟存储单元被配置以接收和储存模拟非线性单元的多个转换输出电压,并且将储存的多个转换输出电压输出至多个光调制器,以及
[1370]
操作进一步包括:
[1371]
基于产生第一多个调制器控制信号和第一多个权重控制信号,在模拟存储单元中
储存模拟非线性单元的多个转换输出电压;
[1372]
通过模拟存储单元输出储存的转换输出电压;
[1373]
从adc单元得到第二多个转换数字输出电压,第二多个转换数字输出电压形成第二变换数字输出向量;以及
[1374]
在存储单元中储存第二变换数字输出向量。
[1375]
实施例208:如实施例204的系统,其中系统包括存储单元,被配置以储存输入数据集和神经网络权重,并且人工神经网络计算请求的输入数据集包括多个数字输入向量,
[1376]
其中光源被配置以产生多个波长,
[1377]
其中多个光调制器包括:
[1378]
光调制器组,被配置以产生多个光输入向量,每一个光调制器组对应多个波长之一,并且产生具有相应波长的相应光输入向量;以及
[1379]
光多路复用器,被配置以将多个光输入向量组合成包括多个波长的组合光输入向量,
[1380]
其中光电检测单元进一步被配置以多路分解多个波长,并且产生多个多路分解输出电压,以及
[1381]
其中操作包括:
[1382]
从adc单元得到多个数字多路分解光输出,多个数字多路分解光输出形成多个第一数字输出向量,其中多个第一数字输出向量中的每一个对应多个波长之一;
[1383]
对多个第一数字输出向量中的每一个执行非线性变换,以产生多个变换第一数字输出向量;以及
[1384]
在存储单元中储存多个变换第一数字输出向量,
[1385]
其中多个数字输入向量中的每一个对应多个光输入向量之一。
[1386]
实施例209:如实施例174的系统,其中系统包括存储单元,被配置以储存输入数据集和神经网络权重,第二单元包括模拟数字转换(adc)单元,并且人工神经网络计算请求包括多个数字输入向量,
[1387]
其中光源被配置以产生多个波长,
[1388]
其中多个光调制器包括:
[1389]
光调制器组,被配置以产生多个光输入向量,每一个光调制器组对应多个波长之一,并且产生具有相应波长的相应光输入向量;以及
[1390]
光多路复用器,被配置以将多个光输入向量组合成包括多个波长的组合光输入向量,以及
[1391]
操作包括:
[1392]
从adc单元得到对应光输出向量的第一多个数字光输出,光输出向量包括多个波长,第一多个数字光输出形成第一数字输出向量;
[1393]
对第一数字输出向量执行非线性变换,以产生第一变换数字输出向量;以及
[1394]
在存储单元中所述第一变换数字输出向量。
[1395]
实施例210:如实施例174至209中任一项的系统,其中第一单元包括数字模拟转换(dac)单元,第二单元包括模拟数字转换(adc)单元,并且dac单元包括:
[1396]
1比特dac子单元,被配置以产生多个1比特调制器控制信号,
[1397]
其中adc单元的分辨率为1比特,
[1398]
其中第一数字输入向量的分辨率为n比特,以及
[1399]
其中操作包括:
[1400]
将第一数字输入向量分解为n个1比特输入向量,n个1比特输入向量中的每一个对应第一数字输入向量的n比特中的一个;
[1401]
通过1比特dac子单元产生对应n个1比特输入向量的n个1比特调制器控制信号的序列;
[1402]
从adc单元得到对应n个1比特调制器控制信号的序列的n个数字1比特光输出的序列;
[1403]
从n个数字1比特光输出的序列建构n比特数字输出向量;
[1404]
对建构的n比特数字输出向量执行非线性变换,以产生变换n比特数字输出向量;以及
[1405]
在存储单元中储存变换n比特数字输出向量。
[1406]
实施例211:如实施例174至210中任一项的系统,其中系统包括存储单元,被配置以储存输入数据集和神经网络权重,并且存储单元包括:
[1407]
数字输入向量存储器器,被配置以储存第一数字输入向量,并且包括至少一个sram;以及
[1408]
神经网络权重存储器,被配置以储存多个神经网络权重,并且包括至少一个dram。
[1409]
实施例212:如实施例174至211中任一项的系统,其中第一单元包括数字模拟转换(dac)单元,数字模拟转换单元包括:
[1410]
第一dac子单元,被配置以产生多个调制器控制信号;以及
[1411]
第二dac子单元,被配置以产生多个权重控制信号,
[1412]
其中第一dac子单元和第二dac子单元是不同的。
[1413]
实施例213:如实施例174至212中任一项的系统,其中光源包括:
[1414]
激光源,被配置以产生光;以及
[1415]
光功率分离器,被配置以将由激光源所产生的光分成多个光输出,其中多个光输出中的每一个具有基本相同的功率。
[1416]
实施例214:如实施例174至213中任一项的系统,其中多个光调制器包括mzi调制器、环形共振调制器或电吸收调制器中的一个。
[1417]
实施例215:如实施例204的系统,其中光电检测单元包括:
[1418]
多个光电检测器;以及
[1419]
多个放大器,被配置以将由光电检测器所产生的光电流转换成多个输出电压。
[1420]
实施例216:如实施例174至215中任一项的系统,其中集成电路是专用集成电路。
[1421]
实施例217:如实施例174和191至194中任一项的系统,包括多个光波导,光波导耦合在光调制器与矩阵乘法单元之间,其中光输入向量包括一组多个输入值,一组多个输入值被编码在由光波导所承载的相应光信号上,并且由光波导者之一所承载的每一个光信号包括具有共同波长的光波,共同波长对于所有光信号基本相同。
[1422]
实施例218:如实施例191至194和217中任一项的系统,其中复制模块包括具有分光器的至少一个复制模块,分光器在输入端口将预定比例的光波的功率传输至第一输出端
口,并且在输入端口将剩余比例的光波的功率传输至第二输出端口。
[1423]
实施例219:如实施例218的装置,其中分光器包括波导分光器,波导分光器将由输入光波导所引导的预定比例的光波的功率传输至第一输出光波导,并且将由输入光波导所引导的剩余比例的光波的功率传输至第二输出光波导。
[1424]
实施例220:如实施例219的装置,其中输入光波导的引导模式被绝热地耦合至第一输出光波导和第二输出光波导中的每一个的引导模式。
[1425]
实施例221:如实施例218至220中任一项的系统,其中分光器包括分束器,分束器包括至少一个表面,其在输入端口传输预定比例的光波的功率,并且反射输入端口处剩余比例的光波的功率。
[1426]
实施例222:如实施例217至221中任一项的系统,其中多个光波导中的至少一个包括耦合至光耦合器的光纤,光耦合器将光纤的引导模式耦合至自由空间传播模式。
[1427]
实施例223:如实施例174、191至194和217至222中任一项的系统,其中乘法模块包括至少一个相干敏感乘法模块,相干敏感乘法模块被配置以基于光波之间的干涉,使用光幅度调制将第一子集的一个或多个光信号乘以一个或多个矩阵元素值,光波具有相干长度,相干长度至少与通过相干敏感乘法模块的传播距离一样长。
[1428]
实施例224:如实施例223的装置,其中相干敏感乘法模块包括马赫曾德尔干涉仪(mzi),马赫曾德尔干涉仪将输入光波导所引导的光波分离进入mzi的第一光波导臂和mzi的第二光波导臂,第一光波导臂包括移相器,移相器相对于第二光波导臂的相位延迟产生相对相移,并且mzi将来自第一光波导臂和第二光波导臂的光波组合成至少一个输出光波导。
[1429]
实施例225:如实施例224的装置,其中mzi将来自第一光波导臂和第二光波导臂的光波组合到第一输出光波导和第二输出光波导中的每一个,第一光电检测器从第一输出光波导接收光波以产生第一光电流,第二光电检测器从第二输出光波导接收光波以产生第二光电流,并且相干敏感乘法模块的结果包括第一光电流与第二光电流之间的差值。
[1430]
实施例226:如实施例223至225中任一项的系统,其中相干敏感乘法模块包括一个或多个环形共振器,环形共振器包括耦合至第一光波导的至少一个环形共振器和耦合至第二光波导的至少一个环形共振器。
[1431]
实施例227:如实施例226的装置,其中第一光电检测器接收来自第一光波导的光波,以产生第一光电流,第二光电检测器接收来自第二光波导的光波,以产生第二光电流,并且相干敏感乘法模块的结果包括第一光电流与第二光电流之间的差值。
[1432]
实施例228:如实施例174、191至194和217至227中任一项的系统,其中乘法模块包括至少一个相干非敏感乘法模块,相干非敏感乘法模块被配置以基于光波内的能量吸收,使用光幅度调制将第一子集的一个或多个光信号乘以一个或多个矩阵元素值。
[1433]
实施例229:如实施例228的装置,其中相干非敏感乘法模块包括电吸收调制器。
[1434]
实施例230:如实施例174、191至194和217至229中任一项的系统,其中一个或多个求和模块包括具有以下部件的至少一个求和模块:(1)两个或更多个输入导体,每一个输入导体以输入电流的形式承载电信号,输入电流的幅度表示相应一个乘法模块的相应结果,以及(2)至少一个输出导体,输出导体承载表示输出电流形式的相应结果的总和的电信号,输出电流与输入电流的总和成比例。
[1435]
实施例231:如实施例230的装置,其中两个或更多个输入导体和输出导体包括导线,其在导线之间的一个或多个结点接触,并且输出电流基本等于输入电流的总和。
[1436]
实施例232:如实施例230或231的装置,其中输入电流的至少第一输入电流以至少一个光电流的形式提供,光电流由至少一个光电检测器产生,光电检测器接收由乘法模块的第一乘法模块所产生的光信号。
[1437]
实施例233:如实施例232的装置,其中第一输入电流以两个光电流之间的差值的形式提供,两个光电流由不同相应光电检测器产生,光电检测器接收由第一乘法模块所产生的不同相应光信号。
[1438]
实施例234:如实施例174至233中任一项的系统,其中一个或多个光信号的第一子集的副本之一由单一光信号组成,其中在单一光信号上编码输入值之一。
[1439]
实施例235:如实施例234的装置,其中对应于第一子集的副本的乘法模块将编码的输入值乘以单一矩阵元素值。
[1440]
实施例236:如实施例174、191至194和217至235中任一项的系统,其中一个或多个光信号的第一子集的副本之一包括的光信号多于一个,并且少于所有光信号,其中多个输入值被编码在该光信号上。
[1441]
实施例237:如实施例236的装置,其中对应于第一子集的副本的乘法模块将编码的输入值乘以不同的相应矩阵元素值。
[1442]
实施例238:如实施例237的装置,其中对应于一个或多个光信号的第一子集的不同相应副本的不同乘法模块被包含在不同装置,不同装置进行光学通信以在不同装置之间传输一个或多个光信号的第一子集的副本之一。
[1443]
实施例239:如实施例174、191至194和217至238中任一项的系统,其中多个光波导的两个或更多个、多个复制模块的两个或更多个、多个乘法模块的两个或更多个、以及一个或多个求和模块的至少一个被布置在公共装置的基板上。
[1444]
实施例240:如实施例239的装置,其中装置执行向量矩阵乘法,其中提供输入向量作为一组光信号,并且提供输出向量作为一组电信号。
[1445]
实施例241:如实施例174、191至194和217至240中任一项的系统,进一步包括累加器,累加器合并对应乘法模块或求和模块的输出的输入电信号,其中使用时域编码来编码输入电信号,时域编码在多个时隙的每一个内使用开关幅度调制,并且累加器产生输出电信号,输出电信号以多于两个幅度水平来编码,幅度水平对应于多个时隙上的时域编码的不同占空比。
[1446]
实施例242:如实施例174、191至194和217至241中任一项的系统,其中乘法模块的两个或更多个的每一个对应于一个或多个光信号的不同子集。
[1447]
实施例243:如实施例174、191至194和217至242中任一项的系统,对于一个或多个光信号的第二子集的每一个副本,与一个或多个光信号的第一子集中的光信号不同,装置进一步包括乘法模块,其被配置以使用光幅度调制将第二子集的一个或多个光信号乘以一个或多个矩阵元素值。
[1448]
实施例244:一种系统,包括:
[1449]
存储单元,被配置以储存数据集和多个神经网络权重;
[1450]
驱动器单元,被配置以产生多个调制器控制信号;
[1451]
光电处理器,包括:
[1452]
光源,被配置以提供多个光输出;
[1453]
多个光调制器,耦合至光源和驱动器单元,多个光调制器被配置以通过基于多个调制器控制信号调制由光源所产生的多个光输出,来产生光输入向量;
[1454]
矩阵乘法单元,耦合至多个光调制器和驱动器单元,矩阵乘法单元被配置以基于多个权重控制信号将光输入向量转换成模拟输出向量;以及
[1455]
比较器单元,耦合至矩阵乘法单元,并且被配置以将模拟输出向量转换成多个数字1比特输出;以及
[1456]
控制器,包括集成电路,被配置以执行以下操作:
[1457]
接收包括输入数据集和第一多个神经网络权重的人工神经网络计算请求,其中输入数据集包括具有n比特分辨率的第一数字输入向量;
[1458]
在存储单元中储存输入数据集和第一多个神经网络权重;
[1459]
将第一数字输入向量分解为n个1比特输入向量,n个1比特输入向量中的每一个对应第一数字输入向量的n比特中的一个;
[1460]
通过驱动器单元产生对应n个1比特输入向量的n个1比特调制器控制信号的序列;
[1461]
从比较器单元得到对应n个1比特调制器控制信号的序列的n个数字1比特输出的序列;
[1462]
从n个数字1比特输出的序列建构n比特数字输出向量;
[1463]
对建构的n比特数字输出向量执行非线性变换,以产生变换n比特数字输出向量;以及
[1464]
在存储单元中储存变换n比特数字输出向量。
[1465]
实施例245:如实施例244的系统,其中接收人工神经网络计算请求包括从通用计算机(general purpose computer)接收人工神经网络计算请求。
[1466]
实施例246:如实施例244的系统,其中驱动器单元被配置以产生多个权重控制信号。
[1467]
实施例247:如实施例244的系统,其中矩阵乘法单元包括:
[1468]
光矩阵乘法单元,耦合至多个光调制器和驱动器单元,光矩阵乘法单元被配置以基于多个权重控制信号将光输入向量转换成光输出向量;以及
[1469]
光电检测单元,耦合至光矩阵乘法单元,并且被配置以产生对应光输出向量的多个输出电压。
[1470]
实施例248:如实施例244的系统,其中矩阵乘法单元包括:
[1471]
输入波导阵列,用于接收光输入向量;
[1472]
光干涉单元,与输入波导阵列光学通信,用于执行将光输入向量转换成第二光信号阵列的线性变换;以及
[1473]
输出波导阵列,与光干涉单元光学通信,用于引导第二光信号阵列,其中在输入波导阵列中的至少一个输入波导通过光干涉单元与在输出波导阵列中的每一个输出波导光学通信。
[1474]
实施例249:如实施例248的系统,其中光干涉单元包括:
[1475]
多个互连马赫曾德尔干涉仪(mzi),多个互连mzi中的每一个mzi包括:
[1476]
第一移相器,被配置以改变mzi的分光比;以及
[1477]
第二移相器,被配置以移动mzi的一个输出的相位,
[1478]
其中第一移相器和第二移相器耦合至多个权重控制信号。
[1479]
实施例250:如实施例244的系统,其中矩阵乘法单元包括:
[1480]
多个复制模块,对于光输入向量的一个或多个光信号的至少两个子集中的每一个,多个复制模块包括一个或多个复制模块的相应一组,其被配置以将一个或多个光信号的子集分成两个或更多个光信号的副本;
[1481]
多个乘法模块,对于一个或多个光信号的第一子集的至少两个副本中的每一个,多个乘法模块相应的乘法模块,其被配置以使用光幅度调制将第一子集的一个或多个光信号乘以一个或多个矩阵元素值;以及
[1482]
一个或多个求和模块,对于两个或更多个乘法模块的结果,一个或多个求和模块包括被配置以产生电信号的求和模块,电信号表示两个或更多个乘法模块的结果的总和。
[1483]
实施例251:如实施例250的系统,其中至少一个乘法模块包括光幅度调制器,光幅度调制器包括一个输入端口和两个输出端口,并且从两个输出端口提供一对相关光信号,使得相关光信号的幅度之间的差值对应于将输入值乘以有符号矩阵元素值的结果。
[1484]
实施例252:如实施例250或251的系统,其中矩阵乘法单元被配置以将光输入向量乘以包括一个或多个矩阵元素值的矩阵。
[1485]
实施例253:如实施例252的系统,其中一组多个输出值被编码在由一个或多个求和模块所产生的相应电信号上,并且一组多个输出值中的输出值表示输出向量的元素,输出向量通过光输入向量乘以矩阵产生。
[1486]
实施例254:一种用于在具有矩阵乘法单元的系统中执行人工神经网络计算的方法,矩阵乘法单元被配置以基于多个权重控制信号将光输入向量转换成模拟输出向量,方法包括:
[1487]
接收包括输入数据集和第一多个神经网络权重的人工神经网络计算请求,其中输入数据集包括第一数字输入向量;
[1488]
在存储单元中储存输入数据集和第一多个神经网络权重;
[1489]
基于第一数字输入向量产生第一多个调制器控制信号,并且基于第一多个神经网络权重产生第一多个权重控制信号;
[1490]
得到对应矩阵乘法单元的输出向量的第一多个数字输出,第一多个数字输出形成第一数字输出向量;
[1491]
通过控制器对第一数字输出向量执行非线性变换,以产生第一变换数字输出向量;
[1492]
在存储单元中储存第一变换数字输出向量;以及
[1493]
通过控制器输出基于第一变换数字输出向量所产生的人工神经网络输出。
[1494]
实施例255:如实施例254的方法,其中接收人工神经网络计算请求包括通过通信信道从计算机接收人工神经网络计算请求。
[1495]
实施例256:如实施例254或255的方法,其中产生第一多个调制器控制信号包括通过数字模拟转换(dac)单元产生第一多个调制器控制信号。
[1496]
实施例257:如实施例254至256中任一项的方法,其中得到第一多个数字输出包括
从模拟数字转换(adc)单元得到第一多个数字输出。
[1497]
实施例258:如实施例257的方法,包括:
[1498]
将第一多个调制器控制信号施加至耦合到光源和dac单元的多个光调制器;以及
[1499]
使用多个光调制器通过基于多个调制器控制信号调制由激光单元所产生的多个光输出,来产生光输入向量。
[1500]
实施例259:如实施例258的方法,其中矩阵乘法单元耦合至多个光调制器和dac单元,并且方法包括:
[1501]
使用矩阵乘法单元基于多个权重控制信号将光输入向量转换成模拟输出向量。
[1502]
实施例260:如实施例259的方法,其中adc单元耦合至矩阵乘法单元,并且方法包括:
[1503]
使用adc单元将模拟输出向量转换成第一多个数字输出。
[1504]
实施例261:如实施例259或260的方法,其中矩阵乘法单元包括耦合至多个光调制器和dac单元的光矩阵乘法单元,
[1505]
将光输入向量转换成模拟输出向量包括使用光矩阵乘法单元基于多个权重控制信号将光输入向量转换成光输出向量,以及
[1506]
方法包括:使用耦合至光矩阵乘法单元的光电检测单元,产生对应光输出向量的多个输出电压。
[1507]
实施例262:如实施例254的方法,包括:
[1508]
在输入波导阵列接收光输入向量;
[1509]
使用与输入波导阵列光学通信的光干涉单元,执行将光输入向量转换成第二光信号阵列的线性变换;以及
[1510]
使用与光干涉单元光学通信的输出波导阵列,引导第二光信号阵列,其中在输入波导阵列中的至少一个输入波导通过光干涉单元与在输出波导阵列中的每一个输出波导光学通信。
[1511]
实施例263:如实施例262的方法,其中光干涉单元包括多个互连马赫曾德尔干涉仪(mzi),多个互连mzi中的每一个mzi包括第一移相器和第二移相器,并且第一移相器和第二移相器耦合至多个权重控制信号,其中
[1512]
方法包括:
[1513]
使用第一移相器改变mzi的分光比,以及
[1514]
使用第二移相器移动mzi的一个输出的相位。
[1515]
实施例264:如实施例258的方法,包括:
[1516]
对于光输入向量的一个或多个光信号的至少两个子集中的每一个,使用一个或多个复制模块的相应一组将一个或多个光信号的子集分成两个或更多个光信号的副本;
[1517]
对于一个或多个光信号的第一子集的至少两个副本中的每一个,使用相应的乘法模块以使用光幅度调制将第一子集的一个或多个光信号乘以一个或多个矩阵元素值;以及
[1518]
对于两个或更多个乘法模块的结果,使用被配置为产生电信号的求和模块,电信号表示两个或更多个乘法模块的结果的总和。
[1519]
实施例265:如实施例264的方法,其中至少一个乘法模块包括光幅度调制器,光幅度调制器包括一个输入端口和两个输出端口,并且从两个输出端口提供一对相关光信号,
使得相关光信号的幅度之间的差值对应于将输入值乘以有符号矩阵元素值的结果。
[1520]
实施例266:如实施例264或265的方法,包括使用矩阵乘法单元将光输入向量乘以包括一个或多个矩阵元素值的矩阵。
[1521]
实施例267:如实施例266的方法,包括在由一个或多个求和模块所产生的相应电信号上编码一组多个输出值,以及
[1522]
使用一组多个输出值中的输出值表示输出向量的元素,输出向量通过光输入向量乘以矩阵产生。
[1523]
实施例268:一种方法,包括:
[1524]
以电子格式提供输入信息;
[1525]
将至少一部分电子输入信息转换成光输入向量;
[1526]
基于矩阵乘法将光输入向量光电地转换成模拟输出向量;以及
[1527]
将非线性变换电子地应用于模拟输出向量,以提供电子格式的输出信息。
[1528]
实施例269:如实施例268的方法,进一步包括:
[1529]
对于对应以电子格式所提供的输出信息的新电子输入信息,重复电光转换、光电转换以及电应用的非线性变换。
[1530]
实施例270:如实施例269的方法,其中用于初始光电转换的矩阵乘法和重复光电转换的矩阵乘法是相同的,并且对应人工神经网络的相同层。
[1531]
实施例271:如实施例269的方法,其中用于初始光电转换的矩阵乘法和重复光电转换的矩阵乘法是不同的,并且对应人工神经网络的不同层。
[1532]
实施例272:如实施例268的方法,进一步包括:
[1533]
对于电子输入信息的不同部分,重复电光转换、光电转换以及电应用的非线性变换,
[1534]
其中用于初始光电转换的矩阵乘法和重复光电转换的矩阵乘法是相同的,并且对应人工神经网络的第一层。
[1535]
实施例273:如实施例272的方法,进一步包括:
[1536]
基于由人工神经网络的第一层所产生的用于电子输入信息的多个部分的电子输出信息,以电子格式提供中间信息;以及
[1537]
对于电子中间信息的不同部分的每一个,重复电光转换、光电转换以及电应用的非线性变换,
[1538]
其中用于初始光电转换的矩阵乘法和与电子中间信息的不同部分相关的重复光电转换的矩阵乘法是相同的,并且对应人工神经网络的第二层。
[1539]
实施例274:一种用于执行人工神经网络计算的系统,该系统包括:
[1540]
第一单元,被配置以产生多个向量控制信号,并且产生多个权重控制信号;
[1541]
第二单元,被配置以基于多个向量控制信号提供光输入向量;
[1542]
矩阵乘法单元,耦合至第二单元和第一单元,矩阵乘法单元被配置以基于多个权重控制信号将光输入向量转换成输出向量;以及
[1543]
控制器,包括集成电路,被配置以执行以下操作:
[1544]
接收包括输入数据集和第一多个神经网络权重的人工神经网络计算请求,其中输入数据集包括第一数字输入向量;以及
[1545]
通过第一单元,基于第一数字输入向量产生第一多个向量控制信号,并且基于第一多个神经网络权重产生第一多个权重控制信号;
[1546]
其中第一单元、第二单元、矩阵乘法单元以及控制器被用于在多个迭代中重复的光电处理循环,并且光电处理循环包括:(1)至少两次光调制操作,以及(2)(a)电求和操作或(b)电储存操作中的至少一个。
[1547]
实施例275:一种用于执行人工神经网络计算方法,该方法包括:
[1548]
以电子格式提供输入信息;
[1549]
将至少一部分电子输入信息转换成光输入向量;以及
[1550]
使用一组神经网络权重,基于矩阵乘法将光输入向量转换成输出向量;
[1551]
其中所述提供和转换在光电处理循环中执行,使用不同相应组神经网络权重和不同相应输入信息,在多个迭代中重复光电处理循环,并且光电处理循环包括:(1)至少两次光调制操作,以及(2)(a)电求和操作或(b)电储存操作中的至少一个。
[1552]
实施例276:一种计算系统,包括:
[1553]
第一单元,被配置以产生多个调制器控制信号;
[1554]
处理单元,包括:
[1555]
光源或端口,被配置以提供多个光输出;
[1556]
第一组光调制器,耦合至光源或端口和第一单元,第一组光调制器中的光调制器被配置以基于与调制器控制信号中的第一组调制器控制信号相对应的多个数字输入值,通过调制由光源或端口所提供的多个光输出,来产生光输入向量,光输入向量包括多个光信号;以及
[1557]
矩阵乘法单元,包括第二组光调制器,其中矩阵乘法单元耦合至第一单元,并且矩阵乘法单元被配置以基于与施加到第二组光调制器的多个调制器控制信号中的第二组调制器控制信号相对应的多个数字权重值,将光输入向量变换为模拟输出向量,
[1558]
其中第一组光调制器或第二组光调制器中的至少一个的至少一个光调制器被配置以基于多个调制器控制信号中的第一调制器控制信号来调制光信号,并且第一单元被配置以整形第一调制器控制信号,以包括与幅度变化相关的带宽增强,幅度变化与对应于第一调制器控制信号的连续数字值的对应变化相关联。
[1559]
实施例277:如实施例276的系统,还包括:
[1560]
第二单元,耦合至矩阵乘法单元,并且第二单元被配置以将模拟输出向量转换成数字输出向量;以及
[1561]
控制器,包括集成电路,被配置以执行以下操作:
[1562]
接收人工神经网络计算请求,人工神经网络计算请求包括输入数据集,输入数据集包括第一数字输入向量;
[1563]
接收第一多个神经网络权重;以及
[1564]
通过第一单元,基于第一数字输入向量产生第一多个调制器控制信号,并且基于第一多个神经网络权重产生第一多个权重控制信号。
[1565]
实施例278:如实施例276或277的系统,其中第一单元包括数字模拟转换器(dac)。
[1566]
实施例279:如实施例277的系统,还包括存储单元,被配置以储存数据集和多个神经网络权重。
[1567]
实施例280:如实施例279的系统,其中控制器的集成电路还被配置以执行包括在存储单元中储存输入数据集和第一多个神经网络权重的操作。
[1568]
实施例281:如实施例277至280中任意一个的系统,其中控制器包括专用集成电路(asic),并且
[1569]
接收人工神经网络计算请求包括从通用数据处理器接收人工神经网络计算请求。
[1570]
实施例282:如实施例277至281中任意一个的系统,其中第一单元、处理单元、第二单元以及控制器被布置在多芯片模块或集成电路中的至少一个上,并且
[1571]
接收人工神经网络计算请求包括从第二数据处理器接收人工神经网络计算请求,其中第二数据处理器在多芯片模块或集成电路的外部,第二数据处理器通过通信通道耦合至多芯片模块或集成电路,并且处理单元可以以比通信通道的数据速率大至少一数量级的数据速率来处理数据。
[1572]
实施例283:如实施例277至282中任意一个的系统,其中第一单元、处理单元、第二单元以及控制器被用于在多个迭代中重复的光电处理循环,光电处理循环包括:
[1573]
(1)基于多个调制器控制信号的至少一个的至少第一光调制操作,以及基于权重控制信号的至少一个的至少第二光调制操作,以及
[1574]
(2)(a)电求和操作或(b)电储存操作中的至少一个。
[1575]
实施例284:如实施例283的系统,其中光电处理循环包括电储存操作,并且电储存操作使用耦合至控制器的存储单元来执行,
[1576]
其中通过控制器所执行的操作还包括在存储单元中储存输入数据集和第一多个神经网络权重。
[1577]
实施例285:如实施例283或284的系统,其中光电处理循环包括电求和操作,并且电求和操作使用在矩阵乘法单元内的电求和模块来执行,
[1578]
其中电求和模块被配置以产生对应于模拟输出向量的元素的电流,电流表示光输入向量的相应元素乘以相应神经网络权重的总和。
[1579]
实施例286:如实施例276至285中任意一个的系统,其中第一调制器控制信号包括与多个预定幅度水平相关联的模拟信号,并且幅度水平的每一个与不同对应数字值相关。
[1580]
实施例287:如实施例286的系统,其中第一调制器控制信号包括与两个预定幅度水平相关联的模拟信号,并且幅度水平的每一个与不同对应二进制值相关。
[1581]
实施例288:如实施例287的系统,其中连续数字值包括在一系列二进制值中的多个连续二进制值。
[1582]
实施例289:如实施例288的系统,其中控制器被配置以通过增加与第一时间间隔相关联的第一预定幅度水平和与第二时间间隔相关联的第二预定幅度水平之间的幅度变化的大小,来整形第一调制器控制信号,以包括用于第二时间间隔的初始部分的带宽增强。
[1583]
实施例290:如实施例288或289的系统,其中一系列二进制值被用于确定用于根据不归零(nrz)调制模式来调制光信号的第一调制器控制信号的幅度水平。
[1584]
实施例291:如实施例288至290中任意一个的系统,其中第一单元被配置以通过在第二组光调制器中的第一调制器的二极管结构和串联连接在二极管结构和提供第一调制器控制信号的电路之间的电容之间泵浦电流,来整形第一调制器控制信号,以包括带宽增强,并且泵浦电流所传输的电荷量至少部分地基于在提供连续数字值的时间周期内的恒定
电压来确定。
[1585]
实施例292:一种装置,包括:
[1586]
多个光波导,耦合至第一组光幅度调制器,其中使用第一组光幅度调制器,在由光波导所承载的相应光信号上编码一组多个输入值;
[1587]
多个复制模块,并且对于一个或多个光信号的至少两个子集中的每一个,一个或多个复制模块的对应一组被配置以将一个或多个光信号的子集分成光信号的两个或更多个副本;
[1588]
多个乘法模块,乘法模块的每一个包括第二组光幅度调制器的光幅度调制器,并且对于一个或多个光信号的第一子集的至少两个副本中的每一个,对应的乘法模块被配置以使用第二组光幅度调制器的光幅度调制器将第一子集的一个或多个光信号乘以一个或多个矩阵元素值;以及
[1589]
一个或多个求和模块,并且对于两个或更多个乘法模块的结果,对应的一个求和模块被配置以产生电信号,电信号表示两个或更多个乘法模块的结果的总和;
[1590]
其中第一组光幅度调制器或第二组光幅度调制器中的至少一个的至少一个光幅度调制器被配置以使用相对于调制值的绝对值单调增加的功率,通过调制值来调制光信号。
[1591]
实施例293:如实施例292的装置,其中第一组光幅度调制器或第二组光幅度调制器中的至少一个的至少一个光幅度调制器包括相干敏感光幅度调制器,相干敏感光幅度调制器被配置以基于多个光波之间的干涉,通过调制值调制光信号,光波具有相干长度,相干长度至少与通过相干敏感光幅度调制器的传播距离一样长。
[1592]
实施例294:如实施例293的装置,其中相干敏感光幅度调制器包括马赫曾德尔干涉仪(mzi),马赫曾德尔干涉仪将输入光波导所引导的光波分配至马赫曾德尔干涉仪的第一光波导臂和马赫曾德尔干涉仪的第二光波导臂,第一光波导臂包括有源移相器,有源移相器相对于第二光波导臂的相位延迟产生相对相移,并且马赫曾德尔干涉仪将来自第一光波导臂和第二光波导臂的多个光波组合到至少一个输出光波导。
[1593]
实施例295:如实施例294的装置,其中用于通过调制值来调制光信号的功率包括施加到有源移相器的功率。
[1594]
实施例296:如实施例292的装置,其中编码在相应光信号上的一组多个输入值中的输入值表示与包括一个或多个矩阵元素值的矩阵相乘的输入向量的多个元素。
[1595]
实施例297:如实施例296的装置,其中一组多个输出值被编码在由一个或多个求和模块所产生的相应电信号上,并且该组多个输出值中的输出值表示输出向量的多个元素,输出向量通过输入向量乘以矩阵产生。
[1596]
实施例298:如实施例292至297中任意一个的装置,其中由光波导所承载的光信号的每一个包括具有共同波长的光波,共同波长对于所有光信号大致相同。
[1597]
实施例299:如实施例292至297中任意一个的装置,其中复制模块包括具有分光器的至少一个复制模块,分光器将复制模块的输入端口处的预定比例的光波的功率传输至复制模块的第一输出端口,并且将复制模块的输入端口处的剩余比例的光波的功率传输至复制模块的第二输出端口。
[1598]
实施例300:如实施例299的装置,其中分光器包括波导分光器,波导分光器将由复
制模块的输入光波导所引导的预定比例的光波的功率传输至复制模块的第一输出光波导,并且将由复制模块的输入光波导所引导的剩余比例的光波的功率传输至复制模块的第二输出光波导。
[1599]
实施例301:如实施例300的装置,其中输入光波导的引导模式被绝热地耦合至第一输出光波导和第二输出光波导中的每一个的引导模式。
[1600]
实施例302:如实施例299或230的装置,其中分光器包括分束器,分束器包括至少一个表面,其传输输入端口处的预定比例的光波的功率,并且反射输入端口处剩余比例的光波的功率。
[1601]
实施例303:如实施例302的装置,其中多个光波导的至少一个包括耦合至光耦合器的光纤,光耦合器将光纤的引导模式耦合至自由空间传播模式。
[1602]
实施例304:如实施例292至303中任意一个的装置,其中乘法模块包括至少一个相干敏感光幅度调制器,相干敏感光幅度调制器被配置以基于光波之间的干涉,将第一子集的一个或多个光信号乘以一个或多个矩阵元素值,光波具有相干长度,相干长度至少与通过相干敏感光幅度调制器的传播距离一样长。
[1603]
实施例305:如实施例304的装置,其中相干敏感光幅度调制器包括马赫曾德尔干涉仪,马赫曾德尔干涉仪将输入光波导所引导的光波分配至马赫曾德尔干涉仪的第一光波导臂和马赫曾德尔干涉仪的第二光波导臂,第一光波导臂包括移相器,移相器相对于第二光波导臂的相位延迟产生相对相移,并且马赫曾德尔干涉仪将来自第一光波导臂和第二光波导臂的多个光波组合到至少一个输出光波导。
[1604]
实施例306:如实施例305的装置,其中马赫曾德尔干涉仪将来自第一光波导臂和第二光波导臂的多个光波组合到第一输出光波导和第二输出光波导中的每一个,第一光电检测器从第一输出光波导接收光波以产生第一光电流,第二光电检测器从第二输出光波导接收光波以产生第二光电流,并且相干敏感光幅度调制器的结果包括第一光电流与第二光电流之间的差值。
[1605]
实施例307:如实施例304至306中任意一个的装置,其中相干敏感光幅度调制器包括一个或多个环形共振器,环形共振器包括耦合至第一光波导的至少一个环形共振器和耦合至第二光波导的至少一个环形共振器。
[1606]
实施例308:如实施例307的装置,其中第一光电检测器接收来自第一光波导的光波,以产生第一光电流,第二光电检测器接收来自第二光波导的光波,以产生第二光电流,并且相干敏感光幅度调制器的结果包括第一光电流与第二光电流之间的差值。
[1607]
实施例309:如实施例292至308中任意一个的装置,其中乘法模块包括至少一个相干非敏感光幅度调制器,相干非敏感光幅度调制器被配置以基于光波内的能量吸收,将第一子集的一个或多个光信号乘以一个或多个矩阵元素值。
[1608]
实施例310:如实施例309的装置,其中相干非敏感光幅度调制器包括电吸收调制器。
[1609]
实施例311:如实施例292至310中任意一个的装置,其中一个或多个求和模块包括具有以下部件的至少一个求和模块:(1)两个或更多个输入导体,输入导体的每一个以输入电流的形式承载电信号,输入电流的幅度表示乘法模块的相应一个的相应结果,以及(2)至少一个输出导体,输出导体以输出电流的形式承载表示相应结果的总和的电信号,输出电
流与输入电流的总和成比例。
[1610]
实施例312:如实施例311的装置,其中两个或更多个输入导体和输出导体包括导线,其在导线之间的一个或多个结点接触,并且输出电流大致等于输入电流的总和。
[1611]
实施例313:如实施例311或312的装置,其中输入电流的至少第一输入电流以至少一个光电流的形式提供,光电流由至少一个光电检测器产生,光电检测器接收由乘法模块的第一乘法模块所产生的光信号。
[1612]
实施例314:如实施例313的装置,其中第一输入电流以两个光电流之间的差值的形式提供,两个光电流由不同的相应光电检测器产生,光电检测器接收由第一乘法模块所产生的不同的相应光信号。
[1613]
实施例315:如实施例292至314中任意一个的装置,其中一个或多个光信号的第一子集的副本中的一个由单一光信号组成,其中输入值中的一个被编码在该单一光信号上。
[1614]
实施例316:如实施例315的装置,其中对应于第一子集的副本的乘法模块将编码的输入值乘以单一矩阵元素值。
[1615]
实施例317:如实施例292至316中任意一个的装置,其中一个或多个光信号的第一子集的副本中的一个包括的光信号多于一个,并且少于所有光信号,其中多个输入值被编码在该光信号上。
[1616]
实施例318:如实施例317的装置,其中对应于第一子集的副本的乘法模块将编码的输入值乘以不同的相应矩阵元素值。
[1617]
实施例319:如实施例318的装置,其中对应于一个或多个光信号的第一子集的不同相应副本的不同乘法模块被包含在不同装置中,不同装置进行光学通信以在不同装置之间传输一个或多个光信号的第一子集的副本中的一个。
[1618]
实施例320:如实施例319的装置,其中多个光波导的两个或更多个、多个复制模块的两个或更多个、多个乘法模块的两个或更多个、以及一个或多个求和模块的至少一个被布置在公共装置的基板上。
[1619]
实施例321:如实施例320的装置,其中该装置执行向量矩阵乘法,其中提供输入向量作为一组光信号,并且提供输出向量作为一组电信号。
[1620]
实施例322:如实施例292至321中任意一个的装置,还包括累加器,累加器集成对应于乘法模块或求和模块的输出的输入电信号,其中使用时域编码来编码输入电信号,时域编码在多个时隙的每一个内使用开关幅度调制,并且累加器产生输出电信号,输出电信号以多于两个幅度水平来编码,幅度水平对应于多个时隙上的时域编码的不同占空比。
[1621]
实施例323:如实施例292至322中任意一个的装置,其中两个或更多个乘法模块的每一个对应于一个或多个光信号的不同子集。
[1622]
实施例324:如实施例292至323中任意一个的装置,还包括用于与一个或多个光信号的第一子集中的光信号不同的一个或多个光信号的第二子集的每一个副本的乘法模块,其被配置以使用光幅度调制将第二子集的一个或多个光信号乘以一个或多个矩阵元素值。
[1623]
实施例325:一种方法,包括:
[1624]
使用第一组光幅度调制器在相应光信号上编码一组多个输入值;
[1625]
对于一个或多个光信号的至少两个子集中的每一个,使用一个或多个复制模块的对应一组以将一个或多个光信号的子集分成光信号的两个或更多个副本;
[1626]
对于一个或多个光信号的第一子集的至少两个副本中的每一个,使用对应乘法模块以使用第二组光幅度调制器的光幅度调制器将第一子集的一个或多个光信号乘以一个或多个矩阵元素值;以及
[1627]
对于两个或更多个乘法模块的结果,使用被配置为产生电信号的求和模块,电信号表示两个或更多个乘法模块的结果的总和,
[1628]
其中第一组光幅度调制器或第二组光幅度调制器中的至少一个的至少一个光幅度调制器被配置以使用相对于调制值的绝对值单调增加的功率,通过调制值来调制光信号。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1