CN116594588A - 一种通用的存内矩阵-张量处理器及其操作方法 - Google Patents

一种通用的存内矩阵-张量处理器及其操作方法 Download PDF

Info

Publication number
CN116594588A
CN116594588A CN202310594138.8A CN202310594138A CN116594588A CN 116594588 A CN116594588 A CN 116594588A CN 202310594138 A CN202310594138 A CN 202310594138A CN 116594588 A CN116594588 A CN 116594588A
Authority
CN
China
Prior art keywords
data
matrix
bit
input
vector
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
Application number
CN202310594138.8A
Other languages
English (en)
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.)
Huazhong University of Science and Technology
Original Assignee
Huazhong 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 Huazhong University of Science and Technology filed Critical Huazhong University of Science and Technology
Priority to CN202310594138.8A priority Critical patent/CN116594588A/zh
Publication of CN116594588A publication Critical patent/CN116594588A/zh
Pending legal-status Critical Current

Links

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/544Methods 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 for evaluating functions by calculation
    • G06F7/5443Sum of products
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

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

Abstract

本发明提供了一种通用的存内矩阵‑张量处理器及其操作方法,属于微电子器件及电路领域,处理器具体为:全局缓冲区存储输入矢量及输出矢量;存储矩阵处理单元将存储矩阵各运算数据转换为混合进制数据;将各混合进制数据按位进行整合,按照高低位顺序存储在存储器阵列;输入拆分单元将输入矢量中的各运算数据转换为混合进制数据;将各混合进制数据按位整合,按照高低位顺序输入到存储器阵列中;存储器阵列将经过转换整合的输入矢量与存储矩阵进行乘法运算;输出缓冲区存储存储器阵列输出的乘法运算结果;移位累加单元将乘法运算结果进行移位和累加操作。本发明解决了现有存内计算单元无法针对不同的应用实现精度可调计算的技术问题。

Description

