CN114895964A - 数据处理装置、方法、芯片、板卡、电子设备及存储介质 - Google Patents
数据处理装置、方法、芯片、板卡、电子设备及存储介质 Download PDFInfo
- Publication number
- CN114895964A CN114895964A CN202210609644.5A CN202210609644A CN114895964A CN 114895964 A CN114895964 A CN 114895964A CN 202210609644 A CN202210609644 A CN 202210609644A CN 114895964 A CN114895964 A CN 114895964A
- Authority
- CN
- China
- Prior art keywords
- data
- reading
- data processing
- current
- data block
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/15—Correlation function computation including computation of convolution operations
- G06F17/153—Multidimensional correlation or convolution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Computational Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开提供了一种数据处理装置、方法、芯片、板卡、电子设备及存储介质,其中,该装置包括:控制单元、以及寄存器,所述控制单元,用于响应于当前数据处理周期到来,按照预设的数据块处理顺序,确定当前数据处理周期对应的第一数据块;从预设存储空间中读取所述第一数据块中新增处理位置对应的第一数据元素,并存储至所述寄存器;以及从所述寄存器中读取历史数据处理周期所处理数据块中与所述第一数据块重合位置对应的第二数据元素。本公开实施例通过调整数据块的处理顺序,提高数据的复用率,减少数据的读取数量和读取次数,减少数据读取过程中吞吐率,降低带宽压力,提升数据处理的效率。
Description
技术领域
本公开涉及数据处理技术领域,具体而言,涉及一种数据处理装置、方法、芯片、板卡、电子设备及存储介质。
背景技术
卷积的处理对象一般是一个二维的平面图像,对于一个二维数据来说,无法一次性把大量的数据全部载入,通常会选择地毯式的数据读取方法,也即一片一片进行数据读取的方法,例如,针对一卷积核尺寸为3*3的卷积,每一次数据读取的过程至少会载入3个数据,直到全部数据读取完成,数据处理效率较低。
发明内容
本公开实施例至少提供一种数据处理装置、方法、芯片、板卡、电子设备及存储介质。
第一方面,本公开实施例提供了一种数据处理装置,包括:控制单元、以及寄存器;
所述控制单元,用于响应于当前数据处理周期到来,按照预设的数据块处理顺序,确定当前数据处理周期对应的第一数据块;以及
从预设存储空间中读取所述第一数据块中新增处理位置对应的第一数据元素,并存储至所述寄存器;以及
从所述寄存器中读取历史数据处理周期所处理数据块中与所述第一数据块重合位置对应的第二数据元素。
一种可选的实施方式中,响应于当前数据处理周期到来,按照预设的数据块处理顺序,确定当前数据处理周期对应的第一数据块,包括:
响应于当前数据处理周期到来,控制数据读取窗口按照预设步长以弓形路线在待处理数据形成的数据矩阵中,进行当前数据处理周期对应的移动;并
确定与该次移动后所述数据读取窗口对应的第一数据块;
其中,每次移动的目的位置对应所述弓形路线的一个拐点。
一种可选的实施方式中,所述数据读取窗口起始移动方向包括:所述数据矩阵的列所在的方向、或者所述数据矩阵的行所在的方向。
一种可选的实施方式中,响应于当前数据处理周期到来,所述数据读取窗口已处于当前弓形路线的最后一个第一数据块,且所述数据矩阵尚未完成读取,确定所述数据矩阵中,在所述数据读取窗口每次弓形路线的起始移动方向上,尚未处理的数据块;
将该尚未处理的数据块的位置作为所述数据读取窗口在当前数据处理周期对应的数据块读取位置,并在之后的数据处理周期,以该数据块读取位置作为新的弓形路线的起点,按照弓形路线的起始移动方向,进行移动以及数据读取。
一种可选的实施方式中,还包括:访存电路;
所述控制单元,在从预设存储空间中读取所述第一数据块中新增处理位置对应的第一数据元素,并存储至所述寄存器时,用于:生成用于在当前数据处理周期读取对应第一数据元素的第一读取指令;响应于当前数据处理周期到来,将该当前数据处理周期对应的第一读取指令向所述访存电路发送;
所述访存电路,用于响应于接收到所述控制单元发送的第一读取指令,从所述预设存储空间中读取与所述第一读取指令对应的第一数据元素,并将所述第一数据元素存储至所述寄存器中。
一种可选的实施方式中,还包括:计算单元;
所述控制单元,还用于生成与当前数据处理周期对应的第二数据读取指令;响应于所述第一数据块中新增处理位置对应的第一数据元素存储至所述寄存器,向所述计算单元发送与所述当前数据处理周期对应的第二数据读取指令;
所述计算单元,用于响应于接收到所述控制单元发送的第二数据读取指令,从所述寄存器中读取所述当前数据处理周期对应数据块的第一数据元素、以及第二数据元素,并基于所述第一数据元素和所述第二数据元素进行预设处理,得到与该数据处理周期对应的数据块的结果数据。
一种可选的实施方式中,所述控制单元,在生成用于在当前数据处理周期读取对应第一数据元素的第一读取指令时,用于:
确定所述当前数据处理周期对应的第一数据元素的标识信息;所述标识信息用于表征所述第一数据元素在待处理数据中的位置;
基于所述待处理数据的起始地址、地址位宽、以及所述标识信息,确定所述第一数据元素的地址信息;
基于所述第一数据元素的地址信息,生成与所述第一数据元素对应的第一数据读取指令。
第二方面,本公开实施例还提供一种数据读取方法,包括:
响应于当前数据处理周期到来,按照预设的数据块处理顺序,确定多个数据处理周期中当前数据处理周期对应的第一数据块;
从预设存储空间中读取所述第一数据块中新增处理位置对应的第一数据元素,并存储至所述寄存器;以及从所述寄存器中读取历史数据处理周期所处理数据块中与所述第一数据块重合位置对应的第二数据元素。
第三方面,本公开实施例还提供一种数据处理芯片,包括如上述任一项所述的数据处理装置。
第四方面,本公开实施例还提供一种板卡,包括封装有至少一个如第三方面所述芯片的封装结构。
第五方面,本公开实施例还提供一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行上述第二方面,或第二方面中任一种可能的实施方式中的步骤。
第六方面,本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述第二方面,或第二方面中任一种可能的实施方式中的步骤。
关于上述数据读取方法、电子设备、及计算机可读存储介质的效果描述参见上述数据处理装置的说明,这里不再赘述。
本公开实施例提供的数据处理装置、方法、芯片、板卡、电子设备及存储介质,所述数据处理装置包括:控制单元、以及寄存器,所述控制单元,用于响应于当前数据处理周期到来,按照预设的数据块处理顺序,确定当前数据处理周期对应的第一数据块;以及从预设存储空间中读取所述第一数据块中新增处理位置对应的第一数据元素,并存储至所述寄存器;以及从所述寄存器中读取历史数据处理周期所处理数据块中与所述第一数据块重合位置对应的第二数据元素。通过调整数据块的处理顺序,提高数据的复用率,减少数据的读取数量和读取次数,减少数据读取过程中吞吐率,降低带宽压力,提升数据处理的效率。
为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,此处的附图被并入说明书中并构成本说明书中的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。应当理解,以下附图仅示出了本公开的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了现有技术中数据读取流程的示意图。
图2示出了本公开实施例所提供的一种数据处理装置的结构示意图;
图3示出了本公开实施例所提供的一种数据读取流程的示意图;
图4a示出了本公开实施例所提供的另一种数据读取流程的示意图之一;
图4b示出了本公开实施例所提供的另一种数据读取流程的示意图之二;
图5示出了本公开实施例所提供的另一种数据处理装置的结构示意图;
图6示出了本公开实施例所提供的一种数据读取方法的流程图;
图7示出了本公开实施例所提供的一种板卡的示意图。
图8示出了本公开实施例所提供的一种电子设备的示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
本文中术语“和/或”,仅仅是描述一种关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合,例如,包括A、B、C中的至少一种,可以表示包括从A、B和C构成的集合中选择的任意一个或多个元素。
卷积(Convolution)是一种积分变换的数学方法,在许多方面得到了广泛应用,例如图像处理领域等。卷积是通过两个函数f和g生成第三个函数的一种数学算子,表征函数f与g经过翻转和平移的重叠部分的面积。卷积还可应用于一些数学计算当中,例如卷积定理指出,函数卷积的傅里叶变换是函数傅里叶变换的乘积。即,一个域中的卷积相当于另一个域中的乘积,例如时域中的卷积就对应于频域中的乘积,继而,可以将卷积原理与图像处理方法相结合,提高处理的准确率与效率。
如图1所示,图1为现有技术中数据读取流程的示意图。经研究发现,在将卷积应用于图像处理领域时,卷积的处理对象一般是一个二维的平面图像。对于如图1所示的二维数据来说,由于无法一次性把大量的数据全部读取到,而是只能一片一片地进行读取。
示例性的,以图1展示的卷积核尺寸为3x3,步长stride=1的卷积为例,当对第一数据块中的9个数据读取完毕,载入第二片数据的时候,需要新载入a03、a13、a23,并复用中间的、第一数据块中的6个数据a01、a11、a21、a02、a12、a22,并基于该9个数据对第二数据块进行处理,载入第三片数据的时候,需要新载入a04、a14、a24,并复用中间的、第二数据块中的6个数据a02、a12、a22、a03、a13、a23,并基于该9个数据对第三数据块进行处理,以此类推,每次在载入下一片数据的时候,需要新载入3个数据。这样,造成巨大的数据读取量以及数据处理负荷。
基于上述研究,本公开提供了一种数据处理装置,通过调整数据块的处理顺序,提高数据的复用率,减少数据的读取数量和读取次数,减少数据读取过程中吞吐率,降低带宽压力,提升数据处理的效率。
针对以上方案所存在的缺陷,均是发明人在经过实践并仔细研究后得出的结果,因此,上述问题的发现过程以及下文中本公开针对上述问题所提出的解决方案,都应该是发明人在本公开过程中对本公开做出的贡献。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
本公开实施例提供的数据处理装置可以应用于电子设备中;该电子设备例如包括终端设备、服务器或者其他处理设备等。其中,终端设备可以为用户设备(User Equipment,UE)、移动设备、用户终端、终端、蜂窝电话、无绳电话、个人数字处理(Personal DigitalAssistant,PDA)、手持设备、计算设备、车载设备、可穿戴设备等。电子设备能够利用本公开实施例提供的数据处理装置进行数据处理。另外,也可以将本公开实施例提供的数据处理装置部署在数据处理芯片中,如人工智能(Artificial Intelligence,AI)芯片、图形处理器(Graphics Processing Unit,GPU)、中央处理器(Central Processing Unit,CPU)等。
本公开实施例中的待处理数据例如包括:图像、或者对图像进行特征提取后得到的特征图(feature map),也可以是特征图中的部分数据,还可以是对特征图进行标准化、二值化、归一化后的数据等。
为便于对本实施例进行理解,首先对本公开实施例所公开的一种数据处理装置进行详细介绍。
参见图2所示,为本公开实施例提供的数据处理装置的结构示意图,所述数据处理装置包括:控制单元210、以及寄存器220,其中:
所述控制单元210,用于响应于当前数据处理周期到来,按照预设的数据块处理顺序,确定当前数据处理周期对应的第一数据块;以及
从预设存储空间中读取所述第一数据块中新增处理位置对应的第一数据元素,并存储至所述寄存器220;以及
从所述寄存器220中读取历史数据处理周期所处理数据块中与所述第一数据块重合位置对应的第二数据元素。
其中,控制单元210可以确定数据块的处理顺序,并基于该处理顺序控制卷积核移动,读取对应数据块中的数据。
其中,所述控制单元210用于控制数据块的处理顺序。所述寄存器220用于存储控制单元210从存储空间250中读取的每个数据处理周期对应的数据元素。具体的,当控制单元210读取对应的数据元素,并存储在寄存器220中之后,计算单元调用寄存器220中的数据完成计算过程。
在一个可能的实施方式中,可以按照预设的数据块处理顺序、以及基于所述数据块处理顺序确定的数据复用关系信息,确定多个数据处理周期中每个数据处理周期对应的数据块确定多个数据处理周期中当前数据处理周期对应的第一数据块;响应于到达任一数据处理周期当前数据处理周期到来,从预设存储空间中读取所述任一数据处理周期对应的第一数据元素所述第一数据块中新增处理位置对应的第一数据元素,并存储至所述寄存器220中。
其中,所述数据复用关系信息,具体用于指示当前数据处理周期为奇数数据处理周期的情况下,当前数据处理周期中的第二数据元素包括:前一数据处理周期中的部分数据元素;当前数据处理周期为偶数数据处理周期的情况下,当前数据处理周期中的第二数据元素包括:前一偶数数据处理周期、以及前一奇数数据处理周期中的部分数据元素。
在本公开实施例中,数据块处理顺序是由控制单元210确定的、包括卷积核移动方向、移动步长等的处理信息。对应的,一个数据处理周期指的是,控制单元210确定每次运算对应的数据块,并读取每个数据块对应的目标数据,将读取的数据以数据块的形式存储于寄存器220中,便于计算单元从寄存器220中调用数据计算得到对应的处理结果,由于数据量较大,需要多次执行数据处理操作,因此存在多个数据处理周期。
在本公开实施例中,所述数据块指的是在数据读取过程中,即对目标数据进行卷积运算时,一个卷积核所对应的多个数据,该数据为M×N的形式,例如3×3、5×5等,通过对每个数据块进行运算,得出每个数据块对应的数据结果。
示例性的,以图像处理过程为例,数字图像是一个二维的离散信号,对数字图像做卷积操作即为:利用卷积核(或称卷积模板)在图像上移动,将图像点上的像素灰度值与对应的卷积核上的数值相乘,然后将所有相乘后的值相加作为卷积核中间像素对应的图像上像素的灰度值,并最终移动完所有图像,得到对应处理结果。
参阅图3,图3为本公开实施例所提供的一种数据读取流程的示意图。
在本公开实施例中,所述数据块包括:本次卷积运算中需要从预设存储空间中读取的第一数据元素、以及复用历史数据处理周期对应数据块数据元素的第二数据元素。
其中,第一数据元素为本次卷积运算中位置未与历史数据块中的数据重合的、从存储空间中调用的首次执行运算的数据,第二数据元素为已完成数据处理的数据块中包括的、该数据块中再次需要读取的数据。
示例性的,以图3中展示的第二数据块为例,所述第一数据元素包括a03、a13、a23,第二数据元素包括a01、a11、a21、a02、a12、a22。
在本公开实施例中,所述数据复用关系信息用于指示除首个数据处理周期外的其他每个数据处理周期能够复用该数据处理周期至少一个历史数据处理周期的数据元素。
参见图4a、4b,图4a为本公开实施例所提供的另一种数据读取流程的示意图之一;图4b为本公开实施例所提供的另一种数据读取流程的示意图之二。
在本公开实施例中,在当前数据处理周期到来时,可以按照预设的数据块处理顺序,确定当前数据处理周期对应的第一数据块:
响应于当前数据处理周期到来,控制数据读取窗口按照预设步长以弓形路线在待处理数据形成的数据矩阵中,进行当前数据处理周期对应的移动;并确定与该次移动后所述数据读取窗口对应的第一数据块;其中,每次移动的目的位置对应所述弓形路线的一个拐点。
其中,所述数据读取窗口起始移动方向包括:所述数据矩阵的列所在的方向、或者所述数据矩阵的行所在的方向。
示例性的,预设步长可以为1、2等任意数字,在此不作限定。当处于第一数据处理周期时,数据读取窗口可以位于数据矩阵的顶点、边缘或数据矩阵中的任意位置,也即可以将数据矩阵的任意位置作为起点,开始进行数据读取。响应于进行一次数据读取完毕,数据读取窗口改变读取路径或方向,即每次移动的目的位置对应所述弓形路线的一个拐点。
在一种实施方式中,每个数据处理周期数据读取窗口按照预设步长移动一次,且在移动的弓形路线中,每次移动和上次移动的方向都是不同的(例如,相邻两次移动方向是垂直的),每次移动的目的位置都为弓形路线的一个拐点。另外,数据读取窗口大小、步长的大小可以根据实际需要进行设置,适当的数据读取窗口大小以及步长可以使得数据读取窗口在多次移动中能够复用前次的数据,采用本实施例提供的数据处理装置可以提高数据的复用率,减少数据的读取数量和读取次数,提升数据处理的效率。
具体的,响应于当前数据处理周期到来,所述数据读取窗口已处于当前弓形路线的最后一个第一数据块,且所述数据矩阵尚未完成读取,确定所述数据矩阵中,在所述数据读取窗口每次弓形路线的起始移动方向上,尚未处理的数据块;
将该尚未处理的数据块的位置作为所述数据读取窗口在当前数据处理周期对应的数据块读取位置,并在之后的数据处理周期,以该数据块读取位置作为新的弓形路线的起点,按照弓形路线的起始移动方向,进行移动以及数据读取。
示例性的,如图4a或4b所示,数据块移动所形成的弓形路线,可以为相对于数据矩阵的横向路线,也可以为相对于数据矩阵的竖向路线。
在一可能实施方式中,控制单元210可以控制数据读取窗口按照往复,即弓形线路的形式进行数据读取,每一次数据读取对应弓形路线的一个拐点。具体的,控制单元210可以控制数据读取窗口按照如图4a或4b所示的图形进行数据读取。
在一可能实施方式中,控制单元210可以控制数据读取窗口沿着纵向移动,还可以控制数据读取窗口沿着横向移动,上述两种方式的实现方式类似,且能够达到相同的技术效果,在此不再赘述,
在一可能实施方式中,每当完成一行或一列数据读取之后,便可以开始另一行或一列的数据读取过程。其数据读取方向可与该行或该列的数据读取方向相同或相向,在此不作限定。
在本公开实施例中,为了方便理解,可以认为存在一数据框,该数据框可以上下左右移动,每次移动对应的位置所包括的数据为一个数据块。
示例性的,确定数据框对应的数据大小为A行B列,针对包括M行N列数据元素的数据阵列,按照下述方法进行数据读取:
从初始的、包含A行B列数据元素的第一数据块开始,每次移动对应的下一数据块添加对应数据元素,并保留当前数据块中的数据元素,直至将所述M行N列数据元素添加完毕。具体的,将数据框沿着行或列进行第一次移动,得到包括添加数据的元素第二数据块,并保留所述第一数据块中包括的数据元素;将所述数据框沿着与所述第一次移动的移动方向相垂直的方向进行移动,得到包括添加数据元素的第三数据块,并保留第二数据块中包括的数据元素;将所述数据框沿着与所述第二次移动的移动方向相垂直的方向进行移动,得到包括第四数据块,第四数据块中包括新读取的一个数据元素,以及复用的八个数据元素。
示例性的,以图3所展示的数据读取流程为例,图3对应的数据读取步长为1,当对第一数据块中的3×3个数据元素完成读取处理之后,控制单元210控制数据框向右移动,并将第一数据块中的3×3个数据元素存储在缓存中。此时,需要读取三个新的数据元素a03、a13、a23,此外还复用了第一数据块中已经读取的数据元素a01、a11、a21、a02、a12、a22。在对第二数据块中的3×3个数据元素完成读取处理之后,控制单元210控制数据框向下移动。此时,需要读取三个新的数据元素a31、a32、a33,此外还复用了第二数据块中已经读取的数据元素a11、a12、a23、a21、a22、a23。在对数据3中的3×3个数据元素完成读取处理之后,控制单元210控制数据框向左移动。此时,由于预先将数据元素a10、a20存储在缓存中,此时只需要读取一个新的数据元素a30,此外还复用了第三数据块中已经读取的数据元素a11、a21、a31、a12、a22、a32,以及第一数据块中已经读取完成的数据元素a10、a20。
在该示例中,在本公开实施例中,可以发现按照图4所示的数据读取路线以此类推,第5个框需要加载3个数,第6个框需要加载1个数,……第奇数个框加载3个数,第偶数个框需要加载1个数。这样相对于每次加载3个数的方案,可以减少约1/3的数据吞吐率。也即,自第三次数据读取开始,针对奇数次数据读取,每次添加A或B个数据元素,并保留上一数据块对应的数据元素;其中,若上一数据框的移动方向为横向,则添加A个数据元素;若上一数据框的移动方向为竖向,则添加B个数据元素。针对偶数次数据读取,每次添加1个数据元素并保留上一数据框对应的数据。由此可以减少偶数次数据读取是数据的读取数量,减少一定比例的数据吞吐率。
在另一可能的实施方式中,当数据读取步长为2或其他数值时,也可以一定程度的减少数据的读取数量,在此不再赘述。
参照图5所示,图5为本公开实施例所提供的一种数据处理装置的结构示意图。
在一可能的实现方式中,如图5所示,所述数据处理装置还包括:访存电路230;
所述控制单元210,在响应于当前数据处理周期到来,从预设存储空间250中读取所述所述第一数据块中新增处理位置对应的第一数据元素,并存储至所述寄存器220中时,用于:生成用于在当前数据处理周期读取对应第一数据元素的第一读取指令;响应于当前数据处理周期到来,将该当前数据处理周期对应的第一读取指令向所述访存电路230发送;
所述访存电路230,用于响应于接收到所述控制单元210发送的第一读取指令,从所述预设存储空间250中读取与所述第一读取指令对应的第一数据元素,并将所述第一数据元素存储至所述寄存器220中。
在本公开实施例中,在针对一数据处理周期,控制单元210控制从预设存储空间250中读取该数据处理周期对应的第一数据元素,并存储至寄存器220中时,控制单元210生成针对该数据处理周期,读取第一数据元素的第一读取指令,并需要结束该数据处理周期后,将该第一读取指令向访存电路230发送。在访存电路230接收到控制单元210发送的第一读取指令之后,便从预设存储空间250中读取与所述第一读取指令对应的第一数据元素,并将所述第一数据元素存储至所述寄存器220中,便于后续计算单元调用对应的数据元素完成计算过程。
在一可能的实现方式中,在生成用于在当前数据处理周期读取对应第一数据元素的第一读取指令时,所述控制单元210具体用于:
确定所述每个数据处理周期对应的第一数据元素的标识信息;所述标识信息用于表征所述第一数据元素在待处理数据中的位置;所述待处理数据包括所述数据块;
基于所述待处理数据的起始地址、地址位宽、以及所述标识信息,确定所述第一数据元素的地址信息;
基于所述第一数据元素的地址信息,生成与所述第一数据元素对应的第一数据读取指令。
在本公开实施例中,可以确定出每次进行数据处理所对应的数据元素,并基于确定的数据元素,包括第一数据元素和第二数据元素,以及第二数据元素在寄存器220中的地址信息与第一数据元素在存储空间250中的地址信息,生成第二数据读取指令。
例如,以图3所示的数据阵列为例,在第一数据处理周期中对应的数据块为第一数据块,该数据是以a00为起始地址的,并且该数据块对应的尺寸为3×3,从而,确定待处理数据的起始地址为a00,地址位宽为3×3,因此确定第一数据元素的地址信息为a00、a01、a02、a10、a11、a12、a20、a21、a22,基于该第一数据元素的地址信息,便可以生成与所述第一数据元素对应的第一数据读取指令,即针对数据元素a00、a01、a02、a10、a11、a12、a20、a21、a22的读取指令。
在一可能的实施方式中,所述数据处理装置还包括:还包括:计算单元;
所述控制单元210,还用于生成与各个数据处理周期分别对应的第二数据读取指令;响应于所述第一数据块中新增处理位置对应的第一数据元素存储至所述寄存器220,向所述计算单元发送与所述当前数据处理周期对应的第二数据读取指令;
所述计算单元,用于响应于接收到所述控制单元210发送的第二数据读取指令,从所述寄存器220中读取所述当前数据处理周期对应数据块的第一数据元素、以及第二数据元素,并基于所述第一数据元素和所述第二数据元素进行预设处理,得到与该数据处理周期对应的数据块的结果数据。
在本公开实施例中,当所述控制单元210将每个数据处理周期对应的第二数据存储于寄存器220中,并生成与各个数据处理周期分别对应的第二数据读取指令时,计算单元接收到控制单元210发送的与所述当前数据处理周期对应的第二数据读取指令,基于该第二数据读取指令以及从寄存器220中调用的第二数据以及从预设存储空间250中读取的第一数据元素,完成对应的卷积运算,得到数据处理周期对应的数据块的结果数据。
在另一可能的实现方式中,其中,存储空间250可以由多种方式组成,例如可以是:存储器、硬盘、U盘等本公开不做限定,该存储空间250用于数据的输入。所述存储空间250还可以包括共享内存(share memory)以及外部存储,共享内存可以对应中带宽中容量的数据,外部存储可以对应低带宽高容量的数据等,在此不再赘述。
本公开实施例响应于当前数据处理周期到来,按照预设的数据块处理顺序,确定多个数据处理周期中当前数据处理周期对应的第一数据块,从预设存储空间中读取所述第一数据块中新增处理位置对应的第一数据元素,并存储至所述寄存器,以及从所述寄存器中读取历史数据处理周期所处理数据块中与所述第一数据块重合位置对应的第二数据元素。通过调整数据块的处理顺序,提高数据的复用率,减少数据的读取数量和读取次数,减少数据读取过程中吞吐率,降低带宽压力,提升数据处理的效率。
基于同一发明构思,本公开实施例中还提供了与数据处理装置对应的数据读取方法,由于本公开实施例中的方法解决问题的原理与本公开实施例上述数据处理装置相似,因此方法的实施可以参见设备的实施,重复之处不再赘述。
本公开实施例所提供的数据读取方法的执行主体一般为具有一定计算能力的电子设备,该电子设备例如包括:终端设备或服务器或其它处理设备。该电子设备可以为处理器或是处理芯片等,在一个示例中,该电子设备可以为中央处理器(CPU,CentralProcessing Unit)、图形处理器(GPU,Graphics Processing Unit)、人工智能(AI,Artificial Intelligence)处理器或是其他通用处理器等。在一些可能的实现方式中,该数据读取方法可以通过处理器调用存储器中存储的计算机可读指令的方式来实现。
下面以执行主体为终端设备为例对本公开实施例提供的数据读取方法加以说明。
参见图6所示,为本公开实施例提供的一种数据读取方法的流程图,所述方法包括步骤S601~S602,其中:
S601:响应于当前数据处理周期到来,按照预设的数据块处理顺序,确定多个数据处理周期中当前数据处理周期对应的第一数据块;
S602:从预设存储空间中读取所述第一数据块中新增处理位置对应的第一数据元素,并存储至所述寄存器;以及从所述寄存器中读取历史数据处理周期所处理数据块中与所述第一数据块重合位置对应的第二数据元素。
一种可选的实施方式中,响应于当前数据处理周期到来,按照预设的数据块处理顺序,确定当前数据处理周期对应的第一数据块,包括:
响应于当前数据处理周期到来,控制数据读取窗口按照预设步长以弓形路线在待处理数据形成的数据矩阵中,进行当前数据处理周期对应的移动;并确定与该次移动后所述数据读取窗口对应的第一数据块;
其中,每次移动的目的位置对应所述弓形路线的一个拐点。
一种可选的实施方式中,所述数据读取窗口起始移动方向包括:所述数据矩阵的列所在的方向、或者所述数据矩阵的行所在的方向。
一种可选的实施方式中,响应于当前数据处理周期到来,所述数据读取窗口已处于当前弓形路线的最后一个第一数据块,且所述数据矩阵尚未完成读取,确定所述数据矩阵中,在所述数据读取窗口每次弓形路线的起始移动方向上,尚未处理的数据块;
将该尚未处理的数据块的位置作为所述数据读取窗口在当前数据处理周期对应的数据块读取位置,并在之后的数据处理周期,以该数据块读取位置作为新的弓形路线的起点,按照弓形路线的起始移动方向,进行移动以及数据读取。
一种可选的实施方式中,还包括:
从预设存储空间中读取所述第一数据块中新增处理位置对应的第一数据元素,并存储至所述寄存器时,用于:生成用于在当前数据处理周期读取对应第一数据元素的第一读取指令;响应于当前数据处理周期到来,将该当前数据处理周期对应的第一读取指令向所述访存电路发送;
响应于接收到所述控制单元发送的第一读取指令,从所述预设存储空间中读取与所述第一读取指令对应的第一数据元素,并将所述第一数据元素存储至所述寄存器中。
一种可选的实施方式中,还包括:
生成与当前数据处理周期对应的第二数据读取指令;响应于所述第一数据块中新增处理位置对应的第一数据元素存储至所述寄存器,向所述计算单元发送与所述当前数据处理周期对应的第二数据读取指令;
响应于接收到所述控制单元发送的第二数据读取指令,从所述寄存器中读取所述当前数据处理周期对应数据块的第一数据元素、以及第二数据元素,并基于所述第一数据元素和所述第二数据元素进行预设处理,得到与该数据处理周期对应的数据块的结果数据。
一种可选的实施方式中,所述生成用于在当前数据处理周期读取对应第一数据元素的第一读取指令,包括:
确定所述当前数据处理周期对应的第一数据元素的标识信息;所述标识信息用于表征所述第一数据元素在待处理数据中的位置;所述待处理数据包括所述数据块;
基于所述待处理数据的起始地址、地址位宽、以及所述标识信息,确定所述第一数据元素的地址信息;
基于所述第一数据元素的地址信息,生成与所述第一数据元素对应的第一数据读取指令。
关于方法中的处理流程、以及交互流程的描述可以参照上述设备实施例中的相关说明,这里不再详述。
本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
基于同一技术构思,本公开实施例还提供了一种数据处理芯片,包括如上述任一项所述的数据处理装置
本公开实施例还提供了一种数据处理芯片,包括如本公开任一实施例所述的数据处理设备。
本公开还提供了一种板卡,其包括了封装有至少一个上述芯片的封装结构。参阅图7,其提供了一种示例性的板卡,上述板卡包括上述芯片,还可以包括其他的部件,包括但不限于:存储器件701、接口装置704。
所述存储器件与所述芯片封装结构内的芯片通过总线连接,用于存储数据。所述存储器件可以包括多组存储单元702,例如:DDR SDRAM(Double Data Rate SDRAM,双倍速率同步动态随机存储器)等。每一组所述存储单元与所述芯片通过总线连接。
所述接口装置与所述芯片封装结构内的芯片电连接。所述接口装置用于实现所述芯片与外部设备705(例如:终端、服务器、摄像头等)之间的数据传输。在一个实施例中,所述接口装置可以包括PCIE接口,还可以是网络接口、或者其他的接口,本公开不做限制。
本公开实施例还提供一种电子设备,包括如本公开任一实施例所述的数据处理设备,或者如本公开实施例所述的数据处理芯片。参照图8所示,为本公开实施例提供的电子设备的结构示意图,包括处理器801、存储器802、和总线803。其中,存储器802用于存储执行指令,包括内存8021和外部存储器8022;这里的内存8021也称内存储器,用于暂时存放处理器801中的运算数据,以及与硬盘等外部存储器8022交换的数据,处理器801通过内存8021与外部存储器8022进行数据交换,当电子设备运行时,处理器801与存储器802之间通过总线803通信,使得处理器801在执行以下指令:
响应于当前数据处理周期到来,按照预设的数据块处理顺序,确定多个数据处理周期中当前数据处理周期对应的第一数据块;
从预设存储空间中读取所述第一数据块中新增处理位置对应的第一数据元素,并存储至所述寄存器;以及从所述寄存器中读取历史数据处理周期所处理数据块中与所述第一数据块重合位置对应的第二数据元素。
本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的数据读取方法的步骤。其中,该存储介质可以是易失性或非易失的计算机可读取存储介质。
本公开实施例所提供的数据读取方法的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行上述方法实施例中所述的数据读取方法的步骤,具体可参见上述方法实施例,在此不再赘述。
本公开实施例还提供一种计算机程序,该计算机程序被处理器执行时实现前述实施例的任意一种方法。该计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software DevelopmentKit,SDK)等等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本公开所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台电子设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本公开的具体实施方式,用以说明本公开的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施例技术方案的精神和范围,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应所述以权利要求的保护范围为准。
Claims (12)
1.一种数据处理装置,其特征在于,包括:控制单元、以及寄存器;
所述控制单元,用于响应于当前数据处理周期到来,按照预设的数据块处理顺序,确定当前数据处理周期对应的第一数据块;以及
从预设存储空间中读取所述第一数据块中新增处理位置对应的第一数据元素,并存储至所述寄存器;以及
从所述寄存器中读取历史数据处理周期所处理数据块中与所述第一数据块重合位置对应的第二数据元素。
2.根据权利要求1所述的数据处理装置,其特征在于,响应于当前数据处理周期到来,按照预设的数据块处理顺序,确定当前数据处理周期对应的第一数据块,包括:
响应于当前数据处理周期到来,控制数据读取窗口按照预设步长以弓形路线在待处理数据形成的数据矩阵中,进行当前数据处理周期对应的移动;并
确定与该次移动后所述数据读取窗口对应的第一数据块;
其中,每次移动的目的位置对应所述弓形路线的一个拐点。
3.根据权利要求2所述的数据处理装置,其特征在于,所述数据读取窗口起始移动方向包括:所述数据矩阵的列所在的方向、或者所述数据矩阵的行所在的方向。
4.根据权利要求2或3所述的数据处理装置,其特征在于,响应于当前数据处理周期到来,所述数据读取窗口已处于当前弓形路线的最后一个第一数据块,且所述数据矩阵尚未完成读取,确定所述数据矩阵中,在所述数据读取窗口每次弓形路线的起始移动方向上,尚未处理的数据块;
将该尚未处理的数据块的位置作为所述数据读取窗口在当前数据处理周期对应的数据块读取位置,并在之后的数据处理周期,以该数据块读取位置作为新的弓形路线的起点,按照弓形路线的起始移动方向,进行移动以及数据读取。
5.根据权利要求1-4任一项所述的数据处理装置,其特征在于,还包括:访存电路;
所述控制单元,在从预设存储空间中读取所述第一数据块中新增处理位置对应的第一数据元素,并存储至所述寄存器时,用于:生成用于在当前数据处理周期读取对应第一数据元素的第一读取指令;响应于当前数据处理周期到来,将该当前数据处理周期对应的第一读取指令向所述访存电路发送;
所述访存电路,用于响应于接收到所述控制单元发送的第一读取指令,从所述预设存储空间中读取与所述第一读取指令对应的第一数据元素,并将所述第一数据元素存储至所述寄存器中。
6.根据权利要求1-5任一项所述的数据处理装置,其特征在于,还包括:计算单元;
所述控制单元,还用于生成与当前数据处理周期对应的第二数据读取指令;响应于所述第一数据块中新增处理位置对应的第一数据元素存储至所述寄存器,向所述计算单元发送与所述当前数据处理周期对应的第二数据读取指令;
所述计算单元,用于响应于接收到所述控制单元发送的第二数据读取指令,从所述寄存器中读取所述当前数据处理周期对应数据块的第一数据元素、以及第二数据元素,并基于所述第一数据元素和所述第二数据元素进行预设处理,得到与该数据处理周期对应的数据块的结果数据。
7.根据权利要求5所述的数据处理装置,其特征在于,所述控制单元,在生成用于在当前数据处理周期读取对应第一数据元素的第一读取指令时,用于:
确定所述当前数据处理周期对应的第一数据元素的标识信息;所述标识信息用于表征所述第一数据元素在待处理数据中的位置;
基于所述待处理数据的起始地址、地址位宽、以及所述标识信息,确定所述第一数据元素的地址信息;
基于所述第一数据元素的地址信息,生成与所述第一数据元素对应的第一数据读取指令。
8.一种数据处理方法,其特征在于,包括:
响应于当前数据处理周期到来,按照预设的数据块处理顺序,确定多个数据处理周期中当前数据处理周期对应的第一数据块;
从预设存储空间中读取所述第一数据块中新增处理位置对应的第一数据元素,并存储至所述寄存器;以及从所述寄存器中读取历史数据处理周期所处理数据块中与所述第一数据块重合位置对应的第二数据元素。
9.一种数据处理芯片,其特征在于,包括如权利要求1-7任一项所述的数据处理装置。
10.一种板卡,其特征在于,包括封装有至少一个如权利要求9所述芯片的封装结构。
11.一种电子设备,其特征在于,包括:如权利要求1-7任一项所述的数据处理装置、或者包括如权利要求9所述的数据处理芯片、或者包括如权利要求10所述的板卡。
12.一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如权利要求8所述的数据处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210609644.5A CN114895964A (zh) | 2022-05-31 | 2022-05-31 | 数据处理装置、方法、芯片、板卡、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210609644.5A CN114895964A (zh) | 2022-05-31 | 2022-05-31 | 数据处理装置、方法、芯片、板卡、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114895964A true CN114895964A (zh) | 2022-08-12 |
Family
ID=82725973
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210609644.5A Pending CN114895964A (zh) | 2022-05-31 | 2022-05-31 | 数据处理装置、方法、芯片、板卡、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114895964A (zh) |
-
2022
- 2022-05-31 CN CN202210609644.5A patent/CN114895964A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5840994B2 (ja) | 行列演算装置 | |
CN110390075B (zh) | 矩阵预处理方法、装置、终端及可读存储介质 | |
CN109885407B (zh) | 数据处理方法和装置、电子设备、存储介质 | |
CN109242967B (zh) | 一种三维地形渲染方法及装置 | |
EP3093757B1 (en) | Multi-dimensional sliding window operation for a vector processor | |
US20200327078A1 (en) | Data processing method and device, dma controller, and computer readable storage medium | |
CN113032007B (zh) | 一种数据处理方法及装置 | |
EP4227886A1 (en) | Matrix operation method and apparatus for image data, device, and storage medium | |
CN111476718A (zh) | 一种图像放大方法、装置、存储介质及终端设备 | |
CN111984189B (zh) | 神经网络计算装置和数据读取、数据存储方法及相关设备 | |
CN115758054A (zh) | 一种卷积计算方法、数据处理方法、芯片及电子设备 | |
CN112446007A (zh) | 一种矩阵运算方法、运算装置以及处理器 | |
US20200327638A1 (en) | Connected component detection method, circuit, device and computer-readable storage medium | |
CN114895964A (zh) | 数据处理装置、方法、芯片、板卡、电子设备及存储介质 | |
JP5917907B2 (ja) | 画像処理装置 | |
CN109408148B (zh) | 一种国产化计算平台及其应用加速方法 | |
CN111767243A (zh) | 数据处理方法、相关设备及计算机可读介质 | |
CN107977923B (zh) | 图像处理方法、装置、电子设备及计算机可读存储介质 | |
CN115563443A (zh) | 卷积运算方法及装置、卷积处理方法、设备与存储介质 | |
CN116051345A (zh) | 图像数据处理方法、装置、计算机设备及可读存储介质 | |
CN114119661A (zh) | 一种目标追踪处理器、目标追踪方法及装置 | |
US20220100814A1 (en) | Graphics processor and acceleration method thereof | |
CN111931937B (zh) | 图像处理模型的梯度更新方法、装置及系统 | |
CN113870091A (zh) | 卷积计算方法、系统、设备及存储介质 | |
CN112927125A (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 |