数据存储方法、装置、设备和存储介质与流程

文档序号:22428662发布日期:2020-10-02 10:06阅读:88来源:国知局
数据存储方法、装置、设备和存储介质与流程

本申请实施例涉及神经网络技术领域,例如涉及一种数据存储方法、装置、设备和存储介质。



背景技术:

随着神经网络技术的快速发展,神经网络的计算数据量越来越大,数据存储是神经网络技术的一项重要内容。

目前基于数据流架构开发的神经网络芯片,神经网络模型通常包括多个网络层级,每一层的结构类型称为每一层的网络计算类型,不同层之间的网络计算类型可能不同,而神经网络的计算数据通常与网络计算类型对应,因此,在计算模块固定情况下,神经网络芯片需要针对不同网络计算类型采用不同的数据存储方式。通常,数据流架构芯片的数据和参数由片外存储搬运到片内存储后都是直接顺序读出给后续计算模块使用,即需要外部软件将数据整理好顺序再传递到片上。

然而,在采用数据流架构的芯片中,上述方式不能灵活支持多种类型网络,如果网络计算参数发生改变,则芯片只能通过补充数据和加大计算量的方式来支持对应的网络计算类型,降低了芯片的计算效率,并且外部实时数据一旦改变,就不能满足计算需要。



技术实现要素:

本发明实施例提供一种数据存储方法、装置、设备和存储介质,以实现将数据流架构芯片的不同网络计算类型的数据按不同存储方式存储和计算的效果。

第一方面,本发明实施例提供了一种神经网络计算类型的存储方法,包括:

获取神经网络的第一层的第一待计算数据和所述第一待计算数据对应的第一神经网络计算类型;

基于所述第一神经网络计算类型配置第一预设规则;

基于所述第一预设规则对所述第一待计算数据进行存储,以使所述第一待计算数据按照所述第一神经网络计算类型匹配的第一数据顺序发送给数据流网络中的计算模块进行计算;

其中,所述第一待计算数据按照预设的数据流向在所述数据流网络中流动。

可选的,在所述基于所述第一预设规则对所述第一待计算数据进行存储之后,还包括:

获取神经网络的第二层的第二待计算数据和所述第二待计算数据对应的第二神经网络计算类型;

判断所述第一神经网络计算类型是否与所述第二神经网络计算类型相同;

响应于所述第一神经网络计算类型与所述第二神经网络计算类型相同的判断结果,基于所述第一预设规则对所述第二待计算数据进行存储;

响应于所述第一神经网络计算类型与所述第二神经网络计算类型不相同的判断结果,基于所述第二神经网络计算类型配置第二预设规则,基于所述第二预设规则对所述第二待计算数据进行存储,以使所述第二待计算数据按照所述第二神经网络计算类型匹配的第二数据顺序发送给所述数据流网络中的计算模块进行计算。

可选的,所述第一预设规则包括预设存储规则和预设计算规则;

所述基于所述第一预设规则对所述第一待计算数据进行存储,包括:

基于所述预设存储规则对所述第一待计算数据进行存储,其中,所述预设存储规则为将所述第一待计算数据按照所述第一数据顺序进行存储的规则;

在所述基于所述第一神经网络计算类型配置第一预设规则之后,还包括:将所述预设计算规则传输到计算模块,以供所述计算模块根据所述预设计算规则对所述第一待计算数据进行计算,其中,所述预设计算规则为按照所述第一神经网络计算类型进行计算的规则。

可选的,所述第一待计算数据包括至少一种计算参数,所述第二待计算数据包括至少一种计算参数。

可选的,计算参数包括:卷积核大小kernelsize、步长stride、卷积核通道channel和滤波器filter。

可选的,所述基于所述预设存储规则对所述第一待计算数据进行存储,包括:

基于所述预设存储规则将所述第一待计算数据按照所述第一数据顺序存储到片内存储器,以通过所述片内存储器将所述第一待计算数据按照所述第一数据顺序排序后传输到所述计算模块。

第二方面,本发明实施例提供了一种神经网络计算类型的存储装置,包括:

