3 ms·
This is sadly true. If you want to do reliable floating-point computations beyond +, * and / with round-to-nearest (and even that isn't easy, since for example
by fdej 13y ago
This is sadly true. If you want to do reliable floating-point computations beyond +, * and / with round-to-nearest (and even that isn't easy, since for example the use of x87 instructions can result in the wrong precision), the only portable solution is still to use a software implementation such as MPFR. Which is a shame because you're letting all that fast silicon go to waste.
- deleted 13y ago[deleted]
- stephencanon 13y agoEven if all the basic operations were fully specified and implemented identically on all architectures, you would still have a noticeable performance vs. reproducibility tradeoff across architectures for "real computation". For example, different architectures have different numbers of registers and different cache hierarchies, which favors different access patterns in a fast matrix multiplication; thus linear algebra routines that attempt to be as fast as possible will necessarily group the arithmetic operations differently, which leads to different results even if individual arithmetic operations are guaranteed to be identical. It's not insurmountable, but it's a thornier problem than it looks at first.