Revisión de rendimiento de GPU para render

Veinte tarjetas gráficas probadas con V-Ray NEXT, Indigo y Blender v2.82

Durante el último año, hemos recibido una buena cantidad de solicitudes de los usuarios finales (semi) profesionales que desean ver cómo funcionan las GPU en el ámbito de la creación de contenido. Obviamente, hay muchas cargas de trabajo que puede disparar en una GPU, pero en particular la característica más interesante es la creación de contenido, también conocida como representación asistida por GPU, para no confundir con Raytracing híbridos basado en juegos. El año pasado comenzamos a incluir los resultados de VRay, basados ​​en esa solicitud en nuestro artículo para abordar solo esa pregunta, un paquete de software que ha estado mostrando (desafortunadamente) resultados inconsistentes hasta ahora. En el último año, sin embargo, se actualizaron varias suites de software. The Chaos Group lanzó VRAY-Next, para el cual teníamos grandes esperanzas de una mayor consistencia y soporte de Radeon, sin embargo, siguen siendo exclusivos de CUDA. Además, Indigo se encuentra en la versión v4 y, por supuesto, ahora hay Blender en la versión v2.82 y una amplia variedad de soporte de GPU Compute API.

Dado que la industria se detuvo por todos los tiempos debido a muchas razones, entre ellas Corona, pensamos que ahora es un buen momento para ejecutar estos títulos y agregarlos a nuestras suites de referencia. Sin embargo, tenga en cuenta que, en el mundo de cualquier cosa relacionada con el cómputo, nada es tan claro y directo como opuesto (en comparación) al renderizado de juegos de evaluación comparativa para las API de computación, las marcas y el soporte respectivo a nivel de aplicación.

¿Qué es una API de cómputo?

Para responder eso, primero debe comprender por qué desea renderizar una imagen 3D en una GPU. El procesamiento de GPU permite que un motor de procesamiento de GPU realice cálculos de trazado de rayos en las GPU instaladas en el sistema, en lugar de la CPU. Las GPU están diseñadas específicamente para cálculos masivamente paralelos, pueden acelerar el proceso de renderizado en un orden de magnitud. Para lograrlo, debe ‘hablar’ con la GPU de una manera específica más optimizada para la carga de trabajo, para eso necesita una API de cómputo (interfaz de programación de aplicaciones).

Sí, API de cómputo. Cuando juegas en una PC con Windows 10, a menudo puedes elegir entre Directx12, OpenGL o Vulkan. Esa es una API, una ruta de código o un conjunto de bibliotecas optimizadas para sus juegos. Algunos funcionan mejor en Vulkan, otros en DirectX 12. No existe una respuesta clara sobre qué jugador funcionaría mejor en qué API, algunos simplemente hacen y otros simplemente no. Los desarrolladores eligen una API para la cual creen que su software o juego funciona mejor en sus tarjetas gráficas. Se vuelve más complicado cuando piensa en todas las versiones de DirectX, 9, 11 y 12 y otras subversiones disponibles. DirectX 12, por ejemplo, no se ejecuta en Windows 7 pero sí en Windows 10. Es lo mismo para las aplicaciones que necesitan usar su GPU para las funciones de cómputo. La API disponible y las opciones ofrecidas pueden hacer las cosas más complicadas ya que el mundo de representación de contenido parece dividido en dos campos, OpenCL (un estándar abierto) que funciona en tarjetas gráficas de AMD, NVIDIA e INTEL (y otros dispositivos), y luego está CUDA, la plataforma preferida para tarjetas NVIDIA. Sin embargo, CUDA es una API cerrada que solo se puede usar con las tarjetas gráficas NVIDIA, ya que esta cree que pueden ‘acercarse’ al hardware con su propia API específica y, por lo tanto, obtener más rendimiento.

