Buonasera a tutti,
ho visto che molta gente chiede "quale scheda video è meglio fra queste 2" oppure "quale scheda video devo prendere" o ancora "ha senso investire in una scheda video" quindi cerco di raggruppare tutte le informazioni e esperienze raccolte, nonchè gli studi fatti per cercare di presentarvi una guida più o meno completa sulla scelta delle schede video per quanto riguarda il nostro campo del video editing (più in generale encoding/decoding, cgi, editing e color grading).
(Posto in sezione hardware, i moderatori poi decideranno se tenere qui o portare in consigli per gli acquisti)
[MOD EDIT]: La sezione va bene, Consigli Per Gli Acquisti è soggetta a pruning ad intervalli regloari.Premetto che conosco molto bene il campo nVidia sia professionale (serie quadro) che "consumer" (serie geForce) ma meno per quanto riguarda AMD (anzi quasi 0), quindi se qualcuno esperto di AMD (ex ATI) vorrà integrare volentieri.
Ok cominciamo
Partiamo col definire cos'è una scheda video, cosa fa e perchè è importante (e se è importante).
Una scheda grafica può essere quasi vista come un computer a sè stante, infatti al suo interno vi è un processore (GPU) della ram (VRAM) e una memoria che contiene il codice macchina (firmware) necessario a far funzionare in armonia tutte le parti che contiene.
Nei nostri computer però viene visto come un componente e, come ogni componente, si specializza in una funzione. In particolare una scheda video, di norma, fa 2 cose:
- elabora le informazioni relative al video (effetti, correzioni di colore, rendering di luci, poligoni, nurbs, ecc)
- gestisce tutto l'output ovvero gli schermi
sul secondo punto ci sarebbe da dire che questa è una capacità delle
schede video, esistono infatti delle schede chiamate
unità di elaborazione grafica (esempi come la tesla k20 di nVidia) il cui unico compito è quello di generare le informazioni e basta e non di visualizzarle. Queste unità vengono, in genere, utilizzate nelle render farm in quanto lì i server devono generare e salvare immagini, è inutile visualizzarle quindi la gestione dei monitor è inutile.
E' utile una scheda video?questo è un punto particolare, infatti dovremmo prima parlare dei sistemi con la quale un'immagine viene generata.
Nel campo della grafica per pc (e anche dell'editing per riflesso) le immagini vengono generate tramite dei motori grafici, spesso anche per quanto riguarda elementi 2D. Questi motori si dividono in:
- proprietari (ovvero l'azienda ha creato il sistema e ne detiene i diritti e concede l'implementazione solo pagando) come DirectX (Microsoft) e elaborazione CUDA (nVidia)
- liberi (ovvero sviluppati in genere da comunità indipendenti e concessi senza pagamento di licenze) quali OpenCL e OpenGL
In pratica possiamo dire che l'uso di una scheda video o un'altra è vincolato non al lavoro che facciamo ma al software di editing, composing, sculpting, ecc che andiamo ad utilizzare.
E' da dire che le schede video sono studiate in modo da far funzionare meglio questi motori grafici e supportarne certe versioni. Per quanto, ad esempio le openCL, possano usare GPU o CPU indifferentemente, con le GPU avranno molta più velocità perchè il chip è stato studiato per svolgere quel compito nella maniera più veloce possibile, rispetto magari alla CPU il cui compito principale è un altro.
Abbiamo detto che quindi ogni scheda grafica supporta tecnologie proprietarie che non sono dettate solo dalla marca. Infatti nella serie quadro della nVidia vengono inserite tecnologie che nella serie consumer non sono messe (tecnologie sviluppate da nVidia stessa). Inoltre il supporto varia nel tempo, 10 anni fa c'erano le DirectX 9, ad oggi siamo alle DirectX 12 che implementano più comandi, più funzioni, performance migliori, discorso analogo per ogni tipo di motore grafico che si utilizzi (sia esso proprietario o libero).
Quindi a seconda del software che andiamo ad utilizzare dobbiamo inanzitutto scegliere la scheda grafica che sfrutti al meglio quegli standard.
Andiamo a vedere qualche software utilizzato di norma e che tecnologie sfrutta.
Edius Pro 8Andando a leggere nelle specifiche di Edius leggo "
Supporting higher resolution than 1024x768 32-bit. Direct3D 9.0c or later and PixelShader Model 3.0 or later is required".
Direct3D è un "sottoinsieme" di tutto ciò che riguarda DirectX. Sia AMD che nVidia supportano questa tecnologia e la versione 9 è abbastanza "vecchia" quindi scegliere una delle 2 marche non cambia il come vengono interpretate le istruzioni. Quindi si ridurrà il confronto alle sole specifiche tecniche delle schede (che vedremo dopo)
AdobeLa suite adobe (tutta) si basa su motore grafico OpenCL o CUDA, è un caso di doppio motore grafico.
Cuda è un sistema proprietario nVidia quindi per poter usare quel sistema di elaborazione dovremo per forza utilizzare una scheda grafica nVidia.
Per quanto riguarda le OpenCL il discorso è più complesso, nel senso che è un motore che permette di usare sia GPU che CPU, ma con GPU avremo performance molto migliori nonchè precisione dell'immagine molto maggiore per motivi tecnici (e ci vorrebbe un topic solo per spiegare quelli).
Il sistema OpenCL, alla data del post, non ha ancora performance paragonabili al sistema nVidia. Detta in spicci
scegliere una scheda grafica AMD della stessa fascia di categoria di una scheda nVidia (ad oggi) produrrà risultati più lenti, perchè la tecnologia migliore la sfrutta, per questo software, nVidia, col tempo, però, le cose potrebbero andare ad eguagliarsi o addirittura invertirsi.
ATTENZIONE! come riportato da adobe stessa fa eccezione after effects. Per quando riguarda l'esportazione valgono le valutazioni qui sopra, mentre per quanto riguarda il raytracing è necessaria una scheda nVidia in quanto sfrutta unicamente i CUDA cores
Final Cut Pro XFinal Cut usa unicamente tecnologia OpenCL (Apple è un po' quella che ha lanciato questa tecnologia), quindi va bene una qualsiasi scheda video che supporti tale tecnologia. Di per sè OpenCL, come detto, supporterebbe anche la CPU, ma una GPU, come detto studiata per queste cose, aumentera di molto la potenza.
https://support.apple.com/it-it/HT202239 quì c'è una lista di GPU che supportano openCL su mac.
DaVinci ResolveDaVinci supporta (a loro dire) indifferentemente nVidia o AMD, tuttavia supportano a pieno solo le serie "pro" (quadro e firepro) di queste schede. Ma c'è da aspettarselo in quanto è un software nato per il grading, e per queste cose vengono usati schermi a 10bit e l'uscita a 10bit sulla displayport è presente solo in queste serie (ad eccezione delle nVidia su linux, infatti anche le geForce buttano fuori a 10bit). Anche qui si riduce al solo confronto di specifiche tecniche.
Credo che usino OpenGL essendo l'unico motore grafico che può funzionare indistintamente su linux, windows e mac e i loro software girano su tutti i SO. (ma è una mia opinione, per quanto ne posso sapere possono anche usare un motore inventato da loro quindi..)
NUKEQuesto software usa motore grafico OpenGL, sono supportate tutte le GPU che supportino OpenGL 2.0 o superiore. Loro consigliano comunque l'uso di schede nVidia quadro (e seguirei il loro consiglio, perchè con quello che costa, meglio usare le configurazioni consigliate da loro
)
Sony Vegas Pro 13 (e movie studio)
Usano OpenCL, valgono le stesse considerazioni di Final Cut e Adobe, tendo presente che il supporto su windows delle OpenCL è inferiore, ma sono garantite più schede video.
Avid Media ComposerNon ho certezze sul motore usato MA diversi forum riportano l'uso sia di OpenCL che di CUDA, quindi valgono le stesse considerazioni di Adobe. Tuttavia Avid consiglia l'uso di schede pro e non fa distinzioni tra AMD e nVidia, ma se fosse vero che usa le CUDA andrei per nVidia, chiedo di confermare da qualcuno che usa il software.
Abbiamo quindi visto in linea di massima che marca utilizzare in base al software scelto. Ma la marca è troppo generale, per un confronto simbolico motoristico per ora abbiamo detto "usa mercedes" o "usa bmw" ma all'interno di ogni casa ci sono vari modelli e, spesso, anche il singolo modello prevede alcune modifiche (optional, motorizzazione) quindi come orientarci in questo mare di schede?
Come abbiamo detto una scheda video è come un computer a sè stante, quindi il suo processore (GPU) avrà dei parametri molto simili ai processori normali, in particolare avremo una frequenza di funzionamento, un numero di core, tecnologie supportate e tipi di memoria supportati. Così vedremo che anche di VRAM ne esistono di vari tipi e velocità.
In linea di massima possiamo confrontare 2 schede video differenti in base a questi parametri (in ordine):
- Tecnologie supportate
- Frequenza dei processori (clock speed/frequency)
- Larghezza di banda della memoria
- Quantità di memoria
- Tipo di memoria
I più esperti avranno notato che ho tralasciato forse il parametro più importante ovvero il numero di processori.
Vediamo di chiarire meglio il concetto.
Il numero di processori (numero di cuda cores/stream processors) è una dato che non è paragonabile tra marche diverse.
Una scheda video in genere ha più compiti del semplice calcolo normale, infatti fa calcoli "specifici" quali texturing, antialiasing, raytracing, ecc..
Infatti sarebbe come paragonare un motore 1.5 diesel della audi contro un 1.5 diesel della fiat, per quanto abbiano stessa cilindrata hanno tecnologie diverse e quindi risultati diversi.
Prendendo un esempio sulle schede video AMD usa un sistema di "raggruppamento" ovvero va ad utilizzare più processori, ognuno da con più cores (in genere 64).
Diverso è invece per nVidia dove le loro GPU hanno i CUDA che sono più processori single core.
La differenza tra uno e l'altro è relativa, sfruttabile in certi casi non in altri.
Ma analizziamo ogni singolo parametro
Tecnologie supportate
come detto prima il mondo si sta dividendo tra OpenCL e CUDA, nel caso in cui il vostro software funzioni tramite CUDA è NECESSARIO usare nVidia. Come essere certi che il vostro software usi CUDA? Molto semplice, basta cercarlo qui:
http://www.nvidia.com/object/gpu-applications.htmlCome vedete nel link oltre al semplice "usa cuda si/no" viene indicato il perchè in quel software viene sfruttata la tecnologia CUDA. Se quelle features non vi interessano non è obbligatorio avere una nVidia (a meno che il software non giri unicamente con quella tecnologia..)
E nel caso invece il software usi OpenCL? In quel caso la scelta della scheda grafica propende per AMD.
https://www.khronos.org/conformance/ado ... cts#openclqui c'è una lista di schede video che supportano le OpenCL, come vedete le nVidia supportano la versione 1.2 e non l'attuale versione 2.0 (non che ci siano state modifiche enormi, ma quanto basta per rendere un software qul 7% più veloce, e su filmati lunghi o composizioni complesse si nota)
E se siamo all'interno della stessa marca?
beh in quel caso la scelta si basa sempre sulle tecnologie supportate in primis. Infatti nel corso del tempo le tecnologie si sono evolute, non possiamo paragonare le openGL di 10 anni fa con quelle di oggi, e un supporto hardware è necessario, quindi versioni più aggiornate vuol dire funzionalità maggiori native, quindi più potenza, sempre che il nostro software le sfrutti. Ad esempio nel caso di EDIUS vengono usate le DirectX 9, ad oggi siamo alla 12. La scelta di marca è indifferente ma a livello prestazionale se prendessimo 2 schede della stessa marca, identiche ma una con DirectX 9 ed una con DirectX 12 non vedremmo differenze come potenza.
Prima parlavo di schede graifche pro e consumer ed indovinate la differenza? sono proprio le tecnologie supportate
Molte tecnologie proprietarie sono quasi indispensabili per quanto riguada parametri professionali, ad esempio nVidia mette a diposizione questa tecnologia:
http://www.nvidia.it/object/advanced-rendering-it.htmled indovinate un po'? funziona solo su schede quadro
è questo il motivo per cui costano di più
ricapitolando, fra schede della stessa marca, la prima cosa da fare è verificare quali tecnologie supporta, vedere se sono necessarie (ovvero se sono sfruttate dal nostro software). Se ovviamente il nostro software richiede quelle tecnologie per funzionare non potremo comprare schede che non supportano quella tecnologia, mentre se è un "plus" (vedi advanced rendering per mental ray) dovremo valutare se è veramente ciò che ci serve, ma la regola è "se non so se mi serve, adesso non mi serve"
(ok è tardi, domani ho università quindi anche per stasera chiudo la puntata, domani spero di poter scrivere di più.. se intanto mi date consigli su cosa spiegare meglio, dubbi ecc provo a sistemare)