So which processor is faster? There's been an endless number of forum/blog debates on this topic. We can talk about theories all day, but rather than doing this, lets look a bit deeper into the results of various benchmarks and see what those numbers truly mean.
For those who are not familiar with these processors, here's a brief introduction to each SoC:
This is a System on Chip (SoC) that consists of a CPU core that implements ARM's Cortex A8 design and a GPU design that features a PowerVR GSX540 core, designed by Imagination Technology. Samsung does not distribute this SoC to any other manufacturers so you will find this processor only in their own phones. Galaxy S series phones are by far their best known examples of such phones.
Qualcomm Snapdragon MSM8x55
MSM8x55 is one of Qualcomm's second generation processors. (Read more details about MSM8x55 here.) This is a SoC that consists also of a CPU core that is a slightly modified version of ARM's Cortex A8 design, plus their own GPU implementation, called Adreno 205. (Read more about Adreno 205 here.) Popular phones that utilize this processor includes HTC Desire HD, T-Mobile's HTC myTouch 4G, and soon to be released Verizon's HTC Thunderbolt.
To measure the performance of each processors, you will need a benchmark application. You will find many benchmarks in the Android Market and depending on which one you run, you will get conflicting results. So which one should you believe? How do they REALLY compare to each other? We will look at some of them in this article.
There are clearly two significant components to consider here - the CPU core and the GPU core. For productivity apps, CPU processing power is much more important while for any games or apps that use OpenGL engine, obviously the raw GPU power is more important. You will find that it is very rare for an app to stress both CPU and GPU to the extreme levels simultaneously. Even complex 3D games will be mostly bottlenecked by the GPU rather the CPU which mainly needs to worry about setting up data for the OpenGL engine. Typically, 1GHz processors have no problem pushing data fast enough to keep these modern GPUs busy to their limits.
So in simple terms, you need to make sure you compare apples to apples when it comes to benchmark results. You will need to know which is more important to you, the CPU or the GPU (and to a lesser extent, I/O) given what you like to do with your phone. Then you will need to know what each benchmark application measures, and what do the final numbers mean. Without this, the benchmark numbers are pretty much useless.
Knowing this, lets look at the two processors.
Hummingbird's CPU core and MSM8x55's CPU core should be roughly equivalent in theory. They are both based on ARM's Cortex A8 design. Their clocks are identical at 1GHz and their Instructions Per Cycle (IPC) ratings are about the same as well. One will not vastly outperform the other regardless of the application you run on them, except for few highly specialized applications that may utilize instruction sets only implemented efficiently on one of the two processors (once again, a topic worthy of another article, but for majority of us, this shouldn't concern us).
So how about their GPUs? Hummingbird's PowerVR GSX540 is a seriously powerful GPU, especially given its timeline of release. Their architecture/design suggests that SGX540 will outperform Qualcomm's Adreno 205 but this remains to be proven. There are plenty of articles on the net that talks about poly/pixel fill-rates, number of pipelines, memory bandwidths, etc.
So lets look at the benchmark numbers now.
This benchmark application conveniently splits the overall score into two components - productivity and gaming. By doing this, you can better understand how the processors perform. If you use your phone for apps, Productivity Index is what you should look into. If you do a lot of gaming that uses the GPU, then high Gaming Index score is what you are after.
Lets look at some numbers:
HTC MyTouch 4G (1GHz MSM8255, Android 2.2)
- Productivity: 1259
- Games: 1910
Samsung Epic 4G (1GHz Hummingbird, Android 2.2)
- Productivity: 1127
- Games: 2679
Keep in mind that both Productivity and Games Index scores are still composite scores consisting of combination of internal CPU, GPU and I/O scores, but weighted appropriately (see below for more details).
So what does all this means? It appears that MSM8255 has a slight edge in productivity scores, and the Hummingbird has a significant edge in gaming scores.
So which processor wins? Depends on what you need. For CPU tasks, MSM8x55 has a slight edge. For games, Hummingbird wins big time.
This benchmark tests 5 areas of your processor - CPU, Memory, I/O, 2D and 3D. The advanced version of Quadrant publishes scores for each of these components. Lets look at the CPU and 3D scores for each of the processors.
(Unfortunately, I cannot locate any Quadrant Advanced scores for MSM8x55 processors yet, so I will use MSM7x30 which is a 800MHz version of MSM8x55. This section will be revised soon. Similarly, the result used here for Hummingbird is using Android 2.1 so I'll update it at la later date when I find a result for 2.2. CPU scores will obviously be affected but 3D scores won't change much when compared to 1GHz version.)
- CPU: 3432
- 3D: 491
- CPU: 740
- 3D: 845
As you can see, even Quadrant says Qualcomm's CPU is faster, but the GPU is slower. (Why such a huge difference in CPU scores between two processors that are supposedly similar in theory is an entirely different topic for further discussion.)
According to Quadrant, for CPU tasks, MSM7x30 wins big time, while for GPU tasks, Hummingbird has the big lead.
GLBenchmark is a benchmark that measures the OpenGL performance. 2.0 consists of multiple sets of benchmark apps.
As you can see in this chart, the results aren't always consistent. But overall, you could say Hummingbird still has the edge over Adreno 205. AndroidAndMe, who published these charts, also made the same conclusion.
Why do we have this here? That's because it is one of the most graphically taxing game currently available for Android phones today. Have a look at their suggested devices - I've taken only a partial list from their description.
- Nexus S
- Samsung Galaxy Tablet
- Samsung Galaxy/Captivate based cell phones
- Samsung Galaxy S
- T-Mobile G2
- myTOuch 4G
- HTC Desire HD
Can you see a pattern here? "high-end" phones here all feature Hummingbird processor, while "mid-range" phones all feature Qualcomm's second generation processors, i.e. MSM8x55 or MSM7x30. Texas Instrument's OMAP3 processor-based phones also belong in this category, according to the vendor of this game. First generation Snapdragon processor-based phones are not listed but they do pass the minimum requirements, so perhaps you could categorize them as "low-end".
According to this Game vendor, Hummingbird is "high-end", while Adreno 205 is "mid-range".
Quadrant vs Smartbench 2010
I've been seeing comments all over the internet that Smartbench 2010 results are invalid because phones like Desire HD and myTouch 4G produces less impressive numbers in comparison to Samsung's phones, pointing back to Quadrant numbers as being more reliable.
Lets look at Quadrant numbers CAREFULLY (as seen above) - it too says Hummingbird outperforms MSM8x55 processors in GPU tasks! If you are going to look at just the overall Quadrant number, you need to know EXACTLY what it means!
Have a look at this particular chart from Quadrant Advanced for Lag-fixed Galaxy S phone:
Have a look at the Galaxy S result. Notice that I/O occupies more than 60% of the total score. CPU is less than 10% and 3D barely makes 10% of the total score. So does this accurately represent your typical daily apps? Probably not. You will probably need to run a SQL server on your phone with large number of transactions to get close to this kind of weighting distribution. But if that is what you do (which is ridiculous), CPU should be higher than 10% as well. Not a good representation if you use your phones for web browsing, e-mail or even for gaming.
Have a look at Nexus One 2.2+ results. This time, CPU occupies more than 60%. 3D barely even registers. This may reasonably represent a good distribution for those who use phones mostly for productivity. But if you are looking for gaming benchmark numbers, this one is BAD as well. 3D score weight is just too low. Also, try comparing this with "Nexus One" at the bottom. Somehow, Android 2.2 boosted the CPU score by 10x! Does this give you some clue what type of CPU test Quadrant tests? Most of the apps you run every day won't realize 10x gain by going up to 2.2 (i.e. JIT compiler).
Now have a look at Droid X numbers. I/O now occupies about 40%, CPU is may be around 10%, 3D is less than 10%. So what are we measuring here? Definitely not great if you are looking for a representative numbers for your browser speed or 3D gaming performances. I/O is still too heavy.
I could go on forever. The point here is that the test suite within Quadrant is decent. But how they apply the weighting may not necessarily reflect how YOU use your phone. Despite this, if you are still using these numbers as is, the overall score is totally meaningless!
Now have a look at Smartbench 2010 chart:
Productivity numbers are produced by giving CPU related tests a weight of approx. 70% and I/O tests a weight of 30%. Games numbers are produced by using weights of 85% on 3D tests and 15% on I/O tests. And this weight distribution won't likely to swing by huge factors anytime soon because Nexus One is the baseline.
It is my belief that benchmark apps get out of date too. This is natural since all benchmark apps make certain assumptions. Their goal is to try to mimic certain applications (or games). If those apps no longer represent typical apps of today, then the scores are meaningless.
Weighting is a key element of all benchmark apps that use composite scores (such as Quadrant and Smartbench). Weightings do get out of date too and the baseline device needs to be "upgraded" to the typical device of today. Quadrant's baseline device is HTC Magic. Smartbench 2010's baseline device is an overclocked Nexus One. Smartbench 2011s baseline device will be higher spec'd still. Benchmark apps needs upgrades. Existing benchmark apps may no longer be sufficiently stressful. Also, dual-core devices will soon show up which requires significant updates to the benchmark apps.
So back to the main question - which is faster, Hummingbird or MSM8x55?
We have a simple answer.
For CPU intensive apps, they are similar, giving a small edge to MSM8x55. This was to be expected since they are both based on ARM's Cortex A8 design. If benchmark numbers show huge differences, there's something seriously wrong here.
For GPU intensive apps, there's a clear advantage to Hummingbird.