Se una GPU è buona, allora sicuramente due GPU sono buone? Per una buona parte della storia della GPU è stato così, ma al giorno d’oggi non puoi semplicemente inserire una seconda scheda grafica nel tuo PC e ottenere un aumento del frame rate. Perché? Inoltre, quando potremo farlo di nuovo?
Come SLI e (anche) SLI hanno introdotto il gioco con doppia GPU
Il pioniere dell’acceleratore grafico Voodoo ha introdotto SLI o “Scan-Line Interleave” negli anni ’90. Ciò ti consente di collegarne due Carte voodoo (che doveva essere identico), lasciando che ciascuna carta rappresentasse una linea alternata della cornice. In teoria, questo raddoppierebbe la potenza del rendering, ma in pratica l’incremento non è mai stato così lineare.
Con la scomparsa di Voodoo (e della sua tecnologia acquistata da NVIDIA) lo SLI sarebbe tornato con le GPU NVIDIA, ma questa volta era l’abbreviazione di “Scalable Link Interface”. ATi (ora AMD) era e rimane il principale concorrente di NVIDIA, e la sua tecnologia equivalente CrossFire ha fatto più o meno la stessa cosa. Le schede, o talvolta da due a quattro GPU sulla stessa scheda, erano collegate utilizzando uno speciale bus a larghezza di banda elevata che consentiva loro di condividere rapidamente le informazioni e in modo da poter condividere il carico di lavoro di rendering.
Il modo esatto in cui funzionava dipendeva dall’implementazione, ma di solito le GPU eseguivano il rendering di fotogrammi alternati o ciascun fotogramma veniva suddiviso in uno schema a scacchiera di regioni e ciascuna GPU lavorava sulla propria parte di patch.
Il giorno in cui morirono SLI e Crossfire
Quando SLI o CrossFire funzionavano, consentivano prestazioni più veloci di quanto qualsiasi singola GPU potesse ottenere, ma c’erano problemi comuni. I cosiddetti “micro” stutter causati da problemi di sincronizzazione e vincoli di larghezza di banda rovinerebbero l’esperienza anche se il contatore FPS fosse alto. Inoltre, il ridimensionamento delle prestazioni ha reso il calcolo del rapporto costo/prestazioni insostenibile per la maggior parte delle persone. L’aggiunta di una seconda carta non raddoppierebbe le tue prestazioni, ma forse le aumenterebbe del 70% se fossi fortunato. Una terza o una quarta carta diminuirebbero ancora di più i rendimenti. In molti casi, la quarta carta non farebbe letteralmente nulla!
Tuttavia, gli appassionati erano ancora disposti a pagare qualsiasi cosa per ottenere le migliori prestazioni, quindi SLI continuava a sopravvivere come funzionalità, ma la sua campana a morto arrivò quando i giochi smisero di supportarlo. Non solo l’implementazione dello SLI sta comportando un lavoro extra per uno sviluppatore che si rivolge a una piccolissima fetta del suo mercato, ma i modi in cui i giochi vengono renderizzati sono diventati inadeguati per lo SLI.
I motori di gioco moderni spesso utilizzano i dati dei frame passati per migliorare i frame attuali o per renderli, con vari buffer e cumuli di dati che devono essere spostati. Il risultato finale totale è che SLI e Crossfire non sono adatti al funzionamento di questi motori di gioco perché i dati passati o il contenuto di tali buffer non possono essere spostati abbastanza rapidamente.
Apple può unire le GPU insieme
Mela Collegare due schede grafiche insieme con un cavo potrebbe non essere sufficiente per consentire alla tecnologia multi-GPU di funzionare bene nei giochi moderni o nelle app 3D, ma Apple sembra aver risolto questo problema creando una connessione incredibilmente veloce tra le loro GPU. Prendendo più copie dei moduli system-on-a-chip di Apple Silicon e essenzialmente incollandole insieme con connettori edge a larghezza di banda ultraelevata, il problema scompare del tutto.
Ancora meglio, non è necessario che gli sviluppatori di software ne tengano conto. Per un gioco o un’altra applicazione, sembra tutto come una grande GPU logica, anche se ci sono più GPU discrete all’interno di qualcosa come un Apple M1 Ultra o M3 Max. Il ridimensionamento non è perfetto, c’è ancora qualche penalità in più, ma non è lontano da quello a seconda dell’app in questione.
Directx 12 supporta più GPU
Tecniche come SLI sono gestite dai driver e dall’implementazione del produttore della GPU. Uno sviluppatore deve mettere a punto il proprio motore di gioco per SLI, ma gli aspetti pratici di come il lavoro viene condiviso tra le schede sotto il cofano non sono sotto il loro controllo.
L’ultima versione di DirectX al momento della stesura di questo documento è DirectX 12 Ultimate e questa API (Application Programming Interface) ha una funzionalità nota come Supporto multi-GPU “esplicito”.. Ciò significa che, se un computer ha più di una GPU, lo sviluppatore può controllare con precisione quale lavoro viene assegnato a ciascun chip e come è tutto cucito insieme.
Le GPU non devono essere dello stesso modello o addirittura della stessa marca! Quindi, sulla carta, sembra sorprendente, ma nonostante sia integrato in DirectX 12, pochissimi giochi lo hanno effettivamente supportato. Posso solo supporre che sia un onere significativo per gli sviluppatori, ancora una volta, soddisfare un piccolo gruppo di persone che dispongono di più GPU. Anche se tecnicamente conterebbero i laptop con GPU integrate e dedicate, la GPU integrata probabilmente non sarebbe di aiuto abbastanza da far valere la complessità tecnica.
Stanno arrivando le GPU multi-chip!
Nell’agosto 2022 l’ho scritto Le GPU Multi-Chip Module (MCM) potrebbero essere il futuro della grafica. Un po’ simile a quello di AMD”chiplet” progettati per le loro CPU, questi die GPU contengono più GPU discrete collegate da una connessione estremamente veloce sulla scia della soluzione Apple.
La GPU Blackwell B200 di NVIDIA è ufficialmente la prima GPU NVIDIA MCM che si spera possa arrivare anche alle carte consumer, e AMD lo ha fatto brevetti per GPU in stile chiplet anche all’aperto. Si spera che ciò abbia un effetto sul costo delle schede di fascia alta e apra un’area completamente nuova di aumento delle prestazioni per le GPU, poiché la pratica di realizzare chip sempre più grandi con alti tassi di fallimento si sta chiaramente dirigendo verso un vicolo cieco.
Quindi, mentre è improbabile che tornino i giorni in cui si disponevano di più GPU per il rendering grafico (lo facciamo ancora per altri tipi di lavori) o di due pacchetti di chip discreti su una singola scheda, il futuro sembra sempre più essere costruito da array di GPU su un singolo die, agendo come uno solo.