RSS
 

Dynamiczne oszczędzanie energii w otwartych sterownikach ATI

23 sie

Ati radeon + tux
Power management to coś co bardzo interesuję użytkowników laptopów, którzy zawsze chcieliby wycisnąć z baterii jak najwięcej minut się da bez ponownego ładowania. Poza tym niektórych miejsc na ciele lepiej nie przegrzewać. Parę miesięcy temu na phoronix pojawiły się artykuły opisujące stan otwartoźródłowych sterowników do kart radeon. Dokładniej, Michael Larabel skupiał się wtedy bardziej na nowościach w otwartych sterownikach na polu dynamicznego zarządzania energią karty graficznej i bardzo mnie to zainteresowało, bo może będę mógł wkońcu zrezygnować z fglrx. Przeglądając jeden z wątków do artykułów, na którym trwała dyskusja na temat tych nowych funkcji natrafiłem na informację, że żeby zobaczyć jak to działa wcale nie potrzebuję tak dużo. Wszystkie potrzebne do tego funkcje zostały wprowadzone do kernela 2.6.35, więc wystarczy trochę miejsca i świeża instalacja Maverick Meerkat, czyli najnowszej testowej wersji Ubuntu i właściwie tyle. Dobrze, że dużo prościej zrobić to w wersji testowej, bo ostatnio oszczędzam moją ,,stabilną” instalację ubuntu. Przynajmniej staram się.

Sterowniki otwarte mogą działać w dwóch oddzielnych trybach. Jeden z nich działa w UMS i jest to sposób starszy i bardziej stabilny. Drugi z nich to (co logiczne młodszy i mniej stabilny) oszczędzanie energii w trybie KMS, który w jest ostatnio domyślnie uruchamiany w świeższych dystrybucjach (w Ubuntu świeżym przynajmniej). Właśnie tej drugiej możliwości się przyjrzałem.

Włączamy oszczędzanie energii

cat radeon_pm_info

Zmiana częstotliwości rdzenia GPU low/high


Zarządzanie energii w teorii powinno działać na wszystkich kartach, które są obsługiwane przez sterowniki i, które umożliwiają skalowanie częstotliwości oczywiście. Działa to nawet na układach zintegrowanych takich jak np. radeon hd 3200. W przypadku tych układów można zmieniać jedynie częstotliwość i napięcie na rdzeniu GPU, nie dotykając zupełnie pamięci. Sprawdzając jak to działa oczywiście należy pamiętać o tym, że całość jest jeszcze stosunkowo nowa i nie wszystko może poprawnie działać. O tym czy mamy możliwość włączenia tych funkcji na obecnie zainstalowanym systemie powinien poinformować nas dmesg.

$ dmesg | grep power
[    3.716977] [drm] radeon: power management initialized

Zarządzanie energią w KMS może korzystać z dwóch metod zarządzania energią. Jedną z nich jest dynpm, czyli zarządzanie energią na podstawie aktualnego obciążenia GPU, podobnie jak ma to miejsce w fglrx. Drugą z możliwości jest korzystanie ze zdefiniowanych odgórnie profili: low, mid, high, auto.

high - wszystko na maksymalnych ustawieniach
mid - pomiędzy low i high
low - wszystko jak najniżej
auto - na AC ustawia high, na baterii mid, a przy wyłączonym monitorze low

Profil auto nie korzysta prawie wogóle z low (tylko przy wyłączonym monitorze) ze względu na problemy, które pojawiały się w niektórych konfiguracjach. Pora zdecydować się na metodę. Na początku wybrałem metodę profilową ze względu na to, że chciałem zaoszczędzić jak najwięcej. Skorzystałem z profilu low, który powinien oszczędzić najwięcej energii. Poniższymi poleceniami wybieramy, z której metody ma korzystać sterownik. Wykonujemy je na koncie root

echo dynpm > /sys/class/drm/card0/device/power_method
# dynamiczna zmiana na podstawie obciążenia GPU

echo profile > /sys/class/drm/card0/device/power_method
# ustawienie jednego z czterech profili pracy karty

Jeśli wybraliście drugie z poleceń to należy jeszcze wybrać profil pracy. Oczywiście też należy wykonać jako administrator systemu

echo low > /sys/class/drm/card0/device/power_profile
echo mid > /sys/class/drm/card0/device/power_profile
echo high > /sys/class/drm/card0/device/power_profile
echo auto > /sys/class/drm/card0/device/power_profile

Aby sprawdzić jakie są obecnie ustawione zegary naszej karty graficznej sprawdzamy

cat /sys/kernel/debug/dri/0/radeon_pm_info

Engine clock to częstotliwość rdzenia, a memory clock to częstotliwość pamięci. Niewielka różnica między trybem low i high przekonała mnie, że nie będę sprawdzał metody dynamicznego zarządzania energią dynpm, gdyż na pewno pod względem poboru energii nie będzie lepsza od ustawionego na sztywno profilu low. Różnica w energii rzędu 3 W i temperatury około 3 stopni to gorzej niż się spodziewałem.

Pobór energii w powertop przy low

Tryb low

Pobór energii w powertop przy high

Tryb high

Porównanie z fglrx

Porównanie z zamkniętymi sterownikami catalyst pokazuję, że jeszcze dużo pracy czeka zespół otwartych sterowników. Różnica w temperaturze średnio to jakieś 8 stopni, a w poborze energii 8 W i jest to naprawdę dużo, jeśli weźmiemy pod uwagę, że mówimy o poborach energii rzędu 15-25 W, czyli 1/3 poboru całego układu. Na korzyść zamkniętych sterowników również przemawia brak mrugania ekranu w trakcie zmiany częstotliwości, który może występować.

Pobór energii w powertop przy low

Sterownik otwarty

Pobór energii w powertop przy fglrx

FGLRX

Podsumowanie

Jeśli posiadacie zintegrowaną kartę graficzną tak jak ja, to niestety wprowadzone zmiany nie robią wielkiej różnicy. Jeśli macie bardzo dobry system chłodzenia, który potrafi sobie z tym jednak poradzić, a przy tym nie zależy wam na czasie pracy na baterii to gratuluję. Niestety różnica jest na tyle nieduża, że dla mnie taki system jest nadal nieużywalny ze względu na temperatury i ciągły mocno słyszalny szum wiatraka. To wszystko po prostu przeszkadza i nie mam zamiaru się męczyć, szczególnie, że zamknięte sterowniki radzą sobie dużo lepiej.

Na temat rozwiązań niezintegrowancy nie mogę wyciągać właściwie żadnych wniosków. Przypuszczam, że ze względu na możliwość skalowania obu częstotliwości, oszczędności energii w porównaniu do sterowników bez zarządzania energią będą większe niż na karcie zintegrowanej. Jednak to tylko przypuszczenia, których nie mogę sprawdzić bo brak mi odpowiedniego sprzętu. Poza tym nie wiadomo jak dużą oszczędność to da. Nie pozostaję wam nic innego jak samemu się przekonać ile to daję i jeśli już sprawdzicie to dajcie znać w komentarzach.

 
Brak komentarzy

Opublikował w ubuntu

 

Tagi: , ,

Skomentuj

Connect with Facebook

 

 
 
Blog WebMastered by All in One Webmaster.

Switch to our mobile site