Graphics cores drive mobile gaming – GDC2012
March 2012, San Francisco, CA - At the Game Developer’s Conference in SF, a major focus was the rise in mobile gaming and mobile devices - both tablets and phones - as the fastest growing platform. These platforms are challenged by the power limitation imposed by the rechargeable battery for the device. The fixed and small batteries limit the extent of game play and also put a performance cap, based on max power avail, on the CPU and graphics processing.
The importance of having the gaming software optimized for the platform hardware is causing the hardware suppliers to be very open about the block operation and are presenting workflows to help with the development. At GDC, Imagination Technologies (PowerVR), ARM (Mali), Qualcomm (Adreno), and Nvidia (Tegra) all presented sessions and tools to help optimize for their GPU. The GPU is the essential core for providing ray tracing, shading, and pixel paint on the screen for the mobile devices. The challenge is to provide a high resolution and high performance experience on a small screen that is consistent with a large screen experience.
The large screen experience tends to be line cord powered, so peak processing and sustained processing are not as bounded an issue. In the mobile platforms, the various GPUs all have optimized performance options. One of these is make sure the gaming code, which has graphics created in multiple layers, does not spend processing resources and more importantly battery power, to calculate pixels and mesh points that cannot be displayed due to being behind other objects. The optimization requires the full gaming code for display to be running in a system that shows what is happening on the CPU, GPU and Memory of the device. As a result new tools are appears in the vendor SDKs for development. An example is the DS-5 toolchain from ARM and thier new Streamline Performance Analyzer (figure 1). This product and similar ones from IMG Tech, Qualcomm, and Nvidia show CPU & GPU activity along with the graphics being presented and a representation of the heat or power that is being used by the blocks.
In order to allow for reduced efforts in the coding and optimization of the multi-CPU and GPU systems, all of these cores are migrating to a new programming base. The proprietary code libraries and even OpenGL which were the preferred method of addressing the GPU portion of a system is losing traction to OpenCL. The OpenCL 1.1 kit allows for single environment distributed processing between multiple CPUs and multiple GPU cores without requiring the programmer to know the exact final hardware configuration. The use of OpenCL along with tools the like DS-5 toolchain allow for power probes to be logically inserted into the design to monitor activity and more importantly, let the automation dynamically manage the load balancing between the available computing resources.
These optimization paths are migrating from the mobile devices into the performance guidelines for mainstream processors. As a result, AMD with their Fusion APUs and Intel with thier new Sandybridge and Ivybridge designs are also embracing OpenCL and bringing new design kits to the Game Development community.