【技术实现步骤摘要】
基于混合粒度乘法部件的多精度乘法器及运算方法
本专利技术涉及一种基于混合粒度乘法部件的多精度乘法器及运算方法,属于计算
技术介绍
为了提高计算部件计算能力的利用率,通常设计专用的低精度乘法部件,通过时间复用或空间组合两种方式完成数值精度高的计算。在图1所示的时间复用方案中,乘法部件的两个输入端口的输入数据采用不等的精度,一个输入端口输入的数据数值精度大,另一个输入端口输入的数据数值精度小。在计算乘法的过程中,将乘法运算的一个操作数直接映射到输入数据数值精度较大的端口,将另一个操作数依据另一个输入端口的数值精度进行划分,通过多次乘-累加运算得到最后的结果。在图2所示的空间组合方案中,乘法部件由一组粒度更细的乘法器构成,可以通过设置,将细粒度的乘法器组合为数值精度更高的乘法器。现有的两种方案采用统一的计算基元,不能很好平衡计算延迟、计算能力利用率、控制结构复杂度三者之间的关系;且不同的卷积神经网络模型使用的数值精度不同,采用固定精度的乘法部件会造成计算部件计算能力的浪费。专利技术 ...
【技术保护点】
1.一种基于混合粒度乘法部件的多精度乘法器,其特征在于:包括调度器、指令队列和计算单元,所述计算单元包括分发器、若干个细粒度乘法部件和加法树,所述细粒度乘法部件的数量如下表所示:/n
【技术特征摘要】
1.一种基于混合粒度乘法部件的多精度乘法器,其特征在于:包括调度器、指令队列和计算单元,所述计算单元包括分发器、若干个细粒度乘法部件和加法树,所述细粒度乘法部件的数量如下表所示:
。
2.一种基于权利要求1所述的多精度乘法器的运算方法,其特征在于:包括以下步骤:
步骤1:调度器根据贪心算法,以多精度乘法器的粒度规模为依据,将乘法运算的两个位宽分别为Mbit、Nbit的操作数进行分割,获得如下分割结果:
Mbit=(a*4bit+b*2bit+c*1bit),其中M=a*4+b*2+c;a、b、c为Mbit分割后4bit数、2bit数、1bit数的个数;
Nbit=(x*4bit+y*2bit+z*1bit),其中N=x*4+y*2+z;x、y、z为Nbit分割后4bit数、2bit数、1bit数的个数;
根据分割结果,调度器将Mbit*Nbit转换为Mbit*Nbit=(a*4bit+b*2bit+c*1bit)*(x*4bit+y*2bit+z*1bit),从而将Mbit*Nbit分割为(a*x)个4bit*4bit、(a*y+b*x)个4bit*2bit、(a*z+c*x)个4bit*1bit、(b*y)个2bit*2bit、(b*z+c*y)个2bit*1bit、(c*z)个1bit*1bit的细粒度乘法运算;
步骤2:调度器计算步骤1中获得的每一组细粒度乘法运算结果需要向左移动的位数,用于指导乘法器将步骤1中获得的4bit*4bit、4bit*2bit、4bit*1bit、2bit*2bit、2bit*1bit、1bit*1bit的结果进行移位累加;
步骤3:调度器将步骤1中分割后的细粒度乘法运算的两个操作数和步骤2中对应的左移位数打包成如下所示的乘法器指令:
左移位数
操作数1
操作数2
;
步骤4:调度器将步骤3中生成的乘法器指令送入计算单元的指令队列;
步骤5:计算单元内部的分发器解析指令队列的指令,并将解析后的左移位数和操作数分发给对应位宽的细粒度乘法部件,由细粒度乘法部件完成细粒度的乘法运算;
步骤6:细粒度乘法部件根据步骤5中分发器发送的操作数完成乘法运算,并根据步骤5中分发器发送的左移位数,将乘法结果向左移位,再将移位后的结果送入加法树,得到最后的结果。
3.根据权利要求2所述的一种基于权利要求1所述多精度乘法器的运算方法,其特征在于:步骤2中,向左移动位数计算过程如下:
(...
【专利技术属性】
技术研发人员:尚江卫,钱磊,吴东,张昆,曾明勇,原昊,贾迅,朱剑文,陆一峰,
申请(专利权)人:无锡江南计算技术研究所,
类型:发明
国别省市:江苏;32
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。