获取模块,用于获取神经网络的第一层的第一待计算数据和所述第一待计算数据对应的第一神经网络计算类型;

配置模块,用于基于所述第一神经网络计算类型配置第一预设规则;

片上存储模块,用于基于所述第一预设规则对所述第一待计算数据进行存储,以使所述第一待计算数据按照所述第一神经网络计算类型匹配的第一数据顺序发送给数据流网络中的计算模块进行计算;

其中,所述第一待计算数据按照预设的数据流向在所述数据流网络中流动。

可选的,所述获取模块还用于获取神经网络的第二层的第二待计算数据和所述第二待计算数据对应的第二神经网络计算类型;

所述装置还包括:判断模块,用于判断所述第一神经网络计算类型是否与所述第二神经网络计算类型相同;

所述片上存储模块还用于响应于所述第一神经网络计算类型与所述第二神经网络计算类型相同的判断结果,基于所述第一预设规则对所述第二待计算数据进行存储;以及响应于所述第一神经网络计算类型与所述第二神经网络计算类型不相同的判断结果,基于所述第二神经网络计算类型配置第二预设规则,基于所述第二预设规则对所述第二待计算数据进行存储,以使所述第二待计算数据按照所述第二神经网络计算类型匹配的第二数据顺序发送给所述数据流网络中的计算模块进行计算。

第三方面,本发明实施例提供了一种设备,包括:

一个或多个处理器;

存储装置,用于存储一个或多个程序,

当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本发明任意实施例所述的神经网络计算类型的存储方法。

第四方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明任意实施例所述的神经网络计算类型的存储方法。

本发明实施例通过获取神经网络的第一层的第一待计算数据和所述第一待计算数据对应的第一神经网络计算类型;基于所述第一神经网络计算类型配置第一预设规则;基于所述第一预设规则对所述第一待计算数据进行存储,以使所述第一待计算数据按照所述第一神经网络计算类型匹配的第一数据顺序发送给数据流网络中的计算模块进行计算;其中,所述第一待计算数据按照预设的数据流向在所述数据流网络中流动,解决了数据流架构的芯片支持多种神经网络计算类型时,需要通过补充数据和加大计算量的方式来实现,降低了芯片的计算效率的问题,实现了将数据流架构的不同网络计算类型的数据按不同存储方式存储以达到对不同网络计算类型的数据进行计算的效果。

说明书附图

图1是本发明实施例一提供的一种数据存储方法的流程图;

图2是本发明实施例二提供的一种数据存储方法的流程图;

图3是本发明实施例三提供的一种数据存储装置的结构示意图;

图4是本发明实施例三提供的另一种数据存储装置的结构示意图;

图5是本发明实施例四提供的一种设备的结构示意图。

具体实施方式

下面结合附图和实施例对本申请进行说明。本文所描述的具体实施例仅仅用于解释本申请,而非对本申请的限定。为了便于描述,附图中仅示出了与本申请相关的部分而非全部结构。

一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将多个步骤描述成顺序的处理,但是多个步骤中的许多步骤可以被并行地、并发地或者同时实施。此外,多个步骤的顺序可以被重新安排。当多个步骤操作完成时处理可以被终止,但是还可以具有未包括在附图中的附加步骤。处理可以对应于方法、函数、规程、子例程、子程序等等。

术语“第一”、“第二”等可在本文中用于描述多种方向、动作、步骤或元件等,但这些方向、动作、步骤或元件不受这些术语限制。这些术语仅用于将第一个方向、动作、步骤或元件与另一个方向、动作、步骤或元件区分。举例来说,在不脱离本申请的范围的情况下,可以将第一预设规则称为第二预设规则,且类似地,可将第二预设规则称为第一预设规则。第一预设规则和第二预设规则两者都是预设规则,但第一预设规则和第二预设规则不是同一预设规则。术语“第一”、“第二”等而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本申请的描述中,“多个”、“批量”的含义是至少两个,例如两个,三个等,除非另有限定。

实施例一

图1为本申请实施例一提供的一种数据存储方法的流程示意图,可适用于对不同神经网络计算类型的数据进行计算的场景,该方法可以由数据存储装置来执行,该装置可以采用软件和/或硬件的方式实现,并可集成在设备上。

