Login

Benvenuto! Accedi o registrati.
Marzo 11, 2010, 06:50:29 am
Nome utente: Password:
Accesso con nome utente, password e durata della sessione

Dimenticato la password?

Ultimi messaggi

Sito personale
By: Gianmarco Leone
Marzo 10, 2010, 09:56:18 pm

Indie Fund
By: Stefano Gualeni
Marzo 10, 2010, 08:39:57 pm

"Infinity Ward ...
By: Valerio Bonfatti
Marzo 09, 2010, 09:22:08 am

seconda parte dell'a...
By: Gianmarco Leone
Marzo 08, 2010, 01:40:23 pm

Fanno male..
By: Manuele Bonanno
Marzo 08, 2010, 11:28:20 am

GI in 99 lines
By: Davide Pasca
Marzo 07, 2010, 05:17:52 am

Buon pomeriggio a tu...
By: CiroContinisio
Marzo 05, 2010, 02:07:00 am

One-man games
By: CiroContinisio
Marzo 05, 2010, 02:05:43 am

gioco addictive
By: Davide Pasca
Marzo 04, 2010, 03:05:20 pm

The future of games
By: Stefano Gualeni
Marzo 03, 2010, 05:02:23 pm

CaptainRon's Modules
Forum arrow Grafica arrow Tecniche 3D e realtime arrow nvidia CUDA e global illumination nvidia CUDA e global illumination
Pagine: [1]   Vai giù
  Stampa  
Autore Discussione: nvidia CUDA e global illumination  (Letto 2505 volte)
Gerardo Verna
Bologna


Karma: +0/-0
Messaggi: 13


Mostra profilo
« inserita:: Giugno 18, 2009, 05:56:12 pm »

Salve a tutti, avrei qualche quesito da porgere.
Oggi sono andato a chiedere un argomento per la tesi della specialistica di ingegneria informatica e tra le proposte c'è lo sviluppo in ambiente CUDA di un modello di illuminazione globale per superfici implicite ottenute dalla ricostruzione di dati da scanner 3D.
Tralasciando il discorso delle superfici implicite, qualcuno ha per caso messo le mani sull'architettura CUDA di nvidia?
Se si, cosa ve ne pare?
Ha per caso qualcosa a che vedere con PhysX?
Esiste qualcosa di simile per il concorrente AMD/ATI?
Saluti

GeR
Registrato
Francesco Banterle
Arup, London


Karma: +11/-1
Messaggi: 1365



Mostra profilo WWW
« Risposta #1 inserita:: Giugno 18, 2009, 06:04:05 pm »

CUDA e' molto vincente. Ha alcuni problemi tipo a volte puo' capitare che ci siano dei problemi dovuti al compilatore e non al codice scritto. Tuttavia, migliora ogni giorno sempre di piu'.
Ovviamente si deve cambiare un po' la mentalita' nello scrivere algoritmi, visto il parallelismo elevato e alcuni limiti.

PhysX e' stato implementato su CUDA se non sbaglio.

AMD/ATI ha un'API chiamata Stream:
http://www.amd.com/US/PRODUCTS/TECHNOLOGIES/STREAM-TECHNOLOGY/Pages/stream-technology.aspx

Ma non ha molto successo, almeno fino ad ora.

Microsoft fara' una cosa simile a CUDA, i Compute Shaders in DirectX11.

Per quanto riguarda uno standard esiste OpenCL che ha una visione piu' ampia; computazioni parallele di CPU e GPU:
http://www.khronos.org/opencl/
« Ultima modifica: Giugno 18, 2009, 06:11:46 pm da Francesco Banterle » Registrato

"Sometimes life hits you in the head with a brick. Don't lose faith."

The Stanford Speech.

http://www.banterle.com/Francesco
Gerardo Verna
Bologna


Karma: +0/-0
Messaggi: 13


Mostra profilo
« Risposta #2 inserita:: Giugno 18, 2009, 06:27:03 pm »

Grazie per le risposte tempestive!
effettivamente leggendo un pò in giro mi sembrava molto interessante, ma non sentendone parlare particolarmente pensavo che non avesse molto successo.
Insomma una figata Very Happy
L'unica sfiga è che qualche mese fa ho comprato una scheda video ATI Sad
Registrato
Gerardo Verna
Bologna


Karma: +0/-0
Messaggi: 13


Mostra profilo
« Risposta #3 inserita:: Giugno 18, 2009, 06:48:15 pm »

