IEEE SA P3109机器学习算术格式的新特性
IEEE P3109草案标准定义了一组参数化的二进制浮点格式及相关操作,专注于支持机器学习。这些格式允许在少量比特内高效且一致地表示数值,参数包括位宽、精度、有符号性和无穷大的存在。操作通过将浮点值解码为闭扩展实数集(包含正负无穷和NaN)来定义,明确处理NaN和无穷操作数以确保仅调用实数运算。定义了广泛的舍入和饱和模式,包括随机舍入。操作无异常,通过返回值(如NaN)传达异常情况,加速了吞吐量。此外,引入了名为kappa近似的尺度不变度量,用于描述近似实现。标准函数定义和其他属性通过形式规范进行了机械验证和生成。
IEEE P3109草案标准近期发布,旨在为机器学习提供一种灵活且高效的算术表示方法。该标准定义了一族参数化的二进制浮点格式,允许开发者在位宽、精度、有符号性以及是否包含无穷大等维度上自由配置,从而在极小比特数下实现数值的高效与一致表示。这种灵活性使得针对不同机器学习模型的需求定制数值表示成为可能。
在操作定义上,P3109采用了独特的方法:将浮点数值解码为闭扩展实数集——即实数加上正负无穷和NaN(非数)。通过对NaN和无穷操作数的明确处理,确保了所有操作仅在实数算术层面进行,避免了传统浮点运算中的复杂异常处理。标准定义了丰富的舍入模式,包括随机舍入和饱和模式,且所有操作均无异常抛出,异常情况通过返回值(如NaN)来传达,从而加速了整体吞吐量。
除了基本运算,P3109还统一定义了具有公共比例因子的数值块上的操作,方便了批量处理。例如,在神经网络推理中,常常需要对一组共享缩放因子的张量元素进行相同的算术操作,该标准为此提供了统一的操作接口,减少了硬件和软件的复杂度。此外,标准引入了一种新颖的尺度不变度量——kappa近似,类似于ULP(最后一位单位),用于描述近似实现的精度。系统供应商可以利用该度量来标准化地报告其硬件实现的近似行为,这使得不同厂商的芯片在近似计算精度上可以公平比较。
整个标准的功能定义和属性已通过形式规范进行了机械验证,确保了可靠性和一致性。形式化方法的应用不仅验证了算术函数的正确性,还自动生成了参考实现,加速了标准采纳过程。对于机器学习社区而言,P3109提供了一种不同于IEEE 754的数值生态系统,后者更关注通用计算,而前者专门为机器学习工作负载优化。从模型训练到推理,开发者现在可以选择更紧凑、更高效的数值格式,而无需担心异常处理带来的性能开销。未来,随着该标准的正式批准,预计将出现一波支持P3109格式的硬件加速器和编译器优化,进一步推动机器学习在边缘设备上的部署。