如图1所示,本申请实施例一提供的数据存储方法包括:

s110、获取神经网络的第一层的第一待计算数据和第一待计算数据对应的第一神经网络计算类型。

本实施例中,神经网络的计算有多层,当当前层计算完成后,执行下一层的数据运算。神经网络的第一层是指在神经网络模型计算中最先开始计算的层级。第一待计算数据是指需要在神经网络的第一层进行计算的数据。第一神经网络计算类型是指第一待计算数据对应的神经网络计算类型。一实施例中,第一神经网络计算类型包括但不限于前馈神经网络、径向基神经网络、深度前馈神经网络、递归神经网络等,本文对于第一神经网络计算类型不作限制。

在一实施例中,可以预先设置神经网络的多层中每层的待计算数据对应的神经网络计算类型。

s120、基于所述第一神经网络计算类型配置第一预设规则。

本实施例中,第一预设规则是指适用于第一神经网络计算类型对应的数据传输及计算的规则。一实施例中,第一预设规则是指按照一定方式对需要传输给芯片上的计算模块的待计算数据进行数据处理的规则。在本实施例中,第一预设规则为根据计算模块需要的顺序对第一待计算数据进行存储,以将第一待计算数据按照计算模块需要的顺序发送至计算模块中,提供数据给计算模块进行第一层运算的规则。通过将计算模块需要计算的数据提前排好序,提高了芯片的计算效率。一实施例中,在神经网络模型开始计算前,将不同神经网络计算类型对应的预设规则提前配置好,当神经网络模型开始计算时,根据配置好的神经网络计算类型和预设规则的关联关系,以及第一待计算数据中的第一神经网络计算类型,配置第一预设规则。

s130、基于所述第一预设规则对所述第一待计算数据进行存储,以使所述第一待计算数据按照所述第一神经网络计算类型匹配的第一数据顺序发送给数据流网络中的计算模块进行计算。

本实施例中,计算模块根据第一预设规则在神经网络模型的第一层进行数据的计算。其中,第一待计算数据按照预设的数据流向在数据流网络中流动,数据的流动不依赖于指令也能获取,计算模块只需要等待数据来到即可进行计算。第一数据顺序是指跟第一神经网络计算类型的运算顺序映射的数据顺序。具体的,在按照第一神经网络计算类型对数据进行处理时,是按照与第一神经网络计算类型对应的运算顺序对第一待计算数据进行处理。而本实施例中的第一待计算数据是按照数据流的方式流向计算模块中,因此,需要先将第一待计算数据按照第一数据顺序排好序再发送给计算模块进行计算。将第一待计算数据按照第一数据顺序排好序后,计算模块可以循环控制读操作,并且控制读操作的地址寻址,来提取数据进行计算。

在本实施例中,通过确定第一待计算数据的神经网络计算类型,并针对不同的神经网络计算类型配置预设规则,基于配置的预设规则对第一待计算数据进行存储,以供计算模块对第一待计算数据进行计算,计算模块并没有局限于针对一种神经网络计算类型进行计算。一实施例中,计算模块在进行数据计算时,执行固定的加法和乘法运算,片上存储模块通过存储不同的数据排布方式满足计算模块不同的计算方式。

本申请实施例的技术方案,通过获取神经网络的第一层的第一待计算数据和所述第一待计算数据对应的第一神经网络计算类型;基于所述第一神经网络计算类型配置第一预设规则;基于所述第一预设规则对所述第一待计算数据进行存储,以使所述第一待计算数据按照所述第一神经网络计算类型匹配的第一数据顺序发送给数据流网络中的计算模块进行计算,其中,所述第一待计算数据按照预设的数据流向在所述数据流网络中流动。本实施例提供的神经网络计算,并没有局限于一种计算类型的神经网络,而是通过神经网络计算类型配置预设规则,解决了相关技术中网络计算类型支持单一或不能够灵活支持多种类型网络的问题,将不同网络计算类型的数据按不同存储方式存储以达到对数据流架构的不同网络计算类型的数据进行计算的技术效果。此外,本申请实施例的技术方案还能保持高计算效率。

