Seriously? Would a $6000+ x64 workstation be noticeably slower?
Seriously? Would a $6000+ x64 workstation be noticeably slower?
But it's about twice the price of a 16-core AMD 7955 which has about 150% the performance both per core and overall. The M1 certainly might win on power, though.
Using a machine of this class is mind blowing, that author isn't wrong about that. But there's still about a 3x price/performance gap. I love ARM and I can't wait for this to get more mainstream, but it's not quite here yet if you are cost conscious.
https://www.cpubenchmark.net/cpu.php?cpu=AMD+Ryzen+9+7950X&i... https://www.cpubenchmark.net/cpu.php?cpu=Apple+M1+Ultra+20+C...
Mostly its a question of latency I would imagine.
My machine:
Archlinux “Zen” (lower latency kernel).
Threadripper 3970x
256G DDR4 2666MHz
3x4TiB NVMe (PCIe Gen3) in RAID0
Radeon VII GFX card (more than enough for 2D render of terminals).
that might be the problem
low latency kernels aren't of any help unless you're running realtime (or near-realtime) workloads. not only that, in order to guarantee high priority tasks they will hurt regular process performances.
for desktop usage running a "low latency" kernel is probably a bad idea (no wonder "low latency" kernel config are not the default choice).
The lower latency kernels are great for desktops (and the default for desktop distros typically). They sacrifice raw power for lower latency.
So my compiles take a bit longer as the kernel will switch tasks more often, but keypresses will be captured with reduced latency from my perspective.
I have tested this, the stock arch kernel has considerable more latency on inputs.
CONFIG_HZ_100 # Typical for server workloads
CONFIG_HZ_250 # For servers that need to switch tasks more often (think: overprovisioned cloud providers)
CONFIG_HZ_300 # For Media servers/workstations, typically
CONFIG_HZ_1000 # For desktops, typicall.
The documentation suggests for “workstation/desktop” operations the timer should be set to 1000MHz.Why does it recommend this? Because the higher the polling rate the quicker it will see inputs from human interface devices like mice and keyboards and respond to them.
A higher tickrate here will mean more interrupts (meaning lower throughput but a lower latency to interrupts). If you're talking about process latency of non-interrupted processes then a lower value is prefered because you don't really want your program to wait around for more CPU time while linux polls all of its buffers and tries to schedule other tasks.
You can easily see what is configured by asking the kernel for its configuration param: `zcat /proc/config.gz | grep -E '^CONFIG_HZ'`
We know the performance characteristics of various x86 cores, however there are simply a lot of them, so most precompiled x86 code is generically targeted but likely has suboptimal parts on different architectures. You can, of course, -mtune= with gcc, but you'd basically need to rebuild your distribution. Or in other words, the ideal would be to compare someone running Gentoo vs macOS.
So, that was the gist of the talk and I more or less accept the conclusions. Now for my own view, I think what makes ARM processors interesting is their efficiency wrt power consumption. I would love a non-Apple ARM laptop if only because intel cores are much less efficient in terms of power they require.
Certainly not worth recompiling things all the time in my opinion, even with a beefy machine like mine.
OP is running Arch though, which is probably built with gcc/clang targeting generic ARMv8(.0?).
They basically agreed with what you said. ARM isn't some magical compute/watt wand that Apple waved; it's their incredibly tight software and hardware integration that allowed them optimize.
Lastly, threadripper has a NUMA architecture, which is not very user application friendly. Frankly, they are very bad personal computers in general, only worth if you need that much memory or PCI lines, which doesn't seem to be your case.