Cuando se trata de títulos de creación de contenido (render), a veces las aplicaciones optarán automáticamente por lo que consideren mejor, otras incluso activarán API más avanzadas y extendidas, Blender, por ejemplo, ahora también puede usar Optix en lugar de CUDA, pero solo si usted tiene una tarjeta gráfica basada en NVIDIA RTX. OptiX es parte de Nvidia GameWorks y una API de alto nivel (cerca del hardware), lo que significa que está diseñado para encapsular todo el algoritmo del que forma parte el trazado de rayos, no solo el trazado de rayos en sí. Esto está destinado a permitir que el motor OptiX ejecute el algoritmo más grande con gran flexibilidad sin cambios en el lado de la aplicación. Solo podemos suponer que Optix utiliza núcleos RT (Raytracing) en las tarjetas gráficas de la serie GeForce RTX. Entonces, hay tres API de cómputo para render en GPU disponibles.

También déjame decirte que no es uno ni el otro; La representación híbrida es lo que más se aplica: (ejecutar OpenCL o CUDA tanto la GPU como la CPU): la representación de GPU OpenCL/CUDA se puede realizar en CPU y GPU al mismo tiempo, permitiendo que el código de cómputo combine sus CPU y GPU para utilizar todo recursos disponibles. Para este artículo, medimos solo el efecto de la GPU.

En este artículo, probaremos los tres títulos de representación de contenido con veinte tarjetas gráficas y veremos qué nos aporta el rendimiento. Lo hacemos con las tres aplicaciones mencionadas anteriormente, así como con las tres API de cómputo disponibles que estas aplicaciones pueden utilizar.

En este artículo, probaremos los tres títulos de representación de contenido con veinte tarjetas gráficas y veremos qué nos aporta el rendimiento.

Entorno de prueba (especificación del sistema)

Nuestro sistema de prueba de tarjeta gráfica se basa en un procesador Intel Core i9 9900K de ocho núcleos en la plataforma del chipset Z390. A continuación, tenemos funciones de ahorro de energía deshabilitadas para esta placa base y procesador (para garantizar resultados de referencia consistentes). Usamos Windows 10 todo reparado. Cada tarjeta se ejecuta en la misma PC con el mismo clon del sistema operativo.

Especificaciones del sistema

• Core i9 9900K
• Z390 (ASRock Tachi Ultimate)
• 32 GB DDR4 3200 MHz CL16
• NVMe M.2. SSD WD Black

Controladores gráficos

• Las tarjetas gráficas GeForce usan la 442.19.
• Tarjetas gráficas Radeon utilizamos el último controlador AMD Radeon Adrenalin 20.2.1

Para las nuevas NAVI los controladores aún están presentanto problemas y regresiones en el rendimiento OpenCL sobre Windows en algunas aplicaciones. Si bien se ven ganancias sobre Polaris y Vega en unos casos, en otros quedan por detrás o simplemente fallan. AMD ha estado priorizando su plataforma ROCm para Linux, mientras sigue trabajando en el soporte de computo para esta nueva arquitectura en Windows. La recomendación es, si se tiene algún problema, mantenerse en la arquitectura anterior en entornos de producción hasta la solución.

Tarjetas gráficas utilizadas

• GeForce GTX 1070
• GeForce GTX 1080 Ti
• GeForce GTX 1650 Super
• GeForce GTX 1660 Super
• GeForce GTX 980 Ti
• GeForce RTX 2060
• GeForce RTX 2060 Super
• GeForce RTX 2070 Super
• GeForce RTX 2080
• GeForce RTX 2080 Super
• GeForce RTX 2080 Ti
• Radeon R9 390X
• Radeon RX 5500 XT
• Radeon RX 5600 XT
• Radeon RX 5700
• Radeon RX 5700 XT
• Radeon RX 590
• Radeon RX Vega 56
• Radeon RX Vega 64
• Radeon VII

Rendimiento de la GPU: IndigoBench 4.0

Comenzamos con Indigo. IndigoBench ofrece una aplicación de referencia independiente basada en el motor de renderizado avanzado de Indigo 4, útil para medir el rendimiento de las CPU y GPU modernas. Debido al uso de OpenCL estándar de la industria, se admite una amplia variedad de GPU de NVIDIA, AMD e Intel. Eso también significa que este título está creando un campo de juego igual para todas las marcas, ya que CUDA, por ejemplo, no se activa automáticamente con las GPU GeForce.

Si está buscando una comparación pura 1:1 en el rendimiento de OpenCL, esta aplicación de renderizado probablemente ofrezca lo mejor de la arena informática con el rendimiento de OpenCL con renderizado como carga de trabajo. Hacemos un Supercar aquí. Es justo afirmar que NVIDIA tiene una ventaja en el rendimiento aquí.