Sembra molto interessante anche OpenCL che a quanto scritto riesce a gestire un sacco di architetture eterogenee.
L'unica cosa è che sono alla versione 1.0 contro la 2.2 di CUDA e non vorrei che uscissero fuori un sacco di bug.
Per caso qualcuno lo ha usato?
Registrato
Antonio Martini
SCEE - London


Karma: +43/-23
Messaggi: 1802



Mostra profilo
« Risposta #4 inserita:: Giugno 18, 2009, 08:18:47 pm »

CUDA e' molto vincente. Ha alcuni problemi tipo a volte puo' capitare che ci siano dei problemi dovuti al compilatore e non al codice scritto. Tuttavia, migliora ogni giorno sempre di piu'.
Ovviamente si deve cambiare un po' la mentalita' nello scrivere algoritmi, visto il parallelismo elevato e alcuni limiti.

PhysX e' stato implementato su CUDA se non sbaglio.

AMD/ATI ha un'API chiamata Stream:
http://www.amd.com/US/PRODUCTS/TECHNOLOGIES/STREAM-TECHNOLOGY/Pages/stream-technology.aspx

Ma non ha molto successo, almeno fino ad ora.

Microsoft fara' una cosa simile a CUDA, i Compute Shaders in DirectX11.

Per quanto riguarda uno standard esiste OpenCL che ha una visione piu' ampia; computazioni parallele di CPU e GPU:
http://www.khronos.org/opencl/

PhysX e' stato portato su CUDA ovviamente non per scelta dato che NVidia si e' comprata quelli che l'hanno scritto dopo che Intel si compro' Havok.

ciao,
Antonio
Registrato
Angelo Theodorou
Internship at Raylight, Napoli


Karma: +1/-0
Messaggi: 27



Mostra profilo WWW
« Risposta #5 inserita:: Giugno 18, 2009, 10:05:50 pm »

Oggi sono andato a chiedere un argomento per la tesi della specialistica di ingegneria informatica e tra le proposte c'è lo sviluppo in ambiente CUDA di un modello di illuminazione globale per superfici implicite ottenute dalla ricostruzione di dati da scanner 3D.
Ma solo da noi nessun professore/ricercatore/assistente era a conoscenza che una GPU ha da diversi anni una grande valenza nel calcolo scientifico? Very Happy
Registrato

My Site | My Blog | My Vimeo videos
All problems in computer graphics can be solved with a matrix inversion. - James Blinn
Francesco Banterle
Arup, London


Karma: +11/-1
Messaggi: 1365



Mostra profilo WWW
« Risposta #6 inserita:: Giugno 18, 2009, 10:13:00 pm »

Non ho usato CUDA 2.2 perche' ho la GeForce 8800GTX, a breve dovrei prendere una GT. Fino ad allora ignoro il 2.2. Smile
La versione 1.0 l'ho solo usata per vedere come funziona il linguaggio con qualche kernel semplice, cose avanzate le devo ancora vederle. Se usi CUDA ti consiglio Thurst, che agevola di molto la scrittura del codice:
http://code.google.com/p/thrust/
Registrato

"Sometimes life hits you in the head with a brick. Don't lose faith."

The Stanford Speech.

http://www.banterle.com/Francesco
Gerardo Verna
Bologna


Karma: +0/-0
Messaggi: 13


Mostra profilo
« Risposta #7 inserita:: Giugno 19, 2009, 12:08:52 am »

Oggi sono andato a chiedere un argomento per la tesi della specialistica di ingegneria informatica e tra le proposte c'è lo sviluppo in ambiente CUDA di un modello di illuminazione globale per superfici implicite ottenute dalla ricostruzione di dati da scanner 3D.
Ma solo da noi nessun professore/ricercatore/assistente era a conoscenza che una GPU ha da diversi anni una grande valenza nel calcolo scientifico? Very Happy
Non illuderti la professoressa a cui mi sono rivolto teneva il corso di metodi numerici per la grafica che era un esame OPZIONALE e che contava, oltre a me, piu o meno solo altre 6 persone (contro i circa 100 degli altri corsi).
In compenso non ho mai sentito neppure nominare il termine GPU dal prof di calcolatori elettronici che è pure considerato uno cazzuto.
Perciò penso sia una eccezione  Sad
Registrato
Davide Pasca
SE, Tokyo


Karma: +63/-39
Messaggi: 1430



Mostra profilo WWW
« Risposta #8 inserita:: Giugno 19, 2009, 04:28:39 am »

