Overblog Segui questo blog
Edit post Administration Create my blog
23 gennaio 2013 3 23 /01 /gennaio /2013 17:17

Pensavate che una GPU (Graphic Process Unit) potente servisse solo per far girare GTA IV ad alta definizione? Niente di più sbagliato: nelle appliccazioni di tutti i giorni la necessità di elaborare enormi quantità di dati non è molto sentita e una CPU Quad Core di ultima generazione è più che sufficiente per un utente che si diletta con l'editing video.

http://www.keremcaliskan.com/wp-content/uploads/2011/01/CPU-GPU-Structures1.png

Ma negli utilizzi scientifici spesso e volentieri per risolvere un problema di medie dimensioni occorre sfruttare al massimo delle proprie capacità decine (a volte centinaia) di processori. Perchè non provare a sfruttare la potenza delle schede grafiche di ultima generazione anche nel calcolo scientifico?

E' la stessa domanda che si sono posti i fautori del GPGPU (General Purpose computing on GPU), il ramo dell'informatica che studia le applicazioni della tecnologia delle schede grafiche per usi scientifici.

Il tutto si basa su una considerazione piuttosto banale: una GPU è un microprocessore specializzato nell'elaborazione di immagini; le GPU di ultima generazione sono multi-core ai massimi livelli, nel senso che contengono non 2-4 core, ma migliaia dal momento che un singolo shader può essere equiparato a un processore e che tutti gli shader lavorano in parallelo nativamente.

Partendo da questo dato di fatto pensare a un modo per sfruttare tutta questa potenza in modo non ludico è stato un passo naturale per gli studiosi, sempre alla ricerca di tecnologie adatte a risolvere problemi complessi in tempi ridotti. 

Ad esempio un sistema basato su 25 GPU AMD è stato utilizzato per il crack delle password complesse, ma non è l'unico campo in cui si può utilizzare: nell'ambito della ricerca scientifica legata alla fisica delle particelle sono molti gli esperimenti basati sul GPGPU. 

Ma come scrivere software in grado di fornire input, farlo elaborare e leggere l'output di una GPU? il problema non è banale in quanto nell'architettura quest'ultima è molto diversa da una CPU: i dati vanno prima inseriti in una texture, che poi sarà campionata dagli shaders.

I due progetti migliori riguardo al GPGPU sono (e non poteva essere altrimenti) di ATI e NVIDIA: il primo, detto architettura CTM (Close To Metal) utilizza una sorta di linguaggio Assembly e pur essendo più performante è meno intuitivo rispetto a quello basato su architettura CUDA (Compute Unified Device Architecture) che utilizza invece un linguaggio derivato dal C++ ed ha il vantaggio di essere più portabile. 

Per ulteriori informazioni potete dare uno sguardo al sito di riferimento italiano  

Condividi post

Repost 0
Published by informaticamente - in Scienza
scrivi un commento

commenti