MSI GeForce GTX 275 Twin Frozr OC

Indice articoli



Tecnologia CUDA Parallel Processing:

La tecnologia NVIDIA CUDA è il solo ambiente in linguaggio "C" che permette a programmatori e sviluppatori di programmare applicazioni software in grado di risolvere i problemi di calcolo più impegnativi riducendo nettamente il tempo necessario grazie alla potenza di elaborazione in parallelo multi-core delle GPU.

I prodotti compatibili con NVIDIA CUDA possono aiutare ad accelerare le operazioni più impegnative, per esempio, codifica audio e video, prospezione petrolchimica, progettazione di prodotti, imaging medico e ricerca scientifica, solo per citare le più eclatanti. Molti programmi CUDA richiedono almeno 256 MB di memoria residenti sulla GPU.

Nei prossimi mesi saranno rilasciati applicativi commerciali che supporteranno questa tecnologia, primi fra tutti Adobe Photoshop CS4 e Badaboom Media Converter.

Ricordiamo che già attualmente la tecnologia CUDA riesce ad accelerare programmi come GPUGRID. Il team del progetto PS3GRID ha annunciato il supporto per le GPU nVidia con BOINC. Nasce così GPUGRID, il primo progetto BOINC per GPU. GPUGRID si propone di creare una potente infrastruttura per le simulazioni biomolecolari sfruttando oltre alla potenza delle PS3, anche la potenza delle GPU.

Il settore del HIGH Performance Computing, è continua espansione e NVIDIA vuole entrare in questo mercato con una soluzione matura e facile da implementare; i maggiori competitor sono i cluster a basso costo x86, ma il rapporto costi prestazioni è nettamente a favore della soluzione NVIDIA. Per quanto riguarda la fascia più alta del mercato, IBM, SUN e Cray sono sempre ai primi posti tra le scelte delle maggiori aziende.

Riassumendo, con la nuova tecnologia CUDA abbiamo:

  • Linguaggio C standard per lo sviluppo di applicazioni in parallelo sulle GPU
  • Librerie numeriche standard per FFT (Fast Fourier Transform) e BLAS (Basic Linear Algebra Subroutines)
  • Driver CUDA dedicato per l'elaborazione con un percorso di trasferimento dati velocizzato tra GPU e CPU
  • Il driver CUDA è interoperabile con i driver grafici OpenGL e DirectX
  • Supporto per i sistemi operativi Linux a 32/64 bit e Windows XP a 32/64 bit

Attualmente sono molto pochi i programmi che sfruttano a pieno le potenzialità di CUDA. Siamo sicuri, che con il tempo il progetto portato avanti da Nvidia riserverà diverse sorprese interessanti.

nVidia PhysX:

Dopo la recente acquisizione di Ageia da parte di NVIDIA, la casa californiana, ha deciso di integrare attraverso la tecnologia CUDA, tutte le funzionalità delle PPU (unità di elaborazione della fisica) all'interno della scheda video GTX 200 . Attualmente sono disponibili i driver per il pieno supporto di queste nuove librerie.

NVIDIA ha ufficialmente annunciato che i giochi già esistenti che utilizzano l'SDK Ageia potranno beneficiare della accelerazione fisica.

La tecnologia PhysX offre un incremento nella potenza di elaborazione della fisica virtuale e porta i giochi ad ottenere un maggior realismo grazie alla possibilità di creare ambienti ricchi e coinvolgenti, dotato di funzionalità quali:

  • Esplosioni che provocano la comparsa di nubi di polvere e detriti;
  • Personaggi con geometrie complesse e dotate di giunture per rendere più verosimili; movimenti e interazioni;
  • Nuove e spettacolari armi dotate di effetti speciali davvero straordinari;
  • Tessuti che si tendono e si strappano in modo naturale;
  • Fumo e nebbia densi che creano volute attorno agli oggetti in movimento.

Attualmente sono veramente molto pochi i giochi che sfruttano la PhysX di Nvidia. Il nuovo benchmark di Futuremark , ovvero il "3DMark Vantage ", sfrutta le librerie della PhysX., apportando benefici tangibili. Sicuramente in un futuro prossimo, diverse case produttrici di giochi decideranno di implementare queste nuove funzionalità.

FSAA:

Il FSAA che significa " Full Scene AntiAliasing ".Rappresenta un compromesso tra qualità e "peso" dei calcoli. Il FSAA non agisce solo sui bordi dei modelli renderizzati, ma sull'intera immagine (da cui Full Scene).
Per ottenere un buon FSAA è necessario renderizzare (e mantenere in memoria) un certo numero di versioni della stessa immagine. Maggiore sarà il numero di tali versioni e migliore sarà la qualità del FSAA.
Le versioni dell'immagine vengono generati effettuando delle minime variazioni (Jitter) della visuale corrente. Il valore minimo per il FSAA è costituito da due samples (AA 2x), mentre già con quattro varianti si ottiene un ottimo risultato (AA 4x). Per generare il FSAA è necessario dalle due alle quattro volte il tempo necessario per un rendering senza AntiAliasing. Il FSAA consente risultati comparabili al TEAA come resa visuale, ma richiede una gran quantità di memoria per stoccare le diverse versioni dell'immagine.
Tale tecnica è quindi attuabile su sistemi dotati di molta memoria video.
In sintesi, i vantaggi del FSAAsono nel basso sfruttamento della CPU e nella buona qualità visiva.
Il principale aspetto negativo consiste nella necessità di grandi quantitativi di memoria video.

