5 ms·
I'm surprised the performance stats weren't more dramatic. Is the compilation not taking advantage of multiple cores? Or for this task is the m1 really do compa
by Rebelgecko 4y ago
I'm surprised the performance stats weren't more dramatic. Is the compilation not taking advantage of multiple cores? Or for this task is the m1 really do comparable to an Intel 3rd gen cpu?
- dijit 4y agoHonestly those numbers are miserable and not in-line with what I have experienced with M1 (or M2). The numbers make me think it's using the 'efficiency' cores, or might indicate a lot of memory pressure issues (which seems unlikely at 16GiB) There's a better write-up about compilation performance here: https://build2.org/blog/apple-m1-compilation.xhtml https://build2.org/blog/apple-m1-compilation.xhtml For macOS there is a `taskpolicy` command to set the usage of efficiency and high performance cores. I'd expect that it's using high performance cores by default but you can force it by running `taskpolicy -c utility <program>`. You can also force it to be run on efficiency cores by running `taskpolicy -c background <program>`
- fabioborellini 4y agoM1 is particularly spectacular when compared to other chips with similar thermal characteristics. i7-3770K has TDP of 77 W, without a GPU, so it has 7-8 times the power budget of M1 for the CPU. In raw performance, M1 cannot match workstation-class CPUs. Since Apple was almost exclusively offering only ultra-mobile Intel chips with horribly dated GPUs, M1 was a giant leap in their offering, but in the desktop PC market there are more powerful chips available. And even some old ones can perform quite well.
- dijit 4y agoI don't even think it's as cut and dry as all that. I have an M2 Macbook air (IE; fanless little thing) but it completely desicrates the memory of its predecessor (Precision 5520 w/ Xeon E3-1505m v6) which has a 45W TDP.. (IE. double and a bit). In single core it continues to readily beat my Theadripper 3970x workstation which has a 280W TDP... (more than 12x the TDP of the M2, though it definitely beats it in multi-core...) I think something else is at play here. Be it a terrible filesystem or (as mentioned in another comment: the use of efficiency cores for compilation).
- sz4kerto 4y agoNew Ryzen CPUs behave extremely interestingly when you manually apply TDP limits. As I mentioned in a sibling post in this thread, my 7950X is TDP limited to 105 watts (from the 170 watts factory default), and it loses around 8%-10% performance under perfectly multithreaded loads (and nothing if only e.g. half the cores or less are utilised). It is also possible to limit it to 65 watts, at which you lose around 20% or so but that's still very-very fast. At 105 watts it's around as fast as an M1 Ultra, which draws ~ 60 watts if all cores are used. Significant difference, but not something that's a very big problem in workstations. The 7950X is also competitive when limited to 65 watts -- it's barely underperforms the M1 Ultra.
- rsynnott 4y agoI don't think it's an efficiency core thing. On ~the same machine (I have a smaller SSD, but otherwise identical): > time make -j real 0m8.716s user 0m29.786s sys 0m15.102s > time taskpolicy -c background make -j real 0m42.196s user 1m13.041s sys 0m30.957s (The latter command forces use of the efficiency cores, the former is allowed use everything) One thing that _is_ notable is that it isn't really managing great parallelism (particularly visible in the efficiency core one). (Only looking at the actual build, as IME autoconf has remained reassuringly slow for the last 20 years, in defiance of all progress in CPUs, so I'm not at all surprised by that one...)
- mhh__ 4y agoA threadripper isn't a single thread monster, M1 should smash it (and does)
- zamalek 4y ago> Theadripper 3970x workstation which has a 280W TDP Is your RAM running at 3600MT/s (i.e. IF @ 1800MHz)? If not, that's 30% loss for some workloads. Also, compilation is a multi-threaded process. It doesn't make sense to blame things on single core perf.
- brigade 4y agoIt’s also a decade older and benchmarks at half the performance. I’d bet that 90% of the issue is that make, /bin/sh, and autotools all use fork() on macOS instead of posix_spawn() (I think that’s still the case…), and fork is slow on macOS. But not quite slow enough to get all that fixed by default.
- jeswin 4y ago> M1 is particularly spectacular when compared to other chips with similar thermal characteristics. i7-3770K has TDP of 77 W, without a GPU, so it has 7-8 times the power budget of M1 for the CPU. Performance doesn't scale linearly with TDP, and that's always been the case. Take any laptop vs desktop CPU, and you'd see the same ratios at play.
- 411111111111111 4y agoIts even less meaningful in this particular case as the M1 has a working temperature of ~100°C, whereas the intel targets ~65°C. Nonetheless, the M1 will most definitely be drawing much less power, its essentially an Atom processor after all. Its just gonna be hard to really put a number on it - even if you could read out the consumption from the BIOS, as they're doing things differently (integrated GPU and SSD controller for the apple silicone chips etc)
- dijit 4y ago> intel targets ~65°C are you certain you arent swapping these? Intel CPUs are famously running up to 100C before stopping their boost clock. One need only watch a single episode of Linus Tech Tips. people have reported barely any cooling requirements on the M1 and M2s comparitively.
- 411111111111111 4y agoYes, i'm sure. It would've taken you about 20 seconds to find it out yourself too, as the Intel 3770K has a published spreadsheet which clearly states the working temperature. The M1 doesn't, but there are enough unofficial sources to confirm the 100°C too. Including LTTs own video. Its a quiet old model, and consumer CPUs of that generation where generally targeting ~60-70°C. Nowadays they're all going for 95-100°C, wherever its Intel, AMD or Apple
- brigade 4y agoTcase is different than Tjunction. Tjunction has been around 100 since like Yonah at least.
- nikanj 4y agoIn an Apple laptop, the real killer is being able to work for more than 5 minutes without thermal throttling. The i9 in a Macbook pro is plenty fast for 2 minutes, then slows to a crawl because the laptop was designed to be slim, not fast
- berkut 4y agoWithout knowing specifics, it's difficult to say... could be different compilers (clang on MacOS, maybe gcc on Linux?), linkers, file system caches could be warm on one, etc. There could be different code being generated (#ifdefs, etc) per platform and architecture. Having said that though, as someone who got an M1 MBP (10-core) a few months ago, I also found that CPU-wise (ignoring memory/cache bandwidth, which is much faster on the Mac), it wasn't really any faster than a 2012-era dual-socket 4 core Xeon at 3.3 Ghz for compiling and raytracing (the latter doing lots of FP calculations which I'd expect the M1 to compute OOO really well with how wide it is) when the code was CPU-bound. The power usage is very different though obviously. Hyperthreading also helped the Xeon quite a bit. Battery life is very impressive though, and haven't really heard the fans yet.
- glandium 4y agoNote that clang's arm64 backend is faster, presumably because it has less optimizations than the x86-64 one. So even comparing clang on an intel mac and clang on arm64 mac would be skewed. You'd want to cross-compile on one of them for a better comparison relevant to CPU performance. There is still value on comparing native compilation, though.
- saagarjha 4y agoIs it?
- vvillena 4y agoIt always depends on the use case. The casual tests I did for my own use case found a M1 Pro with 10 cores to be comparable to a Ryzen 3700X, which is pretty impressive for a machine that basically makes zero noise when it's not under sustained load.
- kitsunesoba 4y agoI’ve seen some benchmarks that put the M1 Pro about on par with a desktop 5700X. Probably depends on the task. That performance level is maintained when the laptop is unplugged too, which is hard to find in a laptop. Most of them will throttle themselves pretty hard the moment you’re no longer tethered to a wall because otherwise they’ll burn through their batteries in a flash.
- raverbashing 4y agoI assume compilation is IO bound for the most part, also I really doubt the ability of autoconf/make to be much faster on modern platforms
- prmoustache 4y agoFrom what I understand, most of the dramatic performance difference mentionned in benchmarks where comparing laptops/tinyformfactor machines on intel and m1 where throttling is quickly an issue. The intel Macbook pros where known to throttle very quickly. I understand from the CPU model that the main development machine of the author is desktop with decent ventilation for the hot and power hungry i7 CPU, which makes a huge difference.
- hyperman1 4y agoA few years ago my X220t with i7 CPU was finally tortured beyond endurance, so I went around and checked how I could get a decent laptop for compiling stuff. At that point, I was mostly single threaded CPU bound. It turns out that i7 had still a very good performance comparable to most laptops. E.g. thinkwiki says its an i7-2640M , in an X220T laptop from 2011. Passmark gives it a single threaded rating of 1516. The current best CPU I can see in a thinkpad with a quick lookup is a i7-1185G7, with a single threaded rating of 2843. That's almost double, but we're comparing with a system of 12 years ago. Laptops have become a lot more power efficient, GPUs, multi core USB and WIFI are better. But the i386 days where you could more than double your CPU performance after 1.5 years are clearly over. That x220, if upgraded with SSD and 16GB ram and a new battery still does quite well today, and I paid about €500 for it over its whole lifetime.
- sz4kerto 4y agoI had an M1 and I know my current workstation is faster, but I didn't expect it to be that much faster. I have a 7950X TDP-limited to 105 watts (it hits it only when all cores are utilised), and it's 3-4x faster in curl compilation than what's on the site.
- pabs3 4y agoI'm wondering why the configure step was worse on M1 than old Intel.
- KennyBlanken 4y agoExactly. You'll note the author didn't test against, say, a modern intel or ryzen system. My guess is that he'd get similarly lackluster results, probably because the makefiles are ass. ...but that would deflate his ragebait post.
- b5n 4y agoAhh yes, Daniel Stenberg, best known for 'ragebait'. You're welcome to confirm your assertion at anytime thanks to Daniel and nearly 1k others generosity. Feel free to let us know what you find. https://github.com/curl/curl https://github.com/curl/curl