REC

Tips om videoinspelning, produktion, videoredigering och underhåll av utrustning.

 WTVID >> Sverige Video >  >> video- >> Videotips

CUDA vs. OpenCL vs. OpenGL

Vad är CUDA? Hur är det med OpenCL och OpenGL? Och varför ska vi bry oss? Svaren på dessa frågor är svåra att sätta fingret på – datormotsvarigheten till de metafysiska obesvarbara frågorna – men vi ska försöka en tydlig förklaring på ett lättförståeligt språk, med kanske lite introspektion också.

Det kommer en tid i en videoredigerares liv då de oundvikligen funderar över de grundläggande frågorna:"Är det här all hastighet jag har? Finns det inget mer?" Som sökandet efter meningen med livet eller en storslagen enad teori, kastar denna enkla tanke dig ner i en oändlig och oändligt djup avgrund av kontemplation och forskning, tills du oundvikligen landar på en fråga som du helt enkelt inte kan få ett riktigt svar på, och där stannar sökningen.

Nu kan vi inte hjälpa dig med någon storslagen enhetlig teori, men vi kan säga att informationsväggen du i slutändan kommer att träffa på din sökning efter videobearbetningshastighet kommer i slutändan att komma ner till detta:"Vad är CUDA, vad är OpenCL, och varför bryr jag mig?”

"Vänta nu", säger du. "Rubriken säger Open GL. Det måste vara ett stavfel”. Nej, det finns bara många människor utan sympati för namnnormer. Sanningen är att för att förstå CUDA och Open GL måste du också veta om Open CL. Nu kan du hoppa på Internet och wiki alla dessa termer och läsa alla forum och besöka de webbplatser som upprätthåller dessa standarder, men du kommer fortfarande att gå därifrån förvirrad. I den här artikeln kommer vi att rädda ditt metafysiska videoproblem med ett så enkelt språk som möjligt. Du kommer inte att se något cirkulär som talar om termer som "applikationsprogrammeringsgränssnitt" här! Så låt oss, precis som alla uppdrag efter svar, logiskt börja... i mitten.

Vad är CUDA?

Skapat av grafikkortstillverkaren Nvidia, i så enkla termer som möjligt, låter CUDA dina program använda hjärnan på ditt grafikkort som en sub-CPU. Din CPU skickar vissa uppgifter till det CUDA-aktiverade kortet. Grafikkortet är specialiserat på att beräkna saker som belysning, rörelse och interaktion så snabbt som möjligt. Grafikkort är speciellt utformade för att bearbeta sådan information så snabbt som möjligt, till och med skicka den genom flera körfält samtidigt – som om du hade fyra kassabanor i snabbköpet för en kundvagn. Resultaten av detta arbete skickas sedan tillbaka till processorn, som sedan har gått vidare till större och bättre saker.

Fördelarna

För programmerare är det relativt enkelt att integrera. Eftersom det är mjukvarubaserat måste mycket av systemet programmeras in i programmets kod, och därför kan dess funktion variera eller anpassas. För användaren, eftersom CUDA:s primära funktionalitet ligger i beräkning, datagenerering och bildmanipulation, kan dina effektbearbetnings-, renderings- och exporttider reduceras avsevärt, speciellt vid upp- eller nedskalning. Bildanalys kan också förbättras, liksom simuleringar som vätskedynamik och prediktiva processer som vädermönster. CUDA är också bra på ljuskällor och ray-tracing. Allt detta innebär att funktioner som liknar renderingseffekter, videokodning och konvertering – med mera – kommer att bearbetas mycket snabbare.

Nackdelen

Lade du märke till den där lilla friskrivningen i första stycket? Detta fungerar endast för "CUDA-aktiverade" grafikkort. Eftersom CUDA är proprietärt för Nvidia behöver du ett grafikkort tillverkat av det företaget för att dra nytta av det. Om du har, säg, en soptunna Mac Pro, är detta helt enkelt inte ett alternativ för dig eftersom de bara kommer med AMD-grafikkort. Det finns tredjepartsalternativ här, men Apple tillhandahåller bara AMD i sina paket. Du kommer också att upptäcka att färre program stöder CUDA än dess alternativ, så låt oss prata om det andra alternativet.

Tja, vad är då OpenCL?

OpenCL är ett relativt nytt system och för vår diskussion kan det betraktas som ett alternativ till CUDA. Det är dock en öppen standard – vilket innebär att alla kan använda dess funktionalitet i sin hårdvara eller mjukvara utan att betala för någon proprietär teknologi eller licenser. Medan CUDA använder grafikkortet för en co-processor, kommer OpenCL att vidarebefordra informationen helt och hållet och använda grafikkortet mer som en separat peer-processor för allmänt bruk. Det är en mindre filosofisk skillnad, men det finns en kvantifierbar skillnad i slutändan. För programmeraren är det lite svårare att koda för. Som användare är du inte bunden till någon enskild leverantör, och supporten är så utbredd att de flesta program inte ens nämner hur de antas.

Äntligen OpenGL

OpenGL är egentligen början på historien. Det handlar inte om att använda grafikkortet som en allmän processor. Istället handlar det helt enkelt om att rita pixlar eller hörn på skärmen. Det är systemet som gör att ditt grafikkort kan skapa 2D- och 3D-skärmar för din dator mycket snabbare än din CPU kunde. Liksom CUDA och OpenCL är alternativ till varandra, är OpenGL ett alternativ till system som DirectX på Windows. Helt enkelt, OpenGL ritar allt på din skärm riktigt snabbt, OpenCL och CUDA bearbetar de beräkningar som krävs när dina videor interagerar med dina effekter och andra media. OpenGL kan placera din video i redigeringsgränssnittet och få den att spela upp, men när du lägger färgkorrigering på den kommer CUDA eller OpenCL att göra beräkningarna för att ändra varje pixel i videon på rätt sätt.

