CN109074334A - 数据处理方法、设备、dma控制器及计算机可读存储介质 - Google Patents
数据处理方法、设备、dma控制器及计算机可读存储介质 Download PDFInfo
- Publication number
- CN109074334A CN109074334A CN201780022803.9A CN201780022803A CN109074334A CN 109074334 A CN109074334 A CN 109074334A CN 201780022803 A CN201780022803 A CN 201780022803A CN 109074334 A CN109074334 A CN 109074334A
- Authority
- CN
- China
- Prior art keywords
- configuration
- dma
- feature vector
- input feature
- configuration information
- 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
Classifications
-
- 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
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Biomedical Technology (AREA)
- Molecular Biology (AREA)
- Biophysics (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Navigation (AREA)
- Image Processing (AREA)
Abstract
一种数据处理方法、设备、DMA控制器及计算机可读存储介质,所述方法包括:根据输入特征图的特征信息生成第一DMA读配置信息和第一DMA写配置信息,并确定第二DMA读配置信息和第二DMA写配置信息(201);根据所述第一DMA读配置信息,从所述输入特征图中读取数据;根据所述第一DMA写配置信息,将读取的数据输出给运算逻辑(202);根据所述第二DMA读配置信息读取运算逻辑的运算结果;根据所述第二DMA写配置信息,将读取的运算结果存储到输出特征图(203)。应用该方法,可以由DMA控制器实现CNN中的数据搬移,不需要由CPU实现CNN中的数据搬移,从而减轻CPU负担,更高效地搬移数据,进而起到加速CNN运算的效果,同时也不失灵活性。
Description
技术领域
本发明涉及图像处理技术领域,尤其是涉及一种数据处理方法、设备、DMA(DirectMemory Access,直接内存存取)控制器及计算机可读存储介质。
背景技术
在机器学***面组成,每个平面由多个独立的神经元组成。一般地,CNN可以由卷积层和池化层组成,卷积层的作用是提取图像的各种特征,池化层的作用是对原始特征信号进行两次特征提取,以减小特征分辨率,大幅度减少训练参数,并可以减轻模型过拟合的程度。此外,CNN以其局部权值共享的特殊结构,降低网络的复杂性,特别是多维输入向量的图像可以直接输入网络这一特点,避免了特征提取和分类过程中数据重建的复杂度,因而得到广泛应用。
CNN中涉及多种数据搬移任务,数据搬移任务由CPU(Central Processing Unit,中央处理器)实现,其数据搬移效率较低,给CPU增加过多负担。
发明内容
本发明提供数据处理方法、设备、DMA控制器及计算机可读存储介质。
本发明第一方面,提供一种数据处理方法,应用于DMA控制器,包括:
根据输入特征图的特征信息生成第一DMA读配置信息和第一DMA写配置信息,并确定第二DMA读配置信息和第二DMA写配置信息;
根据所述第一DMA读配置信息,从所述输入特征图中读取数据;根据所述第一DMA写配置信息,将读取的数据输出给运算逻辑;
根据所述第二DMA读配置信息读取运算逻辑的运算结果;根据所述第二DMA写配置信息,将读取的运算结果存储到输出特征图。
本发明第二方面,提供一种数据处理方法,应用于DMA控制器,包括:
根据第一输入特征图的特征信息生成第一DMA读配置信息和第一DMA写配置信息,根据第二输入特征图的特征信息生成第二DMA读配置信息和第二DMA写配置信息,并确定第三DMA读配置信息和第三DMA写配置信息;
根据所述第一DMA读配置信息,从第一输入特征图中读取第一数据;根据所述第一DMA写配置信息,将读取的第一数据输出给运算逻辑;
根据所述第二DMA读配置信息,从第二输入特征图中读取第二数据;根据所述第二DMA写配置信息,将读取的第二数据输出给运算逻辑;
根据所述第三DMA读配置信息读取所述运算逻辑的运算结果;根据所述第三DMA写配置信息,将读取的运算结果存储到输出特征图。
本发明第三方面,提供一种DMA控制器,所述DMA控制器用于:
根据输入特征图的特征信息生成第一DMA读配置信息和第一DMA写配置信息,并确定第二DMA读配置信息和第二DMA写配置信息;
根据所述第一DMA读配置信息,从所述输入特征图中读取数据;根据所述第一DMA写配置信息,将读取的数据输出给运算逻辑;
根据所述第二DMA读配置信息读取运算逻辑的运算结果;根据所述第二DMA写配置信息,将读取的运算结果存储到输出特征图。
本发明第四方面,提供一种DMA控制器,所述DMA控制器用于:
根据第一输入特征图的特征信息生成第一DMA读配置信息和第一DMA写配置信息,根据第二输入特征图的特征信息生成第二DMA读配置信息和第二DMA写配置信息,并确定第三DMA读配置信息和第三DMA写配置信息;
根据所述第一DMA读配置信息,从第一输入特征图中读取第一数据;根据所述第一DMA写配置信息,将读取的第一数据输出给运算逻辑;
根据所述第二DMA读配置信息,从第二输入特征图中读取第二数据;根据所述第二DMA写配置信息,将读取的第二数据输出给运算逻辑;
根据所述第三DMA读配置信息读取所述运算逻辑的运算结果;根据所述第三DMA写配置信息,将读取的运算结果存储到输出特征图。
本发明第五方面,提供一种数据处理设备,所述数据处理设备包括:
存储器,用于存储程序代码;DMA控制器,用于调用所述程序代码,当所述程序代码被执行时,实现权利要求上述的数据处理方法。
本发明第六方面,提供一种计算机可读存储介质,计算机可读存储介质上存储有若干计算机指令,所述计算机指令被执行时实现上述数据处理方法。
基于上述技术方案,本发明实施例中,可以由DMA控制器实现CNN中的数据搬移,不需要由CPU实现CNN中的数据搬移,从而减轻CPU负担,更高效地搬移数据,进而起到加速CNN运算的效果,同时也不失灵活性。
附图说明
为了更加清楚地说明本发明实施例或者现有技术中的技术方案,下面将对本发明实施例或者现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据本发明实施例的这些附图获得其它的附图。
图1A-图1G是DMA控制器的工作原理示意图;
图2A-图2I是对输入特征图进行Pooling操作的示意图;
图3A-图3F是对输入特征图进行Element-wise操作、BN操作的示意图;
图4是数据处理设备的一个实施例框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。另外,在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
本发明使用的术语仅仅是出于描述特定实施例的目的,而非限制本发明。本发明和权利要求书所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或者所有可能的组合。
尽管在本发明可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语用来将同一类型的信息彼此区分开。例如,在不脱离本发明范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在……时”,或者,“当……时”,或者,“响应于确定”。
本发明实施例提出一种数据处理方法,该方法可以应用于DMA控制器。在CNN中,可以由DMA控制器实现数据搬移,不需要由CPU实现数据搬移,从而减轻CPU负担,更高效地搬移数据,进而起到加速CNN运算的效果。
DMA控制器是一种在***内部搬移数据的外设,允许不同速度的硬件装置之间交换数据,这个数据搬移操作并不依赖于CPU,DMA控制器可以通过DMA中断指示需要被CPU处理的数据已经就位。此外,CPU只需要建立DMA传输、响应DMA中断,并处理DMA控制器搬移到内部存储器的数据即可。
对于单次DMA传输过程,可以指定1个源地址、1个目的地址和步幅长度,这个步幅长度是stride信息,每次写操作结束后,当前地址与步幅长度之和是下一次需要处理的地址,这种带有“正常”步幅长度的传输称为1D传输。
参见图1A所示,DMA控制器从第一个源地址A1读取数据后,将该数据写入第一个目的地址B1。然后,将源地址A1加上步幅长度1,得到第二个源地址A2,将目的地址B1加上步幅长度1,得到第二个目的地址B2,DMA控制器从源地址A2读取数据后,将该数据写入目的地址B2,以此类推。
参见图1B所示,DMA控制器从第一个源地址A1读取数据后,将该数据写入第一个目的地址B1。然后,将源地址A1加上步幅长度2,得到第二个源地址A2,将目的地址B1加上步幅长度2,得到第二个目的地址B2,DMA控制器从源地址A2读取数据后,将该数据写入目的地址B2,以此类推。
与图1A相比,在图1B中,可以将“正常”的步幅长度1修改为“非正常”的步幅长度2,使得1D传输可以跳过某些地址,增加1D传输的灵活性。
2D传输是1D传输的扩展,被广泛地应用在图像处理领域。在2D传输过程中,可以涉及如下变量:X方向计数配置(X_COUNT)、X方向步幅配置(X_STRIDE)、Y方向计数配置(Y_COUNT)、Y方向步幅配置(Y_STRIDE)。
2D传输是一个嵌套循环,内循环参数由X方向计数配置和X方向步幅配置决定,外循环参数由Y方向计数配置和Y方向步幅配置决定,1D传输对应2D传输的内循环。X方向步幅配置决定每次x递增时,地址增加的步幅长度;Y方向步幅配置决定每次y递增时,地址增加的步幅长度;X方向计数配置决定x递增次数;Y方向步幅配置决定y递增次数。而且,Y方向步幅配置可以为负数,从而允许DMA控制器在buffer(缓冲区)中地址回卷。
参见图1C-图1F所示,为1D-to-1D,1D-to-2D,2D-to-1D,2D-to-2D的应用场景示意图,显然,上述2D的传输过程,可以丰富DMA的应用场景。
3D传输是1D传输的进一步扩展,可以涉及如下变量:X方向计数配置(X_COUNT)、X方向步幅配置(X_STRIDE)、Y方向计数配置(Y_COUNT)、Y方向步幅配置(Y_STRIDE)、Z方向计数配置(Z_COUNT)、Z方向步幅配置(Z_STRIDE)。其中,3D传输是三重嵌套循环,内层循环参数由X方向计数配置、X方向步幅配置决定,中间层循环参数由Y方向计数配置、Y方向步幅配置决定,外层循环参数由Z方向计数配置、Z方向步幅配置决定。
其中,X方向步幅配置决定每次x递增时,地址增加的步幅长度;Y方向步幅配置决定每次y递增时,地址增加的步幅长度;Z方向步幅配置决定每次z递增时,地址增加的步幅长度;X方向计数配置决定x递增次数;Y方向步幅配置决定y递增次数;Z方向计数配置决定z递增次数。而且,Y方向步幅配置可以为负数,Z方向步幅配置可以为负数,以允许在buffer中地址回卷。
以下结合一个2D-to-2D的矩阵提取,并旋转90度的例子,对上述过程进行说明。参见图1G所示,假设源矩阵按行顺序存储,起始地址为A,目的矩阵按行顺序存储,起始地址为A',则:在数据读取过程,源地址为A+7,X方向计数配置为4,X方向步幅配置为1,Y方向计数配置为4,Y方向步幅配置为3,Z方向计数配置为0,Z方向步幅配置为0。在数据写入过程,目的地址为A'+3,X方向计数配置为4,X方向步幅配置为4,Y方向计数配置为4,Y方向步幅配置为-13,Z方向计数配置为0,Z方向步幅配置为0。
参见图1G所示,DMA控制器可以从源地址0x1(即起始地址A+7)读取数据,并将读取的数据写入目的地址0x1(即起始地址A'+3)。从源地址0x2(即0x1+X方向步幅配置1)读取数据,并将读取的数据写入目的地址0x2(即0x1+X方向步幅配置4)。从源地址0x3读取数据,并将读取的数据写入目的地址0x3。从源地址0x4读取数据,并将读取的数据写入目的地址0x4。
经过上述处理,在数据读取过程,已经在X方向读取4次,即达到X方向计数配置4,因此,执行一次Y,由于Y方向步幅配置为3,因此将源地址0x4加3,得到源地址0x5。在数据写入过程,已经在X方向读取4次,即达到X方向计数配置4,因此,执行一次Y,由于Y方向步幅配置为-13,因此将目的地址0x4减去13,得到目的地址0x5。综上所述,从源地址0x5读取数据,并将读取的数据写入目的地址0x5;然后,从源地址0x6读取数据,并将读取的数据写入目的地址0x6。从源地址0x7读取数据,并将读取的数据写入目的地址0x7。从源地址0x8读取数据,并将读取的数据写入目的地址0x8。
经过上述处理,在数据读取过程,在X方向读取4次,即达到X方向计数配置4,因此执行一次Y,在数据写入过程,已经在X方向读取4次,即达到X方向计数配置4,因此执行一次Y,以此类推,其效果参见图1G所示。
综上可以看出,只要给出X方向计数配置(X_COUNT)、X方向步幅配置(X_STRIDE)、Y方向计数配置(Y_COUNT)、Y方向步幅配置(Y_STRIDE)、Z方向计数配置(Z_COUNT)、Z方向步幅配置(Z_STRIDE),DMA控制器就可以利用上述参数完成数据处理,即DMA控制器利用数据读取过程的参数,从源地址读取数据,并利用数据写入过程的参数,将数据写入目的地址。
在卷积神经网络中,可以采用DMA控制器实现数据搬移任务,而不再采用CPU实现数据搬移任务。参见图2A所示,为卷积神经网络中,上述数据处理方法的流程图的示例,该方法可以应用于DMA控制器,该方法可以包括:
步骤201,根据输入特征图的特征信息生成第一DMA读配置信息和第一DMA写配置信息,并确定第二DMA读配置信息和第二DMA写配置信息。
步骤202,根据该第一DMA读配置信息,从该输入特征图中读取数据;并根据该第一DMA写配置信息,将读取的数据输出给运算逻辑。
步骤203,根据该第二DMA读配置信息读取运算逻辑的运算结果;并根据该第二DMA写配置信息,将读取的运算结果存储到输出特征图。
在上述实施例中,输入特征图是初始特征图,DMA控制器可以从输入特征图中读取数据,即,输入特征图作为源数据。此外,输出特征图是目标特征图,DMA控制器可以将数据写入到输出特征图。综上所述,DMA控制器从输入特征图中读取数据,并将数据输出给运算逻辑。然后,DMA控制器可以读取运算逻辑的运算结果,并将读取的运算结果存储到输出特征图。
其中,第一DMA读配置信息是用于从输入特征图中读取数据的DMA配置信息,因此,可以根据第一DMA读配置信息从输入特征图中读取数据,这个读取过程,也就是从源地址(即输入特征图)中读取数据的过程。
其中,第一DMA写配置信息是用于将数据输出给运算逻辑的DMA配置信息,因此,可以根据第一DMA写配置信息将数据输出给运算逻辑,这个写入过程,也就是将源地址的数据写入目的地址的过程,从而将数据从输入特征图中搬移到运算逻辑,由运算逻辑对输入特征图中的数据进行运算。
其中,第二DMA读配置信息是用于从运算逻辑读取数据的DMA配置信息,因此,可以根据第二DMA读配置信息读取运算逻辑的运算结果。
其中,第二DMA写配置信息是用于将数据存储到输出特征图(即初始构造的输出特征图,在初始状态,没有写入运算逻辑的数据,在后续实施例中,介绍输出特征图的构造过程)的DMA配置信息,因此,可以根据第二DMA写配置信息将数据写入到输出特征图,这个写入过程,也就是将源地址的数据写入目的地址的过程,从而可以将数据从运算逻辑中搬移到输出特征图。
其中,第一DMA读配置信息、第一DMA写配置信息、第二DMA读配置信息、第二DMA写配置信息可以包括X方向计数配置(X_COUNT)、X方向步幅配置(X_STRIDE)、Y方向计数配置(Y_COUNT)、Y方向步幅配置(Y_STRIDE)、Z方向计数配置(Z_COUNT)、Z方向步幅配置(Z_STRIDE)。
基于上述技术方案,本发明实施例中,可以由DMA控制器实现CNN中的数据搬移,不需要由CPU实现CNN中的数据搬移,从而减轻CPU负担,更高效地搬移数据,进而起到加速CNN运算的效果,同时也不失灵活性。
以下结合具体应用场景,对上述技术方案进行详细说明。本应用场景下,是针对Pooling(池化层)的实现方式。具体的,Pooling的作用可以包括:保持输入特征图的不变性,这种不变性包括平移、旋转和尺度;保留主要特征并减少参数和计算量,防止过拟合,提高模型泛化能力。最常见的池化操作为平均池化和最大池化,平均池化用于计算图像区域的平均值,并将该平均值作为区域池化后的值,最大池化用于选取图像区域的最大值,并将该最大值作为区域池化后的值。池化操作的区域可以分为2x2、3x3、roi、global等。如图2B-2G所示,为卷积核大小为3x3,stride(步幅)为2的pooling示意图。
如果由CPU完成这种滑动窗口的搬运以及Pooling结果的输出,则会大幅增加CPU的负担。基于此,可以由DMA控制器完成滑动窗口的搬运以及Pooling结果的输出,从而减轻CPU的负担,以下结合图2H进行详细说明。
步骤211,获取输入特征图的特征信息。其中,该特征信息可以包括但不限于:输入特征图的宽度W、高度H,并包括输入特征图的通道数N。
其中,输入特征图(即Input Feature Maps)的宽度为W,高度为H,通道数为N,在存储器中连续存储,起始地址为A。因此,输入特征图的特征信息可以包括包括但不限于:输入特征图的宽度W、高度H、通道数N。
步骤212,根据输入特征图的特征信息生成第一DMA读配置信息和第一DMA写配置信息,并确定第二DMA读配置信息和第二DMA写配置信息。
情况一、根据输入特征图的特征信息生成第一DMA读配置信息,包括:DMA控制器可以根据该输入特征图的宽度W生成X方向计数配置;根据该输入特征图的高度H生成Y方向计数配置;根据预设数值(如1)生成X方向步幅配置和Y方向步幅配置。此外,DMA控制器还可以根据该输入特征图的通道数N生成Z方向计数配置,并根据预设数值生成Z方向步幅配置。
例如,第一DMA读配置信息的示例可以包括:X方向计数配置:W;Y方向计数配置:H;X方向步幅配置:1;Y方向步幅配置:1。此外,所述第一DMA读配置信息还可以包括:Z方向计数配置:N;Z方向步幅配置:1。
当然,上述第一DMA读配置信息只是一个示例,对此第一DMA读配置信息不做限制,可以根据经验进行配置,以上述第一DMA读配置信息为例。
情况二、根据输入特征图的特征信息生成第一DMA写配置信息,包括:DMA控制器可以根据输入特征图的宽度W和高度H生成X方向计数配置;根据预设数值生成Y方向计数配置、X方向步幅配置和Y方向步幅配置。或者,DMA控制器可以根据输入特征图的宽度W、高度H和通道数N,生成X方向计数配置;以及,DMA控制器可以根据预设数值生成Y方向计数配置、X方向步幅配置、Y方向步幅配置、Z方向计数配置、Z方向步幅配置。
例如,第一DMA写配置信息包括:X方向计数配置:W*H;Y方向计数配置:0;X方向步幅配置:0;Y方向步幅配置:0。或者,第一DMA写配置信息可以包括:X方向计数配置:W*H*N;Y方向计数配置:0;X方向步幅配置:0;Y方向步幅配置:0;Z方向计数配置:0;Z方向步幅配置:0。
当然,上述第一DMA写配置信息只是示例,对此第一DMA写配置信息不做限制,可以根据经验进行配置,以上述第一DMA写配置信息为例。
情况三、第二DMA读配置信息可以包括:X方向计数配置:1;Y方向计数配置:0;X方向步幅配置:0;Y方向步幅配置:0。或者,第二DMA读配置信息可以包括:X方向计数配置:N;Y方向计数配置:0;X方向步幅配置:0;Y方向步幅配置:0;Z方向计数配置:0;Z方向步幅配置:0。
当然,上述第二DMA读配置信息只是示例,对此第二DMA读配置信息不做限制,可以根据经验进行配置,以上述第二DMA读配置信息为例。
情况四、第二DMA写配置信息可以包括:X方向计数配置:1;Y方向计数配置:1;X方向步幅配置:0;Y方向步幅配置:0。或者,第二DMA写配置信息可以包括:X方向计数配置:N;Y方向计数配置:1;X方向步幅配置:0;Y方向步幅配置:0;Z方向计数配置:0;Z方向步幅配置:0。
步骤213,根据该第一DMA读配置信息,从该输入特征图中读取数据。
具体的,DMA控制器可以根据该第一DMA读配置信息,从该输入特征图对应的起始地址(如起始地址A)开始,读取该输入特征图中的每个数据。
步骤214,根据该第一DMA写配置信息,将读取的数据输出给运算逻辑。
具体的,DMA控制器可以根据该第一DMA写配置信息,从运算逻辑对应的入口地址(如入口地址I)开始,将读取的每个数据输出给运算逻辑。
步骤215,根据该第二DMA读配置信息读取该运算逻辑的运算结果。
具体的,在运算逻辑对输入的数据进行运算后,可以产生运算结果,例如,运算逻辑可以用于对连续W*H个数据进行平均值运算或者最大值运算,其中,W和H分别为输入特征图的宽度和高度。因此,运算结果为连续W*H个数据对应的平均值或者最大值。进一步的,DMA控制器可以根据该第二DMA读配置信息,从该运算逻辑对应的出口地址(如出口地址O)开始,读取该运算逻辑产生的每个运算结果,如1个运算结果或者N个运算结果。
例如,若输入特征图的宽度为W,高度为H,则输入特征图有W*H个数据,运算逻辑对连续W*H个数据进行平均值运算或者最大值运算后,可以得到一个运算结果,且根据第二DMA读配置信息,从运算逻辑对应的出口地址开始,读取一个运算结果。又例如,若输入特征图的宽度为W,高度为H,通道数为N,则输入特征图有W*H*N个数据,运算逻辑对连续W*H个数据进行平均值运算或者最大值运算后,可以得到N个运算结果,且根据第二DMA读配置信息,从运算逻辑对应的出口地址开始,读取N个运算结果。
步骤216,根据该第二DMA写配置信息,将读取的运算结果存储到输出特征图。具体的,DMA控制器可以根据该第二DMA写配置信息,从该输出特征图的起始地址开始,将读取的每个运算结果存储到该输出特征图。
例如,参见图2I所示,假设运算逻辑为Pooling运算逻辑,Pooling运算逻辑为global(整体)类型,且Pooling运算逻辑用于对连续W*H个数据进行平均值运算。而且,输出特征图的宽度为1,高度为1,通道数为N,在存储器中连续存储,起始地址为B。此外,Pooling运算逻辑的入口地址为I,出口地址为O。基于此,DMA控制器可以通过两步来实现globalpooling操作。
第一步,DMA控制器将输入特征图中的数据输出给Pooling运算逻辑,由Pooling运算逻辑完成求平均值的操作,对于global pooling来说,每W*H个输入数据对应1个平均值输出,最终输出N个平均值。第二步,DMA控制器将Pooling运算逻辑输出的N个平均值,按顺序存储到输出特征图。这样,通过两步搬移操作,加上pooling运算逻辑,就能实现globalpooling的功能。
在一个例子中,在将读取的运算结果存储到输出特征图之前,还可以确定输入特征图对应的目标DMA配置信息,并根据目标DMA配置信息构造输出特征图。这个构造的输出特征图是初始状态的输出特征图,还没有写入输入特征图中的数据,该输出特征图可以为特定的特征图,也可以是全0或1的特征图。步骤216中,就是将数据存储到这个构造的输出特征图。在将所有数据均存储到这个构造的输出特征图之后,就可以得到最终的输出特征图。
其中,该目标DMA配置信息的示例可以包括但不限于:X方向计数配置:N;Y方向计数配置:1;X方向步幅配置:0;Y方向步幅配置:0;Z方向计数配置:0;Z方向步幅配置:0;其中,N为输入特征图的通道数。
当然,上述目标DMA配置信息只是一个示例,对此目标DMA配置信息不做限制,可以根据经验进行配置,本文以上述目标DMA配置信息为例。
其中,根据目标DMA配置信息构造输出特征图,包括:DMA控制器构造尺寸为1*1*M的输出特征图;其中,输出特征图为全0,起始地址为B。
其中,根据目标DMA配置信息构造输出特征图,包括:DMA控制器从指定存储位置读取特定样式信息,并根据目标DMA配置信息,构造与该特定样式信息对应的输出特征图。进一步的,根据目标DMA配置信息,构造与该特定样式信息对应的输出特征图,包括:DMA控制器根据该目标DMA配置信息,构造全0的输出特征图。当然,还可以构造全1的输出特征图。
在卷积神经网络中,可以采用DMA控制器实现数据搬移任务,而不再采用CPU实现数据搬移任务。参见图3A所示,为卷积神经网络中,上述数据处理方法的流程图的示例,该方法可以应用于DMA控制器,该方法可以包括:
步骤301,根据第一输入特征图(如一个第一输入特征图)的特征信息生成第一DMA读配置信息和第一DMA写配置信息,根据第二输入特征图(如至少一个第二输入特征图)的特征信息生成第二DMA读配置信息和第二DMA写配置信息,并确定第三DMA读配置信息和第三DMA写配置信息。
步骤302,根据该第一DMA读配置信息,从第一输入特征图中读取第一数据;根据该第一DMA写配置信息,将读取的第一数据输出给运算逻辑。
步骤303,根据该第二DMA读配置信息,从第二输入特征图中读取第二数据;根据该第二DMA写配置信息,将读取的第二数据输出给运算逻辑。
步骤304,根据该第三DMA读配置信息读取运算逻辑的运算结果;根据该第三DMA写配置信息,将读取的运算结果存储到输出特征图。
在上述实施例中,第一输入特征图、第二输入特征图是初始特征图,DMA控制器可以从第一输入特征图、第二输入特征图中读取数据,即,第一输入特征图、第二输入特征图作为源数据。此外,输出特征图是目标特征图,DMA控制器可以将数据写入到输出特征图。综上所述,DMA控制器从第一输入特征图、第二输入特征图中读取数据,并将数据输出给运算逻辑。DMA控制器可以读取运算逻辑的运算结果,并将读取的运算结果存储到输出特征图。
其中,第一DMA读配置信息是用于从第一输入特征图中读取数据的DMA配置信息,因此,可以根据该第一DMA读配置信息从该第一输入特征图中读取数据,而这个数据读取过程,也就是从源地址中读取数据的过程。
其中,第二DMA读配置信息是用于从第二输入特征图中读取数据的DMA配置信息,因此,可以根据该第二DMA读配置信息从该第二输入特征图中读取数据,而这个数据读取过程,也就是从源地址中读取数据的过程。
其中,第一DMA写配置信息是用于将数据输出给运算逻辑的DMA配置信息,因此,根据第一DMA写配置信息将数据输出给运算逻辑,这个写入过程,就是将源地址的数据写入目的地址的过程,从而将数据从第一输入特征图搬移到运算逻辑,由运算逻辑对第一输入特征图中的数据进行运算。
其中,第二DMA写配置信息是用于将数据输出给运算逻辑的DMA配置信息,因此,根据第二DMA写配置信息将数据输出给运算逻辑,这个写入过程,就是将源地址的数据写入目的地址的过程,从而将数据从第二输入特征图搬移到运算逻辑,由运算逻辑对第二输入特征图中的数据进行运算。
其中,第三DMA读配置信息是用于从运算逻辑读取数据的DMA配置信息,因此,可以根据第三DMA读配置信息读取运算逻辑的运算结果。
其中,第三DMA写配置信息是用于将数据存储到输出特征图(即初始构造的输出特征图,在初始状态,没有写入运算逻辑的数据,在后续实施例中,介绍输出特征图的构造过程)的DMA配置信息,因此,可以根据第三DMA写配置信息将数据写入到输出特征图,这个写入过程,也就是将源地址的数据写入目的地址的过程,从而可以将数据从运算逻辑中搬移到输出特征图。
在上述实施例中,第一DMA读配置信息、第一DMA写配置信息、第二DMA读配置信息、第二DMA写配置信息、第三DMA读配置信息、第三DMA写配置信息均可以包括但不限于:X方向计数配置(X_COUNT)、X方向步幅配置(X_STRIDE)、Y方向计数配置(Y_COUNT)、Y方向步幅配置(Y_STRIDE)、Z方向计数配置(Z_COUNT)、Z方向步幅配置(Z_STRIDE)。
基于上述技术方案,本发明实施例中,可以由DMA控制器实现CNN中的数据搬移,不需要由CPU实现CNN中的数据搬移,从而减轻CPU负担,更高效地搬移数据,进而起到加速CNN运算的效果,同时也不失灵活性。
以下结合具体应用场景,对上述技术方案进行详细说明。应用场景1,针对Element-wise(智能元素)的实现方式,Element-wise是对多层特征图中每个元素逐个运算,包括点乘、加减法、取最大值等,用于融合两个相同大小的层信息。如图3B所示,是对大小为W*H*N的两个特征图进行element-wise加法运算的示意图。如果让CPU完成上述操作,会额外增加CPU的负担。
应用场景2,针对BN(Batch normalization,标准化)的实现方式,BN解决了反向传播中的梯度弥散和***问题,使得权重的更新更加稳健。BN是将某一层的输出进行归一化,使得其均值为0,方差为1。而且,BN是在Channel(通道)维度进行的,即可以将每个通道都进行归一化,如果有n个通道,就会有n个归一化操作。进一步的,BN作用在非线性映射前,即对进行规范化,γ为scale(比例),β为shift(变化)。如图3C所示,是一个对大小为W*H*N的输入特征图进行BN操作的示意图。如果让CPU来完成输入特征图与其对应的scale和shift的运算,则会大大增加CPU的负担。
基于此,针对应用场景1,可以由DMA控制器完成Element-wise操作,从而减轻CPU的负担。针对应用场景2,可以由DMA控制器完成BN操作,从而减轻CPU的负担。以下结合图3D对应用场景1、2进行详细说明。
步骤311,获取第一输入特征图的特征信息、第二输入特征图的特征信息。
针对应用场景1,假设存在两个输入特征图,输入特征图1和输入特征图2,输入特征图1的宽度为W,高度为H,通道数为N,在存储器中连续存储,起始地址为A,输入特征图2的宽度为W,高度为H,通道数为N,在存储器中连续存储,起始地址为B。可以将输入特征图1作为第一输入特征图,将输入特征图2作为第二输入特征图。基于此,第一输入特征图的特征信息可以包括但不限于:第一输入特征图的宽度W、高度H。还可以包括第一输入特征图的通道数N。第二输入特征图的特征信息可以包括但不限于:第二输入特征图的宽度W、高度H。还可以包括第二输入特征图的通道数N。
在应用场景1中,输出特征图的宽度为W,高度为H,通道数为N,在存储器中连续存储,起始地址为C。运算逻辑可以为Element-wise运算逻辑,Element-wise运算逻辑用于进行点乘、加减法、取最大值等运算,例如,当Element-wise类型为product(乘积)时,则Element-wise运算逻辑用于进行点乘运算,也就是说,对第一输入特征图的第一个数据与第二输入特征图的第一个数据进行乘法运算,得到第一个运算结果,对第一输入特征图的第二个数据与第二输入特征图的第二个数据进行乘法运算,得到第二个运算结果,以此类推。其中,Element-wise运算逻辑的入口地址为I1、I2,出口地址为O。
针对应用场景2,假设存在三个输入特征图,输入特征图1、输入特征图2和输入特征图3,输入特征图1的宽度为W,高度为H,通道数为N,在存储器中连续存储,起始地址为A。与输入特征图1对应的输入特征图2是BN中的γ,即scale参数,输入特征图2可以是针对scale参数的参数图,宽度为1,高度为1,通道数为N,在存储器中连续存储,起始地址为B。scale参数是一个常数,可以根据经验配置,也就是说,输入特征图2是包括N个scale参数的参数图。与输入特征图1对应的输入特征图3是BN中的β,即shift参数,输入特征图3可以是针对shift参数的参数图,宽度为1,高度为1,通道数为N,在存储器中连续存储,起始地址为C。shift参数是一个常数,可以根据经验配置,也就是说,输入特征图3是包括N个shift参数的参数图。
综上所述,可以将输入特征图1作为第一输入特征图,将输入特征图2和输入特征图3作为第二输入特征图。基于此,第一输入特征图的特征信息可以包括但不限于:第一输入特征图的宽度W、高度H。还可以包括第一输入特征图的通道数N。第二输入特征图的特征信息可以包括但不限于:第二输入特征图的宽度1、高度1。还可以包括第二输入特征图的通道数N。
在应用场景2中,输出特征图的宽度为W,高度为H,通道数为N,在存储器中连续存储,起始地址为D。运算逻辑可以为BN运算逻辑,BN运算逻辑用于完成线性变换。例如,对第一输入特征图的每个数据,采用如下公式对该数据进行线性变换:x为输入特征图1的数据,γ是输入特征图2(即参数图)给出的scale参数,β是输入特征图3(即参数图)给出的shift参数,而且,输入特征图1中的连续W*H个数据,对应输入特征图2的同一个γ,并对应输入特征图3的同一个β,即一个γ和一个β与W*H个数据运算。其中,Element-wise运算逻辑的入口地址为I1(对应输入特征图1)、I2(对应输入特征图2)、I3(对应输入特征图3),出口地址为O。
步骤312,根据第一输入特征图(即输入特征图1)的特征信息生成第一DMA读配置信息和第一DMA写配置信息,根据第二输入特征图(即输入特征图2或者输入特征图3等)的特征信息生成第二DMA读配置信息和第二DMA写配置信息,并确定第三DMA读配置信息和第三DMA写配置信息。
情况一、根据第一输入特征图的特征信息生成第一DMA读配置信息,包括:可以根据第一输入特征图的宽度W生成X方向计数配置,并根据第一输入特征图的高度H生成Y方向计数配置,并根据预设数值(如1)生成X方向步幅配置和Y方向步幅配置。此外,还可以根据第一输入特征图的通道数N生成Z方向计数配置,并根据预设数值(如1)生成Z方向步幅配置。
例如,第一DMA读配置信息的示例可以包括:X方向计数配置:W;Y方向计数配置:H;X方向步幅配置:1;Y方向步幅配置:1。此外,第一DMA读配置信息还可以包括:Z方向计数配置:N;Z方向步幅配置:1。
当然,上述第一DMA读配置信息只是一个示例,对此第一DMA读配置信息不做限制,可以根据经验进行配置,以上述第一DMA读配置信息为例。
情况二、根据第一输入特征图的特征信息生成第一DMA写配置信息,包括:DMA控制器可以根据第一输入特征图的宽度W和高度H生成X方向计数配置;以及,根据预设数值生成Y方向计数配置、X方向步幅配置和Y方向步幅配置。或者,DMA控制器可以根据第一输入特征图的宽度W、高度H和通道数N,生成X方向计数配置;以及,根据预设数值生成Y方向计数配置、X方向步幅配置、Y方向步幅配置、Z方向计数配置、Z方向步幅配置。
例如,第一DMA写配置信息可以包括:X方向计数配置:W*H;Y方向计数配置:0;X方向步幅配置:0;Y方向步幅配置:0。或者,第一DMA写配置信息包括:X方向计数配置:W*H*N;Y方向计数配置:0;X方向步幅配置:0;Y方向步幅配置:0;Z方向计数配置:0;Z方向步幅配置:0。
当然,上述第一DMA写配置信息只是示例,对此第一DMA写配置信息不做限制,可以根据经验进行配置,以上述第一DMA写配置信息为例。
其中,针对应用场景1和应用场景2,均可以采用情况一和情况二处理。
情况三、根据第二输入特征图的特征信息生成第二DMA读配置信息,包括:DMA控制器可以根据第二输入特征图的宽度W生成X方向计数配置;根据第二输入特征图的高度H生成Y方向计数配置;根据预设数值生成X方向步幅配置和Y方向步幅配置。此外,DMA控制器还可以根据第二输入特征图的通道数N生成Z方向计数配置;根据预设数值生成Z方向步幅配置。
例如,第二DMA读配置信息的示例可以包括:X方向计数配置:W;Y方向计数配置:H;X方向步幅配置:1;Y方向步幅配置:1。此外,第二DMA读配置信息还可以包括:Z方向计数配置:N;Z方向步幅配置:1。
当然,上述第二DMA读配置信息只是一个示例,对此第二DMA读配置信息不做限制,可以根据经验进行配置,以上述第二DMA读配置信息为例。
情况四、根据第二输入特征图的特征信息生成第二DMA写配置信息,包括:DMA控制器可以根据第二输入特征图的宽度W和高度H生成X方向计数配置;根据预设数值生成Y方向计数配置、X方向步幅配置和Y方向步幅配置。或者,DMA控制器可以根据第二输入特征图的宽度W、高度H和通道数N,生成X方向计数配置;以及,根据预设数值生成Y方向计数配置、X方向步幅配置、Y方向步幅配置、Z方向计数配置、Z方向步幅配置。
例如,第二DMA写配置信息可以包括:X方向计数配置:W*H;Y方向计数配置:0;X方向步幅配置:0;Y方向步幅配置:0。或者,第二DMA写配置信息包括:X方向计数配置:W*H*N;Y方向计数配置:0;X方向步幅配置:0;Y方向步幅配置:0;Z方向计数配置:0;Z方向步幅配置:0。
当然,上述第二DMA写配置信息只是示例,对此第二DMA写配置信息不做限制,可以根据经验进行配置,以上述第二DMA写配置信息为例。
其中,在确定第二DMA读配置信息和第二DMA写配置信息的过程中,针对应用场景1,可以采用情况三和情况四处理,而针对应用场景2,不采用情况三和情况四处理,而是可以采用情况五处理,下面介绍情况五。
情况五、根据第二输入特征图的特征信息生成第二DMA读配置信息、第二DMA写配置信息,包括:若第二输入特征图为至少一个参数图(如上述应用场景2中的输入特征图2和输入特征图3),针对每个参数图,则:第二DMA读配置信息可以包括但不限于:X方向计数配置:1;Y方向计数配置:0;X方向步幅配置:1;Y方向步幅配置:0。而且,第二DMA写配置信息可以包括但不限于:X方向计数配置:1;Y方向计数配置:0;X方向步幅配置:0;Y方向步幅配置:0。或者,第二DMA读配置信息可以包括但不限于:X方向计数配置:N;Y方向计数配置:0;X方向步幅配置:1;Y方向步幅配置:0;Z方向计数配置:0;Z方向步幅配置:0。而且,第二DMA写配置信息可以包括但不限于:X方向计数配置:N;Y方向计数配置:0;X方向步幅配置:0;Y方向步幅配置:0;Z方向计数配置:0;Z方向步幅配置:0。
当然,上述第二DMA读配置信息只是示例,对此第二DMA读配置信息不做限制,可以根据经验进行配置,以上述第二DMA读配置信息为例。
此外,上述第二DMA写配置信息只是示例,对此第二DMA写配置信息不做限制,可以根据经验进行配置,以上述第二DMA写配置信息为例。
情况六、确定第三DMA读配置信息和第三DMA写配置信息,包括:可以根据第一输入特征图的宽度W和高度H,生成第三DMA读配置信息中的X方向计数配置;根据预设数值生成第三DMA读配置信息中的Y方向计数配置、X方向步幅配置和Y方向步幅配置。进一步的,可以根据第一输入特征图的宽度W生成第三DMA写配置信息中的X方向计数配置;根据第一输入特征图的高度H生成第三DMA写配置信息中的Y方向计数配置;根据预设数值生成第三DMA写配置信息中的X方向步幅配置和Y方向步幅配置。
例如,所述第三DMA读配置信息可以包括但不限于:X方向计数配置:W*H;Y方向计数配置:0;X方向步幅配置:0;Y方向步幅配置:0;此外,所述第三DMA写配置信息可以包括但不限于:X方向计数配置:W;Y方向计数配置:H;X方向步幅配置:1;Y方向步幅配置:1。
当然,上述第三DMA读配置信息只是一个示例,对此第三DMA读配置信息不做限制,可以根据经验进行配置,以上述第三DMA读配置信息为例。此外,上述第三DMA写配置信息只是一个示例,对此第三DMA写配置信息不做限制,可以根据经验进行配置,以上述第三DMA写配置信息为例。
情况七、确定第三DMA读配置信息和第三DMA写配置信息,包括:可以根据第一输入特征图的宽度W、高度H和通道数N,生成第三DMA读配置信息中的X方向计数配置;根据预设数值生成第三DMA读配置信息中的Y方向计数配置、X方向步幅配置、Y方向步幅配置、Z方向计数配置、Z方向步幅配置。进一步的,还可以根据第一输入特征图的宽度W生成第三DMA写配置信息中的X方向计数配置;根据第一输入特征图的高度H生成第三DMA写配置信息中的Y方向计数配置;根据第一输入特征图的通道数N生成第三DMA写配置信息中的Z方向计数配置;根据预设数值生成第三DMA写配置信息中的X方向步幅配置、Y方向步幅配置和Z方向步幅配置。
例如,第三DMA读配置信息可以包括但不限于:X方向计数配置:W*H*N;Y方向计数配置:0;X方向步幅配置:0;Y方向步幅配置:0;Z方向计数配置:0;Z方向步幅配置:0。此外,第三DMA写配置信息可以包括但不限于:X方向计数配置:W;Y方向计数配置:H;X方向步幅配置:1;Y方向步幅配置:1;Z方向计数配置:N;Z方向步幅配置:1。
当然,上述第三DMA读配置信息只是一个示例,对此第三DMA读配置信息不做限制,可以根据经验进行配置,以上述第三DMA读配置信息为例。此外,上述第三DMA写配置信息只是一个示例,对此第三DMA写配置信息不做限制,可以根据经验进行配置,以上述第三DMA写配置信息为例。
其中,针对应用场景1和应用场景2,均可以采用情况六或情况七处理。
步骤313,根据该第一DMA读配置信息,从第一输入特征图中读取第一数据;根据该第一DMA写配置信息,将读取的第一数据输出给运算逻辑。
在一个例子中,DMA控制器可以根据该第一DMA读配置信息,从该第一输入特征图对应的起始地址开始,读取第一输入特征图中的每个第一数据。进一步的,DMA控制器还可以根据该第一DMA写配置信息,从上述运算逻辑对应的第一入口地址开始,将读取的每个第一数据输出给该运算逻辑。
步骤314,根据该第二DMA读配置信息,从第二输入特征图中读取第二数据;根据该第二DMA写配置信息,将读取的第二数据输出给运算逻辑。
在一个例子中,DMA控制器可以根据该第二DMA读配置信息,从该第二输入特征图对应的起始地址开始,读取第二输入特征图中的每个第二数据。进一步的,DMA控制器还可以根据该第二DMA写配置信息,从上述运算逻辑对应的第二入口地址开始,将读取的每个第二数据输出给该运算逻辑。
步骤315,根据该第三DMA读配置信息读取运算逻辑的运算结果;根据该第三DMA写配置信息,将读取的运算结果存储到输出特征图。
在一个例子中,DMA控制器可以根据该第三DMA读配置信息,从上述运算逻辑对应的出口地址开始,读取该运算逻辑产生的每个运算结果。进一步的,DMA控制器还可以根据该第三DMA写配置信息,从该输出特征图的起始地址开始,将读取的每个运算结果存储到所述输出特征图。
针对应用场景1,运算逻辑用于对第一数据和第二数据进行Element-wise运算。参见图3E所示,DMA控制器可以通过三步来实现Element-wise操作。
第一步,DMA控制器将输入特征图1中的数据输出给Element-wise运算逻辑的入口地址I1。第二步,DMA控制器将输入特征图2中的数据输出给Element-wise运算逻辑的入口地址I2。然后,Element-wise运算逻辑对入口地址I1和入口地址I2的数据进行Element-wise操作。第三步,DMA控制器将Element-wise运算逻辑产生的运算结果,按顺序存储到输出特征图。综上所述,通过三步搬移操作,加上Element-wise运算逻辑,就实现element-wise功能。
针对应用场景2,运算逻辑用于对第一数据和第二数据进行BN运算。参见图3F所示,DMA控制器可以通过三步来实现BN操作。第一步,DMA控制器可以将输入特征图1中的数据输出给BN运算逻辑的入口地址I1。第二步,DMA控制器将γ输出给BN运算逻辑的入口地址I2,BN运算逻辑使用γ对入口地址I1的数据进行线性变换中的乘法操作。第三步,DMA控制器将β输出给BN运算逻辑的入口地址I3,BN运算逻辑使用β对上述乘法操作的结果,进行线性变换中的加法操作。第四步,DMA控制器将BN运算逻辑产生的运算结果,按顺序存储到输出特征图。综上所述,通过四步的搬移操作,加上BN运算逻辑,就可以实现BatchNormalization的功能。
在一个例子中,在将读取的运算结果存储到输出特征图之前,还可以确定第一输入特征图对应的目标DMA配置信息,并根据该目标DMA配置信息构造第一输入特征图对应的输出特征图。这个构造的输出特征图是初始状态的输出特征图,还没有写入输入特征图中的数据,可以为特定的特征图,也可以是全0或1的特征图。步骤315中,是将数据存储到这个构造的输出特征图。在将所有数据存储到构造的输出特征图后,可以得到最终输出特征图。
其中,确定第一输入特征图对应的目标DMA配置信息,包括:根据第一输入特征图的宽度W生成X方向计数配置;根据第一输入特征图的高度H生成Y方向计数配置;根据第一输入特征图的通道数N生成Z方向计数配置;根据预设数值生成X方向步幅配置、Y方向步幅配置和Z方向步幅配置。
其中,该目标DMA配置信息可以包括但不限于:X方向计数配置:W;Y方向计数配置:H;X方向步幅配置:1;Y方向步幅配置:1;Z方向计数配置:N;Z方向步幅配置:1。当然,上述目标DMA配置信息只是示例,对此不做限制,可以根据经验进行配置,本文以上述目标DMA配置信息为例。
其中,根据该目标DMA配置信息构造第一输入特征图对应的输出特征图,包括:构造尺寸为W*H*M的输出特征图;其中,输出特征图为全0。
其中,根据该目标DMA配置信息构造第一输入特征图对应的输出特征图,包括:DMA控制器从指定存储位置读取特定样式信息,并根据目标DMA配置信息,构造与特定样式信息对应的输出特征图。进一步的,根据目标DMA配置信息,构造与该特定样式信息对应的输出特征图,包括:根据该目标DMA配置信息,构造全0的输出特征图。当然,还可以构造全1的输出特征图。
在实际应用中,很多图像算法均涉及固定矩阵的运算,例如,高斯滤波中的Gaussian矩阵、边缘检测中的Laplacian矩阵和Sobel矩阵、快速傅里叶变化或者霍夫变换中的三角函数矩阵、加速矩阵乘法中的Toeplitz矩阵、随机矩阵、全0/1矩阵等。如果上述矩阵由CPU生成,则会增加CPU的负担。基于此,可以由DMA控制器生成上述矩阵,从而可以减轻CPU的负担。
在上述实施例中,DMA控制器根据目标DMA配置信息构造输出特征图的过程,实际上就是DMA控制器构造矩阵的过程,而不是由CPU构造矩阵。
根据实际需要,若输出特征图是Gaussian矩阵,则DMA控制器构造的就是Gaussian矩阵;若输出特征图是三角函数矩阵,则DMA控制器构造的就是三角函数矩阵;若输出特征图是全0矩阵,则DMA控制器构造的就是全0矩阵;若输出特征图是全1矩阵,则DMA控制器构造的就是全1矩阵;以此类推,对此不做限制,本实施例中以DMA控制器构造全0矩阵为例。
为了实现上述过程,可以在指定存储位置存储特定样式信息,该特定样式信息表示矩阵类型。例如,当特定样式信息为第一标识时,表示矩阵类型为全0矩阵(用于各种类型的填充或者间插);当特定样式信息为第二标识时,表示矩阵类型为全1矩阵(用于各种类型的填充);当特定样式信息为第三标识时,表示矩阵类型为Gaussian矩阵(用于二维/三维高斯滤波);当特定样式信息为第四标识时,表示矩阵类型为Laplacian矩阵(用于边缘检测);当特定样式信息为第五标识时,表示矩阵类型为Sobel矩阵(用于边缘检测);当特定样式信息为第六标识时,表示矩阵类型为三角函数矩阵(用于快速傅里叶变换或者霍夫变换);当特定样式信息为第七标识时,表示矩阵类型为Toeplitz矩阵(用于矩阵乘法加速);当特定样式信息为第八标识时,表示矩阵类型为随机矩阵(用于训练权重的初始化);对此矩阵类型不做限制。
综上所述,DMA控制器可以从指定存储位置读取特定样式信息,并构造与该特定样式信息对应的输出特征图。例如,当特定样式信息为第一标识时,则可以构造全0的输出特征图。以此类推,对于其它特定样式信息不再赘述。
在一个例子中,可以将一些特殊的地址(如0xFFFF_FFFF、0x8765_4321、0x5A5A_5A5A等)作为指定存储位置,或将CFG(Control Flow Graph,控制流图)寄存器的某些域作为指定存储位置,在指定存储位置存储特定样式信息,从而指定矩阵类型。这样,DMA控制器可以从指定存储位置读取特定样式信息,继而获知矩阵类型,并构造与该矩阵类型对应的输出特征图。
在一个例子中,DMA控制器在构造矩阵时,矩阵中的数据由DMA控制器自身产生(如产生全0的数据),不需要从其它位置读取数据,因此,不需要为读取过程设置DMA配置信息,只需要为写入过程设置DMA配置信息。
在一个例子中,可以为写入过程设置七个寄存器,这七个寄存器分别存储起始地址(DST_STRT_ADDR)、X方向计数配置(X_COUNT)、X方向步幅配置(X_STRIDE)、Y方向计数配置(Y_COUNT)、Y方向步幅配置(Y_STRIDE)、Z方向计数配置(Z_COUNT)、Z方向步幅配置(Z_STRIDE)。
基于与上述方法同样的发明构思,本发明实施例中还提供一种DMA控制器,所述DMA控制器用于:根据输入特征图的特征信息生成第一DMA读配置信息和第一DMA写配置信息,并确定第二DMA读配置信息和第二DMA写配置信息;根据所述第一DMA读配置信息,从所述输入特征图中读取数据;根据所述第一DMA写配置信息,将读取的数据输出给运算逻辑;根据所述第二DMA读配置信息读取运算逻辑的运算结果;根据所述第二DMA写配置信息,将读取的运算结果存储到输出特征图。
所述特征信息包括:所述输入特征图的宽度W、高度H、通道数N;
所述DMA控制器在根据输入特征图的特征信息生成第一DMA读配置信息时具体用于:根据所述输入特征图的宽度W生成X方向计数配置;根据所述输入特征图的高度H生成Y方向计数配置;根据预设数值生成X方向步幅配置和Y方向步幅配置;根据所述输入特征图的通道数N生成Z方向计数配置;根据预设数值生成Z方向步幅配置。
所述特征信息包括:所述输入特征图的宽度W、高度H;所述DMA控制器在根据输入特征图的特征信息生成第一DMA写配置信息时具体用于:根据所述输入特征图的宽度W和高度H生成X方向计数配置;根据预设数值生成Y方向计数配置、X方向步幅配置和Y方向步幅配置;
或者,所述特征信息包括:所述输入特征图的宽度W、高度H、通道数N;所述DMA控制器在根据输入特征图的特征信息生成第一DMA写配置信息时具体用于:根据所述输入特征图的宽度W、高度H和通道数N,生成X方向计数配置;以及,根据预设数值生成Y方向计数配置、X方向步幅配置、Y方向步幅配置、Z方向计数配置、Z方向步幅配置。
所述DMA控制器在根据所述第一DMA读配置信息,从所述输入特征图中读取数据时具体用于:根据所述第一DMA读配置信息,从所述输入特征图对应的起始地址开始,读取所述输入特征图中的每个数据;
所述DMA控制器在根据所述第一DMA写配置信息,将读取的数据输出给运算逻辑时具体用于:根据所述第一DMA写配置信息,从所述运算逻辑对应的入口地址开始,将读取的每个数据输出给所述运算逻辑。
所述DMA控制器在根据所述第二DMA读配置信息读取运算逻辑的运算结果时具体用于:根据所述第二DMA读配置信息,从所述运算逻辑对应的出口地址开始,读取所述运算逻辑产生的每个运算结果;
所述DMA控制器在根据所述第二DMA写配置信息,将读取的运算结果存储到输出特征图时具体用于:根据所述第二DMA写配置信息,从输出特征图的起始地址开始,将读取的每个运算结果存储到所述输出特征图。
所述DMA控制器在将读取的运算结果存储到输出特征图之前还用于:确定所述输入特征图对应的目标DMA配置信息;根据所述目标DMA配置信息构造输出特征图。
所述DMA控制器在根据所述目标DMA配置信息构造输出特征图时具体用于:从指定存储位置读取特定样式信息,并根据所述目标DMA配置信息,构造与所述特定样式信息对应的输出特征图。
基于与上述方法同样的发明构思,本发明实施例中还提供一种DMA控制器,所述DMA控制器用于:根据第一输入特征图的特征信息生成第一DMA读配置信息和第一DMA写配置信息,根据第二输入特征图的特征信息生成第二DMA读配置信息和第二DMA写配置信息,并确定第三DMA读配置信息和第三DMA写配置信息;根据所述第一DMA读配置信息,从第一输入特征图中读取第一数据;根据所述第一DMA写配置信息,将读取的第一数据输出给运算逻辑;根据所述第二DMA读配置信息,从第二输入特征图中读取第二数据;根据所述第二DMA写配置信息,将读取的第二数据输出给运算逻辑;根据所述第三DMA读配置信息读取所述运算逻辑的运算结果;根据所述第三DMA写配置信息,将读取的运算结果存储到输出特征图。
所述第一输入特征图的特征信息包括:所述第一输入特征图的宽度W、高度H、通道数N;所述DMA控制器在根据第一输入特征图的特征信息生成第一DMA读配置信息时具体用于:根据所述第一输入特征图的宽度W生成X方向计数配置;根据所述第一输入特征图的高度H生成Y方向计数配置;根据预设数值生成X方向步幅配置和Y方向步幅配置;根据所述第一输入特征图的通道数N生成Z方向计数配置;根据预设数值生成Z方向步幅配置。
所述第一输入特征图的特征信息包括:第一输入特征图的宽度W、高度H;所述DMA控制器在根据第一输入特征图的特征信息生成第一DMA写配置信息时具体用于:根据所述第一输入特征图的宽度W和高度H生成X方向计数配置;根据预设数值生成Y方向计数配置、X方向步幅配置和Y方向步幅配置;或者,所述第一输入特征图的特征信息包括:第一输入特征图的宽度W、高度H、通道数N;所述DMA控制器在根据第一输入特征图的特征信息生成第一DMA写配置信息时具体用于:根据第一输入特征图的宽度W、高度H和通道数N,生成X方向计数配置;根据预设数值生成Y方向计数配置、X方向步幅配置、Y方向步幅配置、Z方向计数配置、Z方向步幅配置。
所述DMA控制器在根据所述第一DMA读配置信息,从第一输入特征图中读取第一数据时具体用于:根据所述第一DMA读配置信息,从所述第一输入特征图对应的起始地址开始,读取所述第一输入特征图中的每个第一数据;
所述DMA控制器在根据所述第一DMA写配置信息,将读取的第一数据输出给运算逻辑时具体用于:根据所述第一DMA写配置信息,从所述运算逻辑对应的第一入口地址开始,将读取的每个第一数据输出给所述运算逻辑。
所述第二输入特征图的特征信息包括:所述第二输入特征图的宽度W、高度H、通道数N;所述DMA控制器在根据第二输入特征图的特征信息生成第二DMA读配置信息时具体用于:根据所述第二输入特征图的宽度W生成X方向计数配置;根据所述第二输入特征图的高度H生成Y方向计数配置;根据预设数值生成X方向步幅配置和Y方向步幅配置;根据所述第二输入特征图的通道数N生成Z方向计数配置;根据预设数值生成Z方向步幅配置。
所述第二输入特征图的特征信息包括:第二输入特征图的宽度W、高度H;所述DMA控制器在根据第二输入特征图的特征信息生成第二DMA写配置信息时具体用于:根据所述第二输入特征图的宽度W和高度H生成X方向计数配置;根据预设数值生成Y方向计数配置、X方向步幅配置和Y方向步幅配置;或者,所述第二输入特征图的特征信息包括:第二输入特征图的宽度W、高度H、通道数N;所述DMA控制器在根据第二输入特征图的特征信息生成第二DMA写配置信息时具体用于:根据第二输入特征图的宽度W、高度H和通道数N,生成X方向计数配置;根据预设数值生成Y方向计数配置、X方向步幅配置、Y方向步幅配置、Z方向计数配置、Z方向步幅配置。
所述DMA控制器在根据所述第二DMA读配置信息,从第二输入特征图中读取第二数据时具体用于:根据所述第二DMA读配置信息,从所述第二输入特征图对应的起始地址开始,读取所述第二输入特征图中的每个第二数据;
所述DMA控制器在根据所述第二DMA写配置信息,将读取的第二数据输出给运算逻辑时具体用于:根据所述第二DMA写配置信息,从所述运算逻辑对应的第二入口地址开始,将读取的每个第二数据输出给所述运算逻辑。
所述DMA控制器在确定第三DMA读配置信息和第三DMA写配置信息时具体用于:根据所述第一输入特征图的宽度W和高度H,生成所述第三DMA读配置信息中的X方向计数配置;根据预设数值生成所述第三DMA读配置信息中的Y方向计数配置、X方向步幅配置和Y方向步幅配置;
根据所述第一输入特征图的宽度W生成所述第三DMA写配置信息中的X方向计数配置;根据所述第一输入特征图的高度H生成所述第三DMA写配置信息中的Y方向计数配置;根据预设数值生成所述第三DMA写配置信息中的X方向步幅配置和Y方向步幅配置。
所述DMA控制器在确定第三DMA读配置信息和第三DMA写配置信息时具体用于:根据所述第一输入特征图的宽度W、高度H和通道数N,生成所述第三DMA读配置信息中的X方向计数配置;根据预设数值生成所述第三DMA读配置信息中的Y方向计数配置、X方向步幅配置、Y方向步幅配置、Z方向计数配置、Z方向步幅配置;
根据所述第一输入特征图的宽度W生成所述第三DMA写配置信息中的X方向计数配置;根据所述第一输入特征图的高度H生成所述第三DMA写配置信息中的Y方向计数配置;根据所述第一输入特征图的通道数N生成所述第三DMA写配置信息中的Z方向计数配置;根据预设数值生成所述第三DMA写配置信息中的X方向步幅配置、Y方向步幅配置和Z方向步幅配置。
所述DMA控制器在根据所述第三DMA读配置信息读取所述运算逻辑的运算结果时具体用于:根据所述第三DMA读配置信息,从所述运算逻辑对应的出口地址开始,读取所述运算逻辑产生的每个运算结果;
所述DMA控制器在根据所述第三DMA写配置信息,将读取的运算结果存储到输出特征图时具体用于:根据所述第三DMA写配置信息,从所述输出特征图的起始地址开始,将读取的每个运算结果存储到所述输出特征图。
所述DMA控制器在将读取的运算结果存储到输出特征图之前还用于:确定所述第一输入特征图对应的目标DMA配置信息;根据所述目标DMA配置信息构造第一输入特征图对应的输出特征图。
所述DMA控制器在确定所述第一输入特征图对应的目标DMA配置信息时具体用于:根据所述第一输入特征图的宽度W生成X方向计数配置;根据所述第一输入特征图的高度H生成Y方向计数配置;根据所述第一输入特征图的通道数N生成Z方向计数配置;根据预设数值生成X方向步幅配置、Y方向步幅配置和Z方向步幅配置。
所述DMA控制器在根据所述目标DMA配置信息构造第一输入特征图对应的输出特征图时具体用于:从指定存储位置读取特定样式信息,并根据所述目标DMA配置信息,构造与所述特定样式信息对应的输出特征图。
基于与上述方法同样的发明构思,本发明实施例中还提供一种数据处理设备,如图4所示,所述数据处理设备包括:存储器和DMA控制器;其中,所述存储器,用于存储程序代码;所述DMA控制器,用于调用所述程序代码,当所述程序代码被执行时,实现权利要求上述的数据处理方法。
基于与上述方法同样的发明构思,本发明实施例中还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有若干计算机指令,所述计算机指令被执行时,实现权利要求上述的数据处理方法。
上述实施例阐明的***、装置、模块或单元,可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本发明时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本发明实施例可提供为方法、***、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可以由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
而且,这些计算机程序指令也可以存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或者多个流程和/或方框图一个方框或者多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其它可编程数据处理设备,使得在计算机或者其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅为本发明实施例而已,并不用于限制本发明。对于本领域技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进,均应包含在本发明的权利要求范围之内。
Claims (72)
1.一种数据处理方法,其特征在于,应用于直接内存存取DMA控制器,所述方法包括:
根据输入特征图的特征信息生成第一DMA读配置信息和第一DMA写配置信息,并确定第二DMA读配置信息和第二DMA写配置信息;
根据所述第一DMA读配置信息,从所述输入特征图中读取数据;根据所述第一DMA写配置信息,将读取的数据输出给运算逻辑;
根据所述第二DMA读配置信息读取运算逻辑的运算结果;根据所述第二DMA写配置信息,将读取的运算结果存储到输出特征图。
2.根据权利要求1所述的方法,其特征在于,
所述特征信息包括:所述输入特征图的宽度W、高度H;所述根据输入特征图的特征信息生成第一DMA读配置信息,包括:
根据所述输入特征图的宽度W生成X方向计数配置;
根据所述输入特征图的高度H生成Y方向计数配置;
根据预设数值生成X方向步幅配置和Y方向步幅配置。
3.根据权利要求2所述的方法,其特征在于,
所述第一DMA读配置信息包括:X方向计数配置:W;Y方向计数配置:H;X方向步幅配置:1;Y方向步幅配置:1。
4.根据权利要求2所述的方法,其特征在于,
所述特征信息还包括:所述输入特征图的通道数N;所述根据输入特征图的特征信息生成第一DMA读配置信息,包括:
根据所述输入特征图的通道数N生成Z方向计数配置;
根据预设数值生成Z方向步幅配置。
5.根据权利要求1所述的方法,其特征在于,
所述特征信息包括:所述输入特征图的宽度W、高度H;所述根据输入特征图的特征信息生成第一DMA写配置信息,包括:
根据所述输入特征图的宽度W和高度H生成X方向计数配置;
根据预设数值生成Y方向计数配置、X方向步幅配置和Y方向步幅配置。
6.根据权利要求5所述的方法,其特征在于,
所述第一DMA写配置信息包括:X方向计数配置:W*H;Y方向计数配置:0;X方向步幅配置:0;Y方向步幅配置:0。
7.根据权利要求1所述的方法,其特征在于,
所述特征信息包括:所述输入特征图的宽度W、高度H、通道数N;所述根据输入特征图的特征信息生成第一DMA写配置信息,包括:
根据所述输入特征图的宽度W、高度H和通道数N,生成X方向计数配置;以及,根据预设数值生成Y方向计数配置、X方向步幅配置、Y方向步幅配置、Z方向计数配置、Z方向步幅配置。
8.根据权利要求7所述的方法,其特征在于,所述第一DMA写配置信息包括:X方向计数配置:W*H*N;Y方向计数配置:0;X方向步幅配置:0;Y方向步幅配置:0;Z方向计数配置:0;Z方向步幅配置:0。
9.根据权利要求1所述的方法,其特征在于,所述根据所述第一DMA读配置信息,从所述输入特征图中读取数据,包括:
根据所述第一DMA读配置信息,从所述输入特征图对应的起始地址开始,读取所述输入特征图中的每个数据。
10.根据权利要求1所述的方法,其特征在于,所述根据所述第一DMA写配置信息,将读取的数据输出给运算逻辑,包括:
根据所述第一DMA写配置信息,从所述运算逻辑对应的入口地址开始,将读取的每个数据输出给所述运算逻辑。
11.根据权利要求10所述的方法,其特征在于,
所述运算逻辑用于对连续W*H个数据进行平均值运算或者最大值运算;其中,W和H分别为所述输入特征图的宽度和高度。
12.根据权利要求1所述的方法,其特征在于,所述第二DMA读配置信息包括:X方向计数配置:1;Y方向计数配置:0;X方向步幅配置:0;Y方向步幅配置:0;所述第二DMA写配置信息包括:X方向计数配置:1;Y方向计数配置:1;X方向步幅配置:0;Y方向步幅配置:0。
13.根据权利要求1所述的方法,其特征在于,所述第二DMA读配置信息包括:X方向计数配置:N;Y方向计数配置:0;X方向步幅配置:0;Y方向步幅配置:0;Z方向计数配置:0;Z方向步幅配置:0;所述第二DMA写配置信息包括:X方向计数配置:N;Y方向计数配置:1;X方向步幅配置:0;Y方向步幅配置:0;Z方向计数配置:0;Z方向步幅配置:0。
14.根据权利要求1所述的方法,其特征在于,
根据所述第二DMA读配置信息读取运算逻辑的运算结果,包括:
根据所述第二DMA读配置信息,从所述运算逻辑对应的出口地址开始,读取所述运算逻辑产生的每个运算结果。
15.根据权利要求1所述的方法,其特征在于,所述根据所述第二DMA写配置信息,将读取的运算结果存储到输出特征图,包括:
根据所述第二DMA写配置信息,从输出特征图的起始地址开始,将读取的每个运算结果存储到所述输出特征图。
16.根据权利要求1所述的方法,其特征在于,
所述将读取的运算结果存储到输出特征图之前,所述方法还包括:
确定所述输入特征图对应的目标DMA配置信息;
根据所述目标DMA配置信息构造输出特征图。
17.根据权利要求16所述的方法,其特征在于,
所述目标DMA配置信息包括:X方向计数配置:N;Y方向计数配置:1;X方向步幅配置:0;Y方向步幅配置:0;Z方向计数配置:0;Z方向步幅配置:0;其中,所述N为所述输入特征图的通道数。
18.根据权利要求16所述的方法,其特征在于,
所述根据所述目标DMA配置信息构造输出特征图,包括:
从指定存储位置读取特定样式信息,并根据所述目标DMA配置信息,构造与所述特定样式信息对应的输出特征图。
19.一种数据处理方法,其特征在于,应用于直接内存存取DMA控制器,所述方法包括:
根据第一输入特征图的特征信息生成第一DMA读配置信息和第一DMA写配置信息,根据第二输入特征图的特征信息生成第二DMA读配置信息和第二DMA写配置信息,并确定第三DMA读配置信息和第三DMA写配置信息;
根据所述第一DMA读配置信息,从第一输入特征图中读取第一数据;根据所述第一DMA写配置信息,将读取的第一数据输出给运算逻辑;
根据所述第二DMA读配置信息,从第二输入特征图中读取第二数据;根据所述第二DMA写配置信息,将读取的第二数据输出给运算逻辑;
根据所述第三DMA读配置信息读取所述运算逻辑的运算结果;根据所述第三DMA写配置信息,将读取的运算结果存储到输出特征图。
20.根据权利要求19所述的方法,其特征在于,
所述第一输入特征图的特征信息包括:所述第一输入特征图的宽度W、高度H;根据第一输入特征图的特征信息生成第一DMA读配置信息,包括:
根据所述第一输入特征图的宽度W生成X方向计数配置;
根据所述第一输入特征图的高度H生成Y方向计数配置;
根据预设数值生成X方向步幅配置和Y方向步幅配置。
21.根据权利要求20所述的方法,其特征在于,
所述第一DMA读配置信息包括:X方向计数配置:W;Y方向计数配置:H;X方向步幅配置:1;Y方向步幅配置:1。
22.根据权利要求20所述的方法,其特征在于,
所述第一输入特征图的特征信息还包括:所述第一输入特征图的通道数N;根据第一输入特征图的特征信息生成第一DMA读配置信息,还包括:
根据所述第一输入特征图的通道数N生成Z方向计数配置;
根据预设数值生成Z方向步幅配置。
23.根据权利要求19所述的方法,其特征在于,
所述第一输入特征图的特征信息包括:所述第一输入特征图的宽度W、高度H;根据第一输入特征图的特征信息生成第一DMA写配置信息,包括:
根据所述第一输入特征图的宽度W和高度H生成X方向计数配置;
根据预设数值生成Y方向计数配置、X方向步幅配置和Y方向步幅配置。
24.根据权利要求23所述的方法,其特征在于,
所述第一DMA写配置信息包括:X方向计数配置:W*H;Y方向计数配置:0;X方向步幅配置:0;Y方向步幅配置:0。
25.根据权利要求19所述的方法,其特征在于,所述第一输入特征图的特征信息包括:所述第一输入特征图的宽度W、高度H、通道数N;所述根据第一输入特征图的特征信息生成第一DMA写配置信息,包括:
根据所述第一输入特征图的宽度W、高度H和通道数N,生成X方向计数配置;以及,根据预设数值生成Y方向计数配置、X方向步幅配置、Y方向步幅配置、Z方向计数配置、Z方向步幅配置。
26.根据权利要求25所述的方法,其特征在于,所述第一DMA写配置信息包括:X方向计数配置:W*H*N;Y方向计数配置:0;X方向步幅配置:0;Y方向步幅配置:0;Z方向计数配置:0;Z方向步幅配置:0。
27.根据权利要求19所述的方法,其特征在于,所述根据所述第一DMA读配置信息,从第一输入特征图中读取第一数据,包括:
根据所述第一DMA读配置信息,从所述第一输入特征图对应的起始地址开始,读取所述第一输入特征图中的每个第一数据。
28.根据权利要求19所述的方法,其特征在于,所述根据所述第一DMA写配置信息,将读取的第一数据输出给运算逻辑,包括:
根据所述第一DMA写配置信息,从所述运算逻辑对应的第一入口地址开始,将读取的每个第一数据输出给所述运算逻辑。
29.根据权利要求19所述的方法,其特征在于,
所述第二输入特征图的特征信息包括:所述第二输入特征图的宽度W、高度H;根据第二输入特征图的特征信息生成第二DMA读配置信息,包括:
根据所述第二输入特征图的宽度W生成X方向计数配置;
根据所述第二输入特征图的高度H生成Y方向计数配置;
根据预设数值生成X方向步幅配置和Y方向步幅配置。
30.根据权利要求29所述的方法,其特征在于,
所述第二DMA读配置信息包括:X方向计数配置:W;Y方向计数配置:H;X方向步幅配置:1;Y方向步幅配置:1。
31.根据权利要求29所述的方法,其特征在于,
所述第二输入特征图的特征信息还包括:所述第二输入特征图的通道数N;根据第二输入特征图的特征信息生成第二DMA读配置信息,还包括:
根据所述第二输入特征图的通道数N生成Z方向计数配置;
根据预设数值生成Z方向步幅配置。
32.根据权利要求19所述的方法,其特征在于,
所述第二输入特征图的特征信息包括:所述第二输入特征图的宽度W、高度H;根据第二输入特征图的特征信息生成第二DMA写配置信息,包括:
根据所述第二输入特征图的宽度W和高度H生成X方向计数配置;
根据预设数值生成Y方向计数配置、X方向步幅配置和Y方向步幅配置。
33.根据权利要求32所述的方法,其特征在于,
所述第二DMA写配置信息包括:X方向计数配置:W*H;Y方向计数配置:0;X方向步幅配置:0;Y方向步幅配置:0。
34.根据权利要求19所述的方法,其特征在于,所述第二输入特征图的特征信息包括:所述第二输入特征图的宽度W、高度H、通道数N;所述根据第二输入特征图的特征信息生成第二DMA写配置信息,包括:
根据所述第二输入特征图的宽度W、高度H和通道数N,生成X方向计数配置;以及,根据预设数值生成Y方向计数配置、X方向步幅配置、Y方向步幅配置、Z方向计数配置、Z方向步幅配置。
35.根据权利要求34所述的方法,其特征在于,所述第二DMA写配置信息包括:X方向计数配置:W*H*N;Y方向计数配置:0;X方向步幅配置:0;Y方向步幅配置:0;Z方向计数配置:0;Z方向步幅配置:0。
36.根据权利要求19所述的方法,其特征在于,
若所述第二输入特征图为至少一个参数图,针对每个参数图,所述第二DMA读配置信息包括:X方向计数配置:1;Y方向计数配置:0;X方向步幅配置:1;Y方向步幅配置:0;所述第二DMA写配置信息包括:X方向计数配置:1;Y方向计数配置:0;X方向步幅配置:0;Y方向步幅配置:0。
37.根据权利要求19所述的方法,其特征在于,若所述第二输入特征图为至少一个参数图,针对每个参数图,所述第二DMA读配置信息包括:X方向计数配置:N;Y方向计数配置:0;X方向步幅配置:1;Y方向步幅配置:0;Z方向计数配置:0;Z方向步幅配置:0;所述第二DMA写配置信息包括:X方向计数配置:N;Y方向计数配置:0;X方向步幅配置:0;Y方向步幅配置:0;Z方向计数配置:0;Z方向步幅配置:0。
38.根据权利要求19所述的方法,其特征在于,所述根据所述第二DMA读配置信息,从第二输入特征图中读取第二数据,包括:
根据所述第二DMA读配置信息,从所述第二输入特征图对应的起始地址开始,读取所述第二输入特征图中的每个第二数据。
39.根据权利要求19所述的方法,其特征在于,所述根据所述第二DMA写配置信息,将读取的第二数据输出给运算逻辑,包括:
根据所述第二DMA写配置信息,从所述运算逻辑对应的第二入口地址开始,将读取的每个第二数据输出给所述运算逻辑。
40.根据权利要求39所述的方法,其特征在于,所述运算逻辑用于对第一数据和第二数据进行element-wise运算或者Batch Normalization运算。
41.根据权利要求19所述的方法,其特征在于,
所述确定第三DMA读配置信息和第三DMA写配置信息,包括:
根据所述第一输入特征图的宽度W和高度H,生成所述第三DMA读配置信息中的X方向计数配置;根据预设数值生成所述第三DMA读配置信息中的Y方向计数配置、X方向步幅配置和Y方向步幅配置;
根据所述第一输入特征图的宽度W生成所述第三DMA写配置信息中的X方向计数配置;根据所述第一输入特征图的高度H生成所述第三DMA写配置信息中的Y方向计数配置;根据预设数值生成所述第三DMA写配置信息中的X方向步幅配置和Y方向步幅配置。
42.根据权利要求41所述的方法,其特征在于,所述第三DMA读配置信息包括:X方向计数配置:W*H;Y方向计数配置:0;X方向步幅配置:0;Y方向步幅配置:0;所述第三DMA写配置信息包括:X方向计数配置:W;Y方向计数配置:H;X方向步幅配置:1;Y方向步幅配置:1。
43.根据权利要求19所述的方法,其特征在于,
所述确定第三DMA读配置信息和第三DMA写配置信息,包括:
根据所述第一输入特征图的宽度W、高度H和通道数N,生成所述第三DMA读配置信息中的X方向计数配置;根据预设数值生成所述第三DMA读配置信息中的Y方向计数配置、X方向步幅配置、Y方向步幅配置、Z方向计数配置、Z方向步幅配置;
根据所述第一输入特征图的宽度W生成所述第三DMA写配置信息中的X方向计数配置;根据所述第一输入特征图的高度H生成所述第三DMA写配置信息中的Y方向计数配置;根据所述第一输入特征图的通道数N生成所述第三DMA写配置信息中的Z方向计数配置;根据预设数值生成所述第三DMA写配置信息中的X方向步幅配置、Y方向步幅配置和Z方向步幅配置。
44.根据权利要求43所述的方法,其特征在于,所述第三DMA读配置信息包括:X方向计数配置:W*H*N;Y方向计数配置:0;X方向步幅配置:0;Y方向步幅配置:0;Z方向计数配置:0;Z方向步幅配置:0;第三DMA写配置信息包括:X方向计数配置:W;Y方向计数配置:H;X方向步幅配置:1;Y方向步幅配置:1;Z方向计数配置:N;Z方向步幅配置:1。
45.根据权利要求19所述的方法,其特征在于,
根据所述第三DMA读配置信息读取所述运算逻辑的运算结果,包括:
根据所述第三DMA读配置信息,从所述运算逻辑对应的出口地址开始,读取所述运算逻辑产生的每个运算结果。
46.根据权利要求19所述的方法,其特征在于,所述根据所述第三DMA写配置信息,将读取的运算结果存储到输出特征图,包括:
根据所述第三DMA写配置信息,从所述输出特征图的起始地址开始,将读取的每个运算结果存储到所述输出特征图。
47.根据权利要求19所述的方法,其特征在于,
所述将读取的运算结果存储到输出特征图之前,所述方法还包括:
确定所述第一输入特征图对应的目标DMA配置信息;
根据所述目标DMA配置信息构造第一输入特征图对应的输出特征图。
48.根据权利要求47所述的方法,其特征在于,
所述确定所述第一输入特征图对应的目标DMA配置信息,包括:
根据所述第一输入特征图的宽度W生成X方向计数配置;
根据所述第一输入特征图的高度H生成Y方向计数配置;
根据所述第一输入特征图的通道数N生成Z方向计数配置;
根据预设数值生成X方向步幅配置、Y方向步幅配置和Z方向步幅配置。
49.根据权利要求48所述的方法,其特征在于,所述目标DMA配置信息包括:X方向计数配置:W;Y方向计数配置:H;X方向步幅配置:1;Y方向步幅配置:1;Z方向计数配置:N;Z方向步幅配置:1。
50.根据权利要求47所述的方法,其特征在于,所述根据所述目标DMA配置信息构造第一输入特征图对应的输出特征图,包括:
从指定存储位置读取特定样式信息,并根据所述目标DMA配置信息,构造与所述特定样式信息对应的输出特征图。
51.一种直接内存存取DMA控制器,其特征在于,DMA控制器用于:
根据输入特征图的特征信息生成第一DMA读配置信息和第一DMA写配置信息,并确定第二DMA读配置信息和第二DMA写配置信息;
根据所述第一DMA读配置信息,从所述输入特征图中读取数据;根据所述第一DMA写配置信息,将读取的数据输出给运算逻辑;
根据所述第二DMA读配置信息读取运算逻辑的运算结果;根据所述第二DMA写配置信息,将读取的运算结果存储到输出特征图。
52.根据权利要求51所述的DMA控制器,其特征在于,
所述特征信息包括:所述输入特征图的宽度W、高度H、通道数N;
所述DMA控制器在根据输入特征图的特征信息生成第一DMA读配置信息时具体用于:根据所述输入特征图的宽度W生成X方向计数配置;根据所述输入特征图的高度H生成Y方向计数配置;根据预设数值生成X方向步幅配置和Y方向步幅配置;根据所述输入特征图的通道数N生成Z方向计数配置;根据预设数值生成Z方向步幅配置。
53.根据权利要求51所述的DMA控制器,其特征在于,
所述特征信息包括:所述输入特征图的宽度W、高度H;所述DMA控制器在根据输入特征图的特征信息生成第一DMA写配置信息时具体用于:根据所述输入特征图的宽度W和高度H生成X方向计数配置;根据预设数值生成Y方向计数配置、X方向步幅配置和Y方向步幅配置;
或者,所述特征信息包括:所述输入特征图的宽度W、高度H、通道数N;所述DMA控制器在根据输入特征图的特征信息生成第一DMA写配置信息时具体用于:根据所述输入特征图的宽度W、高度H和通道数N,生成X方向计数配置;以及,根据预设数值生成Y方向计数配置、X方向步幅配置、Y方向步幅配置、Z方向计数配置、Z方向步幅配置。
54.根据权利要求51所述的DMA控制器,其特征在于,
所述DMA控制器在根据所述第一DMA读配置信息,从所述输入特征图中读取数据时具体用于:根据所述第一DMA读配置信息,从所述输入特征图对应的起始地址开始,读取所述输入特征图中的每个数据;
所述DMA控制器在根据所述第一DMA写配置信息,将读取的数据输出给运算逻辑时具体用于:根据所述第一DMA写配置信息,从所述运算逻辑对应的入口地址开始,将读取的每个数据输出给所述运算逻辑。
55.根据权利要求51所述的DMA控制器,其特征在于,
所述DMA控制器在根据所述第二DMA读配置信息读取运算逻辑的运算结果时具体用于:根据所述第二DMA读配置信息,从所述运算逻辑对应的出口地址开始,读取所述运算逻辑产生的每个运算结果;
所述DMA控制器在根据所述第二DMA写配置信息,将读取的运算结果存储到输出特征图时具体用于:根据所述第二DMA写配置信息,从输出特征图的起始地址开始,将读取的每个运算结果存储到所述输出特征图。
56.根据权利要求51所述的DMA控制器,其特征在于,所述DMA控制器在将读取的运算结果存储到输出特征图之前还用于:确定所述输入特征图对应的目标DMA配置信息;根据所述目标DMA配置信息构造输出特征图。
57.根据权利要求56所述的DMA控制器,其特征在于,
所述DMA控制器在根据所述目标DMA配置信息构造输出特征图时具体用于:从指定存储位置读取特定样式信息,并根据所述目标DMA配置信息,构造与所述特定样式信息对应的输出特征图。
58.一种直接内存存取DMA控制器,其特征在于,DMA控制器用于:
根据第一输入特征图的特征信息生成第一DMA读配置信息和第一DMA写配置信息,根据第二输入特征图的特征信息生成第二DMA读配置信息和第二DMA写配置信息,并确定第三DMA读配置信息和第三DMA写配置信息;
根据所述第一DMA读配置信息,从第一输入特征图中读取第一数据;根据所述第一DMA写配置信息,将读取的第一数据输出给运算逻辑;
根据所述第二DMA读配置信息,从第二输入特征图中读取第二数据;根据所述第二DMA写配置信息,将读取的第二数据输出给运算逻辑;
根据所述第三DMA读配置信息读取所述运算逻辑的运算结果;根据所述第三DMA写配置信息,将读取的运算结果存储到输出特征图。
59.根据权利要求58所述的DMA控制器,其特征在于,所述第一输入特征图的特征信息包括:所述第一输入特征图的宽度W、高度H、通道数N;
所述DMA控制器在根据第一输入特征图的特征信息生成第一DMA读配置信息时具体用于:根据所述第一输入特征图的宽度W生成X方向计数配置;根据所述第一输入特征图的高度H生成Y方向计数配置;根据预设数值生成X方向步幅配置和Y方向步幅配置;根据所述第一输入特征图的通道数N生成Z方向计数配置;根据预设数值生成Z方向步幅配置。
60.根据权利要求58所述的DMA控制器,其特征在于,所述第一输入特征图的特征信息包括:所述第一输入特征图的宽度W、高度H;所述DMA控制器在根据第一输入特征图的特征信息生成第一DMA写配置信息时具体用于:根据所述第一输入特征图的宽度W和高度H生成X方向计数配置;根据预设数值生成Y方向计数配置、X方向步幅配置和Y方向步幅配置;
或者,所述第一输入特征图的特征信息包括:所述第一输入特征图的宽度W、高度H、通道数N;所述DMA控制器在根据第一输入特征图的特征信息生成第一DMA写配置信息时具体用于:根据第一输入特征图的宽度W、高度H和通道数N,生成X方向计数配置;根据预设数值生成Y方向计数配置、X方向步幅配置、Y方向步幅配置、Z方向计数配置、Z方向步幅配置。
61.根据权利要求58所述的DMA控制器,其特征在于,
所述DMA控制器在根据所述第一DMA读配置信息,从第一输入特征图中读取第一数据时具体用于:根据所述第一DMA读配置信息,从所述第一输入特征图对应的起始地址开始,读取所述第一输入特征图中的每个第一数据;
所述DMA控制器在根据所述第一DMA写配置信息,将读取的第一数据输出给运算逻辑时具体用于:根据所述第一DMA写配置信息,从所述运算逻辑对应的第一入口地址开始,将读取的每个第一数据输出给所述运算逻辑。
62.根据权利要求58所述的DMA控制器,其特征在于,所述第二输入特征图的特征信息包括:所述第二输入特征图的宽度W、高度H、通道数N;
所述DMA控制器在根据第二输入特征图的特征信息生成第二DMA读配置信息时具体用于:根据所述第二输入特征图的宽度W生成X方向计数配置;根据所述第二输入特征图的高度H生成Y方向计数配置;根据预设数值生成X方向步幅配置和Y方向步幅配置;根据所述第二输入特征图的通道数N生成Z方向计数配置;根据预设数值生成Z方向步幅配置。
63.根据权利要求58所述的DMA控制器,其特征在于,所述第二输入特征图的特征信息包括:所述第二输入特征图的宽度W、高度H;所述DMA控制器在根据第二输入特征图的特征信息生成第二DMA写配置信息时具体用于:根据所述第二输入特征图的宽度W和高度H生成X方向计数配置;根据预设数值生成Y方向计数配置、X方向步幅配置和Y方向步幅配置;
或者,所述第二输入特征图的特征信息包括:所述第二输入特征图的宽度W、高度H、通道数N;所述DMA控制器在根据第二输入特征图的特征信息生成第二DMA写配置信息时具体用于:根据第二输入特征图的宽度W、高度H和通道数N,生成X方向计数配置;根据预设数值生成Y方向计数配置、X方向步幅配置、Y方向步幅配置、Z方向计数配置、Z方向步幅配置。
64.根据权利要求58所述的DMA控制器,其特征在于,
所述DMA控制器在根据所述第二DMA读配置信息,从第二输入特征图中读取第二数据时具体用于:根据所述第二DMA读配置信息,从所述第二输入特征图对应的起始地址开始,读取所述第二输入特征图中的每个第二数据;
所述DMA控制器在根据所述第二DMA写配置信息,将读取的第二数据输出给运算逻辑时具体用于:根据所述第二DMA写配置信息,从所述运算逻辑对应的第二入口地址开始,将读取的每个第二数据输出给所述运算逻辑。
65.根据权利要求58所述的DMA控制器,其特征在于,
所述DMA控制器在确定第三DMA读配置信息和第三DMA写配置信息时具体用于:根据所述第一输入特征图的宽度W和高度H,生成所述第三DMA读配置信息中的X方向计数配置;根据预设数值生成所述第三DMA读配置信息中的Y方向计数配置、X方向步幅配置和Y方向步幅配置;
根据所述第一输入特征图的宽度W生成所述第三DMA写配置信息中的X方向计数配置;根据所述第一输入特征图的高度H生成所述第三DMA写配置信息中的Y方向计数配置;根据预设数值生成所述第三DMA写配置信息中的X方向步幅配置和Y方向步幅配置。
66.根据权利要求58所述的DMA控制器,其特征在于,
所述DMA控制器在确定第三DMA读配置信息和第三DMA写配置信息时具体用于:根据所述第一输入特征图的宽度W、高度H和通道数N,生成所述第三DMA读配置信息中的X方向计数配置;根据预设数值生成所述第三DMA读配置信息中的Y方向计数配置、X方向步幅配置、Y方向步幅配置、Z方向计数配置、Z方向步幅配置;
根据所述第一输入特征图的宽度W生成所述第三DMA写配置信息中的X方向计数配置;根据所述第一输入特征图的高度H生成所述第三DMA写配置信息中的Y方向计数配置;根据所述第一输入特征图的通道数N生成所述第三DMA写配置信息中的Z方向计数配置;根据预设数值生成所述第三DMA写配置信息中的X方向步幅配置、Y方向步幅配置和Z方向步幅配置。
67.根据权利要求58所述的DMA控制器,其特征在于,
所述DMA控制器在根据所述第三DMA读配置信息读取所述运算逻辑的运算结果时具体用于:根据所述第三DMA读配置信息,从所述运算逻辑对应的出口地址开始,读取所述运算逻辑产生的每个运算结果;
所述DMA控制器在根据所述第三DMA写配置信息,将读取的运算结果存储到输出特征图时具体用于:根据所述第三DMA写配置信息,从所述输出特征图的起始地址开始,将读取的每个运算结果存储到所述输出特征图。
68.根据权利要求58所述的DMA控制器,其特征在于,
所述DMA控制器在将读取的运算结果存储到输出特征图之前还用于:确定所述第一输入特征图对应的目标DMA配置信息;根据所述目标DMA配置信息构造第一输入特征图对应的输出特征图。
69.根据权利要求68所述的DMA控制器,其特征在于,
所述DMA控制器在确定所述第一输入特征图对应的目标DMA配置信息时具体用于:根据所述第一输入特征图的宽度W生成X方向计数配置;根据所述第一输入特征图的高度H生成Y方向计数配置;根据所述第一输入特征图的通道数N生成Z方向计数配置;根据预设数值生成X方向步幅配置、Y方向步幅配置和Z方向步幅配置。
70.根据权利要求68所述的DMA控制器,其特征在于,
所述DMA控制器在根据所述目标DMA配置信息构造第一输入特征图对应的输出特征图时具体用于:从指定存储位置读取特定样式信息,并根据所述目标DMA配置信息,构造与所述特定样式信息对应的输出特征图。
71.一种数据处理设备,其特征在于,所述数据处理设备包括:
存储器,用于存储程序代码;
DMA控制器,用于调用所述程序代码,当所述程序代码被执行时,实现权利要求1-18任一所述的数据处理方法,或者,实现权利要求19-50任一所述的数据处理方法。
72.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有若干计算机指令,所述计算机指令被执行时,实现权利要求1-18任一所述的数据处理方法,或者,实现权利要求19-50任一所述的数据处理方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2017/120273 WO2019127538A1 (zh) | 2017-12-29 | 2017-12-29 | 数据处理方法、设备、dma控制器及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109074334A true CN109074334A (zh) | 2018-12-21 |
Family
ID=64812380
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780022803.9A Pending CN109074334A (zh) | 2017-12-29 | 2017-12-29 | 数据处理方法、设备、dma控制器及计算机可读存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN109074334A (zh) |
WO (1) | WO2019127538A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114328315A (zh) * | 2021-11-22 | 2022-04-12 | 北京智芯微电子科技有限公司 | 基于dma的数据预处理方法、dma部件及芯片结构 |
CN114399034A (zh) * | 2021-12-30 | 2022-04-26 | 北京奕斯伟计算技术有限公司 | 用于直接存储器访问装置的数据搬运方法 |
US11789709B2 (en) | 2019-09-18 | 2023-10-17 | Huawei Technologies Co., Ltd. | Intermediate representation construction method, compiler, and server |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070294514A1 (en) * | 2006-06-20 | 2007-12-20 | Koji Hosogi | Picture Processing Engine and Picture Processing System |
CN101552916A (zh) * | 2009-05-05 | 2009-10-07 | 北京红旗胜利科技发展有限责任公司 | 视频yuv数据的dma传输方法、装置及dma控制器 |
CN102567254A (zh) * | 2010-12-31 | 2012-07-11 | 重庆重邮信科通信技术有限公司 | 采用dma控制器进行数据归一化处理的方法 |
CN103207847A (zh) * | 2013-04-27 | 2013-07-17 | 杭州士兰微电子股份有限公司 | Dma控制器及直接内存存取控制方法 |
CN104899182A (zh) * | 2015-06-09 | 2015-09-09 | 中国人民解放军国防科学技术大学 | 一种支持可变分块的矩阵乘加速方法 |
CN107391402A (zh) * | 2017-07-21 | 2017-11-24 | 郑州云海信息技术有限公司 | 一种数据运算方法、装置及一种数据运算卡 |
-
2017
- 2017-12-29 WO PCT/CN2017/120273 patent/WO2019127538A1/zh active Application Filing
- 2017-12-29 CN CN201780022803.9A patent/CN109074334A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070294514A1 (en) * | 2006-06-20 | 2007-12-20 | Koji Hosogi | Picture Processing Engine and Picture Processing System |
CN101552916A (zh) * | 2009-05-05 | 2009-10-07 | 北京红旗胜利科技发展有限责任公司 | 视频yuv数据的dma传输方法、装置及dma控制器 |
CN102567254A (zh) * | 2010-12-31 | 2012-07-11 | 重庆重邮信科通信技术有限公司 | 采用dma控制器进行数据归一化处理的方法 |
CN103207847A (zh) * | 2013-04-27 | 2013-07-17 | 杭州士兰微电子股份有限公司 | Dma控制器及直接内存存取控制方法 |
CN104899182A (zh) * | 2015-06-09 | 2015-09-09 | 中国人民解放军国防科学技术大学 | 一种支持可变分块的矩阵乘加速方法 |
CN107391402A (zh) * | 2017-07-21 | 2017-11-24 | 郑州云海信息技术有限公司 | 一种数据运算方法、装置及一种数据运算卡 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11789709B2 (en) | 2019-09-18 | 2023-10-17 | Huawei Technologies Co., Ltd. | Intermediate representation construction method, compiler, and server |
CN114328315A (zh) * | 2021-11-22 | 2022-04-12 | 北京智芯微电子科技有限公司 | 基于dma的数据预处理方法、dma部件及芯片结构 |
CN114399034A (zh) * | 2021-12-30 | 2022-04-26 | 北京奕斯伟计算技术有限公司 | 用于直接存储器访问装置的数据搬运方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2019127538A1 (zh) | 2019-07-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108885596A (zh) | 数据处理方法、设备、dma控制器及计算机可读存储介质 | |
TWI775605B (zh) | 深度視覺處理器 | |
CN108229654B (zh) | 神经网络卷积运算装置及方法 | |
CN109074335A (zh) | 数据处理方法、设备、dma控制器及计算机可读存储介质 | |
US11294599B1 (en) | Registers for restricted memory | |
CN108645411B (zh) | 基于粒子群算法的机器人路径规划方法、装置及终端设备 | |
US20210157594A1 (en) | Data temporary storage apparatus, data temporary storage method and operation method | |
CN109791625A (zh) | 使用人工神经网络进行面部识别 | |
CN105608490B (zh) | 细胞阵列计算***以及其中的通信方法 | |
CN107895191A (zh) | 一种信息处理方法及相关产品 | |
CN107329734A (zh) | 一种用于执行卷积神经网络正向运算的装置和方法 | |
CN103559476B (zh) | 一种指纹匹配方法和装置 | |
CN109074334A (zh) | 数据处理方法、设备、dma控制器及计算机可读存储介质 | |
CN111465943A (zh) | 芯片上计算网络 | |
US20200210805A1 (en) | Neural Network Generator | |
US20240160909A1 (en) | Shared scratchpad memory with parallel load-store | |
CN107707899A (zh) | 包含运动目标的多视角图像处理方法、装置及电子设备 | |
CN109726755A (zh) | 一种图片标注方法、装置及电子设备 | |
CN105843591A (zh) | 多维数组滑动生成数据的方法、装置及处理器 | |
JP2017010255A (ja) | 画像認識装置および画像認識方法 | |
CN113822975B (zh) | 用于对图像进行有效采样的技术 | |
US9570125B1 (en) | Apparatuses and methods for shifting data during a masked write to a buffer | |
CN112396072A (zh) | 基于asic与vgg16的图像分类加速方法及装置 | |
CN110910478B (zh) | Gif图生成方法、装置、电子设备及存储介质 | |
CN114761920A (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 | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20181221 |