The Mobile CPU Core-Count Debate: Analyzing The Real World
by Andrei Frumusanu on September 1, 2015 8:00 AM EST- Posted in
- Smartphones
- CPUs
- Mobile
- SoCs
Hangouts Launch
The duration of the test this time is only 3.6 seconds. During the initial application launch, we don't see much activity on the little cores. Cores 1-3 are mostly power-gated and we see that there's little to no threads placed onto the cluster during that period. Once the app opened, we see the threads migrate back onto the little cluster. Here we see full use of all 4 CPU cores as each core has threads placed on it doing activity.
This is the perfect burst-scenario for the big cores. The application launch kicks in the cores into high gear as they reach the full 2.1GHz of the SoC. We see that all 4 cores are doing work and have thread placed on them. Because of the fine granularity of the load, we see the CPUs rarely enter the power-gating state in this burst period as the CPU Idle governor prefers the shallower WFI clock-gating state. As a reminder, on the Exynos 7420 this state is setup for target residency times of 500µS.
In general, the workload is optimized towards 4-core CPUs. Because 4x4 big.LITTLE SoCs in a sense can be seen as 4-core designs, we don't see an issue here. On the other hand, symmetric 8-core designs here would see very little benefit from the additional cores.
157 Comments
View All Comments
Hrobertgar - Tuesday, September 1, 2015 - link
Your spikes on the video recording appear to be every ~4 secs of video, could the CPU spikes be app / memory related?badchris - Tuesday, September 1, 2015 - link
Thank you for this excited article.And one problem,how do we explain 2 big core Snapdragon 808 is more efficient than 4 big core Snapdragon 810?Andrei Frumusanu - Tuesday, September 1, 2015 - link
You cannot make comparisons between different SoCs even if they have the same CPU IP and the same manufacturing process. The S808 is different from the S810 which are again different from Nvidia's X1 even if all 3 have A57 cores on TSMC 20nm.badchris - Tuesday, September 1, 2015 - link
nvm,i should realize this comparison is not scientific.metafor - Tuesday, September 1, 2015 - link
The S808 and S810 should be fairly similar though. That's not to say you can say that the only difference is the CPU configuration but a similar study on what the behavior is like on a different SoC with fewer cores would be helpful.Threading isn't 100% free and neither is thread migration. It might be good to take a look at just what the S810 is doing over time compared to the S808 in terms of CPU activity.
Andrei Frumusanu - Tuesday, September 1, 2015 - link
I have data on all of that... It's just in need of being published in an orderly fashion.kpkp - Tuesday, September 1, 2015 - link
There are quite few other differences beside the 2 cores, starting with the memory controller.badchris - Tuesday, September 1, 2015 - link
thx for your notice.there're something i forgotnpp - Tuesday, September 1, 2015 - link
As an ex-Android developer I can remember that the SDK not only encourages, but sometimes straight out enforces extensive usage of threads. For example, around API level 14/15, making a network request in the main thread would throw an exception, which may seem obvious to experienced developers but wasn't enforced in earlier versions. This is a simple example, but having the API itself pushing towards multi-threaded coding has a positive effect on the way Android developers build their apps. I'm not sure then why Google's own browser would be surprising for its usage of high thread counts - even a very basic app would be very likely to spawn much more than 4 threads nowadays.Arbie - Tuesday, September 1, 2015 - link
"I was weary of creating this table..."That's not surprising, after all your work ;-).
Terrific article BTW which is up to Anandtech's long-time standards. Seems like a mini master's thesis.