Fuente:

Incidentalmente, él (Mark Cerny) ha mencionado que su estimación personal para renderizar a 4K nativo en todos los ámbitos requeriría un mínimo de 8 TeraFLOPS de poder de computación y esto no es algo que se pueda conseguir a un precio razonable este año.

Tiene cierto sentido si tenemos en cuenta que el salto desde los 1080P a los 4K es cuatro veces en lo que al número de pixeles se refiere.

4k-vs-1080p

La GPU de PS4 tiene una potencia de 1.84 TFLOPS, lo que serían unos 7.36 TFLOPS pero Cerny utiliza el termino (todos los ámbitos) y es aquí donde entra el tema de la CPU que tiene una potencia de 0.2 TFLOPS en total, por lo que si sumas ambos elementos y los escalas de la misma manera tienes la potencia de unos 8 TFLOPS, obviamente esto significaría que la siguiente iteración del hardware de PS4 tendría una CPU nueva, lo cual tendría sentido ya que por aquel entonces el AMD Zen estará lo suficientemente maduro como para reemplazar al AMD Jaguar en la arquitectura del sistema.

Pero las declaraciones de Cerny me parecen parte de una carrera espacial con Microsoft que no tiene sentido alguno, lo digo porque Microsoft esta aprovechando el F4KE de resolución de la PS4 Pro con tal de meter la puya con la Xbox Scorpio.

project-scorpio

Si Sony lanza una PS4 con 4K nativo tiene que hacer una serie de cambios que vayan más allá que los cambios leves que ha realizado en PS4 Pro, el primero de estos cambios sería aumentar el ancho de banda de la memoria por el hecho que se ha llegado ya al limite de la GDDR5 pero la pregunta clave realmente sería… ¿GDDR5X o HBM2? Sea cual sea el cambio esto afectará a la naturaleza de la GPU siendo los ROPS los primeros en verse afectados aumentando su capacidad de unos 32 a unos 64 ROPS (más sería exagerado) que aprovecharan el ancho de banda adicional que les darían estos dos tipos de memoria aunque soy más partidario de la GDDR5X por el hecho que la HBM2 tiene el problema del coste y la densidad (almacenamiento) que suele ser limitada.

¿Pero que GPU podria utilizar Sony? Recientemente han aparecido rumores de la RX 490 y se dice que se han filtrado sus especificaciones.

rx490

La RX 490 consistira en memoria HBM de segunda generación, el cual tendrá acceso a unos 8GB de RAM con un bus de 4096. La tarjeta tendrá unos 1200Mhz de velocidad de reloj base y 350Mhz de la memoria HBM2. Dicha GPU aparece en el mapa de ruta como Vega 10.

amd-radeon-polaris-vega-navi-gpu-roadmap

En realidad el proyecto Vega 10 tiene una historia mucho más larga ya que originalmente era conocido como Greenland.

AMD-Vega-10-GPU-Leak

En algunas diapositivos de AMD aparecía una GPU llamada Greenland en un SoC contruido a través de un MCM donde CPU y GPU estaban separadas pero en un mismo sustrato común y comunicadas a través de cuatro canales GMI y con la GPU teniendo asociada memoria HBM2.

amd-greenland-gpu-based-hpc-apu

Obviamente Greenland ha evolucionado y se ha hecho mejor al tomar la forma de Vega 10 pero AMD lleva tiempo avisando que en un futuro va a vender SoCs con CPU y el resto de componentes separados. De este SoC apareció también una diapositiva donde este era descrito en toda su gloria.

3057761-2365791432-28a-j

La gran diferencia entre Greenland y Vega10 es el bus con la HBM2 que en el primero tenía que ser de 1Ghz (500Mhz DDR) pero 2048 bits para dar unos 512GB/seg (256GB/seg por chip HBM2) en el caso de Vega 10 se ha pasado a un bus de 4096 bits a 700Mhz (350Mhz) para llegar a los 716.8 GB/seg pero solo con 8GB. ¿El motivo? Se deduce que Vega 10 utilizará solamente una configuración 2-Hi con un bus de 4096 bits.

HBM23

