Google Nexus 5 Reviewby Brian Klug on December 5, 2013 8:00 AM EST
At the core of Nexus 5 is a Snapdragon 800 SoC, specifically MSM8974. We’ve seen Qualcomm’s latest silicon in a number of smartphones already, and it consists of four Krait 400 CPUs at up to 2.3 GHz, Adreno 330 graphics at up to 450 MHz, and integrated Category 4 LTE multimode modem, all built on TSMC’s 28nm HPM high-k process. This is the higher 2.26 GHz (rounded up to 2.3 in most literature) clock, but don’t confuse it with the 8974-AB or -AC variants that it’s still a bit early for. Technically what’s in Nexus 5 and other current other 8974 devices is 8974-AA. Last year I was surprised to see Nexus 4 get APQ8064 at its price point, this year I guess I’m also surprised that Nexus 5 is able to ship the best current silicon from Qualcomm at its own price point. There’s also 2 GB of LPDDR3 at 1600 MHz data rate on a 2x32 bit interface for the whole system.
On paper, the Nexus 5 should be the fastest in the Android landscape, since in terms of silicon it has the bleeding edge of what’s available right now. With the Nexus 4 the same was the case, although as we discovered thermal throttling prevented the Nexus 4 from looking as good as its other S4 Pro devices in benchmarks. I also mentioned on the podcast that it’s likely that the fact Nexus doesn’t switch into using a performance mode governor upon detecting certain benchmarks also contributed to the delta. Thankfully Google continues to not do an app detect and performance mode switch for benchmarks or a small whitelist of apps.
|I Can't Believe I Still Have to Update This Table|
|3DM||AnTuTu||AndEBench||Basemark X||Geekbench 3||GFXB 2.7||Vellamo|
|ASUS Padfone Infinity||Qualcomm Snapdragon 800||N||Y||N||N||N||N||Y|
|HTC One||Qualcomm Snapdragon 600||Y||Y||N||N||N||Y||Y|
|HTC One mini||Qualcomm Snapdragon 400||Y||Y||N||N||N||Y||Y|
|HTC One max||Qualcomm Snapdragon 600||Y||Y||N||N||N||Y||Y|
|LG G2||Qualcomm Snapdragon 800||N||Y||N||N||N||N||Y|
|Moto RAZR i||Intel Atom Z2460||N||N||N||N||N||N||N|
|Moto X||Qualcomm Snapdragon S4 Pro||N||N||N||N||N||N||N|
|Nexus 4||Qualcomm APQ8064||N||N||N||N||N||N||N|
|Nexus 5||Qualcomm MSM8974||N||N||N||N||N||N||N|
|Nexus 7||Qualcomm Snapdragon 600||N||N||N||N||N||N||N|
|Samsung Galaxy S 4||Qualcomm Snapdragon 600||N||Y||Y||N||N||N||Y|
|Samsung Galaxy Note 3||Qualcomm Snapdragon 800||Y||Y||Y||Y||Y||N||Y|
|Samsung Galaxy Tab 3 10.1||Intel Atom Z2560||N||Y||Y||N||N||N||N|
|Samsung Galaxy Note 10.1 (2014 Edition)||Samsung Exynos 5420||Y(1.4)||Y(1.4)||Y(1.4)||Y(1.4)||Y(1.4)||N||Y(1.9)|
|NVIDIA Shield||Tegra 4||N||N||N||N||N||N||N|
The reality is that no mobile device right now is exempt from the realities of thermal throttling or the thermal constraints of a small mobile devices, even tablets. There’s obviously a balance between skin temp of the device (and in many cases the safe limits for regulatory compliance), accelerated aging of silicon from high temps, and of course throttling causing short-term performance erosion during certain use cases like playing games.
Thankfully the Nexus 5 doesn’t lock down its thermal configuration file, something I’ve seen other OEMs do. One thing to keep in mind is that setting these cutoffs isn’t Qualcomm’s responsibility, rather it’s one of many knobs that OEMs have access to when building the software for a device, in this case Google with its Nexus 5. The reality is that vendors in the mobile device industry tend to advertise what ends up being a boost or turbo clock rather than the nominal or steady state clock, something that needs to and hopefully will change once we’re out of the current mobile MHz race. I saw the Nexus 5 hit a maximum skin temperature of 45.2 degrees Celsius which is on the warm side but definitely not unacceptable.
It’s actually easier to explain by seeing it in action, which thankfully we have tools for. I’ve tweeted before that to investigate thermal throttling I’ve resorted to running benchmarks with the device on a cold compress, which says nothing against Nexus 5 specifically since isn’t the first nor is it the last device I will have to investigate this way. The red line shows CPU frequency on CPU0, other cores can and do plug in, it’s just easiest to look at one core at a time to understand what’s going on. The blue line shows GPU frequency, which is a maximum of 450 MHz in the case of the Nexus 5’s Adreno 330. The workload is 3DMark Unlimited, the newly-added benchmark mode with better offscreen isolation for performance evaluation across devices.
One of the things that stuck out to me running 3DMark Unlimited was how the graphics tests were relatively unchanged between runs, but I could tell that some runs were throttling because the Physics test (which is a CPU test) was changing dramatically between runs. The graphs bear this out, Adreno 330 stays at 450 MHz during its 3D runs while the CPU throttles down to its nominal 1.2 GHz frequency. By the time the physics workload kicks in (where GPU clocks go to their minimum and CPU to its maximum), the CPU throttling is already at maximum since the clocks are at their nominal frequency. I’ve seen GPU priority flags in NVIDIA’s DVFS config, I suspect Qualcomm has the same in its mpdecision configuration framework available to OEMs. If you’re playing games on Android which tend to be more GPU bound than CPU bound, the result is that performance shouldn’t really regress all that much hopefully.
We covered most of the performance breakdown of Snapdragon 800 / MSM8974 in the LG G2 review, and at this point 8974 is pretty well understood. That said I still ran the Nexus through our usual set of smartphone benchmarks to see how the device fares.
In our iPhone 5 and 5s review, we compared the newest hardware to everything prior. Having acquired every Nexus, I thought it worthwhile to do the same thing on the CPU side to illustrate how far we’ve come in the 3 years since Nexus One. There’s platform differences here to be wary of, Nexus One Android platform support stopped with 2.3.7, Nexus S stopped at 4.1.2, and Galaxy Nexus stopped with 4.3, while Nexus 4 and 5 run Android 4.4. AndEBench is actually a decent comparison tool here since it’s compatible all the way back to Android 2.2.
In both Java and Native modes, we see essentially 10x scaling from the first Nexus to today’s latest and greatest.
Sunspider was one of the first benchmarks I started running on mobile devices, primarily since the web was (and still is) one of the few places you could test anything cross-platform. It’s since become more of a performance optimization than anything, but here we see dramatic improvement. The Nexus S and newer are all running the latest version of Chrome for this test, Nexus One is stuck with the older webkit based browser that came with the platform since it’s on 2.3.7.
The scaling from Nexus S to Nexus 5 is just shy of 4x, and considering how lightly threaded Sunspider ends up being, it’s remarkable how much things have improved. Going back and setting up these tests, installing APKs, and navigating the UIs of these devices makes me realize how far overall performance has come.
We start with our CPU related benchmarks which consist of a mix of JS benchmarks and a few others. I’m still not pleased with the state of CPU benchmarks on Android, even four years into this foray of characterizing mobile device performance the situation isn’t pretty.
First, it’s immediate just how well the Nexus 5 does in comparison to the other devices in the web test. Chrome has come a long way, and Nexus 5 seems well suited to running its web workloads inside what’s now the default browser for KitKat.
One thing that sticks out is that Vellamo HTML5 which runs inside a WebView (which is now ChromeView in 4.4) suffers quite a bit. I’m fairly convinced that this is just a bug with Vellamo though as opposed to an actual regression in performance, especially as it seems Vellamo has fallen out of active development as a benchmark at this point.
I threw in the 3DMark Unlimited physics test with cold results just to show what the delta looks like there. It’s a worst case primarily since it comes at the very end of the test and after the clock has reached its steady state. The rest of the results I should note were run, like every other phone, on my desk with enough time between for them to reach room temperature to mimic what you’d get if you just ran the test on your own.
On the graphics side we turn to the usual assortment of 3Dmark, Basemark X, and GFXBench (formerly GLBenchmark 2.7) for comparing performance. At this point Adreno 330 GPU performance is relatively well understood, although there are slight differences between driver versions shipping between devices and total memory dedicated to GPU.
I’d argue that at this point Adreno 330 performance is fairly well understood, and as I touched on Nexus 5 has the same 450 MHz maximum GPU clock as other 8974 devices. 3DMark is up first, since as I touched on I ran this on and off of a cold compress to see the performance delta. The Unlimited mode is newest and recommended for cross device/silicon comparisons since it has the least overhead with an improved offscreen mode, normal we’ve run for a long time, and Extreme presents a more difficult workload than normal at 1080p. Standard is essentially already at vsync on the flagship devices, so looking at Unlimited and Extreme makes the most sense.
The Nexus 5 and G2 end up being separated by a small margin that’s almost all measurement error when you just look at the graphics tests, there’s undoubtedly a driver difference between the two at play as well, I suspect Nexus obviously has the newer drivers in this case.
The G2 versus Nexus 5 comparison is more interesting in Basemark X where there’s a delta that’s definitely not just measurement error. The performance uptick over Nexus 4 is also substantial.
Epic Citadel’s Ultra High quality test is nearly at the end of its usefulness, with most of the benchmark hitting Vsync at this point, but it’ll still drop below it in some challenging scenes and give an average score that’s useful, although it’s limited to on-screen resolution.
Again here we see the same kind of order, with the Note 3 on top among the 8974 devices, probably thanks to additional memory allocated to GPU, and the G2 and Nexus 5 close behind it.
Last but not least is GFXBench 2.7 (formerly GLBenchmark) and its associated subtests, which has been a long staple in the 3D graphics section and hopefully doesn’t need much introduction at this point.
The GFXBench results show an impressive uptick in triangle throughput versus the other 8974 devices we’ve seen already, likely the source of the higher framerates in the higher level tests we’ve already looked at. For now Nexus 5 has the combination of platform improvements and newer code to draw from and give it an edge in 3D performance in spite of having conservative thermal limits.
Last up is NAND or storage performance. We’ve been tracking storage performance on these devices for a little while now and have noticed forward progress over the generations. The Nexus 5 uses a SanDisk iNAND eMMC 4.51 module, SDIN8DE4 for storage, and the /system partition is EXT4 filesystem, and yes there’s still TRIM support.
With the Nexus 5, Google upped the default storage amounts from 8 / 16 GB to 16 / 32 GB, which is a thankful move considering there’s (as expected) no removable storage on the device. I should also note I was sampled a 32 GB Nexus 5. Random reads and writes are close to but just south of the Nexus 4 and nothing really awesome to phone home about, just par for the course. Sequential reads and writes are a step up from the predecessor, but still not the fastest around. I’d say that the Nexus 5 isn’t really held back by storage I/O throughput, and considering the price of the Nexus 5 things actually don’t look bad at all.