This post is a bit off-topic, because it doesn’t have anything to do with the game (btw. I added one more new creature today), but I just wanted to stack some hard facts against one particularly annoying myth that seems to be flooding the internet.
The myth is that mobile CPUs will soon catch up with desktop processors, and that with all the new quad-core ARM chips out there, they are not too far from pulling that off. After all, high end desktops also have quad-core CPUs, so how much difference can there be?
Somehow, by evil force of marketing, number of cores has become the sole measuring stick for CPU “goodness”. A quad must be better than a dual, and dual better than single. Desktops have quad cores, mobiles have quad cores, they must be close in performance.
This is so wrong I don’t even know where to start. Mobile CPUs performance is far behind desktop CPUs.
When I was recently doing an optimization pass on some math code in Survivalcraft, I actually benchmarked stuff both on my PC and several different mobile devices. Including a Nexus 7, which has a (marketing-friendly) quad core Tegra 3 chip.
For instance, let’s take a matrix decomposition operation (any other would do). Here’s the “shocking” result:
Time to do 100,000 matrix decompositions (single threaded):
- Nexus 7: 422ms
- Intel i5 3570: 13ms
My PC is 32 times faster.
(Actually, it’s a couple of times faster than this, because my x86 code does not use SSE, but let’s ignore that)
We don’t need to compare Nexus to the newest desktop processor. Let’s take a Pentium 4, which is a really prehistoric CPU that was first released some 12 years ago, around when Windows 98 ruled the desktops and dinosaurs were still roaming the young Earth.
According to www.cpu-world.com, Pentium 4 is about 4 times slower clock for clock than my i5, and its clock speed was half of the i5. So, altogether it’s roughly 8 times slower when single threaded. That’s a lot.
But it would still decompose matrices full 4 times faster than Nexus 7 (again, ignoring SSE that would make it even faster).
Would you want to make your Nexus 7 four times faster? The desktops were there 12 years ago.
You may point out that Nexus has 4 cores, while Pentium had only one. So their performance would actually be quite close.
This is a fallacy. Perhaps an artificial benchmark could be made that fully loaded all 4 Tegra cores with matrix operations, but I am sure the bottleneck would move from CPU to caches and memory, power throttling would kick in, and as a result the performance would be nowhere near 4 times singlethreaded.
But anyway, artificial benchmarks is not what counts. It’s the real life performance that does. And there, single thread oomph rules. It’s very difficult to parallelize a non-trivial, real-life application to efficiently use many threads. It’s even more difficult on mobile platforms, where apps are simpler and can’t rely on always running on efficient multicore hardware.
So, the old Pentium 4 would eat Nexus 7 for breakfast. Actually, probably even Pentium 3 would do. That was released 14 years ago.
So much for anyone who thinks that mobile chips will soon catch up with desktops.
Yes, in 14 years there may be a mobile phone that runs as fast as todays i5. By then, desktops will be lightyears ahead.