Mobile GPUs : Introduction & Challenges

18 Oct

Dear Fellows,

a warm welcome to this blog posts about mobile GPUs.

This little series is divided into 6 parts:

  1. Mobile GPUs : Introduction & Challenges
  2. Mobile GPUs : Vendors
  3. Mobile GPUs : Architectures
  4. Mobile GPUs : Benchmarks
  5. Mobile GPUs : Pitfalls
  6. Mobile GPUs : Outlook

In this first post I like to give a brief overview about mobile GPUs and a bit about OpenGL|ES 2.0 (OGLES2), beside few technical facts also some side related personal coloured comments. I also like to dig into the main challenges/requirements a mobile GPU is facing in todays mobile devices. Actually, they are a bit different to what you have in desktop space. The primary concerns in mobile embedded space are: SiIicon-Area, Power- and Memory-Consumption, Cost, secondary Performance and Feature-Richness.

Second post gives an (uncompleted as ever) overview about the Vendors of mobile GPUs; here I differentiate between those who are selling chips with own GPUs (such as nVidiaZiiLABS and Qualcomm) and pure IP-Vendors (such as Imagination Technologies (Img), ARM and Vivante). I will not talk about Intel and AMD here, because my focus is more on embedded. And honestly, Intel and AMD are not playing a big role here at the moment. Intel has no own Mobile GPU Technology, so they have licensed PowerVR [1] from Imagination Technologies and maybe others as well. AMD itself has sold its mobile technology [2] (formerly ATI- and partly Bitboys-Technology) to Qualcomm. Which could have been one of the reasons why the former CEO Dirk Meyer had to resign. However, AMD recently teamed-up with ARM [3], so lets see what this will bring in terms of new Mobile Chips (x86+Mali or ARM+Radeon ??).

In the 3rd post it will be a bit more technical. We will dig into the architectures of some mobile GPUs. Not in any detail and only the (in my feelings) important ones like ARM/Mali,  Qualcomm/Snapdragon, nVidia/Tegra and Img/PowerVR.

After we´ve got a glimpse about the different architectures, lets do some practice. In Part 4 we will start with an overview and discussion about existing benchmarks. Beside that I also like to present my own Benchmark. My idea is to create a set of Benchmarks which does fit perfectly well to each type of architecture and a set which does absolutely not. For instance, PowerVR is using a technique called tile-based deferred rendering (TBDR) [4].  So the use-case could be heavy overdraw with opaque textures, in this case PowerVR should beat the other architectures significantly. All benchmarks will be executed either on Android or iOS devices.

Post number 5 is about pitfalls you have to face in your daily programming life. In the iOS World every GPU is based either on Img-MBX or -SGX [5], but in Android world you have many more different GPUs deployed in many different devices and not all GPU solutions are robust and fulfilling the spec. Issues and issues everywhere. Lets take a closer look and see how worse it really is.

In final post we will ask the Crystal Ball about future trends and what will become hot.


What DirectX-11 (DX11) for desktop GPU is OGLES2 for mobile GPU, the “standard Graphics API”. Well, some Microsoft slides talked about DirectX-9 on Windows-Phones [6], but if you do a reality check, the DirectX-API is not exposed to the developer. All what XNA on Phone 7 offers is a kind of OpenGL|ES1.0 (OGLES1) like feature set, in my view quite unimpressive.

As most of you know, OGLES2  is basically a subset of the desktop OpenGL 2.x plus some additional features.  It is also the base for WebGL and with OpenGL 4.2 (OGL4) onwards you are able to create an OGLES2 compatible context. Also Mesa offers OGLES2 libraries and there are a couple of more options to start development without the need of a real mobile device.

OGLES2 is in the market for quite some time now, the first provisional specification got released 2005 and finalised 2007. It is widely supported by Android, iOS and other operating systems. In case of Android over 90% of all devices are supporting OGLES2 and Apple is supporting it since iPhone 3GS and iPod Touch (3rd Generation). According to Google about 190 Mio. devices have been activated until October 2011, there is no official number from Apple, but according to many articles 160-190 Mio. iOS devices in total have been sold until today (PC market is about 380 Mio. units per year).

However, the feature set of OGLES2 is quite limited in comparison to what DX11 or OGL4 offers. Especially GPGPU kind of tasks can not be performed well. The Android development team already reacted on this by introducing RenderScript and I am quite confident that OpenCL could be found in mobile devices quite soon [7]. Actually everyone was expecting OpenCL in today´s iOS, but it seems we still have to wait, unfortunately.

