REC

Suggerimenti su riprese video, produzione, editing video e manutenzione delle apparecchiature.

 WTVID >> Italiano video >  >> video >> Suggerimenti video

CUDA contro OpenCL contro OpenGL

Cos'è CUDA? Che dire di OpenCL e OpenGL? E perché dovremmo preoccuparci? Le risposte a queste domande sono difficili da definire - l'equivalente informatico degli irrisolvibili metafisici - ma cercheremo una spiegazione chiara in un linguaggio semplice da capire, con forse anche un po' di introspezione.

Arriva un momento nella vita di un editor video in cui inevitabilmente medita sulle domande di base:"È tutta questa la velocità che ho? Non c'è più niente?" Come la ricerca del senso della vita o di una grande teoria unificata, questo semplice pensiero ti lancia in un baratro infinito e infinitamente profondo di contemplazione e ricerca, fino a quando inevitabilmente arrivi a una domanda a cui non riesci proprio a trovare una risposta vera, e lì la ricerca si blocca.

Ora, non possiamo aiutarti con nessuna teoria unificata, ma possiamo dire che il muro di informazioni che alla fine ti imbatterai nella tua ricerca della velocità di elaborazione video alla fine si ridurrà a questo:"Cos'è CUDA, cos'è OpenCL e perché mi interessa?"

“Adesso aspetta”, dici. “Il titolo dice Open GL. Ci deve essere un errore di battitura”. No, ci sono solo molte persone che non hanno simpatia per gli standard di denominazione. La verità è che per comprendere CUDA e Open GL, devi conoscere anche Open CL. Ora potresti saltare su Internet e wiki tutti questi termini, leggere tutti i forum e visitare i siti che mantengono questi standard, ma te ne andrai comunque confuso. In questo articolo, verremo al tuo salvataggio di enigmi video metafisici con un linguaggio il più semplice possibile. Non vedrai alcuna circolare parlare di termini come "interfaccia di programmazione dell'applicazione" qui! Quindi, come tutte le ricerche di risposte, iniziamo logicamente... nel mezzo.

Cos'è CUDA?

Creato dal produttore di schede grafiche Nvidia, nel modo più semplice possibile, CUDA consente ai tuoi programmi di utilizzare il cervello della tua scheda grafica come una sotto-CPU. La tua CPU trasferisce determinate attività alla scheda abilitata CUDA. La scheda grafica è specializzata nel calcolo di cose come illuminazione, movimento e interazione il più rapidamente possibile. Le schede grafiche sono progettate specificamente per elaborare tali informazioni il più velocemente possibile, inviandole anche attraverso più corsie contemporaneamente, come se avessi quattro corsie di cassa al supermercato per un carrello. I risultati di questo lavoro vengono quindi ritrasmessi alla CPU, che da allora è passata a cose più grandi e migliori.

I vantaggi

Per i programmatori, è relativamente semplice da integrare. Poiché è basato su software, gran parte del sistema deve essere programmato nel codice del programma, quindi la sua funzione può variare o essere personalizzata. Per l'utente, poiché la funzionalità principale di CUDA risiede nel calcolo, nella generazione di dati e nella manipolazione delle immagini, i tempi di elaborazione degli effetti, rendering ed esportazione possono essere notevolmente ridotti, soprattutto in caso di upscaling o downscaling. L'analisi delle immagini può anche essere migliorata, così come le simulazioni come la dinamica dei fluidi e i processi predittivi come i modelli meteorologici. CUDA è ottimo anche per le sorgenti luminose e il ray-tracing. Tutto ciò significa che funzioni simili agli effetti di rendering, alla codifica e alla conversione video e altro ancora verranno elaborate molto più velocemente.

Il lato negativo

