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. Each company offers many different versions and flavors of their GPU as summarized below.

  • Mali-600 Series
    • Mali-T604
    • Mali-T624
    • Mali-T628
    • Mali-T658
    • Mali-T678
Imagination Technologies Vivante Nvidia
  • PowerVR SGX Series 5:
    • SGX520
    • SGX530
    • SGX531
    • SGX535
    • SGX540
    • SGX545
  • PowerVR SGX Series 5XT:
    • SGX543MP1-16
    • SGX544MP1-16
    • SGX554MP1-16
  • PowerVR SGX Series 6:
    • G6200
    • G6230
    • G6400
    • G6430
    • G6600
  • 3D graphics:
    • GC400
    • GC800
    • GC1000
    • GC2000
    • GC4000
  • 74-core GeForce (Tegra 4)

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.

Vivante CPU Comparison_table

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:

Geometry RateTextured Pixel RateCore ProcessingAntutu 3.xAPI support
Mali-400 MP4 PowerVR SGX544MP2 GC2000 Tegra 3 GPU
Frequency 240 MHz to 400 MHz 532 MHz 528MHz (600 MHz shader) 520 MHz
Shader Core 4 8 4 12
44M Tri/s for 1 core @ 400 MHz
(Total: 172M Tri/s @ 400 MHz)
35 M Tri/s per core @ 200 MHz
(Total: 744.8M Tri/s @ 532 MHz)
100 M Tri/s (Freescale claims 200 M Tri/s in i.MX6, i.MX6 Reference Manual: 88 Mtri/s,… go figure)
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)
7.2 GFLOPS @ 200 MHz 136 GFLOPS 24 GFLOPS (21.6 GFLOPS
 in i.MX6)
7.2 GFLOPS @ 300MHz
2D: 1338
3D: 2338
Resolution: 1280×672
Device: MK808 (Android 4.1.1)
2D: 1058
3D: 4733
Resolution: 1024×768
Device: Onda V812 (Android 4.1.1)
2D: 733
3D: 1272
Resolution: 1280×672
Device: Hi802 (Android 4.0.4)
I can’t find any result…
Silicon Area 4×4.7mm2 ?  – 6.9 mm2  –
Process 65nm LP or GP 40nm TSMC 40nm LP 40nm
OpenGL ES 1.1 & 2.0
OpenVG 1.1
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