Anyway, even with “just” OGLES2 you can do a lot of great stuff and I think it is quite right to say that until today it only exists a few Apps (mainly Games) utilizing all the existing rendering features. Interesting point, most of the commercially successful games are simple 2D Games with very little usage of high sophisticated shaders. Maybe it is because Smartphone displays are and will be always limited (until we have the glasses like in the Denno Coil Anime), so it is not much fun to play Crysis like games on Mobile. Or the reason is that the market was/is not interesting enough.

In my opinion, mobile devices are meant to ease daily live, keep you connected to your families/friends/job/interests. So everything is about user-experience and new ways of dealing with information and content. Quite different use-case then the good old ordinary desktop PC.

Lets get back to GPGPU topic. Actually, OpenCL is for me the key enabler for augmented reality kind of applications. In augmented reality (AR) everything comes together: Video, 3D Graphics, UI, Image-processing etc. AR offers a new way to deal with the world around us. Ok at the moment most Apps are not just more then a gimmick and honestly I am not very excited about location based AR, but in a few years AR will become a serious market. So mark my words.


Obviously a Mobile device is not permanently plugged, so power efficiency is key for a mobile-GPU. Today, performance in terms of fillrate is mainly limited by the available memory bandwidth, this is true for either PC and Mobile. The iPhone 3GS comes with a 480×320 pixel display and iPhone 4 with 960×480. 4 times more pixels requires nearly 4 times higher memory bandwidth. That could lead to more signals from the multimedia SoC to the outside memory chips, but also to a higher frequency. Especially, chip to chip communication requires a lot of power.

To increase computational performance, we could either increase frequency or we could add more logic which would lead to more Silicon Area. More Si-Area, often means more power consumption and higher chip cost. Uhhmm, the world wants mobile devices with less power consumption and at lowest price as possible.

We talked a bit about power consumption, now lets deal with costs. Lets do a daft example calculation about Si-Area cost,lets take the Vivante GC1000 Core (I took it because all data are publicly available), according to the documentation Si-Area (40nm lp ) is ~3.5mm^2. Lets assume ~$0.07 per 1mm^2 in 40nm (hope these numbers are not far away from reality). I am also quite confident that such GPU needs a 2nd Level Cache from about 64KB – 256KB, so finally my guess would be ~$0.18-$0.30 cost range per chip just for the GPU-Subsystem. In case your core is from an IP-Vendor you might have to add royalties, a kind of one-time licensing fee and maintenance fee. Depending on the Vendor, market and core I would expect that just  the GPU takes a serious part of the total SoC cost. Beside that today´s GPU-Vendors must offer a comprehensive SW Stack along with their HW, such as OGLES2, OpenCL, EGL. DirectX-9c (getting more important) and OpenVG (getting less important). Also good support of Renderscript and Flash 10+ is important. In future OGLES3 and DX11 will become mandatory.


No doubt, mobile and embedded GPUs are getting more and more sophisticated. That will have an impact on the number of vendors. At the moment there is a long list of vendors, but this business is not longer an emerging market. I suppose consolidation is about to start. Besides, in my opinion to offer a separate GPU is not enough to be competitive on a bigger scale. In my view, especially IP-Vendors have to offer an overall comprehensive solution including Video, Graphics, Image and general GPGPU support. At the moment Video and Graphics are often two cores (both Ziilabs and Broadcom claim to have a unified GPU+Video Architecture). I do think that that two separate cores are not necessary. In my opinion a clever merged video + gpgpu architecture would  reduce Si-Area and Power-Consumption significantly. It would also reduces the effort/cost in terms of SW development. I personally can see big potentials here.

End Remark

Next time we will deal with the companies listed below and some of their architectures. I try to deal with many vendors I could but especially the list of GPU-Chip-Vendors is uncompleted. In fact just a few years ago many Semi companies had they own development teams and technology. But step by step, chip by chip they have started to license external IP. And I would not be surprised if even a company like Qualcomm will become a licensee too.

List of GPU-IP-Vendors:

List of GPU-Chip-Vendors (with In-House mobile GPU technology):

Thanks for your time,











2 Responses to “Mobile GPUs : Introduction & Challenges”

  1. david moloney (@cto_movidius) September 10, 2012 at 9:36 am #

    You can see details on Movidius graphics support in the Hotchips 2011 HC23 paper

    Graphics support is in the form of a HW Texture Management Unit (TMU) per SHAVE processor.

    OpenGL ES 1.x and 2.x support is also available but the main focus of the current and future product lines is on emerging computational video applications rather than graphics.

Leave a Reply

Please log in using one of these methods to post your comment: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: