System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术属数据处理,具体涉及一种基于重构计算的通用并行矩阵乘法器。
技术介绍
1、矩阵乘法是科学和工程中许多应用程序的关键计算内核,具有充足的并行性和数据局部性,非常适合高性能实现。许多实际应用的矩阵乘法会使用降低精度的整数或定点表示来提高计算效率和性能,同时又能达到相同的精度。对于集成电路设计来说,乘法一般都会调用工艺库自带的乘法器ip(特定功能的模块),对于板级来说,一般乘法是通过调用数字信号处理器(digital signal processing,dsp)资源来实现的。一般情况下一个dsp资源最多可以支持18*18bit的定点数乘法。但是板级的dsp资源是有限的,在矩阵维度相对较大的情况下,会造成大量的dsp资源消耗,并且每一个dsp的利用率与输入数据的比特位也有关,资源利用率低下也是问题之一。
2、在设计通用的数字电路的系统时,一般都会考虑在一种恒定的精度下去对逻辑运算,寄存器存储器的互联做特定的优化,这样做的优点是简便,所有的功能需求都能采用一套电路设计来满足,缺点就是当应用场景只需要部分精度的时候,仍然在计算,存储,通信方面执行全精度操作方面的开销,这样就会造成不必要的资源浪费。可编辑逻辑阵列(field programmable gate array,fpga)非常适合低精度操作和实例化具有特定精度的高效矩阵乘法加速器。但是现有的基于fpga的矩阵乘法器,一种是在位串行原理的接触上,先相与,再移位,最后累加的方式计算。另一种是在前一种方法的基础上,将其提出的计算架构作为其中一个子模块,与以dsp资源
3、但是,当前的方法不能实现对有符号数的计算,并且移位之后的数据位宽较大,从而导致最后的累加模块所需的加法器资源也越大,使得当前的乘法器的开销面积更大。
技术实现思路
1、本专利技术实施例提供了一种基于重构极端的通用并行矩阵乘法器,可以解决当前的方法不能实现对有符号数的计算,并且当前的乘法器的开销面积更大的问题。
2、第一方面,本专利技术实施例提供了一种基于重构极端的通用并行矩阵乘法器,所述矩阵乘法器包括:矩阵重构模块、乘法模块、压缩模块、移位模块和累加模块。
3、矩阵重构模块用于根据矩阵数据的比特位对矩阵数据进行拆分,并将拆分后的矩阵数据重构为多组单比特矩阵;
4、乘法模块用于对多组单比特矩阵进行乘法运算,得到多组第一乘法运算结果;
5、压缩模块用于对同一组内的所述第一乘法运算结果进行累加运算,以实现对所属第一乘法运算结果的压缩,得到第一累加结果;
6、其中,第一累加结果用于确定第一乘法运算结果中包括的1的个数,压缩模块包括多个压缩器,压缩器能够实现同时对同一组单比特矩阵中的六个数据进行累加运算,得到第二累加结果,第一累加结果是根据第二累加结果和第一乘法运算结果得到的;
7、移位模块用于对不同组间的第一累加结果进行移位,得到移位后的第一累加结果;
8、累加模块用于对移位后的第一累加结果进行累加运算,得到矩阵数据的乘法运算结果。
9、根据本专利技术提供的矩阵乘法器,通过由能够同时对六个数据进行累加运算的压缩器组成的压缩模块对数据进行压缩,能够极大的提高压缩效率,减少压缩模块的面积开销;同时压缩器还可以进行部分组内数据的移位计算,承担后续移位模块的部分职责,并且由于矩阵数据被分解为单比特矩阵,因此压缩模块压缩完的数据位宽更小,移位模块移位出来的数据较小,能够减少移位模块和累加模块的面积开销,从而减小矩阵乘法器的面积开销;通过根据比特位来分解矩阵数据,能够实现对有符号数和无符号数的计算。
10、在第一方面的一种可能的实现方式中,矩阵重构模块具体可以用于:若矩阵数据包括有符号数,则对矩阵数据进行补码,以得到补码后的矩阵数据;根据补码后的矩阵数据的比特位,对补码后的矩阵数据进行拆分,得到单比特矩阵;或者,若矩阵数据不包括有符号数,则根据矩阵数据的比特位,对矩阵数据进行拆分,得到单比特矩阵;根据单比特矩阵中的数据在矩阵数据中的比特位,确定每个单比特矩阵所属的分组,以对单比特矩阵进行重构,得到多组单比特矩阵。
11、示例性的,每组单比特矩阵的权重不同。
12、在第一方面的一种可能的实现方式中,第二累加结果可以包括第一加和结果、第二加和结果及本级进位数据。压缩器可以包括第一查找表、第二查找表及进位链。第一查找表中的异或门与进位链的一个数据选择器相连,第二查找表中的异或门与进位链的另一个数据选择器相连。第一查找表和进位链用于对输入至第一查找表的三个数据进行累加运算,得到第一加和结果;第二查找表和进位链用于对输入至第二查找表的三个数据进行累加运算,得到第二加和结果;进位链还用于根据第一加和结果和第二加和结果,确定本级进位数据。
13、在第一方面的一种可能的实现方式中,压缩模块还可以包括触发器组,触发器组包括多个触发器;部分压缩器与触发器组相连。触发器组用于存储与其相连的压缩器得到的第二累加结果;触发器组还用于向与其相连的压缩器发送第二累加结果,以令压缩器对第二累加结果进行累加运算。
14、根据本专利技术提供的矩阵乘法器,通过由能够同时对六个数据进行累加运算的压缩器组成的压缩模块对数据进行压缩,能够极大的提高压缩效率,减少压缩模块的面积开销;同时压缩器还可以进行部分组内数据的移位计算,承担后续移位模块的部分职责,并且由于矩阵数据被分解为单比特矩阵,因此压缩模块压缩完的数据位宽更小,移位模块移位出来的数据较小,能够减少移位模块和累加模块的面积开销,从而减小矩阵乘法器的面积开销;通过根据比特位来分解矩阵数据,能够实现对有符号数和无符号数的计算。进一地,通过在压缩器中设置触发器,能够实现对压缩器的复用,进一步提高压缩模块的利用率。
15、第二方面,本专利技术实施例提供了一种矩阵乘法数据的处理方法,所述方法应用于基于重构计算的通用并行矩阵乘法器,所述矩阵乘法器包括:矩阵重构模块、乘法模块、压缩模块、移位模块和累加模块,所述方法包括:
16、矩阵重构模块根据矩阵数据的比特位对矩阵数据进行拆分,并将拆分后的矩阵数据重构为多组单比特矩阵;
17、乘法模块对每组单比特矩阵进行乘法运算,得到多组第一乘法运算结果;
18、压缩模块对同一组内的第一乘法运算结果进行累加运算,得到第一累加结果;
19、其中,第一累加结果用于确定第一乘法运算结果中包括的1的个数,压缩模块包括多个压缩器,压缩器能够实现同时对同一组单比特矩阵中的六个数据进行累加运算,得到第二累加结果,第一累加结果是根据第二累加结果得到的;
20、移位模块对不同组间的第一累加结果进行移位,得到移位后的第一累加结果;
21、累加模块对移位后的第一累加结果进行累加运算,得到矩阵数据的乘法运算结果。
22、在第二方面的一种可能的实现方式中,若矩阵数据包括有符号数,则矩阵重构模块可以对矩本文档来自技高网...
【技术保护点】
1.一种基于重构计算的通用并行矩阵乘法器,其特征在于,所述矩阵乘法器包括矩阵重构模块、乘法模块、压缩模块、移位模块和累加模块;
2.根据权利要求1所述的方法,其特征在于,所述矩阵重构模块具体用于:
3.根据权利要求1所述的方法,其特征在于,所述第二累加结果包括第一加和结果、第二加和结果及本级进位数据,所述压缩器包括第一查找表、第二查找表及进位链;
4.根据权利要求1所述的矩阵乘法器,其特征在于,所述压缩模块还包括触发器组,所述触发器组包括多个触发器;
5.一种矩阵乘法数据的处理方法,其特征在于,应用于基于重构计算的通用并行矩阵乘法器,所述矩阵乘法器包括:矩阵重构模块、乘法模块、压缩模块、移位模块和累加模块,所述方法包括:
6.根据权利要求5所述的方法,其特征在于,所述矩阵重构模块对矩阵数据进行拆分,并将拆分后的所述矩阵数据重构为多组单比特矩阵,包括:
7.根据权利要求5所述的方法,其特征在于,所述第二累加结果包括第一加和结果、第二加和结果及本级进位数据,所述压缩器包括第一查找表、第二查找表及进位链;
< ...【技术特征摘要】
1.一种基于重构计算的通用并行矩阵乘法器,其特征在于,所述矩阵乘法器包括矩阵重构模块、乘法模块、压缩模块、移位模块和累加模块;
2.根据权利要求1所述的方法,其特征在于,所述矩阵重构模块具体用于:
3.根据权利要求1所述的方法,其特征在于,所述第二累加结果包括第一加和结果、第二加和结果及本级进位数据,所述压缩器包括第一查找表、第二查找表及进位链;
4.根据权利要求1所述的矩阵乘法器,其特征在于,所述压缩模块还包括触发器组,所述触发器组包括多个触发器;
5.一种矩阵乘法数据的处理方法,其特征在于,应用于基于重构计算的通用并行矩阵乘法器,所述矩阵乘法器包括:矩阵重构模块、乘法模块、...
【专利技术属性】
技术研发人员:彭琪,陈纪宇,王一凡,祁仲冬,
申请(专利权)人:西安电子科技大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。