Hai notato quel piccolo disclaimer nel primo paragrafo? Funziona solo per le schede grafiche "abilitate CUDA". Poiché CUDA è di proprietà di Nvidia, è necessaria una scheda grafica prodotta da quella società per trarne vantaggio. Se hai, ad esempio, un Mac Pro in stile cestino, questa semplicemente non è un'opzione per te poiché vengono forniti solo con schede grafiche AMD. Ci sono opzioni di terze parti qui, ma Apple fornisce solo AMD nei loro pacchetti. Scoprirai anche che meno programmi supportano CUDA rispetto alla sua alternativa, quindi parliamo di quell'altra opzione.

Allora cos'è OpenCL?

OpenCL è un sistema relativamente nuovo e per la nostra discussione può essere considerato un'alternativa a CUDA. Tuttavia, è uno standard aperto, il che significa che chiunque può utilizzare le sue funzionalità nel proprio hardware o software senza pagare alcuna tecnologia o licenza proprietaria. Mentre CUDA utilizza la scheda grafica come coprocessore, OpenCL trasmetterà completamente le informazioni, utilizzando la scheda grafica più come un processore peer per uso generale separato. È una piccola distinzione filosofica, ma alla fine c'è una differenza quantificabile. Per il programmatore, è un po' più difficile programmare. Come utente, non sei legato a nessun fornitore e il supporto è così diffuso che la maggior parte dei programmi non menziona nemmeno la sua adozione.

Finalmente, OpenGL

OpenGL è davvero l'inizio della storia. Non si tratta di utilizzare la scheda grafica come processore generico. Invece si tratta semplicemente di disegnare pixel o vertici sullo schermo. È il sistema che consente alla tua scheda grafica di creare display 2D e 3D per il tuo computer molto più velocemente di quanto potrebbe fare la tua CPU. Come CUDA e OpenCL sono alternative l'una all'altra, OpenGL è un'alternativa a sistemi come DirectX su Windows. Semplicemente, OpenGL disegna tutto sul tuo schermo molto velocemente, OpenCL e CUDA elaborano i calcoli necessari quando i tuoi video interagiscono con i tuoi effetti e altri media. OpenGL può posizionare il tuo video all'interno dell'interfaccia di editing e farlo riprodurre, ma quando apporti la correzione del colore su di esso, CUDA o OpenCL eseguiranno i calcoli per alterare correttamente ogni pixel del video.

OpenGL può essere implementato a livello hardware, il che significa che i programmatori non devono includere il codice nel loro programma, devono solo richiamarlo. Inoltre, i fornitori di hardware hanno la possibilità di espandere le funzionalità principali con estensioni, il che significa che alcuni hardware potrebbero essere migliori in determinate attività rispetto ad altri. Ciò consente una personalizzazione molto specifica.

Il punto in cui l'utente vedrà i vantaggi di OpenGL è nelle prestazioni operative del software. Le anteprime sono rese particolarmente veloci. In molti programmi, viene utilizzato anche per l'interfaccia accelerata e le sovrapposizioni, come linee temporali, filmati, finestre, griglie, guide, righelli e riquadri di delimitazione.

Alla fine, OpenGL per l'utente non è un problema, poiché sia ​​OpenCL che CUDA possono e utilizzano il sistema OpenGL. Quello che devi capire qui è che se hai una scheda grafica con l'ultimo supporto OpenGL, lavorerai sempre più velocemente che su un computer con una CPU e solo grafica integrata.

In poche parole

Quindi, cosa significa tutto questo per te e la tua workstation? Quale è meglio:CUDA o OpenCL? Daremo per scontato che tu abbia eseguito il primo passaggio e controllato il tuo software e che qualunque cosa tu usi supporterà entrambe le opzioni. Se hai una scheda Nvidia, usa CUDA. È considerato più veloce di OpenCL per la maggior parte del tempo. Nota anche che le schede Nvidia supportano OpenCL. Il consenso generale è che non sono così bravi come le schede AMD, ma si stanno avvicinando sempre di più. Vale la pena uscire e acquistare una scheda Nvidia solo per il supporto CUDA? Ciò dipenderebbe da troppi fattori specifici del caso per noi da coprire qui. Dovrai guardare alle tue esigenze e fare le tue ricerche. Non solo il tipo di lavoro svolto dalla tua azienda, ma anche la singola macchina e il suo carico di lavoro e la sua funzione. E se puoi, prova prima di investire.

