hwProject

 
  • Aumenta dimensione caratteri
  • Dimensione caratteri predefinita
  • Diminuisci dimensione caratteri

Nvidia Cuda: prova su strada

E-mail Stampa
Indice
Nvidia Cuda: prova su strada
MSI 9800 GT
Configurazione
Suite benchmark
Risultati
Risultati - segue
Conclusioni
Tutte le pagine

alt

Un valore aggiunto per le GeForce?

CUDA (Compute Unified Device Architecture) è una architettura di calcolo parallelo sviluppata da Nvidia (utilizzabile nativamente in C, openCL e DX11 Compute, ma con wrapper di terze parti per Fortran, Java e Python) che permette di sfruttare la potenza delle VGA basate su G8x, G9x e GT2xx in modalità GPGPU (General-Purpose Computing on Graphics Processing Units) - utilizzando, quindi, la GPU per elaborazioni tradizionalmente effettuate dalla CPU e che esulano dal classico rendering di scene 3D in ambito videoludico. Nel corso degli anni, infatti, il numero di operazioni in Floating Point al secondo (FLOPS, FLoating point Operations Per Second) eseguibili da una GPU è cresciuto a dismisura, tantochè oggi assistiamo ad un netto "primato" da parte delle GPU sulle CPU.

alt

Fonte: ixbtlabs.com

L'idea degli ingegneri Nvidia è pertanto quella di sfruttare l'elevata potenza di calcolo della GPU in ambiti diversi dal videogaming; la casa di Santa Clara punta molto su questa tecnologia, considerata come un valore aggiunto interessante per l'utente finale. Gli ambiti in cui è possibile ricorrere al GPGPU sono estremamente vari, come simulazioni di dinamica dei fluidi, calcolo distribuito, creazione di contenuti digitali, applicazioni grafiche come il Ray Tracing.

La prima versione di CUDA (1.0) è stata introdotta nel giugno 2007 con i driver 162.01; la VGA compatibili all'epoca erano le Quadro FX 5600 e Quadro FX 4600, nonché le GeForce 8800 Ultra, 8600 GTS/GT e 8500 GT. L'attuale versione di CUDA (2.1) risale al novembre 2008 (driver 181.20); oltre al supporto alle GPU GT2xx, la casa di Santa Clara ha abilitato l'utilizzo di questa tecnologia anche su Tesla, una linea di prodotti (quali schede aggiuntive o veri e propri Rack per sistemi server) specificatamente realizzati per l'elaborazione di calcoli paralleli. Ma che vantaggi comporta CUDA per gli utenti consumer? Con questi test HwProject.net si propone di prendere in esame e di "misurare" l'aumento di prestazioni garantite in scenari domestici dalla tecnologia Nvidia.

 


La VGA utilizzata in questa recensione è una MSI N9800GT-T2D512 overclockata di fabbrica; le frequenze sono infatti pari a 660 MHz per il core, 1625 MHz per gli shaders e 1900 MHz per le memorie GDDR3. Grazie a 512 MB di RAM onboard e al bus ampio 256-bit la 9800 GT la scheda video è in grado di garantire un'ampiezza di banda paria a 60.8 GB/s, sufficienti per un'esperienza di gioco fluida anche con filtraggi attivati. La sigla della GPU è G92-280-B1; si tratta di un chip basato sul processo produttivo 55nm, il quale implementa 112 Shaders Units e 16 ROPs.

Il produttore ha optato per un dissipatore non standard, dotato di quattro heatpipes in rame e di un corpo radiante in alluminio. Il compito di disperdere il calore spetta ad una ventola da 80mm di diametro, che durante l'intera sessione di test si è dimostrata sempre silenziosa. Cosa molto importante, una volta smontato il dissipatore abbiamo potuto notare come il contatto fra il chip e lo stesso fosse ottimale.

Per quanto riguarda gli outputs, troviamo due DVI e un S-Video; è inoltre possibile sfruttare gli standard HDMI (tramite adattatore DVI to HDMI) e D-SUB (tramite adattatore DVI to D-Sub).


