可编程的混合精度运算单元制造技术

技术编号:20865228 阅读:31 留言:0更新日期:2019-04-17 09:07
本申请提供了一种可编程的混合精度运算单元,能够支持多种精度的浮点或定点乘和/或加运算,既可以实现多路并发的低精度运算,又可以整体实现一个高精度的运算,因此,具有较高能效比。

【技术实现步骤摘要】
可编程的混合精度运算单元
本申请涉及电子信息领域,尤其涉及一种可编程的混合精度运算单元。
技术介绍
深度神经网络在人工智能领域被广泛应用,其应用场景可以大致分为训练(Training)和推断(Inference)两种类型。其中推断算法对运算精度要求相对较低,多使用8位、16位定点精度;训练算法则大多要求达到16位或32位浮点精度。而现有的运算单元,或者仅支持8位或16位定点运算,仅适用于推断;或者,支持浮点运算,适用于训练和推断,但硬件成本高且耗能高,应用于推断场景下的能效比偏低。
技术实现思路
本申请提供了一种可编程的混合精度运算单元,目的在于解决既兼容定点和浮点运算、又具有较高能效比的问题。为了实现上述目的,本申请提供了以下技术方案:一种可编程的混合精度运算单元,包括:四个扩展的半精度乘法器、以及四个扩展的单精度加法器;任意一个所述扩展的半精度乘法器用于将输入数值扩展到X位,并计算第一数值和第二数值之积,其中,第一数值为一个输入数值扩展后的数值中的高位数值或低位数值,第二数值为另一个输入数值扩展后的数值中的高位数值或低位数值,X为预设数值;任意一个所述扩展的单精度加法器用于将输入数值扩展到Y位,并计算扩展后的数值之和,Y为预设数值;其中,所述四个扩展的半精度乘法器和所述四个扩展的单精度加法器以第一方式或第二方式连接;所述第一方式为:所述四个扩展的半精度乘法器与所述四个扩展的单精度加法器一一对应级联,构成四个并联的半精度乘加器;所述第二方式为:第一扩展的单精度加法器与第一扩展的半精度乘法器和第二扩展的半精度乘法器分别级联;第二扩展的单精度加法器与第三扩展的半精度乘法器和第四扩展的半精度乘法器分别级联;第三扩展的单精度加法器与第一扩展的单精度加法器和第二扩展的单精度加法器分别级联。可选的,所述扩展的半精度乘法器中包括:并联的一个单精度指数乘法器和一个扩展的半精度尾数乘法器;所述扩展的半精度尾数乘法器用于将输入数值扩展到X位,并计算所述第一数值和所述第二数值之积。可选的,所述扩展的单精度加法器中包括:并联的一个单精度指数加法器和一个扩展的单精度尾数加法器;所述扩展的单精度尾数加法器用于将输入数值扩展到Y位,并计算扩展后的数值之和。一种可编程的混合精度运算单元,包括:四个扩展的单精度乘法器、以及四个扩展的双精度加法器;所述扩展的单精度乘法器为前述任一项所述的可编程的混合精度运算单元;所述扩展的双精度加法器用于将输入数值扩展到M位,并计算扩展后的数值之和,M为预设数值;其中,所述四个扩展的单精度乘法器和四个扩展的双精度加法器以第一方式或第二方式连接;所述第一方式为:所述四个扩展的单精度乘法器与所述四个扩展的双精度加法器一一对应级联,构成四个并联的单精度乘加器;所述第二方式为:第一扩展的双精度加法器与第一扩展的单精度乘法器和第二扩展的单精度乘法器分别级联;第二扩展的双精度加法器与第三扩展的单精度乘法器和第四扩展的单精度乘法器分别级联;第三扩展的双精度加法器与第一扩展的双精度加法器和第二扩展的双精度加法器分别级联。可选的,所述扩展的双精度加法器中包括:并联的一个双精度指数加法器和一个扩展的双精度尾数加法器;所述扩展的双精度尾数加法器用于将输入数值扩展到M位,并计算扩展后的数值之和。一种可编程的混合精度运算单元,包括:并联的、前述任一项的可编程的混合精度运算单元。一种可编程的混合精度运算单元,包括:四个扩展的半精度乘法器、以及三个扩展的单精度加法器;第一扩展的半精度乘法器用于将输入数值扩展到X位后,计算MSBa*MSBb,得到第一乘积;第二扩展的半精度乘法器用于将所述输入数值扩展到X位后,计算MSBa*LSBb,得到第二乘积;第三扩展的半精度乘法器用于将所述输入数值扩展到X位后,计算LSBa*MSBb,得到第三乘积;第四扩展的半精度乘法器用于将所述输入数值扩展到X位后,计算LSBa*LSBb,得到第四乘积;其中,所述输入数值为第一数值和第二数值,MSBa为扩展后的第一数值的高位,MSBb为扩展后的第二数值的高位,LSBa为所述扩展后的第一数值的低位,LSBb为所述扩展后的第二数值的低位;第一扩展的单精度加法器用于将所述第一乘积和所述第二乘积扩展到Y位后,计算扩展后的第一乘积和扩展后的第二乘积之和,得到第一相加结果;第二扩展的单精度加法器用于将所述第三乘积和所述第四乘积扩展到Y位后,计算扩展后的第三乘积和扩展后的第四乘积之和,得到第二相加结果;第三扩展的单精度加法器用于将所述第一相加结果和所述第二相加结果扩展到Y位后,计算扩展后的第一相加结果和扩展后的第二相加结果之和。可选的,还包括:第四扩展的单精度加法器,用于将两个单精度数值扩展到Y位后,计算扩展后的两个单精度数值之和,任意一个所述单精度数值为所述第一相加结果和所述第二相加结果之和。一种可编程的混合精度运算单元,包括:四个扩展的单精度乘法器、以及三个扩展的双精度加法器;所述扩展的单精度乘法器用于实现前述的可编程的混合精度运算单元的功能;第一扩展的双精度加法器用于将第一乘积和第二乘积扩展到M位后,计算扩展后的第一乘积和扩展后的第二乘积之和,得到第一相加结果;所述第一乘积为第一扩展的单精度乘法器的输出结果,所述第二乘积为第二扩展的单精度乘法器的输出结果;第二扩展的双精度加法器用于将第三乘积和第四乘积扩展到M位后,计算扩展后的第三乘积和扩展后的第四乘积之和,得到第二相加结果;所述第三乘积为第三扩展的单精度乘法器的输出结果,所述第四乘积为第四扩展的单精度乘法器的输出结果;第三扩展的双精度加法器用于将所述第一相加结果和所述第二相加结果扩展到M位后,计算扩展后的第一相加结果和第二相加结果之和。可选的,还包括:第四扩展的双精度加法器,用于将两个双精度数值扩展到M位后,计算扩展后的两个双精度数值之和,任意一个所述双精度数值为所述第一相加结果和所述第二相加结果之和。本申请所述的可编程的混合精度运算单元能够支持多种精度的浮点或定点乘和/或加运算,既可以实现多路并发的低精度运算,又可以整体实现一个高精度的运算,因此,具有较高能效比。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本申请实施例公开的一种可编程的混合精度运算单元的结构示意图;图2为本申请实施例公开的又一种可编程的混合精度运算单元的结构示意图;图3为本申请实施例公开的可编程的混合精度运算单元通连接方式的切换实现不同运算的示意图;图4为本申请实施例公开的又一种可编程的混合精度运算单元的结构示意图;图5为本申请实施例公开的又一种可编程的混合精度运算单元的结构示意图;图6为本申请实施例公开的又一种可编程的混合精度运算单元的结构示意图。具体实施方式本申请实施例公开的可编程的混合精度运算单元,可以应用在但不限于深度神经网络中,从运算类型而言,适用于训练和推断过程;从硬件而言,可以设置在通用中央处理器(CPU,如Intel/AMDx86CPU)、图形处理器(GPU,如NVidiaV100)、神经元处理器(如本文档来自技高网...

【技术保护点】
1.一种可编程的混合精度运算单元,其特征在于,包括:四个扩展的半精度乘法器、以及四个扩展的单精度加法器;任意一个所述扩展的半精度乘法器用于将输入数值扩展到X位,并计算第一数值和第二数值之积,其中,第一数值为一个输入数值扩展后的数值中的高位数值或低位数值,第二数值为另一个输入数值扩展后的数值中的高位数值或低位数值,X为预设数值;任意一个所述扩展的单精度加法器用于将输入数值扩展到Y位,并计算扩展后的数值之和,Y为预设数值;其中,所述四个扩展的半精度乘法器和所述四个扩展的单精度加法器以第一方式或第二方式连接;所述第一方式为:所述四个扩展的半精度乘法器与所述四个扩展的单精度加法器一一对应级联,构成四个并联的半精度乘加器;所述第二方式为:第一扩展的单精度加法器与第一扩展的半精度乘法器和第二扩展的半精度乘法器分别级联;第二扩展的单精度加法器与第三扩展的半精度乘法器和第四扩展的半精度乘法器分别级联;第三扩展的单精度加法器与第一扩展的单精度加法器和第二扩展的单精度加法器分别级联。

【技术特征摘要】
1.一种可编程的混合精度运算单元,其特征在于,包括:四个扩展的半精度乘法器、以及四个扩展的单精度加法器;任意一个所述扩展的半精度乘法器用于将输入数值扩展到X位,并计算第一数值和第二数值之积,其中,第一数值为一个输入数值扩展后的数值中的高位数值或低位数值,第二数值为另一个输入数值扩展后的数值中的高位数值或低位数值,X为预设数值;任意一个所述扩展的单精度加法器用于将输入数值扩展到Y位,并计算扩展后的数值之和,Y为预设数值;其中,所述四个扩展的半精度乘法器和所述四个扩展的单精度加法器以第一方式或第二方式连接;所述第一方式为:所述四个扩展的半精度乘法器与所述四个扩展的单精度加法器一一对应级联,构成四个并联的半精度乘加器;所述第二方式为:第一扩展的单精度加法器与第一扩展的半精度乘法器和第二扩展的半精度乘法器分别级联;第二扩展的单精度加法器与第三扩展的半精度乘法器和第四扩展的半精度乘法器分别级联;第三扩展的单精度加法器与第一扩展的单精度加法器和第二扩展的单精度加法器分别级联。2.根据权利要求1所述的可编程的混合精度运算单元,其特征在于,所述扩展的半精度乘法器中包括:并联的一个单精度指数乘法器和一个扩展的半精度尾数乘法器;所述扩展的半精度尾数乘法器用于将输入数值扩展到X位,并计算所述第一数值和所述第二数值之积。3.根据权利要求1所述的可编程的混合精度运算单元,其特征在于,所述扩展的单精度加法器中包括:并联的一个单精度指数加法器和一个扩展的单精度尾数加法器;所述扩展的单精度尾数加法器用于将输入数值扩展到Y位,并计算扩展后的数值之和。4.一种可编程的混合精度运算单元,其特征在于,包括:四个扩展的单精度乘法器、以及四个扩展的双精度加法器;所述扩展的单精度乘法器为权利要求1-3任一项所述的可编程的混合精度运算单元;所述扩展的双精度加法器用于将输入数值扩展到M位,并计算扩展后的数值之和,M为预设数值;其中,所述四个扩展的单精度乘法器和四个扩展的双精度加法器以第一方式或第二方式连接;所述第一方式为:所述四个扩展的单精度乘法器与所述四个扩展的双精度加法器一一对应级联,构成四个并联的单精度乘加器;所述第二方式为:第一扩展的双精度加法器与第一扩展的单精度乘法器和第二扩展的单精度乘法器分别级联;第二扩展的双精度加法器与第三扩展的单精度乘法器和第四扩展的单精度乘法器分别级联;第三扩展的双精度加法器与第一扩展的双精度加法器和第二扩展的双精度加法器分别级联。5.根据权利要求4所述的可编程的混合精度运算单元,其特征在于,所述扩展的双精度加法器中包括:并联的一个双精度指数加法器和一个扩展的双精度尾数加法器;所述扩展的双精度尾数加法器用于将输入数值扩展到M位,并计算扩展后的数值之和。6.一种可编程的混合精度运算单元,其特...

【专利技术属性】
技术研发人员:刘彦赵立东
申请(专利权)人:上海燧原科技有限公司
类型:发明
国别省市:上海,31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1