From: Matt Hurd (matthurd_at_[hidden])
Date: 2019-10-15 12:04:30
> Thanks for these useful references.
> Are bloat16 and IEEE float16
> the two layouts that we need to consider?
Arm also supports another in that it has two similar formats __fp16 and
"ARM processors support (via a floating point control register
<https://en.wikipedia.org/wiki/Control_register> bit) an "alternative
half-precision" format, which does away with the special case for an
exponent value of 31 (111112).
is almost identical to the IEEE format, but there is no encoding for
infinity or NaNs; instead, an exponent of 31 encodes normalized numbers in
the range 65536 to 131008." from wiki:
gcc ref: https://gcc.gnu.org/onlinedocs/gcc/Half-Precision.html
Strange complexity within Arm: "The ARM target provides hardware support
for conversions between __fp16 and float values as an extension to VFP and
NEON (Advanced SIMD), and from ARMv8-A provides hardware support for
conversions between __fp16 and double values. GCC generates code using
these hardware instructions if you compile with options to select an FPU
that provides them; for example, -mfpu=neon-fp16 -mfloat-abi=softfp, in
addition to the -mfp16-format option to select a half-precision format."
More bfloat16 FWIW (hardware support list is longer):
So that makes at least 3 I guess.
Facebook has been experimenting with an alternate format Gustafson's post
which is quite neat and rational and perhaps better than ieee at 64 bit
posit "land": https://posithub.org/news
but posit only lives in FPGA land AFAICT and not yet something to worry
> Unsubscribe & other changes:
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk