1. 41
  1.  

  2. 10

    It’s amazing to me that AMD and Intel have managed to fall so incredibly behind. There’s literally no redeeming quality to AMD and Intel CPUs: they’re slower, they consume way more power, they run far hotter, even the price isn’t all that different.

    AMD and Intel have over half a century of experience building CPUs each. I can imagine that an incredibly inefficient market dominated by a single player would result in subpar CPUs, but we nominally have two big companies that compete with one another. How could they both fail so completely?

    1. 18

      Apple bought all the TSMC 5nm there was to be had to roll out the M1. Looking at the Zen3 performance, it seems a 5nm Zen3(4?) would be competitive with the M1. The new AMD laptop chips they announced in Jan are very close to M1 level power/performance already if I read the benchmarks correctly. So AMD are not so far behind - Apple has a small process lead by the looks of things.

      Of course, the end user (perfectly reasonably) doesn’t care about this - the only thing that matters to them is the performance of the box in front of them. Right now that crown very clearly goes to Apple.

      1. 4

        Do you really think it’s mostly just a process thing? That TSMC 5NM can do with ~30W (probably way less considering the MacBook Air’s cooling solution) what TSMC 7NM needs 65W+ to do?

        That seems unlikely to me. For such a gigantic difference in performance per watt with just a 1 node advantage, there has to be some major CPU architecture and design differences. My numbers are super conservative as well; the fanless MacBook Air isn’t going to run the CPU at 30W for minutes, it’s probably going to do most of the compilation at a much lower power draw. The 3700x in the desktop isn’t going to constrain itself to 65W if the desktop is at all remotely reasonably cooled, it’s probably going to do most of the compilation at a much higher power draw.

        1. 13

          Why are you comparing the M1 to a desktop CPU from 2019? AMD Cezanne APUs are competitive to the M1 despite being 7nm. In fact, some Cezanne APUs beat the M1 on multicore benchmarks when limited to 15W:

          https://www.anandtech.com/print/16446/amd-ryzen-9-5980hs-cezanne-review-ryzen-5000-mobile-tested

          Yes, Apple delivered a great competitive core. But can we stop with the superlatives on how they are generations ahead and how AMD is behind. Ryzen APUs and the M1 deliver about the same performance with comparable wattage. The only company that doesn’t have a good story is Intel.

          1. 4

            I’m discussing the article, yes, which compares the M1 to the 3700x.

            It would be interesting to see how the ryzen 5000 series holds up when put in a thin chassis with no fans under sustained multi-core load. Just limiting it to 15 watts seems like a bad way to simulate its performance under those conditions. I somehow doubt that it would match a 3700x, but maybe I’m wrong. I’m also open to the possibility that actually, the 3700x is way faster than the M1, but that GCC is way slower than (Apple’s build of) Clang.

          2. 8

            Yes. The M1 is designed around a specific power budget & everything is cut down to fit inside that target. AMD’s desktop chips have no such limits & therefore don’t bother optimising every last W out of the design. You can’t make direct comparisons between the two. (Also, AMD’s power draw quotes are much closer to peak power draw, whilst The M1’s 10W is more like Intel’s “normal power draw”. i.e. it’s a made up benchmarking number. You can’t directly compare those either. See https://www.anandtech.com/show/16214/amd-zen-3-ryzen-deep-dive-review-5950x-5900x-5800x-and-5700x-tested/8 for the difference.)

            It is more reasonable to compare AMD’s laptop SOCs with the M1 & there the latest AMD design appears to be about 90% of the M1 performance within a similar power budget, whilst running much slower memory. Give AMD’s chip designers free access to TSMC’s 5nm process & put the memory on the same substrate as the CPU & it seems likely they’ll match or exceed the M1.

            The M1 is a /great/ CPU, but it’s not the great breakthrough that everyone seems to think it is. It’s only because we’ve been forced to use expensive, sub-par Intel chips for years because Intel had a lock on the laptop market whilst they flailed around trying to get their two last fab generations to work properly that it looks like such a huge step forwards for the end user.

            1. 3

              Let’s keep in mind, too, that this is Apple’s first desktop CPU. I imagine that they will remain competitive even as their power budget expands, because the demands on a phone CPU and a laptop/desktop one are different.

              1. 2

                Isn’t it actually a Laptop CPU? I thought the “real” desktop ones are yet to come.

                1. 1

                  You’re right – the distinction I was trying to make was that it’s basically still an iPad CPU.

            2. 3

              My understanding of other benchmarks is that the M1 Air can run at full cpu capacity for about ten minutes before throttling down, so these emacs builds were probably running at full power. However, full power for the Air is still only 10 watts, which is how they get away with not having a fan. It’s just a (normally fanless) phone chip scaled up to laptop standards, something people have been waiting for ever since the original iPad Pro out benchmarked many flagship laptops.

              1. 5

                According to Anandtech at full throttle the M1 draws about 27W. Not for very long in an Air though :)

          3. 5

            I think we’ll need to wait a few more years to know if they’ve really failed so completely.

            1. 4

              I think that’s already pretty amazing. Until a few months ago for decades we could always count on having the best hardware in the Intel / AMD world. For the first time in like 30 years Intel and AMD hardware is significantly inferior. Maybe they’ll catch up quickly, but this is a radically different state of affairs.

            2. 3

              Didn’t apple buy a year or so of exclusive use of the newest process at TMSC? How much of the performance gap is a willingness to spend a whole lot of money there?

              1. 2

                Have they really fallen behind? Is there any other non-apple CPU that I can buy at a similar price and use in a desktop with comparable performance? Power has good performance, but it still doesn’t surpass intel/amd; and it certainly doesn’t beat them at pricing. (It probably has better power consumption, granted.)

                1. 1

                  See the “innovators dilemma” section of this post: https://apenwarr.ca/log/20201227. I don’t have domain knowledge to judge this is a right explanation, but it sounds convincing.

                2. 4

                  Well, interesting:

                  $ time ./configure     --with-xpm=ifavailable --with-jpeg=ifavailable --with-gif=ifavailable --with-tiff=ifavailable --with-gnutls=ifavailable
                  checking for xcrun... xcrun
                  checking for make... yes
                  checking for GNU Make... make
                  checking build system type... arm-apple-darwin20.2.0
                  checking host system type... arm-apple-darwin20.2.0
                  configure: error: Emacs does not support 'arm-apple-darwin20.2.0' systems.
                  If you think it should, please send a report to bug-gnu-emacs@gnu.org.
                  Check 'etc/MACHINES' for recognized configuration names.
                  ./configure --with-xpm=ifavailable --with-jpeg=ifavailable     0.09s user 0.17s system 36% cpu 0.685 total
                  FAIL: 1
                  

                  Did OP compile it under the Rosetta emulation?

                  1. 2

                    You might want to find a different source of source code:

                    https://amitp.blogspot.com/2020/11/building-emacs-27-on-apple-arm-m1.html

                    Seems like there’s work in progress, but perhaps not finished yet.

                    1. 1

                      I’m curious, is that the right target triple? The arm bit generally means 32-bit Arm, arm64 is more common for 64-bit Arm (and even on 32-bit, you’re more likely to see something like armv7 than plain arm). The darwin bit is also interesting. Apple uses macos in their target triples so that the triple can differentiate between macOS, iOS, watchOS, and iPadOS.

                      1. 1

                        I’m not an expert on autotools, but from a quick research I can see that the arm part is taken from uname -p:

                        $ uname -p
                        arm
                        

                        Next, apple-darwin is hardcoded in build-aux/config.guess:

                          1368     echo "$UNAME_PROCESSOR"-apple-darwin"$UNAME_RELEASE"
                        

                        and 20.2.0, or $UNAME_RELEASE is uname -r:

                        $ uname -r
                        20.2.0
                        

                        My guess is that it’s just autotools that uses such triple, not Apple (I wouldn’t bet my money on it though :D)

                        1. 1

                          If you run clang -v, what does it say for the ’Target: ’ line?

                    2. 3

                      Now I want to go build emacs on my new laptop! I am curious where the Ryzen 7 4700H stands in this comparison.

                      Edit: So, I have an old box with an i7-4790k, 32GB of RAM, and a brand new Tuxedo Pulse 15 laptop with Ryzen 7 4700H with 32GB of RAM. RAMs are obviously different generations, and the new baby has NVME, while the box has a SATA SSD, if that matters. I don’t have X installed (appropriate to the today’s topics I guess), so I had to tweak the ./configure line a bit. I’m happy to report that my new laptop builds emacs faster (with -jTHROUGH_THE_ROOF) then my box. Now I finally have justification to upgrade the box (well no. but still).

                      Anyway if anyone’s curious.

                      i7-4790k:

                      [zlatko@battlestation ~/Projects/emacs]$ ./configure     --with-xpm=ifavailable --with-jpeg=ifavailable --with-gif=ifavailable --with-tiff=ifavailable --with-gnutls=ifavailable
                      time make
                      real	4m23.558s
                      ... with all the cores
                      time make -j8
                      real	0m32.292s
                      

                      Ryzen 7 4700H

                      [zlatko@null-boundary ~/projects/emacs]$ ./configure --without-makeinfo --with-x-toolkit=no     --with-xpm=ifavailable --with-jpeg=ifavailable --with-png=ifavailable --with-gif=ifavailable --with-tiff=ifavailable --with-gnutls=ifavailable
                      
                      time make
                      real  8m36,881s
                      ...
                      
                      time make -j16
                      real  0m25,751s
                      
                      1. 1

                        Interesting that you’re getting such low times. Just tried a build, it spent way too much time single-threadedly “Processing OKURI-NASI entries”… There’s definitely different configuration involved on different machines.

                        1. 1

                          On an “AMD Ryzen Threadripper PRO 3945WX 12-Cores” I got:

                          make -j24  262.39s user 21.60s system 890% cpu 31.899 total                                                                                       
                          

                          May be a little slow because this partition is on an old SATA SSD instead of NVME.

                        2. 2

                          I was able to experience this with the M1 Mac Mini and having to compile LLVM from source. Admittedly, my point of comparison is with the 2013 i7 retina macbook pro (dual core), but with -j2, the time went from 37 to 13 minutes. Using the 4 big cores on the mini brought the time down to 8-9 minutes.

                          1. 2

                            Sounds like this new MacBook would make a beast of a Gentoo machine :D

                            1. 2

                              Does he compile emacs for the same architecture on all machines or does he compile for the host architecture? I heard compiling for x86 or x86_64 is harder/slower than compiling for ARM.

                              1. 2

                                If you build for a local edit-build-run cycle, then it doesn’t matter. If x86 code generation is unusually slow, then it’s just yet another problem Intel has created for themselves.

                              2. 2

                                The keyboard on M1 Air is actually quite decent IMO. Way better than butterfly.

                                1. 2

                                  I also like the keyboard on the M1 air, speaking as someone who has owned several thinkpads and use a mechanical keyboard on my desktop.

                                2. 1

                                  As someone that used to build emacs a lot I loved this! Can’t help but think that the M1 Mac running Linux would be faster still (unless I’ve missed some benchmark that show apfs performance has improved)