New article: AMD's Jaguar Microarchitecture

Article: AMD's Jaguar Microarchitecture
By: Wilco (Wilco.Dijkstra.delete@this.ntlworld.com), April 7, 2014 2:27 am
Room: Moderated Discussions
Michael S (already5chosen.delete@this.yahoo.com) on April 7, 2014 2:34 am wrote:
> TREZA (no.delete@this.ema.il) on April 6, 2014 3:47 pm wrote:
> > Wilco (Wilco.Dijkstra.delete@this.ntlworld.com) on April 6, 2014 2:48 pm wrote:
> > > Extended precision as implemented in x87 is a huge mess. It even causes 32 and 64-bit
> > > FP to return inconsistent and incorrect results. Nowadays it means 128-bits, not 80.
> > >
> > A mess because there is no separate instructions like FADDs, FADDd,
> > FADDe, which makes programs prone to double rounding ?
>
> There are no separate instructions, but there is precision control field in the control
> word, so, as long as you don't change precision very often, you (or your compiler)
> can avoid double rounding at very relatively small performance penalty.

Changing precision is expensive, and if you have code with both float and double, you need to change precision all the time (and you cannot guarantee whether a function you called changed it unless you change the ABI to say that every function must save/restore the precision).

> 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...

> > The Motorola 68881/2 did not have that problem, IIRC.
> > (The whole x87 instruction set is a joke anyway)

And ARM's FPA did get it right too. The broken stack implementation is another idiotic aspect of x87 indeed.

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?