GPGPU: GENERAL PURPOSE COMPUTATION USING GPU
Svariati progetti ormai supportano, finalmente, le schede video, ciò significa poter elaborare i dati non più solo tramite processore ma tramite la scheda video che, per la sua natura specializzata ed estremamente paralizzata (ogni GPU ha centinaia di shader-cosi, ognuno può essere considerato un miniprocessore) ha una potenza bruta assai superiore a quella di qualsiasi processore ma, d'altro canto, può elaborare con successo (o meglio, può essere sfruttata appieno) solo con elaborazioni che sfruttino al meglio l'elevata parallelizzazione delle GPU
Ok, basta con i tecnicismi e passiamo ai fatti, le schede video sono nate per i videogiochi, per l'elaborazione del 3d dei giochi, e in questo sono decine, centinaia, di volte superiori a qualunque processore
E ora è possibile usarle non più solo con directx e opengl per il treddì dei giochi ma anche per il macinamento.
Essendo a conti fatti un campo tutto sommato recente, apro questo thread per fare un pò di ordine su quali progetti supportano anche (o solo) le schede video e eventuali spiegazioni su come usufruirne
A causa di ciò, e del fatto che non esiste uno standard unico di programmazione a cui ATI e NVIDIA devono attenersi, il supporto a una marca non è indice di supporto dell'altra, ovvero, se un progetto ha un client programmato in CUDA, quindi per NVIDIA, non è affatto detto (anzi, di solito non è proprio) che ce ne sia uno in CAL o altro per le ATI
Ogni progetto se vuole supportare le schede video deve programmare un client per loro, per le NVIDIA deve programmarlo in CUDA, per le ATI in CAL (o opencl o brook? boh)
BOINC e le schede video
Ad oggi (luglio '09) BOINC supporta ufficialmente solo le Nvidia. Se notate, andando sotto Messages vi dirà qualcosa su eventuali "CUDA devices" (ovvero schede video nvidia) rilevate. Che significa questo? Che BOINC ad oggi è in grado di differenziare tra WU destinate alla CPU e WU destinate alle NVIDIA, visto che entrambe possono essere elaborate contemporaneamente, distinguerle è necessario.
Le ATI non sono ancora supportate ufficialmente. Ciò non implica niente di grave, solo talvolta qualche cosa in più da fare
Quali progetti supportano le schede video?
Eccovi un sommario con anche i progetti che supportano la Playstation 3 (di cui comunque non si parla qua)
ATI ONLY:
NVIDIA:
SETI@Home
AQUA@Home
GPUGRID
ATI + NVIDIA
Folding@Home
Collatz Conjecture
Milkyway@Home
DNETC@Home
World Community Grid
PS3:
Folding@Home
Primegrid
-Folding@home
http://folding.stanford.edu/
Folding@home NON è un progetto BOINC, quindi casomai vogliate parteciparvi sappiate che dovrete installare il suo client (non che sia un problema)
E ora un pò di storia.
Questo progetto è stato il primo a supportare le schede video nell'elaborazione delle simulazioni del Folding proteico (indovinate perchè si chiama Folding@home? )nella storia del calcolo distribuito. Il primo client GPU della storia funzionava solo sulle ATI della serie 18xx e 19xx ed era programmato in DirectX 9. Non chiedetemi come le DX 9 possano macinare dati scientifici ma è possibile... Ovviamente c'erano tutti i problemi delle DX, uniti al fatto che mentre in un videogioco se si esce dall'ambiente DX per un pò non succede niente (esempio quando si sbatte il gioco in icona), qua sistematicamente si mandava la WU a quel paese. Il tutto però funzionava... Nella storia di Folding questo client è definito come GPU1, ora è morto e sepolto.
Successivamente nacque il GPU2, programmato su CAL, il linguaggio di programmazione GPGPU della ATI e gira su tutte le schede video che lo supportano, quindi dalla serie 2xxx in poi fino ad oggi, tranquillamente e senza problemi. Essendo un linguaggio fatto apposta per il GPGPU risolve tutti i problemi delle directx
Finora la cosa era ATI only, successivamente sbucò anche il client NVIDIA, programmato in CUDA, che gira su tutte le schede che supportano CUDA 1, quindi dalla serie 8 (quindi 8800&co) fino ad oggi.
A causa del fatto che oggettivamente in CUDA si programma meglio e di alcune particolarità dell'architettura NVIDIA, c'è da dire che le NVIDIA macinano meglio su Folding (tradotto: macinano più veloce)
Da notare che siccome è stato il primo, è quello che al momento ha i client GPU più stabili e che danno meno proglemi
Passiamo al resto
Folding ad oggi supporta sia ATI che NVIDIA
ATI: tutte le schede dalla serie 2xxx in poi, scaricate il client GPU, accertatevi di avere i driver aggiornati e bon
NVIDIA: tutte le schede dalla serie 8 in poi, come sopra
Tutti i seguenti progetti saranno progetti BOINC (Folding è l'unica eccezione)
-GPUGRID.net
http://www.gpugrid.net/GPUGRID.net è un progetto nato appositamente per eseguire i suoi calcoli su GPU e su Playstation 3
Questo progetto supporta solo le NVIDIA, e non tutte. Il client è compilato in CUDA 2.0 quindi sono supportate solo le schede con supporto 1.1
Eccovi la lista
Schede desktop:
Schede mobile:
Altre schede:
Tradotto: le schede in rosso non lo supportano, quelle in nero lo supportano però, essendo vecchiotte, macinano troppo lentamente il che significa che le WU possono uscire dalla deadline un pò troppo facilmente. Quelle i[COLOR=Black]n [COLOR=SeaGreen]verde [COLOR=Black]tutto apposto.Cards that are marked red will not run the projects application.
Cards in black are technically able to run these applications, but are to slow to finish the work units in time or would need continuous babysitting on a multicore system. These cards are hence not recommended by the project.
Green cards will run the current applications without problems, if there is any please consult the forum...
Per partecipare, niente di speciale, agganciatevi a questo progetto e le sue WU verranno direttamente macinate dalla scheda video.
Questo progetto NON supporta le ATI (nè ci sono previsioni che le supporti in breve...)
-MilkyWay@home
http://milkyway.cs.rpi.edu/milkyway/
Questo progetto studia la Via Lattea, ovvero la nostra galassia, dove abitiamo.
MilkyWay@home supporta le ATI, la serie 38xx, la serie 48xx, la serie 5xx e le Firestream 9200 e le NVIDIA, quelle con supporto da CUDA 1.3 in poi, però SOLO quelle che hanno il supporto alla doppia precisione (nel caso delle ATI per esempio le 5850 si, le 5770 no).
Agganciatevi, assicuratevi che sul sito sia segnato di sfruttar la scheda video e macinerete di GPU su Milkyway
Prestazioni? Considerate che le WU che macinate sono le stesse per tutti i partecipanti di milkyway, il client GPU le macina tipo cento volte e passa più velocemente, mentre con un processore farete punti ed avrete un RAC paragonabile a quello di qualsiasi altro progetto...
-Collatz Conjecture@Home
http://boinc.thesonntags.com/collatz/
Questo progetto si occupa di studiare appunto la famosa Collatz Conjecture, detta anche 3x+1 o HOTPO (half or triple plus one) macinando i numeri e vedendo com'è la situazione man mano che si prosegue.
Come per Milkyway@Home questo progetto supporta le NVIDIA e le ATI
Per sfruttarle, al solito, basta agganciarsi al progetto e assicurarsi che nelle preferenze sul sito ci sia segnato l'uso delle schede video