GeForce Titan Z CUDA

 

GUIDA

Partiamo dal principio, cosa sono i CUDA?
NVIDIA li descrive in questo modo:

CUDA è l’architettura di elaborazione in parallelo di NVIDIA che permette netti aumenti delle prestazioni di computing grazie allo sfruttamento della potenza di calcolo delle GPU (unità di elaborazione grafica).
Sfruttando i milioni di GPU CUDA-compatibili vendute sino ad oggi, sviluppatori di software, scienziati e ricercatori stanno applicando CUDA in una vastissima gamma di settori, fra cui l’elaborazione di immagini e video, la biologia e la chimica computazionale, simulazione della fluidodinamica, ricostruzione di immagini CT, analisi sismica, ray-tracing e molto altro ancora.

Cercando di riassumere e spiegandola in termini semplici si è iniziato a parlare di CUDA quando NVIDIA ha portato le potenzialità delle proprie GPU (montate su GeForce/Quadro/Tesla) su calcoli diversi da quelli per cui erano state create, andando ad aiutare o sostituire in alcuni ambiti la CPU, ovvero il processore che fa da cuore al sistema. Questo settore di elaborazione viene chiamato GPGPU, acronimo di General Purpose Graphics Processing Unit.

L’arrivo di CUDA e delle OpenCL (la controparte OpenSource compatibili con tutte le schede video in circolazione, a differenza di CUDA creato per GPU NVIDIA) ha permesso quindi di sfruttare l’enorme potenzialità di una GPU in software solitamente gestiti esclusivamente dalla CPU. Essendo quindi un processore di elaborazione dedicato a determinate operazioni risulta essere enormemente più potente rispetto a questo ultimo, sia per l’architettura completamente diversa e sia per il fatto che nel momento in cui viene utilizzato la sua potenza viene concentrata esclusivamente sul compito in particolare, al contrario della CPU che costantemente deve gestire numerosi processi di sistema.

Tutte le GeForce superiori alla serie 8800 sono compatibili coi CUDA, ma ovviamente salendo di generazione le prestazioni aumentano esponenzialmente da modello a modello, oltre al quantitativo di RAM disponibile. Purtroppo però, per chi non ha possibilità di acquistare una Quadro/Tesla e deve rivolgersi alle GeForce, c’è stato un cambiamento di rotta abbastanza brusco dalla serie 600 in poi, NVIDIA ha infatti deciso di dividere a livello hardware le due tipologie di schede, fra gaming e professionali, andando a castrare le prime (le GeForce) sul calcolo a precisione doppia, quello interessato dai CUDA nel calcolo dei software professionali. Attualmente l’unica rimasta, capace quindi di restituire le medesime prestazioni pur avendo un prezzo “contenuto”, è la serie Titan, mentre per le restanti (serie 600/700) le prestazioni potrebbero risultare inferiori ma non così distanti in questo tipo di applicazioni (AE/Premiere Pro).

Per capire quale GPU scegliere bisogna guardare prima di tutto un dato: i CUDA core. Andiamo a vedere ad esempio le caratteristiche della GeForce Titan Black Edition (che ha la medesima GPU della Quadro K6000, a differenza della RAM dimezzata, 6GB invece che 12GB):

Caratteristiche Titan Black Edition

Come notate questa GPU ha 2880 CUDA core, il massimo attualmente, con una potenza risultante particolarmente elevata. Di conseguenza una GPU con un numero inferiore non avrà le stesse prestazioni, questo dato infatti è direttamente proporzionale alla capacità di calcolo di una scheda video NVIDIA (c’è però da puntualizzare che questa caratteristica differisce leggermente da come veniva interpretata dalle vecchie architetture, da Fermi in giù ovvero dalle GeForce 500, mentre quelle attuali le Kepler e le future possono essere considerate tutte secondo questo valore). Successivamente vengono elencati altri dati, fra questi quelli che vi consiglio di tenere in conto sono la quantità di RAM (che sia uguale o superiore a 2GB), la tipologia della stessa (la migliore al momento è la GDDR5) e l’interfaccia di memoria (consigliabile al di sopra dei 256bit).
I restanti dati solitamente vanno pari passo con quelli precedentemente elencati, nel senso che è impossibile trovare una scheda con un numero elevato di CUDA e poi un clock di base molto basso.