实施例二

图2是本申请实施例二提供的一种数据存储方法的流程示意图。本实施例对上述实施例进行说明,适用于对不同神经网络计算类型的数据进行计算的场景。该方法可以由数据存储装置来执行,该装置可以采用软件和/或硬件的方式实现,并可集成在设备上。

如图2所示,本申请实施例二提供的神经网络的数据传输方法包括:

s210、获取神经网络的第一层的第一待计算数据和所述第一待计算数据对应的第一神经网络计算类型。

本实施例中,神经网络的计算有多层,当当前层计算完成后,执行下一层的数据运算。神经网络的第一层是指在神经网络模型计算中最先开始计算的层级。第一待计算数据是指需要在神经网络的第一层进行计算的数据。第一神经网络计算类型是指第一待计算数据对应的神经网络计算类型。一实施例中,神经网络计算类型包括但不限于前馈神经网络、径向基神经网络、深度前馈神经网络、递归神经网络等,本文对于神经网络计算类型不作限制。

在一实施例中,可以预先设置神经网络的多层中每层的待计算数据对应的神经网络计算类型。

在本实施例中,第一待计算数据包括至少一种计算参数。一实施例中,计算参数包括卷积核大小(kernelsize)、步长(stride)、卷积核通道(channel)和滤波器(filter)等,本文对于计算参数的类型不作限制。具体的,不同神经网络计算类型的kernelsize、stride、channel和filter至少会有一个计算参数不同。s220、基于所述第一神经网络计算类型配置第一预设规则。

本实施例中,第一预设规则是指适用于第一神经网络计算类型对应的数据传输及计算的规则。一实施例中,第一预设规则是指按照一定方式对需要传输给芯片上的计算模块的待计算数据进行数据处理的规则。在本实施例中,第一预设规则为根据计算模块需要的顺序对第一待计算数据进行存储,以将第一待计算数据按照计算模块需要的顺序发送至计算模块中,提供数据给计算模块进行第一层运算的规则。一实施例中,在神经网络模型开始计算前,将不同神经网络计算类型对应的预设规则提前配置好,当神经网络模型开始计算时,根据配置好的神经网络计算类型和预设规则的关联关系,以及第一待计算数据中的第一神经网络计算类型,配置第一预设规则。

s230、基于所述第一预设规则对所述第一待计算数据进行存储,以使所述第一待计算数据按照所述第一神经网络计算类型匹配的第一数据顺序发送给数据流网络中的计算模块进行计算。

一实施例中,计算模块根据第一预设规则在神经网络模型的第一层进行数据的计算。

在本实施例中,通过确定第一待计算数据的神经网络计算类型,并针对不同的神经网络计算类型配置预设规则,基于配置的预设规则对第一待计算数据进行存储,以供计算模块对第一待计算数据进行计算,计算模块并没有局限于针对一种神经网络计算类型进行计算。其中,所述第一待计算数据按照预设的数据流向在所述数据流网络中流动。

在s230中,第一预设规则包括预设存储规则和预设计算规则,s230包括:基于所述预设存储规则对所述第一待计算数据进行存储。在s230之后还包括:将所述预设计算规则传输到所述计算模块,以供所述计算模块根据所述预设计算规则对所述第一待计算数据进行计算。

本实施例中,预设存储规则是指按一定顺序将数据排序的规则。具体的,预设存储规则为将所述第一待计算数据按照所述第一数据顺序进行存储的规则。一实施例中,数据的排序根据计算模块计算的顺序确定,提前将数据排序,能提高计算模块的计算效率。一实施例中,预设存储规则可以是对不同数据的排序,例如数据、权重和偏执等;也可以是对同一数据的排序,例如图片的像素大小或红蓝黄三种颜色,本文不作限制。预设计算规则是指计算模块计算数据的规则。具体的,预设计算规则为按照所述第一神经网络计算类型进行计算的规则。一实施例中,预设计算规则为按顺序拉取数据进行计算。

本实施例中,基于所述预设存储规则对所述第一待计算数据进行存储包括:基于所述预设存储规则将所述第一待计算数据按照所述第一数据顺序存储到片内存储器以通过所述片内存储器将所述第一待计算数据按照所述第一数据顺序排序后传输到所述计算模块。

