今天小编要和大家分享的是可编程逻辑相关信息,接下来我将从震惊!FPGA运算单元可支持高算力浮点,[mlp]小马精美同人照片第十二期:l.r.这几个方面来介绍。

可编程逻辑相关技术文章震惊!FPGA运算单元可支持高算力浮点[mlp]小马精美同人照片第十二期:l.r.

可编程逻辑相关技术文章震惊!FPGA运算单元可支持高算力浮点

Achronix创新的机器学习处理器(MLP)突破传统FPGA运算瓶颈

作者:杨宇,Achronix资深现场应用工程师

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

MLP全称Machine Learning Processing单元,是由一组至多32个乘法器的阵列,以及一个加法树、累加器、还有四舍五入rounding/饱和saturation/归一化normalize功能块。同时还包括2个缓存,分别是一个BRAM72k和LRAM2k,用于独立或结合乘法器使用。MLP支持定点模式和浮点模式,对应下面图1和图2。

震惊!FPGA运算单元可支持高算力浮点

图1 定点模式下的MLP框图

图2 浮点模式下的MLP框图

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

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

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

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