Una de las cosas que más se han repetido en los últimos días por parte de influencers y en medios especializados en videojuegos es afirmar que hay una GPU con arquitectura RDNA 3 en PS5 Pro. No obstante, dicha afirmación es una falsedad producto de la desinformación y en este artículo lo vamos a demostrar. ¿Cuál es la verdad de la GPU de PS5 Pro?
Nota: A día 18 de diciembre de 2024, Mark Cerny ha realizado una presentación de 37 minutos donde ha dado detalles del hardware de la consola. Es por ello que hemos decidido hacer una nueva versión de este artículo, añadiendo la nueva información. Para ello, no hemos recortado nada de información sobre el artículo original, solo le hemos añadido la nueva información, y se puede decir que sobre lo poco que sabíamos, la acertamos al 100%. Para las secciones nuevas hemos añadido un * al inicio de cada titular.
Arquitectura versus ISA
Una de las cosas más confusas a la hora de hablar de una GPU es la confusión entre ISA y arquitectura. Lo primero indica las instrucciones que entiende y puede ejecutar la GPU, lo segundo es la organización de los diferentes bloques de hardware. En las CPU, dicha diferencia es más fácil de entender. Por ejemplo, un Cortex A78 hace referencia a una arquitectura de CPU, pero la ISA es ARM. En cambio, en las GPU la ISA y la arquitectura son lo mismo.
Esto se hace por el hecho de que en PC los shaders se entregan en los juegos sin compilar. Esto les permite a los fabricantes añadir y quitar instrucciones para optimizar el rendimiento. Sin embargo, y como veremos más adelante, esto no es así en el caso de las consolas, sobre todo de cara a la compatibilidad hacia atrás. Ahora bien, la pregunta clave es: ¿Qué arquitectura e ISA es la GPU de PS5 Pro? Por un lado, tenemos que el vídeo de Mark Cerny se habla de que PS5 tiene arquitectura RDNA 2 en su GPU; sin embargo, la organización de la de PS5 Pro es distinta y tiene ciertos cambios profundos en ciertas partes de la arquitectura mientras mantiene la compatibilidad hacia atrás.
Todo ello se traduce en que PS5 Pro tiene su propia arquitectura de GPU, la cual podríamos llamarla RDNA 2++ y se trata de una iteración propia. Sin embargo, por las redes hemos podido leer a varios medios e influencers hablar de que existe una GPU RDNA 3 en PS5 Pro. Es por ello que en este artículo argumentaremos en contra de ello, no con el afán de tener la razón, sino como un ejercicio para descubrir las entrañas de la nueva consola de Sony.
33 versus 16 TFLOPS en RDNA 3 ¿y PS5 Pro?
Por lo que, todo el argumento y polémica acerca de la arquitectura la nueva consola no se refiere a que tengamos una GPU RDNA 3 en PS5 Pro o no, sino más bien para hablar si esta alcanza los 16 o 33 TFLOPS. Dado que se cree que, por ser RDNA 3, la nueva consola de Sony alcanzará una cifra más alta. No obstante, esta capacidad de poder duplicar la cantidad de operaciones por ciclo solamente se da en las instrucciones VOPD, las cuales se encuentran documentadas en la página 360 de la documentación de la ISA de RDNA 3, por lo que no todas las instrucciones funcionan el doble de rápidas.
Hay que recordar que los TFLOPS son una tasa de velocidad, al igual que ocurre con un coche. Por mucho que el vehículo alcance los 400 km por hora, no irá todo el rato a dicha velocidad. Con los microprocesadores ocurre lo mismo, la tasa de operaciones depende de cada instrucción. Dicho de otra forma, pensar que se alcanzará siempre la potencia de 33 TFLOPS en PS5 Pro es ser bastante ingenuo, es más, hay una serie de motivos que hacen que este hecho no ocurra casi nunca.
Limitaciones en el VOPD
Las instrucciones VOPD en RDNA 3 no están limitadas a ciertas instrucciones, sino a que se cumplan ciertas condiciones especiales. Hemos de partir del hecho que cada Compute Unit puede operar de dos formas distintas
- En el modo WAVE32, que es el propio de las arquitecturas RDNA las instrucciones se agrupan en bloques de 32 operandos, lo que permite solucionar una ola en un ciclo bajo las instrucciones más rápidas, ya que se procesan en unidades SIMD32.
- El otro modo es el llamado WAVE64, donde las olas son de 64 operandos, pero las unidades SIMD se subdividen en unidades SIMD16, provocando que la instrucción más rápida tarde 4 ciclos en solventarse. Este último es el modo que usan los juegos de PS4 y PS4 Pro.
En cuanto al soporte de instrucciones VOPD, este solo se da en el modo WAVE32, ya que el modo WAVE64 no soporta dichas instrucciones. Por lo que dependiendo del modo usado en un juego, este puede acceder al doble de potencia en ciertas instrucciones o no. Todo ello nos lleva el problema de la compatibilidad, en todo caso no es nada que no se pueda solucionar con el correspondiente parche, pero al mismo tiempo esto invalida todas las pruebas de rendimiento realizadas con juegos de PS5 en su versión mejorada en el caso de que haya una GPU con arquitectura RDNA 3 en PS5 Pro, ya que no pueden usar la potencia extra al no haber sido actualizados.
Alta dependencia del compilador
El otro problema es que la generación de instrucciones VOPD es que depende de si el compilador es capaz de detectarlas en el código y si se dan la circunstancias adecuadas para ello, es decir, si hay operandos libres en las ALU y los registros se encuentran disponibles. Vamos, que conseguir el ratio del doble de TFLOPS es casi una lotería, de ahí a que en la mayoría de pruebas de rendimiento comparativo entre RDNA de segunda y tercera generación apenas hay diferencias. Por lo que incluso si tuviésemos una GPU RDNA 3 en PS5 Pro, es muy difícil obtener ese ratio.
Ventaja de RDNA 3 sobre RDNA 2 | Sin RT | Ray Tracing con bajo nivel de detalle | Ray Tracing al máximo | |
---|---|---|---|---|
Cyberpunk 2077 | +10 % | +16 % | + 23 % | |
Dying Light | 0 % | +9 % | + 8 % | |
F1 22 | + 1 % | +3 % | + 13 % | |
Hogwarts Legacy | + 1 % | +1 % | + 7 % | |
Metro Exodus | – | +2 % | + 14 % | |
Returnal | + 9 % | + 20 % | + 22 % | |
Spider-Man: Miles Morales | + 12 % | + 11 % | + 12 % | |
The Callisto Protocol | + 7 % | + 1 % | + 7 % | |
The Witcher 3 | – 3 % | + 7 % | + 8 % |
Por lo que alcanzar los 33 TFLOPS es algo que ocurre muy poco y funciona tan bien como un reloj estropeado. Esto se puede ver en varias pruebas de rendimiento, donde la diferencia en lo que a rendimiento entre dos GPU con el mismo número de núcleos y velocidad de reloj, pero una siendo RDNA 2 y la otra RDNA 3 es mínima. Tal y como se puede observar, es con el uso de Ray Tracing que el rendimiento de RDNA 3 es superior al de RDNA 2, sin embargo, esto no tiene nada que ver con el VOPD, sino con la implementación de una unidad de Ray Tracing mejorada en dicha arquitectura.
Compatibilidad hacia atrás en PS5 Pro
No todo el mundo tiene el mismo ordenador, mientras que todo el mundo tiene la misma consola si hablamos en términos de hardware. Debido a que los programadores en PC no saben qué hardware tendrá el usuario, pues lanzan los programas que ha de ejecutar la GPU, los llamados shaders, en lenguaje de alto nivel, sin compilar.
En consolas este proceso no tiene sentido, ya que el hardware, al ser el mismo, no es necesario realizar la compilación, ya que sería una pérdida de tiempo hacerlo, además, se ha convertido en uno de los problemas del PC, provocando problemas de rendimiento en los juegos mientras se realiza la compilación de shaders en los videojuegos. Por supuesto, y como habréis concluido, hacer esto en una consola de videojuegos donde todo el mundo usa el mismo hardware es una estupidez.
Pero, ¿qué ocurre cuando hablamos de una versión potenciada de una consola ya existente que ha de reproducir los juegos sin problemas? Pues que, al no haber compilación de shaders, se ha de mantener el set de instrucciones original, el cual, en el caso de PS5 Pro para mantener la compatibilidad con PS5, este ha de mantener el set de instrucciones RDNA 2 como base, y expandirlo con tal de añadir las nuevas funcionalidades sin tener problemas a la hora de ejecutar los títulos ya existentes.
*Mark Cerny confirma que los núcleos de la GPU no son RDNA 3
Al final, nuestra sospechas se han visto confirmadas de la mano del propio arquitecto de la consola. El set de instrucciones del procesador gráfico sigue siendo RDNA 2, en concreto una versión extendida del mismo, el cual añade nuevas instrucciones, especialmente para el Deep Learning, pero sobre ese punto en concreto ya hablaremos más adelante en este mismo artículo. En cualquier caso, lo primero que hace es confirmar que el binario de los shaders compilado para RDNA 3 no sería compatible en la GPU de PS5 Pro.
Las palabras de Cerny sobre el tema son las siguientes:
Por ejemplo, los juegos tienen algo llamado programas Shader que se ejecutan en la GPU de un juego. Puede haber más de 100,000 de ellos. Si adoptamos RDNA 3 Technologies hasta el punto de que el código compilado para ejecutarse en PS5 Pro no se ejecutaría en PS5, eso significaría crear dos versiones de cada pieza de código ejecutable: una para PS5 y otra para PS5 Pro, lo que es una complicación enorme para el paquete del juego.
Necesita ser parcheado para incluir esa segunda versión y luego el juego necesita cargar selectivamente solo la versión apropiada o encontrar espacio para ambas versiones en la memoria del sistema. Es una gran carga para los desarrolladores. En consecuencia, PS5 Pro usa una versión de RDNA que estoy llamando RDNA 2.x, que incorpora una serie de características de RDNA 3, pero nada que pueda causar ese grado de complicaciones.
Por lo que nos queda confirmado a través de una fuente primaria que las Compute Units no son RDNA 3.
Ciertas unidades de función de la GPU de PS5 Pro son RDNA 3
Eso sí, hemos de considerar que la GPU de PS5 Pro sí que tiene algunas partes que se han adoptado de RDNA 3, pero no son las Compute Units, sino una unidad de función fija concreta, la llamada Geometry Engine, en concreto, Cerny ha dejado caer lo siguiente:
Por ejemplo, los aspectos del procesamiento de vértices y primitivos son más rápidos en PS5 Pro; eso se debe a la incorporación de partes de la geometría de RDNA 3, que son potentes, pero triviales para que el juego los adopte o mejor aún, invisibles para el programa del juego.
Son invisibles por el hecho de que no se ejecutan en los núcleos de la GPU, sino en el Geometry Processor (llamado Geometry Engine por Sony), que se encuentra en la parte central de la GPU junto a los procesadores de comandos, las mejoras de ambas partes en RDNA 3 han sido adoptadas por Sony en su nueva consola al no entrar en conflicto con el código ya existente. Sin embargo, no es la única unidad de función fija que habría sido adaptada de RDNA 3, como es el caso del propio procesador de comandos o los ROPS.
¿Y cuáles son las mejoras?
- El nuevo procesador de comandos soporta Multidraw Indirect.
- En cuanto al Geometry Processor ahora puede descartar el doble de primitivas no visibles en la misma cantidad de tiempo.
- Las unidades de rasterizado y los ROPS en PS5 no soportaban Variable Rate Shading, ahora sí que lo hacen. No obstante, la mejora más importante es OREO (Opaque Random Export Order) que permite a los ROPS procesar los píxeles exportados por los núcleos de la GPU fuera de orden para luego escribirlos ordenados sobre el búfer de imagen.
*Mark Cerny desmiente lo de los 33 TFLOPS
Y lo ha hecho en el propio vídeo, en una sección que ha titulado como FLOPFLATION, el cual es obviamente un juego de palabras con la palabra inflación. He de comentar que, sin ánimo de mencionar a nadie y no querer llegar a peleas personales, mucha gente ha afirmado tener documentos que avalan lo de los 33 TFLOPS y que incluso nos hicieron llegar supuestos documentos del SDK donde se menciona dicha cifra.
Sus palabras exactas son las siguientes:
Una cosa que me gustaría aclarar es el número erróneo de 33,5 TeraFLOPS que ha estado circulando para PS5 Pro. Ese número no está en ninguna parte. Nuestros documentos para desarrolladores provienen de un malentendido por parte de alguien que comentó sobre información técnica filtrada de PS5 Pro. Parte de la confusión proviene de que las arquitecturas RDNA 3 tienen el doble de FLOPS que las arquitecturas RDNA2
Por lo que queda confirmado por parte de una fuente primaria que la GPU de PS5 Pro no tiene una potencia de cálculo de 33.5 TFLOPS, lo cual es lo que comentamos nosotros en el artículo original.
Las unidades de Ray Tracing en RDNA 3 y PS5 Pro
Una de las partes que ha recibido una mejora impresionante en la nueva consola son las Ray Accelerator Units, las cuales fueron novedad en RDNA 2, pero con un rendimiento mucho más bajo que los RT Cores de NVIDIA, lo que ha afectado de paso el rendimiento del trazado de rayos en consolas de forma negativa. El principal motivo es el hecho de que el recorrido del árbol BVH se ha de hacer con un programa shader.
Dicho problema se solucionó en PC gracias al Ray Accelerator Unit de segunda generación para RDNA 3 en PC. La cantidad de intersecciones rayo-objeto se mantiene en 4, pero es capaz de solventar un 50% más en la misma cantidad de tiempo, en especial gracias a mover el recorrido del árbol BVH a esta unidad, lo que libera a las unidades SIMD para otras tareas, y al añadido de nuevas funciones de reordenamiento.
No obstante, no veremos la unidad de Ray Tracing de RDNA 3 en PS5 Pro, sino una más avanzada, la cual se verá también en PC en las RX 8000 basadas en RDNA 4. Esto en la nueva consola de Sony supone una expansión de la ISA para poder invocar las nuevas funciones de la Ray Accelerator Unit.
Entre lo que más destaca es la doble unidad de intersección, lo cual se traduce en x 3 en la capacidad de intersecciones por ciclo de reloj y núcleo que puede calcular. Ahora sumadle el salto de 36 a 60 núcleos en la GPU de PS5 Pro. ¿La única limitación? Es necesario realizar mejoras en el código del juego para sacar provecho a las nuevas características, lo que requiere el uso de un parche.
*Cerny al habla sobre el Ray Tracing de PS5 Pro
Lo primero que ha hecho Mark Cerny es confirmar la unidad doble de intersección en la GPU de PS5 Pro, siendo este el único elemento adoptado de las futuras RDNA 4 de PC. Lo cual significa que el número de intersecciones por núcleo de la GPU y por ciclo de reloj se ha duplicado. Teniendo en cuenta el aumento de las Compute Units, esto significa el triple de rendimiento en comparación con la consola estándar.
El hecho de tener dos unidades permite ahora que la estructura de datos que almacena la organización de la escena para acelerar el Ray Tracing pueda ser ahora de 8 hasta 8 nodos, en vez de 4. No obstante, esta no es la mayor mejora que han hecho de cara al Ray Tracing, la segunda era desconocida hasta el momento y tiene que ver con la forma en la que las GPU suelen manejar la coherencia en la memoria caché. Cuando se trabaja con vértices y polígonos, es muy difícil que una de estas primitivas termine por afectar a sus semejantes en otra parte de la pantalla, por lo que la coherencia de datos es limitada.
En algunos efectos prácticos en el trazado de rayos, tener coherencia solo a nivel local tiene sentido, pero en otros donde un mismo rayo puede atravesar toda la escena, no. Hemos de entender como coherencia el hecho de que la visión de los datos sea idéntica a través de todo el procesador, en este caso la GPU. Por lo que podemos deducir que el sistema de cachés se ha mejorado en este aspecto.
*Coherencia versus divergencia
Técnicamente, las unidades SIMD de las GPU actuales no lo son, en realidad son una cadena de unidades escalares que comparten un mismo contador de programa. Esto es un problema cuando no tenemos un grupo de 32 primitivas gráficas para llenar todos los huecos. Es más, una de las mayores ventajas que tienen las GPU de NVIDIA sobre las de AMD es que en dicho caso cada unidad SIMD tiene un registro de contador de programa, lo que permite asignar las unidades de cálculo sobrantes a otras instrucciones y mejorar el rendimiento.
Tened en cuenta que el hecho de que la unidad SIMD pueda ejecutar varias instrucciones al mismo tiempo no multiplica la potencia, la capacidad de trabajo sigue siendo la misma. Este es otro de los elementos de RDNA 4 junto a la coherencia de caché y la nueva unidad de Ray Tracing. Por desgracia estas mejoras no dan números cuantificables, es por ello que el marketing pasa de puntillas de ellos y solo se conocen en estos casos concretos.
Unidades para la IA en RDNA 3
Una de las novedades más importantes, y para nosotros la más importante, es el PSSR o PlayStation Spectral Super Resolucion, el cual es análogo al DLSS de NVIDIA y mucho más avanzado que el AMD FSR, dado que hace uso de unidades de IA. Ahora bien, uno de los argumentos para defender que existe una GPU con arquitectura RDNA 3 en PS5 Pro y no una RDNA 2, es la existencia de este tipo de unidades.
Sin embargo, la estrategia para el aprendizaje automático y el Deep Learning en PS5 Pro es diferente que en las RDNA de tercera generación. En la consola tenemos una potencia en este aspecto que llega a los 300 TOPS, por lo que debemos mirar si esto se cumple. En el caso de que ocurra así, entonces podremos decir que, al menos, en este aspecto sí que habría algo de RDNA 3 en PS5 Pro. No obstante, lo primero que nos encontramos es que no existen tales unidades para la IA en RDNA 3, sino que más bien se han expandido las capacidades de las unidades SIMD para ejecutar instrucciones WMMA.
Cada una de las dos unidades SIMD puede hacer 64 operaciones DOT2 por ciclo, lo que equivale a 256 operaciones por ciclo de reloj.
60 núcleos de GPU * 2 unidades SIMD * 256 operaciones por ciclo de reloj * 2.35 GHz de velocidad de reloj = 72 TOPS
Por lo que estamos lejos de esos 300 TOPS de los que hablan las especificaciones de la consola, lo que nos confirma que no hay una GPU RDNA 3 en PS5 Pro.
¿Cómo se llega a los 300 TOPS en PS5 Pro?
La solución más obvia y adecuada es la implementación de unidades especializadas para el cálculo de matrices, análogas a los Tensor Cores de NVIDIA, las cuales no solo pueden realizar una mayor cantidad de operaciones por ciclo de reloj, sino que además pueden resolver dichos cálculos en muchos menos ciclos de reloj, acelerando el proceso. Pues bien, esto ya lo hizo AMD en su arquitectura para computación de alto rendimiento, CDNA, donde tenemos las Matrix Units para ello, inéditas en cualquier RDNA, al menos hasta el momento.
¿Y cómo serán las Matrix Core Units en PS5 Pro? Para empezar, hemos de tener en cuenta que comparten acceso a los registros y la caché con las Compute Units. Curiosamente, una de las cosas que menos han cambiado de GCN a RDNA y que permite adaptar dichas unidades es la organización interna del planificador y los registros. No obstante, la diapositiva de arriba no corresponde a la GPU de PS5 Pro, pero nos puede ayudar a hacernos una idea.
- 2 Matrix Core Units personalizadas para PS5 Pro por Compute Unit o núcleo de GPU.
- 1024 operaciones (32 x 32) por Matrix Core Unit. 2048 en total por Compute Unit.
Haciendo un cálculo rápido, obtenemos lo siguiente:
60 Compute Units * 2 Matrix Core Units * 1048 operaciones * Matrix Core Unit * 2.35 GHz = 289 TOPS
Es decir, hemos llegado a los casi 300 TOPS, una potencia que no se podría alcanzar si hubiese una GPU con arquitectura RDNA 3 en PS5 Pro.
*Lo que Mark Cerny nos ha confirmado sobre la unidad de IA
En la presentación, el arquitecto de la PS5 Pro ha dejado caer que el hardware para la IA es totalmente custom, para la cual se han añadido 44 nuevas instrucciones, todas ellas operando a 8 bits. Esto lo sabemos por el hecho de que los cálculos en FP16 se siguen realizando en las unidades SIMD de la GPU. Esto tiene sentido, ya que simplifica el set de instrucciones y reduce el tamaño de la nueva unidad.
Lo primero que nos dice es que tenemos 9 unidades capaces de hacer hasta 18 operaciones por ciclo (suma y multiplicación) y dos convoluciones en cada unidad SIMD de la GPU por cada ALU o lane de dicha unidad vectorial. Si usamos el clásico SIMD sobre registro, que es lo que se usa para FP16, entonces llegaríamos a los 134 TOPS de potencia. Por lo que aquí tenemos realmente un array sistólico o unidad tensor por unidad vectorial, lo cual coincide con la idea que os comentamos inicialmente en esta entrada. La diferencia es que estas son dos matrices de 32×9 en cada Compute Unit.
En lo segundo, ya entramos en lo desconocido, digamos que las ALU de la unidad son de 16 bits, esto les permite realizar 2 convoluciones por ciclo, ya que estas operan a 8 bits. Es exactamente el concepto del SIMD sobre registro, pero en este caso no se soportan las instrucciones de 16 bits. Dicho de otra forma, sí que es el mismo tipo de unidad que los Tensor Core de NVIDIA o la Matrix Core Unit en los CDNA de AMD, solo que el set de instrucciones y el diseño son de Sony. No sabemos cómo será el de RDNA 4 para PC, pero lo más seguro, mucho más complejo en el set de instrucciones.
*PSSR frente al resto
Ya para terminar, Cerny nos ha confirmado que el entrenamiento y desarrollo del PSSR ha durado unos tres años y obviamente se espera que mejore con el tiempo, tal y como ha ocurrido con otros algoritmos similares. Sin embargo, nos han confirmado que el planteamiento es distinto respecto a las soluciones de NVIDIA y AMD para PC en un punto.
En PC se renderiza a una resolución fija siempre y se escoge el algoritmo de superresolución adecuado para cada nivel de escalado. En consolas, en cambio, con tal de mantener una tasa de frames estable, lo que se hace es variar la resolución final en los juegos, que puede ir fluctuando según el nivel de carga gráfica. Lo que hace la GPU de PS5 Pro con el PSSR es ir variando el algoritmo utilizado según el nivel de escalado, es decir, la diferencia entre la resolución interna y la final. Como podéis ver, no se trata de una diferencia muy sustancial, pero cambia el planteamiento.
Es decir, en PSSR no hay modos calidad, rendimiento, fidelidad, sino un solo modo como ocurre con el DLSS y el FSR, sino un solo modo universal. Por lo que la calidad de imagen de todos los frames de la escena no será igual, ya que cuanto mayor sea la diferencia, más artefactos de imagen.