Adobe, ad esempio, afferma sul suo sito Web che, con pochissime eccezioni, tutto ciò che CUDA fa per Premiere Pro può essere eseguito anche da OpenCL. Afferma inoltre che non utilizza nessuno di questi per la codifica o la decodifica. Tuttavia, possono essere utilizzati per il rendering di anteprime ed esportazioni finali. La maggior parte di coloro che hanno "confrontato" i due sembrano propendere per CUDA essere più veloce con i prodotti Adobe. CUDA ha il vantaggio di essere autonomo, il che, grazie a una migliore ottimizzazione, può risultare in prestazioni più veloci.

Esperienza personale

Vorrei anche fare una mossa rara e condividere la mia esperienza personale qui. Si noti tuttavia che non ho eseguito test concreti. Parlo strettamente per me stesso, quindi prendilo per quello che vale. La mia esperienza è che CUDA, quando disponibile, è eccezionale e può davvero aumentare notevolmente la tua velocità. Tuttavia, credo di aver avuto qualche altro crash o problema tecnico durante il rendering, la transcodifica e l'esportazione. Inoltre, in alcune rare occasioni, ho esaurito le opzioni e sono ricorso allo spegnimento di CUDA, che alla fine ha portato a un risultato positivo. Non ho mai dovuto fare il contrario. Devo qualificare questo dicendo anche che il mio tempo con CUDA è stato molto limitato. Inoltre, non sto bussando a CUDA, poiché il problema è molto probabilmente il modo in cui il fornitore del software lo ha utilizzato. Ho riscontrato questi problemi con più di un programma, quindi forse avevo una vecchia versione di CUDA. Ho solo sentito che era abbastanza importante menzionare che dovresti stare attento a queste cose. Ancora una volta, alla fine dirò che non puoi sbagliare con nessuna delle scelte e quale dovrebbe essere utilizzato dovrebbe essere determinato interamente caso per caso.

Quindi, tornando indietro al record, ciò che alla fine possiamo dire con sicurezza è che se sei effettivamente nella posizione in cui è veramente la tua scheda grafica e non l'intero sistema a rallentare il tuo flusso di lavoro, è probabile che l'aggiornamento a qualsiasi carta più recente sarà un enorme miglioramento rispetto a quella che stai attualmente vivendo. Indipendentemente dal percorso che scegli, capire cosa fanno questi sistemi ti aiuterà a identificare dove devi investire per rendere le tue workstation le peggiori possibili. Investire in una scheda che supporti l'utilizzo della GPU per integrare o scaricare il lavoro dalla CPU accelererà enormemente il tuo flusso di lavoro.

Peter Zunitch è un pluripremiato editor video con sede a New York.


  1. 22 dei migliori video di grafica animata di sempre

  2. Grafica di testo nel video:una guida completa

  3. Ispirazioni e tendenze per la progettazione grafica animata:cosa devi sapere

  4. Less is More – Modifica di titoli e grafica

  5. L'arte dei titoli e della grafica Webinar mercoledì 30 novembre

  6. Webinar mercoledì – 27 giugno:L'arte dei titoli e della grafica

  7. Come progettare un pacchetto grafico coerente

  8. Webinar sulla creazione di titoli e grafica (10/20)

  9. Padroneggiare i modelli di grafica animata in Premiere Pro

  1. Recensione della scheda grafica NVIDIA Quadro 4000 e 3D Vision

  2. 5 suggerimenti per migliorare la grafica di supporto

  3. Le basi di titoli e grafica

  4. Elementi di design gratuiti per artisti di grafica animata

  5. Ultime notizie:Blackmagic annuncia Blackmagic eGPU

  6. 13 grafiche animate testurizzate GRATUITE per Premiere Pro

  7. I migliori plugin di grafica animata per AE

  8. Come creare grafica animata in After Effects

  9. 4 migliori software per grafici 3D per aiutarti a disegnare grafica 2D e 3D

Suggerimenti video