La vga è compatibile con le librerie Microsoft DirectX 10.0 e Shader Model 4.0.

Ricordiamo che le DirectX 10 sono usufruibili solo con il nuovo sistema operativo Microsoft "Windows Vista".

Di recente, Microsoft ha rilasciato per il suo nuovo sistema "Windows Vista" il Service pack 1.

Tre le tente novità introdotte dal Service pack 1, troviamo l'aggiornamento delle librerie Microsoft DirectX 10 in 10.1.

Nvidia con la GeForce GTX 280 non offre alcun supporto alle nuove librerie Microsoft DirectX 10.1

Le Direct3D 10.1 sono pienamente compatibili con la versione 10.

Le Direct3D 10.1, derivano direttamente dalle Direct3D 10, e ne aggiungono alcune caratteristiche.

Il passaggio alle Direct3D 10 ha portato molte novità, ma come spesso accade in queste situazioni, le nuove API erano affette da alcuni errori. La versione 10.1 è una sorta di aggiornamento che corregge i problemi ed elimina alcune restrizioni.

Tutti i miglioramenti possono essere riassunti in tre categorie:

  • Rigorose specifiche per limitare le discrepanze tra implementazioni multiple.
  • Una manciata di nuove caratteristiche
  • Maggiore qualità e precisione di rendering e antialiasing

Ora è obbligatorio supportare il filtraggio texture FP32, mentre nella versione 10 era solo opzionale.

E' obbligatorio anche il blending integer a 16 bit.

Le Direct3D 10 introducono il "Cube Map Arrays". Con le Direct3D 10, Microsoft ha introdotto i Texture Arrays, tabelle di texture che possono essere indicizzate direttamente negli shader. I Texture Arrays ricordano le Texture 3D, in circolazione da molto tempo, ma praticamente il loro comportamento è molto differente. Quando si accede a un elemento delle texture 3D, viene applicato ai vari layer un filtraggio, comportamento normale poiché una texture 3D è caratterizzata da un volume. Diversamente, le texture presenti nella tabella non hanno nessun nesso tra loro. Conseguentemente, non c'è alcun filtraggio tra gli elementi limitrofi. Inoltre, quando si usa il mipmapping, una texture 3D è divisa in 2 secondo le 3 dimensioni, mentre con le texture arrays ciò non avviene: se la composizione delle varie texture vede una diminuzione delle loro dimensioni, la dimensione della tabella rimane inalterata.

Le Direct3D 10.1 generalizzano queste Texture Arrays aggiungendo il supporto alle Cube Maps, mentre fino ad ora, erano supportate solo le tabelle di texture 1D e 2D.

Ci chiediamo come mai Nvidia non abbia ancora deciso di supportare le nuove librerie Microsoft DirectX 10.1, questa mossa di fatto rallenta lo sviluppo dei giochi con queste nuove funzionalità che porterebbero senza dubbio vantaggi al consumatore finale.

Per quanto riguarda lo Shader Core, Nvidia ancora una volta, rimane fedele al vecchio Shader Model 4.0,pur sapendo che potrebbe adottare lo Shader Model 4.1

Lo Shader Model 4.1 apporta alcune novità come il Gather-4.

Per aggiornare la memoria più velocemente, questa istruzione permette di recuperare 4 elementi non filtrati da una single-channel texture con un solo texture fetch, che quindi permette un'implementazione più efficiente e personalizzati dei filtri negli shader.

Un'altra istruzione presente nello Shader Model 4.1 permette di recuperare il livello di dettaglio (mipmal level) durante un texture sampling. Microsoft ha aggiornato anche alcuni limiti, specialmente il numero di input vertex shader, passando da 16 vettori a 128 bit (4 floating point precision) a 32.

Per quanto riguarda il blending, abbiamo già menzionato il nuovo formato supportato, Int 16, ma non è l'unica novità; le Direct3D 10.1 ora permettono l'utilizzo di modalità di blending indipendenti durante rendering simultanei in più di un buffer (MRT: Multiple Render Targets).

Con le Direct3D 10.1, Microsoft ha focalizzato sulla qualità del rendering, con un occhio di riguardo all'antialiasing. Prima notizia: da ora, il supporto dell'antialiasing 4x è obbligatori per i buffer a 32 bit (RGBA8) e 64-bit (RGBA16).

Microsoft ha cercato anche di razionalizzare la gestione dell'antialiasing offrendo più controllo ai programmatori e cercando di lasciare meno libertà ai produttori di GPU. Oltre ai livelli di anti-aliasing (2x, 4x, 8x), l'utente ha accesso al transparency antialiasing per filtrare le texture alpha sia in modalità multisampling che supersampling, e ognuna di queste modalità risponde a delle specifiche dipendenti dall'hardware: CSAA, CFAA, etc. Con le Direct3D 10.1, i programmatori possono finalmente specificare se vogliono un multisampling o un supersampling, garantendogli il controllo sui sample che vengono applicati agli shader

Infine, dove le Direct3D 10 abilitano l'accesso ai sample di un buffer colori multisampled, è ora possibile fare lo stesso in un multisampled depth buffer.

Come potete intuire sono diverse le novità apportate in queste nuove istruzioni introdotte da Microsoft DirectX 10.1 e dallo Shader Model 4.1.