isn't that an interesting contradiction? - gmp

By: Adrian (a.delete@this.acm.org), January 11, 2021 5:34 am
Room: Moderated Discussions
none (none.delete@this.none.com) on January 11, 2021 1:26 am wrote:
> Adrian (a.delete@this.acm.org) on January 9, 2021 8:00 am wrote:
> [...]
> > So Zen 3 is around 22% faster than Apple M1 at bignum arithmetic,
> > due to the reasons mentioned in a previous
> > post, i.e. that when an execution resource reaches 100% utilization, the IPC remains clamped at the same
> > value for both M1 and Zen 3, and then the CPU with the higher clock frequency is advantaged.
>
> According to this GMP table M1 has a better IPC than Zen3 for many base routines.
>
> For instance addmul_1 is 1.5 cycle/limb on Zen 3 while it is 1.25 on M1. As far as M1 goes
> this is slightly above the theoretical number of multiplications it can issue (that is
> 2 64x64b->64b (high or low part) integer muls per cycles, so one 64bx64b->128 per cycle).
> mul_1 is at one cycle/limb (vs 1.5 for Zen 3) so that's at the max already, so it's quite
> likely addmul_1 is already at the max due to the rest of computations.
>
> My understanding is that Zen 2 can issue a single 64bx64b->128 per cycle too. So Zen 2 (and
> I assume Zen 3) don't saturate their multipliers contrary to M1 on mul_1.


I also have said that Apple M1 still has a better average IPC than Zen 3 even in gmpbench, as it is obvious from the fact that Zen 3 is 22% faster (5800X) or 24% faster (5900X, my 5900X scores 7951, compared to the 7816 for 5800X in that table), while the clock frequency is 50% (5800X) to 53% (5900X) higher than M1.


However, the IPC advantage of Apple M1 is reduced from around 50% in benchmarks like SPEC or Geekbench to only around 23% in benchmarks like gmpbench.

My theory is that this happens because both M1 and Zen 3 have a single 64bx64b->128 per cycle multiplier, as mentioned by you.

For a fraction of the time of any gmpbench test, apparently about a half of the time, the multiplier is used close to 100%, and both CPUs have the same IPC, while for the rest of the benchmark duration, M1 has its typical IPC, 50% higher than Zen 3. That should lead to the observed average IPC of only 23% higher in gmpbench.

These fractions of time when the speed is limited by back-to-back multiplications and when there is time between multiplications, so that M1 can overlap there more instructions than Zen 3, are probably interleaved inside each limb multiplication iteration, if both CPUs do not reach the maximum possible multiplication rate.


If you have another theory, please explain it.















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