Why was the double-precision experiment removed? #17870
-
People seemed quite excited for it in the original PR, and it would be very useful in some cases -- I've ended up re-implementing it myself before finding out it was already done. But it was removed a while later, and AFAICT (I'm not terribly familiar with Git yet) there's no attached issue or discussion for it. So, out of curiosity -- what happened to it? |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment
-
Hi - thanks for the question! double-double was my first project when I joined the JAX team. We removed it because the computational approach was untenable in JAX at the time: it relies on having predictable rounding errors for operations between floating point numbers, and as soon as you pass such operations to the compiler it tends to fuse them in a way that break the assumptions that double-double is built on. On top of that, I found there was not any straightforward way to do doubled-precision computations of operations beyond simple element-wise addition, subtraction, multiplication, and division: in particular, I could think of no way to do performant doubled-precision matmuls on GPU hardware, given that the roundoff errors for each individual multiplication are compounded by the built-in aggregation. In the end we decided to abandon the experiment because we saw no feasible path to making it a more generally applicable tool. |
Beta Was this translation helpful? Give feedback.
Hi - thanks for the question! double-double was my first project when I joined the JAX team. We removed it because the computational approach was untenable in JAX at the time: it relies on having predictable rounding errors for operations between floating point numbers, and as soon as you pass such operations to the compiler it tends to fuse them in a way that break the assumptions that double-double is built on. On top of that, I found there was not any straightforward way to do doubled-precision computations of operations beyond simple element-wise addition, subtraction, multiplication, and division: in particular, I could think of no way to do performant doubled-precision matmuls on GP…