Hace algo más de una semana, Microsoft presento los nuevos Surface, de los que no tenía interés pero hay algo que me ha llamado poderosamente la atención y que cambia muchas cosas.

¿El que? Pues el Microsoft SQ1, un SoC construido por Qualcomm y Microsoft en conjunto que va a ser el procesador principal del Surface Pro X.

Se trata de una versión a medida para Microsoft del Qualcomm 8CX, con una modificación muy particular y es el hecho de tener una GPU de 2.1 TFLOPS de potencia,

¿Para que quiere un PC del tipo convertible 2 en 1 que no puede correr las aplicaciones de Windows para x86-64 y por tanto tampoco los juegos una GPU con 2.1 TFLOPS de potencia? Si lo pensáis bien es un enorme sinsentido porque Microsoft podría haber colocado el Qualcomm 8CX y no perder el tiempo desarrollando una versión modificada del mismo con una GPU más compleja y todo el mundo sabemos que las aplicaciones principales de las GPUs por mucho que a algunos les pese son los videojuegos.

La pregunta es… ¿Va a ir el SQ1 más allá del Surface Pro X? Lo digo porque si sus especificaciones son ciertas es más potente que el SoC de la Xbox One S y si, ya tuvimos el año pasado con el Apple A12X un SoC que igualaba a dicha consola, no es de extrañar que ahora exista uno que en teoría lo supere… El caso es que con dicho procesador Microsoft podría lanzar su versión particular de la Nintendo Switch.

Es decir, a

Eso si, con una potencia muy superior a la consola de Nintendo. ¿Cuanto de superior? Pues la suficiente como para poder ejecutar juegos de Xbox One a la misma calidad que la consola de sobremesa.

Pe… pero Urian… ¿Como va a ejecutar los juegos de Xbox One si el SQ1 es x86-64?

En cuanto a lo de los procesadores ARM es una tontería desde el momento en que la mayoría de compañías mantienen el código fuente de los juegos de Xbox One y con un simple compilador hacía el conjunto de instrucciones ARM y unos leves cambios realmente rápidos se pueden crear versiones de Xbox One para la hipotética nueva portátil, la cual ofrecería la misma experiencia que la Xbox One, eso si, los desarrolladores tendrán que re-compilar los juegos y adaptar parte del código al nuevo sistema.

Lo que veo es a buena parte de la prensa diciendo que la GPU alcanza los 2.1 TFLOPS en FP16 y no en FP32, no vi que la prensa tuviese ese problema cuando Apple dijo que la GPU de su A12X Bionic igualaba a la de la Xbox One S durante una presentación del año pasado.

El otro tema esta en que Microsoft para Xbox suele manipular el procesador de comandos de la GPU para que tenga una relación 1:1 con su API DirectX (al menos su versión para Xbox) y aunque no sabemos si lo ha hecho o no en ese sentido, sería una posibilidad de cara a la potencial futura Xbox One Portable.

Buscando información he encontrado una presentación de Qualcomm donde hablan de la arquitectura del Adreno 640 incluido en el Snapdragon 855, desde el momento que el Snapdragon 8CX es una evolución de este y el SQ1 una mejora del segundo pues podemos suponer que se trata de la misma arquitectura.

El concepto del Flex Render es que la GPU puede funcionar como un Inmediate Renderer (saltandose el Binning/Tiling Stage) o como un Tile Renderer. Es algo que tienen integrado desde las Adreno 3xx y lo han ido manteniendo hasta ahora.

A la hora de portar juegos desde Xbox One donde el uso de la ESRAM era explicito en el código (a partir de mover datos de un espacio a otro a otro a través de los DMA/Move Engines) pues una parte del código se deberá adaptar, no obstante dada la arquitectura más general de Xbox One X se podrán llevar las versiones para la actual versión de gama alta de Xbox One con mayor facilidad, adaptando obviamente los juegos a la menor potencia que

Ahora bien, vayamos a por la potencia del Adreno 640 para poderla extrapolar más tarde a la del Adreno 685.

Empezando por la memoria tenemos que estamoa hablando de memoria LPDDR4X de cuatro canales y por tanto de unos 64 bits funcionando a 2133 Mhz, el Adreno 680 del 8CX y su variante para el SQ1 utilizan 8 canales por lo que podemos asumir un ancho de banda de 68GB/s con la memoria en el caso del 8CX y del SQ1, lo cual significa una configuración de 4 chips LPDDR4X, recordad que los chips LPDDR4 y LPDDR4X empaquetan 2 canales por chip.

