CN114237551B - 一种基于脉动阵列的多精度加速器及其数据处理方法 - Google Patents

一种基于脉动阵列的多精度加速器及其数据处理方法 Download PDF

Info

Publication number
CN114237551B
CN114237551B CN202111420664.XA CN202111420664A CN114237551B CN 114237551 B CN114237551 B CN 114237551B CN 202111420664 A CN202111420664 A CN 202111420664A CN 114237551 B CN114237551 B CN 114237551B
Authority
CN
China
Prior art keywords
data
precision
accelerator
array
multiplication
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.)
Active
Application number
CN202111420664.XA
Other languages
English (en)
Other versions
CN114237551A (zh
Inventor
毛伟
余浩
杜来民
李博宇
刘俊
罗少波
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Maitexin Technology Co ltd
Original Assignee
Southern University of Science and Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Southern University of Science and Technology filed Critical Southern University of Science and Technology
Priority to CN202111420664.XA priority Critical patent/CN114237551B/zh
Priority to PCT/CN2021/136638 priority patent/WO2023092669A1/zh
Publication of CN114237551A publication Critical patent/CN114237551A/zh
Application granted granted Critical
Publication of CN114237551B publication Critical patent/CN114237551B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/57Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations
    • G06F7/575Basic arithmetic logic units, i.e. devices selectable to perform either addition, subtraction or one of several logical operations, using, at least partially, the same circuitry
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Complex Calculations (AREA)

Abstract

本发明公开了一种基于脉动阵列的多精度加速器及其数据处理方法,所述方法包括:获取预设的输入数据的数据精度;其中,所述数据精度用于表征数据位数;根据所述数据精度和所述输入数据,确定与所述输入数据对应的分段数据;将所述分段数据映射到乘法器单元组,并通过多精度加速器对所述分段数据进行乘累加运算。本发明实施例根据输入数据的数据精度确定出不同的分段数据,然后将分段数据映射到乘法器单元组,再通过多精度加速器对所述分段数据进行乘累加运算,可以以较少内存带宽消耗实现更高吞吐量的乘累加运算。

Description

一种基于脉动阵列的多精度加速器及其数据处理方法
技术领域
本发明涉及数字电路技术领域,尤其涉及的是一种基于脉动阵列的多精度加速器及其数据处理方法。
背景技术
目前人工智能领域发展迅速,随着网络计算量和参数量的增加,业内对高能效低功耗的神经网络需求增加。通过网络的优化调整,神经网络的逐层精度优化可以大大降低计算复杂度。然而,多精度神经网络的计算需要定制的硬件电路来支持,因为单精度处理器在计算混合精度时会浪费大量资源,而多精度神经网络处理器在电路级支持多精度,计算可以得到比单精度处理器更高的利用率,但是现有技术中的多精度计算无法平衡低计算成本消耗和更高速度的要求。
因此,现有技术还有待改进和发展。
发明内容
本发明要解决的技术问题在于,针对现有技术的上述缺陷,提供一种基于脉动阵列的多精度加速器及其数据处理方法,旨在解决现有技术中多精度计算无法平衡低计算成本消耗和更高速度的要求的问题。
本发明解决问题所采用的技术方案如下:
第一方面,本发明实施例提供一种多精度加速器的数据处理方法,其中,所述方法包括:
获取输入数据的数据精度;其中,所述数据精度用于表征数据位数;
根据所述数据精度和所述输入数据,确定与所述输入数据对应的分段数据;
将所述分段数据映射到乘法器单元组,并通过多精度加速器对所述分段数据进行乘累加运算。
在一种实现方式中,所述根据所述数据精度和所述输入数据,确定与所述输入数据对应的分段数据包括:
基于预设的位宽基本单元,将所述数据精度除以所述位宽基本单元,得到除数;
基于所述除数,将所述输入数据按照从高位到低位的顺序进行依次划分,得到分段数据。
在一种实现方式中,所述将所述分段数据映射到乘法器单元组,并通过多精度加速器对所述分段数据进行乘累加运算包括:
将所述分段数据输入至所述乘法器单元组中与所述分段数据对应的乘法器中,并通过多精度加速器对所述分段数据进行乘法及累加运算。
第二方面,本发明实施例还提供一种基于多精度加速器的数据处理方法的基于脉动阵列的多精度加速器,其中,包括:数据接口,用于接收总线上的外部命令;
控制单元,与所述数据接口通讯连接,且用于接收所述外部命令,并根据所述外部命令对所述多精度加速器进行控制;
脉动乘法阵列,与所述控制单元通讯连接,且用于对输入数据进行混合精度计算;
缓冲器,与所述脉动乘法阵列通讯连接,且用于对数据进行缓存。
在一种实现方式中,所述脉动乘法阵列包括若干脉动阵列乘法单元。
在一种实现方式中,所述脉动阵列乘法单元包括若干乘法器单元组和若干移位累加器。
在一种实现方式中,所述乘法器单元组由若干乘法器组成。
在一种实现方式中,所述移位累加器用于将乘法器单元组中输出数据进行累加并将累加后得到的值进行移位。
第三方面,本发明实施例还提供一种智能终端,包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于执行如上述任意一项所述的多精度加速器的数据处理方法。
第四方面,本发明实施例还提供一种非临时性计算机可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如上述中任意一项所述的多精度加速器的数据处理方法。
本发明的有益效果:本发明实施例首先获取输入数据的数据精度;其中,所述数据精度用于表征数据位数;然后根据所述数据精度,确定乘累加运算模式;最后基于所述乘累加运算模式,将所述输入数据映射到乘法器单元组,并通过多精度加速器对所述输入数据进行乘累加运算;可见,本发明实施例中根据输入数据的数据精度确定出不同的乘累加运算模式,然后将输入数据按照乘累加运算模式映射到乘法器单元组,再通过多精度加速器对所述输入数据进行乘累加运算,可以以较少内存带宽消耗实现更高吞吐量的乘累加运算。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的多精度加速器的数据处理方法流程示意图。
图2为本发明实施例提供的一种实现方式的加速器双脉动阵列结构。
图3为本发明实施例提供的一种实现方式的PE三种计算模式设计原理图。
图4为本发明实施例提供的一种实现方式的三种计算模式下PE内部数据流示意图。
图5为本发明实施例提供的智能终端的内部结构原理框图。
具体实施方式
本发明公开了一种基于脉动阵列的多精度加速器及其数据处理方法,为使本发明的目的、技术方案及效果更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
由于现有技术中,在加速器架构层面,谷歌提出了一种脉动阵列架构,可以用来加速卷积计算TPU(张量处理单元),将卷积数据转换成矩阵数据进行运算。然而谷歌TPU只能支持8位定点数计算,无法满足多精度加速器的要求。
目前多精度加速器的基本MAC单元按设计思想可分为位并行和位串行两类:位并行在空间上进行扩展,位串行在时间上进行扩展,位并行的思想是消耗更多的资源来换取更高的性能,而位串行则是以牺牲性能为代价来降低资源消耗。这两种加速器适用的场景是不同的,因此在某些情况下,必须在多个设计指标(如成本消耗和速度)上进行权衡。
为了解决现有技术的问题,本实施例提供了基于脉动阵列的多精度加速器及其数据处理方法,根据输入数据的数据精度确定出不同的乘累加运算模式,然后将输入数据按照乘累加运算模式映射到乘法器单元组,再通过多精度加速器对所述输入数据进行乘累加运算,可以以较少内存带宽消耗实现更高吞吐量的乘累加运算。具体实施时,先获取输入数据的数据精度;其中,所述数据精度用于表征数据位数;然后根据所述数据精度,确定乘累加运算模式;最后,基于所述乘累加运算模式,将所述输入数据映射到乘法器单元组,并通过多精度加速器对所述输入数据进行乘累加运算。
示例性方法
本实施例提供多精度加速器的数据处理方法,该方法可以应用于数字电路的智能终端。具体如图1所示,所述方法包括:
步骤S100、获取预设的输入数据的数据精度;其中,所述数据精度用于表征数据位数;
具体地,对于数据传输方式,本发明采用脉动阵列结构,如图2所示是本发明实施例中的多精度加速器的基本结构,对于PE(处理单元)脉动阵列,每个PE是基本单元乘法器,神经网络权重数据在输入数据进入PE之前已经被预存到每个PE中。输入数据从输入缓存中进入,并根据内部时钟每次流入脉动阵列乘法单元。以基本单元2bit为例,基本单元的乘法器是2bit,输入数据每次流入2bit数据到每个2位乘法器。输入数据的数据精度可以有很多种,数据精度用于表征数据位数,如2位,3位,4位,32位,128位等等。在本实施例中,可以支持的数据精度为1-8位。
得到数据精度后,就可以执行如图1所示的如下步骤:S200、根据所述数据精度和所述输入数据,确定与所述输入数据对应的分段数据;相应的,所述根据所述数据精度和所述输入数据,确定与所述输入数据对应的分段数据包括如下步骤:基于预设的位宽基本单元,将所述数据精度除以所述位宽基本单元,得到除数;基于所述除数,将所述输入数据按照从高位到低位的顺序进行依次划分,得到分段数据。
具体地,本发明的每个脉动阵列乘法单元可以支持2位、4位和8位多精度计算模式,如图3所示,为每个脉动阵列乘法单元的三种计算模式的设计原理。在本实施例中,预设的位宽基本单元为2bit,输入数据分别从横向和纵向输入,实际中,两个8bit输入数据相乘时(如A×a),首先将A和B以每2bit作为位宽基本单元从高位到低位进行划分,得到分段数据如:(A7-6、A5-4、A3-2、A1-0/a7-6、a5-4、a3-2、a1-0),计算模式为以2bit为基本单元进行交叉相乘,总共得到16个部分积,部分积需要进行移位和累加才能得到最终的结果。当数据精度为8位时,如图3所示,每列的部分积所需的移位相同,分别为0位、2位、4位、6位、8位、10位和12位。对于4位计算模式,输入仍然是8位格式,从高位到低位每4位作为一段输入数据。所以每个输入代表两个输入数据,A3-2、A1-0/B3-2、B1-0和a3-2、a1-0/b3-2、b1-0。四个4位输入数据仍然以每2位被分成一个基本单元,然后交叉相乘得到16个部分积。此部分与8位计算模式相同,但不同的是,部分积的偏移发生了变化。16个部分积按平行四边形结构可分为4个部分,每个部分包含四个部分积,这四个部分积可以进行移位和累加以获得4位计算模式结果,四个部分积所需的移位是0bit、2bit、2bit和4bit。对于2位计算模式。因为位宽基本单元是2bit,所以每个输入可以表示4个2bit的输入数据。16个2bit数据可以交叉相乘得到16个部分积,但这16个部分积不需要移位。根据不同的积需要,可以选择其输出为16个部分积的累加和,也可以直接输出16个部分积。
得到分段数据后,就可以执行如图1所示的如下步骤:S300、将所述分段数据映射到乘法器单元组,并通过多精度加速器对所述分段数据进行乘累加运算。相应的,所述根据所述数据精度和所述输入数据,确定与所述输入数据对应的分段数据包括如下步骤:基于预设的位宽基本单元,将所述数据精度除以所述位宽基本单元,得到除数;基于所述除数,将所述输入数据按照从高位到低位的顺序进行依次划分,得到分段数据。
具体地,将分段数据映射到四个PE基本单元组中,其数据流如图4所示,8位计算模式下,输入数据是8位数据A和a,将A和a以每2bit作为一个基本单元,则8除以2等于4,A和B按照从高位到低位的顺序进行依次划分,得到分段数据如(A7-6、A5-4、A3-2、A1-0/a7-6、a5-4、a3-2、a1-0)。a7-6、a5-4、a3-2、a1-0被预存到四个乘法器中。第一个时钟周期A的最高2位,A7-6从输入缓存输入到第一个乘法器,得到第一个部分积A7-6×a7-6。下一个时钟周期,A7-6进入第二个乘法器,而A5-4输入到第一个乘法器。在这个时钟周期,可以得到两个部分积:A5-4×a7-6和A7-6×a5-4。每过一个时钟周期,A7-6就从前一个乘法器流入到后一个乘法器,直到与a的四组乘法完成。同时,A的剩余低位bit继续以脉动形式进入乘法器。所有部分积的乘法可在第七个时钟前完成。每个部分积的移位与图3所示的乘法模型中的移位是一致的。4位计算模式下,输入数据是4位数据A、B、a和b,将A、B、a和b以每2bit作为一个基本单元,则4除以2等于2,A、B、a和b均按照从高位到低位的顺序进行依次划分,得到分段数据如(B3-2、B1-0、A3-2、A1-0/b3-2、b1-0、a3-2、a1-0),b3-2、b1-0、a3-2、a1-0被预存到四个乘法器中,第一个时钟周期B的最高2位,B3-2从输入缓存输入到第一个乘法器,得到第一个部分积B3-2×b3-2。下一个时钟周期,B3-2进入第二个乘法器,而B1-0输入到第一个乘法器。在这个时钟周期,可以得到两个部分积:B3-2×b1-0和B1-0×b3-2。每过一个时钟周期,B3-2就从前一个乘法器流入到后一个乘法器,直到与B和D的两组乘法完成。同样,经过7个时钟周期后,可以得到所有的部分积,然后根据乘法模型进行移位和累加。2位计算模式下,输入数据是2位数据A、B、C、D、a、b、c和d,将A、B、C、D、a、b、c和d以每2bit作为一个基本单元,则2除以2等于1,A、B、C、D、a、b、c和d均按照从高位到低位的顺序进行依次划分,得到分段数据如(D1-0、C1-0、B1-0、A1-0/d1-0、c1-0、b1-0、a1-0)。d1-0、c1-0、b1-0、a1-0被预存到四个乘法器中,第一个时钟周期D的2位,D1-0从输入缓存输入到第一个乘法器,得到第一个部分积D1-0×d1-0。下一个时钟周期,D1-0进入第二个乘法器,而C1-0输入到第一个乘法器。在这个时钟周期,可以得到两个部分积:D1-0×c1-0和C1-0×d1-0。每过一个时钟周期,D1-0就从前一个乘法器流入到后一个乘法器,直到与d、c、b和a的四组乘法完成。同样,经过7个时钟周期后,可以得到所有的部分积,然后根据乘法模型进行移位和累加。因为3种计算模式下输入数据都是8位的,所以当到达第5个时钟时,第一个乘法器是空闲的,每经过一个时钟,就有一个乘法器进入空闲状态。但在实际运行中,脉动输入数据连续进入PE,所以当A的所有数据进入PE后,会有其他数据在下一个周期进入乘法器继续运行,所以乘法器不会空闲。数据完全流入PE后,每4个时钟周期每个PE可以完成一组8bit×8bit操作,或4组4bit×4bit操作,或16组2bit×2bit操作。本发明实施例可以实现支持1-8位任意混合精度计算。在一种实现方式中,在奇数精度的情况下,本发明通过零补码运算使之与电路结构相适应。
示例性设备
如图2中所示,本发明实施例提供一种基于多精度加速器的数据处理方法的基于脉动阵列的多精度加速器,包括:数据接口,用于接收总线上的外部命令;控制单元,与所述数据接口通讯连接,且用于接收所述外部命令,并根据所述外部命令对所述多精度加速器进行控制;脉动乘法阵列,与所述控制单元通讯连接,且用于对输入数据进行混合精度计算;缓冲器,与所述脉动乘法阵列通讯连接,且用于对数据进行缓存。
具体地,如图2所示,在基于脉动阵列的多精度加速器结构中,输入数据和部分积输出在每个相邻脉动阵列乘法单元(PE)之间流动。每过一个外部时钟周期,2bit输入数据将从输入缓存进入第一列相邻脉动阵列乘法单元(PE),且脉动阵列前一列相邻脉动阵列乘法单元(PE)的2bit输入数据将进入下一列相邻脉动阵列乘法单元(PE)。同时,同一列的相邻脉动阵列乘法单元(PE)中计算得到的部分积在加法器中完成部分积的累加后整体移位,从而得到矩阵运算后的输出数据。基于脉动阵列的多精度加速器包括数据接口,数据接口用于接收总线上的外部命令;并与所示控制单元进行数据交互,基于脉动阵列的多精度加速器还包括控制单元,控制单元与所述数据接口通讯连接,当控制单元接收所述外部命令后就可以对所述多精度加速器进行控制,此外,基于脉动阵列的多精度加速器还包括脉动乘法阵列,所述脉动乘法阵列通讯与所述控制单元连接,并与所述脉动乘法阵列进行数据交互,脉动乘法阵列用于对输入数据进行混合精度计算。最后,基于脉动阵列的多精度加速器还包括缓冲器,与所述脉动乘法阵列通讯连接,且用于对数据进行缓存,在本实施例中,缓冲器包括输入缓冲器、输出缓冲器和输出缓冲器。
在一种实现方式中,所述脉动乘法阵列包括若干脉动阵列乘法单元。在本实施例中,脉动乘法阵列由若干脉动阵列乘法单元组成N行和N列的乘法阵列。所述脉动阵列乘法单元包括若干乘法器单元组和若干移位累加器。乘法器单元组由若干乘法器组成,在本实施例中,乘法器单元组由4个乘法器组成,以便能实现1-8位多精度乘法运算。每个乘法器单元组连接一个移位累加器,移位累加器又与另一移位累加器连接,然后输出数据。所述移位累加器用于将乘法器单元组中输出数据进行累加并将累加后得到的值进行移位。
本发明实施例基于脉动阵列结构,不改变脉动工作模式,对输入数据进行多次重用,使输入数据尽可能地在PE以及单位乘法器中流动,减少内存访问次数,提高数据重用率,可以以较少的内存带宽消耗实现更高的吞吐量。本发明实施例设置3种计算模式以满足可重构多精度计算的需求。与以位串行结构为基本MAC单元结构的多精度加速器相比,基于脉动阵列的多精度乘法器消耗的PE乘法器数量是位串行的4倍,但相应的其他电路资源消耗却不到位串行PE的4倍。同时,脉动阵列乘法单元PE的吞吐量是位串行PE的4倍,因此脉动阵列乘法单元PE的能效要比位串行高。与以位并行结构为基本MAC单元结构的多精度加速器相比,脉动阵列乘法单元PE的吞吐量仅为位并行的四分之一,但总资源消耗高于位并行的四分之一。但是由于脉动阵列乘法单元PE以脉动方式传输数据,因此数据驱动的数量远小于位并行PE。也即脉动阵列乘法单元PE在数据传输量相同的情况下,可以使用更高的频率,即更高的计算吞吐量,因此,脉动阵列乘法单元PE的能效也高于位并行PE。
基于上述实施例,本发明还提供了一种智能终端,其原理框图可以如图5所示。该智能终端包括通过系统总线连接的处理器、存储器、网络接口、显示屏、温度传感器。其中,该智能终端的处理器用于提供计算和控制能力。该智能终端的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该智能终端的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种多精度加速器的数据处理方法。该智能终端的显示屏可以是液晶显示屏或者电子墨水显示屏,该智能终端的温度传感器是预先在智能终端内部设置,用于检测内部设备的运行温度。
本领域技术人员可以理解,图5中的原理图,仅仅是与本发明方案相关的部分结构的框图,并不构成对本发明方案所应用于其上的智能终端的限定,具体的智能终端可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种智能终端,包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:获取预设的输入数据的数据精度;其中,所述数据精度用于表征数据位数;
根据所述数据精度和所述输入数据,确定与所述输入数据对应的分段数据;
将所述分段数据映射到乘法器单元组,并通过多精度加速器对所述分段数据进行乘累加运算。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本发明所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
综上所述,本发明公开了一种基于脉动阵列的多精度加速器及其数据处理方法,所述方法包括:获取预设的输入数据的数据精度;其中,所述数据精度用于表征数据位数;根据所述数据精度和所述输入数据,确定与所述输入数据对应的分段数据;将所述分段数据映射到乘法器单元组,并通过多精度加速器对所述分段数据进行乘累加运算。本发明实施例根据输入数据的数据精度确定出不同的分段数据,然后将分段数据映射到乘法器单元组,再通过多精度加速器对所述分段数据进行乘累加运算,可以以较少内存带宽消耗实现更高吞吐量的乘累加运算。
基于上述实施例,本发明公开了一种多精度加速器的数据处理方法,应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。

Claims (8)

1.一种多精度加速器的数据处理方法,其特征在于,所述多精度加速器包括脉动乘法阵列,所述脉动乘法阵列为若干脉动阵列乘法单元组成的N行和N列的乘法阵列;所述方法包括:
获取预设的输入数据的数据精度;其中,所述数据精度用于表征数据位数;
根据所述数据精度和所述输入数据,确定与所述输入数据对应的分段数据;将所述分段数据输入至乘法器单元组中与所述分段数据对应的乘法器中,并通过多精度加速器对所述分段数据进行乘法及累加运算,具体为:
每过一个外部时钟周期,输入数据的分段数据将从输入缓存进入第一列相邻脉动阵列乘法单元,且脉动乘法阵列中前一列相邻脉动阵列乘法单元的分段数据将渐入下一列相邻脉动阵列乘法单元;且
同一列的相邻脉动阵列乘法单元中计算得到的部分积在加法器中完成部分积的累加后整体移位,以得到矩阵运算后的输出数据。
2.根据权利要求1所述的多精度加速器的数据处理方法,其特征在于,所述根据所述数据精度和所述输入数据,确定与所述输入数据对应的分段数据包括:
基于预设的位宽基本单元,将所述数据精度除以所述位宽基本单元,得到除数;
基于所述除数,将所述输入数据按照从高位到低位的顺序进行依次划分,得到分段数据。
3.一种用于实现权利要求1-2任一项所述的多精度加速器的数据处理方法的基于脉动阵列的多精度加速器,其特征在于,包括:
数据接口,用于接收总线上的外部命令;
控制单元,与所述数据接口通讯连接,且用于接收所述外部命令,并根据所述外部命令对所述多精度加速器进行控制;
脉动乘法阵列,与所述控制单元通讯连接,且用于对输入数据进行混合精度计算;
缓冲器,与所述脉动乘法阵列通讯连接,且用于对数据进行缓存。
4.根据权利要求3所述的实现 多精度加速器的数据处理方法的基于脉动阵列的多精度加速器,其特征在于,所述脉动阵列乘法单元包括若干乘法器单元组和若干移位累加器。
5.根据权利要求4所述的实现 多精度加速器的数据处理方法的基于脉动阵列的多精度加速器,其特征在于,所述乘法器单元组由若干乘法器组成。
6.根据权利要求4所述的实现 多精度加速器的数据处理方法的基于脉动阵列的多精度加速器,其特征在于,所述移位累加器用于将乘法器单元组中输出数据进行累加并将累加后得到的值进行移位。
7.一种智能终端,其特征在于,包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于执行如权利要求1-2中任意一项所述的方法。
8.一种非临时性计算机可读存储介质,其特征在于,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如权利要求1-2中任意一项所述的方法。
CN202111420664.XA 2021-11-26 2021-11-26 一种基于脉动阵列的多精度加速器及其数据处理方法 Active CN114237551B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202111420664.XA CN114237551B (zh) 2021-11-26 2021-11-26 一种基于脉动阵列的多精度加速器及其数据处理方法
PCT/CN2021/136638 WO2023092669A1 (zh) 2021-11-26 2021-12-09 一种基于脉动阵列的多精度加速器及其数据处理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111420664.XA CN114237551B (zh) 2021-11-26 2021-11-26 一种基于脉动阵列的多精度加速器及其数据处理方法

Publications (2)

Publication Number Publication Date
CN114237551A CN114237551A (zh) 2022-03-25
CN114237551B true CN114237551B (zh) 2022-11-11

Family

ID=80751323

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111420664.XA Active CN114237551B (zh) 2021-11-26 2021-11-26 一种基于脉动阵列的多精度加速器及其数据处理方法

Country Status (2)

Country Link
CN (1) CN114237551B (zh)
WO (1) WO2023092669A1 (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101067681A (zh) * 2007-05-11 2007-11-07 中国科学院光电技术研究所 用于自适应光学系统波前控制运算的脉动阵列处理电路
CN105589677A (zh) * 2014-11-17 2016-05-18 沈阳高精数控智能技术股份有限公司 一种基于fpga的脉动结构矩阵乘法器及其实现方法
CN112639836A (zh) * 2020-02-25 2021-04-09 深圳市大疆创新科技有限公司 数据处理装置、电子设备和数据处理方法

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8710864B2 (en) * 2010-04-23 2014-04-29 Utah State University Dynamically reconfigurable systolic array accelorators
US11328037B2 (en) * 2017-07-07 2022-05-10 Intel Corporation Memory-size- and bandwidth-efficient method for feeding systolic array matrix multipliers
US11003620B2 (en) * 2017-12-22 2021-05-11 Intel Corporation Systolic array of pipelined processing engines for implementing dynamic programming algorithms
US11188814B2 (en) * 2018-04-05 2021-11-30 Arm Limited Systolic convolutional neural network
US20200226473A1 (en) * 2019-01-15 2020-07-16 BigStream Solutions, Inc. Systems, apparatus, methods, and architectures for heterogeneous precision acceleration of quantized neural networks
CN109934339B (zh) * 2019-03-06 2023-05-16 东南大学 一种基于一维脉动阵列的通用卷积神经网络加速器
CN110705703B (zh) * 2019-10-16 2022-05-27 北京航空航天大学 基于脉动阵列的稀疏神经网络处理器
CN110851779B (zh) * 2019-10-16 2021-09-14 北京航空航天大学 用于稀疏矩阵运算的脉动阵列架构
US11467806B2 (en) * 2019-11-27 2022-10-11 Amazon Technologies, Inc. Systolic array including fused multiply accumulate with efficient prenormalization and extended dynamic range
CN113168429A (zh) * 2020-05-11 2021-07-23 深圳市大疆创新科技有限公司 卷积计算装置、方法和计算机存储介质
CN112639839A (zh) * 2020-05-22 2021-04-09 深圳市大疆创新科技有限公司 神经网络的运算装置及其控制方法
CN111626414B (zh) * 2020-07-30 2020-10-27 电子科技大学 一种动态多精度神经网络加速单元
CN112818416B (zh) * 2021-01-22 2022-09-27 合肥工业大学 一种基于脉动阵列的全同态加密硬件加速器及其设计方法
CN112860220B (zh) * 2021-02-09 2023-03-24 南方科技大学 一种适用于多精度计算的可重构浮点乘加运算单元及方法
CN112836813B (zh) * 2021-02-09 2023-06-16 南方科技大学 一种用于混合精度神经网络计算的可重构脉动阵列系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101067681A (zh) * 2007-05-11 2007-11-07 中国科学院光电技术研究所 用于自适应光学系统波前控制运算的脉动阵列处理电路
CN105589677A (zh) * 2014-11-17 2016-05-18 沈阳高精数控智能技术股份有限公司 一种基于fpga的脉动结构矩阵乘法器及其实现方法
CN112639836A (zh) * 2020-02-25 2021-04-09 深圳市大疆创新科技有限公司 数据处理装置、电子设备和数据处理方法

Also Published As

Publication number Publication date
WO2023092669A1 (zh) 2023-06-01
CN114237551A (zh) 2022-03-25

Similar Documents

Publication Publication Date Title
CN110415157B (zh) 一种矩阵乘法的计算方法及装置
US11017290B2 (en) Signal processing module, especially for a neural network and a neuronal circuit
EP4318275A1 (en) Matrix multiplier and method for controlling matrix multiplier
CN110362293B (zh) 乘法器、数据处理方法、芯片及电子设备
CN111008003B (zh) 数据处理器、方法、芯片及电子设备
US20200134433A1 (en) Integrated circuit
CN212112470U (zh) 一种矩阵乘法计算电路
CN114707647A (zh) 适用于多精度神经网络的精度无损存算一体装置及方法
CN110554854B (zh) 数据处理器、方法、芯片及电子设备
CN117933314A (zh) 处理装置、处理方法、芯片及电子装置
CN110531954B (zh) 乘法器、数据处理方法、芯片及电子设备
CN116991560A (zh) 针对语言模型的并行调度方法、装置、设备及存储介质
CN112639839A (zh) 神经网络的运算装置及其控制方法
CN114003198A (zh) 内积处理部件、任意精度计算设备、方法及可读存储介质
CN114237551B (zh) 一种基于脉动阵列的多精度加速器及其数据处理方法
CN113918120A (zh) 计算装置、神经网络处理设备、芯片及处理数据的方法
CN107368459B (zh) 基于任意维数矩阵乘法的可重构计算结构的调度方法
CN116167424B (zh) 基于cim的神经网络加速器、方法、存算处理系统与设备
CN115860080A (zh) 计算核、加速器、计算方法、装置、设备、介质及系统
CN110647307B (zh) 数据处理器、方法、芯片及电子设备
CN210109789U (zh) 数据处理器
CN113504892A (zh) 一种设计乘法器查找表的方法、系统、设备及介质
CN114626517B (zh) 一种存储双层权重数据的脉动阵列
CN112631548B (zh) 基于混合粒度乘法部件的多精度乘法器及运算方法
CN110688087A (zh) 数据处理器、方法、芯片及电子设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20240117

Address after: 518000, Building 307, Building 2, Nanshan Zhiyuan Chongwen Park, No. 3370 Liuxian Avenue, Fuguang Community, Taoyuan Street, Nanshan District, Shenzhen, Guangdong Province

Patentee after: Shenzhen Maitexin Technology Co.,Ltd.

Address before: No.1088 Xueyuan Avenue, Taoyuan Street, Nanshan District, Shenzhen, Guangdong 518055

Patentee before: Southern University of Science and Technology

TR01 Transfer of patent right