您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息
免费发信息
三六零分类信息网 > 海西分类信息网,免费分类信息发布

技术创新—FPGA运算单元可支持高算力浮点

2020/3/6 3:32:16发布164次查看

 
随着机器学习(machine learning)领域越来越多地使用现场可编程门阵列(fpga)来进行推理(inference)加速,而传统fpga只支持定点运算的瓶颈越发凸显。 achronix为了解决这一大困境,创新地设计了机器学习处理器(mlp)单元,不仅支持浮点的乘加运算,还可以支持对多种定浮点数格式进行拆分。
mlp全称machine learning processing单元,是由一组至多32个乘法器的阵列,以及一个加法树、累加器、还有四舍五入rounding/饱和saturation/归一化normalize功能块。同时还包括2个缓存,分别是一个bram72k和lram2k,用于独立或结合乘法器使用。mlp支持定点模式和浮点模式,对应下面图1和图2。
图1 定点模式下的mlp框图
图2 浮点模式下的mlp框图
考虑到运算能耗和准确度的折衷,目前机器学习引擎中最常使用的运算格式是fp16和int8,而tensor flow支持的bf16则是通过降低精度,来获得更大数值空间。下面的表1是mlp支持的最大位宽的浮点格式,表2说明了各自的取值范围。
表1 mlp支持的最大位宽的浮点格式
表2 不同运算格式的取值范围
而且这似乎也成为未来的一种趋势。目前已经有不少研究表明,更小位宽的浮点或整型可以在保证正确率的同时,还可以减少大量的计算量。因此,为了顺应这一潮流,mlp还支持将大位宽乘法单元拆分成多个小位宽乘法,包括整数和浮点数。详见下表3。
值得注意的是,这里的bfloat16即brain float格式,而block float为块浮点算法,即当应用block float16及更低位宽块浮点格式时,指数位宽不变,小数位缩减到了16bit以内,因此浮点加法位宽变小,并且不需要使用浮点乘法单元,而是整数乘法和加法树即可,mlp的架构可以使这些格式下的算力倍增。
表3是speedster7t系列1500器件所支持的典型格式下的算力对比,可以看到,单片fpga的浮点算力最高可达到123tops。
表3 achronix的speedster7t系列1500器件支持的典型格式的算力对比
下图3是mlp中fp24/fp16乘加单元的简化结构图,即一个mlp支持fp24/fp16的a*b+c*d,或者a*b,c*d。
图3 mlp中fp24/fp16乘加单元的简化结构图
而以下的图4则是块浮点乘加单元结构。
图 4 块浮点乘加单元结构
这里考虑浮点数序列块,浮点数序列块,各序列块内均拥有相同的指数ea和eb。则
不难看出,乘法单元的个数取决于尾数(即整数)位宽。
表4 mlp中乘法单元的个数与整数位宽的关系 
编辑:muyan来源:eeworld

海西分类信息网,免费分类信息发布

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录