samsung_chysta_pameti_hbm2_na_zacatek_pristiho_roku_idf_2015_02

Pero con configuraciones 4-Hi e incluso 8-Hi la densidad puede llegar a 16GB y 32GB (ver tercera columna). En todo caso de dicha ecuación con tal de ahorrar costes la memoria DDR4 quedaría eliminada por completo de la ecuación en el SoC de consola ya que sería una exageración en lo que a complejidad de la placa se refiere. Es decir, de 2048 bits HBM2+256 bits DDR4 pasaríamos a 4096 bits HBM2 para todo el sistema según este esquema pero hay una alternativa a todo esto que es la GDDR5X.

Pero en tema de costes sería exagerado para una consola de videojuegos y por eso la opción GDDR5X es la que tendría más sentido en lo que a un sistema doméstico se refiere por lo que en realidad al concepto le haríamos una nueva vuelta de tuerca eliminando la memoria HBM2 de la ecuación y colocando memoria GDDR5X… ¿Pero cuanta? Ante de todo tenemos que saber como se organizaría.

Con la memoria GDDR5 (que puede transmitir la mitad de ancho de banda por ciclo que la GDDR5X) los RBEs (ROPS) se distribuyen de la siguiente manera:

rbe480x

Con la GDDR5X la distribución cambiaría a lo siguiente:

gddr5xrbeamd

Unos 256 bits GDDR5X serían suficientes para un bus 256 bits serían suficientes para una GPU con 64 ROPS. ¿Pero cual sería el ancho de banda?

GDDR5X-clock-rates-and-bandwidthEsto se traduce en:

  • 1.25 Ghz = 320 GB/seg.
  • 1.5 Ghz= 384 GB/seg.
  • 1.75 Ghz= 448 GB/seg.
  • 2 Ghz= 512 GB/seg.

No es tanto como el ancho de banda de la GDDR5X pero significa el ahorro del caro complejo de la HBM2 y en todo caso la única consola que habría en el mercado de la competencia sería la Xbox Scorpio con memoria GDDR5X a 320GB/seg por lo que Sony puede sacar una consola con memoria GDDR5X para su tercera iteración de PS4 con tal de ahorrar costes asociados con la memoria pero sabemos que la densidad mínima serían de unos 8GB pero se podría crear una consola con 16GB de memoria por las densidades que habrá disponibles para GDDR5X, aunque teniendo en cuenta que es una iteración no nos interesa que pase de los 8GB a no ser que la competencia directa (Scorpio) lo haga. Por otor lado tampoco nos podemos olvidar del GB de memoria lenta (DDR) utilizado para almacenar temporalmente el estado de las aplicaciones en segundo plano.

El punto y final a considerar es la CPU y aquí habría polémica, en el SoC de AMD utilizan unos 4 modulos Zen (16 núcleos) y personalmente me parece una exageración ya que no podemos olvidarnos que la gran mayoría de juegos de PS4 están pensados para funcionar con 6 núcleos en los juegos y en algunos casos 7 por lo que una configuración de 8 núcleos Zen (Summit Ridge) como CPU creo que sería ideal. ¿Y que ocurriría con el AMD Jaguar? Esa es la pregunta del millon de dólares, ni Sony ni AMD no lo han podido colocar por encima de los 2.1 Ghz de velocidad,.

¿Una CPU Zen con 8 núcleos? El Summit Ridge.

Zen_Summit_Ridge_First

Al Summit Ridge a medida podemos eliminarle por completo el Southbride y las dos interfaces DDR4 para colocarlo como un chip aparte en el mismo sustrato/interposer y haciendo que el uncore del sistema se encuentre en el chip donde se encuentra la GPU con el bus GMI como la comunicación entre la CPU y el Uncore (encargado de gestionar las comunicaciones con los diferentes procesadores y con la memoria). ¿Pero porque 8 núcleos y no 4 núcleos con 8 hilos? Pues por el hecho de que en los sistemas multihilo estos no suelen funcionar simétricos, si el primer hilo necesita un porcentaje alto de la potencia entonces dejará al resto con los migajas afectando negativamente el rendimiento de los otros hilos a ejecutar, por eso son recomendables 8 núcleos nativos.

