REC

Consejos sobre filmación, producción, edición de video y mantenimiento de equipos.

 WTVID >> Video >  >> video >> Consejos de vídeo

CUDA frente a OpenCL frente a OpenGL

¿Qué es CUDA? ¿Qué pasa con OpenCL y OpenGL? ¿Y por qué debería importarnos? Las respuestas a estas preguntas son difíciles de precisar, el equivalente informático de las metafísicas incontestables, pero intentaremos una explicación clara en un lenguaje fácil de entender, quizás con un poco de introspección también.

Llega un momento en la vida de un editor de video en el que inevitablemente se plantean las preguntas básicas:“¿Esta es toda la velocidad que tengo? ¿No hay nada más? Al igual que la búsqueda del significado de la vida o una gran teoría unificada, este simple pensamiento lo lanza a un abismo interminable e infinitamente profundo de contemplación e investigación, hasta que inevitablemente aterriza en una pregunta para la que simplemente no puede obtener una respuesta verdadera. y allí se detiene la búsqueda.

Ahora, no podemos ayudarlo con ninguna gran teoría unificada, pero podemos decir que el muro de información que finalmente encontrará en su búsqueda de la velocidad de procesamiento de video finalmente se reducirá a esto:"¿Qué es CUDA, qué es OpenCL y ¿Por qué me importa?”

“Ahora espera”, dices. “El titular dice Open GL. Debe haber un error tipográfico”. No, solo hay mucha gente que no siente simpatía por los estándares de nombres. La verdad es que para entender CUDA y Open GL, también necesitará saber sobre Open CL. Ahora puede saltar a Internet y wiki todos estos términos, leer todos los foros y visitar los sitios que mantienen estos estándares, pero aún así se irá confundido. En este artículo, acudiremos al rescate de su acertijo de video metafísico con un lenguaje tan simple como sea posible. ¡No verá ninguna circular sobre términos como "interfaz de programación de aplicaciones" aquí! Entonces, como todas las búsquedas de respuestas, lógicamente comencemos... en el medio.

¿Qué es CUDA?

Creado por el fabricante de tarjetas gráficas Nvidia, en términos tan simples como sea posible, CUDA permite que sus programas usen el cerebro de su tarjeta gráfica como una sub-CPU. Su CPU pasa ciertas tareas a la tarjeta habilitada para CUDA. La tarjeta gráfica se especializa en calcular cosas como la iluminación, el movimiento y la interacción lo más rápido posible. Las tarjetas gráficas están específicamente diseñadas para procesar dicha información lo más rápido posible, incluso enviándola a través de varios carriles a la vez, como si tuviera cuatro carriles de pago en el supermercado para un carrito de compras. Los resultados de este trabajo luego se devuelven a la CPU, que desde entonces ha pasado a cosas más grandes y mejores.

Los beneficios

Para los programadores, es relativamente simple de integrar. Como está basado en software, gran parte del sistema debe programarse en el código del programa y, por lo tanto, su función puede variar o personalizarse. Para el usuario, dado que la funcionalidad principal de CUDA radica en el cálculo, la generación de datos y la manipulación de imágenes, los tiempos de procesamiento, renderizado y exportación de efectos pueden reducirse considerablemente, especialmente si se realiza una ampliación o reducción de escala. También se puede mejorar el análisis de imágenes, así como simulaciones como dinámica de fluidos y procesos predictivos como patrones climáticos. CUDA también es excelente para las fuentes de luz y el trazado de rayos. Todo esto significa que funciones similares a efectos de representación, codificación y conversión de video, y más, se procesarán mucho más rápido.

La desventaja

¿Notaste ese pequeño descargo de responsabilidad en el primer párrafo? Esto funciona solo para tarjetas gráficas "habilitadas para CUDA". Dado que CUDA es propiedad de Nvidia, necesita una tarjeta gráfica fabricada por esa empresa para aprovecharla. Si tienes, por ejemplo, una Mac Pro estilo papelera, simplemente no es una opción para ti, ya que solo vienen con tarjetas gráficas AMD. Aquí hay opciones de terceros, pero Apple solo proporciona AMD en sus paquetes. También encontrará que hay menos programas compatibles con CUDA que su alternativa, así que hablemos de esa otra opción.

