¿Por qué acabaremos usando una segunda gráfica para streaming?

¿Por qué acabaremos usando una segunda gráfica para streaming?

Josep Roca

La creación y emisión de contenido a través de internet se ha convertido en una forma de expresión y de vida para mucha gente. Por desgracia requiere equipos de una potencia considerable y muchas veces incluso un PC para jugar competente puede tener problemas. Una de las soluciones de cara al futuro es usar una segunda tarjeta gráfica para el streaming. ¿Cómo funciona y que implicaciones tendrá?

Las tarjetas gráficas con GPU dual hace tiempo que no aparecen en el mercado de los componentes para juegos- Dada la complicación de usar ambas al mismo tiempo por parte de los desarrolladores. Si bien se están creando mecanismos en los futuros diseños para permitir el uso de varios chips gráficos al mismo tiempo, poco a poco dichas configuraciones han ido desapareciendo. Sin embargo, las configuraciones con doble gráfica pueden volver, no para ejecutar juegos con más frames, sino para usar la segunda gráfica para el streaming de contenido.

Una sola gráfica no es lo suficientemente buena para emitir

Como bien sabréis, toda GPU tiene en su interior un pequeño procesador capaz de codificar y decodificar vídeo a tiempo real. El problema es que de cara al streaming de juegos, este no es lo suficientemente potente para lo que la emisión de contenido. Lo que fuerza en muchos casos a tener que usar la potencia bruta de la propia gráfica para realizar el proceso de conversión a vídeo o en su defecto núcleos adicionales del procesador central en el caso de que la primera no tenga el rendimiento suficiente para ello.

Monitor Streaming

Pues bien, hemos de pensar que el streaming funciona a la inversa que el juego en la nube. En vez de recibir nosotros un contenido en vídeo generado por un servidor que reproduce un juego, es nuestro PC es el que genera ese contenido y lo emite a terceros. Lo que no solo supone que ha de tener potencia y memoria para reproducir el juego, sino también para codificar vídeo. Por lo que si tienes poca memoria en la gráfica o no es lo suficientemente potente, entonces se acaba teniendo problemas en la emisión. La lógica es pensar que necesitamos un hardware para gráficos más potente, sin embargo, no tiene que ser necesariamente así.

Usando la segunda tarjeta gráfica para streaming de vídeo

Las tarjetas gráficas no solamente sirven para generar gráficos bonitos, tienen muchas más utilidades gracias a su pipeline de computación. Sin embargo, la gran mayoría tienen que ver con mundos que se encuentran totalmente alejados de los juegos, como puede ser computación científica o minería. Es más, en el caso de los juegos se requiere que las dos unidades sean totalmente iguales. No obstante, hay una aplicación, es que sumamente útil y que os permitirá usar vuestra segunda tarjeta gráfica de cara al streaming de contenido y que será crucial en los próximos años.

Segunda Gráfica Streaming Jugar

Nos estamos refiriendo a la codificación a través de GPU, y con ello no nos referimos a usar el pequeño códec de vídeo de estas. Más bien, la idea es la de usar toda la potencia de cálculo de la segunda tarjeta gráfica para el streaming, y, por tanto, no como asistente de la primera a la hora de generar los gráficos de los juegos. La idea es aprovechar la capacidad de cálculo en paralelo que tienen los procesadores de la tarjetas gráficas para convertir los diferentes bloques de la imagen en los bloques comprimidos en formatos de vídeo.

Claro está, que el modelo ideal es poder tener toda la potencia del mismo para ello, pero no la tendríamos para juegos y viceversa. De ahí a separar la funcionalidad en dos chips distintos de tal manera que no exista un proceso de contención. Ya que cada GPU podría trabajar sin problemas con su memoria de vídeo.

¿Cómo funciona?

Esto se puede hacer a través de un proceso muy simple:

  • La Tarjeta Gráfica A genera el fotograma del juego que se almacena en su memoria de vídeo para ser transmitido.
  • A través de un canal DMA, la tarjeta gráfica B se comunica con la memoria de A, lee el último fotograma y copia los datos en su propia memoria a través de la interfaz PCI Express.
  • Con la información que ahora tiene B empieza el proceso de codificación de vídeo usando toda su potencia, liberando a la primera tarjeta gráfica de realizar dicha tarea y no necesitando la participación del procesador central en ningún momento. El cual también acaba funcionando de forma más desahogada.

Para el proceso no hace falta tener una gráfica de alta potencia, incluso un modelo que tenga un consumo de 75 W  en el puerto PCI Express podría hacer este trabajo e incluso la gráfica integrada en tu procesador.

Entonces, ¿por qué no se usa más a menudo?

