OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2945|回复: 1

FPGA运算单元可以支援高运算力浮点

[复制链接]

31

主题

31

帖子

0

精华

初级会员

Rank: 2

积分
147
金钱
147
注册时间
2020-5-13
在线时间
16 小时
发表于 2020-5-20 17:07:30 | 显示全部楼层 |阅读模式

随着机器学习(Machine Learning)领域越来越多地使用现场可编程闸阵列(FPGA)来加速推论(inference),传统FPGA只支援定点运算的瓶颈日益突显。为了解决这一困境,Achronix设计机器学习处理(Machine Learning Processing;MLP)单元,不仅支援浮点的乘加运算,还可以支援对多种定浮点数格式进行拆分。

MLP单元是由一组至多32个乘法器的阵列,以及一个加法树、累加器,以及四舍五入(rounding)/饱和(saturation)/常规化(normalize)功能区块。同时还包括2个快取,分别是一个BRAM72k和LRAM2k,用于独立或结合乘法器使用。MLP支援定点模式和浮点模式,对应以下图1和图2。


图1:定点模式下的MLP方块图

图2:浮点模式下的MLP方块图

考虑到运算功耗以及准确度的折衷,目前机器学习引擎中最常使用的运算格式是FP16和INT8,而Google Tensor Flow支援的BF16格式则是透过降低精度,以获取更大的数值空间。下面的表1是MLP支援的最大位宽浮点格式,表2说明各自的取值范围。

表1: MLP支援的最大位宽浮点格式

表2:不同运算格式的取值范围

而且这似乎也成为未来的一种趋势。目前已经有不少研究显示,更小位宽的浮点或整数可以在确保准确度的同时,还可以减少大量的计算量。因此,为了顺应这一潮流,MLP还支援将大位元宽乘法单元拆分成多个小位元宽乘法,包括整数和浮点数。如以下的表3。

值得注意的是,这里的BFloat16即脑浮点(Brain Float)格式,而Block Float为块浮点演算法,即当应用Block Float16及更低位宽块浮点格式时,指数位宽不变,小数位缩减到了16bit以内,因此浮点加法位宽变小,并且不需要使用浮点乘法单元,而是整数乘法和加法树即可,MLP的架构可以使这些格式下的运算能力倍增。文章来源:http://emb.hqyj.com/Column/20209362.html


正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

0

主题

71

帖子

0

精华

初级会员

Rank: 2

积分
77
金钱
77
注册时间
2016-1-5
在线时间
1 小时
发表于 2020-5-20 17:07:32 | 显示全部楼层
帮顶!!!!!!!!!!!!!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-8 06:02

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表