Bueno, entonces, ¿qué es OpenCL?

OpenCL es un sistema relativamente nuevo y para nuestra discusión puede considerarse una alternativa a CUDA. Sin embargo, es un estándar abierto, lo que significa que cualquier persona puede usar su funcionalidad en su hardware o software sin pagar ninguna licencia o tecnología propietaria. Mientras que CUDA usa la tarjeta gráfica como coprocesador, OpenCL transmitirá la información por completo, usando la tarjeta gráfica más como un procesador independiente de propósito general. Es una distinción filosófica menor, pero al final hay una diferencia cuantificable. Para el programador, es un poco más difícil codificar. Como usuario, no está atado a ningún proveedor y el soporte está tan extendido que la mayoría de los programas ni siquiera mencionan su adopción.

Por último, OpenGL

OpenGL es realmente el comienzo de la historia. No se trata de usar la tarjeta gráfica como un procesador de propósito general. En cambio, se trata simplemente de dibujar píxeles o vértices en la pantalla. Es el sistema que permite que su tarjeta gráfica cree pantallas 2D y 3D para su computadora mucho más rápido que su CPU. Al igual que CUDA y OpenCL son alternativas entre sí, OpenGL es una alternativa a sistemas como DirectX en Windows. Simplemente, OpenGL dibuja todo en su pantalla muy rápido, OpenCL y CUDA procesan los cálculos necesarios cuando sus videos interactúan con sus efectos y otros medios. OpenGL puede colocar su video dentro de la interfaz de edición y hacer que se reproduzca, pero cuando le aplica la corrección de color, CUDA u OpenCL harán los cálculos para alterar cada píxel del video correctamente.

OpenGL se puede implementar a nivel de hardware, lo que significa que los codificadores no tienen que incluir el código en su programa, solo tienen que llamarlo. Además, los proveedores de hardware tienen la opción de expandir la funcionalidad central con extensiones, lo que significa que algunos hardware pueden ser mejores en ciertas tareas que otras. Esto permite una personalización muy específica.

Donde el usuario verá los beneficios de OpenGL es en el rendimiento operativo del software. Las vistas previas se procesan especialmente rápido. En muchos programas, también se utiliza para superposiciones e interfaces aceleradas, como líneas de tiempo, metraje, ventanas, cuadrículas, guías, reglas y cuadros delimitadores.

Al final, OpenGL para el usuario no es un problema, ya que tanto OpenCL como CUDA pueden utilizar y utilizan el sistema OpenGL. Lo que debe comprender aquí es que si tiene una tarjeta gráfica con la última compatibilidad con OpenGL, siempre trabajará más rápido que en una computadora con CPU y gráficos integrados solamente.

En pocas palabras

Entonces, ¿qué significa todo esto para usted y su estación de trabajo? ¿Qué es mejor, CUDA u OpenCL? Asumiremos que ha realizado el primer paso y comprobado su software, y que cualquier cosa que utilice admitirá ambas opciones. Si tiene una tarjeta Nvidia, use CUDA. Se considera más rápido que OpenCL la mayor parte del tiempo. Tenga en cuenta también que las tarjetas Nvidia son compatibles con OpenCL. El consenso general es que no son tan buenos como las tarjetas AMD, pero cada vez se acercan más. ¿Vale la pena salir y comprar una tarjeta Nvidia solo por el soporte de CUDA? Eso dependería de demasiados factores de casos específicos para que los cubramos aquí. Deberá analizar sus necesidades e investigar. No solo el tipo de trabajo que realiza su empresa, sino también la máquina individual y cuál será su carga de trabajo y función. Y si puede, pruebe antes de invertir.

