Principle 3: Data matters
Developers are used to writing and reviewing code and spend a lot of their optimization time looking at API calls and shader code. This can easily be done without really looking at the data they are passing to the GPU. This can be a lost opportunity because GPUs are data-plane processors.
Graphics rendering performance can be strongly influenced by data efficiency problems. Accessing external DDR memory is very energy intensive and so poorly sized, or inefficiently packed data resources, can rapidly consume valuable energy.
Note: A useful rule of thumb is that 1GB/s of memory access uses approximately 100mW of power. If you spend 600mW of your 2.5W power budget on memory access, an application running at 60 Frames-Per-Second (FPS) only gets 100MB per frame to play with.
The data optimization stage can include the following review activities:
- Total bandwidth needs of the scene render pass graph.
- Resolution of textures and framebuffers.
- The use of texture compression and mipmapping.
- Models for good data locality and minimal data precision.
- Shader programs and their execution cost.