一种利用浮点数计算指令实现大整数乘法计算加速方法

    公开(公告)号:CN105930128B

    公开(公告)日:2018-11-06

    申请号:CN201610325863.5

    申请日:2016-05-17

    Abstract: 本发明公开了一种利用浮点数计算指令实现大整数乘法计算加速方法。本方法为:1)将长度为n比特的被乘数A分为N段,长度为m比特乘数B分为M段;每段的长度为w比特,M≥N;2)将被乘数A、乘数B的每段分别转化为一浮点数;3)采用熔加运算对转化后的被乘数A、乘数B进行乘法运算;并将运算结果转化为一定点数;4)将该定点数分为多段,每段长度为w比特;然后对每一段定点数R[u]:R[u]对2w进行求模运算,将求模结果保存到C[u]中;然后对R[u]右移w位,结果保存到Carry1中;然后将Carry1与R[u+1]作和,并保存到R[u+1]中。本发明减少了计算的复杂度,提升了计算速度。

    应用在密码技术中的大整数乘法运算方法及装置

    公开(公告)号:CN103942028B

    公开(公告)日:2017-04-05

    申请号:CN201410150320.5

    申请日:2014-04-15

    Abstract: 本发明公开了一种应用在密码技术中的大整数乘法运算方法及装置,在密码技术中进行大整数乘法运算时,将被乘数和乘数拆分为若干字,利用高低位分离的带进位乘加指令,根据一定次序累加被乘数的一个字和乘数的一个字相乘的高位或低位乘积到结果的对应位置中,指令产生的进位将用于计算高一字结果的下一指令输入中;算法重复此类计算,直到被乘数的每一个字和乘数的每一个字的高低位结果均被累加到结果中。本发明实现的大整数乘法运算,可以减少大整数乘法计算的复杂度,提升计算速度。

    在GPU中进行大整数计算时的存储资源分配方法及装置

    公开(公告)号:CN103631660A

    公开(公告)日:2014-03-12

    申请号:CN201310435220.2

    申请日:2013-09-23

    Abstract: 本发明公开了一种在图形处理器GPU中进行大整数计算时的存储资源分配方法及装置,在采用GPU线程执行各种大整数计算过程中,为每个线程分配寄存器,在线程执行大整数计算过程中,将线程当前执行的大整数计算的操作数和中间计算变量存储在该线程所分配的寄存器中,将线程当前执行的大整数计算的模数和其他数据存储在内存中。这样,GPU线程中的大整数计算要调用操作数和中间计算变量时,都可以直接重复调用已分配的寄存器获得,一方面减少GPU线程的寄存器使用量,提高线程的并行执行效率,另一方面为大整数计算保留必要的寄存器,能更加有效地提高大整数计算的执行速度。

    一种利用浮点数计算指令实现大整数乘法计算加速方法

    公开(公告)号:CN105930128A

    公开(公告)日:2016-09-07

    申请号:CN201610325863.5

    申请日:2016-05-17

    CPC classification number: G06F7/4876

    Abstract: 本发明公开了一种利用浮点数计算指令实现大整数乘法计算加速方法。本方法为:1)将长度为n比特的被乘数A分为N段,长度为m比特乘数B分为M段;每段的长度为w比特,M≥N;2)将被乘数A、乘数B的每段分别转化为一浮点数;3)采用熔加运算对转化后的被乘数A、乘数B进行乘法运算;并将运算结果转化为一定点数;4)将该定点数分为多段,每段长度为w比特;然后对每一段定点数R[u]:R[u]对2w进行求模运算,将求模结果保存到C[u]中;然后对R[u]右移w位,结果保存到Carry1中;然后将Carry1与R[u+1]作和,并保存到R[u+1]中。本发明减少了计算的复杂度,提升了计算速度。

    应用在密码技术中的大整数乘法运算方法及装置

    公开(公告)号:CN103942028A

    公开(公告)日:2014-07-23

    申请号:CN201410150320.5

    申请日:2014-04-15

    Abstract: 本发明公开了一种应用在密码技术中的大整数乘法运算方法及装置,在密码技术中进行大整数乘法运算时,将被乘数和乘数拆分为若干字,利用高低位分离的带进位乘加指令,根据一定次序累加被乘数的一个字和乘数的一个字相乘的高位或低位乘积到结果的对应位置中,指令产生的进位将用于计算高一字结果的下一指令输入中;算法重复此类计算,直到被乘数的每一个字和乘数的每一个字的高低位结果均被累加到结果中。本发明实现的大整数乘法运算,可以减少大整数乘法计算的复杂度,提升计算速度。

    基于向量指令的大整数乘法实现方法及装置

    公开(公告)号:CN104461449B

    公开(公告)日:2018-02-27

    申请号:CN201410645961.8

    申请日:2014-11-14

    Abstract: 一种基于向量指令的大整数乘法实现方法及装置,将大整数乘法的被乘数和乘数分别拆分为一个或多个向量长度整数,计算这些整数相乘,并对所有乘积求和;计算两个向量长度的整数相乘时,将所有向量乘法指令产生的积向量按照指定的次序组成两条加法进位链,利用带进位的向量加法指令,将每次向量相加产生的进位作为下一个向量加法指令的输入,消除链中所有加法进位,只产生两个加法进位,将其加回,得到两个向量长度整数的乘积。特别地,若被乘数和乘数的长度都小于向量长度的1/n,将n组整数相乘合并为一次向量长度整数相乘,计算吞吐量提升n倍。基于以上大整数乘法方法,还公开了一种基于Intel Xeon Phi协处理器的高速大整数乘法装置。本发明减少了大整数乘法需要的指令数,降低了计算延迟,提高了计算吞吐量。

    基于向量指令的大整数乘法实现方法及装置

    公开(公告)号:CN104461449A

    公开(公告)日:2015-03-25

    申请号:CN201410645961.8

    申请日:2014-11-14

    Abstract: 一种基于向量指令的大整数乘法实现方法及装置,将大整数乘法的被乘数和乘数分别拆分为一个或多个向量长度整数,计算这些整数相乘,并对所有乘积求和;计算两个向量长度的整数相乘时,将所有向量乘法指令产生的积向量按照指定的次序组成两条加法进位链,利用带进位的向量加法指令,将每次向量相加产生的进位作为下一个向量加法指令的输入,消除链中所有加法进位,只产生两个加法进位,将其加回,得到两个向量长度整数的乘积。特别地,若被乘数和乘数的长度都小于向量长度的1/n,将n组整数相乘合并为一次向量长度整数相乘,计算吞吐量提升n倍。基于以上大整数乘法方法,还公开了一种基于Intel Xeon Phi协处理器的高速大整数乘法装置。本发明减少了大整数乘法需要的指令数,降低了计算延迟,提高了计算吞吐量。

Patent Agency Ranking