在本步骤中,对于神经网络模型需要计算的第一待计算数据,不需要针对第一待计算数据的神经网络计算类型进行识别以传输到不同片内存储器中。所有的神经网络计算类型都传输到同一片内存储器后,并按照神经网络计算类型的运算顺序对数据排好序后,再配置神经网络计算类型的预设规则,能够减少芯片上的布置空间,以及提高数据存储的灵活性。

s240、获取神经网络的第二层的第二待计算数据和第二待计算数据对应的第二神经网络计算类型。

本实施例中,神经网络的第二层是指神经网络的第一层的下一层。第二待计算数据是指神经网络的第二层需要计算的数据。第二神经网络计算类型是指第二待计算数据的神经网络计算类型。一实施例中,第二神经网络计算类型包括但不限于前馈神经网络、径向基神经网络、深度前馈神经网络、递归神经网络等,本文对于第二神经网络计算类型不作限制。

在本实施例中,第二待计算数据包括至少一种计算参数。一实施例中,计算参数包括kernelsize、stride、channel和filter等,此处对于计算参数的类型不作限制。

s250、判断所述第一神经网络计算类型是否与所述第二神经网络计算类型相同。

示例性的,如果第一神经网络计算类型是深度前馈神经网络,且第二神经网络计算类型也是深度前馈神经网络,则第一神经网络计算类型和第二神经网络计算类型相同。如果第一神经网络计算类型是深度前馈神经网络,且第二神经网络计算类型是递归神经网络,则第一神经网络计算类型和第二神经网络计算类型不相同。

s260、响应于所述第一神经网络计算类型与所述第二神经网络计算类型相同的判断结果,基于所述第一预设规则对所述第二待计算数据进行存储。

一实施例中,第一神经网络计算类型和第二神经网络计算类型相同,则第一预设规则也适用于第二层的神经网络计算类型的计算,可以直接启动针对神经网络的第二层的数据计算,在神经网络的第二层中对第二待计算数据进行计算。

s270、响应于所述第一神经网络计算类型与所述第二神经网络计算类型不相同的判断结果,基于所述第二神经网络计算类型配置第二预设规则,基于所述第二预设规则对所述第二待计算数据进行存储,以使所述第二待计算数据按照所述第二神经网络计算类型匹配的第二数据顺序发送给所述数据流网络中的计算模块进行计算。

本实施例中,第二预设规则是指适用于第二神经网络计算类型对应的数据传输及计算的规则。第二数据顺序是指跟第二神经网络计算类型的运算顺序映射的数据顺序。具体的,当第二网络神经网络计算类型和第一神经网络计算类型不同时,例如卷积核大小不同时,所需要的数据顺序不同,因此当第一神经网络计算类型和第二神经网络计算类型不同时,需要将第二待计算数据按照第二神经网络计算类型对应的第二数据顺序在片内存储器存储,从而在流向计算模块时供计算模块进行计算。一实施例中,第二预设规则是指按照一定方式对需要传输给芯片上的计算模块的待计算数据进行数据处理的规则。在本实施例中,第二预设规则为根据计算模块需要的顺序对第二待计算数据进行存储,以将第二待计算数据按照计算模块需要的顺序发送至计算模块中,提供数据给计算模块进行第二层的运算的规则。

在一代替实施例中,也可以不需要判断第二神经网络计算类型是否和第一神经网络计算类型相同。直接根据第二神经网络计算类型配置第二预设规则。如果第二神经网络计算类型和第一神经网络计算类型相同,则第二预设规则和第一预设规则也相同。

在另一代替实施例中,获取神经网络的第三层甚至是更多层的待计算数据,获取的待计算数据的层级需要根据神经网络的计算模型的层级数量确定。

