Results: CPU Core Benchmarks
The four Krait 300 CPU cores powering the N1 are based on a customized ARM Cortex-A15 design. Running the familiar ARMv7 instruction set, it features a hardware L2 prefetch engine, which preemptively grabs data from main memory and stores it in the L2 cache, and the usual improvements to branch prediction. Both Krait and the -A15 increase the number of instructions that can be executed out-of-order, relative to the previous-gen Scorpion and -A9 cores (although the early and late stages of the pipeline are still in-order). A larger instruction window further improves out-of-order execution performance.
Further improvements to Cortex-A15/Krait include increased memory bandwidth and a wider design overall. The number of instructions decoded per cycle increases from two to three and up to four instructions can be executed in parallel. The integer pipeline depth also increases from 10 to 11 stages for Krait and 15 stages for -A15, which was originally intended to help scale clock rate.
Qualcomm’s Krait 400 CPU inherits all of the improvements made to the Krait 300, but moves to a newer 28 nm HPm process (versus the 28 nm LP process for Krait 300). This change alone helps Krait 400 scale to higher frequencies and thus, better performance.
For comparison, Apple’s A7 SoC is much wider than the Cortex A15 and Krait cores decoding, issuing, executing, and retiring up to six instructions per cycle. That’s twice the IPC of the -A15 and sometimes even greater due to restrictions on mixing certain integer and floating-point instructions in parallel. Likewise, the A7 has a larger out-of-order window size, or reorder buffer, holding up to 192 micro-ops versus 128 for the -A15 and only 40 for Krait.
While this isn’t an exhaustive comparison, it’s clear that Apple’s A7 should hold a decisive advantage in CPU performance. Krait 400’s clock speed advantage should keep it competitive with the A15 based SoCs. However, the performance of Oppo’s N1 is likely to fall short of the opposition due to the lower-clocked Krait 300 cores.
AnTuTu is an Android system benchmark designed to test the performance capabilities of four major aspects of mobile devices: Graphics (encompassing 2D, UI, and basic 3D), CPU (fixed, floating-point, and threading), RAM (read and write), and I/O (read and write).
The Nvidia Tegra 4-powered Xiaomi Mi3 jumps to the top of the chart in AnTuTu with strong results in the UX (multitasking), RAM, and GPU (3D graphics) tests. Even though the Nexus 5 and Note 3 share the same SoC, the Samsung phablet’s overall score is 14.3 percent lower, due in part to its low score in the RAM test. As expected, the Krait 300 cores hold the Oppo N1 back in the CPU test.
Samsung's Exynos 5 Octa, with its lower-clocked Cortex-A15 CPU cores and PowerVR SGX544 MP3 graphics engine, relegates the Meizu MX3 to last place, just barely losing to the Oppo N1. With ColorOS running the show, the N1 scores better in the UX and RAM tests, while the CyanogenMod-equipped N1 scores better in GPU. Regardless of OS, the N1 shows the third-slowest I/O scores.
Basemark OS II
Rightware is an experienced multi-platform benchmark developer. The company leverages this experience with Basemark OS II, an all-in-one tool designed for measuring overall performance of mobile devices. It scores each device in four main categories: System, Memory, Graphics, and Web. The System score reflects CPU and memory performance, specifically testing integer and floating-point math, along with single- and multi-core CPU image processing using a 2048x2048 pixel, 32-bit image. Measuring the transfer rate of the internal NAND storage (Memory) is done by reading and writing files with a fixed size, files varying from 65 KB to 16 MB, and files in a fragmented memory scenario. Calculating the Graphics score involves mixing 2D/3D graphics inside the same scene, applying several pixel shader effects, and displaying 100 particles with a single draw call to test GPU vertex operations. The benchmark is rendered at 1920x1080 off-screen 100 times before being displayed on-screen. Finally, the Web score stresses the CPU by performing 3D transformations and object resizing with CSS, and also includes an HTML5 Canvas particle physics test.
The Nexus 5 posts the highest overall score in Basemark OS II. Once again, we see the Note 3 trail the Nexus 5, particularly in the System and Memory tests. In the CPU-dependent System test, the Note 3’s performance is similar to the Oppo N1, with its 1.7 GHz Krait 300 cores. Monitoring the Note 3’s CPU usage during testing reveals that it fails to reach its maximum clock frequency, topping out at only 1.5 GHz. The underachieving CPU performance isn't the result of thermal throttling. Instead, the Note 3 seems to be a victim of Samsung’s overly aggressive frequency scaling algorithm in Android 4.4.
Looking at each category individually shows the iPhone 5s dominating System and Web, both CPU-intensive categories. The execution width of the two Cyclone cores in Apple’s A7 SoC trumps the clock rate and core count advantage held by Qualcomm's Snapdragon 800. Once again, the N1 does poorly in the CPU-focused tests.
The Snapdragon 800’s Adreno 330 GPU gives the Note 3 and Nexus 5 the highest scores in the Graphics category, with nearly double the performance of the PowerVR G6430 GPU in Apple's A7. The Achilles heel of PowerVR’s Rogue architecture is triangle throughput. That's the one area where performance is less than the previous-generation Series5XT. Based on the wide margin of victory, it seems the Graphics tests in Basemark OS II stress the triangle setup engine far more than the pixel and vertex shaders. This being the case, the Graphics score for the Meizu MX3 is a bit of an anomaly. Even though it has a higher-clocked Series5XT GPU than the one found in the iPhone 5 (which outperforms the iPhone 5s in triangle throughput), the Meizu MX3 is easily beat by the iPhone 5s. Either the MX3’s aggressive clock rate is causing thermal throttling or it’s being held back by driver issues.
The Oppo N1 manages to keep pace with the iPhone 5s thanks to its Adreno 320 GPU. The Nvidia GeForce ULP GPU in the Tegra 4-powered Xiaomi Mi3 can’t match the performance of the iPhone 5s or the devices sporting Adreno GPUs.
Google’s Nexus 5 nets the high score in the Memory category, while Oppo’s N1 garners second-place honors. The SanDisk MLC NAND used in the Xiaomi Mi3 exhibits especially poor performance in this test.
Primate Labs’ Geekbench is somewhat of an industry standard due to its comprehensive database and wide cross-platform compatibility (Windows/OS X/Linux/iOS/Android). This benchmark produces two sets of scores: single- and multi-threaded. For each, it runs a series of tests in three categories: Integer, Floating Point, and Memory. The individual results are used to calculate category scores, which in turn generate overall Geekbench scores.
The performance of the iPhone 5s in the Single-Core benchmark is simply amazing. Apple’s custom A7 architecture dominates every category, with a 1.51x margin of victory in Integer, 1.57x in Floating Point, and 1.24x in Memory, giving it a 1.5x margin overall. Not only is the A7 the first 64-bit mobile CPU running the ARMv8 instruction set, but the architectural changes Apple made produce a generational jump in performance.
Clock frequency propels the Snapdragon 800-powered Nexus 5 into second place, followed by the Meizu MX3 and Xiaomi Mi3 with their Cortex-A15 cores. The Note 3 posts the lowest score in both the Integer and Floating Point tests, held back by its broken frequency scaling algorithm. Oppo's N1 posts the lowest Single-Core score of the group.
The Multi-Core benchmark tells a different story, and this time, quad-core configurations are the hero. Still scathing from its defeat in the Single-Core benchmark, the Nexus 5 uses all four of its Krait 400 cores to slay the mighty iPhone 5s.
Even with half as many cores, the iPhone 5s claims second place, going so far as to post the highest memory score. Further demonstrating its IPC advantage, the two lower-clocked cores in the A7 achieve 93% of the Integer performance of the Nexus 5’s four Krait 400 cores, and 86% of the Floating Point performance.
Once again, Xiaomi's Mi3 outscores the Meizu MX3 in both the Integer and Floating Point tests. This isn’t surprising given the 12.5% frequency advantage its Cortex-A15 cores have over those in the Meizu MX3. Clock speed doesn’t tell the whole story, however. Looking at each test individually shows the Mi3 with a 28% performance advantage in integer math and 35% in floating-point. Memory bandwidth can’t explain this discrepancy, since the Meizu MX3 actually scores higher. The most likely explanation lies with the broken ARM big.LITTLE implementation in Samsung’s Exynos 5 Octa SoC.
Specifically, there is a glitch in the cache coherency interface (CCI-400) that connects the two CPU islands to the rest of the SoC, which doesn’t allow it to use the Core Migration (where a thread can move within a pair of Cortex-A15 and -A7 cores, but not across pairs) or Heterogeneous Multi-Processing (HMP) modes (where the OS is aware of all eight cores and can schedule threads to whichever core it chooses). Instead, the SoC uses the less efficient Cluster Switching mode where either all four -A15 cores or all four -A7 cores are active, but never both at the same time. Not only is this a less efficient use of resources, but there is a big penalty when switching between CPU islands: all caches are synchronized via main memory rather than the speedier on-chip interface. If the Meizu MX3 starts the tests running on the slower 1.2 GHz Cortex-A7 cores and then switches to the more powerful -A15 island, the resulting pause in processing could account for the lower benchmark scores. The lesson: more isn’t always better.
The N1 comes in last by a large margin. What’s interesting though is the difference between running ColorOS and CyanogenMod. The N1 running CyanogenMod is about 1.5x faster in both the Integer and Floating Point Multi-Core tests, while they’re essentially equal in the Single-Core tests. CyanogenMod 10.2 is based on a newer build of Android (4.3 versus 4.2 for ColorOS) that includes several performance enhancements. Other than CPU Input Boost, which helps software integrate better with the device’s CPU, most of these improvements are for improving 2D/3D graphics rendering. Other phones upgrading from Android 4.2 to 4.3 don’t exhibit such large jumps in performance, so the difference in multithreaded performance is unique to ColorOS.
Principled Technologies’ MobileXPRT 2013 is a modern SoC benchmark for Android. It consists of ten very real world test scenarios split into two categories of testing: Performance and User Experience. The Performance suite contains five tests: Apply Photo Effects, Create Photo Collages, Create Slideshow, Encrypt Personal Content, and Detect Faces to Organize Photos. Performance results are measured in seconds. The User Experience suite also has five tests: List Scroll, Grid Scroll, Gallery Scroll, Browser Scroll, and Zoom and Pinch. These results are measured in frames per second. The category scores are generated by taking a geometric mean of the ratio between a calibrated machine (Motorola’s Droid Razr M) and the test device for each sub-test.
In this CPU-focused test, the device ranking remains largely the same with the Nexus 5 putting its clock rate advantage to good use. The Note 3 plays it conservative and splits the Xiaomi Mi3 and Meizu MX3. Oppo's N1 with ColorOS places last, but comes in second when running CyanogenMod. The 1.24x improvement is attributable to CyanogenMod’s better threaded performance.
The N1 takes the longest to complete the encryption test. However, it does well applying the photo effects and creating photo collages, which is encouraging for a phone that emphasizes its camera.
The unit of measure for the User Experience Tests is frames per second. Values for each individual test are shown within the bar graph. The number to the right of each bar is the computed score.
There is only a 13 percent difference between the best and worst performers. All of the devices are capped by v-sync in the List Scroll, Grid Scroll, and Browser Scroll sub-tests. The Oppo N1 with ColorOS manages a second-place finish behind the Nexus 5 in Gallery Scroll, besting CyanogenMod by 6 FPS, or about 13 percent. The Meizu MX3 finishes last primarily due to its low score in Gallery Scroll.