Come fa un programma a parlare con una scheda grafica?

2

Ho sentito dire che le GPU sono migliori nell'esecuzione di determinati compiti rispetto a una CPU. La mia domanda è, come fa un programma a dire a una scheda grafica di elaborare qualcosa invece della CPU? Il programma parla direttamente con la GPU? O la CPU determina cosa dare la scheda grafica? Sembra che i vantaggi dell'elaborazione con una GPU vengano in qualche modo annullati se la CPU dovesse comunicare alla GPU ogni istruzione da elaborare.

    
posta jabe 14.04.2015 - 21:50
fonte

1 risposta

6

My question is, how does a program tell a graphics card to process something instead of the CPU?

La risposta breve è che ogni scheda grafica deve avere un driver che implementa un'API grafica standard come OpenGL o DirectX, in modo che il codice in esecuzione sulla CPU possa chiamare funzioni standard da tale API. Quando scrivi il tuo codice, questo è in gran parte indistinguibile dalla codifica contro qualsiasi altra libreria.

Tuttavia, un'enorme parte della programmazione grafica prevede il passaggio di programmi speciali denominati "shader" alla scheda grafica, in modo che possano essere eseguiti lì. Questi sono generalmente scritti in una lingua diversa specificamente progettata per gli shader.

Does the program talk to the GPU directly? Or does the CPU determine what to give the graphics card?

"Il programma" è già in esecuzione sulla CPU (e tutti gli shader forniti sono in esecuzione sulla GPU) quindi non sono sicuro di cosa stia cercando di chiedere.

It seems like the benefits of processing with a GPU would be negated somewhat if the CPU had to tell the GPU each instruction to process.

In effetti, questo può accadere. Lo spostamento dei dati dalla CPU alla GPU è un collo di bottiglia comune nei programmi ad alta intensità grafica. In effetti, alcune funzionalità delle versioni OpenGL più recenti sono specificamente progettate per generare dati sulla GPU, in modo da non dover passare tanto dalla CPU.

Ovviamente, se il collo di bottiglia è nella CPU, la GPU o la comunicazione tra i due dipende interamente dal singolo programma.

    
risposta data 14.04.2015 - 22:06
fonte

Leggi altre domande sui tag