In computing, minifloats are floating-point values represented with very few bits. This reduced precision makes them ill-suited for general-purpose numerical calculations, but they are useful for special purposes such as:
Computer graphics, where human perception of color and light levels has low precision. The 16-bit half-precision format is very popular. Machine learning, which can be relatively insensitive to numeric precision. 16-bit, 8-bit, and even 4-bit floats are increasingly being used. Additionally, they are frequently encountered as a pedagogical tool in computer-science courses to demonstrate the properties and structures of floating-point arithmetic and IEEE 754 numbers. Depending on context minifloat may mean any size less than 32, any size less or equal to 16, or any size less than 16. The term microfloat may mean any size less or equal to 8.
Notation This page uses the notation (S.E.M) to describe a mini float:
S is the length of the sign field (0 or 1). E is the length of the exponent field. M is the length of the mantissa (significand) field. Minifloats can be designed following the principles of the IEEE 754 standard. Almost all use the smallest exponent for subnormal and normal numbers. Many use the largest exponent for infinity and NaN, indicated by (special exponent) SE = 1. Some mini floats use this exponent value normally, in which case SE = 0. The exponent bias B = 2E − 1 − SE. This value insures that all representable numbers have a representable reciprocal. The notation can be converted to a (B,P,L,U) format as (2, M + 1, SE − 2E − 1 + 1, 2E − 1 − 1). A common notation used in the field of machine learning is FPn EeMm, where the lowercase letters are replaced by numbers. For example, FP8-E4M3 is the same as (1.4.3).
Usage Many situations that call for floating-point numbers do not actually require a lot of precision. This is typical for high dynamic range graphics and image processing. This is also typical for larger neural networks, a property that has been exploited since the 2020s to allow increasingly large language models to be trained and deployed. The more "general-purpose" example is the fp16 (1.5.10) in IEEE 754-2008, called "half-precision" (as opposed to 32-bit single and 64-bit double precision). The bfloat16 (1.8.7) format is the first 16 bits of a standard single-precision number and was often used in image processing and machine learning before hardware support was added for other formats.
Graphics The Radeon R300 and R420 GPUs used an "fp24" floating-point format (1.7.16). "Full Precision" in Direct3D 9.0 is a proprietary 24-bit floating-point format. Microsoft's D3D9 (Shader Model 2.0) graphics API initially supported both FP24 (as in ATI's R300 chip) and FP32 (as in Nvidia's NV30 chip) as "Full Precision", as well as FP16 as "Partial Precision" for vertex and pixel shader calculations performed by the graphics hardware. In 2016, Khronos defined 10-bit (0.5.5) and 11-bit (0.5.6) unsigned formats for use with Vulkan. These can be converted from positive half-precision by truncating the sign and trailing digits.
Microcontroller Minifloats are also commonly used in embedded devices such as microcontrollers where floating-point will need to be emulated in software. To speed up the computation, the mantissa typically occupies exactly half of the bits, so the register boundary automatically addresses the parts without shifting (ie (1.3.4) on 4-bit devices).
Machine learning In 2022, NVidia and others announced support for "fp8" format (1.5.2, E5M2). These can be converted from half-precision by truncating the trailing digits. This format supports special values such as NaN and infinity. They also announced a format without infinity and only two (positive and negative) representations for NaN, the FP8-E4M3 (1.4.3): after all, special values are unnecessary in the inference (forward-running, as opposed to training via backpropagation) of neural networks. The formats have been made into an industrial standard called OCP-FP8. Further compression such as FP4-E2M1 (1.2.1) has also proven fruitful.
Since 2023, IEEE SA Working Group P3109 is working on a standard for minifloats optimized for machine learning by systematizing current practice. Interim Report version 3.0 (August 2025) defines a family of many formats under the systematic name "binaryKpP[s/u][e/f]", where K is the total bit length, P is the precision (number of mantissa bits + 1), s/u (signed/unsigned) refers to whether a sign bit is present, and e/f (extended/finite) refers to whether infinity is included. By convention, s and e may be omitted. To save space for more numbers, there is no such thing as a "negative zero", and there is only one representation for NaN; for signed formats, the NaN can thus use the bit-pattern of what would've been negative zero. For example, the FP4-E2M1 format can be approximated as the following in P3109:
(For binary4p2se, ±6 are replaced by ±Infinity.) A downside of very small minifloats is that they have very little representable dynamic range. To fix this problem, the machine learning industry has invented "microscaling formats" (MX), a kind of block floating-point. In a MX format, a group of 32 minifloats share an additional scaling factor represented by an "E8M0" minifloat (which is able to represent powers of 2 between 2−127 and 2127). MX has been defined for FP8-E5M2, FP8-E4M3, FP6-E3M2 (1.3.2), FP6-E2M3 (1.2.3), and FP4-E2M1.
Examples
8-bit (1.4.3) A minifloat in 1 byte (8 bits) with 1 sign bit, 4 exponent bits and 3 significand bits (1.4.3) is demonstrated here. The exponent bias is defined as 7 to center the values around 1 to match other IEEE 754 floats so (for most values) the actual multiplier for exponent x is 2x−7. All IEEE 754 principles should be valid. This form is quite common for instruction.
… excerpt ends here. Continue reading the full article.




