When it comes to overclocking ATI Radeon graphics cards under Linux the only real option has been using rovclock. Rovclock is a Radeon overclocking utility written and developed by Sebastian Witt. This tool has been in development since 2005 but it took quite a while before the Radeon R300/R400 series was even supported. Rovclock still lacks support for the Radeon X1000 (R500) series, however, there is a new contender to the ATI Linux GPU overclocking arena and that is ATIpower.
The first and only release available at this time for ATIpower is version 0.1, which was released this past October. This utility is designed for changing the frequency of the GPU and memory on Linux -- you can either underclock or overclock with ATIpower. However, unlike rovclock, you cannot tweak the memory timings with this software package. The overclocking process is handled using the ATI X extension (ATIpower borrows code from the fireglcontrolpanel). It is important to keep in mind that this as with rovclock is a third party utility that is not endorsed by ATI/AMD and could potentially damage or destroy your graphics card. Use this software at your own risk.
$ aticonfig --lsp
1: 128/135 MHz [low voltage]
2: 324/135 MHz
Contrary to what is displayed from aticonfig --lsp for listing the various PowerPlay states, there are more. All available states are listed in the /var/log/Xorg.0.log, and below is an example from a Mobility Radeon X1400.
(II) fglrx(0): POWERplay version 3. 5 power states available:
(II) fglrx(0): 1. 392/342MHz @ 60Hz [enable load balancing]
(II) fglrx(0): 2. 128/135MHz @ 60Hz [low voltage, enable sleep]
(II) fglrx(0): 3. 209/135MHz @ 60Hz [low voltage, enable sleep]
(II) fglrx(0): 4. 324/135MHz @ 60Hz [enable sleep]
(II) fglrx(0): 5. 338/342MHz @ 60Hz [enable sleep, thermal diode mode]
Using the ATI X extension ATIpower accesses this information and then makes it possible for the end-user to specify one of these power-states from the expanded list. Below is the output available from ATIpower on the same GPU.
* id: 1, gpu: 391 mhz, mem: 342 mhz
id: 2, gpu: 128 mhz, mem: 135 mhz
id: 3, gpu: 209 mhz, mem: 135 mhz
id: 4, gpu: 324 mhz, mem: 135 mhz
id: 5, gpu: 337 mhz, mem: 342 mhz
ATIpower can be used by running atipower and then passing only the id of the power-state as the argument. As this was the output from a Mobility Radeon, no ATI OverDrive states were listed but only states for downclocking the GPU to save on power and reduce the heat output. While we have only begun testing ATIpower, a reader who initially brought this to our attention has claimed 25% more frames on glxgears and fgl_glxgears when at its maximum OverDrive state compared to the standard operating frequencies. While the addition of AMD Catalyst Control Center was nice, don't look for official OverDrive overclocking support in the Linux drivers for sometime. The ATIpower utility does seem promising and should work with any Radeon graphics card with the fglrx drivers where the multiple power-states are available.
Shortly we will follow up with an article that looks at overclocking various Radeon desktop graphics cards under Linux and their impact on the overall performance. In the mean time, if you have tried out ATIpower, please share your thoughts on the Phoronix Forums.