Earlier quoted context omitted.
Google's TPUs use them. But it has been for a year. I don't agree with the "new" or "Intel's" in the title.
And TPU uses them because Tensorflow uses them, it's been present since the first public commit: https://github.com/tensorflow/tensorflow/blob/f41959ccb2d9d4...
Bfloat16 – Hardware Numerics Definition [pdf]
11–20 of 25 posts
Re: Bfloat16 – Hardware Numerics Definition [pdf]
#12Earlier quoted context omitted.
To me it looks like a clever optimization. Same range as FP32, but half the size and less precise and can be converted back and forth by truncating and concatenating zeros. Is anyone else using it?
Google uses it on their TPUs [0]. If you're interested in how it would effect the numerical stability of an algorithm you want to use, there is a Julia package that makes prototyping linear algebra over this datatype pretty straightforward [1]. [0] https://cloud.google.com/tpu/docs/system-architecture [1] https://github.com/JuliaComputing/BFloat16s.jl
Re: Bfloat16 – Hardware Numerics Definition [pdf]
#137 bit mantissa doesn't sound like a lot, 2^-7 is 0.0078125... shouldn't there be at least 9 bits for the mantissa?
Re: Bfloat16 – Hardware Numerics Definition [pdf]
#147 bit mantissa doesn't sound like a lot, 2^-7 is 0.0078125... shouldn't there be at least 9 bits for the mantissa?
Note that 7 bits stored means 8 bit mantissa. And bfloat16 is new but not that new: Tensorflow had it 3 years back[0]. Apparently range is more useful than precision for machine learning, which would be why they went 8/8 instead of IEEE's 11/5 FP16. [0] https://github.com/tensorflow/tensorflow/blob/f41959ccb2d9d4...
Re: Bfloat16 – Hardware Numerics Definition [pdf]
#157 bit mantissa doesn't sound like a lot, 2^-7 is 0.0078125... shouldn't there be at least 9 bits for the mantissa?
There's an existing standardized 16-bit float with 10 bits mantissa¹, that graphics people are fond of. This one is for machine learning [ drink ]. ¹ https://en.wikipedia.org/wiki/Half-precision_floating-point_...
Re: Bfloat16 – Hardware Numerics Definition [pdf]
#16Earlier quoted context omitted.
Google's TPUs use them. But it has been for a year. I don't agree with the "new" or "Intel's" in the title.
And TPU uses them because Tensorflow uses them, it's been present since the first public commit: https://github.com/tensorflow/tensorflow/blob/f41959ccb2d9d4...
Re: Bfloat16 – Hardware Numerics Definition [pdf]
#17Earlier quoted context omitted.
And TPU uses them because Tensorflow uses them, it's been present since the first public commit: https://github.com/tensorflow/tensorflow/blob/f41959ccb2d9d4...
I would be extremely surprised if the motivation for putting bfloat16 in tensorflow was not the TPU. That first public commit was ~1.5 years before TPUv2 was announced at I/O, so it was almost certainly already in development.
Re: Bfloat16 – Hardware Numerics Definition [pdf]
#18Bfloat16 is much better for conversions from f32.
https://github.com/tensorflow/tensorflow/blob/master/tensorf...
Re: Bfloat16 – Hardware Numerics Definition [pdf]
#19I'll just leave this here. :-X Bfloat16 is much better for conversions from f32. https://github.com/tensorflow/tensorflow/blob/master/tensorf...