345 — On-the-Fly Power-Aware Rendering

Zhang & Ortin et al (10.1111/cgf.13483)

Read on 31 July 2018
#render  #3D  #graphics  #power  #power-consumption  #energy  #GPU  #power-budget  #realtime 

I was sitting in the park last winter and started getting cold, so I fired up a render job in Blender and sat the laptop on my lap to warm me up.

Rendering is an energy-intensive process, and one of the biggest limitations is that it’s not clear exactly how power-intensive a render will be until it is in progress. A simple scene with simple geometry can have outrageous render-time when complex materials are applied. Likewise, complex materials and complex scenes can still have — in certain cases — very short and simple renders.

This unpredictability becomes particularly problematic when rendering on a battery-powered device, where battery life is a serious consideration — or on devices for which rendering is not the only thing a user cares about (such as on a phone).

One strategy is to model the power consumption of a GPU or rendering device based upon the power cost of each architectural unit. This, however, gives only an architecture-specific render-power estimate and does not translate well across machines. Instead, the authors of this paper develop a technique that estimates power usage based upon a renderable scene, and then converts this into on-the-fly budgeting for each stage of the render process in order to remain within a provisioned render power budget. That is, the energy allocated to each stage of the render process can be scaled to maximize render quality without overusing power.

I imagine this sort of technology has applications outside of graphics as well, where power consumption on certain continuous-refinement computation tasks is equally important.