CN114118389B - 神经网络数据处理方法、设备及存储介质 - Google Patents
神经网络数据处理方法、设备及存储介质 Download PDFInfo
- Publication number
- CN114118389B CN114118389B CN202210103770.3A CN202210103770A CN114118389B CN 114118389 B CN114118389 B CN 114118389B CN 202210103770 A CN202210103770 A CN 202210103770A CN 114118389 B CN114118389 B CN 114118389B
- Authority
- CN
- China
- Prior art keywords
- neural network
- meta
- data processing
- information
- data
- 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.)
- Active
Links
Images
Classifications
-
- 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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Evolutionary Computation (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Biophysics (AREA)
- Molecular Biology (AREA)
- Life Sciences & Earth Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Health & Medical Sciences (AREA)
- Image Analysis (AREA)
Abstract
本发明公开了一种神经网络数据处理方法、设备及存储介质,应用于神经网络数据处理装置的主控处理器,所述神经网络数据处理装置包括主控处理器和实时处理器,所述实时处理器包括推理运算模块,该方法包括:获取神经网络的多个神经网络算子;根据多个神经网络算子以及预设推理引擎规则依次生成神经网络对应的至少一个元信息;将元信息依次存储在数据缓冲区。本发明通过主控处理器获取神经网络算子并根据神经网络算子生成至少一个元信息,并将元信息存储在数据缓冲区,以供实时处理器可直接根据元信息生成寄存器序列,进而根据寄存器序列进行运算,而无需主控处理器向实时处理器传输寄存器序列,减少了数据传销开销,从而提高了推理运算的效率。
Description
技术领域
本发明涉及互联网技术领域,尤其涉及神经网络数据处理方法、设备及存储介质。
背景技术
随着深度学习的快速发展,卷积神经网络已经大量应用于机器视觉应用,例如图像识别与图像分类。 然而,卷积神经网络的算法复杂度导致其推理运行时间过长,阻碍了卷积神经网络在日常应用中的部署。为了减少卷积神经网络的推理时间,硬件在设计上会进行改进优化,以期望达到最佳性能。硬件在设计上的改进优化方式多种多样,比较典型的一种方式是在推理引擎中增加一个专用实时处理器,如图1所示,图1示出了现有的神经网络数据处理装置的结构示意图,该专用实时处理器和主控处理器通过软件协议进行通信,专用实时处理器访问推理引擎的延迟比主控处理器更小,从而达到加速推理的效果。
在构思及实现本申请过程中,发明人发现至少存在如下问题:随着深度学习模型的深度上的加深以及结构上的复杂,上述的改进方式在寄存器序列长度很长的时候,容易导致额外的数据传输开销,进而导致延长推理时间,推理的效率低。
上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
发明内容
本发明的主要目的在于提供一种神经网络数据处理方法、设备及存储介质,旨在减少数据传销开销以及推理时间以提高推理的效率。
为实现上述目的,本发明提供一种神经网络数据处理方法,应用于神经网络数据处理装置的主控处理器,所述神经网络数据处理装置包括主控处理器和实时处理器,所述实时处理器包括推理运算模块,所述神经网络数据处理方法的步骤包括:
获取神经网络的多个神经网络算子;
根据多个所述神经网络算子以及预设推理引擎规则依次生成所述神经网络对应的至少一个元信息;
将所述元信息依次存储在数据缓冲区,以供所述实时处理器从所述数据缓冲区依次获取所述元信息,并根据所述元信息依次生成寄存器序列以及控制所述推理运算模块根据所述寄存器序列进行运算。
可选地,所述根据多个所述神经网络算子以及预设推理引擎规则依次生成所述神经网络对应的至少一个元信息的步骤包括:
获取神经网络当前层的当前神经网络算子;
根据所述当前神经网络算子获取与所述当前神经网络算子匹配的待融合神经网络算子;
将所述当前神经网络算子以及所述待融合神经网络算子进行融合以得到融合后的当前神经网络算子;
根据融合后的当前神经网络算子生成所述神经网络当前层的元信息;
将神经网络下一层作为神经网络当前层,返回获取神经网络当前层的当前神经网络算子的步骤,直至完成对神经网络所有层的神经网络算子的获取。
可选地,所述元信息包括数据加载顺序、数据源地址、数据目标地址、加载数据量、加载模式的至少一种。
此外,为实现上述目的,本发明还提供一种神经网络数据处理方法,应用于神经网络数据处理装置的实时处理器,所述神经网络模型处理方法的步骤包括:
在检测到数据缓冲区存储有元信息时,提取神经网络当前层的元信息;
根据所述元信息生成神经网络当前层的寄存器序列;
控制推理运算模块根据所述寄存器序列进行运算,得到所述神经网络当前层的运算结果数据。
可选地,所述寄存器序列包括DMA搬运顺序、DMA控制信息以及推理运算模块的状态信息的至少一个。
可选地,所述根据所述元信息生成神经网络当前层的寄存器序列的步骤包括:
根据所述寄存器序列加载所述神经网络当前层对应的运算参数,所述运算参数包括神经网络当前层对应的权值数据、偏置数据以及运算图数据;
控制推理运算模块基于所述运算参数进行运算,以获取神经网络当前层的运算结果数据。
可选地,数据加载方式为DMA传输方式。
可选地,所述运算参数包括神经网络当前层的权值数据、偏置数据以及运算图数据。
可选地,所述控制推理运算模块根据所述寄存器序列进行运算,得到所述神经网络当前层的运算结果数据的步骤之后,还包括:
存储所述神经网络当前层的运算结果数据;
将神经网络下一层作为神经网络当前层,返回加载神经网络当前层的元信息的步骤,直至完成神经网络所有层的元信息的加载。
此外,为实现上述目的,本发明还提供一种神经网络数据处理设备,所述神经网络数据处理设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的神经网络数据处理程序,所述神经网络数据处理程序被所述处理器执行时实现如上所述的神经网络数据处理方法的步骤。
此外,为实现上述目的,本发明还提供一种存储介质,所述存储介质上存储有神经网络数据处理程序,所述神经网络数据处理程序被处理器执行时实现如上任一项所述的神经网络数据处理方法的步骤。
本发明实施例提出的一种神经网络数据处理方法,通过主控处理器根据神经网络获取多个神经网络算子,根据所述神经网络算子生成所述神经网络所有层分别对应的元信息,依次将所述元信息存储在数据缓冲区,以供实时处理器可根据所述元信息依次生成神经网络每一层对应的寄存器序列,进而根据所述寄存器序列分别对神经网络每一层进行运算,本申请实施例的主控处理器只需传输元信息,在复杂网络模型的情况下,能够大大减少主控处理器和实时处理器之间传输的数据量,由于传输的数据量小了很多,所以传输数据需要的时间也大大减少了,所以减少了推理的时间,从而提高了运算效率。
附图说明
图1为现有的神经网络数据处理装置的结构示意图;
图2是本发明实施例方案涉及的硬件运行环境的设备结构示意图;
图3为本发明神经网络数据处理方法第一实施例的流程示意图;
图4为神经网络数据处理装置的结构示意图;
图5为本发明神经网络数据处理方法第一实施例步骤S20的细化流程示意图;
图6为本发明神经网络数据处理方法第二实施例的流程示意图;
图7为本发明神经网络数据处理方法第二实施例步骤S60的细化流程示意图;
图8为本发明神经网络数据处理方法第二实施例的流程示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例的主要解决方案是:获取神经网络的多个神经网络算子;根据多个所述神经网络算子以及预设推理引擎规则依次生成所述神经网络对应的至少一个元信息;将所述元信息依次存储在数据缓冲区,以供所述实时处理器从所述数据缓冲区依次获取所述元信息,并根据所述元信息依次生成寄存器序列以及控制所述推理运算模型根据所述寄存器序列进行运算。
如图2所示,图2是本发明实施例方案涉及的硬件运行环境的设备结构示意图。
本发明实施例设备可以是PC,也可以是智能手机、平板电脑、便携计算机等终端设备。
如图2所示,该设备可以包括:处理器1001,例如CPU,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的装置结构并不构成对装置的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图2所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及神经网络数据处理程序。
在图2所示的终端中,网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;用户接口1003主要用于连接客户端(用户端),与客户端进行数据通信;而处理器1001可以用于调用存储器1005中存储的神经网络数据处理程序,并执行以下操作:
获取神经网络的多个神经网络算子;
根据多个所述神经网络算子以及预设推理引擎规则依次生成所述神经网络对应的至少一个元信息;
将所述元信息依次存储在数据缓冲区,以供所述实时处理器从所述数据缓冲区依次获取所述元信息,并根据所述元信息依次生成寄存器序列以及控制所述推理运算模型根据所述寄存器序列进行运算。
进一步地,处理器1001可以调用存储器1005中存储的神经网络数据处理程序,还执行以下操作:
获取神经网络当前层的当前神经网络算子;
根据所述当前神经网络算子获取与所述当前神经网络算子匹配的待融合神经网络算子;
将所述当前神经网络算子以及所述待融合神经网络算子进行融合以得到融合后的当前神经网络算子;
根据融合后的当前神经网络算子生成所述神经网络当前层的元信息;
将神经网络下一层作为神经网络当前层,返回获取神经网络当前层的当前神经网络算子的步骤,直至完成对神经网络所有层的神经网络算子的获取。
进一步地,处理器1001可以调用存储器1005中存储的神经网络数据处理程序,还执行以下操作:
在检测到数据缓冲区存储有元信息时,加载神经网络当前层的元信息;
根据所述元信息生成神经网络当前层的寄存器序列;
控制推理运算模块根据所述寄存器序列进行运算,得到所述神经网络当前层的运算结果数据。
进一步地,处理器1001可以调用存储器1005中存储的神经网络数据处理程序,还执行以下操作:
根据所述寄存器序列加载所述神经网络当前层对应的运算参数,所述运算参数包括神经网络当前层对应的权值数据、偏置数据以及运算图数据;
控制推理运算模块基于所述运算参数进行运算,以获取神经网络当前层的运算结果数据。
进一步地,处理器1001可以调用存储器1005中存储的神经网络数据处理程序,还执行以下操作:
存储所述神经网络当前层的运算结果数据;
将神经网络下一层作为神经网络当前层,返回加载神经网络当前层的元信息的步骤,直至完成神经网络所有层的元信息的加载。
第一实施例
参照图3,本发明神经网络数据处理方法第一实施例提供一种神经网络数据处理方法,所述神经网络数据处理方法包括:
步骤S10,获取神经网络的多个神经网络算子;
步骤S20,根据多个所述神经网络算子以及预设推理引擎规则依次生成所述神经网络对应的至少一个元信息;
步骤S30,将所述元信息依次存储在数据缓冲区,以供所述实时处理器从所述数据缓冲区依次获取所述元信息,并根据所述元信息依次生成寄存器序列以及控制所述推理运算模型根据所述寄存器序列进行运算。
在本实施例中,所述神经网络数据处理方法应用于神经网络数据处理装置的主控处理器,参照图4,图4示出了神经网络数据处理装置的结构示意图。
可选地,所述神经网络数据处理装置包括主控处理器和实时处理器,所述主控处理器和所述实时处理器连接,所述主控处理器用于生成神经网络模型的至少一个元信息,将各个所述元信息依次存储在数据缓冲区,所述实时处理器包括寄存器序列生成模块,用于根据所述元信息生成对应的寄存器序列;所述实时处理器还包括推理运算模块,所述推理运算模块与所述寄存器序列生成模块连接,所述寄存器序列生成模块生成所述寄存器序列后,将所述寄存器序列配置至所述推理运算模块,以供所述推理运算模块根据所述寄存器序列进行运算。
可选地,所述神经网络数据处理装置还包括片外ddr,所述片外ddr用于存储Coefficient、bias、feature map等推理需要的数据以及一些中间结果;所述神经网络处理装置还包括DMA,所述DMA用于从片外ddr加载推理运算所需的运算参数,以及用于将推理运算模块运算得出的运算结果数据写到所述片外ddr。
可选地,在实际处理过程中,所述神经网络为神经网络模型,所述神经网络模型可以是CNN模型、RNN模型以及其他模型的至少一种,所述主控处理器加载所述神经网络,并解析所述神经网络,以获取所述神经网络模型对应的多个神经网络算子,可选地,在一实施例中,在神经网络模型中,一个神经网络模型中包括多个算法指令,一个算法指令中包括多个神经网络算子,所述神经网络算子信息包括运算符号、运算参数、多个算子之间的连接关系等等。
可选地,在获取所述神经网络的多个神经网络算子后,根据多个所述神经网络算子以及预设推理引擎规则依次生成所述神经网络模型对应的至少一个元信息,所述元信息包括所述神经网络每一层对应的元信息,每一层对应的元信息均不相同。
可选地,参照图5,所述步骤S20包括:
步骤S21,获取神经网络当前层的当前神经网络算子;
步骤S22,根据所述当前神经网络算子获取与所述当前神经网络算子匹配的待融合神经网络算子;
步骤S23,将所述当前神经网络算子以及所述待融合神经网络算子进行融合以得到融合后的当前神经网络算子;
步骤S24,根据融合后的当前神经网络算子生成所述神经网络当前层的元信息;
步骤S25,将神经网络下一层作为神经网络当前层,返回获取神经网络当前层的当前神经网络算子的步骤,直至完成对神经网络所有层的神经网络算子的获取。
可选地,神经网络包括多层结构,每层结构对应至少一个神经网络算子。
可选地,所述神经网络当前层可以是所述神经网络模型的第一层,所述当前神经网络算子为第一层的神经网络算子,获取与所述当前神经网络算子匹配的待融合神经网络算子,所述待融合神经网络算子可以与所述当前神经网络算子处于同一层结构,和/或不处于同一层结构中,所述待融合神经网络算子可以包括至少一个神经网络算子。
可选地,获取与所述当前神经网络算子匹配的待融合神经网络算子的方式可以是判断除所述当前神经网络算子以外的其他神经网络算子是否能与所述当前神经网络算子融合,若是,则将能与所述当前神经网络算子融合的其他神经网络算子确定为所述待融合神经网络算子。
可选地,在获取所述待融合神经网络算子后,将所述当前神经网络算子以及所述待融合神经网络算子进行融合以得到融合后的当前神经网络算子。
可选地,在获取融合后的所述当前神经网络算子后,将融合后的所述当前神经网络算子确定为所述神经网络当前层的当前神经网络算子,根据预设推理引擎规则获取所述当前神经网络算子生成所述神经网络当前层的元信息,可选地,所述预设推理引擎规则根据硬件推理引擎确定。
可选地,将神经网络下一层作为神经网络当前层,返回执行获取神经网络当前层的当前神经网络算子的步骤,直至完成对神经网络所有层的神经网络算子的获取。
可选地,所述元信息用于实时处理器根据所述元信息获取输入数据,不同层网络对应的算法不同,进而不同层对应的元信息也不相同。
可选地,所述元信息包括数据加载顺序、数据地址、加载数据量、加载模式的至少一种。
可选地,所述数据加载顺序为不同数据类型的输入数据加载顺序,例如,所述数据加载顺序可以是“s-reg bias relu-reg coef input output”;所述数据地址为输入数据的存储地址,所述数据加载量为所述数据的大小。
可选地,所述元信息还可以包括CAISA特性相关的控制描述信息。
可选地,在获取神经网络当前层的元信息后,将所述元信息存储在数据缓冲区,其中,所述数据缓冲区由所述实时处理器的TCM存储器组成,所述主控处理器生成神经网络当前层的元信息后,所述元信息写在片外ddr上,所述主控处理器从所述片外ddr读取所述元信息,并将所述元信息存储在所述TCM存储器中,以供实时处理器直接读取所述TCM存储器中的元信息,进而根据元信息依次生成所述神经网络每一层对应的寄存器序列,进而将所述每一层对应的寄存器序列依次配置至所述推理运算模块,以供所述推理运算模型根据每一层对应的寄存器序列计算得出每一层的运算结果。可以理解的是,由于元信息的数据量远远小于寄存器序列的数据量,本申请实施例只需从片外ddr读取或写入元信息,大大减少了片外ddr读写的带宽压力。
可选地,所述推理运算模块可以包括CAISA推理引擎。
具体地,所述主控处理器与所述实时处理器是并行运行的。神经网络每一层的运算由推理运算模块完成,当所述主控处理器将神经网络当前层的元信息输出至所述数据缓冲区后,所述实时处理器实时从所述数据缓冲区获取所述元信息,根据所述元信息生成对应的寄存器序列,并根据所述寄存器序列对神经网络当前层进行计算,但是神经网络当前层运算所需时间通过大于主控处理器生成一层的元信息所需时间,因此,但所述实时处理器在对神经网络当前层进行计算时,所述主控处理器继续获取神经网络下一层的神经网络算子,进而生成对应的元信息,即,神经网络当前层的数据运算与神经网络下一层的元信息的生成同步进行,也即,推理运算模块的运行与元信息的生成并行处理,从而减少了计算引擎和数据等待的空闲时间,提高了神经网络运算过程中的数据吞吐率。
在本申请实施例中,通过设置主控处理器以及实时处理器,在神经网络运算过程中,所述主控处理器解析所述神经网络模型,以获取所述神经网络模型对应的多个网络算子,进而将神经网络第一层确定为神经网络当前层,以获取神经网络当前层的当前神经网络算子,并获取与所述当前神经网络算子能够融合的待融合算子,进而将所述当前神经网络算子与所述待融合算子进行融合,以生成所述神经网络当前层对应的融合后的当前神经网络算子,根据融合后的所述当前神经网络算子以及预设推理引擎规则生成神经网络当前层的元信息,在生成所述神经网络当前层的元信息后,将所述元信息存储在数据缓冲区,进而将神经网络下一层作为神经网络当前层,生成神经网络下一层对应的元信息,将神经网络下一层对应的元信息存储在数据缓冲区,直至完成所述神经网络模型所有层的算子的获取,本申请实施例的主控处理器只需传输元信息,在复杂网络模型的情况下,能够大大减少主控处理器和实时处理器之间传输的数据量,由于传输的数据量小了很多,所以传输数据需要的时间也大大减少了,所以减少了推理的时间,从而提高了运算效率。
第二实施例
参照图6,图6示出了神经网络数据处理方法的第二实施例,所述神经网络数据处理方法的步骤包括:
步骤S40,在检测到数据缓冲区存储有元信息时,加载神经网络当前层的元信息;
步骤S50,根据所述元信息生成神经网络当前层的寄存器序列;
步骤S60,控制推理运算模块根据所述寄存器序列进行运算,得到所述神经网络当前层的运算结果数据。
在本申请实施例中,应用于如第一实施例所述的神经网络数据处理装置的实施处理器。
可选地,所述数据缓冲区为所述实时处理器的TCM存储器,在检测到所述TCM存储器存储有元信息时,提取神经网络当前层的元信息,所述神经网路当前层为神经网络第一层。
可选地,所述实时处理器还包括寄存器序列生成模块,所述寄存器序列生成模块用于根据元信息生成对应的寄存器序列,在检测到所述TCM存储器存储有元信息后,读取所述元信息,根据所述元信息生成神经网络当前层的寄存器序列。
可选地,所述寄存器序列用于控制DMA的搬运控制操作,所述寄存器序列包括DMA搬运顺序、DMA控制信息以及推理运算模块的状态信息的至少一个。
可选地,所述DMA搬运顺序为DMA搬运数据的顺序,可以理解的是,在对神经网络当前层进行运算时,DMA需要执行多次搬运任务,所述搬运任务对应着各自的搬运顺序,即控制DMA从片外ddr搬运至少一次运算参数,例如,第一次搬运权值数据和偏置数据,第二次搬运运算图数据。所述DMA搬运数据的顺序用于控制DMA每次搬运数据的数据类型。
可选地,所述DMA控制信息为每一次DMA搬运数据的控制信息,所述控制信息包括待搬运数据的长度、待搬运数据的类型、待搬运数据的数据格式以及待搬运数据的目标地址等。
可选地,所述推理运算模块的状态信息为所述推理运算模块内置的控制与状态寄存器的配置信息,可以理解的是,所述推理运算模块还包括控制与状态寄存器,用来控制推理运算模块的开始、判断推理的结束等。
可选地,在生成所述神经网络当前层的寄存器序列后,将所述寄存器序列配置在所述推理运算模块中,以供所述推理运算模块根据所述寄存器序列对所述神经网络当前层进行运算,以获取所述神经网络当前层的运算结果数据。
可选地,参照图7,所述步骤S60包括:
步骤S61,根据所述寄存器序列加载所述神经网络当前层对应的运算参数,所述运算参数包括神经网络当前层对应的权值数据、偏置数据以及运算图数据;
步骤S62,控制推理运算模块基于所述运算参数进行运算,以获取神经网络当前层的运算结果数据。
可选地,所述数据加载方式为DMA传输方式,所述实时处理器包括两个DMA,所述DMA包括第一DMA和第二DMA,所述第一DMA用于根据所述寄存器序列从片外ddr加载对神经网络当前层计算时所需的运算参数,所述第二DMA用于将神经网络当前层的运算结果数据存储在片外ddr中。
可选地,所述运算参数包括神经网络当前层对应的权重数据(coefficientdata)、偏置数据(bias data)以及运算图数据(feature map data),可选地,神经网络每一层都有其对应的运算参数,所述运算图数据通常根据用户输入神经网络的数据而生成,例如,用户输入一张图片,那么运算图数据是对该图片数据进行相关处理后得到的数据,如图片数据中提取的特征数据等。
可选地,所述运算参数还可以包括上一次运算的运算结果数据。
可选地,神经网络每一层的运算图数据都不相同,故神经网络每一层进行运算时,都要加载神经网络当前层的第二运算数据。
可选地,所述实时处理器还包括片上RAM,所述第一DMA根据所述寄存器序列从片外ddr读取所述神经网络当前层的运算参数后,将所述运算参数缓存在所述片上RAM中,以供所述推理运算模块根据所述运算参数对神经网络当前层进行运算。
可选地,所述推理运算模块在对所述神经网络当前层完成运算后,参照图8,所述步骤S60之后,还包括:
步骤S70,存储所述神经网络当前层的运算结果数据;
步骤S80,将神经网络下一层作为神经网络当前层,返回加载神经网络当前层的元信息的步骤,直至完成神经网络所有层的元信息的加载。
可选地,控制所述第二DMA将所述神经网络当前层的运算结果数据存储在片外ddr上。
可选地,在将神经网络当前层的运算结果数据存储在片外ddr上后,将神经网络下一层作为神经网络当前层,返回加载神经网络当前层的元信息的步骤,直至完成神经网络所有层的元信息的加载。
可选地,在将神经网络下一层作为神经网络当前层厚,获取所述神经网络当前层的元信息,根据所述元信息生成对应的寄存器序列,进而根据所述寄存器序列进行运算,以获取对应的运算结果数据。例如,在神经网络当前层为神经网络第一层时,获取神经网络第一层的第一元信息,根据所述第一元信息生成神经网络第一层的第一寄存器序列,根据所述第一寄存器序列从片外ddr加载所述第一寄存器序列对应的第一运算参数,进而根据所述第一运算参数对神经网络第一层进行运算,以获取第一运算结果数据,并将所述第一运算结果数据通过第二DAM存储在片外ddr上,在完成神经第一层的运算后,将神经网络第二层确定所述神经网络当前层,获取神经网络第二层对应的第二元信息,根据第二元信息生成神经网络第二层对应的第二寄存器序列,根据所述第二寄存器序列控制第一DAM加载所述第二寄存器序列对应的第二运算参数,进而根据所述第二运算参数对神经网络第二层进行运算,以获取第二运算结果数据,并将所述第三结果数据通过第二DAM存储在片外ddr上,以此类推,后续的运算以此循环,直至完成对神经网络所有层的元信息的加载以及完成对神经网络所有层的运算。
可选地,在又一实施例中,为了提高运算效率,本申请实施例还提出一种数据加载方式,在推理运算模块在对神经网络当前层的运算参数进行运算时,所述第一DAM处于空闲状态,控制所述第一DAM提前加载所述所述神经网络当前层对应的神经网络下一层的元信息,并控制所述寄存器序列生成模块根据所述神经网络下一层的元信息生成对应的寄存器序列,并根据所述寄存器序列控制所述第一DAM获取所述寄存器序列对应的运算参数,将所述运算参数提前缓存在片上RAM中,以供所述推理运算模块在完成对神经网络当前层的推理运算后,可直接从片上RAM获取神经网络下一层对应的运算参数,进而直接对神经网络下一层进行运算。可以理解的是,所述第一RAM和所述推理运算模块并行运行,在推理运算模块对神经网络当前层进行运算时,加载神经网络下一层运算时所需的运算参数,而无需等待推理运算模块完成对神经网络当前层的运算时,才加载神经网络下一层运算时所需的运算参数,使得推理运算模块的运行与第一DMA的数据读取并行处理,提高了推理运算模块与第一DMA的并行度,从而减少了推理运算和数据读取的空闲时间,提高了神经网络运算过程中的数据吞吐率,减少了神经网络运算所需的总体耗时。
在本申请实施例中,通过在实时处理器设置寄存器序列生成模块,在检测到所述数据缓冲区存储有元信息时,加载神经网络当前层的元信息后,控制所述寄存器序列生成模块根据所述元信息生成神经网络当前层的寄存器序列,并控制第一DMA根据所述寄存器序列从片外ddr获取计算神经网络当前层所需的运算参数,控制所述推理运算模块根据所述运算参数对神经网络当前层进行计算,以此循环,直至完成所述神经网络所有层的云信息的加载以及完成神经网络所有层的运算,本申请实施例实时处理器只需接收主控处理器发送的元信息,在复杂网络模型的情况下,能够大大减少主控处理器和实时处理器之间传输的数据量,由于传输的数据量小了很多,所以传输数据需要的时间也大大减少了,所以减少了推理的时间,从而提高了运算效率。
此外,本发明实施例还提出一种存储介质,所述存储介质上存储有神经网络数据处理程序,所述神经网络数据处理程序被处理器执行时实现如上所述的各个实施例的步骤。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (9)
1.一种神经网络数据处理方法,其特征在于,应用于神经网络数据处理装置的主控处理器,所述神经网络数据处理装置包括主控处理器和实时处理器,所述实时处理器包括推理运算模块,所述神经网络数据处理方法的步骤包括:
获取神经网络的多个神经网络算子;
根据多个所述神经网络算子以及预设推理引擎规则依次生成所述神经网络对应的至少一个元信息;
将所述元信息依次存储在数据缓冲区,以供所述实时处理器从所述数据缓冲区依次获取所述元信息,并根据所述元信息依次生成寄存器序列以及控制所述推理运算模块根据所述寄存器序列进行运算;
所述根据多个所述神经网络算子以及预设推理引擎规则依次生成所述神经网络对应的至少一个元信息的步骤包括:
获取神经网络当前层的当前神经网络算子;
根据所述当前神经网络算子获取与所述当前神经网络算子匹配的待融合神经网络算子;
将所述当前神经网络算子以及所述待融合神经网络算子进行融合以得到融合后的当前神经网络算子;
根据融合后的当前神经网络算子生成所述神经网络当前层的元信息;
将神经网络下一层作为神经网络当前层,返回获取神经网络当前层的当前神经网络算子的步骤,直至完成对神经网络所有层的神经网络算子的获取。
2.如权利要求1所述的神经网络数据处理方法,其特征在于,所述元信息包括数据加载顺序、数据地址、加载数据量、加载模式的至少一种。
3.一种神经网络数据处理方法,其特征在于,应用于神经网络数据处理装置的实时处理器以及主控处理器,所述主控处理器通过执行如权利要求1或者2中所述的神经网络数据处理方法,在数据缓冲区写入元信息,所述神经网络数据处理方法的步骤包括:
在检测到所述数据缓冲区存储有所述元信息时,加载神经网络当前层的元信息;
根据所述元信息生成神经网络当前层的寄存器序列;
控制推理运算模块根据所述寄存器序列进行运算,得到所述神经网络当前层的运算结果数据。
4.如权利要求3所述的神经网络数据处理方法,其特征在于,所述寄存器序列包括DMA搬运顺序、DMA控制信息以及推理运算模块的状态信息的至少一个。
5.如权利要求3所述的神经网络数据处理方法,其特征在于,所述控制推理运算模块根据所述寄存器序列进行运算的步骤包括:
根据所述寄存器序列加载所述神经网络当前层对应的运算参数,所述运算参数包括神经网络当前层对应的权值数据、偏置数据以及运算图数据;
控制推理运算模块基于所述运算参数进行运算,以获取神经网络当前层的运算结果数据。
6.如权利要求5所述的神经网络数据处理方法,其特征在于,数据加载方式为DMA传输方式。
7.如权利要求3所述的神经网络数据处理方法,其特征在于,所述控制推理运算模块根据所述寄存器序列进行运算的步骤之后,还包括:
存储所述神经网络当前层的运算结果数据;
将神经网络下一层作为神经网络当前层,返回加载神经网络当前层的元信息的步骤,直至完成神经网络所有层的元信息的加载。
8.一种神经网络数据处理设备,其特征在于,所述神经网络数据处理设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的神经网络数据处理程序,所述神经网络数据处理程序被所述处理器执行时实现如权利要求1至7中任一项所述的神经网络数据处理方法的步骤。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有神经网络数据处理程序,所述神经网络数据处理程序被处理器执行时实现如权利要求1至7中任一项所述的神经网络数据处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210103770.3A CN114118389B (zh) | 2022-01-28 | 2022-01-28 | 神经网络数据处理方法、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210103770.3A CN114118389B (zh) | 2022-01-28 | 2022-01-28 | 神经网络数据处理方法、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114118389A CN114118389A (zh) | 2022-03-01 |
CN114118389B true CN114118389B (zh) | 2022-05-10 |
Family
ID=80361762
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210103770.3A Active CN114118389B (zh) | 2022-01-28 | 2022-01-28 | 神经网络数据处理方法、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114118389B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115762515B (zh) * | 2022-11-08 | 2023-12-01 | 北京百度网讯科技有限公司 | 用于语音识别的神经网络的处理和应用方法、装置及设备 |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5368687B2 (ja) * | 2007-09-26 | 2013-12-18 | キヤノン株式会社 | 演算処理装置および方法 |
US20190095776A1 (en) * | 2017-09-27 | 2019-03-28 | Mellanox Technologies, Ltd. | Efficient data distribution for parallel processing |
US11170287B2 (en) * | 2017-10-27 | 2021-11-09 | Salesforce.Com, Inc. | Generating dual sequence inferences using a neural network model |
US20200042856A1 (en) * | 2018-07-31 | 2020-02-06 | International Business Machines Corporation | Scheduler for mapping neural networks onto an array of neural cores in an inference processing unit |
CN109697500B (zh) * | 2018-12-29 | 2020-06-09 | 中科寒武纪科技股份有限公司 | 数据处理方法、装置、电子设备及存储介质 |
CN109740735B (zh) * | 2018-12-29 | 2020-12-29 | 百度在线网络技术(北京)有限公司 | 多神经网络输出方法及装置、服务器、计算机可读介质 |
JP7379821B2 (ja) * | 2019-01-09 | 2023-11-15 | 日本電信電話株式会社 | 推論処理装置および推論処理方法 |
CN110334799B (zh) * | 2019-07-12 | 2022-05-24 | 电子科技大学 | 基于存算一体的神经网络推理与训练加速器及其运行方法 |
US11436486B2 (en) * | 2019-08-19 | 2022-09-06 | Advanced Micro Devices, Inc. | Neural network internal data fast access memory buffer |
CN112529169A (zh) * | 2019-09-18 | 2021-03-19 | 华为技术有限公司 | 数据处理方法、模型优化装置和模型执行装置 |
CN112633462A (zh) * | 2019-10-08 | 2021-04-09 | 黄朝宗 | 卷积神经网络的存储器优化的区块式推论方法及其系统 |
CN111260019B (zh) * | 2020-02-18 | 2023-04-11 | 深圳鲲云信息科技有限公司 | 神经网络模型的数据处理方法、装置、设备及存储介质 |
CN115803754A (zh) * | 2020-03-10 | 2023-03-14 | 艾普半导公司 | 用于在神经网络中处理数据的硬件架构 |
KR20220154764A (ko) * | 2020-03-29 | 2022-11-22 | 마이크론 테크놀로지, 인크. | 추론 엔진 회로 아키텍처 |
US11669736B2 (en) * | 2020-03-31 | 2023-06-06 | Arm Limited | Executing neural networks on electronic devices |
CN111813721B (zh) * | 2020-07-15 | 2022-09-09 | 深圳鲲云信息科技有限公司 | 神经网络数据处理方法、装置、设备及存储介质 |
CN112580792B (zh) * | 2020-12-08 | 2023-07-25 | 厦门壹普智慧科技有限公司 | 一种神经网络多核张量处理器 |
CN112381220B (zh) * | 2020-12-08 | 2024-05-24 | 厦门壹普智慧科技有限公司 | 一种神经网络张量处理器 |
CN113313247B (zh) * | 2021-02-05 | 2023-04-07 | 中国科学院计算技术研究所 | 基于数据流架构的稀疏神经网络的运算方法 |
-
2022
- 2022-01-28 CN CN202210103770.3A patent/CN114118389B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN114118389A (zh) | 2022-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110276446B (zh) | 模型训练和选择推荐信息的方法和装置 | |
EP3711000B1 (en) | Regularized neural network architecture search | |
US20240119286A1 (en) | Adaptive artificial neural network selection techniques | |
CN109857744B (zh) | 稀疏张量计算方法、装置、设备及存储介质 | |
CN110573837B (zh) | 导航方法、装置、存储介质以及服务器 | |
KR102521054B1 (ko) | 조기 중단에 기반한 심층 신경망의 연산 제어 방법 및 시스템 | |
US20240135174A1 (en) | Data processing method, and neural network model training method and apparatus | |
CN114118389B (zh) | 神经网络数据处理方法、设备及存储介质 | |
JP7165018B2 (ja) | 情報処理装置、情報処理方法 | |
CN115618098B (zh) | 基于知识增强与空洞卷积的冷链物流推荐方法及装置 | |
KR20140101786A (ko) | 룰―기반 컨텍스트 획득 방법 | |
JP7199121B1 (ja) | 計算グラフの改善 | |
CN113590666B (zh) | 一种ai集群中数据缓存方法、系统、设备及计算机介质 | |
US20210365212A1 (en) | Computation of solution to sparse matrix | |
KR20220144281A (ko) | 신경망 모델의 최적화 방법 및 이를 수행하는 신경망 모델 처리 시스템 | |
CN111461310A (zh) | 处理神经网络模型的神经网络设备、神经网络系统和方法 | |
US20230082994A1 (en) | Electronic device and neural network module for performing neural network operation based on model metadata and control data | |
US11983745B2 (en) | Systems and methods for valuation of a vehicle | |
US20210182656A1 (en) | Arithmetic processing device | |
WO2024007938A1 (zh) | 一种多任务预测方法、装置、电子设备及存储介质 | |
KR20190051574A (ko) | 인공 신경망을 이용하여 이름에 대한 국적 정보를 제공하는 장치 및 방법 | |
CN110930302B (zh) | 一种图片处理方法、装置、电子设备及可读存储介质 | |
KR20240039477A (ko) | 개인 맞춤형 추천 장치 및 방법 | |
KR20220076198A (ko) | 디지털 트윈 기반 함수 처리 장치 및 방법 | |
CN114141240A (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 |