New article: AMD's Jaguar Microarchitecture

Article: AMD's Jaguar Microarchitecture
By: Wilco (Wilco.Dijkstra.delete@this.ntlworld.com), April 7, 2014 4:44 pm
Room: Moderated Discussions
UnmaskedUnderflow (unmasked.delete@this.unmasked.org) on April 7, 2014 2:11 pm wrote:
> Wilco (Wilco.Dijkstra.delete@this.ntlworld.com) on April 7, 2014 1:50 pm wrote:
> > UnmaskedUnderflow (unmasked.delete@this.unmasked.org) on April 7, 2014 12:26 pm wrote:
> > > Michael S (already5chosen.delete@this.yahoo.com) on April 7, 2014 5:39 am wrote:
> > > > Wilco (Wilco.Dijkstra.delete@this.ntlworld.com) on April 7, 2014 3:27 am wrote:
> > > > > >
> > > > > > The real problem is more exotic - x87 precision control can reduce the precision of
> > > > > > mantissa, but it can't reduce the range of exponent. So, results of x87 computations
> > > > > > with single or double precision remain the same as specified by IEEE only as long as
> > > > > > you stay within official range. Which sounds nearly impossible in practice.
> > > > >
> > > > > You can store to memory after every operation to get the exponent right - this is still
> > > > > not IEEE compliant as denormals suffer from double rounding. Of course doing this causes
> > > > > another performance penalty but at least it gives more consistent results than variables
> > > > > whose values suddenly change due to needing to be spilled to memory by the compiler.
> > > > >
> > > > >
> > > > > Basically you cannot get IEEE results from x87. Quite ironic since
> > > > > x87 was supposed to be the first IEEE implementation...
> > > > >
> > > >
> > >
> > > This part of the conversation is confusing details. x87 precision will correctly round
> > > once if you set it to DP/SP and produce the correct memory result internally.
> >
> > If only - my point was that it doesn't produce correct SP/DP results. See eg. http://hal.archives-ouvertes.fr/docs/00/28/14/29/PDF/floating-point-article.pdf
> >
> > for a good writeup of the many pitfalls of x87.
>
>
> Page 13 of that exact paper says:

"Double rounding can also cause some subtle differences for very small num-
bers that are rounded into subnormal double-precision values if computed in
IEEE-754 double precision: if one uses the “double-precision” mode of the x87
FPU, these numbers will be rounded into normalised values inside the FPU reg-
ister, because of a wider range of negative exponents; then they will be rounded
again into double-precision subnormals when written to memory. This is known
as double-rounding on underflow."

> To Michael's point, I do not recall what happens on double denorms in EP, been
> too long for me. You/Wilco may be right since the exponents are held in EP. If
> this small sub-section of sub-sections is causing you math pain, yikes?

All these problems are real issues which cause correct programs to fail when using x87 or produce different results than SSE or other architectures. If you read the paper you find lots of anecdotes of how x87 causes lots of issues that wouldn't exist if x87 was IEEE compliant - including bug reports due to double-rounding on underflow. You can also blame compiler writers for being lazy and not implement all the workarounds necessary to make x87 produce vaguely consistent results. Of course doing so would slow down x87 code even further...

> I'm not sure what we're arguing about at this point? If you want to hear that
> ARM kicks x86's butt in masked denormals, yes, big time. But x87 being "wrong"
> is a bit of a stretch. It does precisely what the spec says it does...
>
> Again, I'll stop. Defending x87 was not my intent. By all means move on, please!

Well I was arguing earlier that SSE obsoleting x87 was a huge step forward for IEEE FP. Then we got into the details and the fact is that it is impossible to get IEEE compliant results out of x87.

