CN110413539A - 一种数据处理方法及装置 - Google Patents

一种数据处理方法及装置 Download PDF

Info

Publication number
CN110413539A
CN110413539A CN201910530760.6A CN201910530760A CN110413539A CN 110413539 A CN110413539 A CN 110413539A CN 201910530760 A CN201910530760 A CN 201910530760A CN 110413539 A CN110413539 A CN 110413539A
Authority
CN
China
Prior art keywords
data
input data
tcm
space
type
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
Application number
CN201910530760.6A
Other languages
English (en)
Other versions
CN110413539B (zh
Inventor
吴金进
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Intellifusion Technologies Co Ltd
Original Assignee
Shenzhen Intellifusion Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shenzhen Intellifusion Technologies Co Ltd filed Critical Shenzhen Intellifusion Technologies Co Ltd
Priority to CN201910530760.6A priority Critical patent/CN110413539B/zh
Publication of CN110413539A publication Critical patent/CN110413539A/zh
Priority to PCT/CN2019/121358 priority patent/WO2020253117A1/zh
Application granted granted Critical
Publication of CN110413539B publication Critical patent/CN110413539B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks

Abstract

本发明实施例提供一种数据处理方法及装置,该方法包括:接收包括输入数据和输入数据对应的功能层类型的输入信息;使用功能层类型对应的资源分配方式为输入数据分配第一紧耦合内存TCM空间;使用功能层类型对应的数据切割方式切割输入数据;使用功能层类型对应的卷积神经网络CNN算子在第一TCM空间处理切割后的输入数据。实施本发明实施例,可以提高通用性。

Description

一种数据处理方法及装置
技术领域
本发明涉及计算机技术领域,具体涉及一种数据处理方法及装置。
背景技术
随着人工智能的不断普及,用于实现人工智能的算法越来越多。而这些算法对数据的处理一般都是在数字信号处理器(digital signal processor,DSP)中进行的,因此,先需要对不同的数据分配不同的紧耦合内存(tightly coupled memories,TCM)以便对数据进行处理。目前,不同的数据分配多少TCM空间一般由用户预先分配好再写入DSP。因此,针对每次处理的数据都需要用户提前分配好TCM空间并写入DSP,通用性较差。
发明内容
本发明实施例提供一种数据处理方法及装置,用于提高通用性。
本发明实施例第一方面提供一种数据处理方法,包括:
接收包括输入数据和所述输入数据对应的功能层类型的输入信息;
使用所述功能层类型对应的资源分配方式为所述输入数据分配第一TCM空间;
使用所述功能层类型对应的数据切割方式切割所述输入数据;
使用所述功能层类型对应的卷积神经网络(convolutional neural networks,CNN)算子在所述第一TCM空间处理切割后的输入数据。
由于使用功能层类型对应的资源分配方式为输入数据分配TCM空间,对所有的数据都适用,而不需要用户针对不同的数据进行预先分配并写入DSP,因此,可以提高资源分配的通用性。
作为一种可能的实施方式,所述方法还包括:
从功能层库中获取所述功能层类型对应的功能层;
所述使用所述功能层类型对应的资源分配方式为所述输入数据分配第一TCM空间包括:
使用所述功能层对应的资源分配方式为所述输入数据分配第一TCM空间;
所述使用所述功能层类型对应的数据切割方式切割所述输入数据包括:
使用所述功能层对应的数据切割方式切割所述输入数据;
所述使用所述功能层类型对应的CNN算子在所述第一TCM空间处理切割后的输入数据包括:
使用所述功能层对应的CNN算子在所述第一TCM空间处理切割后的输入数据。
可见,在功能层库中包括多种功能层,可以根据功能层类型的不同选择不同的功能层,可以得到合适的资源分配方式、数据切割方式和CNN算子,从而可以提高数据处理效率。
作为一种可能的实施方式,所述方法还包括:
解析所述输入信息得到输入数据属性,所述输入数据属性包括输入数据类型;
所述使用所述功能层对应的资源分配方式为所述输入数据分配第一TCM空间包括:
使用所述功能层对应的资源分配方式根据所述输入数据类型,计算所述输入数据的数据量;
根据所述输入数据的数据量确定所述输入数据所需空间大小;
将TCM中所述输入数据所需空间大小的空间分配给所述输入数据,得到第一TCM空间。
可见,为输入数据分配的TCM空间的大小是根据输入数据类型确定的,因此,可以为输入数据分配到合适的TCM空间大小,即不会浪费资源,也不会影响数据的正常处理,从而可以提高资源分配的精度。
作为一种可能的实施方式,所述使用所述功能层对应的数据切割方式切割所述输入数据包括:
根据所述输入数据所需空间大小使用所述功能层对应的所述数据切割方式切割所述输入数据。
由于输入数据较大,而能够为输入数据分配的TCM空间是有限的,因此,可以通过数据切割的方式将大数据切割为多个小数据依次进行处理,即不会影响数据的处理也不会占用太大的资源,从而可以保证数据的正常处理。
作为一种可能的实施方式,所述解析所述输入信息得到输入数据属性包括:
解析所述输入信息得到输入数据属性和输出数据属性,所述输出数据属性包括输出数据类型;
所述方法还包括:
使用所述功能层对应的资源分配方式根据所述输出数据类型,计算所述输出数据的数据量;
根据所述输出数据的数据量确定所述输出数据所需空间大小;
将所述TCM中所述输出数据所需空间大小的空间分配给所述输出数据,得到第二TCM空间;
将所述输入数据的处理结果存储至所述第二TCM空间。
可见,为输出数据专门分配了TCM空间,可以存放输入数据的处理结果,以便后续可以调用处理结果。
作为一种可能的实施方式,所述方法还包括:
获取所述功能层类型、所述输入数据类型和所述输出数据类型对应的CNN算子;
所述使用所述功能层对应的CNN算子在所述第一TCM空间处理切割后的输入数据包括:
使用获取的CNN算子在所述第一TCM空间处理切割后的输入数据。
可见,CNN算子是根据功能层类型、输入数据类型和输出数据类型确定的,而不是随意确定的,因此,可以使用合适的CNN算子对输入数据进行处理,可以提高数据处理精度和效率。
作为一种可能的实施方式,所述解析所述输入信息得到输入数据属性和输出数据属性包括:
解析所述输入信息得到输入数据属性、输出数据属性和权重属性,所述权重属性包括权重类型;
所述方法还包括:
获取所述功能层类型、所述输入数据类型和所述权重类型对应的CNN算子;
所述使用所述功能层对应的CNN算子在所述第一TCM空间处理切割后的输入数据包括:
使用获取的CNN算子在所述第一TCM空间处理切割后的输入数据。
可见,在输入信息包括权重信息的情况下,CNN算子是根据功能层类型、输入数据类型和权重类型确定的,而不是随意确定的,因此,可以使用合适的CNN算子对输入数据进行处理,可以提高数据处理精度和效率。
作为一种可能的实施方式,所述获取所述功能层类型、所述输入数据类型和所述输出数据类型对应的CNN算子包括:
根据所述功能层类型确定CNN算子的算子类型;
根据所述输入数据类型和所述输出数据类型确定CNN算子的数据输入类型;
获取所述算子类型和所述数据输入类型对应的CNN算子。
可见,CNN算子的类型是由功能层类型确定的,CNN算子的数据输入类型是由输入数据类型和输出数据类型确定的,可以通过功能层类型、输入数据类型和输出数据类型确定一个合适的CNN算子,可以提高数据处理精度和效率。
本发明实施例第二方面提供一种数据处理装置,包括用于执行第一方面或第一方面的任一实施例提供的数据处理方法的单元。
本发明实施例第三方面提供一种数据处理装置,包括处理器和存储器,所述处理器和所述存储器相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器用于调用所述程序指令执行第一方面或第一方面的任一实施例提供的数据处理方法。
第四方面提供了一种可读存储介质,所述可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行第一方面或第一方面的任一实施例提供的数据处理方法。
第五方面提供了一种应用程序,该应用程序用于在运行时执行第一方面或第一方面的任一实施例提供的数据处理方法。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种数据处理方法的流程示意图;
图2是本发明实施例提供的另一种数据处理方法的流程示意图;
图3是本发明实施例提供的一种数据处理装置的结构示意图;
图4是本发明实施例提供的另一种数据处理装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供一种数据处理方法及装置,可以提高通用性。以下分别进行详细说明。
请参阅图1,图1是本发明实施例提供的一种数据处理方法的流程示意图。根据不同的需求,图1所示的流程图中的某些步骤可以拆分为几个步骤,几个步骤也可以合为一个步骤。其中,该数据处理方法应用于DSP(digital signal processor,数字信号处理器)。如图1所示,该数据处理方法可以包括以下步骤。
101、接收输入信息。
输入信息可以包括输入数据和输入数据对应的功能层类型。输入数据为待处理的数据,可以为卷积(convolution)层数据,也可以为池化(pooling)层数据,还可以为全连接层(fully connected layers,FC)数据,还可以为解卷积数据,还可以为深度(depthwise,DW)卷积数据,还可以为批处理(batch normalization,BN)数据,还可以为PReLU(Parametric Rectified Linear Unit,参数整流线性单元)数据,还可以为L2归一化(L2normalization,L2N)数据,还可以为ReLU(Rectified Linear Unit,整流线性单元)数据,还可以为Sigmoid数据,还可以为其它需要CNN(convolutional neural networks,卷积神经网络)处理的数据。每次的输入数据可以为一层数据,可以为一层卷积层数据,也可以为一层池化层数据,还可以为一层全连接层数据,还可以为一层其它层数据。
功能层类型可以为卷积层,也可以为池化层,还可以为FC层,还可以为解卷积,还可以为DW卷积,还可以为BN,还可以为PReLU,还可以为L2N,还可以为ReLU,还可以为Sigmoid,还可以为其它类型。输入数据可以与功能层类型一一对应,即一种类型的输入数据唯一对应一种功能层类型,如卷积层数据对应的功能层为卷积层。也可以是多种类型的输入数据对应一种功能层类型。
102、使用功能层类型对应的资源分配方式为输入数据分配第一TCM(tightlycoupled memories,紧耦合内存)空间。
由于不同的功能层类型可以对应不同的资源分配方式,接收到输入信息之后,可以使用功能层类型对应的资源分配方式为输入数据分配第一TCM空间。一个功能层类型可以对应一种资源分配方式,一种资源分配方式可以对应一种或多种功能层类型。资源分配方式可以为卷积层方式,也可以为池化层方式,还可以为FC层方式,还可以为整体方式,还可以为其它方式。
103、使用功能层类型对应的数据切割方式切割输入数据。
由于不同的功能层类型可以对应不同的数据切割方式,使用功能层类型对应的资源分配方式为输入数据分配好第一TCM空间之后,可以使用功能层类型对应的数据切割方式切割输入数据。一个功能层类型可以对应一种数据切割方式,一种数据切割方式可以对应一种或多种功能层类型。数据切割方式可以为卷积层方式,也可以为池化层方式,还可以为FC层方式,还可以为整体方式,还可以为其它方式。可以根据输入数据所需空间大小使用功能层类型对应的数据切割方式切割输入数据,即第一次从输入数据中切割的数据的大小可以等于输入数据所需空间大小,后续每次从未被切割的输入数据中切割的数据的大小可以均等于输入数据所需空间大小,直到未被切割的输入数据的大小小于或等于输入数据所需空间大小。
104、使用功能层类型对应的CNN算子在第一TCM空间处理切割后的输入数据。
由于不同的功能层类型可以对应不同的CNN算子,使用功能层类型对应的数据切割方式切割输入数据之后,可以使用功能层类型对应的CNN算子在第一TCM空间处理切割后的输入数据。可以先将第一数据搬移到第一TCM空间,之后可以在第一TCM空间使用功能层类型对应的CNN算子处理第一数据。在第一数据处理完之后,可以将第二数据搬移到第一TCM空间,之后可以在第一TCM空间使用功能层类型对应的CNN算子处理第二数据,直到处理完所有切割的输入数据,第一数据和第二数据是切割后的输入数据中的数据片段。
在图1所描述的数据处理方法中,由于使用功能层类型对应的资源分配方式为输入数据分配TCM空间,对所有的数据都适用,而不需要用户针对不同的数据进行预先分配并写入DSP,因此,可以提高资源分配的通用性。
请参阅图2,图2是本发明实施例提供的另一种数据处理方法的流程示意图。根据不同的需求,图2所示的流程图中的某些步骤可以拆分为几个步骤,几个步骤也可以合为一个步骤。其中,该数据处理方法应用于DSP。如图2所示,该数据处理方法可以包括以下步骤。
201、接收输入信息。
输入信息可以包括输入数据张量(Tensor)数量和输入数据Tensor信息。输入数据Tensor数量可以指示输入数据包括几个Tensor。输入数据Tensor信息可以包括输入数据Tensor数量个输入数据Tensor的信息。输入数据Tensor信息可以包括输入数据类型、输入数据的维度、输入数据的最大维度和输入数据。输入数据类型可以为每个输入数据Tensor的字节数。输入数据的维度可以为输入数据的维度,可以是一维,也可以是二维,还可以是三维,还可以是四维,还可以为其它维。输入数据的最大维度为输入数据被允许的最大维度。输入数据为待处理的数据,可以为卷积层数据,也可以为池化层数据,还可以为FC层数据,还可以为解卷积数据,还可以为深度卷积数据,还可以为BN数据,还可以为PReLU数据,还可以为L2N数据,还可以为ReLU数据,还可以为Sigmoid数据,还可以为其它需要CNN处理的数据。每次的输入数据可以为一层的数据,可以为一层卷积层数据,也可以为一层池化层数据,还可以为一层全连接层的数据,还可以为一层其它层数据。在输入数据为图像数据的情况下,输入数据Tensor信息还可以包括有效数据的区域信息。有效数据的区域信息可以包括左(left)、顶(top)、宽(width)和高(height),可以指示有效数据在图像中的位置,确定横坐标上的值为左以及纵坐标上的值为顶的点,以这个点为起始位置沿纵坐标负方向所在高以及沿横坐标正方向所在宽的区域为这个区域。
输入信息可以包括输入数据对应的功能层类型。功能层类型可以为卷积层,也可以为池化层,还可以为FC层,还可以为解卷积,还可以为DW卷积,还可以为BN,还可以为PReLU,还可以为L2N,还可以为ReLU,还可以为Sigmoid,还可以为其它类型。
输入信息还可以包括输出数据Tensor数量和输出数据Tensor信息。输出数据Tensor数量可以指示输出数据包括几个Tensor。输出数据Tensor信息可以包括输出数据Tensor数量个输出数据Tensor的信息。输出数据Tensor信息可以包括输出数据类型、输出数据的维度和输出数据的最大维度。输出数据类型可以为每个输出数据Tensor的字节数。输出数据的维度可以为输出数据的维度。输出数据的最大维度为输出数据被允许的最大维度数。
输入信息还可以包括权重(weight)参数,权重参数可以包括权重信息。在定点模型下,权重参数还可以包括偏置(bias)信息和转移(shift)信息。在权重参数包括权重信息、偏置信息和转移信息的情况下,排序依次为权重信息、偏置信息和转移信息。
输入信息还可以包括层参数数组和层参数大小,层参数大小可以指示层参数数组的大小。
202、从功能层库中获取功能层类型对应的功能层。
由于不同的功能层对应的资源分配方式、数据切割方式和/或CNN算子可能不同,因此,接收到输入信息之后,可以从功能层库中获取功能层类型对应的功能层。
203、解析输入信息得到输入数据属性和输出数据属性。
由于针对同一输入信息不同的功能层解析出来的结果可能不同,因此,从功能层库中获取功能层类型对应的功能层之后,可以先解析输入信息得到输入数据属性和输出数据属性。此处的解析,可以为翻译,如将英文翻译为中文,也可以为转换,如将输入信息中的信息的格式转换为功能层可以处理的信息的格式,还可以为其它类似的处理。
可以通过输入数据Tensor数量和和输入数据Tensor信息解析出输入数据属性。输入数据属性可以包括输入数据维度和输入数据类型。在输入数据的最大维度为4维,输入数据的维度为三维的情况下,输入数据维度可以包括通道、高和宽。输入数据类型请参考上述描述。
可以通过输出数据Tensor数量和输出数据Tensor信息解析出输出数据属性,输出数据属性可以包括输出数据维度和输出数据类型。在输出数据的最大维度为4维,输出数据的维度为三维的情况下,输出数据维度可以包括通道、高和宽。输出数据类型请参考上述描述。
可以通过权重参数中解析出权重属性。权重属性可以包括权重类型,权重类型为权重数据中每个权重数据Tensor的字节数。在定点模型下,还可以解析出偏置(bias)属性和转移(shift)属性。偏置属性可以包括偏置类型,偏置类型为偏置数据中每个偏置数据Tensor的字节数。转移属性可以包括转移类型,转移类型为转移数据中每个转移数据Tensor的字节数。
可选地,可以通过层参数数组和层参数大小解析出核(Kernel)信息。核信息可以包括核维度、步长(Stride)维度和填充(Padding)维度。核维度可以包括高和宽,步长维度可以包括高和宽,填充维度可以包括高和宽。
204、根据输入数据属性使用功能层对应的资源分配方式为输入数据分配第一TCM空间,以及根据输出数据属性使用功能层对应的资源分配方式为输出数据分配第二TCM空间。
解析出输入数据得到输入数据属性和输出数据属性之后,可以根据输入数据属性使用功能层对应的资源分配方式为输入数据分配第一TCM空间,以及根据输出数据属性使用功能层对应的资源分配方式为输出数据分配第二TCM空间。可以先使用功能层对应的资源分配方式根据输入数据类型计算输入数据的数据量,以及使用功能层对应的资源分配方式根据输出数据类型计算输出数据的数据量,之后可以根据输入数据的数据量确定输入数据所需空间大小,以及可以根据输出数据的数据量确定输出数据所需空间大小,之后将TCM中输入数据所需空间大小的空间分配给输入数据得到第一TCM空间,以及将TCM中输出数据所需空间大小的空间分配给输出数据得到第二TCM空间,即从TCM的空闲空间中分配输入数据所需空间大小的空间给输入数据,以及从TCM的空闲空间中分配输出数据所需空间大小的空间给输出数据。资源分配方式可以为卷积层方式,也可以为池化层方式,还可以为FC层方式,还可以为整体方式,还可以为其它方式。
在资源分配方式为卷积层方式的情况下,该资源分配方式可以分为两阶段,在输入数据满足第一阶段(seg1-1)要求的情况下,按照第一阶段行分配资源;在第一阶段资源分配失败后会启动第二阶段(seg1-2)资源分配,在第一阶段行切割方式的基础上进行通道切割分配资源。第一阶段(seg1-1)资源分配可以如下:
可以先计算每行全通道下输入数据的数据量(in_hsize,带填充)和输出数据的数据量(out_hsize)。在输入信息包括权重参数的情况下,还需要计算全通道权重数据量(weight_para1)。in_hsize可以为输入数据的通道、输入数据的宽和输入数据类型的乘积。out_hsize可以为输出数据的通道、输出数据的宽与输出数据类型的乘积。weight_para1可以为输入数据的通道、输出数据的通道、核尺寸和权重类型的乘积,核尺寸可以为核的高与宽的乘积。在权重参数还包括偏置信息和转移信息的情况下,weight_para1还要加上这两种信息的数据量,这两种数据量计算公式分别为输出数据的通道与各自类型(即偏置类型或转移类型)的乘积。之后计算最小数据量(min_size1)。min_size1可以为输入数据的最小数据量(in_min_size1)和输出数据的最小数据量(out_min_size1)之和。在输入信息包括权重参数的情况下,min_size1可以为in_min_size1、out_min_size1和weight_para1之和。in_min_size1可以为核的高与in_hsize的乘积,out_min_size1可以为out_hsize。之后可以判断min_size1是否小于或等于资源最大值(NN_POOL_SIZE),即是否小于或等于空闲的TCM空间大小。在判断出min_size1小于或等于NN_POOL_SIZE的情况下,使用第一阶段资源计算,即计算每段输入数据的数据量和每段输出数据的数据量。输入数据和输出数据的资源可分配量(remain_res)可以为NN_POOL_SIZE与weight_para1的差值。输入数据的预留量可以为核的高与步长的高的差值再与in_hsize的乘积,每段输出数据的行数(seg1_size)等于remain_res与输入数据的预留量的差值再除以deno,deno可以为步长的高与in_hsize的乘积再加上out_hsize。第一阶段的分段数(seg1_num)可以为输出数据的行数除以seg1_size。每段输入数据的行数可以为seg1_size与一的差值再与步长的高的乘积,再加核的高。每段输入数据的数据量可以为每段输入数据的行数与in_hsize的乘积。每段输出数据的数据量可以为每段输出数据的行数与out_hsize的乘积,权重数据量可以是weight_para1。之后可以将TCM中每段输入数据的数据量的空间分配给输入数据得到第一TCM空间,可以将TCM中每段输出数据的数据量的空间分配给输出数据得到第二TCM空间,可以将TCM中权重数据量的空间分配给权重数据得到第三TCM空间。此时第二阶段的分段数(seg2_num)是1,每段的通道数(seg2_size)为输出数据的通道数。
在判断出min_size1大于NN_POOL_SIZE的情况下,进入第二阶段资源分配。第二阶段(seg1-2)资源分配可以如下:
输入数据的最小数据量(in_min_size2)可以为in_min_size1。每行单通道下输出数据的数据量(out_wsize)可以为输出数据的宽与输出数据类型的乘积,输出数据的最小数据量(out_min_size2)可以为out_wsize。输出单通道下的权重数据量(weight_para2)可以为输入数据的通道、核尺寸以及权重类型的乘积。第二阶段的最小数据量(min_size2)可以为in_min_size2、out_min_size2和weight_para2之和。之后判断min_size2是否小于或等于NN_POOL_SIZE,在判断出小于或等于NN_POOL_SIZE的情况下,可以进行第二阶段资源计算。在判断出大于NN_POOL_SIZE的情况下,可以输出警告。第二阶段的输入数据和输出数据的资源可分配量(remain_res)可以为NN_POOL_SIZE与in_min_size2的差值。每段输出数据的通道数(seg2_size)可以为remain_res除以deno,deno可以为out_wsize与weight_para2之和。第二阶段的分段数(seg2_num)可以为输出数据的通道除以seg2_size。每段输入数据的数据量可以为in_min_size2。每段输出数据的数据量可以为seg2_size与out_wsize的乘积。权重数据量可以为out_wsize与weight_para2的乘积。之后可以将TCM中每段输入数据的数据量的空间分配给输入数据得到第一TCM空间,可以将TCM中每段输出数据的数据量的空间分配给输出数据得到第二TCM空间,可以将TCM中权重数据量的空间分配给权重数据得到第三TCM空间。此时第一阶段的段数(seg1_num)是输出数据的行数,每段的行数(seg1_size)为1。
在资源分配方式为池化层方式的情况下,该资源分配方式可以分为两阶段,在输入数据满足第一阶段(seg2-1)要求的情况下,按照第一阶段行切割分配资源;当第一阶段资源分配失败后会启动第二阶段(seg2-2)资源分配,在第一阶段行切割方式的基础上进行通道切割分配资源。第一阶段(seg2-1)资源分配可以如下:
可以先计算输入数据的每通道数据量(in_plane_size,带填充)、输出数据的每通道数据量(out_plane_size)以及权重每通道数据量(weight_inch_size)。in_plane_size可以为输入数据的行数、输入数据的宽以及输入数据类型的乘积,out_plane_size可以为输出数据的行数、输出数据的宽以及输出数据类型的乘积,weight_inch_size可以为核尺寸和权重类型的乘积。在权重参数包括偏置信息和转移信息的情况下,weight_inch_size还要加上这两种信息的数据量,这两种数据量计算公式分别为各自类型(即偏置类型或转移类型,也即每个偏置数据或转移数据的字节数)的乘积。之后计算最小数据量(min_size1)。min_size1可以为输入数据的最小数据量(in_min_size1)、输出数据的最小数据量(out_min_size1)和权重的最小数据量(weight_para1)之和。in_min_size1可以为in_plane_size,out_min_size1可以为out_plane_size,weight_para1可以为weight_inch_size。之后可以判断min_size1是否小于或等于资源最大值(NN_POOL_SIZE),即是否小于或等于空闲的TCM空间大小。在判断出min_size1小于或等于NN_POOL_SIZE的情况下,使用第一阶段资源计算,即计算每段输入数据的数据量和每段输出数据的数据量。输入数据和输出数据的资源可分配量可以为NN_POOL_SIZE。每段输出数据的通道数(seg1_size)可以为NN_POOL_SIZE除以deno,deno可以为min_size1。第一阶段的分段数(seg1_num)可以为输出数据的通道除以seg1_size,每段输入数据的数据量可以为seg1_size与in_plane_size的乘积。每段输出数据的数据量可以为seg1_size与out_plane_size的乘积,权重数据量可以为seg1_size与weight_inch_size的乘积。之后可以将TCM中每段输入数据的数据量的空间分配给输入数据得到第一TCM空间,可以将TCM中每段输出数据的数据量的空间分配给输出数据得到第二TCM空间,可以将TCM中权重数据量的空间分配给权重数据得到第三TCM空间。此时第二阶段的分段数(seg2_num)是1,每段的通道数(seg2_size)为输出数据的行数。
在判断出min_size1大于NN_POOL_SIZE的情况下,进入第二阶段资源分配。第二阶段(seg2-2)资源分配可以如下:
每行输入数据的数据量(in_wsize)可以为输入数据的宽(包含填充)与输入数据类型的乘积,输入数据的最小数据量(in_min_size2)可以为核的高与in_wsize的乘积。每行输出数据的数据量(out_wsize)可以为输出数据的宽与输出数据类型的乘积,输出数据的最小数据量(out_min_size2)可以为out_wsize。权重数据量(weight_para2)可以为weight_inch_size。第二阶段的最小数据量(min_size2)可以为in_min_size2、out_min_size2和weight_para2之和。之后判断min_size2是否小于或等于NN_POOL_SIZE,在判断出小于或等于NN_POOL_SIZE的情况下,可以进行第二阶段资源计算。在判断出大于NN_POOL_SIZE的情况下,可以输出警告。第二阶段的输入数据和输出数据的资源可分配量(remain_res)可以为NN_POOL_SIZE与weight_para2的差值再减去输入数据的预留量。输入数据的预留量可以为核的高与步长的高的差值再乘以in_wsize。每段输出数据的通道数(seg2_size)可以为remain_res除以deno,deno可以为步长的高与in_wsize的乘积再加out_wsize。第二阶段的分段数(seg2_num)可以为输出数据的行数除以seg2_size,每段输入数据的行数可以为seg2_size与一的差值乘以步长的高,再加核的高。每段输入数据的数据量可以为每段输入数据的行数与in_wsize的乘积。每段输出数据的数据量可以为每段输出数据的行数与out_wsize的乘积。权重数据量可以为weight_para2。之后可以将TCM中每段输入数据的数据量的空间分配给输入数据得到第一TCM空间,可以将TCM中每段输出数据的数据量的空间分配给输出数据得到第二TCM空间,可以将TCM中权重数据量的空间分配给权重数据量得到第三TCM空间。此时第一阶段的段数(seg1_num)是输出数据的通道数,每段的通道数(seg1_size)为1。
在资源分配方式为全连接层方式的情况下,该资源分配方式可以分为两阶段,在输入数据满足第一阶段(seg3-1)要求的的情况下,按照第一阶段行切割分配资源;在第一阶段资源分配失败后会启动第二阶段(seg3-2)资源分配,在第一阶段行切割方式基础上进行通道切割分配资源。第一阶段(seg3-1)资源分配可以如下:
可以先计算输入数据的每通道数据量(in_plane_size,带填充的)、输出数据的每通道数据量(out_plane_size)以及权重每通道数据量(weight_inch_size)。in_plane_size可以为输入数据的行数、输入数据的宽以及输入数据类型的乘积。out_plane_size可以为输出数据的行数、输出数据的宽以及输出数据类型的乘积。weight_inch_size可以为输入数据的通道、输入数据的行数、输入数据的宽以及输入数据类型的乘积。在权重参数包括偏置信息和转移信息的情况下,weight_inch_size还要加上这两种信息的数据量,这两种数据量计算公式分别为各自数据类型(即偏置类型或转移类型,也即每个偏置数据或转移数据中每个数据的字节数)的乘积。之后计算第一阶段的最小数据量(min_size1)。min_size1可以为输入数据的最小数据量(in_min_size1)、输出数据的最小数据量(out_min_size1)和权重的最小数据量(weight_para1)之和。in_min_size1可以为输入数据的通道与in_plane_size的乘积,out_min_size1可以为out_plane_size,weight_para1可以为weight_inch_size。之后可以判断min_size1是否小于或等于资源最大值(NN_POOL_SIZE),即是否小于或等于空闲的TCM空间大小。在判断出min_size1小于或等于NN_POOL_SIZE的情况下,使用第一阶段资源计算,即计算每段输入数据的数据量和每段输出数据的数据量。第一阶段的输入数据和输出数据的资源可分配量(remain_res)可以为NN_POOL_SIZE与in_min_size1的差值。每段输出数据的通道数(seg1_size)可以为NN_POOL_SIZE除deno,deno可以为out_min_size1和weight_para1之和。第一阶段的分段数(seg1_num)可以为输出数据的通道除seg1_size。每段输入数据的数据量可以为in_min_size1。每段输出数据的数据量可以为seg1_size与out_plane_size的乘积。权重数据量可以为seg1_size与weight_inch_size的乘积。之后可以将TCM中每段输入数据的数据量的空间分配给输入数据得到第一TCM空间,可以将TCM中每段输出数据的数据量的空间分配给输出数据得到第二TCM空间,可以将TCM中权重数据量的空间分配给权重数据得到第三TCM空间。此时第一阶段的分段数(seg1_num)是输出数据的行数,每段的行数(seg1_size)为1。
在判断出min_size1大于NN_POOL_SIZE的情况下,进入第二阶段资源分配。第二阶段(seg3-2)资源分配可以如下:
第二阶段的最小数据量(min_size2)可以为out_min_size1、输入数据类型与权重类型之和。之后判断min_size2是否小于或等于NN_POOL_SIZE,在判断出小于或等于NN_POOL_SIZE的情况下,可以进行第二阶段资源计算。在判断出大于NN_POOL_SIZE的情况下,可以输出警告。第二阶段的输入数据和输出数据的资源可分配量(remain_res)可以为NN_POOL_SIZE与out_min_size1的差值,每段的数据量(seg2_size)可以为remain_res除deno,deno可以为输入数据类型与权重类型之和。第二阶段的分段数(seg2_num)可以为in_min_size1与输入数据类型(in_cn)的比值再除seg2_size。每段输入数据的数据量可以为seg2_size乘in_cn。每段输出数据的数据量可以为out_min_size1,权重数据量可以为seg2_size乘权重类型(weight_cn)。之后可以将TCM中每段输入数据的数据量的空间分配给输入数据得到第一TCM空间,可以将TCM中每段输出数据的数据量的空间分配给输出数据得到第二TCM空间,可以将TCM中权重数据量的空间分配给权重数据量得到第三TCM空间。此时第一阶段的段数(seg1_num)是输出数据的通道数,每段的通道数(seg1_size)为1。
在上述三种资源分配方式中,为了后续处理器处理分配的TCM空间中数据的过程中不会出现问题,在处理器为32字节的情况下,可以对分配的TCM空间中的地址进行4字节对齐,在处理器为64字节的情况下,可以对分配的TCM空间中的地址进行8字节对齐。如果seg1和seg2资源都分配失败,说明数据量已经超出资源分配能力,可以上报异常,不执行功能层的操作。
在资源分配方式为整体方式的情况下,该资源分配方式只有一个阶段。输入数据和输出数据的资源可分配量(remain_res)可以为NN_POOL_SIZE,每段输入数据或输出数据的数据量(seg0_size)可以为remain_res除deno,deno可以为输入数据类型(in_cn)和输出数据类型(out_cn)之和。分段数(seg0_num)可以为输入数据的最小数据量(in_min_size0)与in_cn的比值再除seg0_size,in_min_size0可以为in_cn。每段输入数据的数据量可以为seg0_size乘in_cn。每段输出数据的数据量可以为seg0_size乘out_cn。之后可以将TCM中每段输入数据的数据量的空间分配给输入数据得到第一TCM空间,可以将TCM中每段输出数据的数据量的空间分配给输出数据得到第二TCM空间。
基于同样的理由,整体方式资源分配中,在处理器为32字节的情况下,可以对分配的TCM空间中的地址进行4字节对齐,在处理器为64字节的情况下,可以对分配的TCM空间中的地址进行8字节对齐。
205、根据输入数据所需空间大小使用功能层对应的数据切割方式切割输入数据。
根据输入数据属性使用功能层对应的资源分配方式为输入数据分配第一TCM空间,以及根据输出数据属性使用功能层对应的资源分配方式为输出数据分配第二TCM空间之后,可以根据输入数据所需空间大小使用该功能层对应的数据切割方式切割输入数据。数据切割可以分成两种层次,数据量相对小的可以按照层次1进行数据切割,数据量相对大的可以按照层次2进行数据切割。在第一TCM空间使用第一阶段进行资源分配的情况下,可以使用层次1进行数据切割。在第一TCM空间使用第二阶段进行资源分配的情况下,可以使用层次2进行数据切割。数据切割方式可以为卷积层方式,也可以为池化层方式,还可以为FC层方式,还可以为整体切割方式,还可以为其它方式。
在数据切割方式为卷积层方式的情况下,可以先按照行切割再按照通道切割,即层次1输入数据和输出数据进行切割,权重数据不切割;层次2输出数据和权重数据按照输出数据的通道切割,输入数据不做切割。层次1和层次2的切割均可以利用直接存储器访问(direct memory access,DMA)多通道的搬移方式来实现。
在数据切割方式为池化层方式的情况下,可以先按照通道切割再按照行切割,即层次1的切割按照通道切割,层次2的切割按照行切割。层次1的切割可以利用DMA连续搬移方式将多通道的数据切割,层次2可以在单通道下利用DMA连续搬移方式将多行数据切割。不管层次1或者层次2权重数据只能按照通道切割。
在数据切割方式为全连接层方式的情况下,可以先按照输出数据的通道切割再按照输入数据的整体切割。层次1可以按照输出数据的通道方式切割输出数据和权重数据,输入数据整体搬移不做切割。层次2在输出数据单通道下对输入数据和权重数据按照整体切割方式切割。
在数据切割方式为整体方式的情况下,可以按照整体数据量进行分割搬移。
上述四种方式中每次切割的输入数据的大小为第一TCM空间的大小。
在有核的情况下切割搬移行数需要比每段的行数多出几行,多出的行数为核的高与步长的高的差值。
在功能层类型为卷积、解卷积的情况下,资源分配方式和数据切割方式可以为卷积层方式。在输入数据包括核的情况下,输入数据的行数需要通过计算,在输入数据不包括核的情况下,输入数据和输出数据同等切割。
在输入数据包括核,功能层类型为深度卷积和池化的情况下,资源分配方式和数据切割方式可以为池化层方式。在输入数据不包括核,功能层类型为BN、PReLU的情况下,资源分配方式和数据切割方式可以为池化层方式。在输入数据包括核的情况下,输入数据的行数需要通过计算,在输入数据不包括核的情况下,输入数据和输出数据同等切割。
在功能层类型为FC的情况下,资源分配方式和数据切割方式可以为全连接层方式。
在功能层类型为L2N、ReLU、Sigmoid的情况下,资源分配方式和数据切割方式可以为整体方式。其中,L2为一种正则化方法。
206、获取功能层类型和输入数据类型对应的CNN算子。
可以获取功能层类型和输入数据类型对应的CNN算子。在未解析出权重属性的情况下,可以获取功能层类型、输入数据类型和输出数据类型对应的CNN算子。可以先根据功能层类型确定CNN算子的算子类型,根据输入数据类型和输出数据类型确定CNN算子的数据输入类型,之后获取算子类型和数据输入类型对应的CNN算子,即从功能层包括的CNN中选取算子类型和数据输入类型对应的CNN算子。
在解析出权重属性的情况下,可以获取功能层类型、输入数据类型和权重类型对应的CNN算子。可以先根据功能层类型确定CNN算子的算子类型,根据输入数据类型和权重类型确定CNN算子的数据输入类型,之后获取算子类型和数据输入类型对应的CNN算子,即从功能层包括的CNN中选取算子类型和数据输入类型对应的CNN算子。
在解析出层属性的情况下,还需要根据功能层的操作属性确定CNN算子的操作属性,之后获取算子类型、数据输入类型和CNN算子的操作属性对应的CNN算子。
207、使用获取的CNN算子在第一TCM空间处理切割的输入数据。
根据输入数据属性使用功能层对应的资源分配方式为输入数据分配第一TCM空间,根据输出数据属性使用功能层对应的资源分配方式为输出数据分配第二TCM空间,根据输入数据所需空间大小使用功能层对应的数据切割方式切割输入数据,以及获取到功能层类型和输入数据类型对应的CNN算子之后,可以使用获取的CNN算子在第一TCM空间对切割的输入数据进行处理。可以先将切割的输入数据搬移到第一TCM空间,之后可以在第一TCM空间使用CNN算子对输入数据进行处理。可以先将第一数据搬移到第一TCM空间,之后可以在第一TCM空间使用功能层类型对应的CNN算子处理第一数据。在第一数据处理完之后,可以将第二数据搬移到第一TCM空间,之后可以在第一TCM空间使用功能层类型对应的CNN算子处理第二数据,直到处理完所有切割的输入数据,第一数据和第二数据是切割后的输入数据中的数据片段。
208、将输入数据的处理结果存储至第二TCM空间。
在图2所描述的数据处理方法中,由于使用功能层类型对应的资源分配方式为输入数据分配TCM空间,对所有的数据都适用,而不需要用户针对不同的数据进行预先分配并写入DSP,因此,可以提高资源分配的通用性。
请参阅图3,图3是本发明实施例提供的一种数据处理装置的结构示意图。如图3所示,该数据处理装置可以包括:
接收单元301,用于接收包括输入数据和输入数据对应的功能层类型的输入信息;
分配单元302,用于使用功能层类型对应的资源分配方式为输入数据分配第一TCM空间;
切割单元303,用于使用功能层类型对应的数据切割方式切割输入数据;
处理单元304,用于使用功能层类型对应的CNN算子在第一TCM空间处理切割后的输入数据。
在一个实施例中,该数据处理装置还可以包括:
获取单元305,用于从功能层库中获取功能层类型对应的功能层;
分配单元302,具体用于使用功能层对应的资源分配方式为输入数据分配第一TCM空间;
切割单元303,具体用于使用功能层对应的数据切割方式切割输入数据;
处理单元304,具体用于使用功能层对应的CNN算子在第一TCM空间处理切割后的输入数据。
在一个实施例中,该数据处理装置还可以包括:
解析单元306,用于解析输入信息得到输入数据属性,输入数据属性输入数据类型;
分配单元302具体用于:
使用功能层对应的资源分配方式根据输入数据类型,计算输入数据的数据量;
根据输入数据的数据量确定输入数据所需空间大小;
将TCM中输入数据所需空间大小的空间分配给输入数据,得到第一TCM空间。
在一个实施例中,切割单元303,具体用于根据输入数据所需空间大小使用功能层对应的所述数据切割方式切割输入数据。
在一个实施例中,解析单元306,具体用于解析输入信息得到输入数据属性和输出数据属性,输出数据属性包括输出数据类型;
分配单元302,还用于使用功能层对应的资源分配方式根据输出数据类型,计算输出数据的数据量,根据输出数据的数据量确定输出数据所需空间大小,以及将TCM中输出数据所需空间大小的空间分配给输出数据,得到第二TCM空间;
该数据处理装置还可以包括:
存储单元307,用于将输入数据的处理结果存储至第二TCM空间。
在一个实施例中,获取单元305,还用于获取功能层类型、输入数据类型和输出数据类型对应的CNN算子,或者获取功能层类型、输入数据类型和输出数据类型对应的CNN算子;
处理单元304,具体用于使用获取的CNN算子在第一TCM空间处理切割后的输入数据。
有关上述接收单元301、分配单元302、切割单元303、处理单元304、获取单元305、解析单元306和存储单元307更详细的描述可以直接参考上述图1-图2所示的方法实施例中的相关描述直接得到,这里不加赘述。
请参阅图4,图4是本发明实施例提供的另一种数据处理装置的结构示意图。如图4所示,该数据处理装置可以包括处理器401、存储器402和总线403。处理器401可以是一个通用中央处理器(CPU)或多个CPU,单块或多块图形处理器(GPU),微处理器,特定应用集成电路(application-specific integrated circuit,ASIC),或一个或多个用于控制本发明方案程序执行的集成电路。存储器402可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、只读光盘(Compact Disc Read-Only Memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器402可以是独立存在,总线403与处理器401相连接。存储器402也可以和处理器401集成在一起。总线403在上述组件之间传送信息。其中:
存储器402中存储有一组程序代码,处理器401用于调用存储器402中存储的程序代码执行以下操作:
接收包括输入数据和输入数据对应的功能层类型的输入信息;
使用功能层类型对应的资源分配方式为输入数据分配第一TCM空间;
使用功能层类型对应的数据切割方式切割输入数据;
使用功能层类型对应的CNN算子在第一TCM空间处理切割后的输入数据。
在一个实施例中,处理器401还用于调用存储器402中存储的程序代码执行以下操作:
从功能层库中获取功能层类型对应的功能层;
处理器401使用功能层类型对应的资源分配方式为输入数据分配第一TCM空间包括:
使用功能层对应的资源分配方式为输入数据分配第一TCM空间;
处理器401使用功能层类型对应的数据切割方式切割输入数据包括:
使用功能层对应的数据切割方式切割输入数据;
处理器401使用功能层类型对应的CNN算子在第一TCM空间处理切割后的输入数据包括:
使用所述功能层对应的CNN算子在所述第一TCM空间处理切割后的输入数据。
在一个实施例中,处理器401还用于调用存储器402中存储的程序代码执行以下操作:
解析输入信息得到输入数据属性,输入数据属性包括输入数据类型;
处理器401使用功能层对应的资源分配方式为输入数据分配第一TCM空间包括:
使用功能层对应的资源分配方式根据输入数据类型,计算输入数据的数据量;
根据输入数据的数据量确定输入数据所需空间大小;
将TCM中输入数据所需空间大小的空间分配给输入数据,得到第一TCM空间。
在一个实施例中,处理器401使用功能层对应的数据切割方式切割输入数据包括:
根据输入数据所需空间大小使用功能层对应的所述数据切割方式切割输入数据。
在一个实施例中,处理器401解析输入信息得到输入数据属性包括:
解析输入信息得到输入数据属性和输出数据属性,输出数据属性包括输出数据类型;
处理器401还用于调用存储器402中存储的程序代码执行以下操作:
使用功能层对应的资源分配方式根据输出数据类型,计算输出数据的数据量;
根据输出数据的数据量确定输出数据所需空间大小;
将TCM中输出数据所需空间大小的空间分配给输出数据,得到第二TCM空间;
将输入数据的处理结果存储至第二TCM空间。
在一个实施例中,处理器401还用于调用存储器402中存储的程序代码执行以下操作:
获取功能层类型、输入数据类型和输出数据类型对应的CNN算子;
处理器401使用功能层对应的CNN算子在第一TCM空间处理切割后的输入数据包括:
使用获取的CNN算子在第一TCM空间处理切割后的输入数据。
在一个实施例中,处理器401解析输入信息得到输入数据属性和输出数据属性包括:
解析输入信息得到输入数据属性、输出数据属性和权重属性,权重属性包括权重类型;
处理器401还用于调用存储器402中存储的程序代码执行以下操作:
获取功能层类型、输入数据类型和权重类型对应的CNN算子;
处理器401使用功能层对应的CNN算子在第一TCM空间处理切割后的输入数据包括:
使用获取的CNN算子在第一TCM空间处理切割后的输入数据。
其中,步骤101-104、步骤201-208可以由数据处理装置中的处理器401和存储器402来执行。
其中,接收单元301、分配单元302、切割单元303、处理单元304、获取单元305、解析单元306和存储单元307可以由数据处理装置中的处理器401和存储器402来实现。
上述数据处理装置还可以用于执行前述方法实施例中执行的各种方法,不再赘述。
在一个实施例中提供了一种可读存储介质,该可读存储介质用于存储应用程序,应用程序用于在运行时执行图1或图2的数据处理方法。
在一个实施例中提供了一种应用程序,该应用程序用于在运行时执行图1或图2的数据处理方法。
以上对本发明实施例进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (10)

1.一种数据处理方法,其特征在于,包括:
接收包括输入数据和所述输入数据对应的功能层类型的输入信息;
使用所述功能层类型对应的资源分配方式为所述输入数据分配第一TCM空间;
使用所述功能层类型对应的数据切割方式切割所述输入数据;
使用所述功能层类型对应的CNN算子在所述第一TCM空间处理切割后的输入数据。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
从功能层库中获取所述功能层类型对应的功能层;
所述使用所述功能层类型对应的资源分配方式为所述输入数据分配第一TCM空间包括:
使用所述功能层对应的资源分配方式为所述输入数据分配第一TCM空间;
所述使用所述功能层类型对应的数据切割方式切割所述输入数据包括:
使用所述功能层对应的数据切割方式切割所述输入数据;
所述使用所述功能层类型对应的CNN算子在所述第一TCM空间处理切割后的输入数据包括:
使用所述功能层对应的CNN算子在所述第一TCM空间处理切割后的输入数据。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
解析所述输入信息得到输入数据属性,所述输入数据属性包括输入数据类型;
所述使用所述功能层对应的资源分配方式为所述输入数据分配第一TCM空间包括:
使用所述功能层对应的资源分配方式根据所述输入数据类型,计算所述输入数据的数据量;
根据所述输入数据的数据量确定所述输入数据所需空间大小;
将TCM中所述输入数据所需空间大小的空间分配给所述输入数据,得到第一TCM空间。
4.根据权利要求3所述的方法,其特征在于,所述使用所述功能层对应的数据切割方式切割所述输入数据包括:
根据所述输入数据所需空间大小使用所述功能层对应的所述数据切割方式切割所述输入数据。
5.根据权利要求3或4所述的方法,其特征在于,所述解析所述输入信息得到输入数据属性包括:
解析所述输入信息得到输入数据属性和输出数据属性,所述输出数据属性包括输出数据类型;
所述方法还包括:
使用所述功能层对应的资源分配方式根据所述输出数据类型,计算所述输出数据的数据量;
根据所述输出数据的数据量确定所述输出数据所需空间大小;
将所述TCM中所述输出数据所需空间大小的空间分配给所述输出数据,得到第二TCM空间;
将所述输入数据的处理结果存储至所述第二TCM空间。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
获取所述功能层类型、所述输入数据类型和所述输出数据类型对应的CNN算子;
所述使用所述功能层对应的CNN算子在所述第一TCM空间处理切割后的输入数据包括:
使用获取的CNN算子在所述第一TCM空间处理切割后的输入数据。
7.根据权利要求5所述的方法,其特征在于,所述解析所述输入信息得到输入数据属性和输出数据属性包括:
解析所述输入信息得到输入数据属性、输出数据属性和权重属性,所述权重属性包括权重类型;
所述方法还包括:
获取所述功能层类型、所述输入数据类型和所述权重类型对应的CNN算子;
所述使用所述功能层对应的CNN算子在所述第一TCM空间处理切割后的输入数据包括:
使用获取的CNN算子在所述第一TCM空间处理切割后的输入数据。
8.一种数据处理装置,其特征在于,包括:
接收单元,用于接收包括输入数据和所述输入数据对应的功能层类型的输入信息;
分配单元,用于使用所述功能层类型对应的资源分配方式为所述输入数据分配第一TCM空间;
切割单元,用于使用所述功能层类型对应的数据切割方式切割所述输入数据;
处理单元,用于使用所述功能层类型对应的CNN算子在所述第一TCM空间处理切割后的输入数据。
9.一种数据处理装置,其特征在于,包括处理器和存储器,所述处理器和所述存储器相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器用于调用所述程序指令执行如权利要求1-7任一项所述的数据处理方法。
10.一种存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行如权利要求1-7任一项所述的数据处理方法。
CN201910530760.6A 2019-06-19 2019-06-19 一种数据处理方法及装置 Active CN110413539B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201910530760.6A CN110413539B (zh) 2019-06-19 2019-06-19 一种数据处理方法及装置
PCT/CN2019/121358 WO2020253117A1 (zh) 2019-06-19 2019-11-27 一种数据处理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910530760.6A CN110413539B (zh) 2019-06-19 2019-06-19 一种数据处理方法及装置

Publications (2)

Publication Number Publication Date
CN110413539A true CN110413539A (zh) 2019-11-05
CN110413539B CN110413539B (zh) 2021-09-14

Family

ID=68359262

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910530760.6A Active CN110413539B (zh) 2019-06-19 2019-06-19 一种数据处理方法及装置

Country Status (2)

Country Link
CN (1) CN110413539B (zh)
WO (1) WO2020253117A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020253117A1 (zh) * 2019-06-19 2020-12-24 深圳云天励飞技术有限公司 一种数据处理方法及装置
CN112286694A (zh) * 2020-12-24 2021-01-29 瀚博半导体(上海)有限公司 基于深度学习计算网络的硬件加速器内存分配方法及系统
CN113407338A (zh) * 2021-05-29 2021-09-17 国网辽宁省电力有限公司辽阳供电公司 一种分段架构的a/d转换芯片资源分配方法
CN115118678A (zh) * 2022-06-07 2022-09-27 上海赛治信息技术有限公司 一种fc设备端的多分区网络通信系统及其通信方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107836001A (zh) * 2015-06-29 2018-03-23 微软技术许可有限责任公司 硬件加速器上的卷积神经网络
US20180136912A1 (en) * 2016-11-17 2018-05-17 The Mathworks, Inc. Systems and methods for automatically generating code for deep learning systems
CN108154229A (zh) * 2018-01-10 2018-06-12 西安电子科技大学 基于fpga加速卷积神经网络框架的图片处理方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107066239A (zh) * 2017-03-01 2017-08-18 智擎信息系统(上海)有限公司 一种实现卷积神经网络前向计算的硬件结构
US11573239B2 (en) * 2017-07-17 2023-02-07 Bioinformatics Solutions Inc. Methods and systems for de novo peptide sequencing using deep learning
CN108304923B (zh) * 2017-12-06 2022-01-18 腾讯科技(深圳)有限公司 卷积运算处理方法及相关产品
CN108304265B (zh) * 2018-01-23 2022-02-01 腾讯科技(深圳)有限公司 内存管理方法、装置及存储介质
CN110413539B (zh) * 2019-06-19 2021-09-14 深圳云天励飞技术有限公司 一种数据处理方法及装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107836001A (zh) * 2015-06-29 2018-03-23 微软技术许可有限责任公司 硬件加速器上的卷积神经网络
US20180136912A1 (en) * 2016-11-17 2018-05-17 The Mathworks, Inc. Systems and methods for automatically generating code for deep learning systems
CN108154229A (zh) * 2018-01-10 2018-06-12 西安电子科技大学 基于fpga加速卷积神经网络框架的图片处理方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
阮敬: "《python数据分析基础 第2版》", 31 August 2018 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020253117A1 (zh) * 2019-06-19 2020-12-24 深圳云天励飞技术有限公司 一种数据处理方法及装置
CN112286694A (zh) * 2020-12-24 2021-01-29 瀚博半导体(上海)有限公司 基于深度学习计算网络的硬件加速器内存分配方法及系统
CN113407338A (zh) * 2021-05-29 2021-09-17 国网辽宁省电力有限公司辽阳供电公司 一种分段架构的a/d转换芯片资源分配方法
CN115118678A (zh) * 2022-06-07 2022-09-27 上海赛治信息技术有限公司 一种fc设备端的多分区网络通信系统及其通信方法
CN115118678B (zh) * 2022-06-07 2024-03-12 南京全信传输科技股份有限公司 一种fc设备端的多分区网络通信系统及其通信方法

Also Published As

Publication number Publication date
CN110413539B (zh) 2021-09-14
WO2020253117A1 (zh) 2020-12-24

Similar Documents

Publication Publication Date Title
CN110413539A (zh) 一种数据处理方法及装置
CN109117186A (zh) 神经网络处理装置及其执行向量外积指令的方法
DE202016107446U1 (de) Rotation von Daten für Berechnungen in neuronalen Netzwerken
CN112200300B (zh) 卷积神经网络运算方法及装置
US10635765B2 (en) Cluster drawing on divided display region allocated to cluster
CN112163601B (zh) 图像分类方法、系统、计算机设备及存储介质
US11763131B1 (en) Systems and methods for reducing power consumption of convolution operations for artificial neural networks
EP3076310A1 (en) Variable virtual split dictionary for search optimization
CN114820279B (zh) 基于多gpu的分布式深度学习方法、装置及电子设备
CN115186802A (zh) 基于卷积神经网络的块稀疏方法、装置及处理单元
CN105786619A (zh) 虚拟机分配方法及装置
CN106775987A (zh) 一种在IaaS云中安全提高资源效率的虚拟机调度方法
CN115390788A (zh) 基于fpga的图卷积神经网络稀疏矩阵乘法分配系统
CN112819157B (zh) 神经网络训练的方法及装置、智能行驶控制的方法及装置
CN109635937A (zh) 一种面向低位宽卷积神经网络的低功耗系统
CN109086819A (zh) caffemodel模型压缩方法、系统、设备及介质
CN103338246B (zh) 一种基础设施云资源分配过程中的虚拟机选择方法及系统
CN103019852B (zh) 一种适用于大规模集群的mpi并行程序负载问题三维可视化分析方法
CN111599015A (zh) 一种约束条件下的空间多边形网格化填充方法和装置
CN116128019A (zh) Transformer模型的并行训练方法及装置
CN115859011A (zh) 矩阵运算方法、装置及单元、电子设备
CN115374912A (zh) 一种用于异构计算的融合算子设计方法和异构计算系统
Artignan et al. Multiscale visual analysis of lexical networks
Qasaimeh et al. An efficient hardware architecture for sparse convolution using linear feedback shift registers
CN104965976A (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