Bisogna anche considerare che l’utilizzo dei CUDA è molto variabile da applicazione ad applicazione, oltre al fatto che secondo i propri utilizzi questa differenza potrebbe non notarsi in modo così marcato. Per quanto riguarda le due applicazioni citate in questo articolo, After Effects e Premiere Pro, questa caratteristica viene sfruttata solamente per alcune caratteristiche in particolare: nel primo caso (AF) si attiva quando andiamo ad utilizzare il Ray-traced 3D, aiutandoci enormemente per ricreare effetti in 3D vedendo i risultati direttamente in preview; nel secondo caso (Premiere Pro) nel momento in cui si crea un nuovo progetto si seleziona nel render la voce “Mercury Playback Engine GPU Acceleration” andando a sfruttare la GPU per migliorare la renderizzazione della preview, aumentando sensibilmente la fluidità con i vari effetti attivati.

Fatta questa necessaria premessa, per riuscire ad entrare in sintonia con la propria scheda video e le vere potenzialità dei CUDA applicate a questi software, passiamo al lato pratico.

Certificare un componente hardware per le varie case sottrae un’enormità di tempo oltre che comportare un costo molto elevato, senza considerare che ogni tot mesi escono nuovi componenti che potrebbero essere solamente dei refresh di vecchie versioni già attualmente in commercio. Di conseguenza è normale che fra le schede NVIDIA supportate non siano menzionate tutte quelle commercializzate, ma solamente una piccolissima percentuale.
Non c’è quindi da aver timore nell’aggiungerla manualmente, questo perché spesso le GPU differiscono lievemente fra i vari modelli, non creando particolari complicanze al software stesso. E’ normale però che per i loro interessi, essendo software professionali, debbano garantire un funzionamento ottimale e testato, ne consegue che a fare questa modifica non potrete chiedere aiuto all’assistenza di Adobe in caso di problemi o crash eventuali. (credo di essere abbastanza certo in ogni caso che sia impossibile il verificarsi di errori).

Partiamo dal capire che scheda video abbiamo nel case, se siete utenti geek si può bypassare questo step ed andare oltre, se invece siete capitati su questo articolo per capire cosa sono i CUDA e se la vostra scheda li supporta allora seguitemi nei prossimi paragrafi.
Questa guida è realizzata su Windows ma sostanzialmente ho avuto modo di vedere che il procedimento è il medesimo su Mac, non avendone uno sotto mano dovrete cercarvi i vari file e cartelle principali dei due software in questione (che dovrebbero essere più semplici da trovare).
Il discorso driver prenderebbe un altro articolo intero, quindi do per scontato che avete su gli ultimi installati e un sistema pulito, aggiornato e ben tenuto.

Per vedere i componenti del PC in modo semplice e dettagliato viene in aiuto un semplicissimo programma: Speccy.
Potete trovarlo a questo indirizzo: http://www.filehippo.com/it/download_speccy/
Apriamolo e ci troviamo davanti questa interfaccia:

Speccy Interfaccia

Ovviamente avrete elencati i vostri componenti, come potete notare vengono anche mostrate le temperature attuali dei sensori presenti nell’hardware della vostra workstation (e farvi anche un’idea se tutto al momento è ben raffreddato).
Se proprio non avete idea di quali avete all’interno del vostro case fatevi almeno un giro fra le varie sezioni, tenete presente che questo programma è soltanto in lettura, non è possibile modificare alcun valore e fare danni al sistema.

Spostiamoci nella sezione Grafica e troveremo i dati che ci interessano, a noi serve solamente sapere come viene rilevata dal sistema col suo nome preciso, leggeremo:

Speccy Interfaccia Grafica

Decidete dove annotarvelo, se nel Notepad o scrivervelo su un foglietto, la cosa importante è riportarlo successivamente in questo modo.

 

After Effects CS6 / CC

Rechiamoci a questo indirizzo: C:\Program Files\Adobe\Adobe After Effects CS6\Support Files

