Apple loses a lot by not having turbo and SMT

By: Maynard Handley (name99.delete@this.name99.org), November 19, 2020 10:13 am
Room: Moderated Discussions
Adrian (a.delete@this.acm.org) on November 19, 2020 1:50 am wrote:
> Maynard Handley (name99.delete@this.name99.org) on November 18, 2020 4:46 pm wrote:
> > Dummond D. Slow (mental.delete@this.protozoa.us) on November 18, 2020 3:17 pm wrote:
> > > Jon Masters (jcm.delete@this.jonmasters.org) on November 18, 2020 11:46 am wrote:
> > > > Dummond D. Slow (mental.delete@this.protozoa.us) on November 17, 2020 11:18 am wrote:
> > > >
> > > > > It's simple: SMT. Had Apple implemented it, it would run away in Cinebench.
> > > > > Lesson to the people saying it's a pointless/stupid/doomed feature.
> > > > > Seems Renoir is able to bridge its "worse single-thread" and "worse
> > > > > manufacturing node" disadvantage pretty much thanks to SMT.
> > > > >
> > > > > Which also tells you where the biggest threat from Apple is. It pretty much caught
> > > > > up with state of the art x86's single core performance AND has process advantage.
> > > > > It could shoot ahead in performance in two areas if it chose to:
> > > > > 1) SMT as discussed. Not having SMT leaves massive multithread performance
> > > > > gains (end energy efficiency gains, more importantly) on the table.
> > > >
> > > > SMT is a *terrible* idea for new designs. Sure, it gets you performance uplift, but it comes
> > > > at a cost, particularly in terms of side-channel exposure. That is a game of whack-a-mole that
> > > > doesn't end any time in the near future. Real cores that can be fed properly give you more
> > > > deterministic performance without all of the other downsides from sharing resources.
> > > >
> > > > Jon.
> > > >
> > >
> > > Everything has side channels, I stopped counting and stopped reporting on new attacks described. So I
> > > think it makes no sense to ditch SMT on the grounds of side channel vulns because there is 10-20x more
> > > in other parts of the CPU, discovered each year. You just sacrifice something good and then you find
> > > it didn't help in anything. The solution for that is to handle it in CPU scheduling (don't give two threads
> > > from one core to different VMs on server and so on + whatever more is needed for security).
> > > You don't want shared L3 cache or multicore CPUs being abandoned either, do you?
> >
> > So now you're starting to concede my point.
> > If you're going to do SMT right, you don't share threads between unrelated entities.
> > That means
> > (a) you don't have to waste any effort worrying about security
> > (b) you don't have to worry at all about fairness
> >
> > But then if the entities are related, why do you need the OS (except to do the context swapping correctly).
> > Provide user-level primitives to launch, kill, and synchronize with the other thread. At which point
> > - the two threads are closely related, so resource contention is PROBABLY not an issue and
> > - the app is in control, so to the extent that contention is an
> > issue, the app can choose not to launch a companion thread
> >
> > There is a right way and a wrong way of doing things. The wrong way, in this case, is treating
> > SMT as a fake core, rather than something like a "co-routine acceleration engine".
>
>
>
> Yes, I completely agree that the method to extract maximum performance from SMT is to not
> treat "SMT as a fake core", but as 'something like a "co-routine acceleration engine"'.
>
>
> Nevertheless, there are some kinds of applications, not many, but quite
> important, where using the SMT threads as fake cores works very well.
>
> These applications have threads that do many I/O or large memory access operations
> and the threads are well decorrelated in their access patterns.
>
> The typical examples are the compilation of large projects, using many concurrent
> threads and database servers that serve many concurrent requests.
>
>
> These applications, where SMT fake cores are OK, rely on randomness
> to increase the average occupancy of the execution units.
>
> Optimized applications, which use SMT as a "co-routine acceleration engine", can achieve
> much better occupancies, while other applications, whose threads are correlated in the
> needs for resources, achieve worse performance with SMT, due to contention.

At this point we hit the constant running through every aspect of this discussion:
- do you make the one-time effort to do a job properly, or do you just half-ass it this year, then half-ass it again next year, then half-ass it again the following year?

Yes, you can half-ass SMT. Just like you can half-ass your CPU design for ten years.
It appears that 90% of the people on this forum prefer to half-ass everything. Thank god there are a few companies like ARM and Apple that don't think this way. I just want to ensure that same level of not "half-assing, just because that's what everyone else did" applies to Apple's implementation of SMT (and, in an ideal world, to ARM's canonical version, when that comes).