La configurazione utilizzata è la seguente:

  • Asus Commando;
  • Intel Core 2 Quad Q6600;
  • 2x2GB Supertalent Pc640;
  • MSI 9800 GT;
  • Sirtec 1200;
  • Hitachi HDP7250032 320G;
  • Microsoft Windows Vista Service Pack 1;
  • Driver Nvidia 181.22 (gli ultimi al momento di redarre la recensione).

La suite di benchmark comprende TMPGEnc 4.0 XPress, Power Director 7 e Ascalaph Liquid GPU 1.2.1; di seguito è riportata una breve descrizione per ciascuno dei software in questione.


TMPGEnc 4.0 XPress è un software che permette di codificare file video in moltissimi formati, come DivX, AVI, QuickTime, MPEG 4-ISO, H.264, DVD-Video, DVD-VR e Blu-ray Disc. Possiamo inoltre montare il nostro lavoro tagliando le scene indesiderate, deinterlacciare e ridimensionare (cropping) il video, aggiungere filtri per la correzione del colore o per la riduzione del rumore. TMPGEnc 4.0 XPress supporta CUDA nelle operazioni di filtraggio e di codifica del file video; andiamo a vedere se la tecnologia Nvidia garantisce benefici tangibili.

alt

Durante la fase di codifica è possibile vedere il carico di lavoro di Cpu e Gpu (CUDA)

Power Director 7 è un software di video editing che permette di creare video in alta definizione con supporto ai formati AVCHD, MPEG-2 HD, H.264 e WMV-HD. Il software supporta CUDA in fase di codifica di video HD nel formato H.264; si tratta tuttavia di un ambito diverso rispetto a TMPGEnc 4.0 XPress: Power Director 7 sfrutta infatti le VGA Nvidia durante l'elaborazione di effetti video, come Sfocatura Gauss, Sfocatura Radiale, Raggio Luce, Penna, Astrazione, Caleidoscopio, Bordo Colorato, Cambio Colore, Pittura Colore e Bagliore. TMPGEnc 4.0 XPress invece si avvale della potenza di calcolo delle attuali GPU durante operazioni più "comuni", quali la conversione del file video (da un formato all'altro), il deinterlacciamento o il cropping (l'eliminazione delle bande nere esterne all'immagine vera e propria, in soldoni).

alt

Gli effetti caratterizzati dal piccolo logo Nvidia supportano CUDA

Ascalaph Liquid GPU

Ascalaph Designer è un software che permette di costruire modelli molecolari e di ruotarli in un ambiente tridimensionale. Ascalaph Liquid GPU non è altro che una versione di Ascalaph Designer in grado di sfruttare le capacità computazionali delle VGA Nvidia tramite la tecnologia CUDA 2.0.

alt

Sul sito nvidia.com a quest'indirizzo è possibile trovare un vasto elenco di software compatibili con CUDA.

La scelta della suite di benchmark per questa recensione ha cercato di soddisfare due criteri: il primo (e fondamentale) consiste nella scelta di programmi in grado di operare nello stesso scenario con e senza l'ausilio della tecnologia CUDA. In altre parole, il medesimo test è stato eseguito a parità di condizioni; l'unica variazione è dunque quella relativa all'utilizzo/non utilizzo di CUDA (la nostra variabile indipendente). Si tratta di un prerequisito fondamentale per garantire l'oggettività e la replicabilità dei risultati.

In secondo luogo, abbiamo cercato di testare programmi il cui utilizzo sia frequente nel contesto domestico; ci è sembrato che il video editing e la conversione audio/video potessero fare al caso nostro. L'eccezione è costituita da Ascalaph Liquid GPU: eravamo infatti curiosi di valutare l'utilità di CUDA nel calcolo scientifico, ovvero l'ambito per cui inizialmente tale tecnologia è stata sviluppata.

 

alt

Abbiamo deciso di ricreare due diverse situazioni di utilizzo: l'intera suite di benchmark è stata eseguita sia con quattro core che con due soli core attivi sulla CPU. In questo modo abbiamo potuto simulare una configurazione dual core oltre a quella quad core effettivamente in nostro possesso, e vedere se l'impatto di CUDA sulle performance variasse al mutare della CPU (quad core vs. dual core).