Cerchiamo il file chiamato raytracer_supported_cards.txt, apriamolo ed avremo una lista di schede video NVIDIA supportate ufficialmente da Adobe.

A questo punto aggiungiamo il nome che ci siamo copiati prima, con la stessa formattazione, aumentando quindi di un’ulteriore voce l’elenco (in questo caso ho aggiunto la mia alla fine):

Lista schede CUDA

Come si può notare sono molte le schede già presenti di base, ma ne mancano la maggior parte di quelle commercializzate, per questo motivo molti avranno la necessità di aggiungere la propria.

Apriamo After Effects e nelle preferenze andiamo in Previews, nel riquadro Fast Previews clicchiamo su GPU Information, ci aprirà questa finestra:

After Effects GPU Info

Automaticamente avrà impostato il Ray-tracing nel menù a tendina su GPU, per sfruttare la vostra scheda video non dovrete fare altro che abilitare questa tecnica di render quando andrete a trasformare un layer in 3D. Nel riquadro CUDA vengono elencate alcune informazioni riguardanti la propria scheda video, nel mio caso avendone una da 2GB mi segna che al momento dell’avvio dell’applicazione ne ho liberi 1.80GB, quindi per sfruttarla maggiormente andrò a modificare il valore affianco a Texture Memory, impostandolo al massimo (nel mio caso 1.5GB), questo in base alla VRAM disponibile e a quanto volete dedicargliene.

 

Premiere Pro CS6 / CC

Il discorso è esattamente lo stesso di After Effects, rechiamoci nella cartella: C:\Program Files\Adobe\Adobe Premiere Pro CS6

Apriamo il file cuda_supported_cards.txt e aggiungiamo la nostra scheda video all’elenco di quelle già presenti.

Quando andremo a creare un nuovo progetto dovremo scegliere affianco a renderer la voce “Mercury Playback Engine GPU Acceleration”, per avere quindi una renderizzazione della preview sfruttando la potenza della nostra GPU.

 

Media Encoder e SpeedGrade CS6 / CC

Se utilizzate questi due software il discorso è il medesimo, cercate nella loro cartella il file di testo chiamato cuda_supported_cards.txt, aggiungete la vostra scheda video e automaticamente avrete la possibilità di avvantaggiarvi della potenza data dalla vostra GPU.

 

Conclusioni sui CUDA

Quindi se la vostra scheda video ha le giuste caratteristiche e di conseguenza una buona potenza, questo sistema potrebbe agevolarvi notevolmente il lavoro, riducendo le tempistiche su alcuni frangenti.
Per quanto riguarda invece la scelta della scheda video tenete anche in considerazione il fatto che per le schede NVIDIA esiste una tecnologia chiamata SLi (per le AMD una tecnologia simile viene chiamata Crossfire), ovvero la possibilità di affiancare più schede video per sommare la potenza di elaborazione. Per evitare qualsiasi problema è consigliabile sceglierle delle stesso tipo, con caratteristiche uguali, cercando quindi di evitare possibili incompatibilità con il programma. (oltre a questo bisogna essere certi che la propria scheda madre supporti lo SLi)
Schede come la Titan BE permettono uno SLi a quattro vie, in sostanza si avrà una potenza totale di 11520 CUDA core (questi ultimi si sommano, mentre attualmente la RAM della scheda video viene condivisa fra le stesse e non sommata, il sistema non sfrutterà 24GB totali ma avrà il limite dei 6 della singola scheda).

Ci sono poi anche soluzioni più complesse, come ad esempio montare due schede completamente diverse e dedicarne una espressamente al calcolo, senza usufruire dello SLi (es. una Quadro K600 assieme ad una Titan Black Edition, la prima sarà collegata al monitor e gestirà tutto il flusso video, la seconda sarà dedicata esclusivamente al calcolo). Queste combinazioni però complicano di molto la situazione, quindi se non siete particolarmente esperti ed interessati a complicarvi la vita vi consiglio di pensare eventualmente solo ad uno SLi di schede identiche.

Per qualsiasi informazione o dubbio a riguardo contattatemi o commentate direttamente questo articolo, grazie.


Categorie: ArticoliTutorial