isn't that an interesting contradiction?

By: Maynard Handley (name99.delete@this.name99.org), January 8, 2021 2:27 pm
Room: Moderated Discussions
hobold (hobold.delete@this.vectorizer.org) on January 8, 2021 12:44 pm wrote:
> Adrian (a.delete@this.acm.org) on January 2, 2021 2:45 am wrote:
>
> [...]
> > In computational benchmarks where the number and speed of the available execution resources matter
> > most, unlike in GB5 or SPEC, where the higher *average* IPC of Apple shines, the advantage of Zen
> > 3 over Apple M1 increases, being e.g. of over 14% @ 4.9 GHz for gmpbench (7337 vs. 6422).
>
> That's an interesting contradiction. Apple M1 does have
> fewer and slower execution resources, but higher IPC.
>
> Pure speculation: Apple M1 can sometimes (rarely) execute a pair of dependent, simple
> instructions within one single clock cycle. This would occasionally (rarely) gain one
> cycle on the other processors that require two subsequent cycles for the dependency.
>
> Naturally this would be a very narrow, very targeted optimization. But there just might
> be pairs that are frequent enough to be worth it. Maybe something like shift (by a constant)
> and add. Generally, a chain of two-operand instructions, such that the whole chain does
> not read / write more registers than what can be done in a single cycle.

This is, of course, what fusion is...
ARMv8 begins by providing a richer class of pre-fused instructions (base instruction plus a small tweak, like a shift by constant or a CSEL that increments the argument selected). Implementations can then add further fusions on that base.

Of course (like everything) from an abstract enough point of view even a VAX can engage in aggressive fusion in theory...
The point that's interesting is to what extent and where Apple pushes this beyond the "obvious" fusion cases.

If one were to try to actually quantify this in some way, perhaps the instructions to focus on as being beyond "traditional" fusion might be two adds in one cycle?
Or perhaps the slightly simpler ra<-rB+rC; rA-<rA+immediate?

Those are the hard cases that I think people would agree on.
The easier cases (which I think are legit, but which I could imagine people arguing about) might be op followed by logical where op is add/sub or logical, something like
ra<-rB+1; rA<-rA&rD

