Tuesday, September 3, 2013

Linux e il supporto alle GPU - a che punto siamo?


Uno dei problemi più importanti per Linux è sempre stato il supporto alle schede grafiche recenti, anche se bisogna ammettere (onore al merito degli sviluppatori), che le cose negli ultimi anni hanno preso una piega decisamente migliore.

Ecco qual è attualmente la situazione:

AMD/Ati:
dal punto di vista funzionale il supporto a queste schede è migliorato tantissimo negli ultimi cinque anni, ottenendo un deciso aumento delle prestazioni.
L'unica, forte, pecca, rimane la gestione del risparmio energetico, che spesso porta la GPU a surriscaldarsi, causando nei casi più estremi lo spegnimento di emergenza per overheating.

Fortunatamente, spesso la chiamata di sistema vgaswitcheroo funziona a dovere e ci permette di spegnere letteralmente la scheda dedicata in modo da poter usare solo quella integrata, abbassando anche di 35° la temperatura e portando l'autonomia dei notebook comodamente oltre le 3 ore. Anche se di fatto questo ci esclude la possibilità di usare la scheda dedicata.

Una soluzione più elegante arriverà con il kernel 3.11 (in arrivo in questi giorni), il quale porta con sé un insieme notevole di patch per la gestione del risparmio energetico nelle schede Radeon.
La funzione, ancora in fase sperimentale, si attiva inserendo il parametro "radeon.dpm=1" al boot del kernel.

I primi test fatti utilizzando questa funzione hanno dato ottimi risultati, sia in termini di performance che in termini di risparmio energetico.

NVIDIA:
Le prestazioni delle nvidia con il driver open nouveau sono sufficienti per un uso normale del pc, anche se non si possono dire buone come quelle del driver radeon.
Questo è soprattutto dovuto al fatto che le condizioni di lavoro degli sviluppatori in questo caso sono peggiori rispetto al driver radeon (nouveau è fondamentalmente il risultato di un enorme sforzo di reverse engineering).

Tuttavia, la lacuna più importante forse riguarda il mancato supporto alla tecnologia Optimus (di cui difettano anche i driver proprietari su Linux).

Fino ad ora si è potuto parzialmente sopperire a tale mancanza tramite bumblebee, un software in grado di gestire manualmente lo switch tra scheda grafica integrata e dedicata, consentendo tra l'altro anche l'avvio specifico di alcune applicazioni con la scheda dedicata.

Anche su questo fronte comunque, ci saranno novità a partire dal kernel 3.12, il quale, grazie ad una patch di David Airlie, renderà possibile la gestione dinamica delle due schede tramite il kernel stesso.
Questo significa che sarà il sistema operativo e non più l'utente a decidere quale delle due schede usare (così come avviene normalmente sui sistemi Windows).

Questa funzionalità supporterà inizialmente le schede Nvidia, ma in futuro è prevedibile che il supporto venga esteso anche alle schede Radeon.

~p.l.