Blog personal sobre tecnología

Disruptive Ludens

La potencia variable de PlayStation 5

El otro día, escribiendo un artículo para HardZone, me encontré con una información curiosa. Resulta que en las GPU AMD RX 6000, basadas en la arquitectura RDNA 2, hay modelos en los que la velocidad de reloj de la GPU fluctúa según la carga de trabajo

¿Qué es la carga de trabajo de una GPU? Podemos pensar que es la cantidad de instrucciones que resuelve, pero una GPU pese a hacer eso no es una GPU, sino que lo que hace es resolver listas de cosas a hacer que le manda la CPU y esas listas de cosas a hacer son las que gestionan internamente los procesadores de comandos de la propia GPU.

Dichas listas son generadas por la CPU y es aquí donde radica la trampa. Imaginaos que la CPU envía por ejemplo 1000 cosas a hacer a la GPU, lo llamo así para no complicaros. Entonces podemos deducir que puede hacer un solo envió de esas 1000 cosas, 2 envíos de 500 o 10 de 100. La  GPU lo que hará es gestionar el envió actual, por lo que la carga de trabajo gestionando una lista de 1000 sería mucho mayor que la carga de trabajo que de una lista de 100.

Una vez que tenemos la lista de trabajo clara, mejor volver a una de las diapositivas de Mark Cerny, donde explicaba lo de la velocidad de reloj variable del sistema.

La velocidad variable en PS5, cómo funciona

PS5 Smartshift

Tanto la CPU como la GPU comparten un mismo dominio de energía, por lo que se alimentan de la misma fuente de energía, haciendo que ambas partes funcionen en conjunto como un juego de suma cero, otras parte de la GPU tienen dominios de energía distintos, lo cual se hace para apagarlas cuando estas no son utilizadas.

En el caso de la GPU, cuando esta lee la siguiente lista de comandos a ejecutar, lo que hace es evaluar cual es la carga de trabajo a través del tamaño de la lista de comandos. Un envió de la lista de comandos pequeño lo que va a provocar que la velocidad de reloj de la GPU baje y con ello el consumo, en cambio una lista de comandos grande va a hacer que la velocidad de reloj de la GPU aumente.

Hay que tener que el tamaño por envió de la lista de comandos no depende de la calidad visual del juego, sino que depende de como estén organizados los envíos de la CPU a la GPU. Por lo que podemos tener un juego que tenga gráficos regulares con una alta utilización de la GPU y juegos con gráficos muy buenos que utilice listas pequeñas.

Ahora bien, os estaréis preguntando cuál es la velocidad de reloj mínima en la que se mueve la GPU de PS5. ¿La respuesta? 1600 MHz es dicha velocidad y la GPU fluctúa entre esos 1600 MHz y los 2230 MHz, lo cual dependerá como he dicho antes de cual sea el nivel de carga que tenga la GPU en cada momento.

La necesidad de parches en PS5

PS5 SoC

Lo que os he comentado se traduce en que ciertos juegos van a necesitar parches, por el simple hecho que se diseñaron para funcionar con listas de comandos pequeñas y ponen en desventaja a PS5. En algunos casos no será necesario, ya que son tan simples que incluso con la GPU a mínimos consiguen llegar a los 4K e incluso a 60 FPS.

Donde si que es necesario es un juego donde la tasa de fotogramas esta capada a 30 FPS de cara a la resolución dinámica, pero en especial en aquellos que usen listas de comandos pequeñas y resolución dinámica. El motivo de ello es de pura lógica, la resolución variable depende de la potencia de la GPU en cada momento.