CN114626011A - 光子计算神经网络运算加速方法、装置、设备及存储介质 - Google Patents
光子计算神经网络运算加速方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN114626011A CN114626011A CN202210515058.4A CN202210515058A CN114626011A CN 114626011 A CN114626011 A CN 114626011A CN 202210515058 A CN202210515058 A CN 202210515058A CN 114626011 A CN114626011 A CN 114626011A
- Authority
- CN
- China
- Prior art keywords
- characteristic image
- data
- convolution
- input
- image
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/15—Correlation function computation including computation of convolution operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- 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
-
- 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/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Neurology (AREA)
- Image Analysis (AREA)
- Image Processing (AREA)
Abstract
本申请实施例涉及数据处理技术领域,具体涉及一种光子计算神经网络运算加速方法、装置、设备及存储介质,旨在实现高效能的光电混合智能计算,加速深度神经网络的计算速度。所述方法包括:读取待处理图像,获得待处理图像的输入特征图像数据;在进行每轮卷积运算之前,确定卷积神经网络的当前轮次的输入特征图像参数与输出特征图像参数;根据输入特征图像参数与输出特征图像参数,将卷积神经网络的卷积核数据与输入特征图像数据分别传输到光子芯片的对应的驱动器中;根据卷积核数据与输入特征图像数据,对待处理图像进行卷积运算;通过FPGA芯片进行后续非线性运算,得到当前轮次运算结果;重复执行多轮卷积运算以及非线性运算,得到图像处理结果。
Description
技术领域
本申请实施例涉及数据处理技术领域,具体而言,涉及一种光子计算神经网络运算加速方法、装置、设备及存储介质。
背景技术
光学计算是最近新兴的一个计算方法,其计算速度较常规的电子计算有着质的提升,但受限于外部部署器件支持不足,大规模的光子器件难以有序的控制,运算信息也难以保存,神经形态光子学(Neuromorphic Photonics)应运而生,其主要是采用光电混合的方式,将光学计算嵌入到传统电子神经网络模型中,充分发挥各自的技术优势,既可以提高网络计算效率,又可以同时保留网络的兼容性。现有技术中通常将电学器件与光学器件结合,进行深度神经网络的计算,加速深度神经网络算法的计算速度。
现有技术中,当使用光子计算来加速深度神经网络中的卷积运算时,电学器件与光学器件之间的数据通信延迟较大,制约了深度神经网络卷积运算的速度。
发明内容
本申请实施例提供一种光子计算神经网络运算加速方法、装置、设备及存储介质,旨在实现高效能的光电混合智能计算,加速深度神经网络的计算速度。
本申请实施例第一方面提供一种光子计算神经网络运算加速方法,所述方法包括:
通过FPGA芯片读取待处理图像,获得所述待处理图像的输入特征图像数据;
在进行每轮卷积运算之前,确定所述FPGA芯片中的卷积神经网络的当前轮次的输入特征图像参数与输出特征图像参数;
根据所述输入特征图像参数与所述输出特征图像参数,将所述卷积神经网络的卷积核数据与所述输入特征图像数据分别传输到光子芯片的对应的驱动器中;
通过所述光子芯片,根据所述卷积核数据与所述输入特征图像数据,对所述待处理图像进行卷积运算,将卷积运算结果发送至所述FPGA芯片中;
通过所述FPGA芯片进行后续非线性运算,得到当前轮次运算结果;
重复执行多轮卷积运算以及非线性运算,得到图像处理结果。
可选地,确定所述FPGA芯片中的卷积神经网络的当前轮次的输入特征图像参数与输出特征图像参数,包括:
确定所述卷积神经网络进行当前轮次计算所使用的卷积层;
确定所述卷积层的输入特征图像参数与输出特征图像参数。
可选地,根据所述输入特征图像参数与所述输出特征图像参数,将所述卷积神经网络的卷积核数据与所述输入特征图像数据分别传输到光子芯片的对应的驱动器中,包括:
根据所述输入特征图像参数与所述输出特征图像参数,确定输出特征图像尺寸与输入特征图像通道数;
根据所述输出特征图像尺寸与所述输入特征图像通道数之间的大小关系,将所述卷积核数据与所述输入特征图像数据分别传输到所述光子芯片的对应的驱动器中。
可选地,根据所述输出特征图像尺寸与所述输入特征图像通道数之间的大小关系,将所述卷积核数据与所述输入特征图像数据分别传输到所述光子芯片的对应的驱动器中,包括:
当所述输出特征图像尺寸大于或等于所述输入特征图像通道数时,将所述卷积核数据传输到所述光子芯片的热调制驱动器中,并将所述输入特征图像数据传输到所述光子芯片的电调制驱动器中。
当所述输出特征图像尺寸小于所述输入特征图像通道数时,对所述卷积核数据与所述输入特征图像数据进行互换读取,得到互换后的卷积核数据与互换后的输入特征图像数据;
将所述互换后的卷积核数据传输到所述热调制驱动器中,将所述互换后的输入特征图像数据传输到所述电调制驱动器中。
可选地,对所述卷积核数据与所述输入特征图像数据进行互换读取,得到互换后的卷积核数据与互换后的输入特征图像数据,包括:
从所述FPGA芯片的卷积核缓存区中读取所述卷积核数据,将所述卷积核数据作为所述互换后的输入特征图像数据;
从所述FPGA芯片的输入图像缓存区读取所述输入特征图像数据,将所述输入特征图像数据作为所述互换后的卷积核数据。
可选地,通过所述FPGA芯片进行后续非线性运算,得到当前轮次运算结果,包括:
将所述卷积运算结果发送至所述FPGA芯片的非线性计算单元中;
通过所述非线性计算单元,根据所述卷积神经网络执行的图像识别任务,进行后续的非线性计算,得到所述当前轮次运算结果。
可选地,所述方法还包括:
将所述当前轮次运算结果存储至所述FPGA芯片的内部缓存中;
在下一轮次卷积运算开始时,从所述内部缓存中读取所述当前轮次运算结果,用于下一轮次卷积运算。
本申请实施例第二方面提供一种光子计算神经网络运算加速装置,所述装置包括:
图像读取模块,用于通过FPGA芯片读取待处理图像,获得所述待处理图像的输入特征图像数据;
特征图像参数确定模块,用于在进行每轮卷积运算之前,确定所述FPGA芯片中的卷积神经网络的当前轮次的输入特征图像参数与输出特征图像参数;
数据配置模块,用于根据所述输入特征图像参数与所述输出特征图像参数,将所述卷积神经网络的卷积核数据与所述输入特征图像数据分别传输到光子芯片的对应的驱动器中;
卷积运算模块,用于通过所述光子芯片,根据所述卷积核数据与所述输入特征图像数据,对所述待处理图像进行卷积运算,将卷积运算结果发送至所述FPGA芯片中;
非线性运算模块,用于通过所述FPGA芯片进行后续非线性运算,得到当前轮次运算结果;
结果获得模块,用于重复执行多轮卷积运算以及非线性运算,得到图像处理结果。
可选地,所述特征图像参数确定模块包括:
卷积层确定子模块,用于确定所述卷积神经网络进行当前轮次计算所使用的卷积层;
特征图像参数确定子模块,用于确定所述卷积层的输入特征图像参数与输出特征图像参数。
可选地,所述数据配置模块包括:
参数确定子模块,用于根据所述输入特征图像参数与所述输出特征图像参数,确定输出特征图像尺寸与输入特征图像通道数;
第一数据配置子模块,用于根据所述输出特征图像尺寸与所述输入特征图像通道数之间的大小关系,将所述卷积核数据与所述输入特征图像数据分别传输到所述光子芯片的对应的驱动器中。
可选地,所述第一数据配置子模块包括:
第二数据配置子模块,用于当所述输出特征图像尺寸大于或等于所述输入特征图像通道数时,将所述卷积核数据传输到所述光子芯片的热调制驱动器中,并将所述输入特征图像数据传输到所述光子芯片的电调制驱动器中。
互换读取子模块,用于当所述输出特征图像尺寸小于所述输入特征图像通道数时,对所述卷积核数据与所述输入特征图像数据进行互换读取,得到互换后的卷积核数据与互换后的输入特征图像数据;
第三数据配置子模块,用于将所述互换后的卷积核数据传输到所述热调制驱动器中,将所述互换后的输入特征图像数据传输到所述电调制驱动器中。
可选地,所述互换读取子模块包括:
第一读取子模块,用于从所述FPGA芯片的卷积核缓存区中读取所述卷积核数据,将所述卷积核数据作为所述互换后的输入特征图像数据;
第二读取子模块,用于从所述FPGA芯片的输入图像缓存区读取所述输入特征图像数据,将所述输入特征图像数据作为所述互换后的卷积核数据。
可选地,所述非线性计算模块包括:
数据发送子模块,用于将所述卷积运算结果发送至所述FPGA芯片的非线性计算单元中;
当前轮次运算结果获得子模块,用于通过所述非线性计算单元,根据所述卷积神经网络执行的图像识别任务,进行后续的非线性计算,得到所述当前轮次运算结果。
可选地,所述方法还包括:
结果存储子模块,用于将所述当前轮次运算结果存储至所述FPGA芯片的内部缓存中;
结果读取子模块,用于在下一轮次卷积运算开始时,从所述内部缓存中读取所述当前轮次运算结果,用于下一轮次卷积运算。
本申请实施例第三方面提供一种可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时,实现如本申请第一方面所述的方法中的步骤。
本申请实施例第四方面提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现本申请第一方面所述的方法的步骤。
采用本申请提供的光子计算神经网络运算加速方法,通过FPGA芯片读取待处理图像,获得所述待处理图像的输入特征图像数据;在进行每轮卷积运算之前,确定所述FPGA芯片中的卷积神经网络的当前轮次的输入特征图像参数与输出特征图像参数;根据所述输入特征图像参数与所述输出特征图像参数,将所述卷积神经网络的卷积核数据与所述输入特征图像数据分别传输到光子芯片的对应的驱动器中;通过所述光子芯片,根据所述卷积核数据与所述输入特征图像数据,对所述待处理图像进行卷积运算,将卷积运算结果发送至所述FPGA芯片中;通过所述FPGA芯片进行后续非线性运算,得到当前轮次运算结果;重复执行多轮卷积运算以及非线性运算,得到图像处理结果。本申请中,在将卷积神经网络的卷积核数据与输入图像的图像数据传输至光子芯片进行卷积运算之前,根据卷积神经网络每一层卷积层的输入特征图像参数与输出特征图像参数,灵活的将卷积核数据与输入特征图像数据传输在光子芯片的对应的驱动器中,即根据卷积神经网络每一层卷积层的特征,对数据的传输方式进行灵活变换,尽可能将FPGA芯片以及光子芯片之间的数据通信延迟降低,加速了卷积神经网络的卷积运算速度,进而实现了高效能的光电混合运算。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一实施例提出的光子计算系统结构图;
图2是本申请一实施例提出的光子计算神经网络运算加速方法的流程图;
图3是一个典型深度卷积神经网络(YOLO)结构图;
图4是本申请一实施例提出的光子计算神经网络运算加速装置的示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
参考图1,图1是本申请一实施例提出的光子计算系统结构图,如图1所示。光子计算系统包含两大模块,FPGA芯片以及光子芯片,FPGA芯片即现场可编程逻辑门阵列,集成了控制逻辑模块,卷积核缓存区,输入图像缓存区,内部缓存以及NI Enggine(非线性计算单元)等基本单元,其中,控制逻辑模块用于存储整个FPGA芯片的控制逻辑,卷积核缓存区用于存储深度卷积神经网络的卷积核数据,输入图像缓存区用于存储输入图像的数据,内部缓存用于存储每一轮运算的结果。光子芯片是可以进行光学计算的芯片,芯片上传输了两种驱动器,一种是热调制驱动器,即通过温度控制的驱动器,一种是电调制驱动器,通过电流进行控制,驱动器的作用是将FPGA传入的数据进行放大处理后出入光子芯片中。IO(输入/输出接口)是FPGA的接口,用于传输信息,Serdes(串行器/解串器)是一种串行接口,相较于传统的并行接口速度更快,更稳定。
结合图1,光子计算系统的工作步骤为,FPGA芯片从外部读入待处理图片,将待处理图片的输入特征图像数据存放至输入图像缓存区,在进行每一轮卷积运算之前,卷积核缓存区通过IO接口将卷积核数据传输至一个驱动器中,通过该驱动器将卷积核数据传输至光子芯片,FPGA芯片通过Serdes接口将内输入图像缓存区的输入特征图像数据发送至另一个驱动器,通过该驱动器将输入特征图像数据发送至光子芯片,光子芯片进行完卷积计算之后,将数据发送至FPGA芯片的NI Enggine中,进行后续的非线性计算,将计算结果保存至内部缓存中,在进行新一轮卷积运算时,将计算结果通过Serdes接口发送至驱动器,用于新一轮的卷积运算。
参考图2,图2是本申请一实施例提出的光子计算神经网络运算加速方法的流程图。如图2所示,该方法包括以下步骤:
S11:通过FPGA芯片读取待处理图像,获得所述待处理图像的输入特征图像数据。
本实施例中,FPGA芯片中写入了深度卷积神经网络的程序,用于进行图像识别任务,在进行图像识别时,首先由FPGA芯片读取待处理图像,获得待处理图像的输入特征图像数据,并将输入特征图像数据存储在输入图像缓存区中。
示例地,输入图像是根据深度卷积神经网络执行的任务类型决定的,若深度神经网络执行的是人脸识别任务,则输入各种人物的面部图像,若深度神经网络执行的是图像分类任务,则输入多种类别的图像,用于图像分类。
S12:在进行每轮卷积运算之前,确定所述FPGA芯片中的卷积神经网络的当前轮次的输入特征图像参数与输出特征图像参数。
本实施例中,输入特征图像参数是卷积神经网络每一层卷积层进行运算时输入的图像的特征参数,输出图像特征参数是每一层卷积层进行运算时输出的图像特征参数,输入图像特征参数为输入特征图像的通道数(N),输出特征图像参数包括输出特征图像的行数(R)、输出特征图像的列数(C)、输出特征图像的通道数M。
本实施例中,,确定所述FPGA芯片中的卷积神经网络的当前轮次的输入特征图像参数与输出特征图像参数的具体步骤包括:
S12-1:确定所述卷积神经网络进行当前轮次计算所使用的卷积层。
本实施例中,参考图3,图3是一个典型深度卷积神经网络(YOLO)结构图,图中包括多个卷积层和最大池化层,图中的每一个卷积层的大小都不同,因此在进行每轮卷积运算之前,需要先确定当前轮次计算所使用的卷积层。
本实施例中,深度卷积神经网络中包含多个卷积层,这些卷积层的参数是预先设置好的,将图像输入深度卷积神经网络之后,每个卷积层会对输入的图像进行一次卷积运算,进行一次卷积运算后,将运算结输入下一个卷积层继续进行卷积运算,直至完成运算。
S12-2:确定所述卷积层的输入特征图像参数与输出特征图像参数。
本实施例中,卷积层的输入特征图像参数与输出特征图像参数是预设好的,在当前轮次计算所使用的卷积层确认之后,就可以确定该卷积层的输入特征图像参数和输出特征图像参数。
示例地,图3中的第一个卷积层的输出特征图像的通道数(M)为192,输入特征图像的通道数(N)为3,输出特征图像的行数(R)为112,输出特征图像的列数(C)为112。而第5层的(M,N,R,V)=(1024,1024,7,7)。
S13:根据所述输入特征图像参数与所述输出特征图像参数,将所述卷积神经网络的卷积核数据与所述输入特征图像数据分别传输到光子芯片的对应的驱动器中。
本实施例中,卷积神经网络的卷积核数据即卷积核的大小,卷积核数据用于深度卷积神经网络进行卷积计算,驱动器是驱动光子芯片运行并计算的器件,光子芯片上传输有两种驱动器,一种是热调制驱动器,通过温度控制驱动器运行,一种是电调制驱动器,通过电流控制驱动器运行。
本实施例中,热调制驱动器上的电极众多,只能采用温度控制的方式,因此热调制驱动器数据传输速率相对较低。电调制驱动器,可以使用电流以及高效的调制方式实现高速驱动,因此数据的传输速率相对较高。深度网络的卷积核数据在传统的卷积计算中,是发送至热调制驱动器中,通过电调制驱动器发送入光子芯片中进行计算,图像数据在传统的卷积计算中,是发送至电调制驱动器中,通过电调制驱动器发送入光子芯片中进行计算。在进行卷积运算时,需要通过卷积核遍历整个图像,卷积核的大小是预先确定好的,在进行卷积运算时,输入特征图像参数与输出特征图像参数决定了卷积核的遍历次数,遍历次数决定了将卷积核数据传输到光子芯片中的频率,若只通过热调制驱动器传输卷积核数据,在遍历次数过高的情况下,卷积核的传输速度就会跟不上光子芯片的运算速度,进而造成整个计算系统的计算速度较慢。因此,本申请实施例会根据输入特征图像参数与输出特征图像参数,将卷积神经网络的卷积核数据与图像数据传输到光子芯片的对应的驱动器中。
示例地,如图3所示,图3中在进行卷积计算时,卷积核需要遍历M×N遍,因此,当M×N很大时,将卷积核传输进光子芯片的频率就会很高。热调制驱动器可以使用MZM调制驱动器,电调制驱动器可以使用激光信号驱动器,并采用OKK调制方式,也可以使用任意符合要求的驱动器。
S14:通过所述光子芯片,根据所述卷积核数据与所述输入特征图像数据,对所述待处理图像进行卷积运算,将卷积运算结果发送至所述FPGA芯片中。
本实施例中,将卷积核数据与图像数据传输至光子芯片的对应的驱动器中之后,驱动器将卷积核数据与图像数据进行传输,传输为光子芯片可以接收的信号,发送至光子芯片中,光子芯片根据接收到的卷积核数据与图像数据,进行卷积运算,得到运算结果,将运算结果通过serdes接口返回至FPGA 芯片。
S15:通过所述FPGA芯片进行后续非线性运算,得到当前轮次运算结果。
本实施例中,光子芯片只负责卷积运算,不能进行后续非线性运算,因此需要通过FPGA芯片进行后续的非线性运算,以得到当前轮次的运算结果。后续非线性运算的具体计算内容与当前执行的图像识别任务相关。
示例地,根据执行的图像识别任务的不同,可以为归一化运算或最大池化运算。
S16:重复执行多轮卷积运算以及非线性运算,得到图像处理结果。
本实施例中,深度卷积神经网络会进行多轮卷积运算以及非线性运算,将每个轮次的计算结果,即输出特征图像数据继续发送至光子芯片中,进行下一轮卷积运算,当深度神经网络的每一层卷积层计算完成以及后续的非线性计算完成后,得到图像处理的结果。
在本申请另一个实施例中,根据所述输入特征图像参数与输出特征图像参数,将所述卷积神经网络的卷积核数据与所述输入特征图像数据分别传输到光子芯片的对应的驱动器中的具体步骤包括:
S21:根据所述输入特征图像参数与所述输出特征图像参数,确定输出特征图像尺寸与输入特征图像通道数。
本实施例中,输入特征图像参数包括了输入特征图像通道数,输出特征参数包括了输出特征图像行数,输出特征图像列数,输出特征图像通道数。对于每一个卷积层,输出特征图像尺寸为输出特征图像的行数与输出特征图像列数的乘积。
示例地,如图3所示,神经网络中每一个卷积层的输出特征图像尺寸为R×C,输出特征图像通道数为N。
S22:根据所述输出特征图像尺寸与所述输入特征图像通道数之间的大小关系,将所述卷积核数据与所述输入特征图像数据分别传输到所述光子芯片的对应的驱动器中。
本实施例中,根据所述输出特征图像尺寸与输入特征图像通道数之间的大小关系,将所述卷积核数据与所述输入特征图像数据分别传输到所述光子芯片的对应的驱动器中的具体步骤为:
S22-1:当所述输出特征图像尺寸大于或等于所述输入特征图像通道数时,将所述卷积核数据传输到所述光子芯片的热调制驱动器中,并将所述输入特征图像数据传输到所述光子芯片的电调制驱动器中。
本实施例中,在光子芯片进行卷积运算时,是通过卷积核遍历整个图像,光子芯片上的卷积核数据在遍历过程中会不断更新,因此需要从FPGA芯片中不断传输卷积核数据,神经网络卷积核的在进行卷积计算时的遍历次数为输出特征图像通道数与输入特征图像通道数的乘积,输出特征图像尺寸大于或等于输入特征图像通道数时,卷积核遍历次数M×N小等于M×R×C,此时热调制驱动器中的数据传输量小于电调制驱动器中的数据传输量,则继续使用传统的数据配置方式,将卷积核数据传输到热调制驱动器中,将图像数据传输到电调制驱动器中。
示例地,如图3所示,图3中的卷积神经网络的第一层的R×C=112×112=12544,N=3,则此时卷积核遍历次数M×N小等于M×R×C,则采用传统的数据配置方式。
S22-2:当所述输出特征图像尺寸小于所述输入特征图像通道数时,对所述卷积核数据与所述输入特征图像数据进行互换读取,得到互换后的卷积核数据与互换后的图像数据。
本实施例中,对于每一层卷积运算,卷积核与特征图像的配置方式是可以改变的,因为卷积是对两者进行一中求积运算,所以将卷积核数据与图像数据传输的驱动器进行改变,不影响计算结果,因此,当输出特征图像尺寸小于输入特征图像通道数时,此时,卷积核的遍历次数M×N大于M×R×C,则卷积核的遍历次数过大,卷积核数据的更新次数就过大,热调制驱动器中的数据更新量大于电调制驱动器中的数据更新量,但热调制驱动器的数据传输速度远慢于电调制驱动器,因而FPGA芯片的数据传输速度就限制了光子芯片的计算速度,此时需要对卷积核数据与图像数据进行互换读取,得到互换后的卷积核数据与互换后的图像数据,具体步骤包括:
S22-2-1:从所述FPGA芯片的卷积核缓存区中读取所述卷积核数据,将所述卷积核数据作为所述互换后的图像数据。
S22-2-2:从所述FPGA芯片的输入图像缓存区读取所述输入特征图像数据,将所述输入特征图像数据作为所述互换后的卷积核数据。
本实施例中,当输出特征图像尺寸小于输入特征图像通道数时,从FPGA芯片的卷积核缓存区读取卷积核数据,将其作为互换后的图像数据,从FPGA芯片的输入图形缓存区读取图像数据,将图像数据作为互换后的卷积核数据。
S22-3:将所述互换后的卷积核数据传输到所述热调制驱动器中,将所述互换后的图像数据传输到所述电调制驱动器中。
本实施例中,卷积核数据与图像数据在光子芯片中是进行卷积运算,互换之后不影响最终的计算结果,但将互换后的卷积核数据(实际是图像数据)传输至热调制驱动器,将互换后的图像数据(实际是卷积核数据)传输到电调制驱动器后,电调制驱动器的调制速度更加快,处理卷积核数据的速度更快,而当M×N大于M×R×C时,通过电调制驱动器来更新卷积核数据,明显数据的传输速度更快,进而提升了FPGA芯片向光子芯片传输数据的速度,提升了卷积运算的速度。
在本申请另一个实施例中,提出的了一种光子计算卷积运算的伪代码:for (row=0; row<R; row++) {
for (col=0; col<C; col++) {
for (to=0; to<M; to++) {
for (ti=0; ti<N; ti++) {
if (N > R*C) {
// 交换weights与input_fmap的顺序
input_fmap_1[to][ti] = weights[to][ti];
weights_1[ti][row][col]= input_fmap[ti][row][col];
} else {
input_fmap_1[to][ti] = input_fmap[to][ti];
weights_1[ti][row][col]=
weights[ti][row][col];
}
for (i=0; i<K; i++) {
for (j=0; j<K; j++) {
output_fmap[to][row][col] +=
input_fmap_1[to][ti][i][j]*
weights_1[ti][row+i][col+j];
}}}}}}
上述代码表示,当R×C<N时,在读取数据时,将卷积核数据(weights)和输入特征图像(input_fmap)数据进行互换读取。在每次对卷积核数据进行更新时,固定卷积层的特征图像的行(row),列(col)以及输入特征图像的通道号(ti)。互换后的卷积核为(weights_1[ti][row+i][col+j]),互换后的输入特征图像为input_fmap_1[to][ti][i][j],计算出的输出特征图像为output_fmap[to][row][col]。其中i为行遍历的次数,j为列遍历的次数。
当R×C≥N时,仍然采用传统的卷积运算形式配置卷积核(weights)数据与输入特征图像(input_fmap)数据。
示例地,以图3中的深度卷积神经网络的第5层卷积层为例,采用本实施例提出的可变的配置方式后,当R×C<N时,卷积核所需的更新频率从M×N变为M×R×C,热调制驱动器中的数据更新频率相较于传统的配置方式降低了N/(R×C)=1024/(7×7)≈21倍。
本申请实施例中,利用了光子计算深度卷积神经网络的特征,将卷积核数据与输入特征图像数据灵活配置在对应的驱动器上,减少了数据传输速度较慢的热调制驱动器的上数据的更新频率,使得传输速度较快的电调制驱动器承担更多的数据传输任务,保证了FPGA芯片与光子芯片之间的数据传输速度,大大提升了光子计算深度卷积神经网络的卷积计算的整体速度。
在本申请的另一个实施例中,通过所述FPGA芯片进行后续非线性运算,得到当前轮次运算结果,包括:
S31:将所述卷积运算结果发送至所述FPGA芯片的非线性计算单元中。
S32:通过所述非线性计算单元,根据所述卷积神经网络执行的图像识别任务,进行后续的非线性计算,得到所述当前轮次运算结果。
本实施例中,在每一轮次卷积运算之后,非线性计算单元对接收到的输出特征图像进行非线性计算,非线性计算单元根据任务的不同,进行不同的非线性计算,得到当前轮次运算结果,即当前轮次的输出特征图像数据。
在本申请的另一个实施例中,所述方法还包括:
S41:将所述当前轮次运算结果存储至所述FPGA芯片的内部缓存中。
S42:在下一轮次卷积运算开始时,从所述内部缓存中读取所述当前轮次运算结果,用于下一轮次卷积运算。
本实施例中,当前轮次计算结果即当前轮次输出的特征图像数据,在下一轮次卷积运算开始时,从内部缓存中读取特征图像数据,将其输入光子芯片中继续进行卷积运算,直至整个卷积计算完成。
基于同一发明构思,本申请一实施例提供一种光子计算神经网络运算加速装置。参考图4,图4是本申请一实施例提出的光子计算神经网络运算加速装置400的示意图。如图4所示,该装置包括:
图像读取模块401,用于通过FPGA芯片读取待处理图像,获得所述待处理图像的输入特征图像数据;
特征图像参数确定模块402,用于在进行每轮卷积运算之前,确定所述FPGA芯片中的卷积神经网络的当前轮次的输入特征图像参数与输出特征图像参数;
数据配置模块403,用于根据所述输入特征图像参数与所述输出特征图像参数,将所述卷积神经网络的卷积核数据与所述输入特征图像数据分别传输到光子芯片的对应的驱动器中;
卷积运算模块404,用于通过所述光子芯片,根据所述卷积核数据与所述输入特征图像数据,对所述待处理图像进行卷积运算,将卷积运算结果发送至所述FPGA芯片中;
非线性运算模块405,用于通过所述FPGA芯片进行后续非线性运算,得到当前轮次运算结果;
结果获得模块406,用于重复执行多轮卷积运算以及非线性运算,得到图像处理结果。
可选地,所述特征图像参数确定模块包括:
卷积层确定子模块,用于确定所述卷积神经网络进行当前轮次计算所使用的卷积层;
特征图像参数确定子模块,用于确定所述卷积层的输入特征图像参数与输出特征图像参数。
可选地,所述数据配置模块包括:
参数确定子模块,用于根据所述输入特征图像参数与所述输出特征图像参数,确定输出特征图像尺寸与输入特征图像通道数;
第一数据配置子模块,用于根据所述输出特征图像尺寸与所述输入特征图像通道数之间的大小关系,将所述卷积核数据与所述输入特征图像数据分别传输到所述光子芯片的对应的驱动器中。
可选地,所述第一数据配置子模块包括:
第二数据配置子模块,用于当所述输出特征图像尺寸大于或等于所述输入特征图像通道数时,将所述卷积核数据传输到所述光子芯片的热调制驱动器中,并将所述输入特征图像数据传输到所述光子芯片的电调制驱动器中。
互换读取子模块,用于当所述输出特征图像尺寸小于所述输入特征图像通道数时,对所述卷积核数据与所述输入特征图像数据进行互换读取,得到互换后的卷积核数据与互换后的输入特征图像数据;
第三数据配置子模块,用于将所述互换后的卷积核数据传输到所述热调制驱动器中,将所述互换后的输入特征图像数据传输到所述电调制驱动器中。
可选地,所述互换读取子模块包括:
第一读取子模块,用于从所述FPGA芯片的卷积核缓存区中读取所述卷积核数据,将所述卷积核数据作为所述互换后的输入特征图像数据;
第二读取子模块,用于从所述FPGA芯片的输入图像缓存区读取所述输入特征图像数据,将所述输入特征图像数据作为所述互换后的卷积核数据。
可选地,所述非线性计算模块包括:
数据发送子模块,用于将所述卷积运算结果发送至所述FPGA芯片的非线性计算单元中;
当前轮次运算结果获得子模块,用于通过所述非线性计算单元,根据所述卷积神经网络执行的图像识别任务,进行后续的非线性计算,得到所述当前轮次运算结果。
可选地,所述方法还包括:
结果存储子模块,用于将所述当前轮次运算结果存储至所述FPGA芯片的内部缓存中;
结果读取子模块,用于在下一轮次卷积运算开始时,从所述内部缓存中读取所述当前轮次运算结果,用于下一轮次卷积运算。
基于同一发明构思,本申请另一实施例提供一种可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本申请上述任一实施例所述的光子计算神经网络运算加速方法中的步骤。
基于同一发明构思,本申请另一实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行时实现本申请上述任一实施例所述的光子计算神经网络运算加速方法中的步骤。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本申请实施例可提供为方法、装置、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请实施例是参照根据本申请实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本申请所提供的光子计算神经网络运算加速方法、装置、设备及存储介质,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种光子计算神经网络运算加速方法,其特征在于,所述方法包括:
通过FPGA芯片读取待处理图像,获得所述待处理图像的输入特征图像数据;
在进行每轮卷积运算之前,确定所述FPGA芯片中的卷积神经网络的当前轮次的输入特征图像参数与输出特征图像参数;
根据所述输入特征图像参数与所述输出特征图像参数,将所述卷积神经网络的卷积核数据与所述输入特征图像数据分别传输到光子芯片的对应的驱动器中;
通过所述光子芯片,根据所述卷积核数据与所述输入特征图像数据,对所述待处理图像进行卷积运算,将卷积运算结果发送至所述FPGA芯片中;
通过所述FPGA芯片进行后续非线性运算,得到当前轮次运算结果;
重复执行多轮卷积运算以及非线性运算,得到图像处理结果。
2.根据权利要求1所述的方法,其特征在于,确定所述FPGA芯片中的卷积神经网络的当前轮次的输入特征图像参数与输出特征图像参数,包括:
确定所述卷积神经网络进行当前轮次计算所使用的卷积层;
确定所述卷积层的输入特征图像参数与输出特征图像参数。
3.根据权利要求1所述的方法,其特征在于,根据所述输入特征图像参数与所述输出特征图像参数,将所述卷积神经网络的卷积核数据与所述输入特征图像数据分别传输到光子芯片的对应的驱动器中,包括:
根据所述输入特征图像参数与所述输出特征图像参数,确定输出特征图像尺寸与输入特征图像通道数;
根据所述输出特征图像尺寸与所述输入特征图像通道数之间的大小关系,将所述卷积核数据与所述输入特征图像数据分别传输到所述光子芯片的对应的驱动器中。
4.根据权利要求3所述的方法,其特征在于,根据所述输出特征图像尺寸与所述输入特征图像通道数之间的大小关系,将所述卷积核数据与所述输入特征图像数据分别传输到所述光子芯片的对应的驱动器中,包括:
当所述输出特征图像尺寸大于或等于所述输入特征图像通道数时,将所述卷积核数据传输到所述光子芯片的热调制驱动器中,并将所述输入特征图像数据传输到所述光子芯片的电调制驱动器中;
当所述输出特征图像尺寸小于所述输入特征图像通道数时,对所述卷积核数据与所述输入特征图像数据进行互换读取,得到互换后的卷积核数据与互换后的输入特征图像数据;
将所述互换后的卷积核数据传输到所述热调制驱动器中,将所述互换后的输入特征图像数据传输到所述电调制驱动器中。
5.根据权利要求4所述的方法,其特征在于,对所述卷积核数据与所述输入特征图像数据进行互换读取,得到互换后的卷积核数据与互换后的输入特征图像数据,包括:
从所述FPGA芯片的卷积核缓存区中读取所述卷积核数据,将所述卷积核数据作为所述互换后的输入特征图像数据;
从所述FPGA芯片的输入图像缓存区读取所述输入特征图像数据,将所述输入特征图像数据作为所述互换后的卷积核数据。
6.根据权利要求1所述的方法,其特征在于,通过所述FPGA芯片进行后续非线性运算,得到当前轮次运算结果,包括:
将所述卷积运算结果发送至所述FPGA芯片的非线性计算单元中;
通过所述非线性计算单元,根据所述卷积神经网络执行的图像识别任务,进行后续的非线性计算,得到所述当前轮次运算结果。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
将所述当前轮次运算结果存储至所述FPGA芯片的内部缓存中;
在下一轮次卷积运算开始时,从所述内部缓存中读取所述当前轮次运算结果,用于下一轮次卷积运算。
8.一种光子计算神经网络运算加速装置,其特征在于,所述装置包括:
图像读取模块,用于通过FPGA芯片读取待处理图像,获得所述待处理图像的输入特征图像数据;
特征图像参数确定模块,用于在进行每轮卷积运算之前,确定所述FPGA芯片中的卷积神经网络的当前轮次的输入特征图像参数与输出特征图像参数;
数据配置模块,用于根据所述输入特征图像参数与所述输出特征图像参数,将所述卷积神经网络的卷积核数据与所述输入特征图像数据分别传输到光子芯片的对应的驱动器中;
卷积运算模块,用于通过所述光子芯片,根据所述卷积核数据与所述输入特征图像数据,对所述待处理图像进行卷积运算,将卷积运算结果发送至所述FPGA芯片中;
非线性运算模块,用于通过所述FPGA芯片进行后续非线性运算,得到当前轮次运算结果;
结果获得模块,用于重复执行多轮卷积运算以及非线性运算,得到图像处理结果。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时,实现如权利要求1至7任一所述的方法中的步骤。
10.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时,实现如权利要求1至7任一所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210515058.4A CN114626011B (zh) | 2022-05-12 | 2022-05-12 | 光子计算神经网络运算加速方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210515058.4A CN114626011B (zh) | 2022-05-12 | 2022-05-12 | 光子计算神经网络运算加速方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114626011A true CN114626011A (zh) | 2022-06-14 |
CN114626011B CN114626011B (zh) | 2022-08-09 |
Family
ID=81906963
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210515058.4A Active CN114626011B (zh) | 2022-05-12 | 2022-05-12 | 光子计算神经网络运算加速方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114626011B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116756472A (zh) * | 2023-08-17 | 2023-09-15 | 深圳云天励飞技术股份有限公司 | 卷积算子计算装置及方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109254350A (zh) * | 2018-10-26 | 2019-01-22 | 上海交通大学 | 平铺型光子神经网络卷积层芯片 |
CN112699917A (zh) * | 2020-12-11 | 2021-04-23 | 北京信息科技大学 | 一种非线性光学卷积神经网络的图像识别方法 |
WO2021216282A1 (en) * | 2020-04-21 | 2021-10-28 | University Of Washington | Phase-change metasurface for programmable waveguide mode conversion |
US20210382516A1 (en) * | 2018-11-22 | 2021-12-09 | Nanjing University | Photoelectric computing unit, photoelectric computing array, and photoelectric computing method |
US20220012013A1 (en) * | 2020-07-10 | 2022-01-13 | International Business Machines Corporation | Photonic in-memory co-processor for convolutional operations |
CN114389704A (zh) * | 2021-12-15 | 2022-04-22 | 光子集成(温州)创新研究院 | 一种基于mzi-mrr结构的微波光子滤波器 |
CN114462587A (zh) * | 2022-02-10 | 2022-05-10 | 电子科技大学 | 一种用于光电混合计算神经网络的fpga实现方法 |
-
2022
- 2022-05-12 CN CN202210515058.4A patent/CN114626011B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109254350A (zh) * | 2018-10-26 | 2019-01-22 | 上海交通大学 | 平铺型光子神经网络卷积层芯片 |
US20210382516A1 (en) * | 2018-11-22 | 2021-12-09 | Nanjing University | Photoelectric computing unit, photoelectric computing array, and photoelectric computing method |
WO2021216282A1 (en) * | 2020-04-21 | 2021-10-28 | University Of Washington | Phase-change metasurface for programmable waveguide mode conversion |
US20220012013A1 (en) * | 2020-07-10 | 2022-01-13 | International Business Machines Corporation | Photonic in-memory co-processor for convolutional operations |
CN112699917A (zh) * | 2020-12-11 | 2021-04-23 | 北京信息科技大学 | 一种非线性光学卷积神经网络的图像识别方法 |
CN114389704A (zh) * | 2021-12-15 | 2022-04-22 | 光子集成(温州)创新研究院 | 一种基于mzi-mrr结构的微波光子滤波器 |
CN114462587A (zh) * | 2022-02-10 | 2022-05-10 | 电子科技大学 | 一种用于光电混合计算神经网络的fpga实现方法 |
Non-Patent Citations (1)
Title |
---|
陈宏伟等: "光子神经网络发展与挑战", 《中国激光》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116756472A (zh) * | 2023-08-17 | 2023-09-15 | 深圳云天励飞技术股份有限公司 | 卷积算子计算装置及方法 |
CN116756472B (zh) * | 2023-08-17 | 2024-03-29 | 深圳云天励飞技术股份有限公司 | 卷积算子计算装置及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN114626011B (zh) | 2022-08-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11593594B2 (en) | Data processing method and apparatus for convolutional neural network | |
CN108416436A (zh) | 使用多核心处理模块进行神经网络划分的方法及其系统 | |
CN109871510B (zh) | 二维卷积运算处理方法、系统、设备及计算机存储介质 | |
EP0942377A1 (en) | Method for performing all-to-all communication in parallel computers | |
CN109871871B (zh) | 基于光学神经网络结构的图像识别方法、装置及电子设备 | |
CN109919315A (zh) | 一种神经网络的前向推理方法、装置、设备及存储介质 | |
CN114626011B (zh) | 光子计算神经网络运算加速方法、装置、设备及存储介质 | |
CN111898737B (zh) | 一种图像转脉冲的方法及装置 | |
CN108304926B (zh) | 一种适用于神经网络的池化计算装置及方法 | |
CN110796251A (zh) | 基于卷积神经网络的图像压缩优化方法 | |
CN111831359B (zh) | 权重精度配置方法、装置、设备及存储介质 | |
CN111914213B (zh) | 一种稀疏矩阵向量乘运算时间预测方法及系统 | |
CN101783719B (zh) | 一种速率匹配和解速率匹配方法、装置和通信系统 | |
CN111563262A (zh) | 一种基于可逆深度神经网络的加密方法及系统 | |
CN109858622B (zh) | 深度学习神经网络的数据搬运电路和方法 | |
CN111831354A (zh) | 数据精度配置方法、装置、芯片、芯片阵列、设备及介质 | |
US20220113944A1 (en) | Arithmetic processing device | |
CN113890795B (zh) | 大规模mimo信道估计模型的构建方法、装置及介质 | |
CN104581357B (zh) | Fpga内适用于图像抽取的缓存逻辑方法 | |
CN114254740B (zh) | 卷积神经网络加速计算方法、计算系统、芯片及接收机 | |
CN107483868A (zh) | Vbo信号的处理方法、fpga及激光电视 | |
CN104050635A (zh) | 一种模板尺寸可变的图像非线性滤波实时处理系统及方法 | |
CN111179369A (zh) | 一种基于安卓系统的gpu渲染方法及装置 | |
CN113204372B (zh) | 存储受限型哈希算法的加速装置及方法 | |
CN111445019B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |