FPGA AI Suite Handbook

ID 863373
Date 11/21/2025
Public
Document Table of Contents

9.4.1. Block Floating Point (BFP)

The following diagram illustrates the conversion from floating point (fp16) to block floating point (in this example, INT9-BFP). The mantissas of the inputs are aligned to the largest exponent value in the group, which becomes the shared exponent.

Figure 24. Conversion to block floating point

The Architecture Description File defines the block size parameter (c_vector) and block floating point precision parameter (arch_precision).

The following table below summarizes the block floating point notation used by the FPGA AI Suite. The mantissa widths given here include the implicit leading 1.

Table 27.  Block Floating Point Notation Convention

arch_precision

Block floating point

Meaning

FP11

INT7-BFP

1s.6m.5e (unsigned integer mantissa)

FP12AGX

INT8-BFP

8m.5e (two’s complement mantissa)

FP13AGX

INT9-BFP

9m.5e (two’s complement mantissa)

FP16

INT12-BFP

1s.11m.5e (unsigned integer mantissa)

Due to the architecture of its DSP blocks, the Agilex™ 7 FPGA fabric is optimally configured at INT9-BFP. The Agilex™ 5 FPGA fabrics are optimally configured in DSP tensor mode at INT8-BFP.

When converting from floating point to block floating point, numerical precision is lost in the following ways:

  • If input values in the block have different exponents, those values with smaller exponents lose lowermost precision bits through the shift-align-round operation.
  • If the BFP mantissa format has fewer bits of precision than the input floating point format, lowermost bits of precision are lost regardless of the exponent value.

Numerical experiments have demonstrated that the quantization to lower-precision block floating point formats results in relatively small accuracy loss for many popular networks. For details, refer to the Intel white paper " Low-Precision Networks for Efficient Inference on FPGAs ".