ABSTRACT

Consider a simple case of rendering a triangle on a system with an NVIDIA GeForce GTX 470 graphics card. NVIDIA drivers raise the frequencies to the highest level instantly if they detect a 3D application. Even a creation of the OpenGL rendering context is enough to make the GPU enter the highest performance state. The moment the application starts, the GPU frequency is 607.5 MHz, while the memory IO bus frequency is 1674 MHz. A frame rendering time is less than 0.16 ms for the full HD MSAA 8x screen and the GPU utilization is about 0%. After a dozen seconds, since the utilization is extremely low, the GPU enters a lower performance state. The frame rendering time is changed to about 0.24 ms. Since the GPU remains at low utilization, the performance is further reduced. After changing four performance levels, the GPU finally enters the lowest performance state with the GPU frequency at 50.5MHz, and memory IO bus frequency at 101 MHz. The rendering capabilities are reduced by an order of magnitude, while the frame rendering time rises up to 1.87 ms. If we do not track the performance state, we are not able to

interpret measured results correctly. Furthermore, for less demanding applications, it is possible to get shorter execution time on some older and less powerful graphics cards because their lower performance states may involve much higher frequencies.