image/svg+xml
Logo Tom's Hardware
  • Hardware
  • Videogiochi
  • Mobile
  • Elettronica
  • EV
  • Scienze
  • B2B
  • Quiz
  • Tom's Hardware Logo
  • Hardware
  • Videogiochi
  • Mobile
  • Elettronica
  • EV
  • Scienze
  • B2B
  • Quiz
  • Forum
  • Sconti & Coupon
Black Friday

Novità!

Prova la nuova modalità di navigazione con le storie!

Accedi a Xenforo
Immagine di AMD Ryzen 5 7500X3D: la 3D V-Cache economica costa troppo? | Test & Recensione AMD Ryzen 5 7500X3D: la 3D V-Cache economica costa troppo? |...
Immagine di Windows 26 riprende l’eredità di Vista e 7, ma con stile Windows 26 riprende l’eredità di Vista e 7, ma con stile...

L'avvento della GPGPU

CUDA, il nuovo linguaggio di programmazione per le GPU Nvidia, promette grandi risultati e mostra le schede video sotto una nuova luce. Cerchiamo di capire un po' di più cosa ci riserva CUDA.

Advertisement

Quando acquisti tramite i link sul nostro sito, potremmo guadagnare una commissione di affiliazione. Scopri di più
Avatar di Andrea Ferrario

a cura di Andrea Ferrario

Editor in Chief

Pubblicato il 30/06/2008 alle 11:16 - Aggiornato il 15/03/2015 alle 01:14
  • Nvidia CUDA, GPU all'inizio di una nuova era
  • Nel frattempo
  • Viva la GeForce FX!
  • L'avvento della GPGPU
  • Le API CUDA
  • Alcune definizioni
  • La teoria: CUDA dal punto di vista hardware
  • Pag 2
  • La teoria: CUDA dal punto di vista software
  • In pratica
  • Prestazioni
  • Analisi
  • Conclusioni
  • Intervista
  • Pag 2

L'avvento della GPGPU

L'idea di usare gli acceleratori grafici per i calcoli matematici non è recente, infatti se ne parla già dagli anni novanta. Inizialmente era molto primitiva - limitata ad alcune funzionalità hardware come la rasterizzazione o i calcoli Z-buffers per accelerare lavori come il pathfinding o la creazione di diagrammi Voronoi.

Nel 2003, con l'arrivo di shader evoluti, si raggiunse un nuovo stadio - questa volta era possibile effettuare calcoli di matrici usando l'hardware disponibile. Nacque quindi il termine GPGPU (General-Purpose computation in GPU).

Un altro punto di svolta, in questa area, fu l'arrivo di BrookGPU.

Per capire veramente il ruolo di Brook, è necessario capire com'era la situazione antecedente. L'unico modo per accedere alle risorse della GPU, nel 2003, era usare una delle due API grafiche disponibili - Direct3D od OpenGL, che permettevano di accedere alla potenza grafica della GPU, per i ricercatori interessati. Questi ricercatori, però, non erano necessariamente esperti nella programmazione grafica, motivo per cui l'accesso a tale tecnologia era molto complicato. Dove i programmatori 3D parlavano di shader, texture e fragments, gli specialisti della programmazione parallela parlavano di streams, kernel, scatter e gather. Quindi, la prima difficoltà era trovare delle analogie tra questi due mondi distinti:

  • Uno stream - che è 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. Concettualmente 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.

Come potete vedere, anche con queste analogie in mente, l'obiettivo non è semplice, ed qui che entra in gioco Brook. 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 far ciò, Brook comprende 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 diversi meriti, il primo dei quali è quello di aver portato le GPGPU fuori dall'ombra e di averle presentate al grande pubblico. Quando fu annunciato il progetto, molti siti web parlarono dell'arrivo di Brook. Alcuni semplificarono anche troppo il concetto: "La CPU è morta! Le GPU sono molto più potenti e presto rimpiazzeranno le CPU!". Cinque anni dopo, invece, non è ancora accaduto, e, diciamolo chiaramente, non accadrà mai. Considerando i successivi cambiamenti delle CPU, che ora sono sempre più orientate verso il parallelismo (sempre più core, tecnologia multi-threading e l'ampliamento delle unità SIMD), e delle GPU, che diversamente stanno diventando sempre più flessibili (supporto per i calcoli single-precision floating-point, calcoli integer e presto calcoli double-precision), sembra ovvio che entrambe si stiano muovendo verso un punto di incontro. Cosa succederà quindi? Le GPU assorbiranno le CPU, magari come coprocessore matematico? Possibile. Intel e AMD stanno lavorando su progetti di questo tipo. Nel frattempo, tuttavia, nulla è cambiato.

Torniamo ora al nostro interesse principale. Con Brook, le API potevano semplificare notevolmente l'accesso alle risorse della GPU, permettendo a molti di studiare un nuovo modello di programmazione. D'altra parte, nonostante le qualità di Brook, c'era ancora molta strada da fare prima che la GPU potesse essere considerata una valida unità di calcolo.

