CN116339444A - 光计算装置、方法和系统 - Google Patents
光计算装置、方法和系统 Download PDFInfo
- Publication number
- CN116339444A CN116339444A CN202111590006.5A CN202111590006A CN116339444A CN 116339444 A CN116339444 A CN 116339444A CN 202111590006 A CN202111590006 A CN 202111590006A CN 116339444 A CN116339444 A CN 116339444A
- Authority
- CN
- China
- Prior art keywords
- optical signals
- group
- module
- signals
- wavelengths
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000003287 optical effect Effects 0.000 title claims abstract description 802
- 238000000034 method Methods 0.000 title claims abstract description 62
- 239000011159 matrix material Substances 0.000 claims abstract description 143
- 238000001514 detection method Methods 0.000 claims description 83
- 238000004364 calculation method Methods 0.000 claims description 54
- 238000005215 recombination Methods 0.000 claims description 33
- 230000006798 recombination Effects 0.000 claims description 33
- 230000001131 transforming effect Effects 0.000 claims description 5
- 230000006870 function Effects 0.000 description 30
- 238000010586 diagram Methods 0.000 description 18
- 230000008569 process Effects 0.000 description 14
- 230000009286 beneficial effect Effects 0.000 description 9
- 238000013527 convolutional neural network Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 6
- 239000000523 sample Substances 0.000 description 6
- 238000003062 neural network model Methods 0.000 description 5
- 238000013528 artificial neural network Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000001934 delay Effects 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000000996 additive effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 239000000969 carrier Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- RDYMFSUJUZBWLH-UHFFFAOYSA-N endosulfan Chemical compound C12COS(=O)OCC2C2(Cl)C(Cl)=C(Cl)C1(Cl)C2(Cl)Cl RDYMFSUJUZBWLH-UHFFFAOYSA-N 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 238000000855 fermentation Methods 0.000 description 1
- 230000004151 fermentation Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000005693 optoelectronics Effects 0.000 description 1
- 230000008521 reorganization Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000009469 supplementation Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06E—OPTICAL COMPUTING DEVICES; COMPUTING DEVICES USING OTHER RADIATIONS WITH SIMILAR PROPERTIES
- G06E3/00—Devices not provided for in group G06E1/00, e.g. for processing analogue or hybrid data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06E—OPTICAL COMPUTING DEVICES; COMPUTING DEVICES USING OTHER RADIATIONS WITH SIMILAR PROPERTIES
- G06E3/00—Devices not provided for in group G06E1/00, e.g. for processing analogue or hybrid data
- G06E3/001—Analogue devices in which mathematical operations are carried out with the aid of optical or electro-optical elements
- G06E3/005—Analogue devices in which mathematical operations are carried out with the aid of optical or electro-optical elements using electro-optical or opto-electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06E—OPTICAL COMPUTING DEVICES; COMPUTING DEVICES USING OTHER RADIATIONS WITH SIMILAR PROPERTIES
- G06E3/00—Devices not provided for in group G06E1/00, e.g. for processing analogue or hybrid data
- G06E3/008—Matrix or vector computation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/067—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using optical means
- G06N3/0675—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using optical means using electro-optical, acousto-optical or opto-electronic means
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Nonlinear Science (AREA)
- Optics & Photonics (AREA)
- Biophysics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Neurology (AREA)
- Optical Communication System (AREA)
Abstract
本申请实施例提供了光计算装置、方法和系统,该装置包括:运算模块,用于根据N个第一电信号调制第一组光信号以输出第二组光信号;根据N个第二电信号调制第三组光信号以输出第四组光信号;调整第二组光信号和第四组光信号的时延和相位;合束模块,用于将调整后的第二组光信号和第四组光信号合束,以输出第五组光信号,第五组光信号用于指示输入数据与第一权重矩阵、第二权重矩阵的乘加运算结果。根据本申请实施例,有助于提升光计算系统的并行运算能力,进一步提升算力。
Description
技术领域
本申请实施例涉及光通信领域,更具体地,涉及光计算装置、方法和系统。
背景技术
光计算具有高性能和低能耗的特点,受到了广泛关注,其可以用于人工智能(artificial intelligence,AI)领域,以提升神经网络模型的运算速度。
根据实现原理,光计算系统可以分为空间光计算系统和片上光计算系统。其中,空间光计算系统以4F系统为主,依靠傅里叶变换完成卷积,模拟卷积神经网络(convolutional neural network,CNN)等神经网络模型。片上光计算系统主要利用马赫-曾德尔调制器(Mach-Zehnder modulator,MZM)等光学器件构建光学乘加器,如麻省理工学院的光神经网络(optical neural network,ONN)。
虽然光计算可以加速神经网络模型中占据大量算力的计算部分,但是由于当前的空间光计算系统和片上光计算系统中的计算装置的并行运算能力较差,使得光计算系统的算力无法显著提升。
发明内容
本申请实施例提供光计算装置、方法和系统,有助于提升光计算系统的并行运算能力,进一步提升算力。
第一方面,提供了一种光计算装置,该装置包括:运算模块,用于根据N个第一电信号调制第一组光信号以输出第二组光信号,所述第一组光信号用于指示输入数据,所述第一组光信号包括N个输入光信号,所述N个输入光信号的波长均不相同,所述N为大于2的正整数,所述N个第一电信号所用于调制的光信号的波长与所述N个输入光信号的波长一一对应,所述N个第一电信号分别用于指示第一权重矩阵的N个部分,所述第二组光信号用于指示所述输入数据与所述第一权重矩阵的计算结果;
所述运算模块还用于:根据N个第二电信号调制第三组光信号以输出第四组光信号,所述第三组光信号用于指示所述输入数据,所述第三组光信号包括所述N个输入光信号,所述N个第二电信号所用于调制的光信号的波长与所述N个输入光信号的波长一一对应,所述N个第二电信号分别用于指示第二权重矩阵的N个部分,所述第三组光信号用于指示所述输入数据与所述第二权重矩阵的计算结果;
所述运算模块还用于:调整所述第二组光信号和所述第四组光信号的时延和相位;
合束模块,用于将调整后的所述第二组光信号和所述第四组光信号合束,以输出第五组光信号,所述第五组光信号用于指示所述输入数据与所述第一权重矩阵、所述第二权重矩阵的乘加运算结果。
根据本申请实施例,N个第一电信号所调制的波长均与N个输入光信号的波长对应,且N个第一电信号中的每个均只调制一个波长的光信号,因此,N个第一电信号对N个输入光信号的调制可以视为N个波长的光信号之间的并行调制,N个第二电信号对N个输入光信号的调制也是如此的。此外,N个第一电信号和N个第二电信号均可以实现对输入数据的调制,即第一权重矩阵和第二权重矩阵之间的调制也是并行的。该光计算装置将N个第一电信号和N个第二电信号的并行调制结果合并,实现输入数据与第一权重矩阵、第二权重矩阵的乘加运算结果,如此,有助于提升光计算装置的并行计算能力。
可选地,所述N个第一电信号中的每个分别用于调制所述N个输入光信号中的一个。
结合第一方面,在第一方面的某些实现方式中,所述装置还包括:解复用重组模块,用于解复用和/或重组所述第五组光信号,获得第六组光信号,所述第六组光信号包括所述第五组光信号中的Q个波长的光信号,所述六组光信号用于指示输出数据,所述Q为小于或等于N的正整数。
本申请实施例可以对输入数据与第一权重矩阵和第二权重矩阵的乘加结果进行解复用和/或重组,因此能够实现特定波长的光信号的加和,对数据处理而言,这种方式具有更强的灵活性。
结合第一方面,在第一方面的某些实现方式中,所述装置还包括:复用模块,用于将所述输入数据的N个部分调制为所述N个输入光信号,并将所述N个输入光信号复用到同一路波导中,形成第七组光信号;分束模块,用于所述第七组光信号分束,形成所述第一组光信号和所述第三组光信号。
因此,本申请实施例能够将输入数据调制为多个波长的光信号,且多个波长的光信号复用到同一路波导中,并将指示输入数据的第七组光信号分束为多束,使得运算模块可以对多束光信号分别进行运算处理,且每一束中多个波长的光信号也可以分别处理,有利于提到系统的并行处理能力。
结合第一方面,在第一方面的某些实现方式中,所述装置还包括:复用模块,用于将所述输入数据的N个部分调制为所述N个输入光信号,并将所述N个输入光信号复用到同一路波导中,分别形成所述第一组光信号和所述第三组光信号。
因此,本申请实施例能够将输入数据调制为多个波长的光信号,且多个波长的光信号复用到同一路波导中,形成多束光信号,使得运算模块可以对多束光信号分别进行运算处理,且每一束中多个波长的光信号也可以分别处理,有利于提到系统的并行处理能力。
结合第一方面,在第一方面的某些实现方式中,所述装置还包括加载探测模块,用于:将所述第一权重矩阵拆分为N个部分,配置所述第一权重矩阵的N个部分与所述N个波长一一对应;将所述第二权重矩阵拆分为N个部分,配置所述第二权重矩阵的N个部分与所述N个波长一一对应;将所述N个第一电信号和所述N个第二电信号分别加载至所述运算模块。
因此,本申请实施例中,加载探测模块可以根据运算模块所能调制的波长将权重矩阵拆分为N个部分,并且每个权重矩阵对应一个波长,也就是,本申请能够通过波长复用提升系统的并行性,也有助于降低系统的运算复杂度。
结合第一方面,在第一方面的某些实现方式中,所述加载探测模块还用于:将所述输入数据变换为N个部分,并配置所述输入数据的N个部分与N个波长一一对应;将所述输入数据的N个部分加载至复用模块,所述复用模块用于向所述运算模块传输所述第一组光信号和所述第三组光信号。
因此,本申请实施例中,加载探测模块可以根据运算模块所能调制的波长将输入数据变换为N个部分,并且每个输入部分对应一个波长,也就是,本申请能够通过波长复用提升系统的并行性,也有助于降低系统的运算复杂度。
结合第一方面,在第一方面的某些实现方式中,所述运算模块包括:N个第一调制器,用于根据所述N个第一电信号调制所述N个输入光信号,所述N个第一调制器用于调制的光信号的波长与所述N个输入光信号的波长一一对应;N个第二调制器,用于根据所述N个第二电信号调制所述N个输入光信号,所述N个第二调制器用于调制的光信号的波长与所述N个输入光信号的波长一一对应。
因此,本申请实施例能够对输入数据进行多波长、多通道的并行调制,提升光计算装置的算力。
结合第一方面,在第一方面的某些实现方式中,所述运算模块包括:第一延迟控制器,用于调整所述第二组光信号的时延和相位;第二延迟控制器,用于调整所述第四组光信号的时延和相位。
本申请实施例能够调整光信号的时延和相位,使得不同通道的光信号在合束的时候产生的是近似相加的效果,有利于提升光计算的效果。
第二方面,提供了一种光计算方法,该方法包括:运算模块根据N个第一电信号调制第一组光信号以输出第二组光信号,所述第一组光信号用于指示输入数据,所述第一组光信号包括N个输入光信号,所述N个输入光信号的波长均不相同,所述N为大于2的正整数,所述N个第一电信号所用于调制的光信号的波长与所述N个输入光信号的波长一一对应,所述N个第一电信号分别用于指示第一权重矩阵的N个部分,所述第二组光信号用于指示所述输入数据与所述第一权重矩阵的计算结果;所述运算模块根据N个第二电信号调制第三组光信号以输出第四组光信号,所述第三组光信号用于指示所述输入数据,所述第三组光信号包括所述N个输入光信号,所述N个第二电信号所用于调制的光信号的波长与所述N个输入光信号的波长一一对应,所述N个第二电信号分别用于指示第二权重矩阵的N个部分,所述第三组光信号用于指示所述输入数据与所述第二权重矩阵的计算结果;所述运算模块调整所述第二组光信号和所述第四组光信号的时延和相位;合束模块将调整后的所述第二组光信号和所述第四组光信号合束,以输出第五组光信号,所述第五组光信号用于指示所述输入数据与所述第一权重矩阵、所述第二权重矩阵的乘加运算结果。
结合第二方面,在第二方面的某些实现方式中,所述方法还包括:解复用重组模块解复用和/或重组所述第五组光信号,获得第六组光信号,所述第六组光信号包括所述第五组光信号中的Q个波长的光信号,所述六组光信号用于指示输出数据,所述Q为小于或等于N的正整数。
结合第二方面,在第二方面的某些实现方式中,所述方法还包括:复用模块将所述输入数据的N个部分调制为所述N个输入光信号,并将所述N个输入光信号复用到同一路波导中,形成第七组光信号;分束模块所述第七组光信号分束,形成所述第一组光信号和所述第三组光信号。
结合第二方面,在第二方面的某些实现方式中,所述方法还包括:复用模块将所述输入数据的N个部分调制为所述N个输入光信号,并将所述N个输入光信号复用到同一路波导中,分别形成所述第一组光信号和所述第三组光信号。
结合第二方面,在第二方面的某些实现方式中,所述方法还包括:加载探测模块将所述第一权重矩阵拆分为N个部分,配置所述第一权重矩阵的N个部分与所述N个波长一一对应;所述加载探测模块将所述第二权重矩阵拆分为N个部分,配置所述第二权重矩阵的N个部分与所述N个波长一一对应;所述加载探测模块将所述N个第一电信号和所述N个第二电信号分别加载至所述运算模块。
结合第二方面,在第二方面的某些实现方式中,所述方法还包括:所述加载探测模块将所述输入数据变换为N个部分,并配置所述输入数据的N个部分与N个波长一一对应;所述加载探测模块将所述输入数据的N个部分加载至复用模块,所述复用模块用于向所述运算模块传输所述第一组光信号和所述第三组光信号。
结合第二方面,在第二方面的某些实现方式中,所述运算模块包括N个第一调制器和N个第二调制器,所述运算模块根据N个第一电信号调制第一组光信号以输出第二组光信号,包括:所述N个第一调制器根据所述N个第一电信号调制所述N个输入光信号以输出所述第二组光信号,所述N个第一调制器用于调制的光信号的波长与所述N个输入光信号的波长一一对应;所述运算模块根据N个第二电信号调制第三组光信号以输出第四组光信号,包括:所述N个第二调制器根据所述N个第二电信号调制所述N个输入光信号以输出所述第四组光信号,所述N个第二调制器用于调制的光信号的波长与所述N个输入光信号的波长一一对应。
结合第二方面,在第二方面的某些实现方式中,所述运算模块包括第一延迟控制器和第二延迟控制器,所述运算模块调整所述第二组光信号和所述第四组光信号的时延和相位,包括:所述第一延迟控制器调整所述第二组光信号的时延和相位;所述第二延迟控制器调整所述第四组光信号的时延和相位。
第三方面,提供了一种光计算装置,该装置包括:运算模块,用于根据N个第一电信号调制第一组光信号以输出第二组光信号,所述第一组光信号用于指示输入数据,所述第一组光信号包括N个输入光信号,所述N个输入光信号的波长均不相同,所述N为大于2的正整数,所述N个第一电信号所用于调制的光信号的波长与所述N个输入光信号的波长一一对应,所述N个第一电信号分别用于指示N个第一卷积核,所述第二组光信号用于指示所述输入数据与所述N个第一卷积核的计算结果;
所述运算模块还用于:根据N个第二电信号调制第三组光信号以输出第四组光信号,所述第三组光信号用于指示所述输入数据,所述第三组光信号包括所述N个输入光信号,所述N个第二电信号所用于调制的光信号的波长与所述N个输入光信号的波长一一对应,所述N个第二电信号分别用于指示N个第二卷积核,所述第三组光信号用于指示所述输入数据与所述N个第二卷积核的计算结果;
所述运算模块还用于:调整所述第二组光信号和所述第四组光信号的时延和相位;
合束模块,用于将调整后的所述第二组光信号和所述第四组光信号合束,以输出第五组光信号,所述第五组光信号用于指示所述输入数据与所述N个第一卷积和、N个第二卷积核的乘加运算结果。
根据本申请实施例,N个第一电信号所调制的波长均与N个输入光信号的波长对应,且N个第一电信号中的每个均只调制一个波长的光信号,因此,N个第一电信号对N个输入光信号的调制可以视为N个波长的光信号之间的并行调制,N个第二电信号对N个输入光信号的调制也是如此的。此外,N个第一电信号和N个第二电信号均可以实现对输入数据的调制,即N个第一卷积核和N个第二卷积核之间的调制也是并行的。该光计算装置将N个第一电信号和N个第二电信号的并行调制结果合并,实现输入数据与N个第一卷积核和N个第二卷积核的乘加运算结果,如此,有助于提升光计算装置的并行计算能力。
可选地,所述N个第一电信号中的每个分别用于调制所述N个输入光信号中的一个。
结合第三方面,在第三方面的某些实现方式中,所述装置还包括:解复用重组模块,用于解复用和/或重组所述第五组光信号,获得第六组光信号,所述第六组光信号包括所述第五组光信号中的Q个波长的光信号,所述六组光信号用于指示输出数据,所述Q为小于或等于N的正整数。
结合第三方面,在第三方面的某些实现方式中,所述装置还包括:复用模块,用于将所述输入数据的N个部分调制为所述N个输入光信号,并将所述N个输入光信号复用到同一路波导中,形成第七组光信号;分束模块,用于所述第七组光信号分束,形成所述第一组光信号和所述第三组光信号。
结合第三方面,在第三方面的某些实现方式中,所述装置还包括:复用模块,用于将所述输入数据的N个部分调制为所述N个输入光信号,并将所述N个输入光信号复用到同一路波导中,分别形成所述第一组光信号和所述第三组光信号。
结合第三方面,在第三方面的某些实现方式中,所述装置还包括加载探测模块,用于:配置所述N个第一卷积核与所述N个波长一一对应;配置所述N个第二卷积核与所述N个波长一一对应;将所述N个第一电信号和所述N个第二电信号分别加载至所述运算模块。
结合第三方面,在第三方面的某些实现方式中,所述加载探测模块还用于:将所述输入数据变换为N个部分,并配置所述输入数据的N个部分与N个波长一一对应;将所述输入数据的N个部分加载至复用模块,所述复用模块用于向所述运算模块传输所述第一组光信号和所述第三组光信号。
结合第三方面,在第三方面的某些实现方式中,所述运算模块包括:N个第一调制器,用于根据所述N个第一电信号调制所述N个输入光信号,所述N个第一调制器用于调制的光信号的波长与所述N个输入光信号的波长一一对应;N个第二调制器,用于根据所述N个第二电信号调制所述N个输入光信号,所述N个第二调制器用于调制的光信号的波长与所述N个输入光信号的波长一一对应。
结合第三方面,在第三方面的某些实现方式中,所述运算模块包括:第一延迟控制器,用于调整所述第二组光信号的时延和相位;第二延迟控制器,用于调整所述第四组光信号的时延和相位。
结合第三方面,在第三方面的某些实现方式中,所述加载探测模块还用于:接收所述N个第一卷积核和所述N个第二卷积核。
结合第三方面,在第三方面的某些实现方式中,所述加载探测模块还用于:向所述复用模块和解复用重组模块发送配置信息,所述配置信息用于指示所述输入数据的N个部分与所述N个波长的一一对应关系,所述配置信息用于所述复用模块将所述输入数据的N个部分调制为所述N个输入光信号,并用于所述解复用重组模块进行波长解复用。
第四方面,提供一种光计算系统,包括:第一方面及第一方面的某些实现方式中任一种光计算装置,或者,包括第三方面及第三方面的某些实现方式中任一种光计算装置。
第五方面,提供一种计算机可读存储介质,该计算机可读存储介质存储用于设备执行的程序代码,该程序代码包括用于执行上述第二方面或第二方面的上述任意一种实现方式提供的方法。
第六方面,提供一种包含指令的计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述第二方面或第二方面的上述任意一种实现方式提供的方法。
附图说明
图1是本申请实施例提供的光计算装置的示意图。
图2是本申请实施例提供的光计算装置的又一示意图。
图3是本申请实施例提供的光计算装置的又一示意图。
图4是本申请实施例提供的光计算装置的又一示意图。
图5是本申请实施例提供的光计算装置的又一示意图。
图6是本申请实施例提供的光计算装置的又一示意图。
图7是本申请实施例提供的光计算装置的又一示意图。
图8是本申请实施例提供的一种全连接层数据运算过程示意图。
图9是本申请实施例提供的一种全连接层数据运算过程的又一示意图。
图10是本申请实施例提供的一种光计算方法的示意性流程图。
图11是本申请实施例提供的一种光计算方法的示意性又一流程图。
具体实施方式
下面将结合附图,对本申请中的技术方案进行描述。
图1是本申请实施例提供的光计算装置的示意图。如图1所示,该装置100包括运算模块110和合束模块120。作为示例,该装置100可以是光计算芯片。
下面对运算模块110和合束模块120进行详细介绍。
在一种实施例场景中,运算模块110,用于根据N个第一电信号调制第一组光信号以输出第二组光信号,所述第一组光信号用于指示输入数据,所述第一组光信号包括N个输入光信号,所述N个输入光信号的波长均不相同,所述N为大于2的正整数,所述N个第一电信号所用于调制的光信号的波长与所述N个输入光信号的波长一一对应,所述N个第一电信号用于指示第一权重矩阵的N个部分,所述第二组光信号用于指示所述输入数据与所述第一权重矩阵的计算结果。
本申请中,第一组光信号用于指示输入数据,该第一组光信号包括N个输入光信号,该N个输入光信号的波长均不相同,也就是说,N个输入光信号的对应N个波长。
在一种实现方式中,输入数据为向量。
在一种实现方式中,第一权重矩阵是由第一神经网络层的权重组成的矩阵,第二权重矩阵是由第二神经网络层的权重组成的矩阵。
可以将第一权值矩阵拆分成N个部分,N个第一电信号分别用于指示第一权重矩阵的一个部分,且N个第一电信号中的每个分别用于调制一个波长的光信号,N个第一电信号所用于调制的光信号的波长与N个输入光信号的波长一一对应。例如,10个第一电信号可以调制10个波长的光信号,包括λ1,λ2,...,λ10,对应的也有10个输入光信号,其波长分别为λ1,λ2,...,λ10。
运算模块110可以接收N个第一电信号和第一组光信号,并根据N个第一电信号将第一组光信号调制为第二组光信号,进一步,输出第二组光信号。具体来说,每个第一电信号调制N个输入光信号中的一个,因此,N个第一电信号可以实现N个输入光信号的并行调制,从而输出第二组光信号。可以理解的是,第二组光信号也包括N个波长的光信号。第二组光信号表示第一权重矩阵与输入数据的乘积运算结果。
值得注意的是,N个第一电信号所调制的波长均与N个输入光信号的波长对应,且N个第一电信号中的每个均只调制一个波长的光信号,因此,当输入数据与第一权重矩阵运算时,N个第一电信号对N个输入光信号的调制可以视为N个波长的光信号之间的并行调制。
运算模块110还可以用于:根据N个第二电信号调制第三组光信号以输出第四组光信号,所述第三组光信号用于指示所述输入数据,所述第三组光信号包括所述N个输入光信号,所述N个第二电信号所用于调制的光信号的波长与所述N个输入光信号的波长一一对应,所述N个第二电信号分别用于指示第二权重矩阵的N个部分,所述第三组光信号用于指示所述输入数据与所述第二权重矩阵的计算结果。
本申请中,第三组光信号也用于指示输入数据,且第三组光信号也包括前述N个输入光信号。
类似地,可以将第二权值矩阵拆分成N个部分,N个第二电信号分别用于指示第二权重矩阵的一个部分,且N个第二电信号中的每个分别用于调制一个波长的光信号,N个第二电信号所用于调制的光信号的波长与N个输入光信号的波长一一对应。例如,10个第二电信号可以调制的10个波长的光信号也是λ1,λ2,...,λ10。
运算模块110还可以接收N个第二电信号和第三组光信号,并根据N个第二电信号将第三组光信号调制为第四组光信号,进一步,输出第四组光信号。具体来说,每个第二电信号调制N个输入光信号中的一个,因此,N个第二电信号可以实现N个输入光信号的并行调制,从而输出第四组光信号。可以理解的是,第四组光信号也包括N个波长的光信号。第四组光信号表示第二权重矩阵与输入数据的乘积运算结果。
类似地,当输入数据与第二权重矩阵运算时,N个第二电信号对N个输入光信号的调制可以视为N个波长的光信号之间的并行调制。
值得注意的是,N个第一电信号和N个第二电信号均可以实现对输入数据的调制,且N个第一电信号和N个第二电信号所用于调制的波长均与N个输入光信号的波长一一对应,因此,N个第一电信号和N个第二电信号之间的调制可以视为并行调制。
所述运算模块110还用于:调整所述第二组光信号和所述第四组光信号的时延和相位。
运算模块110不仅可以调制第一组光信号以输出第二组光信号,调制第三组光信号以输出第四组光信号,还可以调整第二组光信号和第四组光信号的时延和相位。
本申请中,运算模块中光信号的调制可以通过微环调制器(micro-ringmodulator,MRM)或马赫-曾德尔调制器(Mach-Zehnder modulator,MZM)等对波长敏感的光电调制器(modulator,MD)来实现,时延和相位的调整可以通过延迟波导和相移器等器件来实现。
合束模块120可以用于将调整后的所述第二组光信号和所述第四组光信号合束,以输出第五组光信号,所述第五组光信号用于指示所述输入数据与所述第一权重矩阵、所述第二权重矩阵的乘加运算结果。
本申请中,合束模块120可以接收调整后的第二组光信号和第四组光信号,并将调整后的第二组光信号和第四组光信号合并,进一步,输出第五组光信号。其中,第二组光信号表示第二权重矩阵与输入数据的乘积运算结果,第四组光信号表示第二权重矩阵与输入数据的乘积运算结果,合束模块120可以实现调整后的第二组光信号和第四组光信号的加和。因此,第五组光信号用于指示第二权重矩阵和第一权重矩阵共同对输入数据的乘加运算结果。
需要说明的是,合束模块120可以实现调整后的第二组光信号和第四组光信号对应波长的光信号的加和,换言之,在合束时,每个波长的光信号是相互独立的,由于第二组光信号和第四组光信号均包括N个波长的光信号,因此,第五组光信号也包括N个波长的光信号,且第五组光信号中每个波长的光信号是第三组光信号和第四组光信号中该波长的光信号的加和结果,第五组光信号中每个波长的光信号用于指示该波长的输入光信号经过第一电信号和第二电信号的调制结果。
本申请中,合束模块的功能可以通过分束器(例如,Y型分束器)、定向耦合器等具有合束功能的器件来实现,具体地,可以通过反向分束器实现合束的功能。
根据本申请实施例,N个第一电信号所调制的波长均与N个输入光信号的波长对应,且N个第一电信号中的每个均只调制一个波长的光信号,因此,N个第一电信号对N个输入光信号的调制可以视为N个波长的光信号之间的并行调制,N个第二电信号对N个输入光信号的调制也是如此的。此外,N个第一电信号和N个第二电信号均可以实现对输入数据的调制,即第一权重矩阵和第二权重矩阵之间的调制也是并行的。该光计算装置将N个第一电信号和N个第二电信号的并行调制结果合并,实现输入数据与第一权重矩阵、第二权重矩阵的乘加运算结果,如此,有助于提升光计算装置的并行计算能力。
图2是本申请实施例提供的光计算装置的又一示意图。如图2所示,该装置200包括运算模块210、合束模块220和解复用重组模块230。其中,运算模块210、合束模块220所实现的功能可以分别参考上文装置100中的运算模块110和合束模块120的描述,在此不再赘述。
在图1所示的光计算装置中,还可以包括复用重组模块230。解复用重组模块230可以用于解复用和/或重组所述第五组光信号,获得第六组光信号,所述第六组光信号包括所述第五组光信号中的Q个波长的光信号,所述第六组光信号用于指示输出数据,所述Q为小于或等于N的正整数。
如图2所示,解复用重组模块230可以将各种波长的光载波分离,具体而言,解复用重组模块230可以用于接收来自合束模块220的第五组光信号,并解复用第五组光信号,获得N个输出光信号,也就是分离N个波长的输出光信号,其中,N个输出光信号的波长与N个输入信号的波长一一对应;进一步,解复用重组模块230可以用于从N个输出光信号中选择Q个进行组合,获得第六组光信号,该六组光信号用于指示输出数据。解复用重组模块230还可以输出第六组光信号。在这种情况下,解复用重组模块的功能可以由具有波长解复用功能的器件以及具有光路选择功能的器件来实现。例如,可以先用阵列波导光栅(arrayedwaveguide grating,AWG)或刻蚀衍射光栅(etched diffraction grating,EDG)等具有波长解复用功能的器件将N个波长的光信号分开,再通过光开关器件或光路由器件等具有光路选择功能的器件对光信号进行重新组合,其中,光开关器件或光路由器件所选择的波长是可配置的。
或者,解复用重组模块230可以用于根据Q个预设波长值从第五组光信号获得第六组光信号。这种情况下,解复用重组模块的功能可以由具有光路选择功能的器件来实现,例如,通过波长路由器实现预设Q个波长的光信号的组合,例如,将波长范围分成A~B,B~C,λ1,λ2处于A~B,λ3,λ4处于B~C,就分成了两组。
可选地,该Q个预设波长值可以是根据输出数据的波长需求,在解复用重组模块230内预先配置的。例如,第五组光信号包括10个波长的光信号,解复用重组模块230可以获得其中5个波长的光信号的组合结果。
在一种实现方式中,输出数据为向量。
本申请实施例可以对输入数据与第一权重矩阵和第二权重矩阵的乘加结果进行解复用和/或重组,因此能够实现特定波长的光信号的加和,对数据处理而言,这种方式具有更强的灵活性。
图3是本申请实施例提供的光计算装置的又一示意图。如图3所示,该装置300包括运算模块310、合束模块320、解复用重组模块330、复用模块340和分束模块350。其中,运算模块310、合束模块320和解复用重组模块330所实现的功能可以分别参考上文装置100的运算模块110和合束模块120以及装置200的解复用重组模块230的描述,在此不再赘述。
在图1至图2所示的光计算装置中,均可以包括复用模块340和分束模块350。复用模块340可以用于将所述输入数据的N个部分调制为所述N个输入光信号,并将所述N个输入光信号复用到同一路波导中,形成第七组光信号;分束模块350可以用于所述第七组光信号分束,形成所述第一组光信号和所述第三组光信号。
如图3所示,复用模块340可以接收输入数据的N个部分,并根据输入数据的N个部分多对应的波长将输入数据的N个部分调制为N个输入光信号,N个输入光信号的波长即为输入数据的N个部分所对应的波长,N个输入光信号分别用于指示输入数据的N个部分,也就是说,N个输入光信号用于指示输入数据。进一步,复用模块340可以将N个输入光信号复用到同一路波导,形成第七组光信号,然后将第七组光信号输出至分束模块350。其中,第七组光信号用于指示输入数据,第七组光信号包括N个输入光信号。
分束模块350可以将一组光信号分束为两组与分束前的一组光信号相同的光信号。具体而言,分束模块350可以接收第七组光信号,并将第七组光信号分束,形成第一组光信号和第三组光信号。然后,第一组光信号和第三组光信号分别通过一个通道(或者波导)输出至运算模块310。
因此,本申请实施例能够将输入数据调制为多个波长的光信号,且多个波长的光信号复用到同一路波导中,并将指示输入数据的第七组光信号分束为多束,使得运算模块可以对多束光信号分别进行运算处理,且每一束中多个波长的光信号也可以分别处理,有利于提到系统的并行处理能力。
本申请中,复用模块的功能可以采用AWG或EDG等具有波长复用功能的器件来实现。分束模块的具体功能可以通过分束器(例如,Y型分束器)、定向耦合器等具有分束功能的器件来实现,凡是能够将一路光信号分为两路相同的光信号的期间均适用于本申请实施例。
图4是本申请实施例提供的光计算装置的又一示意图。如图4所示,该装置400包括运算模块410、合束模块420、解复用重组模块430、复用模块440和复用模块450。其中,运算模块410、合束模块420、解复用重组模块430所实现的功能可以分别参考上文装置100的运算模块110和合束模块120以及装置200的解复用重组模块230的描述,在此不再赘述。
在图1至图2所示的光计算装置中,均可以包括加载探测模块560。复用模块440可以用于将所述输入数据的N个部分调制为所述N个输入光信号,并将所述N个输入光信号复用到同一路波导中,形成所述第一组光信号。同样地,复用模块450也可以用于将所述输入数据的N个部分调制为所述N个输入光信号,并将所述N个输入光信号复用到同一路波导中,形成所述第三组光信号。
如图4所示,复用模块440与装置300中的复用模块340类似,也可以接收输入数据的N个部分,并根据输入数据的N个部分多对应的波长将输入数据的N个部分调制为N个输入光信号,N个输入光信号的波长即为输入数据的N个部分所对应的波长,N个输入光信号分别用于指示输入数据的N个部分,也就是说,N个输入光信号用于指示输入数据。进一步,复用模块440可以将N个输入光信号复用到同一路波导,形成第七组光信号,复用模块440可以将形成的第七组光信号作为第一组光信号输出至运算模块410。类似的,复用模块450可以将形成的第七组光信号作为第三组光信号输出至运算模块410。其中,第七组光信号用于指示输入数据,第七组光信号包括N个输入光信号。
换言之,第一组光信号和第三组光信号可以是用于指示输入数据且包括多个波长的输入光信号的第七组光信号经过分束器形成的两组光信号,也可以均为第七组光信号。
本申请中,复用模块的功能可以采用AWG或EDG等具有波长复用功能的器件来实现。
图5是本申请实施例提供的光计算装置的又一示意图。如图5所示,该装置500包括运算模块510、合束模块520、解复用重组模块530、复用模块540、分束模块550和加载探测模块560。其中,运算模块510、合束模块520、解复用重组模块530、复用模块540、分束模块550所实现的功能可以分别参考上文装置100的运算模块110和合束模块120、装置200的解复用重组模块230、以及装置300的复用模块340和分束模块350的描述,在此不再赘述。
在图1至图4所示的光计算装置中,均可以包括加载探测模块560。加载探测模块560用于:将所述第一权重矩阵拆分为N个部分,配置所述第一权重矩阵的N个部分与所述N个波长一一对应;将所述第二权重矩阵拆分为N个部分,配置所述第二权重矩阵的N个部分与所述N个波长一一对应。
本申请中,N的取值可以根据运算模块所能调制的波长的个数确定。加载探测模块560可以获取运算模块的参数,其中包括运算模块的尺寸,或者说运算模块所能调制的波长的个数,从而确定N的取值。可选地,N的取值可以小于或等于运算模块所能调制的波长的个数。例如,运算模块所能调制的波长为20个,包括λ1,λ2,...,λ20,则将输入数据变换为20个部分或者少于20个部分。
如图5所示,加载探测模块560可以接收第一权重矩阵,将第一权重矩阵拆分为N个部分。例如,第一权重矩阵为y*x的矩阵,第一权重矩阵的N个部分中的每个可以包括y行、A列,或者,第一权重矩阵的N个部分中的每个可以包括B行、x列。应理解,当对第一权重矩阵按列进行拆分时,可以将第一权重矩阵的列数补充为N的倍数,多余的数据用0填充,其中,补充后的列数记为x',A=x'/N。当对第一权重矩阵按行进行拆分时,可以将第一权重矩阵的行数补充为N的倍数,多余的数据用0填充,其中,补充后的行数记为y',B=y'/N。
加载探测模块560还可以配置第一权重矩阵的N个部分与N个波长一一对应。例如,运算模块所能调制的波长为λ1,λ2,...,λ20,则配置第一权重矩阵的20个部分与λ1,λ2,...,λ20的对应关系。
类似地,加载探测模块560也可以接收第二权重矩阵,对第二权重矩阵进行类似的拆分和配置。
在一种实现方式中,加载探测模块560还可以用于:将所述N个第一电信号和所述N个第二电信号分别加载至所述运算模块。
如图5所示,加载探测模块560可以将N个第一电信号加载至运算模块510,或者说,向运算模块510发送N个第一电信号,其中,N个第一电信号用于指示第一权重矩阵的N个部分。
类似地,图1所示的光计算装置100也可以包括加载探测模块560,加载探测模块560可以将第一权重矩阵的N个部分和第二权重矩阵的N个部分加载至运算模块110。
因此,本申请实施例中,加载探测模块可以根据运算模块所能调制的波长将权重矩阵拆分为N个部分,并且每个权重矩阵对应一个波长,也就是,本申请能够通过波长复用提升系统的并行性,也有助于降低系统的运算复杂度。
在一种实现方式中,加载探测模块560还可以用于:将所述输入数据变换为N个部分,并配置所述输入数据的N个部分与N个波长一一对应。
如图5所示,加载探测模块560可以接收输入数据,将输入数据变换为N个部分。具体而言,将输入数据变换为N个部分,可以是N个部分中的每个都与输入数据相同,也就是,将输入数据复制N个。也可以是N个部分中的每个包括输入数据的部分,且N个部分互不相同,也就是,将入数据拆分为N个,本申请实施例不做限定。例如,输入数据为x行的向量X,输入数据的N个部分中的每个可以包括x/N行,或者每个部分都包括与输入数据相同的x行。当对输入数据进行拆分时,可以将输入数据的行数补充为N的倍数,多余的数据用0填充。
加载探测模块560还可以配置输入数据的N个部分与N个波长一一对应。例如,运算模块所能调制的波长为λ1,λ2,...,λ20,则配置输入数据的20个部分与λ1,λ2,...,λ20的一一对应关系。
在一种实现方式中,加载探测模块560还可以用于:将所述输入数据的N个部分加载至复用模块,所述复用模块用于向所述运算模块输送所述第一组光信号和所述第三组光信号。
如图5所示,加载探测模块560可以将输入数据的N个部分加载至复用模块540中对应的波长上,或者说,将输入数据的N个部分发送至复用模块540。其中,复用模块540可以用于向运算模块输送第一组光信号和第三组光信号。
类似地,图4所示的光计算装置400也可以包括加载探测模块560,加载探测模块560可以将输入数据的N个部分分别加载至复用模块440和复用模块450中对应的波长上,或者说,将输入数据的N个部分发送至复用模块440和复用模块450。其中,复用模块450可以用于向运算模块输送第一组光信号,复用模块450可以用于向运算模块输送第三组光信号。
因此,本申请实施例中,加载探测模块可以根据运算模块所能调制的波长将输入数据变换为N个部分,并且每个输入部分对应一个波长,也就是,本申请能够通过波长复用提升系统的并行性,也有助于降低系统的运算复杂度。
在一种实现方式中,在如图5所示的装置500中,加载探测模块560还可以用于:从解复用重组模块530探测所述第六组光信号,获取所述输出数据。
加载探测模块560可以实现光信号到电信号的转化,因此可以探测第六组光信号,并获取计算结果。
在一种实现方式中,在如图5所示的装置500中,加载探测模块560还可以用于:将配置信息输出给复用模块和解复用重组模块,该配置信息用于指示输入数据的N个部分与N个波长的一一对应关系,该配置信息用于复用模块将输入数据的N个部分调制为N个输入光信号,并用于解复用重组模块进行波长解复用。
本申请中,加载探测模块的功能可以由光电探测器和电处理器实现,其中,电处理器可以是中央处理器(central processing unit,CPU)、其他通用处理器、微处理器、专用集成电路(application-specific integrated circuit,ASIC)、现场可编程逻辑门阵列(field programmable gate array,FPGA)、数字信号处理器(digital signal processor,DSP)或一个或多个用于控制本申请的功能实现的集成电路。
图6是本申请实施例提供的一种光计算装置的又一示意图。如图6所示,该装置600包括运算模块610、合束模块620、解复用重组模块530、复用模块640、分束模块650和加载探测模块660,运算模块610包括N个第一调制器611和N个第二调制器612。其中,运算模块610、合束模块620、解复用重组模块630、复用模块640、分束模块650和加载探测模块660所实现的功能可以分别参考上文装置100的运算模块110和合束模块120、装置200的解复用重组模块230、装置300的复用模块340和分束模块350以及装置500的加载探测模块560的描述,在此不再赘述。
如图6所示,N个第一调制器611,用于根据所述N个第一电信号调制所述N个输入光信号,所述N个第一调制器611用于调制的光信号的波长与所述N个输入光信号的波长一一对应;N个第二调制器612,用于根据所述N个第二电信号调制所述N个输入光信号,所述N个第二调制器612用于调制的光信号的波长与所述N个输入光信号的波长一一对应。
具体来说,N个第一调制器611中的每个均可以接收一个第一电信号,然后,N个第一调制器611中的每个可以均使用接收到的第一电信号调制对应波长的输入光信号。N个第一电信号所用于调制的N个波长也就是N个第一调制器611所支持调制的N个波长,其中一个第一调制器611调制一个波长的光信号,对其他波长的光信号无调制作用。
类似地,N个第二调制器612中的每个均可以接收一个第二电信号,然后,N个第二调制器612中的每个可以均使用接收到的第二电信号调制对应波长的输入光信号。N个第二电信号所用于调制的N个波长也就是N个第二调制器612所支持调制的N个波长,其中一个第二调制器612调制一个波长的光信号,对其他波长的光信号无调制作用。
作为示例,假设调制器#1用于调制波长为λ1的光信号,调制器#1可以视为第一调制器611的一例,也可以视为第二调制器612的一例。可以理解为,波长为λ1光信号#1经过调制器#1时,调制器#1会将存储的数据d加载到波长为λ1的光信号上,输出光信号#2,该光信号#2包括数据d的信息。波长为λ2光信号#3经过调制器#1后,输出的仍然是光信号#3。
当第一组光信号依次经过N个第一调制器611时,N个第一调制器611中的每个可以分别调制第一组光信号中的一个波长的光信号,对于该调制器不调制的波长的光信号,将会继续流向下一个调制器,因此,N个第一调制器611之间的调制可以视为并行调制,或者说多波长并行。例如,假设调制器#1用于调制波长为λ1的光信号,调制器#2用于调制波长为λ2的光信号,调制器#1和调制器#2可以视为第一调制器611的两例,其中,N的取值为2。假设第一组光信号包括光信号#1和光信号#2,其波长分别为λ1和λ2。当第一组光信号依次流过调制器#1和调制器#2,调制器#1会对光信号#1进行调制,在调制器#1的调制过程中,光信号#2会继续流向调制器#2,进而,调制器#2会对光信号#2进行调制,因此两个波长的光信号可以视为并行调制。
类似地,当第一组光信号依次经过N个第二调制器612时,N个第二调制器612中的每个也可以分别调制第一组光信号中的一个波长的光信号,从而实现N个第二调制器612之间的并行调制。
进一步,N个第一调制器611和N个第二调制器612均可以视为一个调制通道,或者,均视为一组调制器,本申请可以将输入数据用多组光信号指示,包括第一组光信号和第三组光信号,然后将每组光信号都作为输入输送至运算模块610的N个调制器(例如,N个第一调制器611,再如,N个第二调制器612)进行调制,实现多组调制器的并行调制。
因此,本申请实施例能够对输入数据进行多波长、多通道的并行调制,提升光计算装置的算力。
应理解,本申请的多组调制器可以视为多个调制器阵列,也就是,以调制通道为单位,由N个单波长调制器组成一个调制器阵列,例如,图6中的N个第一调制器111组成一个调制器阵列。或者,在一种实现方式中,也可以以波长为单位,将调整同一波长的调制器作为一个调制器阵列,例如,图6中组成N个调制器阵列。或者,在一种实现方式中,将所有的调制器视为一个调制器阵列。
作为一种可能的实现方式,调制器阵列中的调制器可以是MRM或MZM等光电调制器。
在图6所示的光计算装置600中,加载探测模块660具体用于:根据N个第一电信号对应的波长,将N个第一电信号分别加载至N个第一调制器611,每个第一调制器所调制的波长与加载探测模块660为每个第一电信号所配置的波长相同。根据N个第二电信号对应的波长,将N个第二电信号分别加载至N个第二调制器612,每个第二调制器所调制的波长与加载探测模块660为每个第二电信号所配置的波长相同。
图7是本申请实施例提供的一种光计算装置的又一示意图。如图7所示,该装置700包括运算模块710、合束模块720、解复用重组模块730、复用模块740、分束模块750和加载探测模块760,运算模块710包括N个第一调制器711、N个第二调制器712、第一延迟控制器713和第二延迟控制器114。其中,运算模块710、合束模块720、解复用重组模块730、复用模块740、分束模块750和加载探测模块760所实现的功能可以分别参考上文装置100的运算模块110和合束模块120、装置200的解复用重组模块230、装置300的复用模块340和分束模块350以及装置500的加载探测模块560的描述,N个第一调制器711和N个第二调制器712所实现的功能可以参考装置600中的N个第一调制器611和N个第二调制器612,在此不再赘述。
如图7所示,第一延迟控制器713用于调整所述第二组光信号的时延和相位,第二延迟控制器714用于调整所述第四组光信号的时延和相位。
具体而言,可以将每一组调制器的输出均连接一个延迟控制器,从而实现对调制器的输出光信号的时延和相位的调整。第一延迟控制器713可以用于调整第二组光信号的时延和相位,第二延迟控制器714可以用于调整第四组光信号的时延和相位。
第一延迟控制器713和第二延迟控制器714可以是组成延迟控制阵列,第一延迟控制器713和第二延迟控制器714均包括延迟波导和相移器,延迟波导用于调整调制器的输出光信号的时延,也就是说,可以为不同通道的光信号分别分配不同的时延,使得各个通道的有效光程相等,从而实现信号的错位相加;相移器也可以称为移相器(Phaser),其能够对波的相位进行调整,故可用于调节各个通道的光信号的相位,以实现不同通道的光在合束的时候产生的是近似相加的效果。
本申请实施例能够调整光信号的时延和相位,使得不同通道的光信号在合束的时候产生的是近似相加的效果,有利于提升光计算的效果。
在一种实现方式中,第二输入数据为输入数据与第一权重矩阵、第二权重矩阵的乘加运算结果。
换言之,本申请可以将输入数据与第一权重矩阵、第二权重矩阵的乘加运算结果再次作为输入数据,实现迭代运算。
在另一种实施例场景中,上述装置100至700中的N个第一电信号用于指示N个第一卷积核,第二组光信号用于指示输入数据与N个第一卷积核的计算结果;N个第二电信号用于指示N个第二卷积核,第四组光信号用于指示输入数据与N个第二卷积核的计算结果,第五组光信号用于指示输入数据与N个第一卷积核、N个第二卷积核的乘加运算结果。加载探测模块可以用于:配置N个第一卷积核和N个波长一一对应,配置N个第二卷积核和N个波长一一对应。
可选地,加载探测模块还可以用于:接收N个第一卷积核和N个第二卷积核。其中,第一组卷积核的N个中的每一个可以视为第一电信号,第二组卷积核的N个中的每一个可以视为第二电信号。
也就是说,本申请中的光计算装置100至700,不仅可以实现输入数据与第一权重矩阵、第二权重矩阵的乘加运算结果,也可以实现输入数据与N个第一卷积核、N个第二卷积核的乘加运算结果。
神经网络模型,例如卷积神经网络(convolutional neural network,CNN)包括卷积层和全连接层,通常需要进行大量的数据运算,并且在数据运算过程中,还需要存储大量的过程数据。为了提升神经网络模型的运算速度,可以借助光计算系统实现神经网络模型的数据运算过程,获得最终的运算结果。下面针对上文提出的光计算装置,对该光计算装置所执行的全连接层、卷积层的运算过程进行说明。
1.全连接层
为了实现全连接层的运算,可以利用光计算装置实现乘加运算。光计算装置可以接收输入数据和第一权重矩阵及第二权重矩阵,为了便于说明,这里将输入数据用向量X表示,第一权重矩阵均用W1表示,第二权重矩阵用W2表示。向量X的尺寸为x*1,即包括x行、1列,矩阵W1的尺寸为y*x,即包括y行、x列,矩阵W2的尺寸为y*x,即包括y行、x列。输出数据用向量Y表示,因此,向量Y的尺寸为y*1。其中,输入数据的x行中的每个可以视为一个数据,即输入数据包括x个数据。也可以说,输入数据的长度为x,输出数据的长度为y。运算模块所能调制的波长的个数为N,分别记为λ1,λ2,λ3,...,λN。
为了实现输入数据X分别与第一权重矩阵W1、第二权重矩阵W2的乘加运算,可以将输入数据X和第一权重矩阵W1、第二权重矩阵W2分别输入光计算装置,光计算装置(例如,装置700)中的加载探测模块(例如,加载探测模块760)可以将矩阵W1和W2均拆分为N个计算部分,将向量X变换为N个输入部分。根据输入数据的长度与输出数据的长度之间大小关系,可以分为以下两种情况描述全连接运算的计算过程。
情况1、输入数据长度的大于输出数据长度,即x大于y。
图8是本申请实施例提供的一种全连接层数据运算过程示意图。如图8的(a)所示,若输入数据长度的大于输出数据长度,加载探测模块可以将矩阵W1和W2都以A列为单位拆分为N个计算部分,若x不能被N整除,将不够的行数用0填充,或者说,多余数据补零。补充后的列数记为x',A=x'/N,即矩阵W1和W2的N个计算部分中的每个都包括y行、A列,并根据运算模块所能调制的波长为每个计算部分分别分配一个波长,即矩阵W1的每个计算部分对应的波长分别为λ1,λ2,λ3,...,λN,矩阵W2也是如此。进一步,加载探测模块可以向量X拆分成N个部分,即N个部分中的每个都是A*1的向量,若x不能被N整除,将不够的行数用0填充,补充后的行数记为x',A=x'/N。应理解,将向量X拆分成N个部分,每个部分包括A行,也可以说,将向量X以A个为单位切分成N个输入部分,并根据N个计算部分分配的波长为N个输入部分分别分配一个对应的波长,即每个输入部分对应的波长分别为λ1,λ2,λ3,...,λN。
在如图8的(a)所示的计算过程中,有两个权重矩阵,因此,运算模块包括两组调制器,每N个调制器为1组,即包括2N个调制器,每N个调制器对应调制波长分别为λ1,λ2,λ3,...,λN的光信号。加载探测模块可以将第一权重矩阵的N个计算部分分别加载到运算模块的第一组调制器对应波长上,将第二权重矩阵的N个计算部分分别加载到运算模块的第二组调制器对应波长上。进一步,加载探测模块将N个输入部分分别加载到复用模块对应的波长上,N个输入部分经过复用模块(例如,复用模块740)和合束模块(例如,分束模块750),或者经过两个复用模块(例如,复用模块430和440)形成两路光信号分别输入至运算模块(例如,计算模块710),其中每一路光信号包括N个波长的光信号。
如图8的(b)所示,在运算模块中,每一路光信号均经过N个调制器,N个调制器中的每个调制器都调制一个波长的光信号,也就是说,该调制器可以将加载探测模块加载的计算部分调制至对应波长的光信号,实现该波长对应计算部分与该波长对应输入部分的相乘操作。在运算模块的每个波导(或者称为每个通道,或者说每组调制器)中,N个波长的光信号经过N个调制器,输出N个波长数输出结果,每个波长的输入结果都是该波长的计算部分和该波长的输入部分的乘积运算结果。可选地,每个波导中的光信号还可以经过运算模块中的延迟控制器,对其相位和时延进行调整。应理解,在系统运行正常的情况下,延迟控制器也可以不需要调整相位和时延。
如图8的(c)所示,合束模块(例如,合束模块720)可以实现多个波导的光信号的合并,合束模块输出的结果包括N个波长的光信号。具体来说,合束模块可以将运算模块中多个通道的输出结果按照波长对应合并,即对每个波长而言,获得的结果都是多个乘积运算结果的加和运算结果。
如图8的(d)所示,解复用重组模块(例如,解复用重组模块730)可以解复用和重组合束模块输出的N个波长的光信号。例如,解复用重组模块根据需求选择特定的Q个波长的光信号进行重新组合。
可选地,加载探测模块还可以从解复用重组模块探测解复用重组模块的输出光信号,获得输出数据。
情况2、输入数据长度的小于输出数据长度,即x小于y。
图9是本申请实施例提供的一种全连接层数据运算过程的又一示意图。如图9的(a)所示,若输入数据长度的小于输出数据长度,加载探测模块可以将矩阵W1和W2都以B行为单位拆分为N个计算部分,若y不能被N整除,将不够的行数用0填充,或者说,多余数据补零。补充后的行数记为y',B=y'/N,即矩阵W1和W2的N个计算部分中的每个都包括B行、x列,并根据运算模块所能调制的波长为每个计算部分分别分配一个波长,即矩阵W1的每个计算部分对应的波长分别为λ1,λ2,λ3,...,λN,矩阵W2也是如此。进一步,加载探测模块可以向量X复制N份,记为N个输入部分,即N个输入部分中的每个都与向量X相同。根据N个计算部分分配的波长为N个输入部分分别分配一个对应的波长,即每个输入部分对应的波长分别为λ1,λ2,λ3,...,λN。
在如图9的(a)所示的计算过程中,有两个权重矩阵,因此,运算模块包括两组调制器,每N个调制器为1组,即包括2N个调制器,每N个调制器对应调制波长分别为λ1,λ2,λ3,...,λN的光信号。加载探测模块可以将第一权重矩阵的N个计算部分分别加载到运算模块的第一组调制器对应波长上,将第二权重矩阵的N个计算部分分别加载到运算模块的第二组调制器对应波长上。进一步,加载探测模块将N个输入部分分别加载到复用模块对应的波长上,N个输入部分经过复用模块(例如,复用模块740)和合束模块(例如,分束模块750),或者经过两个复用模块(例如,复用模块430和440)形成两路光信号分别输入至运算模块(例如,计算模块710),其中每一路光信号包括N个波长的光信号。
如图9的(b)所示,在运算模块中,每一路光信号均经过N个调制器,N个调制器中的每个调制器都调制一个波长的光信号,也就是说,该调制器可以将加载探测模块加载的计算部分调制至对应波长的光信号,实现该波长对应计算部分与该波长对应输入部分的相乘操作。在运算模块的每个波导(或者称为每个通道,或者说每组调制器)中,N个波长的光信号经过N个调制器,输出N个波长数输出结果,每个波长的输入结果都是该波长的计算部分和该波长的输入部分的乘积运算结果。可选地,每个波导中的光信号还可以经过运算模块中的延迟控制器,对其相位和时延进行调整。应理解,在系统运行正常的情况下,延迟控制器也可以不需要调整相位和时延。
如图9的(c)所示,合束模块(例如,合束模块720)可以实现多个波导的光信号的合并,合束模块输出的结果包括N个波长的光信号。具体来说,合束模块可以将运算模块中多个通道的输出结果按照波长对应合并,即对每个波长而言,获得的结果都是多个乘积运算结果的加和运算结果。
如图9的(d)所示,解复用重组模块(例如,解复用重组模块730)可以解复用和重组合束模块输出的N个波长的光信号。例如,解复用重组模块根据需求选择特定的Q个波长的光信号进行重新组合。需要说明的是,由于NB行中比Y行多余的行补充为0元素,因此这些补充行的计算结果也为0,在解复用重组模块可以剔除这些数据,还原为y行。
可选地,加载探测模块还可以从解复用重组模块探测解复用重组模块的输出光信号,获得输出数据。
2.卷积层
卷积层与全连接层的计算过程的情况2类似,区别在于在执行卷积层的运算时,N个计算部分即为N个卷积核。
具体来说,光计算装置可以接收输入数据和多组卷积核,每组包括N个卷积核,其中,N是运算模块能调制的波长的数量。加载探测模块可以根据运算模块所能调制的波长为每组中的每个卷积核分配一个波长,即N个卷积核对应运算模块所能调制的N个波长。进一步,加载探测模块可以向量X复制N份,记为N个输入部分,即N个输入部分中的每个都与向量X相同。根据N个计算部分分配的波长为N个输入部分分别分配一个对应的波长。
加载探测模块可以将第一组卷积核的N个卷积核分别加载到运算模块的第一组调制器对应波长上,将第二组卷积核的N个卷积核分别加载到运算模块的第二组调制器对应波长上。进一步,加载探测模块将N个输入部分分别加载到复用模块对应的波长上,N个输入部分经过复用模块(例如,复用模块740)和合束模块(例如,分束模块750),或者经过两个复用模块(例如,复用模块430和440)形成两路光信号分别输入至运算模块(例如,计算模块710),其中每一路光信号包括N个波长的光信号。
在运算模块中,每一路光信号均经过N个调制器,N个调制器中的每个调制器都调制一个波长的光信号,也就是说,该调制器可以将加载探测模块加载的计算部分调制至对应波长的光信号,实现该波长对应计算部分与该波长对应输入部分的相乘操作。在运算模块的每个波导(或者称为每个通道,或者说每组调制器)中,N个波长的光信号经过N个调制器,输出N个波长数输出结果,每个波长的输入结果都是该波长的卷积核和该波长的输入部分的乘积运算结果。可选地,每个波导中的光信号还可以经过运算模块中的延迟控制器,对其相位和时延进行调整。应理解,在系统运行正常的情况下,延迟控制器也可以不需要调整相位和时延。
合束模块(例如,合束模块720)可以实现多个波导的光信号的合并,合束模块输出的结果包括N个波长的光信号。具体来说,合束模块可以将运算模块中多个通道的输出结果按照波长对应合并,即对每个波长而言,获得的结果都是多个乘积运算结果的加和运算结果。
解复用重组模块(例如,解复用重组模块730)可以解复用和重组合束模块输出的N个波长的光信号。例如,解复用重组模块根据需求选择特定的Q个波长的光信号进行重新组合。
可选地,加载探测模块还可以从解复用重组模块探测解复用重组模块的输出光信号,获得输出数据。
应理解,本申请实施例仅以第一组光信号和第三组光信号的调制为例进行说明,但是在实际应用中,也可以用P组光信号指示同一个输入数据(P为大于等于1的整数),例如,P为2、3、4、5等。每组光信号包括多个波长,运算模块也可以包括P组调制器,每组调制器用于完成一个权重矩阵(或者一组卷积核)和一个输入数据的乘积运算,再通过合束模块实现多组乘积运算的加和运算,然后由解复用重组模块获得预设波长值的乘加运算结果。
还应理解,本申请的光计算装置可以作为通用的模块接入到其他光计算架构中,实现多波长复用,也可以将本申请的多个光计算装置的输出再作为输入,实现迭代计算。
图10是本申请实施例提供的一种光计算方法的示意性流程图。方法1000可以包括以下步骤。
S1010,运算模块根据N个第一电信号调制第一组光信号以输出第二组光信号,第一组光信号用于指示输入数据,第一组光信号包括N个输入光信号,N个输入光信号的波长均不相同,N为大于2的正整数,N个第一电信号所用于调制的光信号的波长与N个输入光信号的波长一一对应,N个第一电信号分别用于指示第一权重矩阵的N个部分,第二组光信号用于指示输入数据与第一权重矩阵的计算结果。
S1020,运算模块根据N个第二电信号调制第三组光信号以输出第四组光信号,第三组光信号用于指示输入数据,第三组光信号包括N个输入光信号,N个第二电信号所用于调制的光信号的波长与N个输入光信号的波长一一对应,N个第二电信号分别用于指示第二权重矩阵的N个部分,第三组光信号用于指示输入数据与第二权重矩阵的计算结果。
S1030,运算模块调整第二组光信号和第四组光信号的时延和相位。
S1040,合束模块将调整后的第二组光信号和第四组光信号合束,以输出第五组光信号,第五组光信号用于指示输入数据与第一权重矩阵、第二权重矩阵的乘加运算结果。
可选地,方法还包括:解复用重组模块解复用和/或重组第五组光信号,获得第六组光信号,第六组光信号包括第五组光信号中的Q个波长的光信号,六组光信号用于指示输出数据,Q为小于或等于N的正整数。
可选地,方法还包括:复用模块将输入数据的N个部分调制为N个输入光信号,并将N个输入光信号复用到同一路波导中,形成第七组光信号;分束模块第七组光信号分束,形成第一组光信号和第三组光信号。
可选地,方法还包括:复用模块将输入数据的N个部分调制为N个输入光信号,并将N个输入光信号复用到同一路波导中,分别形成第一组光信号和第三组光信号。
可选地,方法还包括:加载探测模块将第一权重矩阵拆分为N个部分,配置第一权重矩阵的N个部分与N个波长一一对应;加载探测模块将第二权重矩阵拆分为N个部分,配置第二权重矩阵的N个部分与N个波长一一对应;加载探测模块将N个第一电信号和N个第二电信号分别加载至运算模块。
可选地,方法还包括:加载探测模块将输入数据变换为N个部分,并配置输入数据的N个部分与N个波长一一对应;加载探测模块将输入数据的N个部分加载至复用模块,复用模块用于向运算模块传输第一组光信号和第三组光信号。
可选地,运算模块包括N个第一调制器和N个第二调制器,运算模块根据N个第一电信号调制第一组光信号以输出第二组光信号,包括:N个第一调制器根据N个第一电信号调制N个输入光信号以输出第二组光信号,N个第一调制器用于调制的光信号的波长与N个输入光信号的波长一一对应;运算模块根据N个第二电信号调制第三组光信号以输出第四组光信号,包括:N个第二调制器根据N个第二电信号调制N个输入光信号以输出第四组光信号,N个第二调制器用于调制的光信号的波长与N个输入光信号的波长一一对应。
可选地,运算模块包括第一延迟控制器和第二延迟控制器,运算模块调整第二组光信号和第四组光信号的时延和相位,包括:第一延迟控制器调整第二组光信号的时延和相位;第二延迟控制器调整第四组光信号的时延和相位。
可选地,该方法还包括:加载探测模块将配置信息输出给复用模块和解复用重组模块,该配置信息用于指示输入数据的N个部分与N个波长的一一对应关系,该配置信息用于复用模块将输入数据的N个部分调制为N个输入光信号,并用于解复用重组模块进行波长解复用。
可选地,该方法还包括:加载探测模块根据N个第一电信号对应的波长,将N个第一电信号分别加载至N个第一调制器,每个第一调制器所调制的波长与加载探测模块为每个第一电信号所配置的波长相同。根据N个第二电信号对应的波长,将N个第二电信号分别加载至N个第二调制器,每个第二调制器所调制的波长与加载探测模块为每个第二电信号所配置的波长相同。
根据本申请实施例,N个第一电信号所调制的波长均与N个输入光信号的波长对应,且N个第一电信号中的每个均只调制一个波长的光信号,因此,N个第一电信号对N个输入光信号的调制可以视为N个波长的光信号之间的并行调制,N个第二电信号对N个输入光信号的调制也是如此的。此外,N个第一电信号和N个第二电信号均可以实现对输入数据的调制,即第一权重矩阵和第二权重矩阵之间的调制也是并行的。该光计算装置将N个第一电信号和N个第二电信号的并行调制结果合并,实现输入数据与第一权重矩阵、第二权重矩阵的乘加运算结果,如此,有助于提升光计算装置的并行计算能力。
图11是本申请实施例提供的一种光计算方法的示意性流程图。方法1100可以包括以下步骤。
S1110,运算模块根据N个第一电信号调制第一组光信号以输出第二组光信号,第一组光信号用于指示输入数据,第一组光信号包括N个输入光信号,N个输入光信号的波长均不相同,N为大于2的正整数,N个第一电信号所用于调制的光信号的波长与N个输入光信号的波长一一对应,N个第一电信号分别用于指示N个第一卷积核,第二组光信号用于指示输入数据与N个第一卷积核的计算结果。
S1120,运算模块根据N个第二电信号调制第三组光信号以输出第四组光信号,第三组光信号用于指示输入数据,第三组光信号包括N个输入光信号,N个第二电信号所用于调制的光信号的波长与N个输入光信号的波长一一对应,N个第二电信号分别用于指示N个第二卷积核,第三组光信号用于指示输入数据与N个第二卷积核的计算结果。
S1130,运算模块调整第二组光信号和第四组光信号的时延和相位。
S1140,合束模块将调整后的第二组光信号和第四组光信号合束,以输出第五组光信号,第五组光信号用于指示输入数据与N个第一卷积核、N个第二卷积核的乘加运算结果。
可选地,方法还包括:解复用重组模块解复用和/或重组第五组光信号,获得第六组光信号,第六组光信号包括第五组光信号中的Q个波长的光信号,六组光信号用于指示输出数据,Q为小于或等于N的正整数。
可选地,方法还包括:复用模块将输入数据的N个部分调制为N个输入光信号,并将N个输入光信号复用到同一路波导中,形成第七组光信号;分束模块第七组光信号分束,形成第一组光信号和第三组光信号。
可选地,方法还包括:复用模块将输入数据的N个部分调制为N个输入光信号,并将N个输入光信号复用到同一路波导中,分别形成第一组光信号和第三组光信号。
可选地,方法还包括:加载探测模块配置N个第一卷积核与N个波长一一对应,配置N个第二卷积核与N个波长一一对应;加载探测模块将N个第一电信号和N个第二电信号分别加载至运算模块。
可选地,方法还包括:加载探测模块将输入数据变换为N个部分,并配置输入数据的N个部分与N个波长一一对应;加载探测模块将输入数据的N个部分加载至复用模块,复用模块用于向运算模块传输第一组光信号和第三组光信号。
可选地,运算模块包括N个第一调制器和N个第二调制器,运算模块根据N个第一电信号调制第一组光信号以输出第二组光信号,包括:N个第一调制器根据N个第一电信号调制N个输入光信号以输出第二组光信号,N个第一调制器用于调制的光信号的波长与N个输入光信号的波长一一对应;运算模块根据N个第二电信号调制第三组光信号以输出第四组光信号,包括:N个第二调制器根据N个第二电信号调制N个输入光信号以输出第四组光信号,N个第二调制器用于调制的光信号的波长与N个输入光信号的波长一一对应。
可选地,运算模块包括第一延迟控制器和第二延迟控制器,运算模块调整第二组光信号和第四组光信号的时延和相位,包括:第一延迟控制器调整第二组光信号的时延和相位;第二延迟控制器调整第四组光信号的时延和相位。
可选地,该方法还包括:加载探测模块将配置信息输出给复用模块和解复用重组模块,该配置信息用于指示输入数据的N个部分与N个波长的一一对应关系,该配置信息用于复用模块将输入数据的N个部分调制为N个输入光信号,并用于解复用重组模块进行波长解复用。
可选地,该方法还包括:加载探测模块根据N个第一电信号对应的波长,将N个第一电信号分别加载至N个第一调制器,每个第一调制器所调制的波长与加载探测模块为每个第一电信号所配置的波长相同。根据N个第二电信号对应的波长,将N个第二电信号分别加载至N个第二调制器,每个第二调制器所调制的波长与加载探测模块为每个第二电信号所配置的波长相同。
根据本申请实施例,N个第一电信号所调制的波长均与N个输入光信号的波长对应,且N个第一电信号中的每个均只调制一个波长的光信号,因此,N个第一电信号对N个输入光信号的调制可以视为N个波长的光信号之间的并行调制,N个第二电信号对N个输入光信号的调制也是如此的。此外,N个第一电信号和N个第二电信号均可以实现对输入数据的调制,即N个第一卷积核和N个第二卷积核之间的调制也是并行的。该光计算装置将N个第一电信号和N个第二电信号的并行调制结果合并,实现输入数据与N个第一卷积核和N个第二卷积核的乘加运算结果,如此,有助于提升光计算装置的并行计算能力。
本申请还提供一种光计算系统,包括前述任一种光计算装置。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,高密度数字视频光盘(digital video disc,DVD))、或者半导体介质(例如,固态硬盘(solid state disk,SSD))等。
在本申请实施例中,“示例的”、“例如”等词用于表示作例子、例证或说明。本申请中被描述为“示例”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用示例的一词旨在以具体方式呈现概念。
应理解,说明书通篇中提到的“实施例”意味着与实施例有关的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在整个说明书各个实施例未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。
应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。本申请中所有节点、消息的名称仅仅是本申请为描述方便而设定的名称,在实际网络中的名称可能不同,不应理解本申请限定各种节点、消息的名称,相反,任何具有和本申请中用到的节点或消息具有相同或类似功能的名称都视作本申请的方法或等效替换,都在本申请的保护范围之内。
本文中术语“……中的至少一个”或“……中的至少一种”,表示所列出的各项的全部或任意组合,例如,“A、B和C中的至少一种”,可以表示:单独存在A,单独存在B,单独存在C,同时存在A和B,同时存在B和C,同时存在A、B和C这六种情况。本文中的“至少一个”表示一个或者多个。“多个”表示两个或者两个以上。
应理解,在本申请各实施例中,“与A相应的B”表示B与A相关联,根据A可以确定B。但还应理解,根据A确定B并不意味着仅仅根据A确定B,还可以根据A和/或其它信息确定B。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
应理解,在本申请的各种实施例中,第一、第二以及各种数字编号仅为描述方便进行的区分,并不用来限制本申请实施例的范围。例如,区分不同的信息等。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (17)
1.一种光计算装置,其特征在于,包括:
运算模块,用于根据N个第一电信号调制第一组光信号以输出第二组光信号,所述第一组光信号用于指示输入数据,所述第一组光信号包括N个输入光信号,所述N个输入光信号的波长均不相同,所述N为大于2的正整数,所述N个第一电信号所用于调制的光信号的波长与所述N个输入光信号的波长一一对应,所述N个第一电信号分别用于指示第一权重矩阵的N个部分,所述第二组光信号用于指示所述输入数据与所述第一权重矩阵的计算结果;
所述运算模块还用于:根据N个第二电信号调制第三组光信号以输出第四组光信号,所述第三组光信号用于指示所述输入数据,所述第三组光信号包括所述N个输入光信号,所述N个第二电信号所用于调制的光信号的波长与所述N个输入光信号的波长一一对应,所述N个第二电信号分别用于指示第二权重矩阵的N个部分,所述第三组光信号用于指示所述输入数据与所述第二权重矩阵的计算结果;
所述运算模块还用于:调整所述第二组光信号和所述第四组光信号的时延和相位;
合束模块,用于将调整后的所述第二组光信号和所述第四组光信号合束,以输出第五组光信号,所述第五组光信号用于指示所述输入数据与所述第一权重矩阵、所述第二权重矩阵的乘加运算结果。
2.根据权利要求1所述的装置,其特征在于,所述装置还包括:
解复用重组模块,用于解复用和/或重组所述第五组光信号,获得第六组光信号,所述第六组光信号包括所述第五组光信号中的Q个波长的光信号,所述六组光信号用于指示输出数据,所述Q为小于或等于N的正整数。
3.根据权利要求1或2所述的装置,其特征在于,所述装置还包括:
复用模块,用于将所述输入数据的N个部分调制为所述N个输入光信号,并将所述N个输入光信号复用到同一路波导中,形成第七组光信号;
分束模块,用于所述第七组光信号分束,形成所述第一组光信号和所述第三组光信号。
4.根据权利要求1或2所述的装置,其特征在于,所述装置还包括:
复用模块,用于将所述输入数据的N个部分调制为所述N个输入光信号,并将所述N个输入光信号复用到同一路波导中,分别形成所述第一组光信号和所述第三组光信号。
5.根据权利要求1至4中任一项所述的装置,其特征在于,所述装置还包括加载探测模块,用于:
将所述第一权重矩阵拆分为N个部分,配置所述第一权重矩阵的N个部分与所述N个波长一一对应;
将所述第二权重矩阵拆分为N个部分,配置所述第二权重矩阵的N个部分与所述N个波长一一对应;
将所述N个第一电信号和所述N个第二电信号分别加载至所述运算模块。
6.根据权利要求5所述的装置,其特征在于,所述加载探测模块还用于:
将所述输入数据变换为N个部分,并配置所述输入数据的N个部分与N个波长一一对应;
将所述输入数据的N个部分加载至复用模块,所述复用模块用于向所述运算模块传输所述第一组光信号和所述第三组光信号。
7.根据权利要求1至6中任一项所述的装置,其特征在于,所述运算模块包括:
N个第一调制器,用于根据所述N个第一电信号调制所述N个输入光信号,所述N个第一调制器用于调制的光信号的波长与所述N个输入光信号的波长一一对应;
N个第二调制器,用于根据所述N个第二电信号调制所述N个输入光信号,所述N个第二调制器用于调制的光信号的波长与所述N个输入光信号的波长一一对应。
8.根据权利要求1至7中任一项所述的装置,其特征在于,所述运算模块包括:
第一延迟控制器,用于调整所述第二组光信号的时延和相位;
第二延迟控制器,用于调整所述第四组光信号的时延和相位。
9.一种光计算方法,其特征在于,包括:
运算模块根据N个第一电信号调制第一组光信号以输出第二组光信号,所述第一组光信号用于指示输入数据,所述第一组光信号包括N个输入光信号,所述N个输入光信号的波长均不相同,所述N为大于2的正整数,所述N个第一电信号所用于调制的光信号的波长与所述N个输入光信号的波长一一对应,所述N个第一电信号分别用于指示第一权重矩阵的N个部分,所述第二组光信号用于指示所述输入数据与所述第一权重矩阵的计算结果;
所述运算模块根据N个第二电信号调制第三组光信号以输出第四组光信号,所述第三组光信号用于指示所述输入数据,所述第三组光信号包括所述N个输入光信号,所述N个第二电信号所用于调制的光信号的波长与所述N个输入光信号的波长一一对应,所述N个第二电信号分别用于指示第二权重矩阵的N个部分,所述第三组光信号用于指示所述输入数据与所述第二权重矩阵的计算结果;
所述运算模块调整所述第二组光信号和所述第四组光信号的时延和相位;
合束模块将调整后的所述第二组光信号和所述第四组光信号合束,以输出第五组光信号,所述第五组光信号用于指示所述输入数据与所述第一权重矩阵、所述第二权重矩阵的乘加运算结果。
10.根据权利要求9所述的方法,其特征在于,所述方法还包括:
解复用重组模块解复用和/或重组所述第五组光信号,获得第六组光信号,所述第六组光信号包括所述第五组光信号中的Q个波长的光信号,所述六组光信号用于指示输出数据,所述Q为小于或等于N的正整数。
11.根据权利要求9或10所述的方法,其特征在于,所述方法还包括:
复用模块将所述输入数据的N个部分调制为所述N个输入光信号,并将所述N个输入光信号复用到同一路波导中,形成第七组光信号;
分束模块所述第七组光信号分束,形成所述第一组光信号和所述第三组光信号。
12.根据权利要求9或10所述的方法,其特征在于,所述方法还包括:
复用模块将所述输入数据的N个部分调制为所述N个输入光信号,并将所述N个输入光信号复用到同一路波导中,分别形成所述第一组光信号和所述第三组光信号。
13.根据权利要求9至12中任一项所述的方法,其特征在于,所述方法还包括:
加载探测模块将所述第一权重矩阵拆分为N个部分,配置所述第一权重矩阵的N个部分与所述N个波长一一对应;
所述加载探测模块将所述第二权重矩阵拆分为N个部分,配置所述第二权重矩阵的N个部分与所述N个波长一一对应;
所述加载探测模块将所述N个第一电信号和所述N个第二电信号分别加载至所述运算模块。
14.根据权利要求13所述的方法,其特征在于,所述方法还包括:
所述加载探测模块将所述输入数据变换为N个部分,并配置所述输入数据的N个部分与N个波长一一对应;
所述加载探测模块将所述输入数据的N个部分加载至复用模块,所述复用模块用于向所述运算模块传输所述第一组光信号和所述第三组光信号。
15.根据权利要求9至13中任一项所述的方法,其特征在于,所述运算模块包括N个第一调制器和N个第二调制器,
所述运算模块根据N个第一电信号调制第一组光信号以输出第二组光信号,包括:
所述N个第一调制器根据所述N个第一电信号调制所述N个输入光信号以输出所述第二组光信号,所述N个第一调制器用于调制的光信号的波长与所述N个输入光信号的波长一一对应;
所述运算模块根据N个第二电信号调制第三组光信号以输出第四组光信号,包括:
所述N个第二调制器根据所述N个第二电信号调制所述N个输入光信号以输出所述第四组光信号,所述N个第二调制器用于调制的光信号的波长与所述N个输入光信号的波长一一对应。
16.根据权利要求9至15中任一项所述的方法,其特征在于,所述运算模块包括第一延迟控制器和第二延迟控制器,所述运算模块调整所述第二组光信号和所述第四组光信号的时延和相位,包括:
所述第一延迟控制器调整所述第二组光信号的时延和相位;
所述第二延迟控制器调整所述第四组光信号的时延和相位。
17.一种光计算系统,其特征在于,包括:如权利要求1至8中任一项所述的光计算装置。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111590006.5A CN116339444A (zh) | 2021-12-23 | 2021-12-23 | 光计算装置、方法和系统 |
EP22909810.8A EP4432043A1 (en) | 2021-12-23 | 2022-12-13 | Optical computing device, method and system |
PCT/CN2022/138531 WO2023116496A1 (zh) | 2021-12-23 | 2022-12-13 | 光计算装置、方法和系统 |
US18/750,730 US20240345616A1 (en) | 2021-12-23 | 2024-06-21 | Optical computing apparatus, method, and system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111590006.5A CN116339444A (zh) | 2021-12-23 | 2021-12-23 | 光计算装置、方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116339444A true CN116339444A (zh) | 2023-06-27 |
Family
ID=86890064
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111590006.5A Pending CN116339444A (zh) | 2021-12-23 | 2021-12-23 | 光计算装置、方法和系统 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20240345616A1 (zh) |
EP (1) | EP4432043A1 (zh) |
CN (1) | CN116339444A (zh) |
WO (1) | WO2023116496A1 (zh) |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020092899A1 (en) * | 2018-11-02 | 2020-05-07 | Lightmatter, Inc. | Matrix multiplication using optical processing |
US10908634B1 (en) * | 2019-07-08 | 2021-02-02 | Luminous Computing, Inc. | Systems and methods for parallel photonic computing |
CN113162724A (zh) * | 2020-01-23 | 2021-07-23 | 中国移动通信有限公司研究院 | 光信号的传输方法、装置及设备 |
CN113325917A (zh) * | 2020-02-28 | 2021-08-31 | 华为技术有限公司 | 一种光计算装置、系统以及计算方法 |
CN113688353A (zh) * | 2020-05-18 | 2021-11-23 | 华为技术有限公司 | 光计算芯片以及光计算装置 |
CN112101540B (zh) * | 2020-10-19 | 2023-09-22 | 中国科学院半导体研究所 | 光学神经网络芯片及其计算方法 |
CN112506265B (zh) * | 2020-11-13 | 2024-08-09 | 华为技术有限公司 | 一种光计算装置以及计算方法 |
-
2021
- 2021-12-23 CN CN202111590006.5A patent/CN116339444A/zh active Pending
-
2022
- 2022-12-13 EP EP22909810.8A patent/EP4432043A1/en active Pending
- 2022-12-13 WO PCT/CN2022/138531 patent/WO2023116496A1/zh active Application Filing
-
2024
- 2024-06-21 US US18/750,730 patent/US20240345616A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
WO2023116496A1 (zh) | 2023-06-29 |
EP4432043A1 (en) | 2024-09-18 |
US20240345616A1 (en) | 2024-10-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2022160784A1 (zh) | 一种光计算装置、系统及卷积计算方法 | |
CN108604940B (zh) | 光电子交换机 | |
US11372163B2 (en) | Wavelength switching apparatus and system | |
WO2022164746A1 (en) | Photonic accelerator for deep neural networks | |
JP2011040997A (ja) | 光波長多重伝送システム | |
JP2024503991A (ja) | 行列計算用のバランス型フォトニック・アーキテクチャ | |
US20240063936A1 (en) | Systems and methods for utilizing photonic degrees of freedom in a photonic processor | |
CN114565091B (zh) | 光学神经网络装置、芯片及神经网络计算的光学实现方法 | |
Chen et al. | Toward a scalable, fault-tolerant, high-performance optical data center architecture | |
WO2018141084A1 (en) | Apparatus and method for cell calibration of optical switch matrix | |
US10524029B2 (en) | Optical circuit switch | |
Ottino et al. | RAMP: a flat nanosecond optical network and MPI operations for distributed deep learning systems | |
Wang et al. | AI-enabled large-scale entanglement distribution quantum networks | |
CN116339444A (zh) | 光计算装置、方法和系统 | |
CN113325917A (zh) | 一种光计算装置、系统以及计算方法 | |
Chekuri et al. | Design tools for transparent optical networks | |
CN112799464B (zh) | 一种基于多波长光源的矩阵向量乘法器及其运算方法 | |
JP2002262319A (ja) | 光通信網および光パスクロスコネクト装置 | |
Liu et al. | Modular optical nodes with anylane add-drop for spatial division multiplexed networks | |
CN117255967A (zh) | 用于矩阵计算的平衡光子架构 | |
CN114742219A (zh) | 神经网络计算方法及光子神经网络芯片架构 | |
JP5722253B2 (ja) | 光パケットスイッチ装置および信号処理方法 | |
GB2544130A (en) | Optoelectronic switch | |
WO2022115935A1 (en) | Photonic computing system and method for wireless communication signal processing | |
CN115442682A (zh) | 一种空分与波分相结合的光交换装置和方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |