CN112445523A - 数据处理方法、相关设备及计算机可读介质 - Google Patents
数据处理方法、相关设备及计算机可读介质 Download PDFInfo
- Publication number
- CN112445523A CN112445523A CN201910829879.3A CN201910829879A CN112445523A CN 112445523 A CN112445523 A CN 112445523A CN 201910829879 A CN201910829879 A CN 201910829879A CN 112445523 A CN112445523 A CN 112445523A
- Authority
- CN
- China
- Prior art keywords
- network
- data block
- static
- layer
- dynamic control
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 11
- 230000015654 memory Effects 0.000 claims abstract description 36
- 238000012545 processing Methods 0.000 claims abstract description 27
- 230000003068 static effect Effects 0.000 claims description 90
- 238000000034 method Methods 0.000 claims description 38
- 238000004891 communication Methods 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 6
- 238000004364 calculation method Methods 0.000 claims description 2
- 230000008569 process Effects 0.000 description 16
- 230000006870 function Effects 0.000 description 7
- 238000013527 convolutional neural network Methods 0.000 description 5
- 230000011218 segmentation Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 2
- 238000011176 pooling Methods 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000013178 mathematical model Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
-
- 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/08—Learning methods
Abstract
本发明实施例公开了一种数据处理方法、相关设备及计算机可读介质,其中,相关设备中的计算设备,包括:包括处理器、存储器以及总线,所述处理器和所述存储器通过所述总线连接,所述存储器用于存储指令,所述处理器用于调用所述存储器中存储的指令,用于执行特定的数据处理方法,以适应不同规模的数据运算,提升数据处理的实用性。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种数据处理方法、相关设备及计算机可读介质。
背景技术
在多核处理系统中,为减轻单个处理器核的工作负荷,计算设备可根据系统可用处理器核的数量对待处理数据块进行不同规模大小的拆分,以在不同处理器核上运算。
然而在实践中发现,针对单个处理器核而言如何适应不同规模大小的数据块运算,是目前亟需解决的问题。
发明内容
本发明实施例提供一种数据处理方法,能够实现不同规模大小的输入数据块的运算,提升了数据处理的实用性和高效性。
第一方面,本发明实施例提供了一种数据处理方法,该方法包括:计算设备获取针对新建网络模型的输入数据块,该新建网络模型包括动态控制网络和静态运算网络,该动态控制网络用于控制实现输入数据块的逻辑运算,静态运算网络用于执行输入数据块的逻辑运算。进一步计算设备可根据动态控制网络的指示,调用静态运算网络对输入数据块执行该动态控制网络所指示的逻辑运算,以获得运算结果。
第二方面,本发明实施例提供了一种计算设备,该计算设备包括用于执行上述第一方面的方法的单元。
第三方面,本发明实施例提供了另一种计算设备,包括处理器、存储器以及总线,所述处理器和所述存储器通过所述总线连接,所述存储器用于存储指令,所述处理器用于调用所述存储器中存储的指令,用于执行上述第一方面的方法。
第四方面,本发明实施例提供了一种计算机可读存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行上述第一方面的方法。
通过实施本发明实施例,能够在不同处理器核中实现不同规模大小的输入数据块的运算,从而有利于提升数据处理的效率和实用性。
附图说明
为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种数据处理方法的流程示意图。
图2是本发明实施例提供的一种数据处理方法的流程示意图。
图3是本发明实施例提供的一种计算设备的结构示意图。
图4是本发明实施例提供的另一种计算设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书及所述附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
首先,介绍本申请适用的指令编译运行流程。请参见图1,是本发明实施例提供的一种指令编译流程示意图。如图1所示的流程包括如下实施步骤:
S101、计算设备获取原始网络模型。
本申请中,原始网络模型可为系统预先自定义设置的数学模型,其可包括但不限于卷积神经网络(convolutional neural networks,CNN)模型、前馈神经网络(feedforward neural networks,FNN)模型、深度神经网络(depth neural networks,DNN)模型、BP(back propagation,BP)神经网络模型或其他用于数据处理的网络模型等。
原始网络模型中包括有网络拓扑结构,简称为网络结构。该网络结构由至少一个网络层组成,该网络层用于实现特定的运算功能,例如该网络层可为卷积层、池化层和激活层等。其中,本申请中“网络模型”、“网络结构”和“拓扑网络”常可被相互替换使用。
S102、计算设备对原始网络模型进行预处理。
为实现网络模型的高效运算,计算设备还可对原始网络模型进行预处理,以获得处理后的网络模型,后续可里利用处理后的网络模型进行数据运算。该预处理可为系统自定义设置的操作处理,例如其可包括但不限于压缩处理、格式转换处理等。
S103、计算设备对新建网络模型按照网络层进行层匹配,以获得每个网络层各自的参数信息。
具体的,计算设备可按照网络层对新建网络模型中包括的每个网络层进行层匹配,以计算获得新建网络模型中每个网络层各自的参数信息,该参数信息包括但不限于每个网络层所需使用的参数、该参数对应存储所在的寄存器或存储地址等,例如网络层所需使用到的权值参数(也可称为权值数据块)等。
在实际应用中,该新建网络模型可为根据原始网络模型获得。例如,该新建网络模型可为S102中预处理后的网络模型,也可为对该预处理后的网络模型进行其他设定操作后获得的网络模型,还可为对原始网络模型进行设定运算操作后获得的网络模型等,本发明不做限定。本申请下文将以对原始网络模型进行网络拆分获得新建网络模型为例进行详述。
S104、计算设备对每个网络层的参数信息进行编译,以获得抽象化指令ops。该抽象化指令具体可用预设的指令中间语言表示。
S105、计算设备对抽象化指令ops进行再编译。
S106、计算设备根据再编译后的中间结果指令rawop,获得片外数据块offchip_block。
计算设备进行层匹配后,可对层匹配获得的每个网络层各自的参数信息进行编译,以生成用中间语言表示的抽象化指令ops。进一步计算设备还可进行再编译,编译出中间结果指令rawop,进而再将rawop转换为计算设备自身(或芯片)所能识别的二进制指令。
可选地,计算设备可将rawop封装到初始片外数据块offchip_block中,以输出片外数据块offchip_block供计算设备使用。在实际应用中,上述指令编译流程也可称为片外数据块offchip_block的封装流程。以上流程在代码库(例如C10-NGPF代码库)中封装为multicore_offline函数,其目的在于封装获得片外数据块offchip_block,以传递给用户接口sopa,进而通过用户接口sopa实现新建网络模型的调用,以利用该新建网络模型实现相应地数据运算。
其中offchip_block可分为两种。一种用于存储数据,例如在编译器中存储的有效数据可用于标注代码操作的数据在片外存储器DDR上存放的地址(或位置),在代码编译过程中该地址会作为偏移地址配置到相应地输入输出IO代码中。其中,基础地址通常写在片外某个固定位置处,这样便于计算设备在实际运行阶段,会根据基础地址和偏移地址获得其对应存储的待处理的数据,以进行相应地指定运算操作。另一种用于存放人工智能处理器(machine leaning unit,MLU)的代码,由于片上指令存储器RAM的内存限制,在具体实现中代码可被切块,以存放在不同的offchip_block中。
下面阐述网络模型拆分涉及的实施例。计算设备可对任意网络模型进行网络拆分以获得新建网络模型,该新建网络模型的具体实施步骤可位于如上步骤S102-S103之间,如计算设备可对预处理后的网络模型进行网络拆分从而获得新建网络模型等。本申请下文以计算设备对原始网络模型进行网络拆分为例,阐述获得新建网络模型的具体实施例。
具体的,原始网络模型中包括有一个网络结构(也可称为拓扑网络),关于该拓扑网络本发明不做限定,例如其可包括有一个或多个诸如卷积、池化等功能的网络层。计算设备可对原始网络模型中的拓扑网络进行拆分,以获得至少两个功能网络,每个功能网络各自所具备的功能以及每个功能网络中包括的网络层均可根据实际需求进行自定义。本申请下文将以拆分获得动态控制网络和静态运算网络为例进行说明。
换句话说,网络拆分的输入为原始网络模型包括的一个拓扑网络intf_t,输出是两个拓扑网络intf_t(具体可为动态控制网络dynamic_intf_t和静态运算网络static_intf_t),拆分输出的两个拓扑网络intf_t可形成新建网络模型。
在实际应用中,动态控制网络和静态控制网络可具备相同的网络结构,其可包括有一个或多个网络层。但为实现每个网络各自的功能,动态控制网络和静态控制网络中每个网络层所调用的算子以及调用算子的数量可不相同。例如,动态控制网络仅能调用该网络中包括的动态算子,静态运算网络仅支持调用该网络中包括的静态算子等。
在可选实施例中,在网络拆分过程中,计算设备可将原始网络模型中支持调用动态算子的网络层封装为动态控制网络,将支持调用静态算子的网络层封装为静态运算网络。其中,动态算子指用于控制实现数据的逻辑运算的算子,静态算子指用于对数据实现逻辑运算的算子,例如映射函数等。
对于拆分后的任意拓扑网络intf_t(如dynamic_intf_t或static_intf_t)而言,每个拆分网络都包括有层队列intf_layer_t和数据队列intf_data_t。其中,层队列中包括有组成该网络的至少一个网络层,对于每个网络层而言其都存在有输入数据和输出数据。即是每个网络层都存在有指向数据队列intf_data_t的指针,可称为数据指针(input,output,const)。该数据指针用于指示该网络层所需使用的数据,该数据包括但不限于输入该网络层的输入数据input、输出该网络层的输出数据output以及该网络层涉及的静态数据const(例如权值数据)等。其中静态数据是指不随输入数据的改变而改变的数据,也可称为固定数据,例如用户自定义的常数、权值数据等等。
数据队列中包括有每个网络层所需使用的数据(即网络层关联的数据)。针对每个网络层关联的数据而言,每个数据都是由一个网络层产生,另一个网络层使用,则该数据同样存在有指向层队列intf_layer_t中网络层的指针,可称为层指针(consumer,provider)。该层指针用于指示使用该数据的使用网络层和产生该数据的来源网络层。
示例性地,以网络包括三个网络层为例,输入数据经过该网络包括的三个网络层处理后,分别可获得输出数据1、输出数据2和输出数据3,其中输出数据1为经过第一个网络层对输入数据进行处理后获得的输出数据,输出数据2为经过第二个网络层对输出数据1进行处理后获得的输出数据,输出数据3为经过第三个网络层对输出数据2进行处理后获得的输出数据。相应地,输出数据2的层指针即可用于指示使用该输出数据2的使用网络层(本例即第三个网络层),和产生该输出数据2的来源网络层(本例即第二个网络层)。
需要说明的是,本申请涉及的数据也可为数据块,为方便和统一描述本申请仅以数据为例进行阐述,通常“数据”和“数据块”可相互替换使用。当数据为数据块时,数据块的尺寸可为N*C*H*W,其中N表示数据块的个数,C表示通道数(也可称为维度),H表示高度,W表示宽度。以数据块为用于描述图像的数据块为例,N表示输入图像的数量,C表示图像的通道数,以图像为RGB彩色图像为例,C=3。H和W分别表示图像的高度和宽度。在实际应用中,通常以二维数据块为基础进行实际运算,本申请下文将以HW平面上的二维数据块为例进行说明。即数据块的尺寸具体可为H*W,H表示数据块的高度、W表示数据块的宽度。
可选地,在输入数据可变(例如输入数据块的尺寸高度H和宽度W可变)的情况下,在实际运算过程中计算设备可将动态控制网络封装为一个主控代码(也可称为动态控制代码),将静态运算网络封装为受控代码(也可称为静态运算代码)。运行动态控制代码时,它将会调用静态运算网络的部分受控代码对输入数据进行运算。其中,静态运算网络是针对输入数据的尺寸确定情况下进行运算的,因此为提升数据运算性能,本申请中会存在多个静态运算网络(即执行时存在多份静态运算代码)。
可选地,在计算设备部署多处理器核对数据块进行处理时,计算设备可采用预设分段策略对数据块进行拆分,以获得不同规模大小的输入数据块,进而利用该多个处理器核对不同规模大小的输入数据块进行处理。本申请实施例仅以计算设备中部署的单个处理器核为例,详述如何处理输入的可变数据块(即输入数据块的规模大小不确定)所涉及的具体实施例。
可选地,受限于数据块Ci、Co(即输入数据块的通道数Ci和输出数据块的通道数Co)的分段策略影响,具体的Ci和Co存在整数分段和余数分段两种情况在,即存在两种Ci和两种Co分段方式,这样会使得静态运算代码份数是原来的4倍。为节省代码资源和简化模型网络,本申请可将原始网络模型中包括的一个拓扑网络拆分为支持调用动态算子的动态控制网络和至少一个支持调用静态算子的静态运算网络。
具体的,计算设备可根据实际需求,对原始网络模型中拓扑网络(具体可为拓扑网络中包括的网络层)进行复制、并重新链接每个网络层之间的数据关系,以生成包括动态控制网络和静态运算网络在内的新建网络模型。在实际应用中,计算设备可预先提供一个配置文件,该配置文件中包括有网络映射关系,例如动态控制网络和静态运算网络之间的链接关系、各个网络中网络层之间的映射链接关系等等。相应地,计算设备可根据该配置文件对原始网络模型中的拓扑网络进行拆分,进而生成新建网络模型。
举例来说,以原始网络模型为卷积神经网络模型为例,该卷积神经网络模型中包括以卷积CONV为标识符的拓扑网络,在实际运行过程中计算设备通过标识符CONV可调用该拓扑网络中包含的算子,利用该算子对输入数据进行卷积运算。参照本申请上文阐述,可对卷积神经网络模型中的拓扑网络进行动静网络拆分,从而可获得以STATIC_CONV为标识符的静态运算网络和以DYNAMIC_CONV为标识符的动态控制网络。
相应地,在实际运算过程中,计算设备可通过DYNAMIC_CONV调用动态控制网络中所包括的动态算子,以根据该动态算子的指示通过DYNAMIC_CONV调用静态运算网络中所包括的静态算子(具体可为静态运算网络中每个网络层所包括的层指针和数据指针)对用户的输入数据执行卷积运算,从而获得最终的输出数据。
可选地,在各网络中还可定义其他信息,例如定义有静态算子的规模等,该静态算子的规模表示通过静态运算网络处理输入数据时所需的运算单元的数量。
可选地,计算设备拆分原始网络模型获得动态控制网络和静态运算网络后,可对应参考前述步骤S103-S106的阐述,计算设备可对这两个网络按网络层进行层匹配,进而进行编译以获得片外数据块offchip_block,这里不再赘述。
参考前述实施例,请参见图2是本发明实施例提供的一种数据处理方法的流程示意图。如图2所示的方法包括如下实施步骤:
步骤S201、计算设备获取针对新建网络模型的输入数据块,所述新建网络模型包括动态控制网络和静态运算网络,所述动态控制网络用于控制实现所述输入数据块的逻辑运算,所述静态运算网络用于执行所述输入数据块的逻辑运算。
本申请中,计算设备可获取输入新建网络模型的输入数据块,该输入数据块的尺寸可为N*C*H*W,其中N表示数据块的个数,C表示通道数(也可称为维度),H表示高度,W表示宽度。在实际应用中,通常以二维数据块为基础进行实际运算,本申请下文将以HW平面上的二维数据块为例进行说明。即数据块具体可为H*W的二维数据块,H表示数据块的高度、W表示数据块的宽度。
其中,新建网络模型为计算设备预先已获得的网络模型,该新建网络模型中包括有动态控制网络和静态运算网络,关于静态运算网络的数量并不做限定,其可为一个或多个,本申请这里以一个静态运算网络为例进行阐述。关于新建网络模型的获得具体可参考前述实施例中的相关阐述,这里不再赘述。
步骤S202、计算设备根据所述动态控制网络,调用所述静态运算网络对所述输入数据块执行所述动态控制网络所指示的逻辑运算,以获得运算结果。
计算设备在获得新建网络模型的输入数据块后,可根据模型中动态控制网络的指示,调用静态运算网络对输入数据块执行该动态控制网络所指示的逻辑运算,例如卷积运算、乘加运算等等,以获得相应地运算结果。
在一种具体实施方式中,静态运算网络中包括有层队列和数据队列,层队列中包括有组成该静态运算网络的至少一个网络层。每个网络层配置有数据指针,该数据指针用于指示该网络层关联的数据块,例如输入数据块、输出数据块和静态数据块,以便执行该网络层的相关运算时调用这些数据块,实现数据运算。数据队列中包括有每个网络层关联的数据块,该数据块配置有层指针,该层指针用于指示使用该数据块的使用网络层和产生获得该数据块的来源网络层。相应地,计算设备获得输入新建网络模型的输入数据块后,可根据动态控制网络的指示,调用静态运算网络,以根据静态运算网络中每个网络层所关联的数据指针和层指针,对该输入数据块依次进行每个网络层所关联的静态算子所指示的逻辑运算,从而获得该新建网络模型输出的运算结果。
在可选实施例中,计算设备还可将新建网络模型中包括的动态控制网络和静态运算网络封装或编译为对应的网络结构指令,例如将动态控制网络编译为动态控制指令,将静态运算网络编译为静态运算指令。相应地,在利用该新建网络模型进行数据处理时,计算设备可通过调用该网络结构指令(例如动态控制指令和静态控制指令)来实现相应地数据处理。例如,本申请中计算设备获得动态控制指令后,可可根据动态控制指令的指示调用相应地静态运算指令,进而根据该静态运算指令对待处理数据块进行相应地运算等。
通过实施本发明实施例,能够实现不同规模大小的输入数据块的运算,提升了数据处理的实用性和高效性。
请参见图3,是本发明实施例提供的一种数据处理装置的结构示意图。如图3所示的装置300包括通信模块302和处理模块304。其中,
所述通信模块302,用于获取针对新建网络模型的输入数据块,所述新建网络模型包括动态控制网络和静态运算网络,所述动态控制网络用于控制实现所述输入数据块的逻辑运算,所述静态运算网络用于执行所述输入数据块的逻辑运算;
所述处理模块304,用于根据所述动态控制网络,调用所述静态运算网络对所述输入数据块执行所述动态控制网络所指示的逻辑运算,以获得运算结果。
在一些可能的实施例中,所述处理模块304还用于对原始网络模型进行网络拆分,以将调用动态算子的网络层封装为动态控制网络,将调用静态算子的网络层封装为静态运算网络,从而获得包括所述动态控制网络和所述静态运算网络在内的新建网络模型。
在一些可能的实施例中,所述动态控制网络和所述静态运算网络具备相同的网络拓扑结构。
在一些可能的实施例中,所述新建网络模型包括层队列和数据队列,所述层队列中包括构成所述新建网络模型的至少一个网络层,所述数据队列包括所述至少一个网络层中每个网络层关联的数据块;其中,每个所述网络层配置有数据指针,所述数据指针用于指示所述网络层关联的数据块,所述数据块包括所述网络层的输入数据块、输出数据块以及预置的静态数据块;每个所述网络层关联的数据块配置有层指针,所述层指针用于指示当前需使用所述数据块的使用网络层和获得所述数据块关联的来源网络层。
在一些可能的实施例中,所述处理模块304具体用于将所述输入数据块输入所述静态运算网络,根据所述静态运算网络包括的每个网络层的数据指针和层指针,依次进行所述每个网络层关联的静态算子所指示的逻辑运算,以获得所述静态运算网络输出的运算结果。
在一些可能的实施例中,所述处理模块304还用于将所述新建网络模型中的所述动态控制网络和所述静态运算网络编译为对应的网络结构指令,以调用所述网络结构指令执行对应的数据运算。
可选地,装置300还包括有存储模块306,其存储有用于实现装置300的相关操作的程序代码。在实际应用中,本发明实施例中的装置涉及的各模块或单元具体可通过软件程序或硬件实现。当由软件程序实现时,装置涉及的各模块或单元均为软件模块或软件单元,当由硬件实现时,装置涉及的各模块或单元可以通过专用集成电路(application-specific integrated circuit,ASIC)实现,或可编程逻辑器件(programmable logicdevice,PLD)实现,上述PLD可以是复杂程序逻辑器件(complex programmable logicaldevice,CPLD),现场可编程门阵列(field-programmable gate array,FPGA),通用阵列逻辑(generic array logic,GAL)或其任意组合,本发明不做限定。
需要说明的,图3仅仅是本申请实施例的一种可能的实现方式,实际应用中,数据处理装置中还可以包括更多或更少的部件,这里不作限制。关于本发明实施例中未示出或未描述的内容,可参见前述方法实施例中的相关阐述,这里不再赘述。
请参见图4,是本发明实施例提供的一种计算设备的结构示意图。如图4所示的计算设备400包括一个或多个处理器401、通信接口402和存储器403,处理器401、通信接口402和存储器403可通过总线方式连接,也可通过无线传输等其他手段实现通信。本发明实施例以通过总线404连接为例其中,该存储器403用于存储指令,该处理器401用于执行该存储器403存储的指令。该存储器403存储程序代码,且处理器401可以调用存储器403中存储的程序代码执行如下操作:
获取针对新建网络模型的输入数据块,所述新建网络模型包括动态控制网络和静态运算网络,所述动态控制网络用于控制实现所述输入数据块的逻辑运算,所述静态运算网络用于执行所述输入数据块的逻辑运算;
根据所述动态控制网络,调用所述静态运算网络对所述输入数据块执行所述动态控制网络所指示的逻辑运算,以获得运算结果。
关于本发明实施例中未示出或未描述的内容,具体可参见前述图1-图3所述实施例中的相关阐述,这里不再赘述。
应当理解,在本发明实施例中,所称处理器401可以是中央处理单元(CentralProcessing Unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
通信接口402可以为有线接口(例如以太网接口)或无线接口(例如蜂窝网络接口或使用无线局域网接口),用于与其他模块或装置设备进行通信。例如,本申请实施例中通信接口402具体可用于获取输入新建网络模型的输入数据块等。
存储器403可以包括易失性存储器(Volatile Memory),例如随机存取存储器(Random Access Memory,RAM);存储器也可以包括非易失性存储器(Non-VolatileMemory),例如只读存储器(Read-Only Memory,ROM)、快闪存储器(Flash Memory)、硬盘(Hard Disk Drive,HDD)或固态硬盘(Solid-State Drive,SSD);存储器还可以包括上述种类的存储器的组合。存储器可用于存储一组程序代码,以便于处理器调用存储器中存储的程序代码以实现本发明实施例中涉及的上述各功能模块的功能。
需要说明的,图4仅仅是本发明实施例的一种可能的实现方式,实际应用中,计算设备还可以包括更多或更少的部件,这里不作限制。关于本发明实施例中未示出或未描述的内容,可参见前述方法实施例中的相关阐述,这里不再赘述。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在处理器上运行时,图1或图2所示的方法流程得以实现。
本发明实施例还提供一种计算机程序产品,当所述计算机程序产品在处理器上运行时,图1或图2实施例中所示的方法流程得以实现。
所述计算机可读存储介质可以是前述任一实施例所述的计算设备的内部存储单元,例如计算设备的硬盘或内存。所述计算机可读存储介质也可以是所述计算设备的外部存储设备,例如所述计算设备上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述计算机可读存储介质还可以既包括所述客户端的内部存储单元也包括外部存储设备。所述计算机可读存储介质用于存储所述计算机程序以及所述计算设备所需的其他程序和数据。所述计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的终端设备和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的终端设备和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种数据处理方法,其特征在于,包括:
获取针对新建网络模型的输入数据块,所述新建网络模型包括动态控制网络和静态运算网络,所述动态控制网络用于控制实现所述输入数据块的逻辑运算,所述静态运算网络用于执行所述输入数据块的逻辑运算;
根据所述动态控制网络,调用所述静态运算网络对所述输入数据块执行所述动态控制网络所指示的逻辑运算,以获得运算结果。
2.根据权利要求1所述的方法,其特征在于,所述获取针对新建网络模型的输入数据块之前,还包括:
对原始网络模型进行网络拆分,以将调用动态算子的网络层封装为动态控制网络,将调用静态算子的网络层封装为静态运算网络,从而获得包括所述动态控制网络和所述静态运算网络在内的新建网络模型。
3.根据权利要求2所述的方法,其特征在于,所述动态控制网络和所述静态运算网络具备相同的网络拓扑结构。
4.根据权利要求3所述的方法,其特征在于,所述新建网络模型包括层队列和数据队列,所述层队列中包括构成所述新建网络模型的至少一个网络层,所述数据队列包括所述至少一个网络层中每个网络层关联的数据块;
其中,每个所述网络层配置有数据指针,所述数据指针用于指示所述网络层关联的数据块,所述数据块包括所述网络层的输入数据块、输出数据块以及预置的静态数据块;
每个所述网络层关联的数据块配置有层指针,所述层指针用于指示当前需使用所述数据块的使用网络层和获得所述数据块关联的来源网络层。
5.根据权利要求4所述的方法,其特征在于,所述调用所述静态运算网络对所述输入数据块执行所述动态控制网络所指示的逻辑运算,以获得运算结果包括:
将所述输入数据块输入所述静态运算网络,根据所述静态运算网络包括的每个网络层的数据指针和层指针,依次进行所述每个网络层关联的静态算子所指示的逻辑运算,以获得所述静态运算网络输出的运算结果。
6.根据权利要求1-5中任一项所述的方法,其特征在于,所述方法还包括:
将所述新建网络模型中的所述动态控制网络和所述静态运算网络编译为对应的网络结构指令,以调用所述网络结构指令执行对应的数据运算。
7.一种数据处理装置,其特征在于,包括通信模块和处理模块,其中:
所述通信模块,用于获取针对新建网络模型的输入数据块,所述新建网络模型包括动态控制网络和静态运算网络,所述动态控制网络用于控制实现所述输入数据块的逻辑运算,所述静态运算网络用于执行所述输入数据块的逻辑运算;
所述处理模块,用于根据所述动态控制网络,调用所述静态运算网络对所述输入数据块执行所述动态控制网络所指示的逻辑运算,以获得运算结果。
8.根据权利要求7所述的装置,其特征在于,
所述处理模块,还用于对原始网络模型进行网络拆分,以将调用动态算子的网络层封装为动态控制网络,将调用静态算子的网络层封装为静态运算网络,从而获得包括所述动态控制网络和所述静态运算网络在内的新建网络模型。
9.一种计算设备,其特征在于,包括处理器、存储器以及总线,所述处理器和所述存储器通过所述总线连接,所述存储器用于存储指令,所述处理器用于调用所述存储器中存储的指令,用于执行如上权利要求1-6中任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行如权利要求1-6任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910829879.3A CN112445523A (zh) | 2019-09-02 | 2019-09-02 | 数据处理方法、相关设备及计算机可读介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910829879.3A CN112445523A (zh) | 2019-09-02 | 2019-09-02 | 数据处理方法、相关设备及计算机可读介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112445523A true CN112445523A (zh) | 2021-03-05 |
Family
ID=74735349
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910829879.3A Pending CN112445523A (zh) | 2019-09-02 | 2019-09-02 | 数据处理方法、相关设备及计算机可读介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112445523A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040098563A1 (en) * | 2002-11-19 | 2004-05-20 | Stmicroelectronics, Inc. | Coprocessor extension architecture built using a novel split-instruction transaction model |
US20090144502A1 (en) * | 2002-08-26 | 2009-06-04 | Renesky Tap Iii, Limited Liability Compnay | Meta-Architecture Defined Programmable Instruction Fetch Functions Supporting Assembled Variable Length Instruction Processors |
CN101808126A (zh) * | 2010-03-12 | 2010-08-18 | 清华大学 | 一种用于实时视频处理的分布式计算系统和方法 |
US20150046913A1 (en) * | 2013-07-09 | 2015-02-12 | International Business Machines Corporation | Data splitting for multi-instantiated objects |
US20180121796A1 (en) * | 2016-11-03 | 2018-05-03 | Intel Corporation | Flexible neural network accelerator and methods therefor |
CN109726806A (zh) * | 2017-10-30 | 2019-05-07 | 上海寒武纪信息科技有限公司 | 信息处理方法及终端设备 |
-
2019
- 2019-09-02 CN CN201910829879.3A patent/CN112445523A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090144502A1 (en) * | 2002-08-26 | 2009-06-04 | Renesky Tap Iii, Limited Liability Compnay | Meta-Architecture Defined Programmable Instruction Fetch Functions Supporting Assembled Variable Length Instruction Processors |
US20040098563A1 (en) * | 2002-11-19 | 2004-05-20 | Stmicroelectronics, Inc. | Coprocessor extension architecture built using a novel split-instruction transaction model |
CN101808126A (zh) * | 2010-03-12 | 2010-08-18 | 清华大学 | 一种用于实时视频处理的分布式计算系统和方法 |
US20150046913A1 (en) * | 2013-07-09 | 2015-02-12 | International Business Machines Corporation | Data splitting for multi-instantiated objects |
US20180121796A1 (en) * | 2016-11-03 | 2018-05-03 | Intel Corporation | Flexible neural network accelerator and methods therefor |
CN109726806A (zh) * | 2017-10-30 | 2019-05-07 | 上海寒武纪信息科技有限公司 | 信息处理方法及终端设备 |
Non-Patent Citations (1)
Title |
---|
宾洋;杨东超;陈娜娜;陈恳;: "新型压电驱动机电耦合动力学系统分析与建模", 电机与控制学报, no. 02, pages 1 - 6 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11151442B2 (en) | Convolutional neural network processing method and device | |
CN108958714B (zh) | 业务组件式开发方法、装置、计算机设备及存储介质 | |
JP2019139747A (ja) | 演算装置、演算実行設備及び演算実行方法 | |
CN110673853B (zh) | 一种编译方法、装置及系统 | |
CN109324793A (zh) | 支持算法组件化的处理系统及方法 | |
EP3912074B1 (en) | Generating a synchronous digital circuit from a source code construct defining a function call | |
Kugler | Is" good enough" computing good enough? | |
US11630983B2 (en) | Graph conversion method | |
CN112783506B (zh) | 一种模型运行方法及相关装置 | |
CN115686527A (zh) | 基于算子的编译方法、装置、计算机设备和存储介质 | |
CN111784000A (zh) | 数据处理方法、装置和服务器 | |
CN115906988A (zh) | 神经网络推理架构的创建方法、神经网络推理方法及装置 | |
CN110750359A (zh) | 硬件资源配置方法、装置、云侧设备和存储介质 | |
CN109766123A (zh) | 应用程序封装方法及装置 | |
CN109976751B (zh) | 模型操作方法、相关装置及计算机可读存储介质 | |
CN112445523A (zh) | 数据处理方法、相关设备及计算机可读介质 | |
Milakovich et al. | Automated software generation and hardware coprocessor synthesis for data-adaptable reconfigurable systems | |
CN104407864A (zh) | 一种jni层的算法进行多实例调用的封装方法和系统 | |
CN110333870B (zh) | Simulink模型变量分配的处理方法、装置及设备 | |
CN114581241A (zh) | 智能合约的处理方法和装置、处理器及电子设备 | |
CN112685043A (zh) | 回调函数的异步转化方法、装置、设备及可读存储介质 | |
CN111552478A (zh) | 用于生成cuda程序的设备、方法和存储介质 | |
CN110673890A (zh) | 插件调用方法、系统、介质及装置 | |
CN111488216B (zh) | 一种数据处理的方法、装置及电子设备 | |
CN116483482B (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 |