Y, por supuesto, normalizado en porcentajes, la visión general del rendimiento entre las tarjetas de OpenCL da un poco más de perspectiva.

Rendimiento de GPU – Vray NEXT

V-Ray es una aplicación independiente para probar la velocidad de procesamiento de su hardware. Los resultados se muestran en Mpaths por segundo. La aplicación independiente incluye una sola escena de GPU y una sola escena de CPU. V-Ray es una aplicación de software de representación de imágenes generada por computadora desarrollada por la compañía búlgara Chaos Group. Es un complemento comercial para aplicaciones de software de gráficos de computadora 3D de terceros y se utiliza para visualizaciones y gráficos de computadora en industrias tales como medios, entretenimiento, producción de películas y videojuegos, diseño industrial, diseño de productos y arquitectura.

Con el lanzamiento de VRAY NEXT, teníamos la esperanza de contar con soporte de rendimiento de cómputo OpenCL para la plataforma Radeon. Sin embargo, la GPU V-Ray ofrece renderizado solo con CUDA . Es por eso que no ves las tarjetas Radeon aquí. Sin embargo, es un punto de referencia muy válido (y extremadamente bueno), por lo que continuaremos usándolo en revisiones de procesadores y GPU NVIDIA.

Te habrás dado cuenta de esto; tenga en cuenta que el RTX 2070 Super (TU104) logra superar a un 2080 Super (TU104), súper extraño ya que este último tiene las mejores especificaciones. Hemos visto tal comportamiento en el pasado y confirmamos este resultado con otros medios también, esto por cualquier razón que suceda. Por otro lado, este conjunto de pruebas muestra que si desea una buena relación calidad-precio con Vray, optaría por un RTX 2060 Super por el mejor valor en una sola configuración de tarjeta, tenga en cuenta aunque el RTX 2070 super , tiene un NVLINK, así que con una configuración de mGPU, esa es la siguiente mejor opción.

Rendimiento GPU – Blender 2.82

Blender v2.81a se ha actualizado recientemente hacia la compilación 2.82 y ofrece una amplia variedad de opciones y … API, dependiendo de su tarjeta gráfica. Iniciamos una escena en la que renderizamos un Aula: solo permitimos que la GPU se procese en la aplicación de referencia. Sin embargo, hay desafíos relacionados con la API para abordar con Blender:

• Las tarjetas AMD Radeon solo admiten OpenCL
• Las tarjetas NVIDIA GeForce hasta Pascal admiten CUDA, pero no OpenCL u Optix
• Las tarjetas NVIDIA GeForce RTX basadas en Turing pueden asignarse a CUDA u OptiX, pero no a OpenCL

Esa opción OptiX que necesita vigilar. OptiX solo funciona en tarjetas RTX. Dicho esto, sin embargo, no las tarjetas basadas en la arquitectura de Turing como la serie GTX 1660. Resultará ser (con diferencia) el procesador más rápido para tarjetas gráficas GeForce compatibles. OptiX Application Acceleration Engine es una API de trazado de rayos. Los cálculos se descargan a las GPU a través de la API de bajo nivel o de alto nivel introducida con CUDA. CUDA solo es propiedad de los productos de GPU de Nvidia. Para mostrarle los beneficios de rendimiento entre CUDA y la ruta del código OptiX, aquí hay un ejemplo de un RTX 2060 Super en CUDA y Optix:

Como puede ver, la ruta del código Optix es mucho más rápida si tiene una tarjeta gráfica compatible (RTX). Pero vamos a trazar las cosas. Con tres API para las cuales algunas funcionan en algunas tarjetas pero no en otras, será un desafío representarlo, ya que literalmente obtendría una tabla confusa y desordenada como esta:

Entonces sí, aunque sea un cuadro válido, será demasiado confuso. Para abordar eso, compararemos la API compatible y con mejor soporte en cada tarjetas gráficas probadas, primero Radeon OpenCL versus GeForce CUDA, volvamos a visitar y tracemos un gráfico:

