CN109074335A - 数据处理方法、设备、dma控制器及计算机可读存储介质 - Google Patents
数据处理方法、设备、dma控制器及计算机可读存储介质 Download PDFInfo
- Publication number
- CN109074335A CN109074335A CN201780024875.7A CN201780024875A CN109074335A CN 109074335 A CN109074335 A CN 109074335A CN 201780024875 A CN201780024875 A CN 201780024875A CN 109074335 A CN109074335 A CN 109074335A
- Authority
- CN
- China
- Prior art keywords
- information
- configuration
- stride
- dma
- characteristic
- 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/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- 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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- 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/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Human Computer Interaction (AREA)
- Neurology (AREA)
- Navigation (AREA)
- Bus Control (AREA)
- Image Analysis (AREA)
Abstract
一种数据处理方法、设备、DMA控制器及计算机可读存储介质,所述方法包括:获取原始输入特征图的特征信息和参数信息;根据所述特征信息生成第二DMA配置信息,并根据所述特征信息和所述参数信息生成第一DMA配置信息和第三DMA配置信息;根据所述第一DMA配置信息构造目标输入特征图;根据所述第二DMA配置信息从所述原始输入特征图中读取输入数据;根据所述第三DMA配置信息将所述输入数据存储到目标输入特征图。应用本发明实施例,可以由DMA控制器实现CNN中的数据搬移,不需要由CPU实现CNN中的数据搬移,从而减轻CPU负担,更高效地搬移数据,进而起到加速CNN运算的效果,同时也不失灵活性。
Description
技术领域
本发明涉及图像处理技术领域,尤其是涉及一种数据处理方法、设备、DMA(DirectMemory Access,直接内存存取)控制器及计算机可读存储介质。
背景技术
在机器学***面组成,每个平面由多个独立的神经元组成。一般地,CNN可以由卷积层和池化层组成,卷积层的作用是提取图像的各种特征,池化层的作用是对原始特征信号进行两次特征提取,以减小特征分辨率,大幅度减少训练参数,并可以减轻模型过拟合的程度。此外,CNN以其局部权值共享的特殊结构,降低网络的复杂性,特别是多维输入向量的图像可以直接输入网络这一特点,避免了特征提取和分类过程中数据重建的复杂度,因而得到广泛应用。
在CNN中,涉及多种数据搬移任务,传统的数据搬移任务,由CPU(CentralProcessing Unit,中央处理器)实现,其数据搬移效率较低,给CPU增加过多负担。例如,图像算法涉及固定矩阵的运算,如高斯滤波的Gaussian(高斯)矩阵等,CPU在完成矩阵运算时,还需要进行数据搬移,额外增加CPU负担。
发明内容
本发明提供数据处理方法、设备、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控制器的工作原理示意图;
图2是一个数据处理方法的实施例示意图;
图3A-图3F是对原始输入特征图进行填充处理的示意图;
图4A-图4F是对原始输入特征图进行逆卷积处理的示意图;
图5是数据处理设备的一个实施例框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。另外,在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
本发明使用的术语仅仅是出于描述特定实施例的目的,而非限制本发明。本发明和权利要求书所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。
尽管在本发明可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语用来将同一类型的信息彼此区分开。例如,在不脱离本发明范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在……时”,或者“当……时”,或者“响应于确定”。
本发明实施例提出一种数据处理方法,该方法可以应用于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控制器的工作原理,在卷积神经网络中,可以采用DMA控制器实现数据搬移任务,而不再采用CPU实现数据搬移任务。参见图2所示,为在卷积神经网络中,上述数据处理方法的流程图的示例,该方法可以应用于DMA控制器,该方法可以包括以下步骤:
步骤201,获取原始输入特征图的特征信息和参数信息。
步骤202,根据该特征信息生成第二DMA配置信息,并根据该特征信息和该参数信息生成第一DMA配置信息和第三DMA配置信息。
步骤203,根据第一DMA配置信息构造目标输入特征图。
步骤204,根据第二DMA配置信息从该原始输入特征图中读取输入数据。
步骤205,根据第三DMA配置信息将输入数据存储到目标输入特征图。
在一个例子中,上述执行顺序只是为了方便描述的一个示例,在实际应用中,还可以改变步骤之间的执行顺序,对此执行顺序不做限制。而且,在其它实施例中,并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤,其方法所包括的步骤可以比本说明书所描述的更多或更少。本说明书中所描述的单个步骤,在其它实施例中可能被分解为多个步骤进行描述;本说明书中描述的多个步骤,在其它实施例也可能被合并为单个步骤进行描述。
上述参数信息可以包括但不限于填充信息(即padding信息)和/或步幅信息(即stride信息)。其中,填充信息可以包括但不限于:水平方向的填充个数M,垂直方向的填充个数R;步幅信息可以包括但不限于:步幅长度S。
上述特征信息可以包括但不限于:原始输入特征图的宽度W、高度H。此外,上述特征信息还可以包括原始输入特征图的通道数N,即数量N。
在上述实施例中,原始输入特征图是初始特征图,DMA控制器可以从原始输入特征图中读取数据,即,原始输入特征图作为源数据。目标输入特征图是目标特征图,DMA控制器可以将数据写入目标输入特征图。综上所述,DMA控制器从原始输入特征图中读取数据,并将数据写入目标输入特征图。
在上述实施例中,由于原始输入特征图已知,因此,可以从原始输入特征图获取到特征信息和参数信息,并根据特征信息生成第二DMA配置信息,并根据特征信息和参数信息生成第一DMA配置信息和第三DMA配置信息。
其中,第一DMA配置信息是用于构造目标输入特征图的DMA配置信息,因此,可以根据第一DMA配置信息构造目标输入特征图,这个构造的目标输入特征图是初始状态的目标输入特征图,还没有写入原始输入特征图中数据。其中,目标输入特征图可以为特定的特征图,也可以是全0或1的特征图。
其中,第二DMA配置信息是用于从原始输入特征图中读取数据的DMA配置信息,因此,可以根据第二DMA配置信息从原始输入特征图中读取输入数据,这个读取过程,也就是从源地址(原始输入特征图)读取数据的过程。
其中,第三DMA配置信息是用于将输入数据存储到目标输入特征图(即上述构造的目标输入特征图,初始状态下,没有写入原始输入特征图中数据)的DMA配置信息,因此,可以根据第三DMA配置信息将输入数据存储到目标输入特征图,这个写入过程,也就是将源地址的数据写入目的地址(目标输入特征图)的过程,从而将数据从原始输入特征图搬移到目标输入特征图。
在上述实施例中,第一DMA配置信息、第二DMA配置信息、第三DMA配置信息,均可以包括X方向计数配置(X_COUNT)、X方向步幅配置(X_STRIDE)、Y方向计数配置(Y_COUNT)、Y方向步幅配置(Y_STRIDE)。
在另一个例子中,第一DMA配置信息、第二DMA配置信息、第三DMA配置信息,还包括Z方向计数配置(Z_COUNT)、Z方向步幅配置(Z_STRIDE)。
基于上述技术方案,本发明实施例中,可以由DMA控制器实现CNN中的数据搬移,不需要由CPU实现CNN中的数据搬移,从而减轻CPU负担,更高效地搬移数据,进而起到加速CNN运算的效果,同时也不失灵活性。
以下结合几个具体的应用场景,对上述技术方案进行详细说明。
应用场景1:Special pattern generate(特殊模式生成)。
在一个例子中,很多图像算法均涉及固定矩阵的运算,例如,高斯滤波中的Gaussian矩阵、边缘检测中的Laplacian矩阵和Sobel矩阵、快速傅里叶变化或者霍夫变换中的三角函数矩阵、加速矩阵乘法中的Toeplitz矩阵、随机矩阵、全0/1矩阵等。如果上述矩阵由CPU生成上述矩阵,则会增加CPU的负担。基于此,可以由DMA控制器生成上述矩阵,从而减轻CPU的负担。
在一个例子中,DMA控制器根据第一DMA配置信息构造目标输入特征图的过程,实际上,就是DMA控制器根据第一DMA配置信息构造矩阵的过程,这个矩阵构造过程,可以由DMA控制器实现,而不是由CPU实现。
根据实际需要,若需要目标输入特征图是Gaussian矩阵,则DMA控制器构造的目标输入特征图就是Gaussian矩阵;若需要目标输入特征图是三角函数矩阵,则DMA控制器构造的目标输入特征图就是三角函数矩阵;若需要目标输入特征图是全0矩阵,则DMA控制器构造的目标输入特征图就是全0矩阵;若需要目标输入特征图是全1矩阵,则DMA控制器构造的目标输入特征图就是全1矩阵;以此类推,对此不做限制,本文以构造全0矩阵为例。
为了实现上述过程,可以在指定存储位置存储特定样式信息,该特定样式信息表示矩阵类型。例如,当特定样式信息为第一标识时,表示矩阵类型为全0矩阵(用于各种类型的填充或者间插);当特定样式信息为第二标识时,表示矩阵类型为全1矩阵(用于各种类型的填充);当特定样式信息为第三标识时,表示矩阵类型为Gaussian矩阵(用于二维/三维高斯滤波);当特定样式信息为第四标识时,表示矩阵类型为Laplacian矩阵(用于边缘检测);当特定样式信息为第五标识时,表示矩阵类型为Sobel矩阵(用于边缘检测);当特定样式信息为第六标识时,表示矩阵类型为三角函数矩阵(用于快速傅里叶变换或者霍夫变换);当特定样式信息为第七标识时,表示矩阵类型为Toeplitz矩阵(用于矩阵乘法加速);当特定样式信息为第八标识时,表示矩阵类型为随机矩阵(用于训练权重的初始化);对此矩阵类型不做限制。
综上所述,针对“根据第一DMA配置信息构造目标输入特征图”的过程,可以包括但不限于如下方式:DMA控制器从指定存储位置读取特定样式信息,并根据第一DMA配置信息,构造与该特定样式信息对应的目标输入特征图。例如,当特定样式信息为第一标识时,表示矩阵类型为全0矩阵,因此,根据第一DMA配置信息,构造与该特定样式信息对应的目标输入特征图的过程,可以包括:根据第一DMA配置信息,构造全0的目标输入特征图。
在一个例子中,可以将一些特殊的地址(如0xFFFF_FFFF、0x8765_4321、0x5A5A_5A5A等)作为指定存储位置,或将CFG(Control Flow Graph,控制流图)寄存器的某些域作为指定存储位置,在指定存储位置存储特定样式信息,从而指定矩阵类型。这样,DMA控制器可以从指定存储位置读取特定样式信息,继而获知矩阵类型,并构造与该矩阵类型对应的目标输入特征图。
在一个例子中,DMA控制器在构造目标输入特征图时,目标输入特征图中的数据由DMA控制器自身产生(如产生全0的数据),不需要从其它位置读取数据,因此,不需要为读取过程设置第一DMA配置信息,只需要为写入过程设置第一DMA配置信息。基于所述第一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配置信息,构造目标输入特征图,对此不做限制。
应用场景2:输入特征图(Input Feature Maps)的填充(padding)。
参见图3A所示,示出一个没有填充,卷积核大小为3*3,步幅长度为1的2D卷积示例,从图3A可以发现,输入特征图的尺寸为5*5,在没有填充的情况下,输出特征图(OutputFeature Maps)的尺寸变成3*3。为了获得与输入特征图相同尺寸的输出特征图,则可以对输入特征图的边缘各补1个零,这种补零的方式称为half-padding(半填充),参见图3B所示。在实际应用中,还可以对输入特征图的边缘各补2个零,这种补零的方式称为full-padding(全填充),参见图3C所示。在实际应用中,还可以对输入特征图的边缘各补任意个零,这种补零的方式称为arbitrary-padding(任意填充),参见图3D所示。
如果由CPU完成上述填充操作,则会大幅增加CPU的负担。基于此,可以由DMA控制器完成上述填充操作,从而减轻CPU的负担。其中,上述操作用于对原始输入特征图进行填充处理,以下结合图3E进行详细说明。
步骤301,获取原始输入特征图的特征信息和参数信息。
假设原始输入特征图的宽度为W,高度为H,通道数为N,在存储器中连续存储,起始地址为A。水平方向左右填充(padding)的个数为M(即水平方向左边填充M个、右边填充M个),垂直方向上下填充的个数为R(即垂直方向上边填充R个、下边填充R个),填充后的输入特征图在存储器中连续存储,起始地址为A'。则:特征信息可以包括原始输入特征图的宽度W、高度H;上述参数信息为填充信息,且填充信息可以包括:水平方向的填充个数M,垂直方向的填充个数R;此外,上述特征信息还可以包括通道数N。
步骤302,根据该特征信息生成第二DMA配置信息,并根据该特征信息和该参数信息(即填充信息)生成第一DMA配置信息和第三DMA配置信息。
情况一、针对“根据该特征信息和该参数信息生成第一DMA配置信息”的过程,可以包括:根据该特征信息和该填充信息,生成第一DMA配置信息。
具体的,可以根据宽度W、填充个数M生成X方向计数配置,并根据高度H、填充个数R生成Y方向计数配置;此外,还可以根据预设数值(如1)生成X方向步幅配置和Y方向步幅配置。在另一个例子中,还可以根据通道数N生成Z方向计数配置,并根据预设数值(如1)生成Z方向步幅配置。
例如,第一DMA配置信息的示例可以包括:X方向计数配置:W+M*2;Y方向计数配置:H+R*2;X方向步幅配置:1;Y方向步幅配置:1。此外,第一DMA配置信息还可以包括:Z方向计数配置:N;Z方向步幅配置:1。
当然,上述第一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生成X方向计数配置,根据高度H生成Y方向计数配置;根据预设数值(如1)生成X方向步幅配置,根据填充个数M生成Y方向步幅配置。在另一个例子中,还可以根据通道数N生成Z方向计数配置,并根据宽度W、填充个数M和填充个数R生成Z方向步幅配置。
例如,第三DMA配置信息的示例可以包括:X方向计数配置:W;Y方向计数配置:H;X方向步幅配置:1;Y方向步幅配置:M*2。第三DMA配置信息还可以包括:Z方向计数配置N;Z方向步幅配置:(W+M*2)*R*2+M*2。
当然,上述第三DMA配置信息只是一个示例,对此第三DMA配置信息不做限制,可以根据经验进行配置,本文以上述第三DMA配置信息为例。
步骤303,根据第一DMA配置信息构造目标输入特征图。
在一个例子中,DMA控制器可以根据第一DMA配置信息构造尺寸为(W+M*2)*(H+R*2)的目标输入特征图,或者,根据第一DMA配置信息构造尺寸为(W+M*2)*(H+R*2)*N的目标输入特征图;其中,目标输入特征图为全0,目标输入特征图的起始地址(即DST_STRT_ADDR)为A'。
参见图3F所示,DMA控制器根据第一DMA配置信息构造的目标输入特征图的尺寸可以为(W+M*2)*(H+R*2),数量可以为通道数N。
步骤304,根据第二DMA配置信息从原始输入特征图中读取输入数据。
在一个例子中,DMA控制器可以根据第二DMA配置信息,从原始输入特征图对应的起始地址A开始,读取原始输入特征图中的每个输入数据。
步骤305,根据第三DMA配置信息将输入数据存储到目标输入特征图。
在一个例子中,DMA控制器可以根据第三DMA配置信息,从输入数据的起始地址开始,将每个输入数据存储到目标输入特征图;其中,输入数据的起始地址为A'+(W+M*2)*R+M;A'为目标输入特征图的起始地址。其中,输入数据的起始地址,可以是首个输入数据在目标输入特征图的地址。
参见图3F所示,DMA控制器可以将原始输入特征图中的数据,搬移到步骤303构造的全0的目标输入特征图,使得原始输入特征图的中心与全0的目标输入特征图的中心重合,并完成数据搬移,最终得到符合要求的目标输入特征图,这个目标输入特征图已经实现原始输入特征图的填充过程。
应用场景3:逆卷积(De-convolution),也可以称为转置卷积。
参见图4A所示,当步幅stride等于1时,则逆卷积运算过程与卷积运算过程类似。参见图4B所示,当步幅stride大于1时,则逆卷积的卷积核,可以成为一个带‘洞’的卷积,也就是一个微步卷积,而且,带‘洞’是为了使转置卷积的步长变成正向卷积的1/i倍,使得卷积核将以一个更小的步伐移动。
当步幅stride大于1时,原始输入特征图需要间插若干的零,来实现输出矩阵的reshape(用于重新调整矩阵的行数、列数、维数的函数),如果由CPU完成上述向原始输入特征图中,间插零的操作,则会大幅增加CPU的负担。
基于此,可以由DMA控制器完成上述向原始输入特征图中,间插零的操作,从而减轻CPU的负担,上述操作用于对原始输入特征图进行逆卷积处理。
在本文中,可以将逆卷积处理区分为第一逆卷积处理和第二逆卷积处理,第一逆卷积处理具体为:不进行填充处理的逆卷积处理(即不padding处理);第二逆卷积处理具体为:进行填充处理的逆卷积处理(即padding处理)。
参见图4C所示,为不进行填充处理的第一逆卷积处理的示意图。
步骤411,获取原始输入特征图的特征信息和参数信息。
假设原始输入特征图的宽度为W,高度为H,通道数为N,在存储器中连续存储,起始地址为A。逆卷积的步幅长度stride为S,预处理后的原始输入特征图在存储器中连续存储,起始地址为A'。则:特征信息可以包括原始输入特征图的宽度W、高度H;上述参数信息为步幅信息,且步幅信息可以包括:第一逆卷积处理时的步幅长度S。上述特征信息还可以包括通道数N。
步骤412,根据该特征信息生成第二DMA配置信息,并根据该特征信息和该参数信息(即步幅信息)生成第一DMA配置信息和第三DMA配置信息。
情况一、针对“根据该特征信息和该参数信息生成第一DMA配置信息”的过程,可以包括:根据该特征信息和该步幅信息,生成第一DMA配置信息。
具体的,可以根据宽度W、步幅长度S生成X方向计数配置,并根据高度H、步幅长度S生成Y方向计数配置;可以根据预设数值(如1)生成X方向步幅配置、Y方向步幅配置。在另一个例子中,还可以根据通道数N生成Z方向计数配置,并可以根据预设数值(如1)生成Z方向步幅配置。
例如,第一DMA配置信息的示例可以包括:X方向计数配置:W*S-1;Y方向计数配置:H*S-1;X方向步幅配置:1;Y方向步幅配置:1。此外,第一DMA配置信息还可以包括:Z方向计数配置:N;Z方向步幅配置:1。
当然,上述第一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生成X方向计数配置,并根据高度H生成Y方向计数配置;可以根据步幅长度S生成X方向步幅配置,并根据宽度W、步幅长度S生成Y方向步幅配置。在另一个例子中,还可以根据通道数N生成Z方向计数配置,并根据预设数值(如1)生成Z方向步幅配置。
例如,第三DMA配置信息的示例可以包括:X方向计数配置:W;Y方向计数配置:H;X方向步幅配置:S;Y方向步幅配置:W*S-1。此外,第三DMA配置信息还可以包括:Z方向计数配置N;Z方向步幅配置:1。
当然,上述第三DMA配置信息只是一个示例,对此第三DMA配置信息不做限制,可以根据经验进行配置,本文以上述第三DMA配置信息为例。
步骤413,根据第一DMA配置信息构造目标输入特征图。
在一个例子中,DMA控制器可以根据第一DMA配置信息构造尺寸为(W*S-1)*(H*S-1)的目标输入特征图,或者,根据第一DMA配置信息构造尺寸为(W*S-1)*(H*S-1)*N的目标输入特征图;其中,所述目标输入特征图为全0,且所述目标输入特征图的起始地址(即DST_STRT_ADDR)为A'。
参见图4D所示,DMA控制器根据第一DMA配置信息构造的目标输入特征图的尺寸可以为(W*S-1)*(H*S-1),数量可以为通道数N。
步骤414,根据第二DMA配置信息从原始输入特征图中读取输入数据。
在一个例子中,DMA控制器可以根据第二DMA配置信息,从原始输入特征图对应的起始地址A开始,读取原始输入特征图中的每个输入数据。
步骤415,根据第三DMA配置信息将输入数据存储到目标输入特征图。
在一个例子中,DMA控制器可以根据第三DMA配置信息,从目标输入特征图的起始地址A'开始,将每个输入数据存储到目标输入特征图。
参见图4D所示,DMA控制器可以将原始输入特征图中的数据,搬移到步骤413构造的全0的目标输入特征图,使得原始输入特征图的中心与全0的目标输入特征图的中心重合,并完成数据搬移,最终得到符合要求的目标输入特征图,这个目标输入特征图已经对原始输入特征图进行逆卷积处理。
参见图4E所示,为进行填充处理的逆卷积处理的示意图。
步骤421,获取原始输入特征图的特征信息和参数信息。
假设原始输入特征图的宽度为W,高度为H,通道数为N,在存储器中连续存储,起始地址为A。水平方向左右填充(padding)的个数为M(即水平方向左边填充M个、右边填充M个),垂直方向上下填充的个数为R(即垂直方向上边填充R个、下边填充R个)。逆卷积的步幅长度stride为S,预处理后的原始输入特征图在存储器中连续存储,起始地址为A'。则:特征信息包括原始输入特征图的宽度W、高度H;参数信息为填充信息和步幅信息,填充信息包括:水平方向的填充个数M,垂直方向的填充个数R;步幅信息包括:第二逆卷积处理时的步幅长度S。上述特征信息还可以包括通道数N。
步骤422,根据特征信息生成第二DMA配置信息,根据特征信息和参数信息(填充信息和步幅信息)生成第一DMA配置信息和第三DMA配置信息。
情况一、针对“根据特征信息和参数信息生成第一DMA配置信息”的过程,包括:根据特征信息、填充信息和步幅信息,生成第一DMA配置信息。
具体的,可以根据宽度W、步幅长度S、填充个数M生成X方向计数配置;根据高度H、步幅长度S、填充个数R生成Y方向计数配置;根据预设数值(如1)生成X方向步幅配置、Y方向步幅配置。在另一个例子中,还可以根据通道数N生成Z方向计数配置,根据预设数值生成Z方向步幅配置。
例如,第一DMA配置信息可以包括:X方向计数配置:W*S+M*2-1;Y方向计数配置:H*S+R*2-1;X方向步幅配置:1;Y方向步幅配置:1。此外,第一DMA配置信息还可以包括:Z方向计数配置:N;Z方向步幅配置:1。
当然,上述第一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生成X方向计数配置,并根据高度H生成Y方向计数配置;此外,还可以根据步幅长度S生成X方向步幅配置,并可以根据宽度W、步幅长度S、填充个数M生成Y方向步幅配置。在另一个例子中,还可以根据通道数N生成Z方向计数配置,并可以根据宽度W、步幅长度S、填充个数M和填充个数R生成Z方向步幅配置。
例如,上述第三DMA配置信息的示例可以包括:X方向计数配置:W;Y方向计数配置:H;X方向步幅配置:S;Y方向步幅配置:W*S+M*2-1+M*2。
在另一个例子中,上述第三DMA配置信息还可以包括:Z方向计数配置N;Z方向步幅配置:(W*S+M*2-1)*R*2+M*2。
当然,上述第三DMA配置信息只是一个示例,对此第三DMA配置信息不做限制,可以根据经验进行配置,本文以上述第三DMA配置信息为例。
步骤423,根据第一DMA配置信息构造目标输入特征图。
在一个例子中,DMA控制器可以根据第一DMA配置信息构造尺寸为(W*S+M*2-1)*(H*S+R*2-1)的目标输入特征图;或者,构造尺寸为(W*S+M*2-1)*(H*S+R*2-1)*N的目标输入特征图;其中,目标输入特征图为全0,且所述目标输入特征图的起始地址(DST_STRT_ADDR)为A'。
参见图4F所示,DMA控制器根据第一DMA配置信息构造的目标输入特征图的尺寸可以为(W*S+M*2-1)*(H*S+R*2-1),数量可以为通道数N。
步骤424,根据第二DMA配置信息从原始输入特征图中读取输入数据。
在一个例子中,DMA控制器可以根据第二DMA配置信息,从原始输入特征图对应的起始地址A开始,读取原始输入特征图中的每个输入数据。
步骤425,根据第三DMA配置信息将输入数据存储到目标输入特征图。
在一个例子中,DMA控制器可以根据第三DMA配置信息,从输入数据的起始地址开始,将每个输入数据存储到目标输入特征图。其中,输入数据的起始地址为A'+(W*S+M*2-1)*R+M;A'为目标输入特征图的起始地址。其中,输入数据的起始地址,可以是首个输入数据在目标输入特征图的地址。
参见图4F所示,DMA控制器可以将原始输入特征图中的数据,搬移到步骤423构造的全0的目标输入特征图,使得原始输入特征图的中心与全0的目标输入特征图的中心重合,并完成数据搬移,最终得到符合要求的目标输入特征图,这个目标输入特征图已经对原始输入特征图进行逆卷积处理。
基于与上述方法同样的发明构思,本发明实施例中还提供一种DMA控制器,所述DMA控制器用于:获取原始输入特征图的特征信息和参数信息;
根据所述特征信息生成第二DMA配置信息,并根据所述特征信息和所述参数信息生成第一DMA配置信息和第三DMA配置信息;
根据所述第一DMA配置信息构造目标输入特征图;
根据所述第二DMA配置信息从所述原始输入特征图中读取输入数据;
根据所述第三DMA配置信息将所述输入数据存储到目标输入特征图。
所述DMA控制器在根据所述特征信息和所述参数信息生成第一DMA配置信息时具体用于:在为所述原始输入特征图进行填充处理时,则根据所述特征信息和填充信息,生成第一DMA配置信息;或者,
在为所述原始输入特征图进行第一逆卷积处理时,则根据所述特征信息和步幅信息,生成第一DMA配置信息;或者,
在为所述原始输入特征图进行第二逆卷积处理时,则根据所述特征信息、填充信息和步幅信息,生成第一DMA配置信息。
所述特征信息包括:原始输入特征图的宽度W、高度H;所述填充信息包括:水平方向的填充个数M,垂直方向的填充个数R;所述DMA控制器在根据所述特征信息和填充信息生成第一DMA配置信息时具体用于:根据所述宽度W、所述填充个数M生成X方向计数配置,并根据所述高度H、所述填充个数R生成Y方向计数配置,并根据预设数值生成X方向步幅配置和Y方向步幅配置。
所述特征信息包括:所述原始输入特征图的宽度W、高度H;所述步幅信息包括:第一逆卷积处理时的步幅长度S;所述DMA控制器在根据所述特征信息和步幅信息生成第一DMA配置信息时具体用于:根据所述宽度W、所述步幅长度S生成X方向计数配置;根据所述高度H、所述步幅长度S生成Y方向计数配置;根据预设数值生成X方向步幅配置、Y方向步幅配置。
所述特征信息包括:原始输入特征图的宽度W、高度H;所述填充信息包括:水平方向的填充个数M,垂直方向的填充个数R;所述步幅信息包括:第二逆卷积处理时的步幅长度S;所述DMA控制器在根据所述特征信息、填充信息和步幅信息生成第一DMA配置信息时具体用于:根据所述宽度W、步幅长度S、填充个数M生成X方向计数配置;根据所述高度H、步幅长度S、填充个数R生成Y方向计数配置;根据预设数值生成X方向步幅配置、Y方向步幅配置。
所述特征信息还包括通道数N;所述DMA控制器在根据所述特征信息和所述参数信息生成第一DMA配置信息时具体用于:根据所述通道数N生成Z方向计数配置,并根据预设数值生成Z方向步幅配置。
所述特征信息包括:所述原始输入特征图的宽度W、高度H;
所述DMA控制器在根据所述特征信息生成第二DMA配置信息时具体用于:在为所述原始输入特征图进行填充处理时,或者为所述原始输入特征图进行第一逆卷积处理时,或者在为所述原始输入特征图进行第二逆卷积处理时,则根据所述宽度W生成X方向计数配置,并根据所述高度H生成Y方向计数配置;根据预设数值生成X方向步幅配置和Y方向步幅配置。
所述特征信息还包括通道数N;所述DMA控制器在根据所述特征信息生成第二DMA配置信息时具体用于:根据所述通道数N生成Z方向计数配置,并根据预设数值生成Z方向步幅配置。
所述DMA控制器在根据所述特征信息和所述参数信息生成第三DMA配置信息时具体用于:在为所述原始输入特征图进行填充处理时,则根据所述特征信息和填充信息,生成第三DMA配置信息;或者,
在为所述原始输入特征图进行第一逆卷积处理时,则根据所述特征信息和步幅信息,生成第三DMA配置信息;或者,
在为所述原始输入特征图进行第二逆卷积处理时,则根据所述特征信息、填充信息和步幅信息,生成第三DMA配置信息。
所述特征信息包括:原始输入特征图的宽度W、高度H;所述填充信息包括:水平方向的填充个数M,垂直方向的填充个数R;所述DMA控制器在根据所述特征信息和填充信息生成第三DMA配置信息时具体用于:根据所述宽度W生成X方向计数配置;根据所述高度H生成Y方向计数配置;根据预设数值生成X方向步幅配置;根据所述填充个数M生成Y方向步幅配置。
所述特征信息包括:原始输入特征图的宽度W、高度H;所述步幅信息包括:第一逆卷积处理的步幅长度S;所述DMA控制器在根据所述特征信息和步幅信息生成第三DMA配置信息时具体用于:根据所述宽度W生成X方向计数配置;根据所述高度H生成Y方向计数配置;根据所述步幅长度S生成X方向步幅配置;根据所述宽度W、所述步幅长度S生成Y方向步幅配置。
所述特征信息包括:所述原始输入特征图的宽度W、高度H;所述填充信息包括:水平方向的填充个数M,垂直方向的填充个数R;所述步幅信息包括:第二逆卷积处理时的步幅长度S;
所述DMA控制器在根据所述特征信息、填充信息和步幅信息,生成第三DMA配置信息时具体用于:根据所述宽度W生成X方向计数配置;根据所述高度H生成Y方向计数配置;根据所述步幅长度S生成X方向步幅配置;根据所述宽度W、所述步幅长度S、填充个数M生成Y方向步幅配置。
所述特征信息还包括通道数N;所述DMA控制器在根据所述特征信息和填充信息生成第三DMA配置信息时具体用于:根据通道数N生成Z方向计数配置;根据所述宽度W、填充个数M和填充个数R生成Z方向步幅配置。
所述特征信息还包括通道数N;所述DMA控制器在根据所述特征信息和步幅信息生成第三DMA配置信息时具体用于:根据所述通道数N生成Z方向计数配置;根据预设数值生成Z方向步幅配置。
所述特征信息还包括通道数N;所述DMA控制器在根据所述特征信息、填充信息和步幅信息,生成第三DMA配置信息时具体用于:根据所述通道数N生成Z方向计数配置,并根据所述宽度W、所述步幅长度S、所述填充个数M和所述填充个数R生成Z方向步幅配置。
所述DMA控制器在根据所述第一DMA配置信息构造目标输入特征图时具体用于:从指定存储位置读取特定样式信息,并根据所述第一DMA配置信息,构造与所述特定样式信息对应的目标输入特征图。
基于与上述方法同样的发明构思,本发明实施例中还提供一种数据处理设备,如图5所示,所述数据处理设备包括:存储器和DMA控制器;其中,所述存储器,用于存储程序代码;所述DMA控制器,用于调用所述程序代码,当所述程序代码被执行时,实现权利要求上述的数据处理方法。
基于与上述方法同样的发明构思,本发明实施例中还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有若干计算机指令,所述计算机指令被执行时,实现权利要求上述的数据处理方法。
上述实施例阐明的***、装置、模块或单元,可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本发明时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本发明实施例可提供为方法、***、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可以由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
而且,这些计算机程序指令也可以存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或者多个流程和/或方框图一个方框或者多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其它可编程数据处理设备,使得在计算机或者其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅为本发明实施例而已,并不用于限制本发明。对于本领域技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进,均应包含在本发明的权利要求范围之内。
Claims (65)
1.一种数据处理方法,其特征在于,应用于直接内存存取DMA控制器,所述方法包括:
获取原始输入特征图的特征信息和参数信息;
根据所述特征信息生成第二DMA配置信息,并根据所述特征信息和所述参数信息生成第一DMA配置信息和第三DMA配置信息;
根据所述第一DMA配置信息构造目标输入特征图;
根据所述第二DMA配置信息从所述原始输入特征图中读取输入数据;
根据所述第三DMA配置信息将所述输入数据存储到目标输入特征图。
2.根据权利要求1所述的方法,其特征在于,
所述根据所述特征信息和所述参数信息生成第一DMA配置信息,包括:
在为所述原始输入特征图进行填充处理时,则根据所述特征信息和填充信息,生成第一DMA配置信息。
3.根据权利要求2所述的方法,其特征在于,
所述特征信息包括:所述原始输入特征图的宽度W、高度H;所述填充信息包括:水平方向的填充个数M,垂直方向的填充个数R;
所述根据所述特征信息和填充信息生成第一DMA配置信息,包括:
根据所述宽度W、所述填充个数M生成X方向计数配置;
根据所述高度H、所述填充个数R生成Y方向计数配置;
根据预设数值生成X方向步幅配置和Y方向步幅配置。
4.根据权利要求3所述的方法,其特征在于,
所述第一DMA配置信息包括:X方向计数配置:W+M*2;Y方向计数配置:H+R*2;X方向步幅配置:1;Y方向步幅配置:1。
5.根据权利要求3所述的方法,其特征在于,所述特征信息还包括通道数N;所述根据所述特征信息和填充信息生成第一DMA配置信息,还包括:
根据所述通道数N生成Z方向计数配置;
根据预设数值生成Z方向步幅配置。
6.根据权利要求3-5任一项所述的方法,其特征在于,
所述根据所述第一DMA配置信息构造目标输入特征图,包括:
根据所述第一DMA配置信息构造尺寸为(W+M*2)*(H+R*2)的目标输入特征图;其中,所述目标输入特征图为全0,起始地址为A'。
7.根据权利要求1所述的方法,其特征在于,
所述特征信息包括:所述原始输入特征图的宽度W、高度H;
所述根据所述特征信息生成第二DMA配置信息,包括:
在为所述原始输入特征图进行填充处理时,根据所述宽度W生成X方向计数配置,并根据所述高度H生成Y方向计数配置;
根据预设数值生成X方向步幅配置和Y方向步幅配置。
8.根据权利要求7所述的方法,其特征在于,
所述第二DMA配置信息包括:X方向计数配置:W;Y方向计数配置:H;X方向步幅配置:1;Y方向步幅配置:1。
9.根据权利要求7所述的方法,其特征在于,所述特征信息还包括通道数N;所述根据所述特征信息生成第二DMA配置信息,还包括:
根据所述通道数N生成Z方向计数配置;
根据预设数值生成Z方向步幅配置。
10.根据权利要求7-9任一项所述的方法,其特征在于,所述根据所述第二DMA配置信息从所述原始输入特征图中读取输入数据,包括:
根据所述第二DMA配置信息,从所述原始输入特征图对应的起始地址A开始,读取所述原始输入特征图中的每个输入数据。
11.根据权利要求1所述的方法,其特征在于,
所述根据所述特征信息和所述参数信息生成第三DMA配置信息,包括:
在为所述原始输入特征图进行填充处理时,则根据所述特征信息和填充信息,生成第三DMA配置信息。
12.根据权利要求11所述的方法,其特征在于,
所述特征信息包括:所述原始输入特征图的宽度W、高度H;所述填充信息包括:水平方向的填充个数M,垂直方向的填充个数R;
所述根据所述特征信息和填充信息生成第三DMA配置信息,包括:
根据所述宽度W生成X方向计数配置;
根据所述高度H生成Y方向计数配置;
根据预设数值生成X方向步幅配置;
根据所述填充个数M生成Y方向步幅配置。
13.根据权利要求12所述的方法,其特征在于,
所述第三DMA配置信息包括:X方向计数配置:W;Y方向计数配置:H;X方向步幅配置:1;Y方向步幅配置:M*2。
14.根据权利要求12所述的方法,其特征在于,所述特征信息还包括通道数N;所述根据所述特征信息和填充信息生成第三DMA配置信息,还包括:
根据所述通道数N生成Z方向计数配置;
根据所述宽度W、填充个数M和填充个数R生成Z方向步幅配置。
15.根据权利要求12-14任一项所述的方法,其特征在于,所述根据所述第三DMA配置信息将所述输入数据存储到目标输入特征图,包括:
根据所述第三DMA配置信息,从输入数据的起始地址开始,将每个输入数据存储到目标输入特征图;其中,所述输入数据的起始地址为A'+(W+M*2)*R+M;A'为所述目标输入特征图的起始地址。
16.根据权利要求1所述的方法,其特征在于,
所述根据所述特征信息和所述参数信息生成第一DMA配置信息,包括:
在为所述原始输入特征图进行第一逆卷积处理时,则根据所述特征信息和步幅信息,生成第一DMA配置信息。
17.根据权利要求16所述的方法,其特征在于,
所述特征信息包括:所述原始输入特征图的宽度W、高度H;所述步幅信息包括:第一逆卷积处理时的步幅长度S;
所述根据所述特征信息和步幅信息生成第一DMA配置信息,包括:
根据所述宽度W、所述步幅长度S生成X方向计数配置;
根据所述高度H、所述步幅长度S生成Y方向计数配置;
根据预设数值生成X方向步幅配置、Y方向步幅配置。
18.根据权利要求17所述的方法,其特征在于,
所述第一DMA配置信息包括:X方向计数配置:W*S-1;Y方向计数配置:H*S-1;X方向步幅配置:1;Y方向步幅配置:1。
19.根据权利要求17所述的方法,其特征在于,所述特征信息还包括通道数N;所述根据所述特征信息和步幅信息生成第一DMA配置信息,还包括:
根据所述通道数N生成Z方向计数配置;
根据预设数值生成Z方向步幅配置。
20.根据权利要求17-19任一项所述的方法,其特征在于,
所述根据所述第一DMA配置信息构造目标输入特征图,包括:
根据所述第一DMA配置信息构造尺寸为(W*S-1)*(H*S-1)的目标输入特征图;其中,所述目标输入特征图为全0,起始地址为A'。
21.根据权利要求1所述的方法,其特征在于,
所述特征信息包括:所述原始输入特征图的宽度W、高度H;
所述根据所述特征信息生成第二DMA配置信息,包括:
在为所述原始输入特征图进行第一逆卷积处理时,根据所述宽度W生成X方向计数配置,并根据所述高度H生成Y方向计数配置;
根据预设数值生成X方向步幅配置和Y方向步幅配置。
22.根据权利要求21所述的方法,其特征在于,
所述第二DMA配置信息包括:X方向计数配置:W;Y方向计数配置:H;X方向步幅配置:1;Y方向步幅配置:1。
23.根据权利要求21所述的方法,其特征在于,所述特征信息还包括通道数N;所述根据所述特征信息生成第二DMA配置信息,还包括:
根据所述通道数N生成Z方向计数配置;
根据预设数值生成Z方向步幅配置。
24.根据权利要求21-23任一项所述的方法,其特征在于,所述根据所述第二DMA配置信息从所述原始输入特征图中读取输入数据,包括:
根据所述第二DMA配置信息,从所述原始输入特征图对应的起始地址A开始,读取所述原始输入特征图中的每个输入数据。
25.根据权利要求1所述的方法,其特征在于,
所述根据所述特征信息和所述参数信息生成第三DMA配置信息,包括:
在为所述原始输入特征图进行第一逆卷积处理时,根据所述特征信息和步幅信息,生成第三DMA配置信息。
26.根据权利要求25所述的方法,其特征在于,
所述特征信息包括:所述原始输入特征图的宽度W、高度H;所述步幅信息包括:第一逆卷积处理的步幅长度S;
所述根据所述特征信息和步幅信息生成第三DMA配置信息,包括:
根据所述宽度W生成X方向计数配置;
根据所述高度H生成Y方向计数配置;
根据所述步幅长度S生成X方向步幅配置;
根据所述宽度W、所述步幅长度S生成Y方向步幅配置。
27.根据权利要求26所述的方法,其特征在于,
所述第三DMA配置信息包括:X方向计数配置:W;Y方向计数配置:H;X方向步幅配置:S;Y方向步幅配置:W*S-1。
28.根据权利要求26所述的方法,其特征在于,所述特征信息还包括通道数N;所述根据所述特征信息和步幅信息生成第三DMA配置信息,还包括:
根据所述通道数N生成Z方向计数配置;
根据预设数值生成Z方向步幅配置。
29.根据权利要求25-28任一项所述的方法,其特征在于,所述根据所述第三DMA配置信息将所述输入数据存储到目标输入特征图,包括:
根据所述第三DMA配置信息,从所述目标输入特征图的起始地址A'开始,将每个输入数据存储到所述目标输入特征图。
30.根据权利要求16、21、25中任一项所述的方法,其特征在于,所述第一逆卷积处理具体为:不进行填充处理的逆卷积处理。
31.根据权利要求1所述的方法,其特征在于,
所述根据所述特征信息和所述参数信息生成第一DMA配置信息,包括:
在为所述原始输入特征图进行第二逆卷积处理时,则根据所述特征信息、填充信息和步幅信息,生成第一DMA配置信息。
32.根据权利要求31所述的方法,其特征在于,
所述特征信息包括:所述原始输入特征图的宽度W、高度H;所述填充信息包括:水平方向的填充个数M,垂直方向的填充个数R;所述步幅信息包括:第二逆卷积处理时的步幅长度S;
根据所述特征信息、填充信息和步幅信息生成第一DMA配置信息,包括:
根据所述宽度W、所述步幅长度S、填充个数M生成X方向计数配置;
根据所述高度H、所述步幅长度S、填充个数R生成Y方向计数配置;
根据预设数值生成X方向步幅配置、Y方向步幅配置。
33.根据权利要求32所述的方法,其特征在于,
所述第一DMA配置信息包括:X方向计数配置:W*S+M*2-1;Y方向计数配置:H*S+R*2-1;X方向步幅配置:1;Y方向步幅配置:1。
34.根据权利要求32所述的方法,其特征在于,
所述特征信息还包括通道数N;所述根据所述特征信息、填充信息和步幅信息生成第一DMA配置信息,还包括:
根据所述通道数N生成Z方向计数配置;
根据预设数值生成Z方向步幅配置。
35.根据权利要求32-34任一项所述的方法,其特征在于,
所述根据所述第一DMA配置信息构造目标输入特征图,包括:
根据所述第一DMA配置信息构造尺寸为(W*S+M*2-1)*(H*S+R*2-1)的目标输入特征图;其中,所述目标输入特征图为全0,所述目标输入特征图的起始地址为A'。
36.根据权利要求1所述的方法,其特征在于,
所述特征信息包括:所述原始输入特征图的宽度W、高度H;
所述根据所述特征信息生成第二DMA配置信息,包括:
在为所述原始输入特征图进行第二逆卷积处理时,根据所述宽度W生成X方向计数配置,并根据所述高度H生成Y方向计数配置;
根据预设数值生成X方向步幅配置和Y方向步幅配置。
37.根据权利要求36所述的方法,其特征在于,
所述第二DMA配置信息包括:X方向计数配置:W;Y方向计数配置:H;X方向步幅配置:1;Y方向步幅配置:1。
38.根据权利要求36所述的方法,其特征在于,所述特征信息还包括通道数N;所述根据所述特征信息生成第二DMA配置信息,还包括:
根据所述通道数N生成Z方向计数配置;
根据预设数值生成Z方向步幅配置。
39.根据权利要求36-38任一项所述的方法,其特征在于,所述根据所述第二DMA配置信息从所述原始输入特征图中读取输入数据,包括:
根据所述第二DMA配置信息,从所述原始输入特征图对应的起始地址A开始,读取所述原始输入特征图中的每个输入数据。
40.根据权利要求1所述的方法,其特征在于,
所述根据所述特征信息和所述参数信息生成第三DMA配置信息,包括:
在为所述原始输入特征图进行第二逆卷积处理时,根据所述特征信息、填充信息和步幅信息,生成第三DMA配置信息。
41.根据权利要求40所述的方法,其特征在于,
所述特征信息包括:所述原始输入特征图的宽度W、高度H;所述填充信息包括:水平方向的填充个数M,垂直方向的填充个数R;所述步幅信息包括:第二逆卷积处理时的步幅长度S;
根据所述特征信息、填充信息和步幅信息,生成第三DMA配置信息包括:
根据所述宽度W生成X方向计数配置;
根据所述高度H生成Y方向计数配置;
根据所述步幅长度S生成X方向步幅配置;
根据所述宽度W、所述步幅长度S、填充个数M生成Y方向步幅配置。
42.根据权利要求41所述的方法,其特征在于,
所述第三DMA配置信息包括:X方向计数配置:W;Y方向计数配置:H;X方向步幅配置:S;Y方向步幅配置:W*S+M*2-1+M*2。
43.根据权利要求41所述的方法,其特征在于,
所述特征信息还包括通道数N;所述根据所述特征信息、填充信息和步幅信息,生成第三DMA配置信息,还包括:
根据所述通道数N生成Z方向计数配置,并根据所述宽度W、所述步幅长度S、所述填充个数M和所述填充个数R生成Z方向步幅配置。
44.根据权利要求41-43任一项所述的方法,其特征在于,所述根据所述第三DMA配置信息将所述输入数据存储到目标输入特征图,包括:
根据所述第三DMA配置信息,从输入数据的起始地址开始,将每个输入数据存储到目标输入特征图;所述输入数据的起始地址为A'+(W*S+M*2-1)*R+M;A'为所述目标输入特征图的起始地址。
45.根据权利要求31、36、40中任一项所述的方法,其特征在于,所述第二逆卷积处理具体为:进行填充处理的逆卷积处理。
46.根据权利要求1所述的方法,其特征在于,
所述根据所述第一DMA配置信息构造目标输入特征图,包括:
从指定存储位置读取特定样式信息,并根据所述第一DMA配置信息,构造与所述特定样式信息对应的目标输入特征图。
47.根据权利要求46所述的方法,其特征在于,所述根据所述第一DMA配置信息,构造与所述特定样式信息对应的目标输入特征图,包括:
根据所述第一DMA配置信息,构造全0的目标输入特征图。
48.一种直接内存存取DMA控制器,其特征在于,DMA控制器用于:
获取原始输入特征图的特征信息和参数信息;
根据所述特征信息生成第二DMA配置信息,并根据所述特征信息和所述参数信息生成第一DMA配置信息和第三DMA配置信息;
根据所述第一DMA配置信息构造目标输入特征图;
根据所述第二DMA配置信息从所述原始输入特征图中读取输入数据;
根据所述第三DMA配置信息将所述输入数据存储到目标输入特征图。
49.根据权利要求48所述的DMA控制器,其特征在于,
所述DMA控制器在根据所述特征信息和所述参数信息生成第一DMA配置信息时具体用于:在为所述原始输入特征图进行填充处理时,则根据所述特征信息和填充信息,生成第一DMA配置信息;或者,
在为所述原始输入特征图进行第一逆卷积处理时,则根据所述特征信息和步幅信息,生成第一DMA配置信息;或者,
在为所述原始输入特征图进行第二逆卷积处理时,则根据所述特征信息、填充信息和步幅信息,生成第一DMA配置信息。
50.根据权利要求49所述的DMA控制器,其特征在于,所述特征信息包括:原始输入特征图的宽度W、高度H;所述填充信息包括:水平方向的填充个数M,垂直方向的填充个数R;所述DMA控制器在根据所述特征信息和填充信息生成第一DMA配置信息时具体用于:根据所述宽度W、所述填充个数M生成X方向计数配置,并根据所述高度H、所述填充个数R生成Y方向计数配置,并根据预设数值生成X方向步幅配置和Y方向步幅配置。
51.根据权利要求49所述的DMA控制器,其特征在于,
所述特征信息包括:所述原始输入特征图的宽度W、高度H;所述步幅信息包括:第一逆卷积处理时的步幅长度S;所述DMA控制器在根据所述特征信息和步幅信息生成第一DMA配置信息时具体用于:根据所述宽度W、所述步幅长度S生成X方向计数配置;根据所述高度H、所述步幅长度S生成Y方向计数配置;根据预设数值生成X方向步幅配置、Y方向步幅配置。
52.根据权利要求49所述的DMA控制器,其特征在于,所述特征信息包括:原始输入特征图的宽度W、高度H;所述填充信息包括:水平方向的填充个数M,垂直方向的填充个数R;所述步幅信息包括:第二逆卷积处理时的步幅长度S;所述DMA控制器在根据所述特征信息、填充信息和步幅信息生成第一DMA配置信息时具体用于:根据所述宽度W、步幅长度S、填充个数M生成X方向计数配置;根据所述高度H、步幅长度S、填充个数R生成Y方向计数配置;根据预设数值生成X方向步幅配置、Y方向步幅配置。
53.根据权利要求50-52任一项所述的DMA控制器,其特征在于,
所述特征信息还包括通道数N;所述DMA控制器在根据所述特征信息和所述参数信息生成第一DMA配置信息时具体用于:根据所述通道数N生成Z方向计数配置,并根据预设数值生成Z方向步幅配置。
54.根据权利要求48所述的DMA控制器,其特征在于,
所述特征信息包括:所述原始输入特征图的宽度W、高度H;
所述DMA控制器在根据所述特征信息生成第二DMA配置信息时具体用于:在为所述原始输入特征图进行填充处理时,或者为所述原始输入特征图进行第一逆卷积处理时,或者在为所述原始输入特征图进行第二逆卷积处理时,则根据所述宽度W生成X方向计数配置,并根据所述高度H生成Y方向计数配置;根据预设数值生成X方向步幅配置和Y方向步幅配置。
55.根据权利要求54所述的DMA控制器,其特征在于,
所述特征信息还包括通道数N;所述DMA控制器在根据所述特征信息生成第二DMA配置信息时具体用于:根据所述通道数N生成Z方向计数配置,并根据预设数值生成Z方向步幅配置。
56.根据权利要求48所述的DMA控制器,其特征在于,
所述DMA控制器在根据所述特征信息和所述参数信息生成第三DMA配置信息时具体用于:在为所述原始输入特征图进行填充处理时,则根据所述特征信息和填充信息,生成第三DMA配置信息;或者,
在为所述原始输入特征图进行第一逆卷积处理时,则根据所述特征信息和步幅信息,生成第三DMA配置信息;或者,
在为所述原始输入特征图进行第二逆卷积处理时,则根据所述特征信息、填充信息和步幅信息,生成第三DMA配置信息。
57.根据权利要求56所述的DMA控制器,其特征在于,
所述特征信息包括:原始输入特征图的宽度W、高度H;所述填充信息包括:水平方向的填充个数M,垂直方向的填充个数R;所述DMA控制器在根据所述特征信息和填充信息生成第三DMA配置信息时具体用于:根据所述宽度W生成X方向计数配置;根据所述高度H生成Y方向计数配置;根据预设数值生成X方向步幅配置;根据所述填充个数M生成Y方向步幅配置。
58.根据权利要求56所述的DMA控制器,其特征在于,
所述特征信息包括:原始输入特征图的宽度W、高度H;所述步幅信息包括:第一逆卷积处理的步幅长度S;所述DMA控制器在根据所述特征信息和步幅信息生成第三DMA配置信息时具体用于:根据所述宽度W生成X方向计数配置;根据所述高度H生成Y方向计数配置;根据所述步幅长度S生成X方向步幅配置;根据所述宽度W、所述步幅长度S生成Y方向步幅配置。
59.根据权利要求56所述的DMA控制器,其特征在于,
所述特征信息包括:所述原始输入特征图的宽度W、高度H;所述填充信息包括:水平方向的填充个数M,垂直方向的填充个数R;所述步幅信息包括:第二逆卷积处理时的步幅长度S;
所述DMA控制器在根据所述特征信息、填充信息和步幅信息,生成第三DMA配置信息时具体用于:根据所述宽度W生成X方向计数配置;根据所述高度H生成Y方向计数配置;根据所述步幅长度S生成X方向步幅配置;根据所述宽度W、所述步幅长度S、填充个数M生成Y方向步幅配置。
60.根据权利要求57所述的DMA控制器,其特征在于,所述特征信息还包括通道数N;所述DMA控制器在根据所述特征信息和填充信息生成第三DMA配置信息时具体用于:根据所述通道数N生成Z方向计数配置;根据所述宽度W、填充个数M和填充个数R生成Z方向步幅配置。
61.根据权利要求58所述的DMA控制器,其特征在于,
所述特征信息还包括通道数N;所述DMA控制器在根据所述特征信息和步幅信息生成第三DMA配置信息时具体用于:根据所述通道数N生成Z方向计数配置;根据预设数值生成Z方向步幅配置。
62.根据权利要求59所述的DMA控制器,其特征在于,
所述特征信息还包括通道数N;所述DMA控制器在根据所述特征信息、填充信息和步幅信息,生成第三DMA配置信息时具体用于:根据所述通道数N生成Z方向计数配置,并根据所述宽度W、所述步幅长度S、所述填充个数M和所述填充个数R生成Z方向步幅配置。
63.根据权利要求48所述的DMA控制器,其特征在于,
所述DMA控制器在根据所述第一DMA配置信息构造目标输入特征图时具体用于:从指定存储位置读取特定样式信息,并根据所述第一DMA配置信息,构造与所述特定样式信息对应的目标输入特征图。
64.一种数据处理设备,其特征在于,所述数据处理设备包括:
存储器,用于存储程序代码;
DMA控制器,用于调用所述程序代码,当所述程序代码被执行时,实现权利要求1-47任一项所述的数据处理方法。
65.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有若干计算机指令,所述计算机指令被执行时,实现权利要求1-47任一项所述的数据处理方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2017/120235 WO2019127507A1 (zh) | 2017-12-29 | 2017-12-29 | 数据处理方法、设备、dma控制器及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109074335A true CN109074335A (zh) | 2018-12-21 |
Family
ID=64831288
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780024875.7A Pending CN109074335A (zh) | 2017-12-29 | 2017-12-29 | 数据处理方法、设备、dma控制器及计算机可读存储介质 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20200327078A1 (zh) |
CN (1) | CN109074335A (zh) |
WO (1) | WO2019127507A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111126589A (zh) * | 2019-12-31 | 2020-05-08 | 北京百度网讯科技有限公司 | 神经网络数据处理装置、方法和电子设备 |
CN111615692A (zh) * | 2019-05-23 | 2020-09-01 | 深圳市大疆创新科技有限公司 | 数据搬运方法、计算处理装置、设备及存储介质 |
CN111782562A (zh) * | 2020-07-22 | 2020-10-16 | Oppo广东移动通信有限公司 | 数据传输方法、dma控制器、npu芯片及计算机设备 |
CN112189216A (zh) * | 2019-08-29 | 2021-01-05 | 深圳市大疆创新科技有限公司 | 数据处理方法及设备 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11636665B2 (en) * | 2018-01-15 | 2023-04-25 | Shenzhen Corerain Technologies Co., Ltd. | Streaming image semantic segmentation method, logical integrated circuit system and electronic device |
US11983128B1 (en) * | 2022-12-16 | 2024-05-14 | Amazon Technologies, Inc. | Multidimensional and multiblock tensorized direct memory access descriptors |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000268165A (ja) * | 1999-03-17 | 2000-09-29 | Canon Inc | 画像情報処理装置および画像情報処理方法 |
KR20060087363A (ko) * | 2005-01-27 | 2006-08-02 | 후지쯔 가부시끼가이샤 | 다이렉트 메모리 액세스 제어 방법, 다이렉트 메모리액세스 제어 장치, 정보 처리 시스템, 프로그램을 기록한컴퓨터 판독 가능한 기록 매체 |
CN101452427A (zh) * | 2008-11-19 | 2009-06-10 | 北京红旗胜利科技发展有限责任公司 | 一种dma数据传输***及方法和一种中央处理器 |
CN101504632A (zh) * | 2009-01-21 | 2009-08-12 | 北京红旗胜利科技发展有限责任公司 | 一种dma数据传输方法、***及一种dma控制器 |
CN102567254A (zh) * | 2010-12-31 | 2012-07-11 | 重庆重邮信科通信技术有限公司 | 采用dma控制器进行数据归一化处理的方法 |
US20150199846A1 (en) * | 2014-01-15 | 2015-07-16 | Wildlife Conservation Society | Systems, Methods and Computer Program Products for Developing and Sharing an Ecological Vision For A Geographical Location |
CN104915322A (zh) * | 2015-06-09 | 2015-09-16 | 中国人民解放军国防科学技术大学 | 一种卷积神经网络硬件加速方法及其axi总线ip核 |
CN104965798A (zh) * | 2015-06-10 | 2015-10-07 | 上海华为技术有限公司 | 一种数据处理方法、相关设备以及*** |
CN105786735A (zh) * | 2016-02-19 | 2016-07-20 | 大唐微电子技术有限公司 | 一种直接内存存取dma控制器及数据访问方法 |
US20170011288A1 (en) * | 2015-07-10 | 2017-01-12 | Samsung Electronics Co., Ltd. | Neural network processor |
CN106547709A (zh) * | 2016-11-24 | 2017-03-29 | 盛科网络(苏州)有限公司 | 灵活配置多通道dma控制器的方法及装置 |
CN106940815A (zh) * | 2017-02-13 | 2017-07-11 | 西安交通大学 | 一种可编程卷积神经网络协处理器ip核 |
WO2017185386A1 (zh) * | 2016-04-29 | 2017-11-02 | 北京中科寒武纪科技有限公司 | 一种用于执行卷积神经网络正向运算的装置和方法 |
-
2017
- 2017-12-29 CN CN201780024875.7A patent/CN109074335A/zh active Pending
- 2017-12-29 WO PCT/CN2017/120235 patent/WO2019127507A1/zh active Application Filing
-
2020
- 2020-06-29 US US16/914,704 patent/US20200327078A1/en not_active Abandoned
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000268165A (ja) * | 1999-03-17 | 2000-09-29 | Canon Inc | 画像情報処理装置および画像情報処理方法 |
KR20060087363A (ko) * | 2005-01-27 | 2006-08-02 | 후지쯔 가부시끼가이샤 | 다이렉트 메모리 액세스 제어 방법, 다이렉트 메모리액세스 제어 장치, 정보 처리 시스템, 프로그램을 기록한컴퓨터 판독 가능한 기록 매체 |
CN101452427A (zh) * | 2008-11-19 | 2009-06-10 | 北京红旗胜利科技发展有限责任公司 | 一种dma数据传输***及方法和一种中央处理器 |
CN101504632A (zh) * | 2009-01-21 | 2009-08-12 | 北京红旗胜利科技发展有限责任公司 | 一种dma数据传输方法、***及一种dma控制器 |
CN102567254A (zh) * | 2010-12-31 | 2012-07-11 | 重庆重邮信科通信技术有限公司 | 采用dma控制器进行数据归一化处理的方法 |
US20150199846A1 (en) * | 2014-01-15 | 2015-07-16 | Wildlife Conservation Society | Systems, Methods and Computer Program Products for Developing and Sharing an Ecological Vision For A Geographical Location |
CN104915322A (zh) * | 2015-06-09 | 2015-09-16 | 中国人民解放军国防科学技术大学 | 一种卷积神经网络硬件加速方法及其axi总线ip核 |
CN104965798A (zh) * | 2015-06-10 | 2015-10-07 | 上海华为技术有限公司 | 一种数据处理方法、相关设备以及*** |
US20170011288A1 (en) * | 2015-07-10 | 2017-01-12 | Samsung Electronics Co., Ltd. | Neural network processor |
CN105786735A (zh) * | 2016-02-19 | 2016-07-20 | 大唐微电子技术有限公司 | 一种直接内存存取dma控制器及数据访问方法 |
WO2017185386A1 (zh) * | 2016-04-29 | 2017-11-02 | 北京中科寒武纪科技有限公司 | 一种用于执行卷积神经网络正向运算的装置和方法 |
CN106547709A (zh) * | 2016-11-24 | 2017-03-29 | 盛科网络(苏州)有限公司 | 灵活配置多通道dma控制器的方法及装置 |
CN106940815A (zh) * | 2017-02-13 | 2017-07-11 | 西安交通大学 | 一种可编程卷积神经网络协处理器ip核 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111615692A (zh) * | 2019-05-23 | 2020-09-01 | 深圳市大疆创新科技有限公司 | 数据搬运方法、计算处理装置、设备及存储介质 |
CN112189216A (zh) * | 2019-08-29 | 2021-01-05 | 深圳市大疆创新科技有限公司 | 数据处理方法及设备 |
WO2021035598A1 (zh) * | 2019-08-29 | 2021-03-04 | 深圳市大疆创新科技有限公司 | 数据处理方法及设备 |
CN111126589A (zh) * | 2019-12-31 | 2020-05-08 | 北京百度网讯科技有限公司 | 神经网络数据处理装置、方法和电子设备 |
US11269529B2 (en) | 2019-12-31 | 2022-03-08 | Kunlunxin Technology (Beijing) Company Limited | Neural network data processing apparatus, method and electronic device |
CN111782562A (zh) * | 2020-07-22 | 2020-10-16 | Oppo广东移动通信有限公司 | 数据传输方法、dma控制器、npu芯片及计算机设备 |
CN111782562B (zh) * | 2020-07-22 | 2024-05-17 | Oppo广东移动通信有限公司 | 数据传输方法、dma控制器、npu芯片及计算机设备 |
Also Published As
Publication number | Publication date |
---|---|
US20200327078A1 (en) | 2020-10-15 |
WO2019127507A1 (zh) | 2019-07-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108885596A (zh) | 数据处理方法、设备、dma控制器及计算机可读存储介质 | |
CN109074335A (zh) | 数据处理方法、设备、dma控制器及计算机可读存储介质 | |
US10692270B2 (en) | Non-divergent parallel traversal of a bounding volume hierarchy | |
US11294599B1 (en) | Registers for restricted memory | |
KR102402111B1 (ko) | 콘볼루션 신경망 정방향 연산 실행용 장치와 방법 | |
US11436017B2 (en) | Data temporary storage apparatus, data temporary storage method and operation method | |
CN108645411B (zh) | 基于粒子群算法的机器人路径规划方法、装置及终端设备 | |
CN107992943A (zh) | 用于卷积神经网络的缓冲器寻址 | |
TWI740274B (zh) | 用於在使用加法器之多維張量中存取資料之系統、電腦實施方法及設備 | |
US11275661B1 (en) | Test generation of a distributed system | |
CN106779057A (zh) | 基于gpu的计算二值神经网络卷积的方法及装置 | |
US11556757B1 (en) | System and method of executing deep tensor columns in neural networks | |
CN111465943A (zh) | 芯片上计算网络 | |
CN108074211A (zh) | 一种图像处理装置及方法 | |
CN109074334A (zh) | 数据处理方法、设备、dma控制器及计算机可读存储介质 | |
WO2005074423A2 (en) | Method of operation for parallel lcp solver | |
CN105843591A (zh) | 多维数组滑动生成数据的方法、装置及处理器 | |
US10795404B2 (en) | Information processing acceleration control system | |
CN109902821A (zh) | 一种数据处理方法、装置及相关组件 | |
US10572969B2 (en) | Method and device for processing data | |
CN115087991A (zh) | 具有并行加载-存储的共享便笺式存储器 | |
WO2023169002A1 (zh) | 软光栅化的方法、装置、设备、介质及程序产品 | |
US9189448B2 (en) | Routing image data across on-chip networks | |
CN108829790A (zh) | 一种数据批处理方法、装置及*** | |
CN108920097A (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 | ||
AD01 | Patent right deemed abandoned |
Effective date of abandoning: 20220315 |
|
AD01 | Patent right deemed abandoned |