Is there any reason this is marked as scribd, when the link goes to a normal PDF? Usually I avoid scribd documents, but I noticed that the link didn't go to scribd. [Apologies that this is Offtopic, but I was unsure where to post this question].
Why can I Debug some Numerical Programs that You Can’t? Why should we care?
11–19 of 19 posts
Re: Why can I Debug some Numerical Programs that You Can’t? Why should we care?
#12Re: Why can I Debug some Numerical Programs that You Can’t? Why should we care?
#13Is it infeasible to use something other than floats for such computations? There are many schemes for dealing with bigintegers, bigdecimals and such with reasonable performance.
There are some simulations that squeeze everything they can out of a GPU or a cluster or a TOP500 machine. And I don't think arbitrary precision can be done easily on a GPU; if someone knows more, I'd love to be corrected on this one.
But yeah, afaik arbitrary precision on GPUs isn't possible with reasonable performance.
Re: Why can I Debug some Numerical Programs that You Can’t? Why should we care?
#14As someone who doesn't typically have reason to use either -- is using floats rather than doubles actually common? I was under the impression this was pretty rare.
Most video games use floats. This is because doubles will be emulated in software on some platforms, thus making them incredibly slow. The Unreal Engine, for example uses floats extensively.
On PPC/ARM, single-precision allows you to use Altivec/NEON, which can give significant performance boosts as well.
Re: Why can I Debug some Numerical Programs that You Can’t? Why should we care?
#15As someone who doesn't typically have reason to use either -- is using floats rather than doubles actually common? I was under the impression this was pretty rare.
It's not rare at all. A double takes up twice as much memory as a float and memory bandwidth is a precious commodity these days. If you have a lot of numbers (e.g. in 3D models or similar) and don't need the extra precision, using floats is an obvious choice.
Re: Why can I Debug some Numerical Programs that You Can’t? Why should we care?
#16Earlier quoted context omitted.
There are some simulations that squeeze everything they can out of a GPU or a cluster or a TOP500 machine. And I don't think arbitrary precision can be done easily on a GPU; if someone knows more, I'd love to be corrected on this one.
TOP500 machines probably have CPU features that could help with that. But yeah, afaik arbitrary precision on GPUs isn't possible with reasonable performance.
And to answer him: Some programs can use it, some can't. IMO every program that can should, not not all do.
Re: Why can I Debug some Numerical Programs that You Can’t? Why should we care?
#17Earlier quoted context omitted.
There are some simulations that squeeze everything they can out of a GPU or a cluster or a TOP500 machine. And I don't think arbitrary precision can be done easily on a GPU; if someone knows more, I'd love to be corrected on this one.
TOP500 machines probably have CPU features that could help with that. But yeah, afaik arbitrary precision on GPUs isn't possible with reasonable performance.
In the current top 10, 5 are Intel, 4 are AMD (and 1 SPARC64). Many have Nvidia GPU co-processors.
The only slightly exotic architecture in the top 10 is number 10, which supplements its AMD CPUs with Cell co-processors.
Re: Why can I Debug some Numerical Programs that You Can’t? Why should we care?
#18-- 1 --
A very effective way to diagnose some kinds of problem in numerical software is to run it with different settings for floating-point rounding. That way, if you're using an algorithm whose outputs are pathologically sensitive to small variations in their inputs (or in intermediate results), you're likely to be able to tell because the final results will differ by more than a few bits in the lowest places.
Unfortunately, support for doing this is lacking in most programming languages and environments. This is a Bad Thing.
-- 2 --
When doing FP computation that mixes single and double precision, it is tempting to treat mixed-precision operations as single-precision rather than double precision. The latest version of MATLAB (at the time when Kahan gave this talk) does this.
This can be very bad, because doing more of the computation than necessary in single precision can produce needlessly inaccurate results and therefore slow down convergence of algorithms (or just plain screw them up).
This is also a Bad Thing.
-- 3 --
Computer architectures, languages and programming environments should be designed so that following the path of least resistance leads to good, not bad, numerical behaviour. Lots of more detailed proposals along these lines can be found on Kahan's web pages.
Making this happen is a big job. Kahan is likely to be dead before it's finished. So go and make it happen.
Re: Why can I Debug some Numerical Programs that You Can’t? Why should we care?
#19Is it infeasible to use something other than floats for such computations? There are many schemes for dealing with bigintegers, bigdecimals and such with reasonable performance.