venerdì 7 maggio 2010

La bufala della doppia GPU.

Negli ultimi tempi abbiamo visto un discreto proliferare di notebook che adottano la doppia scheda video. Ogni riferimento ai MacBook Pro e' ovviamente voluto...

Con due GPU on board si pone il problema di come e quando effettuare lo switch tra una e l'altra. I primi Mac ad adottare questa soluzione hardware avevano a corredo una soluzione software che definire rozza e' usare un eufemismo: andare nel pannello di controllo, selezionare la GPU desiderata, fare il logoff.

Adesso il sistema e' un po' piu' sofisticato e non richiede intervento diretto da parte dell'utente, ma resta il problema che c'e' di mezzo un algoritmo che deve prendere la decisione e pare che non sempre prenda le decisioni giuste.

Questa soluzione ha un limite enorme: se un'applicazione necessita' della GPU piu' performante anche solo occasionalmente, questo comporta che la GPU resta accesa per tutto il tempo che l'applicazione e' in eseguzione, anche se minimizzata in background.

Di fatto questo approccio fa acqua da tutte le parti ed e' sostanzialmente da censurare. Non c'e' alcuna limitazione teorica o pratica nel realizzare una GPU che possa avere i consumi di una scheda entry level quando non servono prestazioni e al contempo fornire tutta la potenza necessaria quando richiesto. E questo senza le assurde limitazioni della soluzione Apple, che per altro Apple definisce breakthrough technology... quando invece trattasi di vaccata cosmica, come ampiamente dimostrato da AMD con le sue favolose HD 58xx ;)

Ma continuiamo pure a chiamarla breakthrough technology che altrimenti SJ e i suoi discepoli si offendono! XD

7 commenti:

  1. Ma l'idea è ottima, per quanto si possa ottimizzare un exacore in idle consumerà comunque più di un single core, ovviamente lo stesso vale per le schede grafiche (e la differenza tra un'integrata base e una dedicata è forse anche superiore).
    Fosse anche di 4W la differenza sarebbe comunque visibile in sistemi notebook.

    Il problema è che come al solito Apple ha preso una tecnologia ottima e la ha castrata schifosamente, su Windows lo switch è gestito in base ad una lista di applicazioni, con la possibilità da parte dell'utente di modificarla.
    Era una soluzione così intelligente che evidentemente a Cupertino si sono sentiti in dovere di "migliolarla".

    RispondiElimina
  2. Il tuo paragone tra GPU e CPU e' sbagliato.

    L'architetura di una GPU e' profondamente diversa da quella di una CPU e non e' comunque vero che non si possano spegnere dei core di una CPU. Ma nelle CPU lo spegnimento dei core e' fatto per attivare la modalita' turbo, nella quale si aumenta la frequenza dei core rimanenti senza cosi' superare il TDP massimo. Non c'e' per le CPU uno scenario nel quale sia necessario spegnere i core senza aumentare la frequenza degli altri. Ma se si volesse lo si potrebbe fare senza problemi.

    Nelle GPU come le HD 58xx in modalita' 2D i consumi sono irrisori perche' vengono spenti tutti gli shader che non servono e viene abbassata la frequenza di clock. Spegnere parte della GPU e' possibile e infatti e' quello che AMD fa. E infatti la HD 5850 e la 5870 nonostante abbiano performance massime ben diverse, in 2D hanno consumi identici.

    Il punto e' che la soluzione Apple delega al sistema operativo il compito di decide come e quando accendere la GPU piu' performente, cosa che e' intresicamente errata. Deve essere l'hardware che provvede ad attivarsi in automatico quando necessario e non sulla base di che applicazione sta girando, ma sulla base delle richieste "istantanee" di potenza di calcolo. E' un vantaggio che l'attivazione non dipenda dal sistema operativo, e si eviterebbe quello che succede sui Mac se installi Windows o Linux: ti ritrovi con la GPU piu' performante che e' perennemente accesa con conseguente diminuzione dell'autonomia dei portatili, cosa che per altro sembra fatta intenzionalmente da Apple per mettere in cattiva luce la concorrenza ;)

    RispondiElimina
  3. Sì ma puoi anche spegnere gli shader (power e clock gate) ma non esiste alcuna scheda capace di spegnere tutta la logica non necessaria.
    Il risultato è che se guardi i consumi della 5570 c'è comunque una differenza di quasi 10W in idle, e non potrebbe essere altrimenti.
    Per riuscire a scendere ancora nel consumo ci sarebbe bisogno di progettare una scheda video da 0 con quel preciso scopo, Intel per riuscire a creare un chip con consumi alla "arm per cellulari" quanti anni ci ha messo (e sono stati i primi a realizzare CPU capaci di disabilitarsi quasi completamente in idle)?
    Per me avere una scheda video integrata pensata solo per essere efficiente e una scheda video discreta è una soluzione che sarà sempre e comunque interessante.

    E non sono mica convinto che debba essere l'hardware a decidere, un programma che usa opencl per essere accelerato in qualche modo inutile mica è detto che io voglia farlo girare sulla gpu, avere la flessibilità di scegliere quando usare l'integrata o la discreta è semplicemente fondamentale, una soluzione solo hardware sarebbe ugualmente limitante.

    RispondiElimina
  4. http://images.anandtech.com/graphs/5450_020310223624/21605.png
    Giusto per rimarcare come comunque una differenza rimane.
    Fossero anche i 6W tra 5450 e 5670 varrebbero comunque decine di minuti di autonomia.

    RispondiElimina
  5. > Per me avere una scheda video integrata
    > pensata solo per essere efficiente e una
    > scheda video discreta è una soluzione che sarà
    > sempre e comunque interessante.

    Non lo e' affatto perche' alla fine a causa dei limiti intrinseci di questa scelta finisci che quello che tu credi sia un vantaggio finisce per essere un enorme difetto dato che alla fine ti ritrovi ad avere quella discreta accesa molto piu' al lungo del necessario.

    Non berti le ridicole misurazioni dei consumi con GPU discreta spenta, perche' nel mondo reale quel tipo di situazione non esiste.

    Inoltre, come ormai detto alla noia, AMD ha gia' dimostrato che non c'e' alcun problema a fare schede discrete super efficenti e anche se non ho provato direttamente quelle per notebook, visto i risultati ottenuti sul desktop non c'e' motivo di dubitare che non forniscano gia' da oggi una soluzione piu' che valida per i portatili.

    E anche se dovessi pagare qualche decina di minuti di autonomia... il trade off sarebbe ancora nettamente a vantaggio della soluzione a scheda unica rispetto alle soluzioni a doppia GPU che presentano problemi implementativi o che costringono l'utente ad intervenire. Scusa ma per me il computer e' qualcosa al mio servizio e non viceversa... di un tamagochi piu' grande non sento la necessita' :)

    > Intel per riuscire a creare un chip con
    > consumi alla "arm per cellulari" quanti anni
    > ci ha messo

    Ripeto: questo confronto tra CPU e GPU non ha alcun senso, sono problematiche totalmente diverse.

    RispondiElimina
  6. ecco qua... siamo alle comiche con l'implementazione Apple delle 2 gpu
    http://www.engadget.com/2010/05/08/macbook-pros-with-nvidia-geforce-gt-330m-graphics-get-discrete-s/

    RispondiElimina
  7. Ecco qualcun'altro che la pensa come me: http://arstechnica.com/business/news/2010/05/why-amds-notebook-prospects-are-looking-up.ars

    ;)

    RispondiElimina