..ho un collega che sta facendo un renderer molto cazzuto in CUDA. Personalmente non ho avuto occasione al lavoro, mentre a casa anche io sono finito con una ATI 8(
Vorrei provare OpenCL, ma ancora non c'e' una release pubblica.

E poi, Marco Salvi insegna che presto dovrebbe esserci anche Larrabee.. che dovrebbe essere molto piu' semplice da programmare (si puo' usare direttamente il C++ con un compilatore Intel).

Al livello individuale ho scaricato la prototype library dell'instruction set di Larrabee ed ho implementato un generico VectorN (in fondo al file, dove dice "512 bit 16-way float SIMD") ..molto semplice per chi abbia gia' usato SSE.

..questo ovviamente riguarda il parallelismo instruction-level.. mentre per il task-level le opzioni sono aperte. Il che e' anche un po un male.. perche' almeno CUDA impone una certa rigidita' necessaria per la GPU.. ma probabilmente anche spesso performante su Larrabee.
C'e' molto dibattito tra chi dice che NVidia/PS3 fanno bene ad essere rigide con il programmatore, mentre c'e' chi dice che e' meglio dare piu' flessibilita' per incitare allo sviluppo di algoritmi piu' complessi.. al costo di doversi gestire il parallelismo un po piu' a basso livello, o con qualche libreria magica.

Ma la cosa piu' importante alla fine e' la gestione della memoria.. ed ho paura che per ora non c'e' GPU/GPGPU che tenga.. tocca sempre smanettare al livello di CPU per allocare risorse, uploadare dati, etc.

ole'
« Ultima modifica: Giugno 19, 2009, 04:30:11 am da Davide Pasca » Registrato

"Mi perdono di aver parlato cosi' perche' io sono un povero ignorante" - M.Magnotta
http://kazzuya.com
http://v5.kazzuya.com
http://tokyoclubbers.com
Francesco Banterle
Arup, London


Karma: +11/-1
Messaggi: 1365



Mostra profilo WWW
« Risposta #9 inserita:: Giugno 19, 2009, 11:17:38 am »

Gestire la memoria e' la vera bestia nera nel GPGPU, sia che tu usi CUDA, Larrabee, OpenCL, Stream, Compute Shaders, D3D Classico, e OpenGL. La banda e' quella che e' alla fin fine...

Si possono implementare delle cache, il problema che sono a mano... Avevo fatto da revisore un paper sul rendering fatto in CUDA che per fare tutta una serie di calcoli copiava nei registri temporanei dei thread blocchi interi di geometria. Il problema e' che poi devi capire, in modo un po' empirico la grandezza dei blocchi da copiare. Questo dipende dalla scheda video (processore e memoria), dall'istanza del problema, e mille altre cose.
Registrato

"Sometimes life hits you in the head with a brick. Don't lose faith."

The Stanford Speech.

http://www.banterle.com/Francesco
Marco Salvi
Intel - San Francisco


Karma: +8/-8
Messaggi: 658



Mostra profilo
« Risposta #10 inserita:: Giugno 20, 2009, 01:30:14 am »

Volendo pure su CUDA si puo' in parte bypassare lo scheduling automatico dei threads avendo un certo un numero di threads permanenti che controllano che lavoro c'e' da fare e chiamano questa o quella funzione (vedi appendix A di questo paper: http://www.tml.tkk.fi/~timo/publications/aila2009hpg_paper.pdf).

LRB sara' ovviamente molto piu' flessibile, una volta che hai in mano un compilatore e qualche libreria poi fai quello che ti pare visto che hai a disposizione un sacco di core general purpose. Questo non vuol dire che programming models come quelli di CUDA o OpenCL spariranno, anzi..
Registrato

Isn't it enough to see that a garden is beautiful without having to believe that there are fairies at the bottom of it too? [Douglas Adams] [my blog]
Francesco Banterle
Arup, London


Karma: +11/-1
Messaggi: 1365



Mostra profilo WWW
« Risposta #11 inserita:: Giugno 21, 2009, 11:35:28 am »

Avevo gia' letto quell'articolo, ed era interessante non tanto per il solito "super raytracing", ma per l'uso di CUDA.
Registrato

"Sometimes life hits you in the head with a brick. Don't lose faith."

The Stanford Speech.

http://www.banterle.com/Francesco
Pagine: [1]   Vai su
  Stampa  
 
Vai a:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.4 | SMF © 2006-2007, Simple Machines LLC XHTML 1.0 valido! CSS valido!
Pagina creata in 0.253 secondi con 20 interrogazioni al database.