Radeon Driver Power Management Has Room For Improvement
Today on Phoronix are not only new benchmarks of the proprietary Catalyst graphics driver compared to the open-source Radeon Linux driver alternative when looking at the OpenGL frame-rates, but also metrics on a number of other fronts. In this article is a graphics driver comparison when looking at the system power consumption, GPU operating temperature, and CPU usage too. The results are quite interesting and not commonly looked at on Phoronix or by users.
Now that the Linux 2.6.38 kernel power regression has been figured out and there's the USB-based AC power meter around, the intent of this article is to compare the system power consumption for the open and closed-source ATI/AMD Radeon Linux drivers for a variety of graphics cards. The graphics cards that ended up being used were an ATI Radeon HD 2400PRO, ATI Radeon HD 4550, ATI Radeon HD 4870, and ATI Radeon HD 5750.
Not only was the system power consumption measured in front of the power supply, but also looked at was the GPU core temperature and CPU usage. All of these sensors, including the AC power meter, were automatically polled by the Phoronix Test Suite software when running each test and on the graphs included in this article, the average values are provided.
Tests in this article included the metrics when idling at the desktop, running the OpenArena game, and then running the more demanding Nexuiz game. Another article coming up in the future will also include similar information during video playback and light desktop usage, but this article at least covers both ends of the spectrum with idling and then OpenGL.
The Catalyst 11.4 driver (fglrx 8.84.60 / OpenGL 4.1.10665) was tested as found in Ubuntu Natty while the open-source driver was the latest development Git from the 24th of June, including the Linux 3.0 kernel, xf86-video-ati 6.14.99, and Mesa 7.11-devel Gallium 0.4 (R600g driver). Ubuntu 11.04 (x86_64) was the base operating system with Unity desktop, EXT4 file-system, GCC 4.5.2, and X.Org Server 1.10.1.
Besides the graphics cards, the rest of the test system consisted of an Intel Core i5 2500K "Sandy Bridge", Sapphire Pure Black P67 Hydra motherboard, 4GB of system memory, and 250GB Seagate SATA HDD.
The Catalyst driver was tested in its default configuration, which enables PowerPlay (and on newer hardware, PowerTune) for dynamically adjusting the clock frequencies and voltages based upon load. It is a seamless experience to the end-user. Alternatively, via the aticonfig utility, the power-states can be listed and they can be manually forced to other power states as well.
With the open-source Radeon driver, there is no power management by default. The driver simply sets the hardware to run in its default mode at its stock frequencies. The Radeon KMS driver though does support manually forcing other power management modes. Writing "dynpm" to /sys/class/drm/card0/device/power_method causes the Radeon DRM driver to work in its dynamic power management mode, which is supposed to similarly adjust the power management dynamically. There are also "profile" modes whereby writing profile to /sys/class/drm/card0/device/power_method allows writing low, med, or high to /sys/class/drm/card0/device/power_profile. The low, medium, and high power values correlate to their respective power-state and cause the driver to always function in that power mode regardless of OpenGL workload or other tasks.
See this Phoronix news posting, among other Phoronix articles, for more information on the open-source Radeon driver power management. It is not streamlined like the Catalyst driver and its full PowerPlay support, but it has matured a bit over the past year. When this support was first introduced there were issues with corruption, blanking on clock changes, and other issues, but they are mostly worked out at this point.