To add to the list of ARM SMT implementations (using the half-assed worldview) for people really interested in this, look at the MIPS MT ASE:
https://s3-eu-west-1.amazonaws.com/downloads-mips/documents/MD00452-2B-MIPSMT-WHP-01.02.pdf

MIPS got a lot of this wrong (in particular they too were in love with that eternal darling of the young computer engineer, the promise of virtualization) but they at least approached closer to ideal than anyone else;
with the *possibility* that what they were providing were not in fact vCPUs, and with some adequate user-level instructions.
< Previous Post in ThreadNext Post in Thread >
TopicPosted ByDate
1st round of M1 GPU benchmarksMaynard Handley2020/11/16 01:46 PM
  1st round of M1 GPU benchmarksAdrian2020/11/16 02:02 PM
    1st round of M1 GPU benchmarksI_vs2020/11/17 02:18 AM
  1st round of M1 GPU benchmarksRType2020/11/16 02:06 PM
    1st round of M1 GPU benchmarksMaynard Handley2020/11/16 02:45 PM
      And the NZ'ers are first to deliver cinebench scoresMaynard Handley2020/11/16 03:58 PM
        And the NZ'ers are first to deliver cinebench scoresWill2020/11/16 04:30 PM
          re: "scaling"Dummond D. Slow2020/11/16 05:06 PM
            re: "scaling"Maynard Handley2020/11/16 05:29 PM
              re: "scaling"Dummond D. Slow2020/11/16 05:51 PM
                re: "scaling"Maynard Handley2020/11/16 06:51 PM
                  re: "scaling"Dummond D. Slow2020/11/16 07:22 PM
                    re: "scaling"Maynard Handley2020/11/16 07:23 PM
                      re: "scaling"Maynard Handley2020/11/16 07:27 PM
                        re: "scaling"Dummond D. Slow2020/11/16 07:37 PM
                          re: "scaling"Chester2020/11/16 09:25 PM
                          Actual power consumption values.Dummond D. Slow2020/11/17 08:05 AM
                    re: "scaling"Doug S2020/11/17 11:25 AM
                      Apple loses a lot by not having turbo and SMTDummond D. Slow2020/11/17 12:18 PM
                        Apple loses a lot by not having turbo and SMTDoug S2020/11/17 01:21 PM
                          Apple loses a lot by not having turbo and SMTblaine2020/11/19 06:18 PM
                            Apple loses a lot by not having turbo and SMTDummond D. Slow2020/11/19 06:31 PM
                        Apple loses a lot by not having turbo and SMTTJ2020/11/18 02:10 AM
                          Cinebench is NOT a representation of average workloadsAndrei F2020/11/18 06:21 AM
                            SPEC is NOT a representation of average workloadsChester2020/11/18 08:02 AM
                              SPEC is NOT a representation of average workloadsDummond D. Slow2020/11/18 08:17 AM
                                SPEC is NOT a representation of average workloadsnone2020/11/18 09:18 AM
                                  x264 without SIMD is nonsenseDummond D. Slow2020/11/18 09:31 AM
                                  SPEC is NOT a representation of average workloadsMaynard Handley2020/11/18 10:13 AM
                                    SPEC is NOT a representation of average workloadsDummond D. Slow2020/11/18 10:21 AM
                                      SPEC is NOT a representation of average workloadsWilco2020/11/18 10:42 AM
                                        role of hand-optimized assembly in multimedia encodersDummond D. Slow2020/11/18 12:06 PM
                                          role of hand-optimized assembly in multimedia encodersdifferent anon2020/11/18 02:27 PM
                                            role of hand-optimized assembly in multimedia encodersDummond D. Slow2020/11/18 03:47 PM
                                              role of hand-optimized assembly in multimedia encodersDummond D. Slow2021/05/18 01:29 PM
                                          role of hand-optimized assembly in multimedia encodersRichardC2020/11/18 04:42 PM
                                          role of hand-optimized assembly in multimedia encodersnone2020/11/19 08:17 AM
                                      SPEC is NOT a representation of average workloadsnone2020/11/18 11:14 AM
                                        SPEC is NOT a representation of average workloadsDummond D. Slow2020/11/18 12:17 PM
                                      SPEC is NOT a representation of average workloadsMaynard Handley2020/11/18 12:03 PM
                                        SPEC is NOT a representation of average workloadsDummond D. Slow2020/11/18 12:25 PM
                                          SPEC is NOT a representation of average workloadsMaynard Handley2020/11/18 01:03 PM
                                            SPEC is NOT a representation of average workloadsDummond D. Slow2020/11/18 03:57 PM
                                              SPEC is NOT a representation of average workloadsMaynard Handley2020/11/18 05:36 PM
                                                SPEC is NOT a representation of average workloadsDummond D. Slow2020/11/18 05:50 PM
                                                  SPEC is NOT a representation of average workloadsDoug S2020/11/19 10:13 AM
                                                    SPEC is NOT a representation of average workloads-.-2020/11/19 03:34 PM
                                                    SPEC is NOT a representation of average workloadsDummond D. Slow2020/11/19 03:35 PM
                                              SPEC is NOT a representation of average workloadsEtienne Lorrain2020/11/19 05:04 AM
                                                SPEC is NOT a representation of average workloadsDummond D. Slow2020/11/19 06:58 AM
                                SPEC is NOT a representation of average workloadsChester2020/11/18 03:06 PM
                                  about bitratesDummond D. Slow2020/11/18 04:04 PM
                                    about bitratesChester2020/11/19 03:45 PM
                                  SPEC is NOT a representation of average workloadsOok2020/11/18 04:05 PM
                                    SPEC is NOT a representation of average workloadsDummond D. Slow2020/11/18 04:21 PM
                                  SPEC is NOT a representation of average workloadsNoSpammer2020/11/19 07:48 AM
                              SPEC is NOT a representation of average workloadsAndrei F2020/11/18 08:44 AM
                                SPEC is NOT a representation of average workloadsDummond D. Slow2020/11/18 08:48 AM
                                  SPEC is NOT a representation of average workloadsAdrian2020/11/18 09:15 AM
                                    SPEC is NOT a representation of average workloadsDummond D. Slow2020/11/18 09:41 AM
                                      SPEC is NOT a representation of average workloadsAdrian2020/11/18 10:04 AM
                                        SPEC is NOT a representation of average workloadsDummond D. Slow2020/11/18 10:32 AM
                                          SPEC is NOT a representation of average workloadsAdrian2020/11/18 11:26 AM
                                    SPEC is NOT a representation of average workloadsMaynard Handley2020/11/18 10:22 AM
                                      SPEC is NOT a representation of average workloadsAdrian2020/11/18 11:28 AM
                                  SPEC is NOT a representation of average workloadsAndrei F2020/11/18 09:34 AM
                                    SPEC is NOT a representation of average workloadsDummond D. Slow2020/11/18 10:00 AM
                                    SPEC is NOT a representation of average workloadsChester2020/11/18 03:18 PM
                                    SPEC is NOT a representation of average workloadsJukka Larja2020/11/20 09:03 AM
                                SPEC is NOT a representation of average workloadsChester2020/11/18 03:13 PM
                              SPEC is NOT a representation of average workloadsnone2020/11/18 09:07 AM
                                SPEC is NOT a representation of average workloadsMichael S2020/11/18 02:33 PM
                                  Interesting, thanks! (NT)none2020/11/19 08:03 AM
                            Cinebench is NOT a representation of average workloadsrwessel2020/11/18 08:03 AM
                              Cinebench is NOT a representation of average workloadsDoug S2020/11/18 08:44 AM
                                Cinebench is NOT a representation of average workloadsDummond D. Slow2020/11/18 08:52 AM
                                  Cinebench is NOT a representation of average workloadsDoug S2020/11/18 03:59 PM
                                    Cinebench is NOT a representation of average workloadsDummond D. Slow2020/11/18 04:12 PM
                                      Cinebench is NOT a representation of average workloadsDoug S2020/11/19 10:19 AM
                                        Cinebench is NOT a representation of average workloadsDummond D. Slow2020/11/19 04:03 PM
                                          Cinebench is NOT a representation of average workloadsUngo2020/11/19 09:12 PM
                                            Cinebench is NOT a representation of average workloadsDummond D. Slow2020/11/20 09:45 AM
                                It's not really SMT or adding small coresDummond D. Slow2020/11/18 08:58 AM
                                  It's not really SMT or adding small coresDoug S2020/11/18 04:02 PM
                                    It's not really SMT or adding small coresDummond D. Slow2020/11/18 04:27 PM
                                Cinebench is NOT a representation of average workloadsxyz2020/11/18 01:14 PM
                                  Cinebench is NOT a representation of average workloadsMaynard Handley2020/11/18 01:54 PM
                                    Cinebench is NOT a representation of average workloadsGabriele Svelto2020/11/18 02:41 PM
                                      Cinebench is NOT a representation of average workloadsMaynard Handley2020/11/18 02:52 PM
                                        Cinebench is NOT a representation of average workloadsGabriele Svelto2020/11/18 03:05 PM
                            Cinebench is NOT a representation of average workloadsTJ2020/11/18 12:46 PM
                            SMT shines in IO heavy & commercial DB workloadsxyz2020/11/18 01:05 PM
                            "Average workloads" don't exist (NT)Foo_2020/11/19 03:55 AM
                          Apple loses a lot by not having turbo and SMTDummond D. Slow2020/11/18 08:02 AM
                            Apple loses a lot by not having turbo and SMTMaynard Handley2020/11/18 09:37 AM
                              Apple loses a lot by not having turbo and SMTDummond D. Slow2020/11/18 09:55 AM
                              Apple loses a lot by not having turbo and SMTDavid Hess2020/11/18 01:12 PM
                                Apple loses a lot by not having turbo and SMTMaynard Handley2020/11/18 02:12 PM
                                  Apple loses a lot by not having turbo and SMTJörn Engel2020/11/18 05:04 PM
                                    Apple loses a lot by not having turbo and SMTanonymou52020/11/18 05:37 PM
                                      Apple loses a lot by not having turbo and SMTJörn Engel2020/11/19 04:28 AM
                                  Apple loses a lot by not having turbo and SMTDavid Hess'2020/11/19 07:25 PM
                          Apple loses a lot by not having turbo and SMTAdrian2020/11/18 08:23 AM
                            Apple loses a lot by not having turbo and SMTgallier22020/11/19 12:21 AM
                              Apple loses a lot by not having turbo and SMTJames2020/11/19 02:22 AM
                                Apple loses a lot by not having turbo and SMTWilco2020/11/19 05:06 AM
                              Apple loses a lot by not having turbo and SMTanonymou52020/11/19 02:34 AM
                                Apple loses a lot by not having turbo and SMTgallier22020/11/19 09:04 AM
                                  big.LITTLE with different ISAsJames2020/11/19 09:41 AM
                                    big.LITTLE with different ISAsgallier22020/11/20 03:36 AM
                                    big.LITTLE with different ISAsanon2020/11/20 01:31 PM
                              Apple loses a lot by not having turbo and SMTAdrian2020/11/19 02:56 AM
                        Apple loses a lot by not having turbo and SMTJon Masters2020/11/18 12:46 PM
                          Apple loses a lot by not having turbo and SMTanonymou52020/11/18 03:41 PM
                          Apple loses a lot by not having turbo and SMTDummond D. Slow2020/11/18 04:17 PM
                            Apple loses a lot by not having turbo and SMTMaynard Handley2020/11/18 05:46 PM
                              Apple loses a lot by not having turbo and SMTJon Masters2020/11/19 12:31 AM
                                Apple loses a lot by not having turbo and SMTDummond D. Slow2020/11/19 07:01 AM
                              Apple loses a lot by not having turbo and SMTAdrian2020/11/19 02:50 AM
                                Apple loses a lot by not having turbo and SMTAdrian2020/11/19 03:10 AM
                                Apple loses a lot by not having turbo and SMTMaynard Handley2020/11/19 10:13 AM
                                  Apple loses a lot by not having turbo and SMTDummond D. Slow2020/11/19 04:10 PM
                        Apple loses a lot by not having turbo and SMTjuanrga2020/11/19 02:49 AM
                    re: "scaling"sr2020/11/17 12:39 PM
                      re: "scaling"Adrian2020/11/17 01:41 PM
                        re: "scaling"Adrian2020/11/17 01:52 PM
                          re: "scaling"Chester2020/11/17 06:29 PM
                  re: "scaling"anonymou52020/11/16 08:18 PM
                    re: "scaling"Maynard Handley2020/11/16 08:44 PM
        And the NZ'ers are first to deliver cinebench scoresDummond D. Slow2020/11/16 05:12 PM
          And the NZ'ers are first to deliver cinebench scoresMaynard Handley2020/11/16 05:31 PM
            And the NZ'ers are first to deliver cinebench scoresDummond D. Slow2020/11/16 05:46 PM
        And the NZ'ers are first to deliver cinebench scoresMaynard Handley2020/11/16 07:04 PM
          And the NZ'ers are first to deliver cinebench scoresDummond D. Slow2020/11/16 07:28 PM
  1st round of M1 GPU benchmarksRayla2020/11/16 04:16 PM
    1st round of M1 GPU benchmarksChester2020/11/16 09:17 PM
  Phoronix Mac mini M1 benchanon52020/11/20 11:51 AM
    Phoronix Mac mini M1 benchPer Hesselgren2020/11/24 10:04 AM
      Phoronix Mac mini M1 benchPaul2020/11/25 03:08 AM
        Phoronix Mac mini M1 benchPaul2020/11/25 03:12 AM
Reply to this Topic
Name:
Email:
Topic:
Body: No Text
How do you spell tangerine? 🍊