举例来说,当数据是图像数据时,在人工智能领域,一般都是用卷积网络来对图像数据进行处理。对于卷积网络来说,会有多个卷积层,而不同的卷积层的卷积核大小,步长和滤波器等并不相同,即不同卷积层对应的神经网络计算类型不同。当图像数据进入第一个卷积层的开始处理时,先判断第一个卷积层的第一神经网络计算类型,然后根据图像数据的channel/width/height特征,将图像数据以第一神经网络计算类型对应的第一预设规则将图像数据按照第一神经网络计算类型所需的运算顺序排好序存储在片内存储器后,直接按照第一数据顺序的数据流发送给计算模块计算,当第一个卷积层计算完成时,输出第一个featuremap(特征图)。需要说明的是,进入第一个卷积层的图像数据也是一种特征图。则第一个featuremap开始进入第二个卷积层进行处理时,先判断第二个卷积层的第二神经网络计算类型与第一神经网络计算类型是否相同,当不相同时,根据第二个featuremap(即第二待计算数据)的channel/width/height特征,按照第二神经网络计算类型对应的第二预设规则将第一个featuremap按照第二神经网络计算类型所需的运算顺序排好序存在片内存储器后,直接按照第二数据顺序的数据流发送给计算模块计算。以此类推,在卷积网络中对图像处理完成。

可以理解的是,在神经网络计算类型不同时先将数据进行线性转换以满足计算模块的计算需要,既可以保证兼容数据流架构中,多个神经网络的不同特征的卷积的运算,也没有增加额外的时间消耗,保证了数据流架构的运算的高效以及灵活,可在数据流结构钟满足多个神经网络的卷积运算。

本申请实施例的技术方案,通过获取神经网络的第一层的第一待计算数据和所述第一待计算数据对应的第一神经网络计算类型;基于所述第一神经网络计算类型配置第一预设规则;基于所述第一预设规则对所述第一待计算数据进行存储,以使所述第一待计算数据按照所述第一神经网络计算类型匹配的第一数据顺序发送给数据流网络中的计算模块进行计算,在计算模块对第一待计算数据进行计算之后,获取神经网络的第二层的第二待计算数据和所述第二待计算数据对应的第二神经网络计算类型,通过判断第一神经网络计算类型是否与第二神经网络计算类型相同,确定针对第二层神经网络的数据存储方式。本实施例提供的神经网络计算,并没有局限于一类型的神经网络,而是通过神经网络计算类型配置预设规则,解决了相关技术中网络计算类型支持单一或不能够灵活支持多种类型网络的问题,将不同网络计算类型的数据按不同存储方式存储以达到对不同网络计算类型的数据进行计算的技术效果。此外,本申请实施例的技术方案还能保持高计算效率。

实施例三

图3是本申请实施例三提供的一种数据存储装置的结构示意图,本实施例可适用于对不同神经网络计算类型的数据进行计算的场景,该装置可以采用软件和/或硬件的方式实现,并可集成在设备上。

如图3所示,本实施例提供的数据存储装置可以包括获取模块310、配置模块320和片上存储模块330,其中:获取模块310,用于获取神经网络的第一层的第一待计算数据和所述第一待计算数据对应的第一神经网络计算类型;配置模块320,用于基于所述第一神经网络计算类型配置第一预设规则;片上存储模块330,用于基于所述第一预设规则对所述第一待计算数据进行存储,以使所述第一待计算数据按照所述第一神经网络计算类型匹配的第一数据顺序发送给数据流网络中的计算模块进行计算;其中,所述第一待计算数据按照预设的数据流向在所述数据流网络中流动。

参考图4,一实施例中,所述获取模块310还用于获取神经网络的第二层的第二待计算数据和所述第二待计算数据对应的第二神经网络计算类型。

所述装置还包括:判断模块340,用于判断所述第一神经网络计算类型是否与所述第二神经网络计算类型相同;所述片上存储模块330还用于响应于所述第一神经网络计算类型与所述第二神经网络计算类型相同的判断结果,基于所述第一预设规则对所述第二待计算数据进行存储;以及响应于所述第一神经网络计算类型与所述第二神经网络计算类型不相同的判断结果,基于所述第二神经网络计算类型配置第二预设规则,基于所述第二预设规则对所述第二待计算数据进行存储,以使所述第二待计算数据按照所述第二神经网络计算类型匹配的第二数据顺序发送给所述数据流网络中的计算模块进行计算。

