Imagination designed its PowerVR Tile-Based Deferred Rendering (TBDR) graphics architecture more than 20 years ago with a focus on efficiency across performance, power consumption and system level integration. This approach has equally been applied to our integration of compute functionality in our GPU architecture; PowerVR Rogue is the most recent version of our GPU architecture and it fully supports mobile compute for a variety of use cases.
This focus on optimising the most common use case is critical for success, and avoids making niche (but costly) features such as FP64 and increased rounding precision mandatory. Such niche features not only impact power consumption for compute usage cases, but also impact all other usage scenarios, including traditional graphics scenarios, where there is zero requirement for FP64 and increased rounding accuracy. This means that an excessive investment in this niche compute functionality will lead to increased overall power consumption, including critical power consumption scenarios such as UI composition and blending rates.
Hence, even if mandatory FP64 support would help to reduce power consumption for a specific use case, likely to be valid in only an infinitesimally tiny percentage of usage cases, it would come with a significant power cost for the more than 99% of other remaining usage scenarios across graphics and compute. Clearly this is not an acceptable trade-off.
Investments on the PowerVR Rogue hardware side have been focussed on efficiency as well, implementing power-sensible optional features such as image support, local memory and atomics, all combined with a scalar ALU architecture which makes algorithm development and optimisation far easier by avoiding excess complications linked to vectorisation (a significant development effort overhead).
Balance is not only essential on the architecture side, but also on the API side. For graphics we have all recognised and accepted the importance of not blindly implementing everything desktop graphics cores offer (e.g. desktop OpenGL), but instead recognising the need for a very careful balance between power consumption and feature set; this is what OpenGL ES offers. This approach signals the need for a focus on what is truly required, and the need for a market-driven effort to ensure that industry-standard APIs match this critical vision to ensure stellar performance on mobile battery-driven devices.
On the Khronos compute API side, this means a focus on OpenCL Embedded Profile with many key optional features supported in hardware to ensure application compatibility (e.g. FP64). Similarly, on the Google Android side, we need a focus on what really makes practical sense: supporting Renderscript with a balanced feature set, avoiding power hungry niche extremes like FP64 and ensuring the usage of power-saving pragmas is essential. Finally, PowerVR Rogue GPUs are fully programmable hardware engines that area ideal for vision processing; OpenVX is a valuable starting point for accelerating creation and adoption of vision applications, and we’re pleased to report that we’ve achieved conformance on production silicon.
As mobile compute is currently focusing on computer vision applications, with APIs only recently being exposed on devices, our ecosystem is currently ramping up its efforts through lead partner programs. This effort has culminated in highly educational performance guidelines, necessary tools and practical examples to ensure practical, power-efficient mobile compute.
Developers interested in engaging with us on mobile GPU compute use cases should not hesitate to visit our dedicated website and download our programmer’s reference manuals and examples.
Here is a menu to help you navigate through every article published in this heterogeneous compute series:
- A primer on mobile systems used for heterogeneous computing
- A quick guide to writing OpenCL kernels for PowerVR Rogue GPUs
- Increasing performance and power efficiency in heterogeneous software
- The PowerVR Imaging Framework for Android
- Heterogeneous compute case study: image convolution filtering
- Deep dive: Implementing computer vision with PowerVR
- The PowerVR Imaging Framework camera demo
- Supported zero-copy flows inside the PowerVR Imaging Framework
- Measuring GPU compute performance
- Imagination’s smart, efficient approach to mobile compute
- The complete glossary to heterogeneous compute on PowerVR
Please let us know if you have any feedback on the materials published on the blog and leave a comment on what you’d like to see next. Make sure you also follow us on Twitter (@ImaginationTech, @GPUCompute and @PowerVRInsider) for more news and announcements from Imagination.