【技术实现步骤摘要】
一种可扩展的BFloat16点乘运算器及微处理器
[0001]本专利技术涉及微处理器设计领域,具体涉及一种可扩展的BFloat16点乘运算器及微处理器。
技术介绍
[0002]BFloat16是一种新型的浮点数据类型,由1位符号位、8位偏移指数位和7位尾数位组成。与传统的IEEE 754定义的32位单精度(SP)浮点数相比,16位的BFloat16格式应用到深度学习模型时占用更少的内存和传输带宽,在数据计算时消耗更少的硬件资源。同时,BFloat16有着与单精度浮点数等长的指数位,BFloat16可以满足绝大多数深度学习模型中与单精度浮点数相同的数值范围要求。进一步的研究表明,在深度学习领域中可以使用BFloat16作为一种优化技术,可以提高训练模型时CPU和GPU之间的通信效率,进而提升深度学习任务的速度和性能。因此,探索硬件架构上的BFloat16的运算单元设计,是加速深度学习应用的一种方式。
[0003]点乘运算也称为向量内积(vector inner product),是一种常见的线性代数运算。点积运算广泛存在于深度学习应用中,可以用于计算两个向量之间的相似度,也可以用于神经网络中的全连接层、卷积操作等。传统的点积运算使用乘加单元循环相加的方式来实现,以计算n项的点乘运算Z=A0×
B0+A1×
B1+
…
+A
n
‑1×
B
n
‑1为例,该方式需要使用乘加单元进行n次计算得到结果,存在很长的计算延迟。另一种方式是先使用并行的 ...
【技术保护点】
【技术特征摘要】
1.一种可扩展的BFloat16点乘运算器,其特征在于,包括以4项点乘单元为基础单元通过组合求和的方式连接的点乘运算单元,所述4项点乘单元包括输入处理模块、尾数乘法模块、指数处理模块、符号位逻辑模块、尾数对齐模块、尾数取补模块、尾数加法模块、前导零计数器、规格化模块、舍入模块以及输出寄存器,所述输入处理模块用于从输入的向量中提取符号位、指数和尾数,所述尾数乘法模块用于执行进行尾数乘法,所述指数处理模块用于计算指数的最大指数和以及最大指数和与其他指数和的差值;所述符号位逻辑模块用于计算浮点数符号位;所述尾数对齐模块用于根据最大指数和与其他指数和的差值对尾数积进行移位;所述尾数取补模块用于根据浮点数符号位对移位后的尾数积进行取补;所述尾数加法模块用于对取补后的尾数积进行求和得到尾数和;所述前导零计数器用于计算尾数和的前导零个数,所述规格化模块用于对尾数和进行规格化移位和指数更新;所述舍入模块用于对规格化移位后的尾数进行舍入,并将最终的符号位、指数位、尾数位合并得到4项点乘运算的最终结果并通过输出寄存器输出。2.根据权利要求1所述的可扩展的BFloat16点乘运算器,其特征在于,所述4项点乘单元为三级流水段结构,所述输入处理模块、尾数乘法模块、指数处理模块以及符号位逻辑模块构成第一级流水段,所述尾数对齐模块、尾数取补模块以及尾数加法模块构成第二级流水段,所述前导零计数器、规格化模块、舍入模块以及输出寄存器构成第三级流水段,所述第一级流水段、第二级流水段和第三级流水段在3个时钟周期完成1次4项点乘运算。3.根据权利要求2所述的可扩展的BFloat16点乘运算器,其特征在于,所述指数处理模块包括用于计算指数的最大指数和的最大指数和逻辑运算电路,所述最大指数和逻辑运算电路包括四个加法器、两个第一级减法器、两个第一级选择器、一个第二级减法器和一个第二级选择器,每一个加法器用于将八个输入指数exp_a、exp_b、exp_c、exp_d、exp_e、exp_f、exp_g、exp_h的两个求和,每两个加法器的输出端共同连接一个第一级减法器和一个第一级选择器,且第一级减法器用于将两个加法器的输出做减法运算后作为控制信号、以控制选择器在两个加法器的输出择一输出至第二级减法器和第二级选择器,第二级减法器用于将两个第一级选择器的输出做减法运算后作为控制信号以控制第二级选择器在两个第一级选择器的输出中择一作为计算得到的最大指数和。4.根据权利要求3所述的可扩展的BFloat16点乘运算器,其特征在于,所述指数处理模块还包括用于计算最大指数和与其他指数和的差值的差值逻辑计算电路,所述差值逻辑计算电路包括四个减法器,所述四个减法器用于将最大指数和逻辑运算电路输出的最大指数及其一个加法器的输出结果做减法运算,从而得到最大指数和与其他指数和的差值。5.根据权利要求4所述的可扩展的BFloat16点乘运算器,其特征在于,所述尾数取补模块以4项点乘单元的第4组浮点数乘积的符号位为基准并作为点积运算最终的符号位,比较其他浮点数乘积的符号位与基准是否相同,并对不相同的浮点数乘积的尾数积进行取补运算,以取补后相加的电路来取代减法电路,同时计算不同符号位的个数count,并对尾数积进行两位的符号位扩展。6.根据权利要求5所述的可扩展的BFloat16点乘运算器,其特征在于,所述尾数加法模块将取补后的尾数积连同第4个尾数积经过一次压缩器CSA4:2压缩成两个加数sum和carry的形式,再通过传播进位加法器CPA将压缩得到的两个加数sum和carry相加得到4个尾数积之和,最后根据尾数积之和的两位符号位...
【专利技术属性】
技术研发人员:黄立波,张京,郭辉,郑重,郭维,王永文,雷国庆,王俊辉,邓全,隋兵才,倪晓强,孙彩霞,沈俊忠,
申请(专利权)人:中国人民解放军国防科技大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。