¿Cómo conseguirán las GPU Intel más FPS para igualar a NVIDIA y AMD?

Los algoritmos de superresolución ejecutados desde las GPU Gaming se han convertido en la punta de lanza de los diferentes fabricantes de GPU Gaming. Con la entrada de Intel a dicho mercado no han querido quedarse atrás y han desarrollado su propia contrapartida al DLSS de NVIDIA y al FSR de AMD bajo en nombre de Intel Xe Super Sampling. ¿Cómo funciona el Intel XeSS y qué diferencias tiene frente a sus rivales?

Junto a la presentación definitiva de lo que antes se conocía como Xe-HPG y que ha sido rebautizado como ARC Alchemist. Intel no solo nos habló de su nueva generación de arquitecturas gráficas, sino de la apuesta por la inteligencia artificial de cara al futuro, tanto en CPU como en GPU. En el caso concreto de sus GPU han desarrollado un algoritmo llamado Intel XeSS, el cual viene a competir frente al FSR de AMD y el DLSS de NVIDIA. Donde coinciden en objetivos, pero no la forma de funcionar entre los tres algoritmos.

¿Por qué necesitamos algoritmos de superresolución?

Pajaro Superresolución

A la hora de procesar los gráficos cada vértice, fragmento o pixel tienen asignado como mínimo un hilo de ejecución en la GPU y se ha de tener en cuenta que la cantidad de píxeles es mucho mayor que la cantidad de vértices en la escena. Esto significa que cuando se aumenta de resolución lo que ocurre es que acabamos aumentando de la misma manera la cantidad de instrucciones a ejecutar dentro de la GPU, así como de sus datos y por tanto el ancho de banda también aumenta.

El problema es que esto implica tener una GPU mucho más grande en tamaño, no solo por el aumento de las diferentes unidades, sino también por el hecho que al requerir un mayor ancho de banda también requiere controladores de memoria más complejos. No olvidemos que estos se colocan en el perímetro exterior de cualquier procesador y por tanto tienen que ver con su tamaño. Y en especial no podemos olvidarnos del alto consumo que tienen las memorias que se utilizan en las tarjetas gráficas gaming.

Los algoritmos de superresolución como el AMD FSR, el Intel Xess y el NVIDIA DLSS buscan solucionar este problema. Se basan en aumentar el hardware en un porcentaje minúsculo, menos del 10%, para poder obtener un rendimiento que de manera tradicional requeriría de otra manera duplicar el tamaño de una GPU. A todo esto no podemos olvidar el Ray Tracing, cuyo algoritmo incluso haciendo uso de las estructuras de aceleración como el BVH funciona a nivel de píxel, de ahí que los algoritmos de superresolución se hayan adoptado como parte esencial de los gráficos a tiempo real.

¿Qué es el Intel XeSS?

Intel Xess Calidad

Intel va a ofrecer dos versiones del Intel XeSS y por tanto dos algoritmos distintos. En ambos casos estamos hablando de un algoritmo que se basa en el Deep Learning y en la visión por computador y por tanto se utiliza una red neural de inferencia que predice la imagen a mayor resolución, con más cantidad de píxeles, desde una a menor resolución y por tanto una menor cantidad de píxeles.

La primera variante hace uso del SIMD sobre registro o SWAR que tienen algunas GPU, este mecanismo consiste en que la ALU de 32 bits se puede subdividir en dos ALU de 16 bits realizando la misma instrucción o 4 de 8 bits. Pues bien, el formato DP4A consiste en agrupar 4 operandos de 8 bits en un registro de 32 bits. Por lo que una de las variantes del XeSS se podrá ejecutar en las GPU integradas de Intel, así como en cualquier GPU que soporte este formato, ya que Intel la hará de código abierto.

La segunda variante del Intel XeSS en cambio es más compleja, ya que funciona haciendo uso de las unidades Tensor de los Intel Arc llamadas XMX, pero no funcionan en las GPU de NVIDIA con Tensor Cores. La explicación por parte de Intel no es otra que NVIDIA mantiene bajo llave la forma de funcionar de los Tensor Cores de sus GPU, el uso de las unidades XMX y la capacidad de realizar extremadamente rápida los cálculos con matrices que requieren las redes convolucionales. Dado que no funciona en las GPU de AMD y por el momento las de AMD carecen de este tipo de unidades, la segunda variante sería de uso exclusivo para las GPU de Intel.

¿En qué se diferencia el Intel XeSS de las soluciones de AMD y NVIDIA?

Intel XeSS Temporalidad

