将 bfloat16 范围和精度与其他 16 位数字进行比较

主要观点:深度学习激发了对新型浮点格式的兴趣,算法通常不需要标准 IEEE-754 双精度或单精度浮点数那么高的精度,低精度可在内存中容纳更多数字并提高速度。本文对比了 bfloat16 与 16 位的 IEEE 和 posit 数格式。
关键信息

  • BF16 位布局:有 16 位,与 FP16 位数相同,但指数位与 FP32 相同,各格式位分配情况见表格。
  • 精度:epsilon 值表示最小数,BF16 在 1 附近精度比其他格式低。
  • 动态范围:BF16 与 IEEE 单精度数类似,牺牲精度保留范围,动态范围以 decades 为单位给出。
  • 与 Posits 比较:Posit 数精度和动态范围取决于分配给最大指数的位数,16 位 Posit 在不同 es 值下的 epsilon 和动态范围与其他格式对比。
    重要细节
  • BF16 可通过截取 FP32 最后 16 位得到,或用 0 填充为 FP32。
  • 计算动态范围的 Python 代码链接。
  • 相关文章链接:[Anatomy of a floating point number]、[Anatomy of a posit number]、[Eight-bit floating point]。
阅读 38
0 条评论