Calls are not needed for speculation for mill if there are no side effect,and dont help if there are

By: Heikki Kultala (heikki.kultala.delete@this.tuni.fi), January 8, 2019 4:28 am
Room: Moderated Discussions
Brett (ggtgp.delete@this.yahoo.com) on January 3, 2019 12:13 am wrote:
> Heikki Kultala (heikki.kultala.delete@this.tuni.fi) on January 2, 2019 1:22 am wrote:
> > Brett (ggtgp.delete@this.yahoo.com) on January 2, 2019 12:15 am wrote:
> > > Heikki Kultala (heikki.kultala.delete@this.tuni.fi) on January 1, 2019 11:29 pm wrote:
> > > > Brett (ggtgp.delete@this.yahoo.com) on January 1, 2019 6:39 pm wrote:
> > > > > Travis Downs (travis.downs.delete@this.gmail.com) on December 30, 2018 8:48 pm wrote:
> > > > > > Brett (ggtgp.delete@this.yahoo.com) on December 30, 2018 7:51 pm wrote:
> > > > > >
> > > > > > > Before I finished writing the above Micro Threading post I figured a modern OoO probably does most of
> > > > > > > what I am proposing.
> > > > > >
> > > > > > They don't.
> > > > > >
> > > > > > > After the first branch miss the instruction que quickly fills enough and there is
> > > > > > > enough work to do that it does not need to predict the branch, and can wait for the branch value.
> > > > > > >
> > > > > > > A simple benchmark could test if the CPU does slow down by three times on a data driven branch.
> > > > > >
> > > > > > Generally they do (slow down). The basic problem is that there isn't a lot of work to do because
> > > > > > the CPU is spending all of its time recovering from the mispredict. Only work from before the
> > > > > > mispredict can keep executing. Consider your hypothetical 6-wide CPU with 12 cycle bubble due
> > > > > > to branch mispredict, executing a loop with 24 or 12 instructions (50% of the time each).
> > > > > >
> > > > > > Every 2 iterations you have 36 instructions to execute, taking 6 cycles with infinite ILP. However, the CPU
> > > > > > can't issue any instructions for 12 cycles so 12 cycles
> > > > > > (half speed) is a hard upper bound on the performance
> > > > > > even for a CPU with infinitely wide decode that can decode at least the next 36 instructions in zero cycles
> > > > > > and resolves the next mispredicted branch in the very first cycle after execution resumes.
> > > > >
> > > > > Yes all work must be thrown away on a branch miss and so I was wrong, you get do get a three times slowdown.
> > > > >
> > > > > With the Mill arch a branch is much like a call, you could just throw away the result and
> > > > > computations on branch miss. As you get fresh registers on a Mill belt call there is no
> > > > > register aliasing issue that forces you to throw away work beyond the branch return.
> > > >
> > > > Mill does not perform speculative [b]execution[/b]. It only performs
> > > > branch prediction and speculative fetching and decoding of code.
> > >
> > > Yet.
> > > The Mill team has not shipped v1.0, this is more a possible v2.0 feature.
> >
> > No, it's not. It's against EVERYTHING mill is.
> >
> > To do speculative execution, one must do OoOE to get anything after the branch
> > executed before the branch dictating whether it is executed or not.
>
> No, you do not need OoO for speculative execution.

You don't need call either. Actually, Mill's call does NOTHING to help that.

First, you are confusing *hardware based* speculation with *software based* speculation.

You do either.

> A Mill call gets it’s own registers and cannot modify caller registers and a leaf
> branch does not return a value, the only visible side effect is memory read/writes.
> So all you need is a buffered in order read/write system, which is needed regardless.

Just "buffering" does not help. You need some way of either of confirming or aborting those stores.

> A leaf branch that changes other state would not be speculated, as OoO would be required.
> Mill has plentiful resources/width and thus could speculate a leaf branch while executing other code.

It would be the *mill's compiler* doing it, not *mill hardware* doing it. More below.

> > > > So, on mill, there [b]never is that parallelism over multiple basic blocks even when the
> > > > branch is [b]correctly predicted[/b]. Unless you have the magic unicorn compiler.
> > >
> > > I already pointed out that tagging leaf branches is a trivial compiler change.
> > > No magic unicorn compiler needed.
> >
> > Can you elaborate on what you mean by this? or post link to your previous post where you explain this.
>
> The only compiler change is to change suitable leaf branches into
> inline speculated calls and add a end call instruction.

No, calls have NOTHING to do with this. They do NOTHING to help this.

As long as you have no operations with side effect, you can do *software based* speculation just by if-conversion, crating code for both code paths, and selecting the correct answer at the end.

You don't need any call instructions for this.

But if you HAVE side-effects, such as writes to memory, then you NEED to either 1) predicate those instructions or 2) have a method to cancel those.

Mill's call/ret cannot cancel store operations/does not help in it.

So, mills call has no meaning to help speculation.
< 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?