[Beowulf] Optimized math routines/transcendentals

Greg Lindahl lindahl at pbm.com
Sat Apr 30 15:02:29 PDT 2016


I should have mentioned that when I said that most people/codes don't
care about super-accurate range reduction, I was speaking from my
various previous lives as a radio astronomer, numerical
hydrodynamicist (is that even a word?), and I think it's true for the
weather and climate codes that I've worked with. I've never seen a
benchmark for a bid fail its error-check due to inaccurate range
reduction.

I suspect the typical scientific programmer has no idea that there's
an issue, and, has never tripped up on it either. It's typical for
compilers to stick in non-glibc trig routines at higher optimization
levels, and these non-glibc trig routines use stuff like SSE with
naive range reduction.

On Sun, May 01, 2016 at 03:09:07AM +0800, C Bergström wrote:
> I was hoping for feedback, from scientists, about what level of
> accuracy their codes or fields of study typically require. Maybe the
> weekend wasn't the best time to post.. hmm..
> 
> On Sun, May 1, 2016 at 1:31 AM, Peter St. John <peter.st.john at gmail.com> wrote:
> > A bit off the wall, and not much help for what you are doing now, but sooner
> > or later we won't be hand-crating ruthlessly optimal code; we'll be training
> > neural nets. You could do this now if you wanted: the objective function is
> > just accurate answers (which you get from sub-optimal but mathematically
> > correct existing code) and the wall clock (faster is better), and you train
> > with the target hardware. So in principle it's easy, and if you look at how
> > fast Deep Mind trained AlphaGo it begins to sound feasible to train for fast
> > fourier transforms or whatever.
> > Peter
> >
> > On Fri, Apr 29, 2016 at 9:06 PM, William Johnson <meatheadmerlin at gmail.com>
> > wrote:
> >>
> >> Due to the finite nature of number representation on computers,
> >> any answer will be an approximation to some degree.
> >> To me, it looks to be a non-issue to some 15 significant digits.
> >> I would say it depends how accurate you need.
> >> You could do long-hand general calculations that track percent error,
> >> and see how it gets compounded in a particular series of calculations.
> >>
> >> If you got right into the nuts and bolts of writing optimized functions,
> >> there are many clever ways to calculate common functions
> >> that you can find in certain math or algorithms & data structures texts.
> >> You would also need intimate knowledge of the target chipset.
> >> But it seems that would be way too much time in
> >> research and development to reinvent the wheel.
> >>
> >>
> >> On Fri, Apr 29, 2016 at 7:28 PM, Greg Lindahl <lindahl at pbm.com> wrote:
> >>>
> >>> On Sat, Apr 30, 2016 at 02:23:31AM +0800, C Bergström wrote:
> >>>
> >>> > Surprisingly, glibc does a pretty respectable job in terms of
> >>> > accuracy, but alas it's certainly not the fastest.
> >>>
> >>> If you go look in the source comments I believe it says which paper's
> >>> algorithm it is using... doing range reduction for sin(6e5) is
> >>> expensive to do accurately. Which is why the x86 sin() hardware
> >>> instruction does it inaccurately but quickly, and most people/codes
> >>> don't care.
> >>>
> >>> -- greg
> >>>
> >>>
> >>>
> >>> _______________________________________________
> >>> Beowulf mailing list, Beowulf at beowulf.org sponsored by Penguin Computing
> >>> To change your subscription (digest mode or unsubscribe) visit
> >>> http://www.beowulf.org/mailman/listinfo/beowulf
> >>
> >>
> >>
> >> _______________________________________________
> >> Beowulf mailing list, Beowulf at beowulf.org sponsored by Penguin Computing
> >> To change your subscription (digest mode or unsubscribe) visit
> >> http://www.beowulf.org/mailman/listinfo/beowulf
> >>
> >
> >
> > _______________________________________________
> > Beowulf mailing list, Beowulf at beowulf.org sponsored by Penguin Computing
> > To change your subscription (digest mode or unsubscribe) visit
> > http://www.beowulf.org/mailman/listinfo/beowulf
> >
> _______________________________________________
> Beowulf mailing list, Beowulf at beowulf.org sponsored by Penguin Computing
> To change your subscription (digest mode or unsubscribe) visit http://www.beowulf.org/mailman/listinfo/beowulf


More information about the Beowulf mailing list