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.
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) for more news and announcements from Imagination.