Por otro lado y durante la construcción de PS4 Pro no había disponible por parte de AMD ningún chip con 8 núcleos siendo las alternativas las CPUs de arquitectura Bulldozer con 4 núcleos creando una incompatibilidad y haciendo que hasta la salida del AMD Zen Sony no tenga alternativas al Jaguar en futuras iteraciones de PS4.

En cuanto a la potencia de la GPU tendrá que ser como mínimo unas 4 veces la potencia de PS4 con tal de conseguir el 4K nativo desde los 1080P, esto en potencia son unos 7.36 TFLOPS de entrada, algo que una GPU con 64 CUs tiene margen suficiente para poder realizar con solo unos 900Mhz de potencia (el consumo bajaría enormemente por ello) pero el problema vendría con el hecho de que la tasa de texturizado debería ser unas cuatro veces y curiosamente:

Tasa de texturizado PS4 57600
Tasa de texturizado Vega 10 900Mhz 230400
Necesario 4K Nativo en PS4 (4X) 230400

Es decir, con un AMD Vega 10 como GPU funcionando a unos 900Mhz tendríamos suficiente como para ejecutar los juegos de PS4 a 4K nativos tomando como referencia los 1080P. ¿Y que hay de los ROPS? Sony lleva tiempo diciendo que los desarrolladores abandonen en lo máximo posible el uso de los Pixel/Fragment Shaders para ciertos efectos con tal de reducir el impacto sobre los ROPS de ciertas operaciones y pasen a utilizar los Compute Shaders, en realidad lo que se recomienda es que los Compute Shaders operen diretamente sobre los datos en la CU y realicen sus operaciones desde allí sin que los datos impacten en la memoria por el hecho que dichas operaciones se realizarían en la misma CU.

En la entrevista que concedió Cerny respecto a la PS4 Pro hay un elemento muy importante en ese aspecto que todo el mundo esta pasando por alto: 

«Varios Wavefronts ejecutandose en una Compute Unit son una gran cosa porque mientras uno esta cargando una textura u otra dato, otro esta facilmente realizando la computación. Significa que tu utilizacion de las ALUs vectoriales sube» comparte Cerny.

Las CU de la arquitectura GCN…

GCN_CU

Se traducen en esto:

wavefronts

Por lo que tenemos unos 4 contextos ejecutandose simultaneamente en cada CU  y por tanto puedes hacer que uno de los contextos sea de computación y en la misma CU reciba los datos con los que operar sin tener que enviar datos a la memoria para ello. Comparativamente la antigua usanza era la siguiente:

  • El Fragment/Pixel Shader genera un grupo de pixeles que es escrito en memoria a través de los ROPS (se consume ancho de banda de la memoria).
  • Con tal de realizar la operación correspondiente se ha de recuperar el dato en memoria (más consumo de ancho de banda).

En cambio si el dato se encuentra dentro de los 64KB de memoria compartida en la misma CU la latencia es mucho menor por el hecho que la memoria esta al lado de las unidades (menos tiempo de ejecución) y para colmo no impactamos la memoria. Esto hace que la relación entre los ROPS y la memoria no sea tan importante en estos casos y tiene sentido dado la limitación por ancho de banda que tiene PS4 y que obviamente impacta a la forma de hacer los juegos.

Obviamente esta consola este año no sería posible y acabaría teniendo un coste exagerado en estos momentos pero no tengo dudas de que Sony tiene una PS4 para 4K nativos en desarrollo como siguiente paso después de la PS4 Pro. La consola no dejaría de ser una PS4 pero con la particularidad de poder ejecutar los juegos a 4K de manera nativa desde los 1080P por lo que en esta iteración no haría falta utilizar los metodos de escalado para el F4KE de la PS4 Pro, simplemente la consola podría renderizar a cuatro veces la resolución de manera nativa haciendo que sea una verdadera PS4 a 4K nativos.

Y para terminar os dejo con el mapa de la hipotética consola.ps4kdiagram

Eso es todo por esta entrada, tened en cuenta que esto es un sistema hipotético futuro que se me ha pasado por la cabeza tras leer las declaraciones de Cerny.