Prima di iniziare i benchmark avevamo infatti due ipotesi divergenti; era probabile che l'impatto di CUDA sulle prestazioni fosse lineare, ovvero tale da garantire un aumento di prestazioni all'interno dello stesso scenario (meglio con CUDA che senza) ma non da determinare un boost prestazionale fra gli scenari (meglio quad core che il dual core, a prescindere da CUDA). Era altresì possibile che la configurazione dual core traesse maggiore beneficio dall'utilizzo di CUDA, visto che una quantità maggiore di computazioni sarebbe stata allocata sulla GPU (e non sugli ulteriori due core), la cui velocità è nettamente superiore. Incuriositi e con molti interrogativi ci accingiamo dunque ad iniziare la sessione di benchmark.


Iniziamo ora a prendere in considerazione i risultati emersi in sede di benchmarking. Per ciascun programma avremo due tipologie di grafici; nel primo sono riportati i tempi fatti segnare nei vari benchmark (in tutti i casi a valori inferiori corrispondono prestazioni superiori), distinguendo fra scenario dual core e quad core. Nel secondo grafico troviamo l'incremento (in termini percentuali) delle prestazioni con l'utilizzo di CUDA rispetto al non utilizzo della tecnologia Nvidia; in altre parole, l'utilizzo di CUDA quanto incide sulle prestazioni? Buona lettura.

Power Director 7

Per testare Power Director 7 abbiamo utilizzato il video Terminator 2: Judgment Day disponibile liberamente per il download a questo indirizzo. Si tratta di un trailer cinematografico codificato in WMV HD con risoluzione 1080p (dimensione 117MB) cui abbiamo applicato, uno per volta, i filtri messi a disposizione dal software Cyberlink.

alt

alt

Nello scenario quad core l'utilizzo di CUDA permette di ottenere buoni vantaggi in termini prestazionali; l'incremento delle prestazioni varia fra un minimo di 10,4% ed un massimo di 25,6%, a seconda del filtro applicato.

alt

alt

Nello scenario dual core non si verificano grandi sconvolgimenti, e l'incremento delle prestazioni è del tutto analogo a quanto registrato prima.

TMPGEnc 4.0 XPress

Per il test con TMPGEnc abbiamo utilizzato il filmato Big Buck Bunny scaricabile liberamente presso il sito bigbuckbunny.org e disponibile in formato DivX a questo indirizzo (licenza CC-by 3.0). Si tratta di un video in formato di incapsulamento Matroska a risoluzione 1080p, codificato in H.264 e con audio AAG 5.1 Surround, sul quale abbiamo eseguito una ricodifica servendoci del codec DivX 7: abbiamo impostato manualmente la risoluzione in 640x480, con tutti i parametri impostati su "massima qualità" (per simulare uno scenario molto impegnativo in termini di carico per la CPU). Abbiamo poi applicato (su "largest") i filtri Video Noise Reduction, Audio Noise Reduction e il deinterlacciamento. Di seguito i risultati.

alt

alt

In questo caso notiamo una situazione molto favorevole a CUDA. Nello scenario quad core notiamo come l'attivazione di CUDA comporti un miglioramento delle prestazioni pari a circa il 10%, mentre il boost prestazionale è quantificabile in quasi il 50% sulla configurazione dual core; il tempo necessario alla codifica del nostro filmato è quasi dimezzato!

Ancora, notiamo come lo scenario dual core sia in assoluto più veloce di quello quad core (con la tecnologia CUDA attiva). Si tratta di un risultato stupefacente e per certi versi contraddittorio. La risposta è da ricercarsi nel software: TMPGEnc 4.0 XPress (nel caso della configurazione quad core) sfrutta per il 74-76% i quattro core e per il 26-24% la GPU. Nello scenario dual core, invece, è la GPU ad essere utilizzata per il 73-75% circa, mentre alla CPU competono il 25-27% della computazioni. Ciò si ripercuote positivamente sulle prestazioni complessive generali del sistema. Tale risultato è dunque da attribuirsi ad una scelta "a monte" degli sviluppatori, quella di attribuire dunque la "precedenza" alla CPU.


Ascalaph Liquid GPU

