CT_00_034 -- Add support for __bf16

CT_00_034 -- Add support for __bf16

About

The bfloat16 (brain floating point) floating-point format is a computer number format occupying 16 bits in computer memory; it represents a wide dynamic range of numeric values by using a floating radix point. This format is a shortened (16-bit) version of the 32-bit IEEE 754 single-precision floating-point format (binary32) with the intent of accelerating machine learning and near-sensor computing. For detatils, see wiki.

Tasks to do:

  1. __bf16 scalar support in GCC.
  2. __bf16 vector support in GCC.


Stakeholders/Partners

RISE:

ESWIN:  Wang Feng, Zeng Xiao 

Ventana: Jeff Law oversight


External:

Jin Ma<jinma@linux.alibaba.com>




Dependencies


Status

Development

COMPLETE


Development Timeline2H2024
Upstreaming

COMPLETE


Upstream Version

gcc-15

Spring 2025




Contacts

Wang Feng (ESWIN)

Zeng Xiao (ESWIN)


Dependencies





Updates

 

  • Adjusted page to use Page Properties for reporting purposes

 

  • gcc intrinsic supports for Zvfbfmin Zvfbfwma have been merged in upstream.

 

  • Binutils supports for Zfbfmin Zvfbfmin Zvfbfwma have been merged in upstream.

 

  • GCC upstream has been started.
    • __bf16 scalar supports have been upstreamed.
      • Support __bf16 data type using libcall
      • Nan-box the result of movbf on soft-bf16
      • add Zfbfmin in -march to support limited __bf16 scalar instructions
    • __bf16 vector upstream was started.
      • add Zvfbfmin and Zvfbfwma in -march to support limited __bf16 vector instructions. upstreamed.
      • __bf16 vector built-in instructions. to do.
  • Binutils supports for Zfbfmin Zvfbfmin Zvfbfwma are in review.