Microscaling Formats (MX) vector data-types are stored in the vector registers within the AIE-ML v2.
More...
Microscaling Formats (MX) vector data-types are stored in the vector registers within the AIE-ML v2.
The MX formats consist of a number of mantissas sharing a common exponent. In the 16-bit (MX9) format, the mantissas are 8 bits long and the exponent is 8 bits. In the 8-bit prime (MX6) format, the mantissas are 5 bits long, and the exponent is 8 bits. In the 3-bit prime (MX4) format, the mantissas are 3 bits long, and the exponent is 8 bits. In addition to the mantissas and exponents, every two mantissas share a sub-tile shift bit, which will be used to decrease the shared exponent by one for the pair of mantissas.
The exponent block size (EBS) indicates how many mantissas share a common exponent. Only EBS 16 is supported.
Register layout of MX datatypes
When MX9 (bfp16) is loaded from memory, it is stored in register as follows:
MX6 or bfp13' vectors are stored in registers as follows:
MX4 or bfp11 vectors are stored in registers as MX6 (bfp13) with zero padding as follows:
Memory layout of MX datatypes
In memory, MX9 (bfp16) is stored as consecutive blocks. Each block contains an 8-bit exponent, one byte for the sub-tile shifts, and 16 8-bit mantissa values.
In memory, MX6 (bfp13) is stored as consecutive blocks. Each block contains an 8-bit exponent, one byte for the sub-tile shifts, and 16 5-bit mantissa values.
In memory, MX4 (bfp11) is stored as consecutive blocks. Each block contains an 8-bit exponent, one byte for the sub-tile shifts, and 16 3-bit mantissa values.
◆ v128mx4
◆ v128mx4_unaligned
◆ v128mx6
◆ v128mx6_unaligned
◆ v128mx9
◆ v128mx9_unaligned
◆ v16mx4
◆ v16mx6
◆ v16mx9
◆ v256mx4
◆ v256mx4_unaligned
◆ v256mx6
◆ v256mx6_unaligned
◆ v256mx9
◆ v32mx9
◆ v32mx9_unaligned
◆ v64mx4
◆ v64mx4_unaligned
◆ v64mx6
◆ v64mx6_unaligned
◆ v64mx9
◆ v64mx9_unaligned