In Ascalaph Liquid GPU abbiamo svolto delle computazioni su molecole di DNA; al fine di stressare il più possibile il sistema abbiamo utilizzato in un caso un'unica molecola, mentre nel secondo caso due molecole analoghe. Il nome del software non deve trarre in inganno, infatti Ascalaph Liquid GPU può servirsi sia della CPU che della GPU per effettuare le computazioni richieste.

alt

alt

Con quattro core attivi notiamo dei buoni incrementi prestazionali, compresi fra un minimo di 34,4% ed un massimo di 49,7%.

alt

alt

La situazione non sembra cambiare radicalmente con due soli core attivi: i vantaggi prestazionali sono ancora compresi fra 32,7% e 52%.

 


Prima di trarre le conclusioni di questo approfondimento su CUDA occorre fare alcune precisazioni.

In rete è possibile trovare alcuni benchmark in cui l'utilizzo della VGA tramite CUDA permette di raddoppiare o anche triplicare le prestazioni del proprio sistema. I più limitati risultati di questa recensione non devono però sorprendere; innanzitutto, non abbiamo cercato software che fossero progettati per CUDA, ma software in grado di sfruttare anche la tecnologia Nvidia. Questo ci ha permesso di valutare il boost prestazionale garantito da CUDA rispetto alle performance dello stesso software senza CUDA attivo, e quindi considerare la reale portata pratica dell'innovativa architettura. In secondo luogo, ci siamo avvalsi di software (tranne nel caso di Ascalaph Liquid GPU) utilizzabili in ambiente domestico; l'obiettivo della recensione era infatti quello di capire se la tecnologia CUDA potesse garantire un valore aggiunto per le VGA Nvidia GeForce nel mercato consumer.

Alla luce di queste riflessioni possiamo dire che CUDA ci ha positivamente impressionato; il guadagno in termini di prestazioni, sebbene limitato in alcune circostanze, in certi casi ci ha permesso di dimezzare il tempo necessario a svolgere determinate operazioni. In base alle nostre prove, ci è parso che i risultati dipendano dalle scelte fatte dagli sviluppatori del software: nel caso di TMPGEnc 4.0 XPress lo scenario dual core ha fatto segnare prestazioni migliori rispetto a quello quad core (con CUDA attivo, in entrambi i casi), mentre negli altri casi l'aumento nelle prestazioni dipendente da CUDA è stato costante, sia nello scenario dual core che quad core. Si consideri inoltre che la tecnologia CUDA è messa a disposizione gratuitamente all'utente; le uniche due condizioni sono il possesso di una VGA compatibile (lista completa a questo indirizzo) e l'aggiornamento dei driver alla versione 181.20 o successiva.

Non possiamo trascurare il fatto che Nvidia abbia scelto di portare avanti lo sviluppo di un framework proprietario - sebbene freeware e con SDK pubblica - che quindi non sarà possibile implementare su hardware di terze parti. Si tratta di una scelta che da una parte lascia un poco perplessi per la creazione di un nuovo fronte di incompatibilità nel settore, ma d'altra parte è rassicurante vedere che sia stata prevista e aggiunta la compatibilità con il framework aperto OpenCL (sviluppato da Apple, disponibile nel prossimo MacOS X 10.6 "Snow Leopard" e gestito dal Kronos Group, lo stesso di OpenGL; potenzialmente un futuro standard per Windows, Linux e MacOS) e con il prossimo framework DX11 Compute integrato in Microsoft DirectX 11, entrambi disponibili anche per le soluzioni di altri produttori (AMD tra tutti). Ci auguriamo che la compatibilità venga mantenuta quanto più completa possibile, evitando ulteriori discriminazioni tra piattaforme che sarebbero solo a discapito dell'utenza e dei programmatori.

Crediamo quindi che CUDA sia un ottimo valore aggiunto per i possessori di una VGA GeForce. Per coloro i quali sono indecisi sull'acquisto di una VGA, CUDA può rappresentare un'interessantissima opportunità, a patto di utilizzare con una certa frequenza almeno un software compatibile con questa tecnologia.

Si ringrazia MSI per il sample utilizzato in questa recensione.

Ultimo aggiornamento Lunedì 02 Marzo 2009 18:29  

Chi è online

We have 9 guests and 8 members online