Meine Erfahrungen mit dem Powermanagent der ATi Radeon R600 und R700 Serien

Yamagi

Possessed With Psi Powers
Staff member
Seit einigen Tagen bin ich stolzer Besitzer einer ATi Radeon HD4870. Eine geniale Karte, mit brachialer Leistung aber leider ebenso brachialem Stromverbrauch. Unter Windows ist dies alles noch akzeptabel, da man da einen guten Treiber hat. Auch unter Linux geht es. Das Problem war FreeBSD. Dort zog die Karte im Leerlauf bereits 150 Watt, inakzeptabel viel. Sie wurde auch entsprechend heiß, der Lüfter drehte sehr hoch und es war unertragbar laut. Daher begann ich mich notgedrungen mit Powermanagement zu befassen.

Schnell stellte ich fest, dass es zwei Möglichkeiten gibt. Die Firmware der Karte editieren und ihr ein neues Taktprofil einzubauen. Doch das wollte ich vermeiden, da ich die Garantie verlieren würde und überhaupt mir unwohl bei dem Gedanken ist an der Firmware herumzufummeln. Daher Möglichkeit 2. Seit einigen Wochen kann xf86-video-radeonhd-devel ein rudimentäres Powermanagement. Sprich, man kann der GPU sagen, wie schnell sie takten soll.

Zuerst aktualisierte ich mein DRM auf den Stand von -CURRENT, denn ein neues DRM schadet meiner Erfahrung nie. Dann installierte ich den Treiber und aktualisierte meine xorg.conf:
Code:
Section "Device"
        Identifier  "Card0"
        Driver      "radeonhd"
        Option      "ForceLowPowerMode" "True"
        Option      "LowPowerModeEngineClock" "75000"
        Option      "DRI" "true"
        Option      "AccelMethod" "exa"
EndSection

Entscheident sind die beiden PowerMode-Zeilen. "ForceLowPowerMode" sagt ihm, dass er den Takt der GPU senken soll. "LowPowerModeEngineClock" gibt den Takt in Kilohertz an, nicht in Hertz, wie die Manpage sagt. 75000 / 1000 = 75MHz also. Ich experimentierte mit Werten herum. Die GPU ist maximal mit 750MHz getaktet. Am Ende blieb ich bei 75MHz hängen, da darunter liegende Werte den Desktop flackern lassen. Bei 75MHz schluckt die Grafikkarte nur noch 20W, das sind 30W weniger als unter Windows im Leerlauf. Der Lüfter ist unhörbar. 3D-Leistung wird sie natürlich nicht mehr bringen, da es aber keine Unterstützung dafür gibt, ist es auch völlig egal. 2D ist kein Geschwindigkeitsverlust erkennbar.
 
"LowPowerModeEngineClock" gibt den Takt in Kilohertz an, nicht in Hertz, wie die Manpage sagt.
Das ist natürlich übel. Hat der Treiber denn eine Schutzvorrichtung, damit man die Karte nicht so ohne Warnung und weiteres außerhalb der Spezifikationen takten kann? Oder muss man sich da auf das Cooling- und Krisenmanagment der Karte selbst verlassen?

Irgendwie sehe ich aber keinen Sinn darin, das du dir eine high-end Grafikkarte kaufst, um sie dann wie eine low-end zu betreiben. Als Investition in die Zukunft würde ich das auch nicht beschreiben, denn da wäre es besser sich eine kleine billige Karte, mit funktionierendem 3D zu kaufen. Da das Monstergerät ja sowieso nicht mal an diese Leistung heranreicht. Umsteigen kann man dann immernoch, wenn der Treiber soweit ist. Allerdings, falls du gerne experemtierst ist das natürlich deine Sache und die Entwickler leben natürlich auch von Bug-Reports und Leuten, die Treiber an den Karten testen. ;)

Die Einheiten für die 2D Beschleunigung sind - nehme ich an - wohl extra so dimensioniert, das sie noch mit minimalem Takt ausreichende Leistung bringen. Die meiste Zeit befindet sich halt der Desktop im 2D Betrieb und da ist halt das meiste Einsparpotential.
 
Man kann dir Karten nicht in gefährliche Regionen übertakten, die Firmware hat einen "Zerschrottungsschutz". Für die Kiddies und so. Schlimmstenfalls unteraktet sie sich selbst, um die Kernschmelze zu verhinden.

Naja, ich habe eine High-End Karte gekauft, damit Call of Juarez II flüssig läuft. Tut es auch perfekt, unter Windows 2008. Unter FreeBSD ich kann die Karte schlecht rausnehmen, wenn ich FreeBSD boote, dann wäre der Solt nach 6 Wochen hinüber. :)
 
Kurzes Update: Mit einem direkt aus dem Git gebauten xf86-video-radeonhd komme ich nun auf 25MHz herunter. Wieder ist unter 2D kein Geschwindigkeitsverlust erkennbar und das, obwohl ATi dort 50MHz als absolutes Minimum angibt. Damit bin ich nun bei etwa 12W Stromaufnahme von dem Ding unter FreeBSD. Leider kann der Treiber den Speichertakt noch nicht frei regeln, er läuft immer bei 450MHz. Ein drastisches Absenken sollte weitere 5 bis 7 Watt bringen. GDDR5 schluckt nämlich schon ordentlich Strom. Auch ist mit der aktuellen Git-Version der VT-Switch (mal wieder) defekt, weshalb ich erst einmal auf die Version in den Ports zurückgehen werde und auch keinen Patch einreiche.
 
Back
Top