Las tarjetas GeForce de los últimos diez años pueden utilizar CUDA (API cerrada), que está bastante cerca de OpenCL (API abierta y estándar), y tambienla esta segunda API. Aquí podemos ver veinte tarjetas que representativas. OpenCL se aplica para Radeon y CUDA para GeForce. Tenga en cuenta que no podemos seleccionar OpenCL en las tarjetas GeForce, Ergo CUDA está seleccionado. Lo que notará es que Hawái / Granada y Polaris tienen un rendimiento espectacular. Para Polaris eso me sorprendió un poco. Sin embargo, Vega y NAVI con sus arquitecturas GCN actualizadas ciertamente son fuertes competidores en el campo de la computación gráfica actual. Aparte del Radeon VII, las tarjetas funcionan más o menos en el rango de rendimiento esperado.

Para las tarjetas Geforce, si miras la pila premium (superior), el rendimiento está mucho más cerca el uno del otro, así que sí, hay una mayor optimización posible allí. Entonces, activemos las tarjetas compatibles Optix:

En este cuadro anterior, hemos habilitado Optix donde podría habilitarse, que es la serie RTX. Donde OptiX no es posible, ejecutamos CUDA, y luego Radeon tiene solo una opción, OpenCL. Un 1660 Ti, por ejemplo, está basado en Turing, sin embargo, la ruta de código OptiX no funciona aquí. Claramente, Optix es una API altamente optimizada que debe usar absolutamente con Blender (si tiene una tarjeta gráfica Turing RTX o más reciente). Ahora normalicemos en relación con los porcentajes:

Pruebas de Techgage

Radeon ProRender

Radeon ProRender es una solución de renderizado desarrollada por AMD. Al estare basada en OpenCL puede emplearse con GPUs de AMD y NVIDIA. Se puede emplear en varias aplicaciones de modelacion, donde se incluye como plugin.

Concluyendo

Y con estas últimas palabras escritas, terminamos esta pequeña reseña. Esperamos haber respondido algunas preguntas de nuestra comunidad y base de lectores. Los resultados obtenidos se actualizarán y se agregarán a nuestras futuras revisiones de tarjetas gráficas. La gente necesita comprender que en el mundo de la representación informática, nada es tan simple como parece. Esa es la única conclusión que puede deducir de este artículo. Con AMD Radeon apegándose únicamente a OpenCL, y NVIDIA ofreciendo a CUDA y OptiX una comparación 1:1 ciertamente no es fácil o podría decirse que es justo. Sin embargo, al final, suponemos que el usuario final siempre optará por la solución más confiable y más rápida. Y exactamente eso, debe ser la base de comparación en el procesamiento, ya que el tiempo de respuesta de la carga de trabajo a la salida final es el único factor dominante. Menos segundos prestados es menos dinero gastado. Continuaremos probando y usando estos títulos, y para el grupo Chaos, nos gustaría abogar por abrir el soporte de OpenCL en VRAY NEXT para las tarjetas gráficas Radeon, ya que ser solo CUDA, realmente es un poco escaso en el año 2020.

3 respuestas a «Revisión de rendimiento de GPU para render»

  1. La gtx 1060 tiene un desempeño en render semejante a una GTX 980, pero como tiene 6 Gb de memoria es más factible…
    En cuanto a drivers esos no influyen taaanto en las tareas de renderizado, tal vez en los drivers más pulidos unos segundos menos ..por qué el renderizado es fuerza bruta de los CUDA ….
    Sin embargo por lo menos en Blender … Renderizar en Linux es casi el doble de rapido …

  2. Aun mi GTX 980 me arroja buenos resultados en los renders, pero como tiene solo 4 GB de RAM debo economizar bien las escenas en Blender y Unreal Engine que en este último tengo un parche que calcula la iluminación por GPU….
    Uso una RTX 2080 super de un brother para renders más pesados y el parche de Optix es una bestialidad para Cycles …
    Vamos a ver las 3080 cómo vienen con esos CUDA ….
    Yeah

  3. valla Ponen la R9 390x perp no ponen la GTX1060 que es una tarjeta de viodeo super popular.

    Maikel deviste incluir esa cuando hiciste los Benchmarks…..

    ahora si en serio que drivers usan porque los Nvidia Studio ya se pueden usar en las GTX y me gustaria ver una prueba de rendimiento profesional con ambos drivers,

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *