Graphics Processing Unit unità di elaborazione grafica (più nota come GPU)

codice adsense

L'unità di elaborazione grafica (più nota come GPU, dall'inglese graphics processing unit) o unità di elaborazione visiva (VPU, dall'inglese visual processing unit) o processore grafico o processore visivo è una tipologia particolare di coprocessore che si contraddistingue per essere specializzata nel rendering di immagini grafiche. Il suo tipico utilizzo è come coprocessore della CPU e da alcuni anni viene anche utilizzata in generiche elaborazioni dati (GPGPU).

La GPU è tipicamente implementata come microprocessore monolitico e, da alcuni anni, viene anche implementata assieme alla CPU nel medesimo circuito integrato.[1] Da alcuni anni vengono anche prodotti processori multicore formati da più core di GPU.
Graphics Processing Unit
Le GPU moderne, sebbene operino a frequenze più basse delle CPU, sono molto più veloci di esse nell'eseguire i compiti in cui sono specializzate.
La GPU attualmente entra pesantemente in funzione solo nell'accelerazione 3D. Difatti, nell'accelerazione 2D, i dati vengono elaborati dalla CPU e allocati dalla GPU in una parte della memoria chiamata framebuffer; da lì, il RAMDAC (Random Access Memory Digital-to-Analog Converter) legge i valori di colore da assegnare ai singoli pixel e genera il segnale per lo schermo.
Diversamente, quando viene elaborata un'immagine 3D, la CPU del computer si occupa solo del calcolo delle coordinate geometriche dei vertici dei poligoni che compongono gli oggetti della scena, e lascia alla GPU il compito di riempire le "facce" formate da questi vertici, chiamate in gergo Mesh, e del calcolo delle ombre e degli effetti grafici da applicare ai poligoni, sgravandosi da pesanti operazioni di calcolo. Dopo di ciò i dati risultanti verranno normalmente posizionati nel frame buffer, per poi passare per il RAMDAC ed arrivare allo "schermo".

Dal punto di vista terminologico abbiamo tre soluzioni con architetture diverse[2]:
  • GPU discreta ovvero dedicata: è presente una scheda video specifica;
  • GPU integrata: la sezione grafica è condivisa con la CPU ovvero sul chipset;
  • GPU doppia: GPU integrata (per applicazioni video ordinarie) più GPU dedicata (per flussi video pesanti: rendering, gaming, ecc.).
Questa soluzione può essere configurata con commutazione automatica oppure manuale (ovvero l'utente decide quale scheda utilizzare), agendo sul BIOS o meglio sullo strumento relativo alla sezione grafica.
Graphics Processing Unit
Le moderne GPU discendono dai chip grafici monolitici di fine anni settanta e degli anni ottanta.

Questi chip non avevano la funzione BitBLT, o l'avevano solo sotto forma di sprite, e solitamente non avevano funzioni per il disegno di forme.

Alcune GPU potevano eseguire più operazioni in una display list, e potevano usare il DMA per ridurre il carico sulla CPU; uno dei primi esempi è stato il co-processore ANTIC usato sul computer Atari 800 e Atari 5200. Alla fine degli anni ottanta e all'inizio degli anni novanta, le GPU di fascia alta venivano spesso implementate con microprocessori non specializzati ad alta velocità; alcune schede grafiche (molto costose) per PC e workstation usavano chip DSP (digital signal processor) (come la serie TMS340 della TI) per implementare funzioni veloci di disegno, e molte stampanti laser venivano fornite con un elaboratore di immagini raster PostScript (un caso speciale di una GPU) funzionante su una CPU RISC come l'AMD 29000.
Man mano che la tecnologia di costruzione di chip migliorava, è diventato possibile spostare sia le funzioni di disegno sia la funzione BitBLT sulla stessa scheda (e, in seguito, nello stesso chip) insieme ad un normale controllore di frame buffer come il VGA; questi "acceleratori 2D" semplificati non erano così flessibili come le GPU basate su microprocessore, ma erano molto più facili da costruire e da vendere. L'Amiga è stato il primo computer per il mercato di massa a includere un blitter nel suo hardware video, e il sistema grafico IBM 8514 è stato una delle prime schede video per PC a implementare in hardware le primitive 2D.

All'inizio degli anni '90, la diffusione di Microsoft Windows ha generato un grande interesse verso la grafica raster 2D ad alta velocità e alta risoluzione (che in passato era stato il dominio delle workstation Unix e dei Macintosh Apple). Per il mercato dei PC, la dominanza di Windows ha significato che i produttori di dispositivi grafici per PC adesso potevano focalizzare gli sforzi di sviluppo su una sola interfaccia di programmazione, la GDI.

Nel 1991, S3 Graphics ha introdotto il primo acceleratore 2D su singolo chip, l'S3 86C911 (il cui nome è stato ispirato dall'autovettura Porsche 911 come indicazione dell'aumento di velocità che prometteva). L'86C911 ha generato molti imitatori; nel 1995, tutti i principali produttori di chip grafici per PC avevano aggiunto il supporto per l'accelerazione 2D ai loro chip. Entro questo tempo, gli acceleratori per Windows non programmabili avevano sorpassato, in termini di prestazioni di Windows, i costosi coprocessori grafici ad uso generico, per cui i coprocessori scomparvero dal mercato dei PC.

codice adsense

Posta un commento