Wilco
< Previous Post in ThreadNext Post in Thread >
TopicPosted ByDate
New article: AMD's Jaguar MicroarchitectureDavid Kanter2014/04/01 12:19 AM
  New article: AMD's Jaguar MicroarchitectureSHK2014/04/01 05:09 AM
    New article: AMD's Jaguar MicroarchitectureJeff Rupley2014/04/01 06:13 PM
      New article: AMD's Jaguar MicroarchitectureSHK2014/04/02 05:45 AM
        CMOV is 3 operand given register renamingPaul A. Clayton2014/04/02 08:11 AM
          CMOV is 3 operand given register renamingSHK2014/04/02 11:17 AM
            Limited operand tags in issue queue entriesPaul A. Clayton2014/04/02 12:32 PM
        New article: AMD's Jaguar MicroarchitectureLinus Torvalds2014/04/02 11:48 AM
          New article: AMD's Jaguar MicroarchitectureLinus Torvalds2014/04/02 01:32 PM
  New article: AMD's Jaguar MicroarchitectureGeorge2014/04/01 01:10 PM
  New article: AMD's Jaguar Microarchitecturewillmore2014/04/01 05:37 PM
    New article: AMD's Jaguar Microarchitecturewillmore2014/04/01 06:08 PM
    New article: AMD's Jaguar MicroarchitectureNaN2014/04/02 07:58 AM
      New article: AMD's Jaguar MicroarchitectureUnmaskedUnderflow2014/04/04 06:16 AM
        New article: AMD's Jaguar MicroarchitectureLinus Torvalds2014/04/04 07:54 AM
          New article: AMD's Jaguar MicroarchitectureUnmaskedUnderflow2014/04/04 10:45 AM
            New article: AMD's Jaguar MicroarchitectureLinus Torvalds2014/04/04 01:00 PM
              New article: AMD's Jaguar MicroarchitectureNoSpammer2014/04/04 02:15 PM
              New article: AMD's Jaguar MicroarchitectureTREZA2014/04/04 02:18 PM
                New article: AMD's Jaguar MicroarchitectureLinus Torvalds2014/04/04 03:56 PM
                  New article: AMD's Jaguar MicroarchitectureTREZA2014/04/04 04:34 PM
                  New article: AMD's Jaguar MicroarchitectureMichael S2014/04/05 10:02 AM
                  New article: AMD's Jaguar Microarchitecturecomputational_scientist2014/04/05 05:50 PM
                    New article: AMD's Jaguar MicroarchitectureMichael S2014/04/06 12:22 AM
                    New article: AMD's Jaguar MicroarchitectureWilco2014/04/06 04:29 AM
                      New article: AMD's Jaguar Microarchitecturecomputational_scientist2014/04/06 06:33 AM
                        New article: AMD's Jaguar MicroarchitectureWilco2014/04/07 02:12 AM
                          New article: AMD's Jaguar MicroarchitectureMichael S2014/04/07 05:58 AM
                        New article: AMD's Jaguar MicroarchitectureEduardoS2014/04/07 03:34 PM
                      New article: AMD's Jaguar Microarchitecturecomputational_scientist2014/04/06 06:53 AM
                      New article: AMD's Jaguar MicroarchitectureMegol2014/04/06 07:21 AM
                        New article: AMD's Jaguar Microarchitecturenone2014/04/06 08:07 AM
                          New article: AMD's Jaguar MicroarchitectureMichael S2014/04/06 08:23 AM
                        New article: AMD's Jaguar MicroarchitectureWilco2014/04/06 01:48 PM
                          New article: AMD's Jaguar MicroarchitectureTREZA2014/04/06 02:47 PM
                            New article: AMD's Jaguar MicroarchitectureMichael S2014/04/07 01:34 AM
                              New article: AMD's Jaguar MicroarchitectureWilco2014/04/07 02:27 AM
                                New article: AMD's Jaguar MicroarchitectureMichael S2014/04/07 04:39 AM
                                  New article: AMD's Jaguar MicroarchitectureUnmaskedUnderflow2014/04/07 11:26 AM
                                    New article: AMD's Jaguar MicroarchitectureMichael S2014/04/07 12:42 PM
                                    New article: AMD's Jaguar MicroarchitectureWilco2014/04/07 12:50 PM
                                      New article: AMD's Jaguar MicroarchitectureUnmaskedUnderflow2014/04/07 01:11 PM
                                        New article: AMD's Jaguar MicroarchitectureWilco2014/04/07 04:44 PM
                                      New article: AMD's Jaguar MicroarchitectureTREZA2014/04/07 02:38 PM
              denormal on IvyB and HaswellMichael S2014/04/05 09:45 AM
                Forum searchiz2014/04/05 11:54 AM
                denormal on IvyB and HaswellLinus Torvalds2014/04/06 08:55 AM
                  denormal on IvyB and HaswellMichael S2014/04/17 05:43 PM
            New article: AMD's Jaguar Microarchitecturedmcq2014/04/05 05:52 AM
            New article: AMD's Jaguar MicroarchitectureMaynard Handley2014/04/05 09:38 AM
              New article: AMD's Jaguar MicroarchitectureMichael S2014/04/05 09:59 AM
                New article: AMD's Jaguar MicroarchitectureBrett2014/04/05 11:12 AM
                  New article: AMD's Jaguar MicroarchitectureEduardoS2014/04/05 11:29 AM
                    New article: AMD's Jaguar MicroarchitectureBrett2014/04/05 12:00 PM
                      New article: AMD's Jaguar MicroarchitectureMichael S2014/04/06 01:18 AM
                        New article: AMD's Jaguar MicroarchitectureBrett2014/04/06 09:08 AM
                          New article: AMD's Jaguar MicroarchitectureBrett2014/04/06 09:11 AM
                New article: AMD's Jaguar MicroarchitectureMaynard Handley2014/04/05 05:01 PM
                  New article: AMD's Jaguar MicroarchitectureMichael S2014/04/06 12:50 AM
                    New article: AMD's Jaguar MicroarchitectureMaynard Handley2014/04/06 02:52 PM
                      New article: AMD's Jaguar MicroarchitectureMichael S2014/04/07 01:20 AM
                        New article: AMD's Jaguar MicroarchitectureMaynard Handley2014/04/07 09:38 AM
                          New article: AMD's Jaguar MicroarchitectureWilco2014/04/07 09:47 AM
                            New article: AMD's Jaguar MicroarchitectureMaynard Handley2014/04/07 01:52 PM
                              New article: AMD's Jaguar MicroarchitectureWilco2014/04/07 03:01 PM
                                New article: AMD's Jaguar MicroarchitectureSeni2014/04/08 01:03 PM
                                  New article: AMD's Jaguar MicroarchitectureWilco2014/04/08 01:56 PM
                                    New article: AMD's Jaguar MicroarchitectureMichael S2014/04/08 03:05 PM
                                      New article: AMD's Jaguar MicroarchitectureMaynard Handley2014/04/08 05:55 PM
                                        New article: AMD's Jaguar MicroarchitectureMichael S2014/04/09 12:12 AM
                  New article: AMD's Jaguar MicroarchitectureWilco2014/04/06 03:51 AM
  New article: AMD's Jaguar MicroarchitectureWaltC2014/04/02 12:52 PM
    New article: AMD's Jaguar MicroarchitectureLinus Torvalds2014/04/02 01:25 PM
      New article: AMD's Jaguar Microarchitectureitsmydamnation2014/04/02 11:19 PM
      New article: AMD's Jaguar MicroarchitectureLinus Torvalds2014/04/09 12:44 PM
        New article: AMD's Jaguar MicroarchitectureDavid Kanter2014/04/10 10:24 PM
          New article: AMD's Jaguar Microarchitecturenone2014/04/11 12:49 AM
          New article: AMD's Jaguar MicroarchitectureLinus Torvalds2014/04/11 08:14 AM
    New article: AMD's Jaguar MicroarchitectureRyan Dean2014/04/03 12:04 AM
  New article: AMD's Jaguar MicroarchitecturePaul A. Clayton2014/04/02 04:02 PM
  New article: AMD's Jaguar MicroarchitectureRicky Chan2014/04/03 06:50 AM
    New article: AMD's Jaguar Microarchitecturesomeone2014/04/04 06:18 AM
  New article: AMD's Jaguar Microarchitecturebakaneko2014/04/09 02:08 PM
    New article: AMD's Jaguar MicroarchitectureTREZA2014/04/09 04:34 PM
  Jaguar's detailsHugo Décharnes2014/06/07 03:08 AM
Reply to this Topic
Name:
Email:
Topic:
Body: No Text
How do you spell green?