一实施例中,所述第一预设规则包括预设存储规则和预设计算规则。

片上存储模块330包括:存储单元,用于基于所述预设存储规则对所述第一待计算数据进行存储,其中,所述预设存储规则为将所述第一待计算数据按照所述第一数据顺序进行存储的规则;发送单元,用于将所述预设计算规则传输到所述计算模块,以供所述计算模块根据所述预设计算规则对所述第一待计算数据进行计算,其中,所述预设计算规则为按照所述第一神经网络计算类型进行计算的规则。

一实施例中,所述第一待计算数据包括至少一种计算参数,所述第二待计算数据包括至少一种计算参数。

一实施例中,所述计算参数包括:kernelsize、stride、channel和filter中的至少一种。

一实施例中,存储单元是用于基于所述预设存储规则将所述第一待计算数据按照所述第一数据顺序存储到片内存储器以通过所述片内存储器将所述第一待计算数据按照所述第一数据顺序排序后传输到所述计算模块。

本申请实施例所提供的数据存储装置可执行本申请任意实施例所提供的数据存储方法,具备执行方法相应的功能模块和有益效果。本实施例中未描述的内容可以参考本申请任意方法实施例中的描述。

实施例四

图5是本申请实施例四提供的一种设备的结构示意图。图5示出了适于用来实现本申请实施方式的示例性设备612的框图。图5显示的设备612仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。

如图5所示,设备612以通用设备的形式表现。设备612的组件可以包括但不限于:一个或者多个处理器616,存储装置628,连接不同系统组件(包括存储装置628和处理器616)的总线618。

总线618表示几类总线结构中的一种或多种,包括存储装置总线或者存储装置控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(industrysubversivealliance,isa)总线,微通道体系结构(microchannelarchitecture,mac)总线,增强型isa总线、视频电子标准协会(videoelectronicsstandardsassociation,vesa)局域总线以及外围组件互连(peripheralcomponentinterconnect,pci)总线。

一实施例中,设备612包括多种计算机系统可读介质。这些介质可以是任何能够被设备612访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。

存储装置628可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(randomaccessmemory,ram)630和/或高速缓存存储器632。一实施例中,终端612可以包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统634可以用于读写不可移动的、非易失性磁介质(图5未显示,通常称为“硬盘驱动器”)。尽管图5中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘,例如只读光盘(compactdiscread-onlymemory,cd-rom),数字视盘(digitalvideodisc-readonlymemory,dvd-rom)或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线618相连。存储装置628可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本申请实施例的功能。

具有一组(至少一个)程序模块642的程序/实用工具640,可以存储在例如存储装置628中,这样的程序模块642包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或一种组合中可能包括网络环境的实现。程序模块642通常执行本申请所描述的实施例中的功能和/或方法。