OpenGL kan implementeras på hårdvarunivå, vilket innebär att kodare inte behöver inkludera koden i sitt program, de måste bara anlita den. Dessutom har hårdvaruleverantörer möjlighet att utöka kärnfunktionaliteten med tillägg, vilket innebär att viss hårdvara kan vara bättre på vissa uppgifter än andra. Detta möjliggör mycket specifik anpassning.

Där användaren kommer att se fördelarna med OpenGL är i programvarans operativa prestanda. Förhandsvisningar renderas särskilt snabbt. I många program används den också för accelererat gränssnitt och överlagringar, som tidslinjer, film, fönster, rutnät, guider, linjaler och begränsningsrutor.

I slutändan är OpenGL för användaren en icke-fråga, eftersom både OpenCL och CUDA kan och använder OpenGL-systemet. Vad du behöver förstå här är att om du har något grafikkort med det senaste OpenGL-stödet kommer du alltid att arbeta snabbare än på en dator med enbart en CPU och integrerad grafik.

I ett nötskal

Så, vad betyder allt detta för dig och din arbetsstation? Vilket är bättre — CUDA eller OpenCL? Vi antar att du har gjort det första steget och kontrollerat din programvara, och att vad du än använder kommer att stödja båda alternativen. Om du har ett Nvidia-kort, använd CUDA. Det anses vara snabbare än OpenCL mycket av tiden. Observera också att Nvidia-kort stöder OpenCL. Den allmänna konsensus är att de inte är lika bra på det som AMD-kort är, men de kommer närmare hela tiden. Är det värt att gå ut och köpa ett Nvidia-kort bara för CUDA-stöd? Det skulle bero på för många specifika fallfaktorer för att vi ska kunna täcka det här. Du måste titta på dina behov och göra din forskning. Inte bara vilken typ av arbete ditt företag utför, utan även ner till den enskilda maskinen och vad dess arbetsbelastning och funktion kommer att vara. Och om du kan, testa innan du investerar.

Adobe anger till exempel på sin hemsida att med mycket få undantag kan allt CUDA gör för Premiere Pro också göras av OpenCL. Den anger också att den inte använder någon av dessa för kodning eller avkodning. De kan dock användas för att rendera förhandsvisningar och slutliga exporter. Majoriteten av de som har "jämfört" de två verkar luta mot att CUDA är snabbare med Adobes produkter. CUDA har fördelen av att vara fristående, vilket på grund av bättre optimering kan resultera i snabbare prestanda.

Personlig erfarenhet

Jag skulle också vilja göra ett sällsynt drag och dela med mig av min personliga erfarenhet här. Observera dock att jag inte har gjort några konkreta tester. Jag talar strikt för mig själv, så ta det för vad det är värt. Min erfarenhet är att CUDA, när den är tillgänglig, är fantastisk och verkligen kan öka din hastighet märkbart. Det är dock min övertygelse att jag har haft några fler krascher eller fel vid rendering, omkodning och export. Vid några sällsynta tillfällen fick jag slut på alternativ och tog till att stänga av CUDA, vilket till slut resulterade i ett framgångsrikt resultat. Jag har aldrig behövt göra tvärtom. Jag måste kvalificera detta genom att också säga att min tid med CUDA har varit mycket begränsad. Jag knackar inte heller på CUDA, eftersom problemet troligen är hur programvaruleverantören använde det. Jag upplevde dock dessa problem med mer än ett program, så jag kanske hade en gammal version av CUDA. Jag kände bara att det var tillräckligt viktigt att nämna att man borde hålla utkik efter sådana saker. Återigen, jag kommer i slutändan att säga att du inte kan gå fel med något av alternativen och vilket som ska användas bör avgöras helt från fall till fall.

Så, om vi går tillbaka på rekordet, vad vi i slutändan kan säga med tillförsikt är att om du faktiskt är i den position där det verkligen är ditt grafikkort, och inte hela ditt system som saktar ner ditt arbetsflöde, så är chansen stor att uppgradera till alla nyare kort kommer att vara en enorm förbättring jämfört med vad du för närvarande upplever. Oavsett vilken väg du väljer, kommer att förstå vad dessa system gör hjälpa dig att identifiera var du behöver investera för att göra dina arbetsstationer så dåliga de kan vara. Att investera i ett kort som stöder användning av GPU:n för att komplettera eller ladda ner arbete från processorn kommer att påskynda ditt arbetsflöde enormt.

Peter Zunitch är en prisbelönt videoredigerare baserad i New York.


  1. Textgrafik i video:En komplett guide

  2. Motion Graphic Design Inspirationer och trender:Vad du behöver veta

  3. Webbseminarium onsdag – 27 juni:Konsten med titlar och grafik

  4. Hur man designar ett sammanhängande grafikpaket

  5. Skapa titlar och grafik webbseminarium (10/20)

Videotips
  1. 22 av de bästa rörliga grafikvideorna någonsin

  2. Less is More – Redigera titlar och grafik

  3. NVIDIA Quadro 4000 grafikkort och 3D Vision har granskats

  4. Webinariet Art of Titles and Graphics onsdagen den 30 november

  5. 5 tips för att förbättra stödjande grafik

  6. Grunderna i titlar och grafik

  7. Gratis designelement för rörelsegrafikkonstnärer

  8. Bemästra rörelsegrafikmallar i Premiere Pro