Adobe, por ejemplo, afirma en su sitio web que, con muy pocas excepciones, OpenCL también puede hacer todo lo que CUDA hace para Premiere Pro. También establece que no utiliza ninguno de estos para codificar o decodificar. Sin embargo, se pueden usar para renderizar vistas previas y exportaciones finales. La mayoría de los que han "comparado" los dos parecen inclinarse hacia que CUDA sea más rápido con los productos de Adobe. CUDA tiene la ventaja de ser autónomo, lo que, debido a una mejor optimización, puede resultar en un rendimiento más rápido.

Experiencia personal

También me gustaría hacer un movimiento raro y compartir mi experiencia personal aquí. Sin embargo, tenga en cuenta que no he realizado pruebas concretas. Estoy hablando estrictamente por mí mismo, así que tómalo por lo que vale. Mi experiencia es que CUDA, cuando está disponible, es excelente y realmente puede aumentar notablemente la velocidad. Sin embargo, creo que he tenido algunos bloqueos o fallas más al renderizar, transcodificar y exportar. Además, en algunas raras ocasiones, me quedé sin opciones y recurrí a apagar CUDA, lo que finalmente resultó en un resultado exitoso. Nunca he tenido que hacer lo contrario. Debo calificar esto diciendo también que mi tiempo con CUDA ha sido muy limitado. Tampoco estoy criticando a CUDA, ya que lo más probable es que el problema sea la forma en que el proveedor de software lo utilizó. Sin embargo, experimenté estos problemas con más de un programa, así que quizás tenía una versión anterior de CUDA. Simplemente sentí que era lo suficientemente importante como para mencionar que debes estar atento a esas cosas. Una vez más, diré en última instancia que no puede equivocarse con ninguna de las opciones y cuál debe usarse debe determinarse completamente caso por caso.

Entonces, volviendo al registro, lo que finalmente podemos decir con confianza es que si realmente está en la posición en la que realmente es su tarjeta gráfica y no todo su sistema lo que está ralentizando su flujo de trabajo, entonces lo más probable es que actualice a cualquier tarjeta más reciente será una gran mejora con respecto a lo que está experimentando actualmente. Independientemente del camino que elija, comprender lo que hacen estos sistemas lo ayudará a identificar dónde necesita invertir para hacer que sus estaciones de trabajo sean lo mejor posible. Invertir en una tarjeta que admita el uso de la GPU para complementar o descargar el trabajo de la CPU acelerará enormemente su flujo de trabajo.

Peter Zunitch es un editor de video galardonado con sede en Nueva York.


  1. Los fundamentos de los títulos y gráficos

  2. Elementos de diseño gratuitos para artistas de gráficos en movimiento

  3. Últimas noticias:Blackmagic anuncia Blackmagic eGPU

  4. 13 gráficos en movimiento texturizados GRATIS para Premiere Pro

  5. Los mejores complementos de gráficos animados para AE

  6. Cómo crear gráficos animados en After Effects

  7. Los 4 mejores programas de gráficos en 3D para ayudarlo a dibujar gráficos en 2D y 3D

  8. Acerca de Motion Graphics:todo lo que debe saber

  9. Revisión de Adobe After Effects 2022:El mejor software de diseño de gráficos animados y VFX

  1. 22 de los mejores videos de gráficos en movimiento de todos los tiempos

  2. Gráficos de texto en video:una guía completa

  3. Inspiraciones y tendencias del diseño gráfico en movimiento:lo que necesita saber

  4. Menos es más:edición de títulos y gráficos

  5. Seminario web El arte de los títulos y los gráficos el miércoles 30 de noviembre

  6. Seminario web miércoles 27 de junio:El arte de los títulos y gráficos

  7. Cómo diseñar un paquete de gráficos coherentes

  8. Seminario web sobre creación de títulos y gráficos (20/10)

  9. Dominar plantillas de gráficos en movimiento en Premiere Pro

Consejos de vídeo