La tasa de relleno de Xbox One es obtenida de sus 16 ROPS multiplicados por los 853 Mhz de su GPU, el problema es que no sabemos la velocidad del Adreno 640 pero si suponemos que el sistema tiene unos 16 ROPS nos da unos 596.7 Mhz de velocidad. Mirando las especificaciones en Geektopia no dan una velocidad cercana de 585 Mhz , nos vamos a fiar de ellos de entrada aunque es una velocidad que aparece en muchas otras fuentes y no se sinceramente cual es el origen. Dicha velocidad nos servirá para extrapolar el resto.

La tasa de texturizado nos ayudará a saber la cantidad de Unidades Shader, por norma son 4 unidades de texturas, si hacemos dividimos la tasa de texturizado por la de relleno nos salen unos 48 unidades de texturizado y por tanto unas 12 Unidades Shader.

¿Y que nos queda por saber? Pues la cantidad de ALUs por unidad shader, normalmente el calculo para los FLOPS es:

Velocidad de reloj*Número de Unidades Shader*ALUs por unidad Shader*2= Cantidad de FLOPS teóricos.

Por lo que:

[(585*10^6)*12*2]*?=(954,7*10^9)

14040000000*?= 954700000000

954700000000/14040000000= 68

Una configuración de 68 ALUs es cuanto menos rara, no digo que sea imposible, pero veamos con la otra cifra

[(596.7*10^6)*12*2]*?=(954,7*10^9)

14320800000 *?= 954700000000

954700000000/14320800000 = Aprox 67

Vamos a dar por buena la velocidad de 585 Mhz y la configuración de 68 ALUS. Por lo que podríamos estar delante de una configuración 16+1 (SIMD16+1 Escalar) y que Qualcomm cuente la instrucción escalar pero no es lo normal hacerlo. Camos, un 64+4 y el caso es que tenemos una configuración casi identica que la de Xbox One en cuanto a la cantidad de shaders, no con el Adreno 685 ni con el Adreno 680, la tenemos con el 640 que es un hermano menor, obviamente el rendimiento es más bajo que el de la Xbox One por la menor velocidad de reloj. de la GPU.

En algunos lugares podréis leer que la configuración es de 384 núcleos, en realidad es un sinsentido porque entonces harían falta velocidades de reloj más altas que resultarían mortales para los dispositivos de bajo consumo y por tanto dependientes de bateria. Pero claro, esto es producto de que Qualcomm no deja ir información completa y la tenemos que extrapolar y eso ha dado ciertos márgenes de error. Por otro lado, el Snapdragon 855 tiene una versión mejorada a mayor velocidad de reloj, el 885+, el cual es exactamente el mismo chip con la GPU a una velocidad de 675 Mhz, en modo inmediato el ancho de banda es insuficiente en ese caso.

El siguiente paso es el Adreno 680, incluido en el 8CX de Qualcomm y por tanto el SoC que más se le parece al SQ1. Como he comentado antes tiene el doble de canales de memoria que el 855 y los mismos que el SQ1 por lo que podemos suponer que es una configuración de 32 ROPS a simple vista, pero puede ocurrir como ocurre del Tegra X1 al Tegra X2 donde el primero por deceso de ancho de banda llevo a Nvidia a duplicar el ancho de banda disponible para la GPU sin aumentar la cantidad de ROPS.

En la presentación del 8CX la gente de Qualcomm decía que la GPU era exactamente 2X… ¿Pero 2X respecto a que?

Si miramos en el artículo de Anandtech de la presentación del 8CX… nos dicen lo siguiente:

En la GPU, los nuevos gráficos Adreno 680 en el interior solo se discuten en términos de métricas de rendimiento en relación con las plataformas anteriores: nos dijeron que los gráficos son 2 veces más rápidos que Snapdragon 850

El Snapdragon 855>Snapdragon 850 en cuanto al tema gráfico ya que este último lleva como GPU el Adreno 630.

Necesitamos saber la configuración del Adreno 630, en un artículo de XDA Developers sobre el 640 podemos encontrar la siguiente afirmación:

También vale la pena señalar que también podemos esperar que el Adreno 640 continúe liderando el rendimiento por vatio. Con un 50% más de unidades lógicas aritméticas (ALU)