There have (of course...) been academic investigations into just which fusion pairs of this sort are both common enough to be useful and practical for single-cycle execution; one problem is that the results are rather ISA dependent, for example if your ISA provides a natural bit test instruction a lot of what would be AND with IMMEDIATE ops disappear, and such like.
I can't remember the details but while the paper I read was bullish, the underlying ISA was I think Alpha, so results would be less impressive for ARMv8.
< Previous Post in ThreadNext Post in Thread >
TopicPosted ByDate
Ryzen 9 5000 series processor Phil9955112020/12/29 06:12 AM
  Ryzen 9 5000 series processor Adrian2020/12/29 08:31 AM
    Ryzen 9 5000 series processor Dummond D. Slow2020/12/29 11:33 AM
      Ryzen 9 5000 series processor Phil9955112020/12/29 05:09 PM
        Ryzen 9 5000 series processor Dummond D. Slow2020/12/29 07:00 PM
          Ryzen 9 5000 series processor anon2020/12/30 03:50 AM
          Ryzen 9 5000 series processor Foo_2020/12/30 03:50 AM
            Ryzen 9 5000 series processor Phil9955112020/12/30 06:22 AM
              Ryzen 9 5000 series processor Phil9955112020/12/30 06:25 AM
              Ryzen 9 5000 series processor Adrian2020/12/30 07:00 AM
            Ryzen 9 5000 series processor Linus Torvalds2020/12/30 01:00 PM
              Ryzen 9 5000 series processor Phil9955112020/12/31 07:45 AM
                Ryzen 9 5000 series processor Adrian2020/12/31 10:49 AM
                Ryzen 9 5000 series processor Linus Torvalds2020/12/31 01:05 PM
                  Ryzen 9 5000 series processor me2020/12/31 05:56 PM
                    Ryzen 9 5000 series processor Anon2020/12/31 06:48 PM
                      Ryzen 9 5000 series processor me2021/01/01 05:06 AM
                    Ryzen 9 5000 series processor Gabriele Svelto2021/01/01 08:10 AM
                      Ryzen 9 5000 series processor David Hess2021/01/01 08:37 AM
                        Ryzen 9 5000 series processor Jukka Larja2021/01/01 11:52 AM
                          Ryzen 9 5000 series processor Linus Torvalds2021/01/01 01:48 PM
                            Ryzen 9 5000 series processor Jukka Larja2021/01/01 11:28 PM
                              Ryzen 9 5000 series processor Linus Torvalds2021/01/02 01:21 PM
                                Ryzen 9 5000 series processor Adrian2021/01/02 02:17 PM
                                Ryzen 9 5000 series processor Anon2021/01/02 07:08 PM
                                Ryzen 9 5000 series processor Jukka Larja2021/01/03 12:10 AM
                                  Ryzen 9 5000 series processor David Hess2021/01/03 02:03 AM
                                    Ryzen 9 5000 series processor Jukka Larja2021/01/03 04:28 AM
                                  Threadrippers do have official ECC supportJukka Larja2021/01/03 09:32 PM
                                    Threadrippers do have official ECC supportBjörn Ragnar Björnsson2021/01/04 09:21 AM
                                ECC (or lack of)Tim McCaffrey2021/01/03 10:28 AM
                                  ECC (or lack of)Adrian2021/01/03 02:14 PM
                                    ECC (or lack of)Yuhong Bao2021/01/03 02:51 PM
                                      ECC (or lack of)Yuhong Bao2021/01/04 07:54 PM
                                        ECC (or lack of)Yuhong Bao2021/01/04 08:04 PM
                                AMD ECC not enabled but says it isIan Cutress2021/01/03 12:09 PM
                                  AMD ECC not enabled but says it isMaxwell2021/01/03 01:28 PM
                                  AMD ECC not enabled but says it isAdrian2021/01/03 01:50 PM
                                    AMD ECC not enabled but says it isGabriele Svelto2021/01/03 02:08 PM
                                      AMD ECC not enabled but says it isAdrian2021/01/03 02:34 PM
                                        AMD ECC not enabled but says it isDan Strother2021/01/03 08:00 PM
                                          AMD ECC not enabled but says it isMatt2021/01/04 01:29 AM
                                          AMD ECC not enabled but says it isGabriele Svelto2021/01/04 02:29 AM
                                            AMD ECC not enabled but says it isMatt2021/01/04 01:39 PM
                                          AMD ECC not enabled but says it isAdrian2021/01/04 06:49 AM
                                Ryzen 9 5000 series processor Jason Snyder2021/01/04 02:44 PM
                                  Ryzen 9 5000 series processor Brett2021/01/04 06:08 PM
                                  Ryzen 9 5000 series processor Linus Torvalds2021/01/05 01:29 PM
                                    Ryzen 9 5000 series processor Adrian2021/01/05 02:08 PM
                                    Ryzen 9 5000 series processor Emil Briggs2021/01/05 05:40 PM
                                      Ryzen 9 5000 series processor Gabriele Svelto2021/01/06 02:12 AM
                                    Ryzen 9 5000 series processor [ECC summary - Suitable for framing]Björn Ragnar Björnsson2021/01/05 07:29 PM
                                    Ryzen 9 5000 series processor 2021/01/06 10:45 AM
                                      Ryzen 9 5000 series processor Linus Torvalds2021/01/06 12:38 PM
                                        Ryzen 9 5000 series processor Emanuel Rylke2021/01/07 01:49 AM
                                          Ryzen 9 5000 series processor Jörn Engel2021/01/07 10:05 AM
                                            Read Only Page CorrectionsTerry Gray2021/01/07 10:47 AM
                                              Read Only Page Correctionsrwessel2021/01/07 12:00 PM
                                                Read Only Page CorrectionsTerry Gray2021/01/07 12:58 PM
                                              Read Only Page CorrectionsDavid Hess2021/01/10 08:37 PM
                                              Read Only Page Correctionsdmcq2021/01/11 04:32 AM
                                        Ryzen 9 5000 series processor Chester2021/01/07 06:00 AM
                                          Ryzen 9 5000 series processor Gabriele Svelto2021/01/07 06:33 AM
                                            Ryzen 9 5000 series processor Michael S2021/01/07 09:05 AM
                                              Ryzen 9 5000 series processor Linus Torvalds2021/01/07 11:26 AM
                                            Ryzen 9 5000 series processor rwessel2021/01/07 10:06 AM
                                          Ryzen 9 5000 series processor Linus Torvalds2021/01/07 11:04 AM
                                            Ryzen 9 5000 series processor Chester2021/01/07 05:19 PM
                                              OT L1 chache ECCMichael S2021/01/08 03:31 AM
                                                OT L1 chache ECCAdrian2021/01/08 09:54 AM
                                                  OT L1 chache ECCDavid Kanter2021/01/08 10:13 AM
                                                    Structure ProtectionsChester2021/01/08 03:14 PM
                                            Ryzen 9 5000 series processor Etienne Lorrain2021/01/08 02:18 AM
                                          Ryzen 9 5000 series processor Björn Ragnar Björnsson2021/01/07 06:42 PM
                                            Ryzen 9 5000 series processor Chester2021/01/07 09:14 PM
                                              Ryzen 9 5000 series processor Björn Ragnar Björnsson2021/01/07 09:26 PM
                                                Ryzen 9 5000 series processor Michael S2021/01/08 03:49 AM
                                    Ryzen 9 5000 series processor Jason Snyder2021/01/14 08:32 AM
                                      Ryzen 9 5000 series processor Gabriele Svelto2021/01/15 06:26 AM
                                        Ryzen 9 5000 series processor Jason Snyder2021/01/16 11:45 AM
                                          Ryzen 9 5000 series processor Jason Snyder2021/01/16 01:27 PM
                              Ryzen 9 5000 series processor Etienne Lorrain2021/01/07 02:21 AM
                                Ryzen 9 5000 series processor anon2021/01/07 03:21 AM
                                  Ryzen 9 5000 series processor Etienne Lorrain2021/01/07 04:22 AM
                                    Ryzen 9 5000 series processor Konrad Schwarz2021/01/07 06:27 AM
                                  Ryzen 9 5000 series processor Adrian2021/01/07 05:22 AM
                                  Ryzen 9 5000 series processor rwessel2021/01/07 10:25 AM
                                    Ryzen 9 5000 series processor Jörn Engel2021/01/07 05:29 PM
                                      Ryzen 9 5000 series processor rwessel2021/01/07 07:47 PM
                                        Ryzen 9 5000 series processor David Hess2021/01/11 05:26 AM
                                          Ryzen 9 5000 series processor Adrian2021/01/11 06:25 AM
                                          Ryzen 9 5000 series processor rwessel2021/01/11 08:24 AM
                                      Ryzen 9 5000 series processor Mark Roulo2021/01/07 08:00 PM
                                        Ryzen 9 5000 series processor Björn Ragnar Björnsson2021/01/07 08:20 PM
                                  Ryzen 9 5000 series processor David Hess2021/01/11 05:16 AM
                      Ryzen 9 5000 series processor Jukka Larja2021/01/01 11:43 AM
                        Ryzen 9 5000 series processor David Hess2021/01/01 01:31 PM
                          Ryzen 9 5000 series processor Dan Strother2021/01/01 02:12 PM
                        Ryzen 9 5000 series processor Adrian2021/01/01 02:28 PM
                          Ryzen 9 5000 series processor vs. M1Adrian2021/01/02 03:45 AM
                            Ryzen 9 5000 series processor vs. M1Dummond D. Slow2021/01/02 01:50 PM
                              Ryzen 9 5000 series processor vs. M1Adrian2021/01/02 03:00 PM
                                Ryzen 9 5000 series processor vs. M1Dummond D. Slow2021/01/04 01:11 PM
                            Ryzen 9 5000 series processor vs. M1Dummond D. Slow2021/01/07 11:43 AM
                              Ryzen 9 5000 series processor vs. M1Adrian2021/01/08 09:28 AM
                                Ryzen 9 5000 series processor vs. M1 Sorry, typo, correction hereAdrian2021/01/08 09:31 AM
                                  Ryzen 9 5000 series processor vs. M1 (vs. Rocket Lake)Dummond D. Slow2021/01/22 08:02 AM
                            isn't that an interesting contradiction?hobold2021/01/08 01:44 PM
                              isn't that an interesting contradiction?Maynard Handley2021/01/08 02:27 PM
                              isn't that an interesting contradiction?Adrian2021/01/08 03:21 PM
                                isn't that an interesting contradiction?Maynard Handley2021/01/08 04:59 PM
                                  isn't that an interesting contradiction?Maynard Handley2021/01/08 05:34 PM
                                    isn't that an interesting contradiction?Maynard Handley2021/01/08 05:34 PM
                                    isn't that an interesting contradiction?Maynard Handley2021/01/08 05:35 PM
                                      isn't that an interesting contradiction?Adrian2021/01/09 01:55 AM
                                  isn't that an interesting contradiction?Adrian2021/01/09 01:48 AM
                                    isn't that an interesting contradiction? - gmpAdrian2021/01/09 09:00 AM
                                      isn't that an interesting contradiction? - gmpnone2021/01/11 02:26 AM
                                        isn't that an interesting contradiction? - gmpAdrian2021/01/11 05:34 AM
                                          Fully agree with you, I was just giving some data :-) (NT)none2021/01/11 06:17 AM
                                          isn't that an interesting contradiction? - gmpanon2021/01/11 01:09 PM
                                            isn't that an interesting contradiction? - gmpAdrian2021/01/12 01:54 AM
                                              isn't that an interesting contradiction? - gmpnone2021/01/12 02:15 AM
                                                isn't that an interesting contradiction? - gmpAdrian2021/01/12 04:37 AM
                                                  isn't that an interesting contradiction? - gmpnone2021/01/12 04:53 AM
                                                    uses of int multiplyhobold2021/01/12 03:51 PM
                                                      uses of int multiplynone2021/01/13 02:11 AM
                                                      uses of int multiplyJörn Engel2021/01/13 01:06 PM
                                                  isn't that an interesting contradiction? - gmpWilco2021/01/12 05:17 AM
                                                    isn't that an interesting contradiction? - gmpAdrian2021/01/12 06:07 AM
                        Ryzen 9 5000 series processor Gabriele Svelto2021/01/01 04:31 PM
                          Ryzen 9 5000 series processor Jukka Larja2021/01/01 10:58 PM
                            Ryzen 9 5000 series processor Gabriele Svelto2021/01/02 06:51 AM
                              Ryzen 9 5000 series processor Jukka Larja2021/01/02 08:57 AM
                                Ryzen 9 5000 series processor me2021/01/02 05:30 PM
                                  Ryzen 9 5000 series processor Jukka Larja2021/01/02 11:43 PM
                        Ryzen 9 5000 series processor Björn Ragnar Björnsson2021/01/01 09:41 PM
                          Ryzen 9 5000 series processor Jukka Larja2021/01/01 10:53 PM
                            Ryzen 9 5000 series processor Adrian2021/01/02 02:03 AM
                              Ryzen 9 5000 series processor Jukka Larja2021/01/02 08:39 AM
                          Ryzen 9 5000 series processor Adrian2021/01/02 01:52 AM
                          Ryzen 9 5000 series processor me2021/01/02 06:56 AM
                            Ryzen 9 5000 series processor Michael S2021/01/02 12:41 PM
                              Ryzen 9 5000 series processor Adrian2021/01/02 01:43 PM
                              Ryzen 9 5000 series processor Jukka Larja2021/01/02 11:50 PM
                          Crucial/Micron ECC UDIMMsGabriele Svelto2021/01/02 07:09 AM
                            Crucial/Micron ECC UDIMMsMaxwell2021/01/02 10:45 AM
                              Crucial/Micron ECC UDIMMsYuhong Bao2021/01/02 07:29 PM
                  Ryzen 9 5000 series processor Phil9955112021/01/03 08:46 AM
  Ryzen 9 5000 series processor H_Heckuba2021/01/03 01:06 PM
Reply to this Topic
Name:
Email:
Topic:
Body: No Text
How do you spell avocado?