Over 10 years we help companies reach their financial and branding goals. Engitech is a values-driven technology agency dedicated.

Gallery

Contacts

411 University St, Seattle, USA

engitech@oceanthemes.net

+1 -800-456-478-23

Technology

La GPU e la grafica digitale

La GPU, Graphics Processing Unit, è l’unità di elaborazione grafica. La sua funzione è quella di elaborare dati, informazioni e istruzioni relative all’aspetto grafico digitale. Si occupa dell’elaborazione dei dati in arrivo dalle altre periferiche e dalle altre componenti del computer.

Qual è la differenza fra CPU e GPU?

Tutte le funzionalità di un computer sono gestite dalla CPU, Central Processing Unit. Queste sono progettate per eseguire più istruzioni contemporaneamente in modo da ottenere sempre più velocemente il risultato richiesto dall’utente. CPU e GPU hanno molto in comune. Entrambe sono motori di calcolo essenziali, sono microprocessori a base di silicio e gestiscono dati. Ma CPU e GPU hanno architetture diverse e sono costruite per scopi diversi.

La CPU è costituita da milioni di transistor e può avere più core di calcolo, per questo è comunemente descritta come il cervello del computer. Oltre ad attuare i comandi necessari al funzionamento del sistema, è determinante per la velocità esecutiva dei programmi e della navigazione. Per evitare il sovraccarico della CPU, esistono processori speciali chiamati coprocessori la cui funzione è di supporto alle funzionalità della CPU. La GPU, quindi, non è altro che un tipo di coprocessore.

In base a quanto accennato, la GPU non è altro che una CPU specializzata per l’elaborazione grafica, generalmente situata sulla scheda grafica. Il suo compito è quello di aiutare la CPU, riducendone il carico di lavoro. Per questo motivo una GPU può essere considerata come un coprocessore specializzato nel rendering di immagini grafiche. Per rendering si intende è una procedura che permette di generare, tramite un apposito software, un’immagine digitale. Ciò avviene mediante il calcolo accurato della prospettiva e all’aggiunta di colori, luci e ombreggiature possibile nella computer grafica. Oggi le GPU più recenti decodificano anche i video ad alta definizione, scaricando l’unità di elaborazione centrale.

L’evoluzione delle GPU

Le GPU si stanno evolvendo molto velocemente e questo le sta portando a distanziarsi dalle CPU. Infatti, anch’esse possono elaborare funzioni di calcolo e di approcciarsi al GPGPU (General Purpose Computing on GPU, cioè elaborazione di tipo generico su GPU). Oggi la GPGPU è impiegata in vari campi come l’esplorazione petrolifera, l’elaborazione di immagini scientifiche e la determinazione del prezzo delle opzioni sulle azioni di borsa.

Nel 2003, l’unico modo per accedere alle risorse della GPU era quello di usare una delle due API grafiche disponibili Direct3D od OpenGL. Tali Application Programming Interface hanno permesso ai ricercatori interessati a raccogliere questa sfida di di accedere alla potenza grafica della GPU. Il processo non è stato però immediato e fluido come si può pensare poiché, questi, ancora troppo inesperti nella programmazione grafica, riscontravano notevoli difficoltà soprattutto nello scambio con i programmatori 3D. Quindi, la prima difficoltà era trovare delle analogie tra questi due mondi distinti e si è fatto unendo i due mondi:

  • Uno stream (un flusso di elementi dello stesso tipo) può essere presentato ad una GPU come se fosse una texture. Per farvi un’idea, consideratelo come l’equivalente di un array nella programmazione classica.
  • Un kernel, l’applicazione che verrà applicata indipendentemente a ogni elemento dello stream, è l’equivalente del pixel shader. Più semplicemente può essere visto come il loop interno di un classico programma applicato a un enorme numero di elementi.
  • Per leggere il risultato dell’applicazione di un kernel a uno stream, questo deve essere renderizzato in una texture. Ovviamente non esiste un equivalente per la CPU, che ha accesso totale alla memoria.
  • Per controllare la posizione dove viene scritta la memoria (scatter), deve essere effettuata un’operazione vertex shader, poiché il pixel shader non può modificare le coordinate di un pixel già elaborato.

Qual è stato il ruolo di BrookGPU?

Il processo non è però terminato perché è qui che entra in gioco BrookGPU. Brook è un set di estensioni del linguaggio C, che propone di integrare tutta la parte gestionale delle API 3D, gestendo la GPU come un coprocessore per i calcoli paralleli. Per permettere ciò, Brook utilizza un compilatore, che prende un file.br, contenente codice C++ e varie estensioni, per generare codice C++ standard da connettere a una libreria run-time che dispone di vari back-end (DirectX, OpenGL ARB, OpenGL NV3x, x86).
Brook ha contribuito ad un grande cambiamento in merito, ma soprattutto ha permesso la conoscenza delle GPGPU ad un pubblico più esteso.

Come funziona la GPU

La GPU è una componente hardware presente in quasi tutti i PC. Questa scheda video potrebbe essere definita anche come una piccola scheda madre. Infatti, anch’essa possiede un calcolatore all’interno del quale vengono effettuati i calcoli e vengono processate le istruzioni, una memoria RAM, ed infine degli slots di connessione e un dissipatore.
Le GPU ad oggi sono diventate la soluzione di riferimento per accelerare i carichi di lavoro e abilitare l’High Performance Computing. I server che al loro interno hanno un acceleratore GPU supportano i carichi di lavoro HPC e i data center hyperscale, applicazioni di Intelligenza Artificiale di training (HGX-T), inferenza (HGX-I) o supercomputing (SCX). Ogni server accelerato da una GPU sostituisce decine di server CPU generici, fornendo un aumento sostanziale del throughput applicativo a costi più contenuti.

GPU e Intelligenza Artificiale

Gli analisti utilizzano la GPU per esaminare velocemente volumi di dati petabyte e gestire la potenza elaborativa che serve ai sistemi collegati all’uso dell’AI. Inoltre, è fondamentale per il training di deep learning con diversi livelli di reti neurali o su enormi set di certi dati, come le immagini 2D.

Author

Lara Mastrofini