一种通用的存内矩阵-张量处理器及其操作方法
技术领域
本发明属于微电子器件及电路领域,更具体地,涉及一种通用的存内矩阵-张量处理器及其操作方法。
背景技术
由于当前神经网络模型急剧增长的规模大小,传统的计算机中分离的计算模块和存储单元之间的数据传输速率成为瓶颈。而基于各种非易失存储器的存内计算架构是一种具有更高运算能效,低运算延时,低运算时间复杂度的新兴计算架构,最大限度地减少了数据传输。
另外,相比较矩阵,张量是一种更广义的数学实体,可以表示不同维度和类型的数据,并且可以更加灵活地描述多重线性映射。张量计算具有比矩阵计算更高的算力和能效,广泛应用于人工智能和高性能计算领域。
然而,由于器件非理想效应带来的精度损失,大多现有的存内计算架构只支持低精度的定点格式下的矩阵计算。因此,为了使得存内计算可以根据不同的计算任务和计算精度灵活地选择矩阵计算模式和张量计算模式,迫切地需要一种通用的存内矩阵-张量处理器及其操作方法。
发明内容
针对现有技术的缺陷,本发明提供了一种通用的存内矩阵-张量处理器及其操作方法,其目的在于改善存内计算架构的通用性,根据不同的计算任务和计算精度灵活地选择矩阵计算模式和张量计算模式。
为实现上述目的,一方面,本发明提供了一种通用的存内矩阵-张量处理器,包括由多个矩阵计算模块并行调用形成的张量计算模块;
矩阵计算模块包括:全局缓冲区、存储矩阵处理单元、存储器阵列、输入拆分单元、输出缓冲区和移位累加单元;全局缓冲区的输入端连接移位累加单元,其输出端连接所述输入拆分单元;输出拆分单元的输出端和存储矩阵处理单元的输出端连接存储器阵列的输入端;存储器阵列的输出端连接输出缓冲区的输入端;输出缓冲区的输出端连接移位累加单元;
全局缓冲区用于存储输入矢量及通过移位累加单元计算得到的输出矢量;
存储矩阵处理单元用于基于运算数据的拆分转换规则,将存储矩阵各运算数据分别转换为M1=p1+k1的混合进制数据,得到转换后的存储矩阵;将转换后的存储矩阵中的各混合进制数据按位进行整合,得到1个符号位矩阵、p1-1个高位矩阵和k1个低位矩阵,并按照高低位顺序依次存储在存储器阵列;
输入拆分单元用于基于运算数据的拆分转换规则,将输入矢量中的各运算数据分别转换为M2=p2+k2的混合进制数据,得到转换后的输入矢量;将转换后的输入矢量中的各混合进制数据按位整合,得到1个符号位矢量、p2-1个高位矢量和k2个低位矢量,并按照高低位顺序依次输入到M1个存储器阵列中;存储器阵列设置为M1个,且每个存储器阵列用于存储一个按位整合的存储矩阵;整个存储器阵列用于将M2个经过转换整合的输入矢量依次与M1个经过转换整合的存储矩阵进行乘法运算;
输出缓冲区用于存储存储器阵列输出的乘法运算结果;移位累加单元用于将输出缓冲区存储的乘法运算结果进行移位和累加操作,获取输出矢量;其中,输出矢量为输入矢量与存储矩阵的矢量矩阵的乘法运算结果。
进一步优选地,运算数据的拆分转换规则为:
将浮点数格式转换成定点数格式,再将定点数格式转换为L比特的二进制补码数据;
将二进制补码数据中的前p位数据按二进制位进行拆分,得到1个符号位数据和p-1个高位数据;
将二进制补码数据中后L-p位数据按顺序拆分为k个长度分别为l1、l2、…、lk的二进制数据后,转换为对应的十进制数,得到k个低位数据;
从高位到低位依次排列1个符号位数据、p-1个高位数据和k个低位数据,记为长度为M=p+k的混合进制数据;
其中,
进一步优选地,浮点数格式转换为二进制补码数据的方法,包括以下步骤:
记所有浮点数中最大的指数为Emax,所有浮点数的尾数根据对应的指数E与Emax之间的差值ES=Emax-E右移Es位,并在空余位进行补0;
在尾数的最高位前面加上相应的符号位,并转换成二进制补码的形式;
根据所需精度在二进制补码的对应位进行截断,保留前S位。
进一步优选地,存储器阵列为十字交叉结构,各存储器件位于十字交叉点上;
所述存储器阵列包括二值存储器阵列和多值存储器阵列;
二值存储器阵列用于存储符号位矩阵和高位矩阵;多值存储器阵列用于存储低位矩阵。
进一步优选地,存储器阵列中的存储器包括但不限于忆阻器、阻变存储器、相变存储器、自选转移力矩-磁随机存储器、NOR Flash器件或NAND Flash器件。
进一步优选地,存内矩阵-张量处理器还包括与全局缓冲区、存储矩阵处理单元、存储器阵列、输入拆分单元、输出缓冲区和移位累加单元均连接的控制模块;所述控制模块用于在运算过程中,根据张量的深度配置矩阵计算模块的数量,以并行调用多个矩阵计算模块;用于根据数据格式配置相应的拆分规则和存储器阵列的数量,以并行调用多个存储器阵列;用于对全局缓冲区、存储器阵列、输入拆分单元、输出缓冲区以及移位累加单元的工作时序进行控制。
进一步优选地,控制模块还包括多路选择器、数模转换器和模数转换器;
多路选择器用于选通存储器阵列中对应的行和列,控制存储器阵列的输入和输出;
数模转换器用于在存储器阵列进行乘法运算时,将输入拆分单元输入的经过转换整合的输入矢量转换为电压矢量,按从高位到低位的顺序依次输入到存储器阵列中执行乘法运算;
将拆分后的输入矢量转换为电压脉冲,按从高位到地位的顺序依次输入到存储器阵列中执行乘法运算;
模数转换器用于将存储器阵列输出的乘法运算结果转换为数字量。
另一方面,本发明基于上述的存内矩阵-张量处理器,提供了对应的操作方法,包括以下步骤:
基于运算数据的拆分转换规则,将存储矩阵各运算数据分别转换为M1=p1+k1的混合进制数据,得到转换后的存储矩阵;将转换后的存储矩阵中的各混合进制数据按位进行整合,得到1个符号位矩阵、p1-1个高位矩阵和k1个低位矩阵,并按照高低位顺序依次存储在存储器阵列;
采用全局缓冲区将输入矢量输入至输入拆分单元,基于运算数据的拆分转换规则,将输入矢量中的各运算数据分别转换为M2=p2+k2的混合进制数据,得到转换后的输入矢量;将转换后的输入矢量中的各混合进制数据按位整合,得到1个符号位矢量、p2-1个高位矢量和k2个低位矢量,并按照高低位顺序依次输入到M1个存储器阵列中;
将M2个经过转换整合的输入矢量依次与M1个经过转换整合的存储矩阵进行乘法运算;
将乘法运算结果通过输入缓冲区传输至移位累加单元,对乘法运算结果进行移位和累加操作,获取输出矢量传输至全局缓冲区中;其中,输出矢量为输入矢量与存储矩阵的矢量矩阵的乘法运算结果。
进一步优选地,运算数据的拆分转换规则为:
将浮点数格式转换成定点数格式,再将定点数格式转换为L比特的二进制补码数据;
将二进制补码数据中的前p位数据按二进制位进行拆分,得到1个符号位数据和p-1个高位数据;
将二进制补码数据中后L-p位数据按顺序拆分为k个长度分别为l1、l2、…、lk的二进制数据后,转换为对应的十进制数,得到k个低位数据;
从高位到低位依次排列1个符号位数据、p-1个高位数据和k个低位数据,记为长度为M=p+k的混合进制数据;
其中,
进一步优选地,浮点数格式转换为二进制补码数据的方法,包括以下步骤:
记所有浮点数中最大的指数为Emax,所有浮点数的尾数根据对应的指数E与Emax之间的差值ES=Emax-E右移Es位,并在空余位进行补0;
在尾数的最高位前面加上相应的符号位,并转换成二进制补码的形式;
根据所需精度在二进制补码的对应位进行截断,保留前S位。
进一步优选地,若浮点数存储矩阵的最大指数为Em,浮点数输入矢量的最大指数为Ev,则移位累加单元输出的输出矢量需乘以补偿系数
总体而言,通过本发明所构思的以上技术方案与现有技术相比,具有以下
有益效果:
本发明提供了一种通用的存内矩阵-张量处理器及其操作方法,其中,基于运算数据的拆分转换规则对参与运算的输入矢量和存储矩阵中的运算数据进行拆分转换为符号位数据、高位数据和低位数据后,基于存储器阵列进行矢量矩阵乘运算,其中存储器阵列的数量可根据所需计算精度进行调整,实现了精度可变的矢量-矩阵运算,可支持常见的定点、浮点数格式,可以针对不同计算任务配置相应的精度,解决了现有存内计算单元无法针对不同的应用实现精度可调计算的技术问题。
本发明所提供的通用的存内矩阵-张量处理器及其操作方法,基于二值存储器阵列和多值存储器阵列进行矢量矩阵乘法运算,采用二值存储器阵列存储符号位矩阵和高位矩阵,采用多值存储器阵列存储低位矩阵,对于存内计算,二值计算的准确度显著高于多值计算,而多值计算的能效显著高于二值计算。本发明使得对计算有显著影响的数据位由二值单元进行计算以保障计算精度,对计算结构影响较小的数据位由多值单元进行计算,有效降低了器件的非理想效应对计算结果的影响,同时保证了计算的能效,可以实现高鲁棒性,高能效的精度可调存内计算。
本发明提供了一种通用的存内矩阵-张量处理器及其操作方法,可针对张量的深度N来决定并行调用N个矩阵计算模块,其中当N=1时,将通用的存内矩阵-张量处理器配置成矩阵计算模式;当N>1时,将通用的存内矩阵-张量处理器配置成张量计算模式;可以根据不同的计算任务和计算精度灵活地选择矩阵计算模式和张量计算模式,解决了现有存内计算单元无法执行张量计算的技术问题,可用于人工智能和高性能计算领域,并且相对现有计算系统,具有能效的显著优势。
附图说明
图1是本发明实施例1提供的通用的存内矩阵-张量处理器的结构示意图;
图2是本发明实施例1提供的存储器阵列的结构示意图;
图3是本发明实施例1提供的采用图2所示存储器阵列实现的输入矢量与存储矩阵乘法运算的示意图;
图4是本发明实施例2提供的通用存内矩阵-张量处理方法流程图;
图5是本发明实施例2提供的浮点数转换成存内计算格式的过程示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
实施例1
如图1所示,本发明提供一种通用的存内矩阵-张量处理器,包括由多个矩阵计算模块并行调用形成的张量计算模块;其中,矩阵计算模块有N个,N由张量的深度决定;其中,矩阵计算模块包括:全局缓冲区、存储矩阵处理单元、存储器阵列、输入拆分单元、输出缓冲区以及移位累加单元;
全局缓冲区的输出端与输入拆分单元的输入端相连,其输入端与移位累加单元的输出端相连;全局缓冲区存储两部分内容,一部分是输入矢量,另一部分是通过移位累加单元计算得到的输出矢量;
存储矩阵处理单元用于基于运算数据的拆分转换规则,将存储矩阵中的各运算数据分别转换为M1=p1+k1的混合进制数据,得到转换后的存储矩阵;将转换后的存储矩阵中的各混合进制数据按位进行整合,得到1个符号位矩阵、p1-1个高位矩阵和k1个低位矩阵,并按照高低位顺序分别存储在对应的存储器阵列中;一个存储器阵列存储一个矩阵;其中p1和k1根据所需计算精度可调;
具体地,存储器阵列如图2和图3所示为十字交叉阵列;
进一步优选地,存内矩阵-张量处理器还包括与全局缓冲区、存储矩阵处理单元、存储器阵列、输入拆分单元、输出缓冲区和移位累加单元均连接的控制模块;所述控制模块用于在运算过程中,根据张量的深度配置矩阵计算模块的数量,以并行调用多个矩阵计算模块;用于根据数据格式配置相应的拆分规则和存储器阵列的数量,以并行调用多个存储器阵列;用于对全局缓冲区、存储器阵列、输入拆分单元、输出缓冲区以及移位累加单元的工作时序进行控制。
如图3所示,控制模块还包括多路选择器、数模转换器和模数转换器;多路选择器用于选通上述存储器阵列中对应的行和列,控制存储器阵列的输入和输出;在执行乘法运算时,数模转换器将所述输入拆分单元输入的数据转换为电压矢量,按照高、低位顺序依次输入到存储器阵列中执行乘法运算,存储器阵列输出的电流矢量经模数转换器后转换为数字量,即为乘法运算结果,输出到输出缓冲区中;
输入拆分单元用于基于运算数据的拆分转换规则,将输入矢量中的各运算数据分别转换为M2=p2+k2的混合进制数据,得到转换后的输入矢量;将转换后的输入矢量中的各混合进制数据按位进行整合,得到1个符号位矢量、p2-1个高位矢量和k2个低位矢量,并按照高低位顺序依次输入到M1个存储器阵列中;需要说明的是,输入矢量和存储矩阵的精度可以一致也可以不一致;
存储器阵列设置为M1个,且每个存储器阵列用于存储一个按位整合的存储矩阵;整个存储器阵列用于将M2个经过转换整合的输入矢量依次与M1个经过转换整合的存储矩阵进行乘法运算;
输出缓冲区用于存储各存储器阵列中进行的M2个输入矢量依次与M1个存储矩阵之间的乘法运算结果;
移位累加单元用于将输出缓冲区中存储的乘法运算结果进行移位和累加操作,得到输入矢量与所述存储矩阵的矢量矩阵乘法运算结果。
具体地,上述存储器阵列实现的输入矢量与存储矩阵乘法运算所图3所示;M2=p2+k2个输入矢量以电压脉冲的形式按高低位顺序依次并行地输入到M1个存储器阵列中,其中电压脉冲的脉宽都相同,电压脉冲的幅值与输入矢量的大小成正比;而M1个存储器阵列并行地进行乘法运算,乘法运算结果存入输出缓冲区中,进而通过两级移位累加单元还原得到输入矢量与所述存储矩阵的矢量矩阵乘法运算结果;
进一步地,上述两级移位累加单元包括第一级移位累加单元和第二级移位累加单元;其中第一级移位累加单元有M1个,每个第一级移位累加单元用于对M2个输入矢量与相应存储矩阵输出的乘法运算结果进行移位与累加操作;第二级移位累加单元用于对M1个上述第一级移位累加单元的输出结果进行移位与累加操作,还原得到输入矢量与所述存储矩阵的矢量矩阵乘法运算结果。
实施例2
本发明提供了一种通用的存内矩阵-张量操作方法,如图4所示,包括以下步骤:
S1:基于运算数据的拆分转换规则,将存储矩阵中的各运算数据分别转换为M1=p1+k1的混合进制数据,得到转换后的存储矩阵;将转换后的存储矩阵中的各混合进制数据按位进行整合,得到1个符号位矩阵、p1-1个高位矩阵和k1个低位矩阵,并按照高低位顺序分别存储在对应的存储器阵列中;一个存储器阵列存储一个矩阵,用于进行运算的存储器阵列的个数为M1=p1+k1个,p1和k1均为整数,其中p1和k1根据所需计算精度可调;
S2:全局缓冲区将输入矢量送到输入拆分单元中;基于运算数据的拆分转换规则,输入拆分单元将输入矢量中的各运算数据分别转换为M2=p2+k2的混合进制数据,得到转换后的输入矢量;将转换后的输入矢量中的各混合进制数据按位进行整合,得到1个符号位矢量、p2-1个高位矢量和k2个低位矢量,并按照高低位顺序依次并行地输入到M1个存储器阵列中;M1个存储器阵列并行地与上述依次输入的转换后的输入矢量进行乘法运算,乘法运算结果输入到输出缓冲区中;
需要说明的是,上述输入矢量和存储矩阵精度可以一致也可以不一致;
S3:移位累加单元将输出缓存中存储的输出结果分级进行移位和累加操作,在分别对高位矩阵输出的乘法运算结果和低位矩阵输出的乘法运算结果进行移位与累加操作后,再将所得的移位与累加操作所得的结果进一步进行移位与累加操作;移位累加单元将还原后的输出矢量存入全局缓冲区中。
其中,上述运算数据的拆分转换规则为:将浮点数格式转换成定点数格式,所述二进制补码数据格式也叫做存内计算格式;将所述存内计算格式数据中的前p位数据按二进制位进行拆分,得到1个符号位数据和p-1个高位数据;将所述二进制补码数据中后L-p位数据按顺序拆分为k个长度分别为l1、l2、…、lk的二进制数据后,转换为对应的十进制数,得到k个低位数据;进而得到从高位到低位依次排列的1个符号位数据、p-1个高位数据和k个低位数据,记为长度为M=p+k的混合进制数据;其中需要说明的是,拆分的过程中,符号位以及会显著影响计算结果的第2位到第p位均拆分为二值数据,后L-p位数据拆分为多值数据。
具体地,浮点数转换成存内计算格式的过程如图5所示,所有浮点数以指数最大的浮点数作为基准,使得不同的浮点数的尾数按照指数对齐,同时根据具体的计算精度保留参与运算的位数,从而减少存储器阵列带来的能耗开销,其余浮点数的尾数根据对应的指数E与最大指数Emax之间的差值ES=Emax-E右移相应的位数,并在空余位进行补0;在上述对齐、补0、保留后的尾数的最高位前面加上相应的符号位,并转换成二进制补码的形式;对上述二进制补码数据,根据所需精度在对应位进行截断。需要说明的是,保留的位数越长计算精度越高,但是存储器阵列数量越多能耗开销也越高,通过控制二进制补码有效位的个数,来平衡计算精度与能耗开销。
进一步地,记浮点数存储矩阵的最大指数为Em,浮点数输入矢量的最大指数为Ev,则移位累加单元输出的输出矢量需要乘上补偿系数
具体地,例如当执行低精度的机器学习算法时,所需计算数据格式为INT8,则可取p1=2,k1=3,其中高位矩阵都是二值矩阵,低位矩阵都是四值矩阵;当执行高精度的科学计算任务时,所需计算数据格式为FP32,截断保留24位存内计算格式,则可取p1=2,k1=11,其中高位矩阵都是二值矩阵,低位矩阵都是四值矩阵。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种通用的存内矩阵-张量处理器,其特征在于,包括由多个矩阵计算模块并行调用形成的张量计算模块;
矩阵计算模块包括:全局缓冲区、存储矩阵处理单元、存储器阵列、输入拆分单元、输出缓冲区和移位累加单元;全局缓冲区的输入端连接移位累加单元,其输出端连接所述输入拆分单元;输出拆分单元的输出端和存储矩阵处理单元的输出端连接存储器阵列的输入端;存储器阵列的输出端连接输出缓冲区的输入端;输出缓冲区的输出端连接移位累加单元;
全局缓冲区用于存储输入矢量及通过移位累加单元计算得到的输出矢量;
存储矩阵处理单元用于基于运算数据的拆分转换规则,将存储矩阵各运算数据分别转换为M1=p1+k1的混合进制数据,得到转换后的存储矩阵;将转换后的存储矩阵中的各混合进制数据按位进行整合,得到1个符号位矩阵、p1-1个高位矩阵和k1个低位矩阵,并按照高低位顺序依次存储在存储器阵列;
输入拆分单元用于基于运算数据的拆分转换规则,将输入矢量中的各运算数据分别转换为M2=p2+k2的混合进制数据,得到转换后的输入矢量;将转换后的输入矢量中的各混合进制数据按位整合,得到1个符号位矢量、p2-1个高位矢量和k2个低位矢量,并按照高低位顺序依次输入到M1个存储器阵列中;存储器阵列设置为M1个,且每个存储器阵列用于存储一个按位整合的存储矩阵;整个存储器阵列用于将M2个经过转换整合的输入矢量依次与M1个经过转换整合的存储矩阵进行乘法运算;
输出缓冲区用于存储存储器阵列输出的乘法运算结果;移位累加单元用于将输出缓冲区存储的乘法运算结果进行移位和累加操作,获取输出矢量;其中,输出矢量为输入矢量与存储矩阵的矢量矩阵的乘法运算结果。
2.根据权利要求1所述的存内矩阵-张量处理器,其特征在于,运算数据的拆分转换规则为:
将浮点数格式转换成定点数格式,再将定点数格式转换为L比特的二进制补码数据;
将二进制补码数据中的前p位数据按二进制位进行拆分,得到1个符号位数据和p-1个高位数据;
将二进制补码数据中后L-p位数据按顺序拆分为k个长度分别为l1、l2、…、lk的二进制数据后,转换为对应的十进制数,得到k个低位数据;
从高位到低位依次排列1个符号位数据、p-1个高位数据和k个低位数据,记为长度为M=p+k的混合进制数据;
其中,
3.根据权利要求2所述的存内矩阵-张量处理器,其特征在于,浮点数格式转换为二进制补码数据的方法,包括以下步骤:
记所有浮点数中最大的指数为Emax,所有浮点数的尾数根据对应的指数E与Emax之间的差值ES=Emax-E右移Es位,并在空余位进行补0;
在尾数的最高位前面加上相应的符号位,并转换成二进制补码的形式;
根据所需精度在二进制补码的对应位进行截断,保留前S位。
4.根据权利要求1至3任一所述的存内矩阵-张量处理器,其特征在于,存储器阵列为十字交叉结构,各存储器件位于十字交叉点上;
所述存储器阵列包括二值存储器阵列和多值存储器阵列;
二值存储器阵列用于存储符号位矩阵和高位矩阵;多值存储器阵列用于存储低位矩阵。
5.根据权利要求1所述的存内矩阵-张量处理器,其特征在于,还包括与全局缓冲区、存储矩阵处理单元、存储器阵列、输入拆分单元、输出缓冲区和移位累加单元均连接的控制模块;所述控制模块用于在运算过程中,根据张量的深度配置矩阵计算模块的数量,以并行调用多个矩阵计算模块;用于根据数据格式配置相应的拆分规则和存储器阵列的数量,以并行调用多个存储器阵列;用于对全局缓冲区、存储器阵列、输入拆分单元、输出缓冲区以及移位累加单元的工作时序进行控制。
6.根据权利要求4所述的存内矩阵-张量处理器,其特征在于,所述控制模块还包括多路选择器、数模转换器和模数转换器;
多路选择器用于选通存储器阵列中对应的行和列,控制存储器阵列的输入和输出;
数模转换器用于在存储器阵列进行乘法运算时,将输入拆分单元输入的经过转换整合的输入矢量转换为电压矢量,按从高位到低位的顺序依次输入到存储器阵列中执行乘法运算;
数模转换器用于在存储器阵列进行乘法运算时,将拆分后的输入矢量转换为电压脉冲,按从高位到地位的顺序依次输入到存储器阵列中执行乘法运算;
模数转换器用于将存储器阵列输出的乘法运算结果转换为数字量。
7.一种基于权利要求1至6任一所述的存内矩阵-张量处理器的操作方法,其特征在于,包括以下步骤:
基于运算数据的拆分转换规则,将存储矩阵各运算数据分别转换为M1=p1+k1的混合进制数据,得到转换后的存储矩阵;将转换后的存储矩阵中的各混合进制数据按位进行整合,得到1个符号位矩阵、p1-1个高位矩阵和k1个低位矩阵,并按照高低位顺序依次存储在存储器阵列;
采用全局缓冲区将输入矢量输入至输入拆分单元,基于运算数据的拆分转换规则,将输入矢量中的各运算数据分别转换为M2=p2+k2的混合进制数据,得到转换后的输入矢量;将转换后的输入矢量中的各混合进制数据按位整合,得到1个符号位矢量、p2-1个高位矢量和k2个低位矢量,并按照高低位顺序依次输入到M1个存储器阵列中;
将M2个经过转换整合的输入矢量依次与M1个经过转换整合的存储矩阵进行乘法运算;
将乘法运算结果通过输入缓冲区传输至移位累加单元,对乘法运算结果进行移位和累加操作,获取输出矢量传输至全局缓冲区中;其中,输出矢量为输入矢量与存储矩阵的矢量矩阵的乘法运算结果。
8.根据权利要求7所述的存内矩阵-张量处理器的操作方法,其特征在于,运算数据的拆分转换规则为:
将浮点数格式转换成定点数格式,再将定点数格式转换为L比特的二进制补码数据;
将二进制补码数据中的前p位数据按二进制位进行拆分,得到1个符号位数据和p-1个高位数据;
将二进制补码数据中后L-p位数据按顺序拆分为k个长度分别为l1、l2、…、lk的二进制数据后,转换为对应的十进制数,得到k个低位数据;
从高位到低位依次排列1个符号位数据、p-1个高位数据和k个低位数据,记为长度为M=p+k的混合进制数据;
其中,
9.根据权利要求8所述的存内矩阵-张量处理器的操作方法,其特征在于,浮点数格式转换为二进制补码数据的方法,包括以下步骤:
记所有浮点数中最大的指数为Emax,所有浮点数的尾数根据对应的指数E与Emax之间的差值ES=Emax-E右移Es位,并在空余位进行补0;
在尾数的最高位前面加上相应的符号位,并转换成二进制补码的形式;
根据所需精度在二进制补码的对应位进行截断,保留前S位。
10.根据权利要求9所述的存内矩阵-张量处理器的操作方法,其特征在于,若浮点数存储矩阵的最大指数为Em,浮点数输入矢量的最大指数为Ev,则移位累加单元输出的输出矢量需乘以补偿系数
CN202310594138.8A 2023-05-24 2023-05-24 一种通用的存内矩阵-张量处理器及其操作方法 Pending CN116594588A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310594138.8A CN116594588A (zh) 2023-05-24 2023-05-24 一种通用的存内矩阵-张量处理器及其操作方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310594138.8A CN116594588A (zh) 2023-05-24 2023-05-24 一种通用的存内矩阵-张量处理器及其操作方法

