Improving The Exynos 9810 Galaxy S9: Part 2 - Catching Up With The Snapdragonby Andrei Frumusanu on April 20, 2018 9:00 AM EST
With these pieces I wanted to see what’s possible with the Exynos 9810. There’s definitely still room for improvement; I’m still sure a properly tuned WALT configuration like on the Snapdragon 845 S9 or the Pixel 2 would further improve the performance or battery life of the Exynos S9. I didn’t want to go down that rabbit hole for a custom kernel, for now the improved PELT changes are just as good as it reasonably gets.
One thing I did discover is the performance discrepancy between the M3 and Kryo 385 when it comes to synthetic benchmarks versus some of the web benchmarks. While 1794 MHz is enough to match the A75-based CPU cores of the Snapdragon in GeekBench or SPEC, I wasn’t able to match the higher performance in the web benchmarks unless I raised the clocks to around 2.3GHZ. I can now dismiss software as being the main culprit here, and instead there’s more fingers pointing at the micro-architecture of the M3. This has some relatively big repercussions as it begs the question of what kind of workload is actually more representative of overall Android smartphone use-cases.
The above graphic is my best guess on what the performance/power curves look like. These are based on scheduler cost tables, voltage curves and correlations to actual measured power on certain points. The big question here is what is the actual representative positioning between the two architectures in terms of performance? As we saw in part 1, the M3 can win on average in workloads such as SPEC at the same performance points as the S845. However to reach the higher performance of the 845 in web workloads we need to raise the clocks, and this of course would shift the efficiency curves around with a much bigger favour towards the Arm cores. The average is probably somewhere in-between, and Arm and Samsung hopefully have a more complete view in terms of workload characterization.
What is indisputable is that the M3 lags behind in the lower frequency states. Here, Samsung’s cores just stop scaling further down in voltage after 1170MHz, while the Snapdragon and Arm cores' power curves are just a lot steeper. Again the absolute difference is arguable depending on workloads, be it 25% or 100%. Unfortunately at this point we’re talking about insurmountable physics and there’s just no software optimisation which will overcome this.
In the end the Exynos S9 was hampered on two fronts: one being just a very unoptimised BSP (Board support package; kernel, drivers, etc) by S.LSI (With the Mobile Division also possibly being a factor), particularly the seemingly senseless chasing of higher synthetic benchmarks scores such as GeekBench. which in turn backfired very badly in any real-world workloads. Qualcomm provided Samsung with an excellent baseline BSP on the S845 S9’s – so for S.LSI not being able to do the same is just unfortunate. The other front where the Exynos S9 was hampered was that the M3 just seems oversized and power hungry, and it can’t sufficiently act as the efficient workhorse for general workloads. Compounding problems, this comes at a cost of battery life. Here there’s just a lot more to be done to fix the efficiency and the performance discrepancy relative to Arm’s cores.