设备612也可以与一个或多个外部设备614(例如键盘、指向终端、显示器624等)通信,还可与一个或者多个使得用户能与该设备612交互的终端通信,和/或与使得该设备612能与一个或多个其它计算终端进行通信的任何终端(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(input/output,i/o)接口622进行。并且,设备612还可以通过网络适配器620与一个或者多个网络(例如局域网(localareanetwork,lan),广域网(wideareanetwork,wan)和/或公共网络,例如因特网)通信。如图5所示,网络适配器620通过总线618与设备612的其它模块通信。尽管图中未示出,可以结合设备612使用其它硬件和/或软件模块,包括但不限于:微代码、终端驱动器、冗余处理器、外部磁盘驱动阵列、磁盘阵列(redundantarraysofindependentdisks,raid)系统、磁带驱动器以及数据备份存储系统等。

处理器616通过运行存储在存储装置628中的程序,从而执行多种功能应用以及数据处理,例如实现本申请任意实施例所提供的一种数据存储方法,该方法可以包括:获取神经网络的第一层的第一待计算数据和第一待计算数据对应的第一神经网络计算类型;基于所述第一神经网络计算类型配置第一预设规则;基于所述第一预设规则对所述第一待计算数据进行存储,以使所述第一待计算数据按照所述第一神经网络计算类型匹配的第一数据顺序发送给数据流网络中的计算模块进行计算;其中,所述第一待计算数据按照预设的数据流向在所述数据流网络中流动。

本申请实施例的技术方案,通过获取神经网络的第一层的第一待计算数据和所述第一待计算数据对应的第一神经网络计算类型;基于所述第一神经网络计算类型配置第一预设规则;基于所述第一预设规则对所述第一待计算数据进行存储,以使所述第一待计算数据按照所述第一神经网络计算类型匹配的第一数据顺序发送给数据流网络中的计算模块进行计算,其中,所述第一待计算数据按照预设的数据流向在所述数据流网络中流动。本实施例提供的神经网络计算,并没有局限于一种计算类型的神经网络,而是通过神经网络计算类型配置预设规则,解决了相关技术中网络计算类型支持单一或不能够灵活支持多种类型网络的问题,将不同网络计算类型的数据按不同存储方式存储以达到对数据流架构的不同网络计算类型的数据进行计算的技术效果。此外,本申请实施例的技术方案还能保持高计算效率。

本申请实施例还提供了一种设备,包括:配置装置、直接内存存取(directmemoryaccess,dma)装置、外部存储装置和片上存储装置。其中,配置装置可以是处理器;外部存储装置可以是双倍速率(doubledatarate,ddr)内存;dma装置连接外部存储装置与片上存储装置,并接收配置装置控制;dma装置根据处理器配置,将外部存储装置中的数据搬到片上存储装置,片上存储装置根据处理器配置方式存储数据。当dma装置被处理器执行,使得dma装置按处理器配置将外部存储装置的数据传输到片上存储装置,当片上存储装置被处理器装置配置,使得片上存储装置将dma装置传输来的数据按处理器配置方式存储在片上存储,实现本申请任意实施例提供的数据存储方法。

实施例五

本申请实施例五还提供了一种计算机可读存储介质,存储有计算机程序,该程序被处理器执行时实现如本申请任意实施例所提供的一种数据存储方法,该方法可以包括:获取神经网络的第一层的第一待计算数据和第一待计算数据对应的第一神经网络计算类型;基于所述第一神经网络计算类型配置第一预设规则;基于所述第一预设规则对所述第一待计算数据进行存储,以使所述第一待计算数据按照所述第一神经网络计算类型匹配的第一数据顺序发送给数据流网络中的计算模块进行计算;其中,所述第一待计算数据按照预设的数据流向在所述数据流网络中流动。

本申请实施例的计算机可读存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是,但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、ram、只读存储器(read-onlymemory,rom)、可擦式可编程只读存储器(erasableprogrammableread-onlymemory,eprom或闪存)、光纤、cd-rom、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,计算机可读的信号介质中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。

存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、电线、光缆、射频(radiofrequency,rf)等等,或者上述的任意合适的组合。

可以以一种或多种程序设计语言或其组合来编写用于执行本申请操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如java、smalltalk、c++,还包括常规的过程式程序设计语言,诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或终端上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络,包括lan或wan,连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。

本申请实施例的技术方案,通过获取神经网络的第一层的第一待计算数据和所述第一待计算数据对应的第一神经网络计算类型;基于所述第一神经网络计算类型配置第一预设规则;基于所述第一预设规则对所述第一待计算数据进行存储,以使所述第一待计算数据按照所述第一神经网络计算类型匹配的第一数据顺序发送给数据流网络中的计算模块进行计算,其中,所述第一待计算数据按照预设的数据流向在所述数据流网络中流动。本实施例提供的神经网络计算,并没有局限于一类型的神经网络,而是通过神经网络计算类型配置预设规则,解决了相关技术中网络计算类型支持单一或不能够灵活支持多种类型网络的问题,将不同网络计算类型的数据按不同存储方式存储以达到对数据流架构的不同网络计算类型的数据进行计算的技术效果。此外,本申请实施例的技术方案还能保持高计算效率。

本申请实施例还提供了一种处理器可配置存储排布存储介质,可以将外部存储数据按不同排布顺序存储,该数据被处理器通过dma装置传输至存储装置执行时实现本申请任意实施例提供的数据存储方法。

注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1