Publications (1)

Publication Number Publication Date
CN116594588A true CN116594588A (zh) 2023-08-15

Family

ID=87611278

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310594138.8A Pending CN116594588A (zh) 2023-05-24 2023-05-24 一种通用的存内矩阵-张量处理器及其操作方法

Country Status (1)

Country Link
CN (1) CN116594588A (zh)

Similar Documents

Publication Publication Date Title
CN107636640B (zh) 点积引擎、忆阻器点积引擎以及用于计算点积的方法
KR102672586B1 (ko) 인공신경망의 훈련 방법 및 장치
US10491239B1 (en) Large-scale computations using an adaptive numerical format
CN110442323B (zh) 进行浮点数或定点数乘加运算的装置和方法
CN114613404A (zh) 内存计算
CN114418057A (zh) 卷积神经网络的运算方法及相关设备
CN112989273A (zh) 一种利用补码编码进行存内运算的方法
CN110889080B (zh) 乘积累加运算装置、乘积累加运算方法和系统
CN114168107B (zh) 一种存内精度可调的矢量矩阵乘法运算方法及运算器
CN117808045A (zh) 用于对神经网络中的卷积层执行通道均衡的方法和系统
CN116932456A (zh) 电路、存内计算电路及操作方法
CN116594588A (zh) 一种通用的存内矩阵-张量处理器及其操作方法
CN114816335B (zh) 一种忆阻器阵列符号数乘法实现方法、装置及设备
US20230075348A1 (en) Computing device and method using multiplier-accumulator
JP7255068B2 (ja) メモリデバイス及びその動作方法
CN111988031B (zh) 一种忆阻存内矢量矩阵运算器及运算方法
CN113988279A (zh) 一种支持负值激励的存算阵列输出电流读出方法及系统
JP7023149B2 (ja) 半導体装置
CN111126580B (zh) 采用Booth编码的多精度权重系数神经网络加速芯片运算装置
JP7206531B2 (ja) メモリデバイスおよびその動作方法
KR20240135773A (ko) 반복 혼성 행렬 곱셈기
JP7279293B2 (ja) メモリデバイスおよびその動作方法
US20230418557A1 (en) Data computation circuit and method
US20220398067A1 (en) Multiply-accumlate device
CN116402106B (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