Hi everyone,
I'm an experienced software developer who set up a mining rig last month using Ubuntu. I found the overclocking tool available for Linux (AMDOvDrvCtrl) was a bit annoying to use, so I took a look at the source and decided to write my own command-line version. Rather than write one in C or C++, I figured it would be much more useful to wrap the underlying libraries using Python's ctypes package so I could write the tool in Python. This means no compiling, no installing an SDK, and you can read the code yourself to make sure there's no funny business going on.
Anyway, I'm done and the tool is available. You can install it in a few different ways:
From github:
https://github.com/mjmvisser/adl3From PyPi:
http://pypi.python.org/pypi/adl3/0.3With Python's "easy_install": sudo easy_install adl3==0.3
If you don't use easy_install, you'll need to run "sudo python setup.py install" to install the package after you download and unpack it.
Included is the "atitweak" tool. It can list your adapters just like aticonfig:
$ atitweak -l
0. ATI Radeon HD 5800 Series (:0.0)
engine clock range is 80 - 918MHz
memory clock range is 150 - 1200MHz
core voltage range is 0.95 - 1.088VDC
performance level 0: engine clock 800MHz, memory clock 300MHz, core voltage 0.95VDC
performance level 1: engine clock 918MHz, memory clock 300MHz, core voltage 1.088VDC
performance level 2: engine clock 918MHz, memory clock 300MHz, core voltage 1.088VDC
fan speed range: 0 - 100%, 800 - 5100 RPM
1. ATI Radeon HD 5800 Series (:0.1)
engine clock range is 80 - 918MHz
memory clock range is 150 - 1200MHz
core voltage range is 0.95 - 1.088VDC
performance level 0: engine clock 800MHz, memory clock 300MHz, core voltage 0.95VDC
performance level 1: engine clock 918MHz, memory clock 300MHz, core voltage 1.088VDC
performance level 2: engine clock 918MHz, memory clock 300MHz, core voltage 1.088VDC
fan speed range: 0 - 100%, 800 - 5100 RPM
It can also change the engine/memory clock speed and core voltage individually for each performance level and adapter:
$ atitweak --set-memory-clock=300 --performance-level=2 --adapter=0
Setting performance level 2 on adapter 0: memory clock 300MHz
new! You can set your fan speed (in percent) for each adapter:
$ atitweak --set-fan-speed=100 --adapter=all
new! It will also show the current status of adapters:
$ atitweak --status --adapter=0
0. ATI Radeon HD 5800 Series (:0.0)
engine clock 950MHz, memory clock 300MHz, core voltage 1.088VDC, performance level 2, utilization 99%
fan speed 100% (3447 RPM) (user-defined)
temperature 85.5 C
Here's the full command-line help:
Usage: atitweak [options]
Options:
-h, --help show this help message and exit
-l, --list-adapters Lists all detected and supported display adapters.
-s, --status Shows current clock speeds, core voltage, utilization
and performance level.
-e ENGINE_CLOCK, --set-engine-clock=ENGINE_CLOCK
Sets engine clock speed (in MHz) for the selected
performance levels on the selected adapters.
-m MEMORY_CLOCK, --set-memory-clock=MEMORY_CLOCK
Sets memory clock speed (in MHz) for the selected
peformance levels on the selected adapters.
-v CORE_VOLTAGE, --set-core-voltage=CORE_VOLTAGE
Sets core voltage level (in VDC) for the selected
performance levels on the selected adapters.
-f FAN_SPEED, --set-fan-speed=FAN_SPEED
Sets the fan speed (in percent) for the selected
adapters.
-d, --set-fan-speed-default
Resets the fan speed to its default setting.
-A ADAPTERLIST, --adapter=ADAPTERLIST
Selects which adapters returned by --list-adapters
should be affected by other atitweak options.
ADAPTERLIST contains either a comma-seperated sequence
of the index numbers of the adapters to be affected or
else contains the keyword "all" to select all the
adapters. If --adapter is missing, all adapters will
be affected.
-P PERFORMANCELEVELLIST, --performance-level=PERFORMANCELEVELLIST
Selects which performance levels returned by --list-
adapters should be affected by other atitweak options.
PERFORMANCELEVELLIST contains either a comma-separated
sequence of the index numbers of the performance
levels to be affected or else contains the keyword
"all" to select all performance levels. If
--performance-level is missing, all performance levels
will be affected.
So far, I've only tested this on my own rig (quad 5850s) so it would probably benefit from testing by experienced users.
UPDATE: I've verified that over/under-clocking outside of the BIOS range is possible with the
Catalyst 11.6 drivers.
This should be obvious, but...
WARNING: This software may severely damage or destroy your graphics card if used incorrectly!Please try it out, and let me know if you find any problems or bugs.
Donations welcome! 1Kh3DsAhiu65EC7DFFHDGoGowAp5usQrCG
cheers,
-Mark