Sobre el papel todo esto suena muy bien, pero se necesita que los programas encargados de emitir contenido por internet estén pensados para ello y, por tanto, han de optimizar el código para el uso de la segunda tarjeta gráfica y creednos que no es sencillo. Dado que requiere el empleo de las unidades DMA en ambas tarjetas gráficas, es necesario sincronizarlas manualmente y tanto NVIDIA, como Intel y AMD tienen sus propias unidades con sus propios conjuntos de instrucciones. Por lo que al final se requeriría crear 9 versiones de un mismo programa solo para la sincronización entre la gráfica que genera el frame y la que lo codifica.

RenderizadoCodificación
Intel ARCIntel ARC
Intel ARCAMD Radeon
Intel ARCNVIDIA GeForce
AMD RadeonIntel ARC
AMD RadeonAMD Radeon
AMD RadeonNVIDIA GeForce
NVIDIA GeForceIntel ARC
NVIDIA GeForceAMD Radeon
NVIDIA GeForceNVIDIA GeForce

Los programas encargados de realizar la codificación de vídeo no son problema, ya que estos pueden ser escritos en lenguajes shader de alto nivel como HLSL o GLSL y, por tanto, ser compatibles con todas las combinaciones con un código en común. La complicación viene más bien con la sincronización entre ambas GPU para poder efectuar la tarea. Por lo que es necesaria una estrecha colaboración por parte de los fabricantes.

En la actualidad aplicaciones altamente usadas como Streamlabs OBS no tienen esta capacidad y la única forma que tenemos de efectuar esto es a través de un segundo PC. Lo cual supone un sobrecoste para el usuario interesado en emitir por internet. Lo ideal no es complicar las cosas, sino hacerlas más accesibles y sencillas.

El arma secreta de Intel y AMD: usar la GPU integrada para el streaming

Como hemos dicho antes, el streaming con un segunda gráfica no es algo que requiere mucha potencia para efectuarse. Por lo que sería posible incluso hacerlo usando la integrada en el procesador. El problema viene cuando se necesita que existan unidades DMA que comuniquen ambas partes y normalmente esto no ocurre. Simplemente, cuando la tarjeta gráfica más potente se activa para generar los gráficos de los juegos, la integrada queda inactiva. Sin embargo, esto es algo que se puede solventar en futuros modelos.

Una de las cosas que quiere hacer Intel con la dupla entre sus gráficas ARC y sus procesadores Core es lo que han bautizado como Deep Link, cuya función principal es usar precisamente la iGPU para asistir en la codificación de vídeo de cara al streaming de contenido. Lo que supone que el usuario no tenga que comprarse una segunda tarjeta gráfica. Por otro lado, se trata de un escenario ideal,  ya que le quita el trabajo a los creadores de aplicaciones para streaming y es una motivación para comprar una dupla solo Intel.

El otro gran fabricante que puede hacerlo es AMD, puesto que no olvidemos que tanto las CPU Ryzen como las tarjetas gráficas Radeon son de esta compañía y ya les hemos visto realizar movimientos similares con su SmartShift, el cual funciona de manera similar al Deep Link de Intel, pero por el momento no han anunciado dicha funcionalidad, aunque no hay dudas que la vamos a ver también siendo aplicada por la empresa de Lisa Su. Al fin y al cabo el interés tanto de una como de la otra es que compres ambos productos bajo su sello.

¿Es esto el fin de las capturadoras de vídeo?

En el mundo profesional de la emisión de vídeo por internet ya nadie utiliza capturadoras de vídeo, ya que la potencia de las tarjetas gráficas y su capacidad para trabajar con grandes cantidades de datos en paralelo las hacen ideales para este tipo de tareas. Es más, consiguen unos resultados mucho más grandes, incluso que varias capturadoras internas y a un coste de infraestructura mucho más barato.

Capturadora Razer Ripsaw

Si ya nos vamos al mercado doméstico, la gran mayoría de capturadoras tienen el problema de que son externas y dependen de la velocidad del puerto USB, lo que añade latencia al proceso y tampoco tienen mucha potencia, en especial las que no pueden usar el puerto USB-C. Esto provoca que en muchos casos sean una carga para la CPU, debido a que tampoco realizan bien la codificación. Por lo que la idea de tener una segunda tarjeta gráfica para streaming no es descabellado y más cuando está la misma que se encuentra en la CPU central y no supone un coste adicional para el usuario.

¿El único problema que le vemos a este planteamiento? El hardware gráfico en los procesadores portátiles es mucho más potente que el que se encuentra dentro de los de sobremesa. En todo caso, podemos conectar un segunda tarjeta en la placa base de nuestra torre y puede ser una forma con la que se le dé salida a las de gama de entrada, habitualmente relegadas a equipos para oficinas y colegio. Dicho mercado se encuentra en peligro de desaparición y no hay duda que será una manera de salvaguardarlo. Eso sí, va a depender de que los fabricantes automaticen ciertos procesos con los drivers y también que los creadores de aplicaciones realicen los cambios pertinentes.

5 Comentarios