GPUs Comparison: ARM Mali vs Vivante GCxxx vs PowerVR SGX vs Nvidia Geforce ULP
I’m always very confused when it comes to comparing GPUs in different SoCs, and I could not really find comparisons on the web, so I’m going to give it a try even though, as you’re going to find out, it’s actually quite a challenge.
There are mainly 4 companies that provide GPUs: ARM, Imagination Technologies, Vivante and Nvidia. [Update: Two comments mentioned Qualcomm Adreno and Broadcom VideoCore are missing from the list. Maybe I'll do an update later]. Each company offers many different versions and flavors of their GPU as summarized below.
For each company the GPU are sorted by increasing processing power (e.g. Mali-T604 faster than Mali-400 MP, SGX535 faster than SGX531 etc…), and I did not include some older generations. As you can see there are many choices already, but you also need to take into account different number of cores (e.g. Mali-400 can have 1, 2 or 4 cores), process technology, and different operating frequencies chosen by SoC manufacturers for a given GPU, so that makes it even more complicated. That’s why I’m going to focus on one core for each GPU based on commonly used SoC: Rockchip RK3066 (Mali-400 MP4), Freescale i.MX6 (GC2000), AllWinner A31/ OMAP 5430 (SGX544 MP2), and Tegra 3 T30 (ULP Geforce).
Vivante has a product brief with a nice comparison table for their GPUs.
I’m going to use part for this table as base for performance comparison. For other GPUs, I’ll need to dig into the companies’ website:
- ARM Mali-400 MP page, performance tab
- PowerVR SGX Series 5XT Factsheet (PowerVR_SGX_Series5XT_IP_Core_Family_[3.2].pdf) available from Imagination Technology Download section (requires free registration)
- Tegra 3 page on Nvidia website
|Mali-400 MP4||PowerVR SGX544MP2||GC2000||Tegra 3 GPU|
|Frequency||240 MHz to 533 MHz||532 MHz||528MHz (600 MHz shader)||520 MHz|
|Geometry Rate||44M Tri/s for 1 core @ 400 MHz||70 M Tri/s per core @ 400 MHz||100 M Tri/s (Freescale claims 200 M Tri/s in i.MX6, i.MX6 Reference Manual: 88 Mtri/s,… go figure)||-|
|Textured Pixel Rate||1.6G Pix/s for 1 core @ 400 MHz||1 G Pix/s per core @ 200 MHz||1.25 G Pix/s (i.MX6 RM: 1.066G pixels/sec)||-|
|Core Processing||7.2 GFLOPS @ 200 MHz||12.8 GFLOPS @ 200 MHz
(34 GFLOPS @ 532 MHz)
|24 GFLOPS (21.6 GFLOPS
|7.2 GFLOPS @ 300MHz|
|Antutu 3.x||2D: 1338
Device: MK808 (Android 4.1.1)
Device: Onda V812 (Android 4.1.1)
Device: Hi802 (Android 4.0.4)
Device: Nexus 7 (Android 4.2.1)
|Silicon Area||4×4.7mm2 ?||-||6.9 mm2||-|
|Process||65nm LP or GP||40nm||TSMC 40nm LP||40nm|
|API support||OpenGL ES 1.1 & 2.0
|OpenGL ES 2.0 and OpenGL ES 1.1 + Extension Pack
OpenVG 1.1 enabling Flash and SVG
PVR2D for legacy 2D Support (BLTs, ROP2/3/4)
OpenWF enabling advanced compositing
OpenCL Embedded for GP-GPU
|OpenGL ES 1.1/2.0/Halti
OpenCL 1.1 EP
DirectX 11 9.3
|OpenGL ES 1.1/2.0
|Operating System support||Android
|Linux, Symbian and Android
RTOS on request
There are all sort of numbers on the Internet, and it’s quite difficult to make sure the reported numbers are accurate, so if you can provide corrections, leave them in the comments section. For API and OS support, I mainly copied and pasted what I got from the companies’ website. I failed to get much information on Tegra 3 GPU, most probably because it’s just used in house by Nvidia, and they don’t need to release that much information [Update: I got Antutu 3.0.3 since then, Weak 2D performance, and pretty good 3D performance on Nexus 7 tablet]. So I’ll leave it out for the rest of the comparison. When we look at Geometry rates GC2000 appears to be the slowest (if 88 Mtri/s is the right number), followed by Mali-400 MP4. I’m a bit confused by textured pixel rate, because I don’t know if this scales with the number of core or not. Mali-400 MP4 appears to be the slower GPU when it comes to GFLOPS, most probably because both GC2000 and SGX544MP2 support OpenCL 1.1, but this is currently not that important since not that many applications can support GPGPU. Antutu results show Mali-400 has the best 2D performance, followed by SGX544MP2 and Vivante GC355/GC320 ( 2D is not handled by GC2000 in i.MX6), but for 3D the PowerVR GPU is clearly in the lead, with Mali-400 MP4 getting half the performance, and GC2000 half the performance of the ARM Mali GPU according to Antutu 3.0.3.
So when it comes to 2D/3D graphics performance, we should not expect Freescale i.MX6 quad core Cortex A9 processor to outperform Rockchip RK3066 dual core Cortex A9 processor, and AllWinner A31 provides excellent graphics performance even if it features slower Cortex A7 cores (4 of them).