En realidad se encontraría entre los dos mundos, ya que pese a que se trata de una solución basada en Deep Learning como la de NVIDIA desde Intel han afirmado que van a publicar el código de su implementación como ha hecho AMD con su FidelityFX Super Resolution. Por lo que los desarrolladores podrán aplicarlo de manera más fácil en sus juegos y aplicaciones. Se trata de una estrategia que en el caso del algoritmo de AMD ha permitido su implementación más allá de lo esperado como son emuladores de consolas antiguas, aplicaciones de Linux e incluso juegos que no habrían recibido un parche de este tipo.

Al igual que el DLSS de NVIDIA tiene en cuenta también los datos de temporalidad, los cuales se obtienen a partir de de la información de los fotogramas anteriores, esto es algo que no realiza el FSR de AMD, dado que la solución de los rojos solo coge la información del fotograma actual. No olvidemos tampoco que el algoritmo de AMD no se basa en la inteligencia artificial y por tanto no requiere de entrenamiento mientras que el de NVIDIA sí. Pues bien, Intel ha afirmado que XeSS tampoco, y es en este punto donde las cosas se ponen interesantes.

¿Por qué el XeSS no necesita entrenamiento?

Data Center

Una de las cosas que diferencia el XeSS del DLSS de NVIDIA es que el primero no necesita entrenamiento. En el proceso de entrenamiento tenemos dos elementos funcionando al mismo tiempo, el primero de ellos se encarga de predecir y el segundo de supervisar. Cuando una predicción por parte de la red neuronal convolucional es incorrecta entonces el hardware supervisor le devuelve la respuesta negativa y la red neural se va afinando más y más hasta que aprende a realizar las predicciones correctas.

En un videojuego donde no se repite ni un solo fotograma, eso es mucho más difícil de hacer que en una película donde siempre hay los mismos fotogramas. Es por ello que lo que normalmente se suele hacer es entrenar la red neuronal con supervisión. La cual consiste en ejecutar el juego a alta resolución en un sistema, escalar la imagen hacia abajo en un proceso que añade ruido y a partir de esos datos crear una red neural en el sistema que tendrá que hacer la inferencia para que pueda generar la imagen a mayor resolución.

Intel afirma que con XeSS no es necesario el entrenamiento y por tanto no es necesaria la supervisión por parte de un sistema externo. La realidad de dicha afirmación no es otra que el proceso de entrenamiento es realizado dentro del propio hardware de la GPU  En vez de realizarse en un hardware remoto. Para ello la GPU lo que hace es ejecutar el juego en dos instancias simultáneas al mismo tiempo, una haciendo de supervisor y en la otra se va afinando la red neural. Esto permite a los que implementen el Intel Xess en sus juegos y aplicaciones poder afinar el algoritmo y no depender de servidores externos.

Los ingredientes secretos que Intel ha integrado en sus GPU para el XeSS

Para acelerar el entrenamiento Intel incluirá una serie de unidades adicionales en la GPU, como son el Downsampler, la unidad para obtener la misma imagen a menor resolución y la que calcula la pérdida de calidad de la señal. Por no olvidarnos del Backpropagator, el cual es clave durante el proceso de entrenamiento desde la propia GPU. Por el momento desconocemos donde se encuentran estas unidades para el entrenamiento de la red neuronal convolucional, pero suponemos que son una unidad de apoyo aparte de lo que es el motor de renderizado, pero dentro de la propia GPU.

Los algoritmos de superresolución suelen utilizar algoritmos de supermuestreo en el proceso para conseguir la imagen a mayor resolución. Algunos hacen uso de interpolación bicúbica, mientras otros como el FSR utilizan una variante de Lanczos, aunque todos ellos se ejecutan en las unidades Shader de la GPU y por tanto acaban restando potencia a las mismas. Intel habría incluido unidades de escalado, las cuales serían capaces de ejecutar uno o varios algoritmos de supermuestreo de manera automática y liberarían a las unidades SIMD del Xe Core de dicha tarea, permitiendo que estas puedan utilizarse en otras partes donde también son necesarios.

Por lo que en conclusión, el Intel XeSS añade una serie de hardware adicional que hasta ahora era inédito en las GPU. No solo para acelerar estos algoritmos, sino también para aumentar la compatibilidad y facilitar su implementación en los diferentes juegos que hay en el mercado. Ya sean las últimas novedades o juegos con algunos años a las espaldas. Por lo que se puede decir que Intel con el XeSS ha tomado buena nota de las carencias y limitaciones de sus rivales.