CN109669666B - 乘累加处理器 - Google Patents

乘累加处理器 Download PDF

Info

Publication number
CN109669666B
CN109669666B CN201811311471.9A CN201811311471A CN109669666B CN 109669666 B CN109669666 B CN 109669666B CN 201811311471 A CN201811311471 A CN 201811311471A CN 109669666 B CN109669666 B CN 109669666B
Authority
CN
China
Prior art keywords
multiply
accumulate
data
transform domain
domain sequence
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
CN201811311471.9A
Other languages
English (en)
Other versions
CN109669666A (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.)
Tsinghua University
Original Assignee
Tsinghua University
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 Tsinghua University filed Critical Tsinghua University
Priority to CN201811311471.9A priority Critical patent/CN109669666B/zh
Publication of CN109669666A publication Critical patent/CN109669666A/zh
Application granted granted Critical
Publication of CN109669666B publication Critical patent/CN109669666B/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/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • G06F7/525Multiplying only in serial-serial fashion, i.e. both operands being entered serially
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • Biomedical Technology (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Complex Calculations (AREA)

Abstract

本发明实施例提供一种乘累加处理器,包括:乘累加阵列包括阵列式排列的多个乘累加单元;存储器为转置静态随机访问存储器,用于存储第一变换域序列;串并行转换模块,用于从存储器中获取第一变换域序列中第m个位置的数据,将获取的第一变换域序列中第m个位置的数据分别输入对应的乘累加阵列中的各行;乘累加单元,用于根据输入乘累加单元所在行的第一变换域序列中第m个位置的数据和输入乘累加单元所在列的第二变换域序列中的数据进行乘累加。本发明实施例提供的乘累加处理器,实现了数据的复用,减少了对存储器中数据的读取次数,能提高数据处理效率、降低乘累加处理器的功耗。

Description

乘累加处理器
技术领域
本发明涉及电路设计技术领域,更具体地,涉及乘累加处理器。
背景技术
神经网络是目前人工智能领域的一种重要算法技术,包括卷积神经网络(Convolutional Neural Network,CNN)、全连接神经网络(Fully-connected NeuralNetwork,FC)和循环神经网络(Recurrent Neural Network,RNN)。神经网络算法需要执行大量的乘法和加法运算,对于低功耗移动便携设备的人工智能应用是非常大的挑战。
现有技术是将CNN、FC、RNN三种类型的神经网络统一为循环行列式,从而能够通过快速傅里叶变换(Fast Fourier Transform,FFT)转换到变换域进行乘累加计算,实现整体加速。这种方案的不足是在经过高速FFT变换之后,使用传统的静态随机访问存储器(static random access memory,SRAM)存储并行产生的变换域数据,由于SRAM不具备数据复用的特点,因而无法在变换域的乘累加处理器中实现数据复用的乘累加电路,造成大量重复的数据存取操作,影响整体的功耗和性能。
发明内容
本发明提供一种克服上述问题或者至少部分地解决上述问题的乘累加处理器。
本发明实施例提供一种乘累加处理器,包括:
所述乘累加阵列包括阵列式排列的多个乘累加单元;
所述存储器为转置静态随机访问存储器,用于存储第一变换域序列;
所述串并行转换模块,用于从所述存储器中获取第一变换域序列中第m个位置的数据,将获取的第一变换域序列中第m个位置的数据分别输入对应的所述乘累加阵列中的各行;
所述乘累加单元,用于根据输入所述乘累加单元所在行的第一变换域序列中第m个位置的数据和输入所述乘累加单元所在列的第二变换域序列中的数据进行乘累加;
其中,所述第一变换域序列包括M个位置的数据,M表示第一变换域序列的数据位宽;m=1,2,…,M。
本发明实施例提供的乘累加处理器,通过转置静态随机访问存储器将第一变换域序列转置输出,将多个第一变换域序列中某个位置的数据通过串并行转换模块并行输入乘累加阵列的各行,使得乘累加阵列的各行分别对不同组第一变换域序列和对应的第二变换域序列中的数据进行乘累加,使得从存储器中读出的每个数据都能用于多个乘累加单元的乘累加计算,实现了数据的复用,减少了对存储器中数据的读取次数,能提高数据处理效率、明显降低乘累加处理器的功耗。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的乘累加处理器的结构示意图;
图2为本发明实施例提供的乘累加处理器中串并行转换单元的处理流程示意图;
图3本发明实施例提供的乘累加处理器中乘累加单元的处理流程示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了克服现有技术的上述问题,本发明实施例提供了一种乘累加处理器,其发明构思为:采用转置静态随机访问存储器存储FFT产生的各第一变换域序列,利用转置静态随机访问存储器的特性,对存储的数据进行转置输出,将输出的每一数据作为乘累加阵列中一行乘累加单元的输入,从而能实现对FFT产生的各第一变换域序列进行复用,减少从转置静态随机访问存储器中读出数据的次数。
图1为本发明实施例提供的乘累加处理器的结构示意图,如图1所示,包括:存储器101、串并行转换模块102以及乘累加阵列103;其中:
乘累加阵列103包括阵列式排列的多个乘累加单元;
存储器101为转置静态随机访问存储器,用于存储第一变换域序列;
串并行转换模块102,用于从存储器中获取第一变换域序列中第m个位置的数据,将获取的第一变换域序列中第m个位置的数据分别输入对应的乘累加阵列中的各行;
乘累加单元,用于根据输入乘累加单元所在行的第一变换域序列中第m个位置的数据和输入乘累加单元所在列的第二变换域序列中的数据进行乘累加;
其中,第一变换域序列包括M个位置的数据,M表示第一变换域序列的数据位宽;m=1,2,…,M。
需要说明的是,FFT产生的数据为多个第一变换域序列。每个变换域序列包括M个位置的数据;M为正整数,表示第一变换域序列的数据位宽。第一变换域序列的数据位宽,即FFT的数据位宽。在基于冯·诺依曼体系结构的FFT系统中,M一般为2的幂,例如为128,但M的取值可以不限于2的幂。
具体地,存储器101与串并行转换模块102连接,串并行转换模块102与乘累加阵列103连接。
存储器101采用转置静态随机访问存储器。
转置静态随机访问存储器(TransposeSRAM,简称TRAM),能实现对输入的数据的转置输出。
转置静态随机访问存储器一般为阵列式结构,数据的写入方向和读出方向不同,当按行的方向写入数据时,则按列的方向读出数据;当按列的方向写入数据时,则按行的方向读出数据。因此,能实现对输入的数据的转置输出。
可以理解的是,将第一变换域序列作为一行写入转置静态随机访问存储器,则TRAM的列为多个第一变换域序列中某个位置的数据,从TRAM读出的是某一列的全部或部分数据。
而现有技术中存储器为SRAM;对于SRAM,数据的写入方向和读出方向相同,即按行的方向写入数据时,只能按行的方向读出数据;当按列的方向写入数据时,只能按列的方向读出数据。将第一变换域序列作为一行写入转置静态随机访问存储器,则从SRAM读出的是某一第一变换域序列。
串并行转换模块102以比特串行的方式从存储器101中读出数据,即获取第一变换域序列中第m个位置的数据。
需要说明的是,FFT产生的数据为多组第一变换域序列,每组包括多个第一变换域序列。乘累加的任务是,对于第一变换域序列的每个位置,将同一组第一变换域序列中各第一变换域序列中该位置的数据,与第二变换域序列中对应的数据进行相乘,并将相乘结果进行累加。
乘累加阵列103为阵列式结构,包括阵列式排列的多个乘累加单元。乘累加阵列103中,每行的各乘累加单元的输入相同,每列的各乘累加单元的输入相同。乘累加阵列103中,行的输入为第一变换域序列中某一位置的数据,列的输入为第二变换域序列中某一位置的数据。
可以理解的是,串并行转换模块102获取多个第一变换域序列中第m个位置的数据,并将每个第一变换域序列中第m个位置的数据输入乘累加阵列103中对应的一行乘累加单元,实现将获取的多个第一变换域序列中第m个位置的数据并行输入乘累加阵列103的各行。串并行转换模块采用流水线方式工作,即对每次从存储器101中读出的数据进行流水线方式的串并行转换。
每个乘累加(multiply-and-accumulation,简称MAC)单元,用于对一组第一变换域序列中各第一变换域序列中某一位置的数据和第二变换域序列中对应的数据进行乘累加。
对于乘累加单元,它的两个输入为输入该乘累加单元所在行的第一变换域序列中第m个位置的数据和该输入乘累加单元所在列的第二变换域序列中的数据。该乘累加单元,根据当前输入的两个数据进行相乘,并将当前相乘的结果和上一次乘累加的结果相加,获得当前乘累加的结果并保存。乘累加单元采用流水线方式工作。
因此,乘累加阵列103中不同行的乘累加单元,能并行地对不同组第一变换域序列中各第一变换域序列中某一位置的数据与对应的第二变换域序列中的数据进行乘累加。
可以理解的是,乘累加阵列103中,也可以是行的输入为第二变换域序列中某一位置的数据,列的输入为第一变换域序列中某一位置的数据。
本发明实施例通过转置静态随机访问存储器将第一变换域序列转置输出,将多个第一变换域序列中某个位置的数据通过串并行转换模块并行输入乘累加阵列的各行,使得乘累加阵列的各行分别对不同组第一变换域序列和对应的第二变换域序列中的数据进行乘累加,使得从存储器中读出的每个数据都能用于多个乘累加单元的乘累加计算,实现了数据的复用,减少了对存储器中数据的读取次数,能提高数据处理效率、明显降低乘累加处理器的功耗。当第一变换域序列的数据量很大无法全部放在存储器中时,能减少从外部存储器中读取数据的次数,能提高数据处理效率、明显降低乘累加处理器的功耗。
基于上述各实施例的内容,乘累加单元为N×N个,构成N行N列的阵列;N≤M。
需要说明的是,FFT的数据位宽为M时,现有技术中基于SRAM的乘累加处理器包括M个MAC单元,M个MAC单元为一行或一列的排列方式。M个MAC单元,分别用于对一组第一变换域序列中M个位置的数据和对应的第二变换域序列中的数据进行乘累加。任意两个MAC单元的两个输入均不相同。
基于TRAM的乘累加处理器,可以将多个MAC单元设计为N×N的阵列,N≤M。
若处理器的计算能力足够强,N=M,则可以将复杂的多次乘累加同时并行完成。通常情况下,为了减少并发的乘累加,可以令N<M,将第一变换域序列中各位置的数据的乘累加分为多次完成,从而减少存储器的位宽和乘累加阵列的最大位宽。
例如,M=128时,基于SRAM的乘累加处理器包括1×128个MAC单元,并发的乘法为128个;基于TRAM的乘累加处理器可以包括16×16个MAC单元,并发的乘法为256个;在并发的乘法个数相差不大的情况下,MAC阵列的位宽降低了8倍,从而能减少乘累加处理器的面积。根据实验结果,现有技术对存储器的读取次数为本发明实施例的16倍、对外部存储的读取次数为本发明实施例的12.9倍、功耗为本发明实施例的1.26倍、面积为本发明实施例的1.04倍。
本发明实施例采用基于SRAM的乘累加处理器,能减少乘累加阵列的位宽,减少乘累加处理器的面积、降低功耗。
基于上述各实施例的内容,N根据M确定。
具体地,为了便于进行乘累加计算,N根据M确定。为了更有效地利用每个MAC单元,M可以为N的整数倍。
本发明实施例通过根据M确定N,能更有效地利用MAC单元,减少乘法的次数,提高计算效率。
基于上述各实施例的内容,存储器具体用于:依次写入各个第一变换域序列并保存,直至写入全部第一变换域序列。
具体地,向TRAM写入数据时,以比特串行的方式每次写入一个第一变换域序列各位置的数据并保存,直至写入全部第一变换域序列各位置的数据,从而实现对全部第一变换域序列的存储。
因此,从TRAM读出数据时,能读出第一变换域序列中第m个位置的数据。每次从TRAM中最多读出N个第一变换域序列中第m个位置的数据。读出的N个第m个位置的数据所属的第一变换域序列,分别属于FFT产生的N组第一变换域序列。
本发明实施例通过向TRAM写入第一变换域序列,从TRAM中读出多个第一变换域序列中某一位置的数据,从而能使得从存储器中读出的每个数据都能用于多个乘累加单元的乘累加计算,实现了数据的复用,减少了对存储器中数据的读取次数,能提高数据处理效率、明显降低乘累加处理器的功耗。
基于上述各实施例的内容,串并行转换模块包括N个串并行转换单元;串并行转换模块具体用于:从存储器中读出n个第一变换域序列中第m个位置的数据,将读出的每个第一变换域序列中第m个位置的数据通过对应的串并行转换单元输入对应的乘累加阵列中的一行乘累加单元;其中,1≤n≤N。
可以理解的时,为了实现串并行转换模块102将获取的第一变换域序列中第m个位置的数据分别输入对应的乘累加阵列中的各行,乘累加阵列103包括N行乘累加单元时,相应地,串并行转换模块102包括N个串并行转换单元。每个串并行转换单元与一行乘累加单元连接,与该串并行转换单元连接的一行乘累加单元,为该串并行转换单元对应的乘累加阵列中的一行乘累加单元。
串并行转换模块从存储器中读出n个第一变换域序列中第m个位置的数据,1≤n≤N。
将读出的n个第一变换域序列中第m个位置的数据,分别通过n个串并行转换单元输入每个串并行转换单元对应的乘累加阵列中的一行乘累加单元。
读出的n个第m个位置的数据所属的第一变换域序列,分别属于FFT产生的n组第一变换域序列。读出的每组第一变换域序列中的第一变换域序列中第m个位置的数据,分别对应一个串并行转换单元。
本发明实施例通过将多个第一变换域序列中某个位置的数据,通过串并行转换模块中的多个串并行转换单元并行输入乘累加阵列的各行,使得从存储器中读出的每个数据都能用于多个乘累加单元的乘累加计算,实现了数据的复用,减少了对存储器中数据的读取次数,能提高数据处理效率、明显降低乘累加处理器的功耗。
基于上述各实施例的内容,串并行转换单元用于将输入的第一变换域序列中第m个位置的数据扩展为预设的比特数,并将扩展后的第一变换域序列中第m个位置的数据输入对应的乘累加阵列中的一行乘累加单元;其中,预设的比特数大于或等于第m个位置的数据的比特数。
具体地,FFT的计算精度为K比特,即乘累加的计算精度为K比特,第m个位置的数据的比特数也为K比特,第二变换域序列中的每个数据的比特数也为K比特。为了在不同计算精度下都能使用同一乘累加处理器,提高乘累加处理器的使用范围,可以在将第一变换域序列中第m个位置的数据输入串并行转换单元后,串并行转换单元将第一变换域序列中第m个位置的数据的位数由K比特扩展为预设的比特数。
可以理解的是,预设的比特数大于或等于第m个位置的数据的比特数K。
串并行转换单元将第一变换域序列中第m个位置的数据的位数由K比特扩展为预设的比特数后,将展后的第一变换域序列中第m个位置的数据输入对应的乘累加阵列中的一行乘累加单元。
例如,乘累加的计算精度,即乘累加计算中乘法的计算精度,通常为1-12比特,为了使乘累加处理器能用于1-12比特精度的乘法,预设的比特数可以为需要的最大乘法精度12比特。
本发明实施例通过串并行转换单元将输入的数据扩展为预设的比特数后,输入对应的乘累加阵列中的一行乘累加单元,使得乘累加处理器能支持的最大乘法精度为预设的比特数,从而能提高乘累加处理器能的使用范围和处理能力。
图2为本发明实施例提供的乘累加处理器中串并行转换单元的处理流程示意图。基于上述各实施例的内容,如图2所示,串并行转换单元包括:第一寄存器和第二寄存器;第一寄存器201,用于保存第k个时钟周期的左移位结果;第k个时钟周期的左移位结果,是根据第(k-1)个周期的左移位结果和第k个时钟周期输入的第一变换域序列中第m个位置的数据中的第k比特进行左移位,并扩展为预设的比特数后生成的;第二寄存器202,用于将第K个时钟周期的左移位结果作为扩展后的第一变换域序列中第m个位置的数据并保存;其中,第一寄存器和第二寄存器的位数,大于或等于预设的比特数;k=1,2,…,K,K表示第m个位置的数据的比特数。
具体地,对于TRAM中待读出的每个数据,每个时钟周期按顺序依次从TRAM中读出该数据中的1比特数据,输入对应的串并行转换单元中的第一寄存器。对于每个第一变换域序列中第m个位置的数据,在第k个时钟周期,串并行转换模块读出该数据中的第k比特,并输入该数据对应的串并行转换单元中的第一寄存器。
对于k个时钟周期,根据移动使能标志,对第(k-1)个周期的左移位结果进行1个比特位的左移位后,将第一变换域序列中第m个位置的数据中的第k比特写入对第(k-1)个周期的左移位结果进行左移位后的最右1个比特位,将扩展后的结果作为第k个时钟周期的左移位结果。
可以理解的是,对于第1个周期,使用符号位标记将写入1比特的数据扩展为预设的比特数。
可以理解的是,第0个周期的左移位结果为0;第一变换域序列中第m个位置的数据为K比特,则需要进行K个时钟周期的左移位,从而将第一变换域序列中第m个位置的数据扩展为预设的比特数。
进行K个时钟周期的左移位,获得第K个时钟周期的左移位结果,将第一寄存器中保存的第K个时钟周期输入第二寄存器保存,第二寄存器将第K个时钟周期的左移位结果作为扩展后的第一变换域序列中第m个位置的数据保存后,输出至对应的乘累加阵列中的一行乘累加单元。
可以理解的是,第一寄存器和第二寄存器的位数,大于或等于预设的比特数。为了避免资源浪费,第一寄存器和第二寄存器的位数可以等于预设的比特数。
例如,预设的比特数为12比特,第一寄存器和第二寄存器均为12bit寄存器。
图3本发明实施例提供的乘累加处理器中乘累加单元的处理流程示意图。如图3所示,相应地,将预设的比特数的扩展后的第一变换域序列中第m个位置的数据从行方向输入乘累加单元,每个时钟周期,从列方向依次向该乘累加单元输入扩展后的第一变换域序列中第m个位置的数据对应的第二变换序列中的数据中的1比特数据,将该1比特数据与扩展后的第一变换域序列中第m个位置的数据通过移位累加方式实现比特串行乘法,乘法结果保存在第三寄存器中,并将本时钟周期获得的乘法结果与第四寄存器中的上一时钟周期乘累加结果进行相加,获得本时钟周期的乘法结果,并保存在第四寄存器中。x表示扩展后的第一变换域序列中第m个位置的数据,y表示的对应的第二变换序列中的数据中的1比特数据。
需要说明的是,为了保证乘法的正确进行,第三寄存器和第四寄存器的位数,均大于第一寄存器和第二寄存器的位数。第四寄存器的位数可以大于或等于第三寄存器。
例如,第三寄存器和第四寄存器的位数,可以均为第一寄存器和第二寄存器的位数的2倍;预设的比特数为12比特,第一寄存器和第二寄存器均为12bit寄存器,第三寄存器和第四寄存器均为24bit寄存器。
由于第三寄存器和第四寄存器的位数大于预设的比特数,获得一组第一变换域序列中各第一变换域序列中该位置的数据,与第二变换域序列中对应的数据进行乘累加的结果后,从第四寄存器中输出该结果之前,通过对该结果进行移位选择得到比特数为预设的比特数的结果,作为输出的乘累加结果。
本发明实施例通过每个周期输入1比特的数据至串并行转换单元,在低比特精度的情况下,向串并转换模块输入第一变换域序列中的数据可以小于比特精度,一方面灵活支持了乘累加阵列两个方向的1-K比特精度,另一方面避免了直接使用K比特输入造成的存储器带宽、功耗等的浪费。
以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (7)

1.一种乘累加处理器,其特征在于,包括:存储器、串并行转换模块和乘累加阵列;
所述乘累加阵列包括阵列式排列的多个乘累加单元;
所述存储器为转置静态随机访问存储器,用于存储第一变换域序列;
所述串并行转换模块,用于从所述存储器中获取第一变换域序列中第m个位置的数据,将获取的第一变换域序列中第m个位置的数据分别输入对应的所述乘累加阵列中的各行;
所述乘累加单元,用于根据输入所述乘累加单元所在行的第一变换域序列中第m个位置的数据和输入所述乘累加单元所在列的第二变换域序列中的数据进行乘累加;
其中,所述第一变换域序列包括M个位置的数据,M表示第一变换域序列的数据位宽;m=1,2,…,M。
2.根据权利要求1所述的乘累加处理器,其特征在于,所述乘累加单元为N×N个,构成N行N列的阵列;N≤M。
3.根据权利要求2所述的乘累加处理器,其特征在于,N根据M确定。
4.根据权利要求2或3所述的乘累加处理器,其特征在于,所述存储器具体用于:
依次写入各个第一变换域序列的数据,直至写入全部第一变换域序列。
5.根据权利要求4所述的乘累加处理器,其特征在于,所述串并行转换模块包括N个串并行转换单元;
所述串并行转换模块具体用于:从所述存储器中读出n个第一变换域序列中第m个位置的数据,将读出的每个第一变换域序列中第m个位置的数据通过对应的串并行转换单元输入对应的所述乘累加阵列中的一行乘累加单元;
其中,1≤n≤N。
6.根据权利要求5所述的乘累加处理器,其特征在于,所述串并行转换单元用于将输入的第一变换域序列中第m个位置的数据扩展为预设的比特数,并将扩展后的第一变换域序列中第m个位置的数据输入对应的所述乘累加阵列中的一行乘累加单元;
其中,所述预设的比特数大于或等于第m个位置的数据的比特数。
7.根据权利要求6所述的乘累加处理器,其特征在于,所述串并行转换单元包括:第一寄存器和第二寄存器;
所述第一寄存器,用于保存第k个时钟周期的左移位结果;所述第k个时钟周期的左移位结果,是根据第(k-1)个周期的左移位结果和第k个时钟周期输入的第一变换域序列中第m个位置的数据中的第k比特进行左移位,并扩展为所述预设的比特数后生成的;
所述第二寄存器,用于将第K个时钟周期的左移位结果作为扩展后的第一变换域序列中第m个位置的数据并保存;
其中,所述第一寄存器和所述第二寄存器的位数,大于或等于所述预设的比特数;k=1,2,…,K,K表示第m个位置的数据的比特数。
CN201811311471.9A 2018-11-06 2018-11-06 乘累加处理器 Active CN109669666B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811311471.9A CN109669666B (zh) 2018-11-06 2018-11-06 乘累加处理器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811311471.9A CN109669666B (zh) 2018-11-06 2018-11-06 乘累加处理器

Publications (2)

Publication Number Publication Date
CN109669666A CN109669666A (zh) 2019-04-23
CN109669666B true CN109669666B (zh) 2022-12-16

Family

ID=66142501

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811311471.9A Active CN109669666B (zh) 2018-11-06 2018-11-06 乘累加处理器

Country Status (1)

Country Link
CN (1) CN109669666B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113434113B (zh) * 2021-06-24 2022-03-11 上海安路信息科技股份有限公司 基于静态配置数字电路的浮点数乘累加控制方法及系统
CN116136752B (zh) * 2023-04-19 2023-06-30 上海登临科技有限公司 阵列输入策略的确定方法和系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101827779B1 (ko) * 2016-12-05 2018-02-09 포항공과대학교 산학협력단 디지털-아날로그 변환기와 아날로그-디지털 변환기를 이용한 비트 직렬 곱셈누적 연산기
CN107818367A (zh) * 2017-10-30 2018-03-20 中国科学院计算技术研究所 用于神经网络的处理系统和处理方法
CN108537330A (zh) * 2018-03-09 2018-09-14 中国科学院自动化研究所 应用于神经网络的卷积计算装置及方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4408712B2 (ja) * 2004-01-26 2010-02-03 富士通マイクロエレクトロニクス株式会社 多倍長データ積和演算処理回路及びモンゴメリ積和剰余演算回路

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101827779B1 (ko) * 2016-12-05 2018-02-09 포항공과대학교 산학협력단 디지털-아날로그 변환기와 아날로그-디지털 변환기를 이용한 비트 직렬 곱셈누적 연산기
CN107818367A (zh) * 2017-10-30 2018-03-20 中国科学院计算技术研究所 用于神经网络的处理系统和处理方法
CN108537330A (zh) * 2018-03-09 2018-09-14 中国科学院自动化研究所 应用于神经网络的卷积计算装置及方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
BP神经网络图像压缩算法乘累加单元的FPGA设计;杨隽等;《现代电子技术》;20091001(第19期);全文 *

Also Published As

Publication number Publication date
CN109669666A (zh) 2019-04-23

Similar Documents

Publication Publication Date Title
US9317481B2 (en) Data access method and device for parallel FFT computation
CN106846235B (zh) 一种利用NVIDIA Kepler GPU汇编指令加速的卷积优化方法及系统
US20230068450A1 (en) Method and apparatus for processing sparse data
CN109669666B (zh) 乘累加处理器
CN110659445B (zh) 一种运算装置及其处理方法
CN111737638A (zh) 基于傅里叶变换的数据处理方法及相关装置
CN109902821B (zh) 一种数据处理方法、装置及相关组件
Chowdhury et al. A computational model for tensor core units
CN112929300A (zh) 一种数据处理装置、方法、基站和存储介质
CN112446007A (zh) 一种矩阵运算方法、运算装置以及处理器
KR102376492B1 (ko) 실수값을 입력으로 하는 고속푸리에 변환장치 및 방법
CN111985626B (zh) 一种加速rnn网络的系统、方法及存储介质
US9268744B2 (en) Parallel bit reversal devices and methods
Deryabin et al. High performance parallel computing in residue number system
US6728742B1 (en) Data storage patterns for fast fourier transforms
CN109614149B (zh) 对称矩阵的上三角部分存储装置和并行读取方法
CN114003198B (zh) 内积处理部件、任意精度计算设备、方法及可读存储介质
CN112889072A (zh) 用于降低功率消耗的系统、方法和装置
CN115310037A (zh) 矩阵乘法计算单元、加速单元、计算系统和相关方法
CN109558638B (zh) Fft处理器
CN109635236B (zh) 对称矩阵的下三角部分存储装置和并行读取方法
CN109614582B (zh) 自共轭矩阵的下三角部分存储装置和并行读取方法
Bi et al. Pipelined hardware structure for sequency-ordered complex Hadamard transform
CN113128688A (zh) 通用型ai并行推理加速结构以及推理设备
Malashri et al. Low power and memory efficient FFT architecture using modified CORDIC algorithm

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