NVIDIA CUDA
CUDA, acronimo di Compute Unified Device Architecture, è l'architettura che NVIDIA ha sviluppato per poter utilizzare le proprie GPU dalla serie GeForce 8 in poi per eseguire eaborazioni che non siano quelle tradizionalmente legate alla generazione di scene di giochi 3D.
Alla base di questo utilizzo delle GPU, indicato con il nome di GPU Computing, troviamo la loro architettura di tipo parallelo: questi chip sono per propria natura adatti ad eseguire un elevato numero di calcoli paralleli, proprio quelli richiesti per la generazione di scene 3D. Questa capacità elaborativa può essere sfruttata anche per calcoli di tipo general purpose, gli stessi che vengono eseguiti tipicamente da un processore.
I vantaggi architetturali delle GPU rispetto alle CPU con elaborazioni di tipo parallelo si riflettono sulle prestazioni velocistiche: per alcune tipologie di calcolo general purpose le GPU sono capaci di prestazioni nettamente più elevate di quanto disponibile con le più veloci cpu in commercio sul mercato. Proprio a motivo della loro architettura le GPU non possono sostituire la CPU in ogni ambito applicativo: in contesti sia scientifici - professionali come quelli domestici sono ben evidenziabili ambiti nei quali le GPU possono sostituire la CPU nell'elaborazione, migliorando sensibilmente i tempi di esecuzione.
Come opera una
GPU nell'elaborazioni di calcoli in parallelo? La GPU esegue un programma CUDA, che
traduce istruzioni e operazioni scritte in un linguaggio accessibile al programmatore in
quello che viene definito il "linguaggio macchina" della GPU, operando alla
stregua di un coprocessore per la CPU di sistema: il processore quindi interpreta,
organizza e invia le informazioni, mentre la GPU elabora i dati in parallelo. E' quindi
evidente che se da una parte la GPU permetta di ottenere un notevole incremento
prestazionale, dall'altra sia sempre richiesta la presenza della CPU per poter eseguire le
elaborazioni e governare sul processo di elaborazione proprio della GPU.
Grazie a CUDA, quindi, un programmatore abituato ad interagire con un processore per l'esecuzione di proprie applicazioni parallele può ora sfruttare anche la GPU NVIDIA presente nel proprio sistema per questo tipo di elaborazioni. Da un lato l'approccio alla programmazione non implica particolari cambiamenti rispetto all'operare ordinario di un programmatore che sviluppa in linguaggio C, mentre il risultato finale in termini di incremento delle prestazioni velocistche in elaborazione è tangibile e chiaramente evidente anche al non appassionato.
Torna alla Homepage