Uno dei problemi riscontrati derivava dai differenti layer d'astrazione, e in particolare dall'eccessivo carico di lavoro generato dalle API 3D. Ma il problema reale era l'incompatibilità, sulla quale gli sviluppatori di Brook non avevano controllo. Non è raro per i produttori di GPU ottimizzare regolarmente i driver, specialmente considerando l'acerrima competizione in questo campo. Queste ottimizzazioni erano (la maggior parte delle volte) molto utili per i giocatori, ma potevano pesare sulla compatibilità di Brook: quindi era difficile immaginare l'uso delle API per creare programmi di ampio respiro. Per lungo tempo Brook rimase solo una curiosità per ricercatori e programmatori.

Leggi altri articoli
  • Nvidia CUDA, GPU all'inizio di una nuova era
  • Nel frattempo
  • Viva la GeForce FX!
  • L'avvento della GPGPU
  • Le API CUDA
  • Alcune definizioni
  • La teoria: CUDA dal punto di vista hardware
  • Pag 2
  • La teoria: CUDA dal punto di vista software
  • In pratica
  • Prestazioni
  • Analisi
  • Conclusioni
  • Intervista
  • Pag 2

👋 Partecipa alla discussione! Scopri le ultime novità che abbiamo riservato per te!

0 Commenti

⚠️ Stai commentando come Ospite . Vuoi accedere?

Invia

Per commentare come utente ospite, clicca cerchi

Cliccati: 0 /

Reset

Questa funzionalità è attualmente in beta, se trovi qualche errore segnalacelo.

Segui questa discussione
Advertisement

Non perdere gli ultimi aggiornamenti

Newsletter Telegram

I più letti di oggi


  • #1
    Lavorare 72 ore a settimana, il nuovo modello che piace a USA e Cina
  • #2
    Scoperti nuovi indizi sulle origini di Homo sapiens
  • #3
    Unieuro non si ferma: le promozioni del Black Friday continuano
  • #4
    Windows 26 riprende l’eredità di Vista e 7, ma con stile
  • #5
    22% di sconto su Amazon con appena 25€ di spesa
  • #6
    Scatta il blocco sui siti porno: cosa succede ora?
Articolo 1 di 5
Windows 26 riprende l’eredità di Vista e 7, ma con stile
Il designer Abdi propone un Windows 26 che recupera l'estetica di Vista e 7 con il Liquid Glass, mentre Microsoft punta su AI e piattaforme agentiche.
Immagine di Windows 26 riprende l’eredità di Vista e 7, ma con stile
9
Leggi questo articolo
Articolo 2 di 5
AMD Ryzen 5 7500X3D: la 3D V-Cache economica costa troppo? | Test & Recensione
L'ultimo nato con 3D V-Cache ha le carte in regola per finire in tutti i PC da gaming entry level, ma dovrà avere il giusto prezzo.
Immagine di AMD Ryzen 5 7500X3D: la 3D V-Cache economica costa troppo? | Test & Recensione
6
Leggi questo articolo
Articolo 3 di 5
La nuova Steam Machine esiste davvero (e non è sola)
Valve annuncia una nuova Steam Machine, ma anche un visore VR standalone Steam Frame e un nuovo controller ibrido.
Immagine di La nuova Steam Machine esiste davvero (e non è sola)
6
Leggi questo articolo
Articolo 4 di 5
AMD Zen 6: la rivoluzione dei 2 nanometri è vicina
Zen 6 segna un passo storico per AMD: architettura a 2 nanometri, prestazioni AI potenziate e continuità sulla piattaforma AM5.
Immagine di AMD Zen 6: la rivoluzione dei 2 nanometri è vicina
5
Leggi questo articolo
Articolo 5 di 5
SteamOS su Arm è un'ottima notizia, non solo per la VR
L'arrivo di SteamOS su architettura Arm grazie al visore Steam Frame segna una svolta importante, dopo anni di supporto esclusivo a x86.
Immagine di SteamOS su Arm è un'ottima notizia, non solo per la VR
10
Leggi questo articolo
Advertisement
Advertisement

Advertisement

Footer
Tom's Hardware Logo

 
Contatti
  • Contattaci
  • Feed RSS
Legale
  • Chi siamo
  • Privacy
  • Cookie
  • Affiliazione Commerciale
Altri link
  • Forum
Il Network 3Labs Network Logo
  • Tom's Hardware
  • SpazioGames
  • CulturaPop
  • Data4Biz
  • TechRadar
  • SosHomeGarden
  • Aibay

Tom's Hardware - Testata giornalistica associata all'USPI Unione Stampa Periodica Italiana, registrata presso il Tribunale di Milano, nr. 285 del 9/9/2013 - Direttore: Andrea Ferrario

3LABS S.R.L. • Via Pietro Paleocapa 1 - Milano (MI) 20121
CF/P.IVA: 04146420965 - REA: MI - 1729249 - Capitale Sociale: 10.000 euro

© 2025 3Labs Srl. Tutti i diritti riservati.