No. Mill does not get the hit because it does not get the benefit even when correctly predicted.

By: Maynard Handley (name99.delete@this.name99.org), January 3, 2019 12:24 pm
Room: Moderated Discussions
Doug S (foo.delete@this.bar.bar) on January 2, 2019 10:38 am wrote:
> Brett (ggtgp.delete@this.yahoo.com) on January 2, 2019 12:15 am wrote:
> > This is not Itanic, which was always a pack of lies, from every angle you look at the problem.
> > The Mill team does not have billions to chase rainbows, which
> > is the most generous thing you can say Itanic was doing.
>
>
> Remember where Itanium originated - with HP's PA-RISC group 25+ years ago looking beyond where PA-RISC
> needed to go after the obvious 64 bit extension. One of the main ideas behind the original "RISC"
> strategy was that smarter compilers would allow slimming the transistor budget for the things the
> compiler could do, to be used for other things that wouldn't have otherwise been possible.
>
> RISC was a success, so the next logical step to HP's architects was to expect even more out
> of compilers, further slimming the transistor budget (no longer needing to worry about OOE,
> etc.) to be used for other things that wouldn't have otherwise been possible (i.e. wider)
>
> I don't know what evidence existed (in research or whatever) that the "magic compiler" necessary
> to make RISC work was possible before the first RISC, any more than similar evidence existed
> for EPIC's "magic compiler". In hindsight, the latter was obviously a much bigger step than
> the former, and proved to be too much, but I don't see how HP's team could have known that at
> the time. They had no reason to sell a "pack of lies" or "chase rainbows", they were designing
> a successor to PA-RISC, which would only be used if it actually performed better.
>
> Obviously the Itanium engineers will have figured out it WAS infeasible years before Intel actually
> killed it - because Intel didn't want the egg on their face after the heavy promotion and had various
> commitments to it (especially to HP) that meant keeping it alive far longer than it should have been.
> Intel needed to get 64 bit x86 widely avaiable so they had a good story to tell ("wow x86 has scaled
> so much better than expected we really don't need Itanium any longer") to try to save face.

I don't know if that's an accurate analysis.

First I don't think RISC vs CISC is a useful axis; the axis that mattered was OoO vs EPIC.

In particular we know NOW that the win from OoO is primarily in the handling of things the compiler can't predict (branch results and cache misses), NOT in "micro" OoO of an instruction slipping two or three cycles --- that can be handled by optimal in order scheduling.

Now, was this known at the time? I'm not sure. Certainly a lot of the early OoO PPCs were pretty much set up for micro-scheduling only --- they had TINY queues and ROBs. And at the time (hell, even today for most circumstances outside GPUs,JITs and some of the Apple world) it's not helpful to talk about the single best schedule for a particular CPU instance if you have to ship a single binary to multiple different CPU instances.

So, point is:
- the RISC compiler job was easy
- the "do IO close to as well as OoO" compiler job was easy-ish under the right circumstances
- there was PRACTICAL, if not theoretical, value to even small levels of OoO because they acted like a "performance" version of an ISA. An ISA let's you move binaries between implementations, but doesn't promise they'll work well, only that they will work. OoO, even in small versions, gets close to promising that any binary will work reasonably close to optimal, regardless of what the binary targeted, and how later implementations changed.

But the EPIC job was a claim that you can ALSO get in the compiler (some how?, with predication and poison load bits?) ALL these advantages. So
- you need to get the branch prediction advantage --- but we know what happens when you rely on predication everywhere (especially when you have to start nesting it), not JUST for specifically targeted hot targets
- you need magic in the compiler to be able to predict most of the upcoming loads many many cycles in advance. Prefetchers can only do some of this, the user can only hint (only knows!) some of it
- and don't forget that easy binary portability across very different implementations advantage.

Maybe it's the advantage of hindsight, but I think it's pretty clear just how silly the EPIC assumptions were, the gap between what they were hoping for, and reality, in a way that was never true for either EPIC or OoO.

Now this does not mean that existing ISAs (RISC or CISC, if you have to classify yourself by utterly irrelevant 80s tribal badges) are optimal.
In particular I could certainly believe the claims that EDGE ISAs will be a better solution longterm. The concept ("couldn't we do better if we describe the data flow to the CPU rather than a lower level insistence on exactly what gets done in what order") clearly makes sense; the question is whether it can be translated into real silicon in a way that's practical; and that's far too far from my field of expertise for me to have an opinion.

Oh, for people who haven't read it (jesus christ, that's a link and a half!):
https://piazza-resources.s3.amazonaws.com/hf1cdb546x444z/hg1su47nz4g5po/Discerning.pdf?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=ASIAR6AWVCBXWSVKKHMZ%2F20190103%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20190103T185319Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Security-Token=FQoGZXIvYXdzEKr%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FwEaDI9PviHRZ5DLxssoDyK3A3EJQ%2FGIOv4FiC0a1%2Br%2BvBhM8BICllgYPz9b5goNkWYv4c8GKazVtP%2BQUTi3MWUacs%2BDpGtZvx%2FYa3jigIBJTh2g09jhZDUAEPB%2BtMM%2B07WkpqZ8T42dXY1sfKNWymRqOSrewhDvtTwjYsC2CpK%2FOAvTy21Ww%2B%2BzeG2EsPbw7VdCJlZj5YXsXlVN47HmrGPxow9SNbNCN%2BEFnJ47d0CMluHaRqbdF3H7Mmbn499GENec%2BIYJGo%2BdcjPjHySmIhEQ%2B%2BkNCPybc3lbYtH5tnCyGsKPzESnozBEFhiTDUQSRekCDRCRZlZsBqO5GQOQxO8EcDtOieJC5Hky1hefJy3j3uZ0WTBsPWP3x8kICkMkJr%2FxIpPcgFUfbKlut0gOTDZevMG0d%2BU1n8F52wT1ewf5fm13MnpWDbXEjrsIpHxsH5qIg7F8LeYzD%2Bme%2F3g4Es8Y2t%2F3UEiNhupxHhF5ljyYR2f0AQuXymHskJahu2%2BzZM2Wt6On2dodCVNpTLwb19ACsQzPmArgVC4ft7sOsVgf6%2B%2BFgyb73X6AW0F06Hf0XKvLusaaYtLMf1C%2F42oVPxRC2tDst3MtIpIov%2Fm44QU%3D&X-Amz-Signature=5a5ee2409804322dbebaae0cbaff6bd1fec47cf3d2b8413c0a7ae9787526c104

