Ubuntu 14.04 Açık-Kaynak sürücü ile Hibrit Grafikler ve Dinamik Güç yönetimi

Başlatan janparey, 02 Mayıs 2014 - 17:51:27

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

janparey

Evet arkadaşlar yeni LTS sürümümüzde açık-kaynaklı sürücüde(radeon) birtakım değişmeler oldu. Bunların başında DPM geliyor. Peki DPM nedir? DPM (Dynamic Power Management) dinamik güç yönetimi, daha da açacak olursak,açık kaynak sürücünün değişken şartlara(gpu üzerinde yoğun yük veya yüksek ortam sıcaklığı gibi ) göre fan hızı, grafik belleği hızı veya işlemci saat hızı gibi etkenleri otomatik olarak duruma ayak uydurmak üzere değiştirimesidir. Ubuntu 14.04 ile birlikte 3.13 çekirdeği geldiği ve bu çekirdekte DPM varsayılan olarak açık olduğu için eğer AMD grafik birimine sahipseniz DPM'i etkinleştirmek için hiçbir şey yapmanıza gerek yok. Peki DPM,Hibrit grafikler ilişkisi nedir?  Bu durumu benim sistemimden örnek vererek anlatayım. Sistemimde AMD A4-4300M APU (Radeon HD 7420G Grafik birimi ) ve AMD Radeon HD7670M ikilisi mevcut.
lspci | grep VGA
00:01.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Trinity [Radeon HD 7420G]
01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Thames [Radeon HD 7500M/7600M Series] (rev ff)

Ben sistemimi açtığımda apu içerisindeki düşük güç tüketimli grafik birimi çalışıyor fakat ikincil grafik birimi (benim durumumda hd7670m)
kapalı durumda.
root@g6-hp:/home/jan# cat /sys/kernel/debug/vgaswitcheroo/switch
0:IGD:+:DynPwr:0000:00:01.0
1:DIS: :DynOff:0000:01:00.0

Dikkat ederseniz vgaswitcheroo çıktısında "DynPwr" yazıyor. Yani radeon sürücüsü dinamik olarak duruma göre grafik birimlerini açıp kapayabiliyor. Normal şartlar altında siz hiç bir şey yapmadan bilgisayarınız kullanırsanız bu senaryoya göre hiç bir zaman harici grafik birimi kullanamayacaksınız. Peki kullanmak istediğinizde ne yapacaksınız?
Eskiden vgaswitheroo adlı çekirdek modülünü kullanarak grafik birimleri arasında geçiş yapabiliyorduk fakat vgaswitcheroo ilk nesil hibrit sistemlerde (muxed design) işlev göstermekte, yeni hibrid tasarımında(muxless design) çalışmamakta. Çoğu yeni laptop muxless tasarım ile geldiği için artık vga switcheroo malesef işe yaramıyor.
Bu durumda biz açık kaynaklı radeon, intel ve nouveau sürücülerinin desteklediği  PRIME teknolojisini kullanacağız. Öncelikle sisteminizdeki grafik birimlerini listeleyerek işe koyulalım;

Providers: number : 3
Provider 0: id: 0x7c cap: 0x9, Source Output, Sink Offload crtcs: 4 outputs: 3 associated providers: 2 name:radeon
Provider 1: id: 0x45 cap: 0x6, Sink Output, Source Offload crtcs: 6 outputs: 0 associated providers: 2 name:radeon


Bu aşamada hangi grafik birimden görüntü almak istiyorsak DRI_PRIME= kodunun sonuna numarasını iliştirip ardından yapacağımız işlemin komutunu veriyoruz.
Örneğin;
root@g6-hp:/home/jan# glxinfo | grep "OpenGL renderer"
OpenGL renderer string: Gallium 0.4 on AMD ARUBA

root@g6-hp:/home/jan# DRI_PRIME=0 glxinfo | grep "OpenGL renderer"
OpenGL renderer string: Gallium 0.4 on AMD ARUBA

root@g6-hp:/home/jan# DRI_PRIME=1 glxinfo | grep "OpenGL renderer"
OpenGL renderer string: Gallium 0.4 on AMD TURKS



Yada;









Örnekleri artırabiliriz ;

DRI_PRIME=1 steam steam://rungameid/219740

Bu sistemin dezavantajı son kullanıcı için kullanım kolaylığı konusunda iç açıcı olmaması. Bu durumdaki kullanıcılar sahipli sürücüye yönelmek zorunda kalacaklar. Ayrıca bu şekilde harici grafik kartı tam potansiyelini ortaya çıkaramıyor, bir peformans düşüşü söz konusu. Birde bazı sistemlerde görüntü yöneticisi kaynaklı siyah ekran ve başlangıç ekranına atma gibi sorunlar mevcut. Umarız bu sorunlar zamanla çözülür. Avantaj olarak açık kaynaklı sürücüyü bırakmak zorunda olmamamız söylenebilir. Benim için DPM ,tearing olmaması ,donanım hızlandırması ve 2D hızlandırması gibi şeyler önemlidir diyenler için açık-kaynak sürücü bir adım önde.

Merak edenler için MUXed ve MUXless sistemler;

Türkçesi olmadığı için kendim birşeyler uydurmadan olduğu gibi yazdım bu terimleri. MUXed sistemlerde (ilk nesil hibrid grafikler) dahili ve harici grafik birimleri MUX aracılığı ile ekrana görüntü verir ve MUX grafik birimleri arasında değişimi sağlar. Bu sistemin dezavantajı uygulanması için oturum kapatma yada bilgisayarı yeniden başlatma gibi gereksinimlere ihtiyaç duymasıydı. MUXless tasarımda herhangi bir grafik birimi değiştiricisi yoktur. Ekran bağlantısı sadece dahili grafik birimi iledir. Dolayısı ile eğer bir uygulama harici grafik birimini kullanmak isterse render ve hesaplamalar harici grafik birimi ile yapılır sonuç dahili grafik birimi kullanılarak ekrana aktarılır. Son yıllarda üretilen çoğu hibrid sistemler bu şekilde işlemekte ve güncel alınabilir hibrid sistemlerde MUXed tasarımı bulmak neredeyse imkansız.

Secret++

Steam yüzünden bu aralar ekran kartları üzerine resmen master yapıyorum  :D
Yararlı bir inceleme ve makale olmuş teşekkürler.