Por lo que si hemos deducido que tenemos 12 Shader con el 640 entonces el 630 tiene una configuración de 8 y ende el 680 de 16… ¿La velocidad de reloj del 8CX? La desconocemos por completo la del 8CX y Qualcomm no ha dado información de cual es, pero si la 680 es una 630 duplicada y tenemos el doble de rendimiento entonces podemos suponer que funciona a la misma velocidad que el 630, unos 710 Mhz, de ahí a partir de lo deducido con los pocos datos y un poco de cocina previa que hemos hecho podemos hacernos una idea de la GPU del 8CX.

Shader ALU (FP32)1544.96
Shader ALU (FP16)3089.92
Texture (Bilinear)45.44
ROPS22.72
Memory Bandwidth68.256

De ahí nos tocaría saltar al SQ1, no sabemos los cambios que puede haber realizado Qualcomm a petición de Microsoft en la GPU del 8CX que han llevado a la existencia del SQ1 pero en el caso de que vayan a utilizar el chip en una hipotética Xbox One Swap hay una serie de cambios que deberían hacer para una máxima compatibilidad con Xbox One aparte de la GPU.

  • Integrar el procesador de comandos de Xbox, el cual sirve para convertir la versión de DX12 para Xbox One en una API de bajo nivel.
  • Integrar los Move Engines, no sirven para nada en Xbox One X y tampoco aquí pero están para la compatibilidad con los juegos compilados para la Xbox One estándar.
  • Integrar el subsistema de audio de Xbox One.
  • El controlador de E/S debería ser a medida con tal de aceptar periféricos de Xbox One

Una posibilidad que tenemos es que el SQ1 sea simplemente un 8CX a mayor velocidad, tiene sentido desde el momento en que el SQ1 parece estar pensado para sistemas de 15W de consumo mientras que el 8CX parece estar pensado para 7W.

En el Chapuzas podemos encontrar un artículo donde nos hablan de un TDP variable de los 7W a los 15W según necesidades, dado que el consumo aumenta con la velocidad de reloj es posible que el SQ1 sea una versión a más velocidad del 8CX y tenga la misma GPU… ¿Entonces como es que la marca como 685? Pues es posible que Qualcomm y Microsoft hayan implementado el Variable Rate Shading, pero eso no lo puedo confirmar.

El tema es que esos consumos si los comparamos con la Nintendo Switch…

Veremos que esta en los rangos de una Nintendo Switch, por lo que tecnicamente sería posible montar una Xbox Swap con este chip.

Por otro lado, hay una foto que la prensa ha relacionado con el XCloud pero que da mucho que pensar en este contexto del que estoy hablando.

Aunque en la diapositiva de donde viene la imagen hablan de terminos más generales también podemos utilizar el mando de Xbox One más allá de la consola misma (en PC, con el Apple TV, Smartphones…)

¿Es esto la foto del Xbox Swap realmente y ha sido confundida con algo relacionado con el XCloud? En el E3 pasado vimos una configuración con un mando de Xbox One, con un smartphone encima en vez de la configuración de la imagen.

Para terminar… ¿Es esto la famosa Lockhart que se confundio con uno de los SKU de Scarlett? Hay dos rumores un poco más oscuros (no de negativos), uno de ellos es que la división Surface lleva un tiempo diseñando algo para la división Xbox… Podría ser el diseño industrial externo de Scarlett pero la división Xbox tiene su propia subdivisión para eso y es posible que se estén refiriendo a la Xbox One Swap.

Lo otro es el rumor de hace unos meses de que iban a sacar los juegos del Xbox Game Pass para Switch, es un sinsentido pero no es tan sinsentido que estén portando ya los juegos de Xbox One a este modelo en particular para tener al menos un catálogo de juegos de inicio lo suficientemente grande de entrada.

El otro punto de interés de ir con Qualcomm son sus modems, en el mercado de los smartphones son los mejores y sería revolucionaría una plataforma online en la que nos pudiesemos conectar desde cualquier parte para jugar. Microsoft se puede convertir en proveedor no solo del juego online sino también vender microSIMS con datos que les permitan capitalizar, pero estamos hablando desde el mundo de las posibilidades, en todo caso viendo el poco interés de Nintendo en popularizar el online desde cualquier lugar y como el Xbox Live es algo muy importante para Microsoft pues…

Esto es todo, como siempre tenéis el Discord y los comentarios de la misma entrada para comentar el contenido de la misma.