is the paper describing the OoO win. I would not especially endorse their entire set of conclusions (especially not in the simple-minded "IO can be almost as good as OoO, given a perfect compiler and profiling"), but the paper has its interesting parts.

One thing I think they miss is the extent to which once you have an OoO infrastructure you can just keep building on it. For example they don't discuss the wins from load/store bypassing, and one suspects they don't see much of a win from MLP because they're not providing a crazy ambitious (A12-level) degree of MLP hardware in their simulator.

(Or more precisely they are rather unfair in the comparison, assuming the IO machine has KIP-style support for MLP via iCFP, whereas their OoO machine has not only no KIP-style support, but is unambiguously provisioned for OoO.
Basically a reasonable argument for "here's how to build a faster IO CPU, maybe for low power"; but not a good argument for "here's how existing IO machines can hit much the same performance level as OoO machines".)
< Previous Post in ThreadNext Post in Thread >
TopicPosted ByDate
Independent micro threadsBrett2018/12/30 01:55 PM
  Independent micro threadsTravis Downs2018/12/30 04:18 PM
    Independent micro threadsBrett2018/12/30 07:16 PM
      Independent micro threadsTravis Downs2018/12/30 07:34 PM
        Independent micro threadsBrett2018/12/30 07:48 PM
          Independent micro threadsTravis Downs2018/12/30 09:06 PM
            Independent micro threadsBrett2018/12/30 10:57 PM
              Independent micro threadsTravis Downs2018/12/31 12:42 AM
                Independent micro threadsBrett2019/01/01 07:02 PM
                  Independent micro threadsMichael S2019/01/02 02:01 AM
                    Independent micro threadsMaynard Handley2019/01/02 03:29 PM
              Independent micro threadsMontaray Jack2019/01/01 02:12 AM
  Independent micro threadsanon2018/12/30 04:34 PM
  Independent micro threadsPaul A. Clayton2018/12/30 05:15 PM
  Independent micro threadsDavid Hess2018/12/30 06:47 PM
    Independent micro threadsDomaldel2018/12/30 07:06 PM
      Independent micro threadsDavid Hess2018/12/30 07:26 PM
        Independent micro threadsDoug S2018/12/31 10:26 AM
          Independent micro threadsDavid Hess2018/12/31 09:32 PM
            Independent micro threadsDoug S2019/01/01 12:40 AM
              Independent micro threadsDavid Hess2019/01/01 11:41 AM
            Overcomming thermal limits of a high dencity 3D arcitecture (Formerly "Independent micro threads")Domaldel2019/01/01 12:40 AM
              Overcomming thermal limits of a high dencity 3D arcitecture (Formerly "Independent micro threads")Domaldel2019/01/01 12:44 AM
                Overcomming thermal limits of a high dencity 3D arcitecture (Formerly "Independent micro threads")Domaldel2019/01/01 12:49 AM
                  Overcomming thermal limits of a high dencity 3D arcitecture (Formerly "Independent micro threads")Domaldel2019/01/01 12:51 AM
              Overcomming thermal limits of a high dencity 3D arcitecture (Formerly "Independent micro threads")Simon Farnsworth2019/01/01 06:05 AM
                Overcomming thermal limits of a high dencity 3D arcitecture (Formerly "Independent micro threads")Domaldel2019/01/01 08:01 AM
                Overcomming thermal limits of a high dencity 3D arcitecture (Formerly "Independent micro threads")Maynard Handley2019/01/01 01:17 PM
                  Taking things to extremes.Domaldel2019/01/01 05:44 PM
                    Yes, I know, the forum is named *Real* World Tech, but I'm thinking that perhapsDomaldel2019/01/01 05:52 PM
                      Yes, I know, the forum is named *Real* World Tech, but I'm thinking that perhapsMontaray Jack2019/01/02 07:26 AM
                        Yes, I know, the forum is named *Real* World Tech, but I'm thinking that perhapsMontaray Jack2019/01/02 08:21 AM
                    Taking things to extremes.Maynard Handley2019/01/01 06:55 PM
                    Taking things to extremes.Kevin G2019/01/04 08:57 AM
              Overcomming thermal limits of a high dencity 3D arcitecture (Formerly "Independent micro threads")David Hess2019/01/01 11:36 AM
    Independent micro threadsTravis Downs2018/12/30 07:38 PM
    Independent micro threadsBrett2018/12/30 07:41 PM
  Independent micro threadsanon2018/12/30 08:20 PM
    Independent micro threadsBrett2018/12/30 08:51 PM
      Independent micro threadsTravis Downs2018/12/30 09:48 PM
        Mill and Independent micro threadsBrett2019/01/01 07:39 PM
          No. Mill does not get the hit because it does not get the benefit even when correctly predicted.Heikki Kultala2019/01/02 12:29 AM
            No. Mill does not get the hit because it does not get the benefit even when correctly predicted.Brett2019/01/02 01:15 AM
              No. Mill does not get the hit because it does not get the benefit even when correctly predicted.Heikki Kultala2019/01/02 02:22 AM
                No. Mill does not get the hit because it does not get the benefit even when correctly predicted.Brett2019/01/03 01:13 AM
                  "Leaf branch" is not a commonly used termHeikki Kultala2019/01/03 03:48 AM
                    "Leaf branch" is not a commonly used termBrett2019/01/03 04:35 AM
                      You lack parallelism than OoOE givesHeikki Kultala2019/01/03 07:38 AM
                        You lack parallelism than OoOE givesBrett2019/01/04 02:41 AM
                          You lack parallelism than OoOE givesBrett2019/01/04 04:10 PM
                            You lack parallelism than OoOE givesBrett2019/01/05 08:29 PM
                              Mill speculates, more parallelism than OoOE givesBrett2019/01/05 08:31 PM
                                Mill *is* a speculationEric Bron2019/01/06 05:04 AM
                                  Mill *is* a speculationMichael S2019/01/06 05:53 AM
                                    Mill *is* a speculationBrett2019/01/06 09:03 PM
                                  Mill *is* a speculationjuanrga2019/01/06 06:10 AM
                                    probably ~2 (NT)Michael S2019/01/06 06:51 AM
                                  Mill *is* a speculationBrett2019/01/06 01:18 PM
                                    Mill *is* a speculationEric Bron2019/01/06 03:36 PM
                                      Mill *is* a speculationBrett2019/01/06 08:47 PM
                                        Mill *is* a speculationJacob Marley2019/01/06 10:29 PM
                                          Mill *is* a speculationBrett2019/01/07 04:24 AM
                                            Mill *is* a speculationMichael S2019/01/07 05:23 AM
                                            Mill *is* a speculationEric Bron2019/01/07 05:36 AM
                                              Mill *is* a speculationBrett2019/01/07 03:40 PM
                                                Mill *is* a speculationEric Bron2019/01/07 05:32 PM
                                            Mill is something you don't understandHeikki Kultala2019/01/08 04:19 AM
                                              Mill is something you don't understandMichael S2019/01/08 07:44 AM
                                                Itanium and static vs dynamicHeikki Kultala2019/01/09 03:14 AM
                                                  Itanium and static vs dynamicPaul A. Clayton2019/01/09 08:51 AM
                                        Mill *is* a speculationEric Bron2019/01/07 05:27 AM
                                          Mill *is* a speculationEric Bron2019/01/07 06:23 AM
                                      Mill *is* a speculationanon2019/01/07 06:24 AM
                                        Mill *is* a speculationEric Bron2019/01/07 06:52 AM
                                          Mill *is* a speculationanon2019/01/07 08:36 AM
                                            Mill *is* a speculationEric Bron2019/01/07 09:20 AM
                                        Mill *is* a speculationjuanrga2019/01/07 10:22 AM
                                          Mill *is* a speculationanon2019/01/07 01:16 PM
                                        Mill *is* a speculationanon2019/01/07 09:46 PM
                                          Mill *is* a speculationanon2019/01/08 01:56 AM
                                            Mill *is* a speculationanon2019/01/08 03:39 AM
                                              Mill *is* a speculationMichael S2019/01/08 03:52 AM
                                                Mill *is* a speculationanon2019/01/08 10:10 PM
                                                  Wasted width not wasted work.Brett2019/01/09 11:44 AM
                                                    No such thing was declared. (NT)anon2019/01/09 03:41 PM
                                                    Very simple test for new uarch ideassomeone2019/01/10 07:03 AM
                                                      Very simple test for new uarch ideasdmcq2019/01/10 07:21 AM
                                                        Very simple test for new uarch ideasDoug S2019/01/10 10:01 AM
                                                          Very simple test for new uarch ideasDan Fay2019/01/10 01:13 PM
                                                      Very simple test for new uarch ideasanonymous22019/01/10 11:03 AM
                                                        Very simple test for new uarch ideasAlberto2019/01/10 11:32 AM
                                                      Very simple test for new uarch ideasEtienne2019/01/11 03:03 AM
                                                        Very simple test for new uarch ideasFoo_2019/01/11 04:31 AM
                                                          Very simple test for new uarch ideasEtienne2019/01/11 05:51 AM
                                                            Very simple test for new uarch ideasFoo_2019/01/11 05:53 AM
                                                              Very simple test for new uarch ideasdmcq2019/01/11 06:08 AM
                                                              Very simple test for new uarch ideasEtienne2019/01/11 06:13 AM
                                                                Very simple test for new uarch ideasFoo_2019/01/11 06:54 AM
                                                                  Very simple test for new uarch ideasEtienne2019/01/11 07:32 AM
                                                                    Very simple test for new uarch ideasBrett2019/01/11 10:25 AM
                                                                      Very simple test for new uarch ideasMegol2019/01/12 06:29 AM
                                                                        Very simple test for new uarch ideasMichael S2019/01/12 09:21 AM
                                                                          Word salad AI fundamentaliy brokenBrett2019/01/12 01:59 PM
                                                                          Very simple test for new uarch ideasMegol2019/01/13 11:51 AM
                                              Mill *is* a speculationanon2019/01/08 08:50 AM
                                                Mill *is* a speculationEric Bron2019/01/08 09:03 AM
                                                  Mill *is* a speculationanon2019/01/08 09:21 AM
                      "Leaf branch" is not a commonly used termMichael S2019/01/03 07:57 AM
                        "Leaf branch" is not a commonly used termBrett2019/01/04 03:29 AM
                  Calls are not needed for speculation for mill if there are no side effect,and dont help if there areHeikki Kultala2019/01/08 04:28 AM
              No. Mill does not get the hit because it does not get the benefit even when correctly predicted.anon2019/01/02 03:05 AM
              No. Mill does not get the hit because it does not get the benefit even when correctly predicted.Doug S2019/01/02 11:38 AM
                No. Mill does not get the hit because it does not get the benefit even when correctly predicted.rwessel2019/01/02 05:53 PM
                  No. Mill does not get the hit because it does not get the benefit even when correctly predicted.anon2019/01/02 08:56 PM
                    itanicBrett2019/01/03 12:41 AM
                      itanicanon2019/01/03 03:12 AM
                      itanicDavid Hess2019/01/03 08:06 AM
                    No. Mill does not get the hit because it does not get the benefit even when correctly predicted.rwessel2019/01/03 09:18 AM
                      No. Mill does not get the hit because it does not get the benefit even when correctly predicted.anon2019/01/04 05:25 AM
                    Itanium could have been RISC or CISC - same outcomesomeone2019/01/04 07:45 AM
                      Itanium could have been RISC or CISC - same outcomeDoug S2019/01/04 12:39 PM
                        Itanium could have been RISC or CISC - same outcomeJan Olšan2019/01/04 01:58 PM
                          "fluffyRISC" has a namevvid2019/01/04 03:48 PM
                        Itanium could have been RISC or CISC - same outcomeBrett2019/01/04 03:43 PM
                      Itanium could have been RISC or CISC - same outcomeanonymou52019/01/04 12:41 PM
                  No. Mill does not get the hit because it does not get the benefit even when correctly predicted.David Hess2019/01/03 08:15 AM
                No. Mill does not get the hit because it does not get the benefit even when correctly predicted.Maynard Handley2019/01/03 12:24 PM
                  No. Mill does not get the hit because it does not get the benefit even when correctly predicted.Maynard Handley2019/01/03 12:27 PM
                    No. Mill does not get the hit because it does not get the benefit even when correctly predicted.dmcq2019/01/04 01:59 AM
                  EPIC target marketsFoo_2019/01/04 06:29 AM
                    EPIC target marketsDoug S2019/01/04 12:42 PM
                      Lack of future visionDoug S2019/01/04 12:57 PM
                        Lack of future visionBrett2019/01/04 02:59 PM
                          Lack of future visionDoug S2019/01/04 04:25 PM
                            Lack of future visionBrett2019/01/04 05:18 PM
                              Lack of future visionDoug S2019/01/05 12:47 AM
                                Lack of future visionBrett2019/01/05 02:06 PM
                                  Lack of future visiondmcq2019/01/05 02:22 PM
                                  Lack of future visionanon2019/01/05 03:01 PM
                                    Lack of future visionMichael S2019/01/05 04:18 PM
                                      Lack of future visionanon2019/01/05 06:14 PM
                                        Lack of future visionMichael S2019/01/06 02:01 AM
                                          Lack of future visionanon2019/01/06 03:23 AM
                                          Mitch Alsup's MY66000 uses IF-like predication (I think) (NT)Paul A. Clayton2019/01/06 04:54 PM
                                            ??? (NT)Michael S2019/01/07 05:25 AM
                                            88K ? (NT)anonymous22019/01/07 04:20 PM
                                          Modestly expanded response: MY66000 predicate shadowPaul A. Clayton2019/01/07 11:53 AM
                      Thanks for the correction (NT)Foo_2019/01/04 04:31 PM
              No. Mill does not get the hit because it does not get the benefit even when correctly predicted.sdrc2019/01/04 07:36 AM
          Mill and Independent micro threadsMichael S2019/01/02 02:32 AM
Reply to this Topic
Name:
Email:
Topic:
Body: No Text
How do you spell purple?