🔬This is a nightly-only experimental API. (
f16
#116909)Expand description
A 16-bit floating-point type (specifically, the “binary16” type defined in IEEE 754-2008).
This type is very similar to f32
but has decreased precision because it uses half as many
bits. Please see the documentation for f32
or Wikipedia on half-precision
values for more information.
Note that most common platforms will not support f16
in hardware without enabling extra target
features, with the notable exception of Apple Silicon (also known as M1, M2, etc.) processors.
Hardware support on x86/x86-64 requires the avx512fp16 or avx10.1 features, while RISC-V requires
Zfh, and Arm/AArch64 requires FEAT_FP16. Usually the fallback implementation will be to use f32
hardware if it exists, and convert between f16
and f32
when performing math.