Che cosa c'è di diverso nei driver GPU dagli altri driver di dispositivo, che consente l'ottimizzazione delle prestazioni?


12

Sembra che i due grandi produttori di GPU rilascino costantemente driver aggiornati che hanno un piccolo aumento delle prestazioni qua e là. Quando sono per lo stesso gioco, scommetto che si somma nel tempo.

Con questo in mente, perché non sentiamo mai parlare di driver di CPU AMD o Intel che ottimizzano una determinata app o versione di Windows o qualcosa del genere?


1
Per quanto riguarda i VTC: questo non è ambiguo. C'è un ragionamento specifico su ciò che viene modificato e perché, con i driver GPU (e CPU).
Ben Richards,

1
I fornitori di CPU rilasciano aggiornamenti. Vedi, ad esempio, downloadcenter.intel.com/… (fai clic sul firmware all'estrema destra)
derobert

@derobert - Interessante, ovviamente Intel non ha intenzione di ripetere il fiasco Pentium. Tuttavia, questi aggiornamenti riguardano il microcodice del processore e non sono "driver della CPU". Il microcodice viene eseguito a un livello inferiore rispetto al codice macchina dei file kernel ed .exe .
segatura

@sawdust il microcodice CPU (almeno in parte) è responsabile della traduzione delle istruzioni x86 che la CPU riceve nelle operazioni effettive che esegue. Quindi è in qualche modo simile ai driver grafici. Ovviamente, a Intel interessa molto di più la correttezza di nVidia, quindi i loro aggiornamenti sono probabilmente principalmente correzioni di bug.
derobert,

Risposte:


13

In primo luogo, a volte ci sono casi in cui viene rilasciata una patch del driver che potrebbe aumentare le prestazioni o aumentare l'efficienza, per una determinata CPU. Ma ovviamente stai ponendo questa domanda perché non è poi così comune. Tuttavia, ciò che fanno le ottimizzazioni del driver della CPU è simile nel concetto.

Una GPU è un circuito molto complicato. Esiste per scaricare determinate attività che richiedono molto tempo per essere eseguite su una CPU. Ricevono set di dati e istruzioni su cosa fare con questi dati. La GPU deve essere in grado di ordinare i dati in modo gestibile e interpretare le istruzioni per dire cosa fare. Quindi, deve eseguire una serie di operazioni matematiche sui dati. Successivamente, deve riordinare nuovamente i dati e inviare i risultati al sistema operativo al termine. Questa è una descrizione molto semplicistica della pipeline di computer grafica . Esistono più passaggi da eseguire prima che i dati siano pronti per il programma.

Ora, poiché la GPU deve accettare serie di istruzioni e implementare operazioni matematiche molto complicate nell'hardware, ci saranno alcune cose che sono note per funzionare più velocemente o più lentamente attraverso questa pipeline. Parte della scrittura di un driver per un dispositivo è l'interpretazione dei dati e delle istruzioni inviati al dispositivo, traducendolo in modo che il dispositivo possa comprenderlo. Quando un driver lo sta facendo, può prendere decisioni su come inviare i dati al dispositivo in modo che le attività richiedano il minor tempo possibile. Tuttavia, un driver in genere non ha molte informazioni su ciò che il programma sta eseguendo. Tutto ciò che riceve dal programma sono le chiamate API ("disegna una linea", "colora un punto", "ombreggia un triangolo", ecc.). Quindi, le ipotesi che può fare non sono molto buone.

Quando AMD o nVidia rilascia un aggiornamento del driver che contiene miglioramenti delle prestazioni per giochi specifici, ciò significa che il driver rileverà quale gioco chiama l'hardware grafico e ha una serie di ipotesi codificate che sono note su come il gioco è implementato. È possibile che il gioco abbia molte immagini di trama che devono essere rapidamente scambiate dentro e fuori dalla memoria, o che si mescola molto al volo per produrre determinati effetti di luce. Di solito ciò che un gioco farà è implementare piccoli programmi (chiamati "shader") che descrivono come eseguire questi calcoli e verranno inviati alla GPU per essere eseguiti. Se il driver sa come il gioco utilizza l'hardware, può organizzare i dati e scegliere una serie di istruzioni che eseguono l'attività desiderata in modo da aumentare la produttività e l'efficienza.

A volte, tuttavia, dopo che il prodotto è stato spedito, alcuni bug potrebbero essere trovati in alcune parti della GPU. Potrebbe essere abbastanza oscuro da aver perso la convalida durante la progettazione del chip, ma si potrebbe scoprire che provoca un comportamento errato o indesiderabile (o addirittura arresti anomali) in un particolare gioco che lo colpisce. In tal caso il driver rileverà questo stato difettoso e lo aggirerà, scaricando alcuni calcoli sul lato CPU o modificando il modo in cui alimenta i dati alla GPU in modo che non entri in questo stato. Questi, ancora una volta, verranno rilasciati sotto forma di aggiornamenti del driver.

Quindi, in sostanza, non sta cambiando le prestazioni dell'hardware stesso, sta solo cambiando il modo in cui utilizza l'hardware, in modo che possa operare in modo più efficiente e rapido sullo stesso set di dati.


A proposito degli ingegneri del driver che capiscono come viene implementato un gioco, questo mi chiedo se quelle schermate splash Nvidia in alcuni giochi sono più che semplici pubblicità.
Louis

2
@Louis Non sono solo annunci pubblicitari. Sono perché NVidia mantiene relazioni speciali con determinati studi di gioco e offre assistenza agli sviluppatori per ottimizzare il codice di gioco per l'hardware grafico NVidia. Anche AMD lo fa (a volte vedrai un logo AMD in un gioco), ma NVidia ha storicamente avuto una presenza molto più ampia.
Ben Richards,

Rileggendolo, vedo che è un'ottima risposta e dove appartiene il segno di spunta. Vorrei che tutte le risposte fossero così insegnanti nelle loro spiegazioni.
Louis,

Integreresti questo ( più numeri ) come esempio per un'altra taglia?
Louis,

10

"Driver di CPU" raramente esistono, e certamente non come moduli caricabili. Il "driver CPU" occasionale sarebbe necessario per alcune variazioni del controllo multicore o della gestione degli interrupt (ad esempio, i dual-core AMD necessitavano di un driver WinXP per il pieno utilizzo). In caso contrario, la maggior parte dei sistemi operativi è configurata e costruita per accedere direttamente alla CPU. Se viene visualizzato un problema grave, il codice del kernel viene corretto e viene rilasciato un aggiornamento del kernel.

Le GPU non sono più solo periferiche; si sono evoluti in coprocessori. Il "driver GPU" non fornisce solo l'accesso al dispositivo, ma include algoritmi di elaborazione (ovvero sottoprogrammi grafici) per la GPU impacchettata nel driver. La dimensione di questi "driver" è un indizio / indizio. Sono questi algoritmi / sottoprogrammi che vengono migliorati.


2
Questo spiega perché i download dei driver per la mia scheda sono ora oltre 200 MB.
Louis,

Dubito davvero che ci siano 200 MB di codice in quei driver. Sarei sorpreso se fosse più di una manciata di MB per quanto riguarda tutti questi algoritmi. >.>
user541686

1
@Mehrdad per curiosità ho aperto il programma di installazione EXE con 7-zip per il driver di Nivida. la cartella Display.Driver ha una dimensione di 147 MB, c'è un exe che è 31 MB, ogni altro file sopra 660 KB è una DLL.
Scott Chamberlain,

@Scott: Quell'exe è quasi certamente un archivio di più file che contiene il codice attuale . Mi aspetto che i file effettivi siano al massimo una manciata di megabyte ... modulo tutte le risorse che potrebbero contenere, che non sono codice.
user541686

0

Non sono solo i driver, è la stessa GPU. Una GPU è specializzata in vari tipi di calcoli (es. FFT) e manipolazione della memoria. Può funzionare in parallelo sulla maggior parte delle attività e renderlo più efficace rispetto a una CPU per scopi generici.

Con una migliore conoscenza dei programmi in esecuzione è possibile ottimizzare la manipolazione della memoria o i processi di calcolo per questi programmi. La GPU è molto versatile su come eseguire calcoli ed eseguire manipolazioni di memoria, quindi è ancora necessario scrivere il firmware o il driver perfetto . ;) C'è molto spazio per miglioramenti.

La maggior parte degli altri dispositivi non è così versatile nell'uso. La maggior parte dell'hardware su un PC deve essere eseguito nelle sue specifiche, seguire i protocolli, quindi non è necessario ottimizzare il driver.

A, ho dimenticato la CPU. > _ <La CPU può essere ottimizzata. La maggior parte dei nuovi modelli di CPU ha un firmware programmabile, ma l'aumento delle prestazioni non vale la pena. Viene utilizzato solo per correggere errori nel processo di generazione dell'hardware.


"La maggior parte dei nuovi modelli di CPU ha un firmware programmabile", spiega.
Tim
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.