CN115640839A - 一种存算一体电路、计算系统及计算方法 - Google Patents
一种存算一体电路、计算系统及计算方法 Download PDFInfo
- Publication number
- CN115640839A CN115640839A CN202110819975.7A CN202110819975A CN115640839A CN 115640839 A CN115640839 A CN 115640839A CN 202110819975 A CN202110819975 A CN 202110819975A CN 115640839 A CN115640839 A CN 115640839A
- Authority
- CN
- China
- Prior art keywords
- group
- calculation
- optical signals
- signals
- optical
- 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
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Optical Modulation, Optical Deflection, Nonlinear Optics, Optical Demodulation, Optical Logic Elements (AREA)
Abstract
本申请实施例公开了一种存算一体电路、计算系统及计算方法,用以实现混合精度的存算一体,提高运算效率、降低功耗。存算一体电路包括:光调控计算模块,用于基于第一组权重系数对第一组光信号执行第一神经网络层计算,得到第二组光信号,其中,第一组光信号用于指示第一组数据,第二组光信号用于承载第一组计算结果;光电转换模块,用于接收第二组光信号,并将第二组光信号转换为第一组电信号;电调控计算模块,用于基于第二组权重系数对第一组电信号执行第二神经网络层计算。
Description
技术领域
本申请涉及人工智能技术领域,尤其涉及一种存算一体电路、计算系统及计算方法。
背景技术
人工智能(artificial intelligence,AI)算法运行在传统的计算系统上,例如中央处理器(central processing unit,CPU)、图形处理单元(graphical processing unit,GPU)等,能耗和效率相对来说难以媲美人脑。核心问题在于,传统的计算系统中存储和计算相互分离,使得处理神经网络时性能和功耗遭遇瓶颈。基于阻变存储器(resistive randomaccess memory,RRAM)或者NOR闪存(NOR Flash)等非易失存储器发展起来的存内(in-memory)计算可以很好的解决这一问题。
在进行存内计算时,采用混合精度计算的方式可以进一步提升计算效率、降低功耗。比如,在卷积神经网络(convolutional neural network,CNN)中,首层和尾层需要高精度计算,中间层可以采用低精度计算。
现有技术中,存算一体架构可以如图1所示,x1、x2、……、xn为输入的数据,对输入数据进行数模转换后,通过不同的电导(G11~Gnm)进行运算,并将运算结果存储在跨阻放大器(trans-impedance amplifier,TIA)中,TIA相当于积分模块,用于将多次计算结果整合输出,进行模数转换后,作为最终运算结果y1、y2、……、ym输出。采用图1所示的架构,计算精度取决于电导值的精度,因而该架构仅能实现单一精度(低精度)的计算,难以实现混合精度计算,灵活性较差。
因此,亟需一种实现混合精度计算的存算一体架构,以实现混合精度的存算一体,提高运算效率、降低功耗。
发明内容
本申请实施例提供一种存算一体电路、计算系统及计算方法,用以实现混合精度的存算一体,提高运算效率、降低功耗。
第一方面,本申请实施例提供一种存算一体电路。该存算一体电路包括光调控计算模块、光电转换模块和电调控计算模块。光调控计算模块可以基于第一组权重系数对用于指示第一组数据的第一组光信号执行第一神经网络层计算,从而得到第二组光信号,第二组光信号中承载有第一组计算结果。然后,光电转换模块接收第二组光信号,并将第二组光信号转换为第一组电信号。电调控计算模块在接收到第一组电信号后,可以基于第二组权重系数对第一组电信号执行第二神经网络层计算。
应理解,第一方面提供的存算一体电路可以视为神经网络芯片的一种,用于实现神经网络层计算。
采用第一方面提供的存算一体电路,由于光调控计算模块采用光信号进行调控,计算精度较高,因而可以作为高精度计算模块。并且,通过光信号进行计算,能够提升计算效率。同时,由于电调控计算模块采用电信号进行调控,计算精度较低,因而可以将电调控计算模块作为低精度计算模块,以降低功耗。根据这种方式能够实现混合精度计算,既能保证高精度运算的运算效率,也能降低功耗。
在一种可能的设计中,光调控计算模块可以包括至少一个光调控相变材料PCM阵列,至少一个光调控相变材料PCM阵列将第一组数据分别与第一组权重系数进行乘累加计算,得到第一组计算结果。其中,每个光调控PCM阵列中可以包括多个PCM单元,多个PCM单元所采用的相变材料的结晶度不同,PCM单元所采用的相变材料的结晶度用于指示权重系数。采用上述方案,可以通过光调控PCM阵列实现第一神经网络层的乘累加计算。
在一种可能的设计中,电调控计算模块中可以包括电调控PCM阵列,电调控PCM阵列将第一组计算结果分别与第二组权重系数进行乘累加计算,得到第二组计算结果。
采用上述方案,可以通过电调控PCM阵列实现第二神经网络层的乘累加计算。同时,光调控计算模块和电调控计算模块均通过PCM阵列实现,因此光调控计算模块和电调控计算模块可以集成在同一硅衬底上。也就是说,与现有技术中采用CPU+PCM阵列实现混合精度计算的方案相比,第一方面提供的存算一体电路可以在同一硅衬底上集成,即可以做到单芯片集成。
在一种可能的设计中,光电转换模块可以包括探测器阵列和转换模块。其中,探测器阵列用于探测第二组光信号的光强,得到一组光电流,转换模块用于将一组光电流转换为第一组电信号,其中,第一组电信号为电压信号。
在一种可能的设计中,第一方面提供的存算一体电路中还可以包括路由模块,路由模块与光电转换模块耦合,用于将第一组电信号路由至电调控计算模块。采用上述方案,可以通过路由模块将光调控计算模块的输出匹配到电调控计算模块的输入端。
在一种可能的设计中,第一方面提供的存算一体电路中还可以包括发光阵列,用于根据第一组数据中的多个元素发送第一组光信号。采用上述方案,可以通过发光阵列将输入的电信号转换成光信号,用于光调控计算模块进行第一神经网络层的计算。
实际应用中,发光阵列可以有多种实现方式,下面举例说明其中的三种实现方式。
实现方式一
发光阵列包括激光器阵列,该激光器中阵列包括多个激光器,每个激光器均具备调制功能,因而激光器帧列可以将第一组数据中的多个元素分别调制到多个光信号上并发送多个光信号,多个光信号组成第一组光信号。
实现方式二
发光阵列包括激光器阵列和调制器阵列;激光器阵列包括多个激光器,多个激光器用于发送多个光信号,激光器不具备调制功能,需要额外的调制器阵列对光信号进行调制;调制器阵列包括多个调制器,多个调制器与多个激光器一一对应,多个调制器接收对应的激光器发出的光信号,并将第一组数据中的多个元素调制在多个光信号上,调制后的多个光信号组成第一组光信号。
实现方式三
发光阵列包括光频梳源和调制器阵列;光频梳源用于产生光频梳,光频梳也可以被称为光频率梳,是指在频谱上由一系列均匀间隔且具有相干稳定相位关系的频率分量组成的光谱,具体地,可以理解为光频梳包括多个光信号;调制器阵列包括多个调制器,多个调制器与多个光信号一一对应,多个调制器接收对应的光信号,并将第一组数据中的多个元素调制在多个光信号上,调制后的多个光信号组成第一组光信号。
第二方面,本申请实施例提供一种计算系统,该计算系统包括处理器以及上述第一方面及其任一可能的设计中提供的存算一体电路,处理器用于向存算一体电路发送第一组数据,存算一体电路用于基于第一组数据进行神经网络层计算。
第三方面,本申请实施例还提供一种计算方法,该方法包括如下步骤:基于第一组权重系数对第一组光信号执行第一神经网络层计算,得到第二组光信号,其中,第一组光信号用于指示第一组数据,第二组光信号用于承载第一组计算结果;将第二组光信号转换为第一组电信号;基于第二组权重系数对第一组电信号执行第二神经网络层计算。
在一种可能的设计中,基于第一组权重系数对第一组光信号执行第一神经网络层计算,具体可通过如下方式实现:将第一组数据分别与第一组权重系数进行乘累加计算,得到第一组计算结果。
在一种可能的设计中,基于第二组权重系数对第一组电信号执行第二神经网络层计算,具体可通过如下方式实现:基于第二组权重系数对接收的第一组电信号执行乘累加计算,获得第二组电信号,其中,第二组电信号用于指示第一组计算结果与第二组权重系数进行乘累加计算的计算结果。
另外,应理解,第二方面~第三方面及其任一种可能设计方式所带来的技术效果可参见第一方面中不同设计方式所带来的技术效果,此处不再赘述。
附图说明
图1为现有技术提供的一种计算存储单元的结构示意图;
图2为本申请实施例提供的一种神经网络系统的结构示意图;
图3为本申请实施例提供的第一种存算一体电路的结构示意图;
图4为本申请实施例提供的第二种存算一体电路的结构示意图;
图5为本申请实施例提供的一种光调控计算模块的结构示意图;
图6为本申请实施例提供的一种光调控PCM阵列的结构示意图;
图7为本申请实施例提供的一种电调控PCM阵列的结构示意图;
图8为本申请实施例提供的另一种电调控PCM阵列的结构示意图;
图9为本申请实施例提供的第三种存算一体电路的结构示意图;
图10a为本申请实施例提供的第一种发光阵列的结构示意图;
图10b为本申请实施例提供的第二种发光阵列的结构示意图;
图10c为本申请实施例提供的第三种发光阵列的结构示意图;
图11为本申请实施例提供的第四种存算一体电路的结构示意图;
图12为本申请实施例提供的一种计算系统的结构示意图;
图13为本申请实施例提供的一种计算方法的流程示意图。
具体实施方式
下面将结合附图对本申请实施例作进一步地详细描述。
需要说明的是,本申请实施例中,多个是指两个或两个以上。另外,在本申请的描述中,“第一”、“第二”等词汇,仅用于区分描述的目的,而不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。本申请实施例中所提到的“耦合”,是指电学连接,具体可以包括直接连接或者间接连接两种方式。
首先对本申请实施例的应用场景进行简单介绍。本申请实施例可以应用于神经网络系统中。神经网络系统可以包括多个神经网络层。在本申请实施例中,神经网络层为逻辑的层概念,一个神经网络层要执行一次神经网络操作。每一层神经网络计算均是由计算节点来实现。神经网络层可以包括卷积层、池化层等。
如图2所示,神经网络系统中可以包括n个神经网络层(又可以被称为n层神经网络),其中,n为大于或等于2的整数。图2示出了神经网络系统中的部分神经网络层,如图2所示,神经网络系统可以包括第一层202、第二层204、第三层206、第四层208、第五层210至第n层212。其中,第一层202可以执行卷积操作,第二层204可以是对第一层202的输出数据执行池化操作,第三层206可以是对第二层204的输出数据执行卷积操作,第四层208可以对第三层206的输出结果执行卷积操作,第五层210可以对第二层204的输出数据以及第四层208的输出数据执行求和操作等等。
可以理解的是,图2只是对神经网络系统中的神经网络层的一个简单示例和说明,并不对每一层神经网络的具体操作进行限制,例如,第四层208也可以是池化运算,第五层310也可以是做卷积操作或池化操作等其他的神经网络操作。
本申请实施例中提供的存算一体电路,主要用于执行神经网络层的卷积操作。存算一体电路中,光调控计算模块可以视为一个计算节点,用于执行第一神经网络层的计算,电调控计算模块可以视为另一个计算节点,用于执行第二神经网络层的计算。
图3为本申请实施例提供的一种存算一体电路。如图3所示,存算一体电路300包括光调控计算模块301、光电转换模块302和电调控计算模块303。
其中,光调控计算模块301用于基于第一组权重系数对第一组光信号执行第一神经网络层计算,得到第二组光信号,第一组光信号用于指示第一组数据,第二组光信号用于承载第一组计算结果;光电转换模块302用于接收第二组光信号,并将第二组光信号转换为第一组电信号;电调控计算模块303用于基于第二组权重系数对第一组电信号执行第二神经网络层计算。
具体地,电调控计算模块303基于第二组权重系数对第一组电信号执行第二神经网络层计算后,可以得到第二组电信号,第二组电信号用于承载第二组计算结果。
需要说明的是,本申请实施例中,数据或计算结果通过光信号或电信号承载,信号进行光电转换或电光转换时,只是将承载数据或计算结果的信号的形式进行了转换,信号所承载的数据或计算结果不变。
此外,应理解,第一组数据中包括多个数据(多个元素),多个数据通常为不同的数据,但在某些情况下,多个数据中可能存在相同的数据。同样地,第一组计算结果中也包括多个计算结果,多个计算结果通常为不同的数据,第二组计算结果亦然。
在神经网络系统中,进行神经网络层的计算时,不同的神经网络层所需的计算精度不同,比如在CNN网络中,首层和尾层需要高精度计算,中间层仅需低精度计算即可。那么,需要进行高精度计算的神经网络层(即第一神经网络层)的计算可以通过光调控计算模块301实现,需要进行低精度计算的神经网络层(即第二神经网络层)的计算可以通过电调控计算模块303实现。
采用上述存算一体电路300,由于光调控计算模块301采用光信号进行调控,计算精度较高,因而可以作为高精度计算模块;同时,由于电调控计算模块303采用电信号进行调控,计算精度较低,因而可以将电调控计算模块303作为低精度计算模块,从而实现混合精度计算。
需要说明的是,本申请实施例中,光调控计算模块301可以视为一个计算节点,用于执行第一神经网络层计算,电调控计算模块303可以视为另一个计算节点,用于执行第二神经网络层计算;实际应用中,神经网络系统中还可以包括除第一神经网络层和第二神经网络层之外的其他神经网络层,其他神经网络层的计算可以通过其他计算节点(比如另一光调控计算模块或电调控计算模块)实现,或者,其他神经网络层的计算可以复用光调控计算模块301或电调控计算模块303。比如,电调控计算模块303输出的第二组电信号进行电光转换后,可以作为光调控计算模块301的输入,由光调控计算模块301执行第三神经网络层的计算。
进一步地,存算一体电路300中还可以包括路由模块。如图4所示,路由模块与数据转换模块302耦合,用于将第一组电信号路由至电调控计算模块303。
下面分别对存算一体电路300中的各个单元/模块做详细介绍。
一、光调控计算模块301
具体地,光调控计算模块301可以包括至少一个光调控相变材料(phase changematerial,PCM)阵列,用于将第一组数据分别与第一组权重系数进行乘累加计算,得到第一组计算结果。
应理解,本申请实施例中,第一组数据是指需要执行第一层神经网络计算的全部数据,对第一组数据执行第一神经网络层计算后,可以得到用于执行第二神经网络层计算的全部数据。在某些情况下,第一组数据可以进行多次第一神经网络层计算,每次计算是对第一组数据中的部分数据执行第一神经网络层计算,数据转换模块302可以将多次计算得到的结果缓存,待第一组数据中的全部数据均计算完成后,整合多次计算得到的结果发送给电调控计算模块303进行第二神经网络层的计算。其中,多次计算得到的结果的总和可以视为前述第一组计算结果。
因此,实际应用中,可以根据应用场景的需求设置多个光调控PCM阵列,每个光调控PCM阵列用于执行部分数据的计算。当然,也可以通过复用一个光调控PCM阵列进行多次计算。在本申请实施例后续的介绍中,为了描述简便,以光调控计算模块301中包括一个光调控PCM阵列为例进行示意。
具体地,光调控PCM阵列可以采用交叉矩阵(crossbar)结构。光调控PCM阵列中包括多个PCM单元,每个PCM单元所采用的相变材料的结晶度不同,相变材料的结晶度用于指示第一组权重系数中的不同权重系数。
光调控PCM矩阵基于渐逝波机理实现光调控,具体原理为:相变合金材料在不同结晶形态下的折射率相差很大,导致光信号的吸收率反差较大。那么,承载有第一组数据的第一组光信号分别经过不同结晶度的PCM单元,光脉冲的强度即发生变化,即相当于将第一组数据分别与第一组权重系数进行乘累加计算。实际应用中,光调控PCM矩阵可以采用在如Si或者Si3N4上溅射相变合金材料(Ge2Sb2Te5等)构成的crossbar结构。
下面以图5为例说明第一组数据与第一组权重系统进行乘累加计算的过程:P1和P2表示第一组光信号中的两个元素,P1和P2经过结晶度不同的PCM单元,相当于分别与G11和G12相乘,G11和G12表示第一组权重系数,输出结果分别为P1G11和P2G12;P1G11和P2G12叠加在一起输出,相当于累加。
示例性地,假设光调控PCM阵列为n*m的阵列,即第一组光信号包括n路光信号、第一组电信号包括m路电信号(即第一组计算结果包括m个计算结果),那么光调控PCM矩阵的一种可能的结构示意图可以如图6所示。图6所示的光调控PCM阵列采用crossbar结构。PCM单元设置在微环上,微环耦合在输入信号(X1,X2,……,Xn)和输出信号(Y1,Y2,……,Ym)的传输路径上,比如,对于光信号X1,X1大部分通过耦合的微环传输,沿原输入通道传输的部分微乎其微。因此,对于第一组光信号(X1,X2,……,Xn)来说,每个光信号经过不同结晶度的PCM单元导致光强发生变化,即相当于与不同的权重系数进行了乘法运算,然后,每一列输出通道用于对进行乘法运算后得到的光信号进行累加计算。
二、电调控计算模块303
本申请实施例中,电调控计算模块303用于基于第二组权重系数对第一组电信号执行第二神经网络层计算。
具体地,电调控计算模块303可以包括:电调控PCM阵列,用于将第一组计算结果分别与第二组权重系数进行乘累加计算,得到第二组计算结果。
第一组电信号输入至电调控计算模块303后,经过不同电导值的电导,相当于将第一组计算结果分别与第二组权重系数相乘,得到多个中间计算结果。最终,电调控计算模块303输出第二组计算结果。
实际应用中,电调控PCM阵列可以采用一个晶体管和一个电导(简称1T1R)的结构,可以采用两个晶体管和两个电导(简称2T2R)的结构,也可以采用crossbar结构。
示例性地,图7示出了采用1T1R结构的电调控PCM阵列。在该结构中,信号(P1,P2,……,Pb)用于选通晶体管;在晶体管被选通的情况下,第一组电信号(A1,A2,……,Aa)通过晶体管传输至不同电导值的电导(电阻),不同电导值的电导相当于存储有不同的权重系数,从而实现第一组电信号与第二组权重系数的相乘,同一列上不同电导输出的信号再进行累加,从而实现乘累加计算,输出(B1,B2,……,Bb)。
示例性地,图8示出了采用crossbar结构的电调控PCM阵列。在该结构中,第一组电信号(A1,A2,……,Aa)传输至不同电导值的电导,从而实现第一组电信号与第二组权重系数的相乘,同一列上不同电导输出的信号再进行累加,从而实现乘累加计算,输出(B1,B2,……,Bb)。
应理解,电调控PCM阵列的实现方式为现有技术,现有技术中电调控PCM阵列的结构对本申请实施例同样适用,此处不再赘述。
下面对光调控PCM阵列与电调控PCM阵列的计算精度进行介绍:在电调控PCM阵列中,在进行计算之前,需要在阵列的输入端施加不同的电压值,从而写入不同的电导值。施加电压后,相当于通过加热的方式使得PCM单元中的分子或原子进行重排,PCM单元由非结晶体变为结晶态,从而使得PCM单元具有不同的结晶度。由于通过加热的方式改变材料的结晶状态的过程中易造成材料的缺陷,因而会影响电调控PCM阵列的计算精度。而在光调控PCM阵列中,在进行计算之前,是通过通入光信号的方式来写入不同的权重系数的,该过程是在光场的作用下使得PCM单元由非结晶体变为结晶态,由于该过程不涉及材料的加热,不易造成材料的缺陷,因此光调控PCM阵列的计算精度较高。
需要说明的是,本申请实施例中,电调控PCM阵列也可以复用。比如采用电调控PCM阵列执行第二神经网络层的计算后,可以再采用电调控PCM阵列执行其他神经网络层的计算,那么,电调控计算模块303中还可以包括跨阻放大器(trans-impedance amplifier,TIA),TIA用于对电调控PCM阵列的计算结果进行积分,从而将多次计算结果合并输出。
此外,现有技术中,为了实现混合精度的存算一体,通常采用CPU+PCM阵列的架构,即利用CPU做高精度计算任务,利用电调控PCM阵列做低精度的计算任务。但是,采用该方案,高低精度单元之间的数据交换量大,导致运算效率低、功耗大。而本申请实施例中,若光调控计算模块301采用光调控PCM阵列、电调控计算模块303采用电调控PCM阵列,那么光调控PCM阵列和电调控PCM阵列可以集成在同一硅衬底上。与现有技术中采用CPU+PCM阵列实现混合精度计算的方案相比,存算一体电路300可以在同一硅衬底上集成,即可以做到单芯片集成。
三、数据转换模块302
本申请实施例中,数据转换模块302用于将第二组光信号转换成第一组电信号。
具体地,数据转换模块302中可以包括探测器阵列和转换模块。其中,探测器阵列用于探测第二组光信号的光强,得到一组光电流;转换模,用于将该组光电流转换为第一组电信号,其中,第一组电信号为电压信号。
此外,如前所述,在对第一组数据进行第一神经网络层计算时,可以分多次进行,每次仅针对第一组数据中的部分数据进行计算。数据转换模块302中可以保存有每次计算的结果,待第一组数据全部计算完成后,整合多次计算得到的结果发送给电调控计算模块303进行第二神经网络层的计算。实际应用中,可以在数据转换模块302中设置阈值参数,作为非线性激活函数,当计算结果积累到一定程度后才激发下一步操作(电调控计算模块303的计算过程)。
比如,光调控计算模块301并行输出的第二组光信号中包括10个光信号,而电调控计算模块303的输入有50路,那么,数据转换模块302可以在光调控计算模块301输出光信号的数量积累到50个的情况下(光调控计算模块301执行5次计算)激发电调控计算模块302的计算。
四、发光阵列
本申请实施例中,存算一体电路300中还可以包括发光阵列,如图9所示。发光阵列用于根据第一组数据中的多个元素发送第一组光信号,第一组光信号中的每个光信号用于指示第一组数据中的一个元素。
具体地,发光阵列可以包括激光器阵列,如图10a所示,激光器阵列中包括多个LD,多个LD用于根据第一组数据中的多个元素发送多个光信号,组成第一组光信号。实际应用总,激光器LD1和LD2发出的光信号具有不同的光强,用于指示第一组数据中不同的元素。
在另一种实现方式中,如图10b所示,发光阵列包括激光器阵列和调制器阵列。激光器阵列包括多个激光器,用于发送多个光信号(部分光信号的波长也可以相同);调制器阵列包括多个调制器,每个调制器对应一个激光器,分别用于接收多个光信号,并分别将第一组数据中的多个元素调制在多个光信号上。比如,激光器LD1发出光信号后,调制器MD1可以根据待加载的第一元素调整LD1发出的光信号的光强,以将第一元素加载到该光信号上。类似的,激光器LD2发出光信号后,调制器MD2可以根据待加载的第二元素调制LD2发出的光信号的光强,以将第二元素加载到该光信号上。可以理解的是,实际应用中,发光阵列中的调制器的数量可以与激光器的数量相同,也可以多个激光器复用同一个调制器。但是,在多个激光器复用同一个调制器的情况下,调制的效率可以会受到影响。
在另一种实现方式中,如图10c所示,发光阵列包括光频梳源和调制器阵列。光频梳源用于产生光频梳。光频梳也可以被称为光频率梳,是指在频谱上由一系列均匀间隔且具有相干稳定相位关系的频率分量组成的光谱。调制器阵列包括多个调制器。
具体地,光频梳源连接有多个调制器。如果光频梳源发出m个光信号,则光频梳源可以连接m个调制器,m个调制器可以根据第一数据中的m个元素分别调制所接收光信号的光强,从而将第一数据中的m个元素分别调制到所接收的光信号中。例如,调制器MD1可以根据第一数据中的第一元素调整所接收的光信号的光强,从而将第一元素调制到该光信号中。类似的,调制器MD2可以根据第一数据中的第二元素调整所接收的光信号的光强,从而将第二元素调制到该光信号中。
此外,本申请实施例中,为了实现光信号大规模的并行传输,在发光阵列和光调控计算模块301之间进行光信号的传输时,可以采用波分复用技术,即发光阵列将第一组光信号合成一个光波束,然后将该光波束通过光波导传输至光调控计算模块301。
采用上述方案,可以采用实现光信号的并行传输,发光阵列与光调控计算模块301之间进行光信号的传输时,仅通过一路光波导即可。
五、路由模块
本申请实施例中,路由模块用于将第一组电信号路由至电调控计算模块303的输入端。
如前所述,电调控计算模块303与光调控计算模块301相比阵列较大,路由模块用于将小阵列的输出信号匹配到大阵列中。比如,假设光调控PCM阵列的大小为n*m,电调控PCM阵列的大小为a*b,m<a;那么,光调控计算模块301每次计算得到的m个计算结果,需要输入至电调控计算模块303的a个输入端中的哪几个输入端,可以由路由模块来配置。
实际应用中,路由模块可以由多路复用器MUX实现,用于实现a选m。
综上,采用本申请实施例提供的存算一体电路300,由于光调控计算模块301采用光脉冲对计算过程进行调控,计算精度较高,因而可以作为高精度计算模块,从而提高运算效率;同时,将电调控计算模块303作为低精度计算模块,满足低精度计算需求,降低功耗,实现混合精度计算。
此外,与现有技术中采用CPU+PCM阵列实现混合精度计算的方案相比,存算一体电路300可以在同一硅衬底上集成,即可以做到单芯片集成,制备复杂度低。采用全模拟域的混合精度计算方案,数据在存算一体电路300内部传输时无需进行数模转换和模数转换,运算效率高。
下面,通过一个具体示例对本申请实施例提供的一种存算一体电路进行详细介绍。
如图11所示,为本申请实施例提供的一种存算一体电路,用以实现混合精度计算。其中包括发光阵列、高精度计算模块、低精度计算模块、数据转换模块和路由模块。
发光阵列:发光阵列的主要作用是将输入数据变成光信号输入到光调控PCM阵列。
数据转换模块:包含探测器阵列和转换模块;主要作用是可以将多路的光探测器信号转换为电压信号,且可以在数据转换模块中设置阈值参数,作为非线性激活函数,当电压信号积累到一定程度后激发下一步操作。
高精度计算模块,核心部件是光调控PCM阵列(n*m):用于实现矩阵乘累加计算。特点是精度高、阵列小;光调控PCM阵列可以采用基于相变材料及光波导制备而成的crossbar结构;可采用波分复用技术,实现大规模并行输入。此外,光调控PCM阵列还可以采用分光、模分等方式进一步扩大阵列的规模,用小阵列实现大阵列的功能。
低精度计算模块,核心部件是电调控PCM阵列(a*b):用于矩阵乘累加计算。特点是精度略低但阵列大、工艺成熟、制备简单;可采用基于相变材料的1T1R、2T2R或者crossbar结构。低精度计算模块中的另一个部件是TIA,可设计为积分模块,可以使多次输入汇聚在一起输出。
路由模块:包含信号路由及驱动部件,可采用MUX实现a选m;主要作用是将电调控PCM阵列的多数输出信号匹配到较大的电调控PCM阵列,作为其输入;可根据任务和算法的要求,将小阵列的m个输出可以作为大阵列a的m个输入。
具体地,数据计算的流程可以如下所述。
步骤1:数据输入之后,需要将输入的数据转换为光信号,通过发光阵列将电信号调制为匹配光调控PCM阵列(n*m)的光信号,作为其阵列的输入。发光阵列可以根据需求采用光频梳或者模分等技术,实现大规模的并行输入。
步骤2:光信号进入光调控的PCM阵列(n*m),进行高精度的乘累加计算,得到m个计算结果。
步骤3:经过光调控PCM阵列计算得到的m个光信号,经数据转换模块,变成m个电信号。并且在数据转换模块设置阈值参数,作为非线性激活函数。当电信号积累到一定程度后(比如积累到a个)进行激发,进行下一步操作。
步骤4:a个电信号经过路由模块,匹配到电调控PCM阵列(a*b),作为大阵列a*b的输入;
步骤5:信号经过电调控PCM阵列(a*b),进行较低精度的乘累加计算,并利用TIA进行转化,得到最终的计算结果。其中TIA可以设计为积分模块,对多批次的电流进行积分,一次输出。
基于同一发明构思,本申请实施例还提供一种计算系统。如图12所示,该计算系统1200包括处理器1201以及前述存算一体电路300,处理器1201用于向存算一体电路300发送第一组数据,存算一体电路300用于基于第一组数据进行神经网络层计算。
需要说明的是,计算系统1200中未详尽描述的实现方式及其技术效果可以参见存算一体电路300中的相关描述,此处不再赘述。
此外,本申请实施例还提供一种计算方法,如图13所示,该方法包括如下步骤。
S1301:基于第一组权重系数对第一组光信号执行第一神经网络层计算,得到第二组光信号。
其中,第一组光信号用于指示第一组数据,第二组光信号用于承载第一组计算结果。
S1302:将第二组光信号转换为第一组电信号。
S1303:基于第二组权重系数对第一组电信号执行第二神经网络层计算。
具体地,S1301中,基于第一组权重系数对第一组光信号执行第一神经网络层计算,可以采用如下方式:将第一组数据分别与第一组权重系数进行乘累加计算,得到第一组计算结果。
具体地,S1303中,基于第二组权重系数对第一组电信号执行第二神经网络层计算,可以采用如下方式:基于第二组权重系数对接收的第一组电信号执行乘累加计算,获得第二组电信号,其中,第二组电信号用于指示第一组计算结果与第二组权重系数进行乘累加计算的计算结果。
需要说明的是,图13所示的计算方法中未详尽描述的实现方式及其技术效果可以参见存算一体电路300中的相关描述,此处不再赘述。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (14)
1.一种存算一体电路,其特征在于,包括:
光调控计算模块,用于基于第一组权重系数对第一组光信号执行第一神经网络层计算,得到第二组光信号,其中,所述第一组光信号用于指示第一组数据,所述第二组光信号用于承载第一组计算结果;
光电转换模块,用于接收所述第二组光信号,并将所述第二组光信号转换为第一组电信号;
电调控计算模块,用于基于第二组权重系数对所述第一组电信号执行第二神经网络层计算。
2.如权利要求1所述的电路,其特征在于,所述光调控计算模块包括:
至少一个光调控相变材料PCM阵列,用于将所述第一组数据分别与所述第一组权重系数进行乘累加计算,得到所述第一组计算结果。
3.如权利要求1或2所述的电路,其特征在于,所述电调控计算模块包括:
电调控PCM阵列,用于基于所述第二组权重系数对接收的所述第一组电信号执行乘累加计算,获得第二组电信号,其中,所述第二组电信号用于指示所述第一组计算结果与所述第二组权重系数进行乘累加计算的计算结果。
4.如权利要求2或3所述的电路,其特征在于,所述至少一个光调控PCM阵列中的每个光调控PCM阵列包括多个PCM单元,所述多个PCM单元所采用的相变材料的结晶度不同,其中,PCM单元所采用的相变材料的结晶度用于指示权重系数。
5.如权利要求1~4任一项所述的电路,其特征在于,所述光电转换模块包括:
探测器阵列,用于探测所述第二组光信号的光强,得到一组光电流;
转换模块,用于将所述一组光电流转换为所述第一组电信号,其中,所述第一组电信号为电压信号。
6.如权利要求1~5任一项所述的电路,其特征在于,还包括:
路由模块,与所述光电转换模块耦合,用于将所述第一组电信号路由至所述电调控计算模块。
7.如权利要求1~6任一项所述的电路,其特征在于,还包括:
发光阵列,用于根据所述第一组数据中的多个元素发送所述第一组光信号。
8.如权利要求7所述的电路,其特征在于,所述发光阵列包括:
激光器阵列,所述激光器阵列包括多个激光器,所述多个激光器用于根据所述第一组数据中的多个元素发送多个光信号,所述多个光信号组成所述第一组光信号。
9.如权利要求7所述的电路,其特征在于,所述发光阵列包括:
激光器阵列,包括多个激光器,所述多个激光器用于发送多个光信号;
调制器阵列,包括多个调制器,所述多个调制器与所述多个激光器一一对应,所述多个调制器用于接收对应的激光器发出的光信号,以及将所述第一组数据中的多个元素调制在所述多个光信号上,调制后的所述多个光信号组成所述第一组光信号。
10.如权利要求7所述的电路,其特征在于,所述发光阵列包括:
光频梳源,用于产生光频梳,所述光频梳包括多个光信号;
调制器阵列,包括多个调制器,所述多个调制器与所述多个光信号一一对应,所述多个调制器用于接收对应的光信号,以及将所述第一组数据中的多个元素调制在所述多个光信号上,调制后的所述多个光信号组成所述第一组光信号。
11.一种计算系统,其特征在于,包括处理器以及如权利要求1~10任一项所述的存算一体电路,所述处理器用于向所述存算一体电路发送第一组数据,所述存算一体电路用于基于所述第一组数据进行神经网络层计算。
12.一种计算方法,其特征在于,包括:
基于第一组权重系数对第一组光信号执行第一神经网络层计算,得到第二组光信号,其中,所述第一组光信号用于指示第一组数据,所述第二组光信号用于承载第一组计算结果;
将所述第二组光信号转换为第一组电信号;
基于第二组权重系数对所述第一组电信号执行第二神经网络层计算。
13.如权利要求12所述的方法,其特征在于,基于第一组权重系数对第一组光信号执行第一神经网络层计算,包括:
将所述第一组数据分别与所述第一组权重系数进行乘累加计算,得到所述第一组计算结果。
14.如权利要求12或13所述的方法,其特征在于,基于第二组权重系数对所述第一组电信号执行第二神经网络层计算,包括:
基于所述第二组权重系数对接收的所述第一组电信号执行乘累加计算,获得第二组电信号,其中,所述第二组电信号用于指示所述第一组计算结果与所述第二组权重系数进行乘累加计算的计算结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110819975.7A CN115640839A (zh) | 2021-07-20 | 2021-07-20 | 一种存算一体电路、计算系统及计算方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110819975.7A CN115640839A (zh) | 2021-07-20 | 2021-07-20 | 一种存算一体电路、计算系统及计算方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115640839A true CN115640839A (zh) | 2023-01-24 |
Family
ID=84939430
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110819975.7A Pending CN115640839A (zh) | 2021-07-20 | 2021-07-20 | 一种存算一体电路、计算系统及计算方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115640839A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116451758A (zh) * | 2023-04-04 | 2023-07-18 | 北京大学 | 一种加权求和存内计算电路及存储器 |
-
2021
- 2021-07-20 CN CN202110819975.7A patent/CN115640839A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116451758A (zh) * | 2023-04-04 | 2023-07-18 | 北京大学 | 一种加权求和存内计算电路及存储器 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11817903B2 (en) | Coherent photonic computing architectures | |
CN113657580B (zh) | 基于微环谐振器和非易失性相变材料的光子卷积神经网络加速器 | |
CN112001487A (zh) | 一种光子神经网络 | |
CN114358271A (zh) | 一种时间-波长交织光子神经网络卷积加速芯片 | |
US11509397B2 (en) | Balanced photonic architectures for matrix computations | |
TWI806042B (zh) | 光電處理設備、系統及方法 | |
CN117077750B (zh) | 一种并行光子卷积运算芯片及系统 | |
CN113805641B (zh) | 一种光子神经网络 | |
CN115222035B (zh) | 一种光子神经网络卷积加速芯片 | |
CN111561953A (zh) | 基于波分复用与平衡探测的片上集成光学矩阵矢量乘法器 | |
CN112308224A (zh) | 光学神经网络装置、芯片及神经网络计算的光学实现方法 | |
CN115640839A (zh) | 一种存算一体电路、计算系统及计算方法 | |
Filipovich et al. | Monolithic silicon photonic architecture for training deep neural networks with direct feedback alignment | |
CN113325917A (zh) | 一种光计算装置、系统以及计算方法 | |
CN117709423B (zh) | 一种深度神经网络光子加速芯片及其运算系统 | |
WO2023039858A1 (zh) | 光计算系统、光计算方法及控制装置 | |
Xu et al. | Performance evaluation of an integrated photonic convolutional neural network based on delay buffering and wavelength division multiplexing | |
CN116107037B (zh) | 密集波导阵列的片上光学器件光计算网络结构 | |
US20240013041A1 (en) | Single ended eam with electrical combining | |
TWI758994B (zh) | 光電處理系統 | |
CN117784313B (zh) | 基于循环阵列波导光栅的二维光子卷积运算芯片及系统 | |
CN115641494A (zh) | 一种基于微环调制器的神经网络图像处理系统 | |
Xiao et al. | Optical Neural Networks with Tensor Compression and Photonic Memory | |
CN116976409A (zh) | 一种全光神经网络加速系统 | |
Kovaios et al. | Sub-pJ/MAC Silicon Photonic GeMM for Optical Neural Networks using a Time-Space Multiplexed Coherent Xbar |
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 |