Sé que esto viene con retraso, pero el trabajo sinceramente me supera y no tengo tiempo para nada, ni para mi mismo, en todo caso he pensado que estaría bien hacer un análisis sobre los últimos SoC que NVIDIA ha presentado para automoción para poder saber como sería la versión de los mismos al gusto de Nintendo o más bien para su uso como consola portátil, que es lo que en el fondo es la Nintendo Switch.

Ayer hace unos días NVIDIA dio por fin las especificaciones finales de sus Tegra Orin después de dos largos años de espera y tal como dijeron en 2019 existen dos SoC con la misma arquitectura, pero con especificaciones, consumos y tamaños distintos. El primero de ellos es el Tegra Orin AGX y su numero de modelo es el T234.

Al mismo tiempo, Jensen Huang en la GTC ha presentado un segundo modelo que es el Tegra Orin NX, el cual como podéis ver es mucho más compacto, cuyo nombre en clave es T239.

La existencia de dos versiones del NVIDIA Tegra Orin es algo que ya conocíamos desde hace el mapa de ruta de 2019, donde se veían dos chips distintos y en el que el CEO de NVIDIA hablaba de que tenían planes para la creación de un modelo de bajo coste y consumo.

Por otro lado, el insider kopite7kimi quien suele filtrar las especificaciones técnicas de las GPU de NVIDIA para PC con una media de seis meses de antelación como mínimo dejo caer la bomba en su día y esto no es algo que diga alguien de un foro, sino que kopite7kimi ha demostrado siempre que sus filtraciones sobre la compañía de Jensen Huang son acertadas e incluso ha llegado a informar de cambios de estrategía que luego con el tiempo se han confirmado como ciertos.

Pues bien, ese T239 ya no es un producto irreal en un mapa de ruta o en las especulaciones, sino que se trata de un SoC real y aunque no se ha oficializado el acuerdo entre NVIDIA y Nintendo sobre una eventual Switch 2 que mejor que ver sus especificaciones técnicas por si acaso este terminando siendo el SoC escogido.

¿Y qué tenemos que decir? Para empezar el empaquetado del Jetson Orin NX mide 70 x 45 mm, mientras que el del Jetson TX1 en el que se basó la Switch original es de 87 x 50 mm, por lo que Nintendo puede colocar perfectamente el SoC y la LPDDR5 que le acompaña en un espacio de tamaño similar, aunque lo mejor será colocar las especificaciones completas de dicha placa para robótica y entenderéis por qué es un excelente candidato para ser la base del SoC de Switch 2:

GPUNVIDIA Ampere architecture
with 1024 NVIDIA® CUDA® cores and 32 Tensor Cores
Max GPU Freq1 GHz

Tenemos en primer lugar una GPU basada en la arquitectura NVIDIA Ampere con un total de 1024 núcleos CUDA, esta arquitectura es la misma que la de las RTX 30 y desde el momento en que cada SM tiene 128 ALU en coma flotante de 32 bits, llamadas por motivos de marketing como núcleos CUDA, podemos desglosar que estamos ante un sistema con 8 SM en total, el doble que la GPU G20B que utiliza la Switch actual, pero que con la nueva configuración aporta 4 veces la potencia de cálculo por ciclo de reloj. En cuanto a la tasa de texturizado esta se ha duplicado, ya que la cantidad de unidades de textura por SM no ha aumentado.

En cuanto a las capacidades de cara al Ray Tracing no hay nada confirmado por parte de NVIDIA, ya que en ningún momento mencionan los RT Cores, lo cual es normal teniendo en cuenta el mercado objetivo de este SOC. Lo que sí que tenemos la presencia de los Tensor Cores, ya que el Jetson Orin NX es para robótica de bajo consumo basada en la IA. La cifra de 32 Tensor Cores por otro lado nos confirma de nuevo que estamos ante una configuración de 8 SM.

Por lo que si hacemos una comparación a igualdad de velocidad de reloj y sin tener en cuenta las optimizaciones pertinentes tenemos que respecto a la GPU de Switch:

  • La tasa de texturizado se ha duplicado.
  • La capacidad de cálculo en FP32 se ha cuadriplicado.

Sin salirnos de la GPU y relacionado con la memoria ahora tenemos 2 MB de caché L2, esto es un salto importante desde la GPU de Switch que estaba limitada en ese aspecto. Esto hará que el Tiled Caching sea mucho más eficiente y una menor cantidad de operaciones gráficas se resuelvan sobre la LPDDR5, lo que se traducirá en una mayor duración de la batería para operaciones gráficas.

Desgraciadamente NVIDIA no ha publicado los diagramas del Orin NX, sino de su hermano mayor, pero desde el momento en que es se trata de una versión de la misma arquitectura a escala podemos trabajar a partir de ese punto.

Aquí ya entramos en un diferencial importante entre lo que creo que será Orin NX y la GPU de Switch 2, creo que ambos tendrán 8 SM pero con una importante diferencia:

  • Orin NX descarta un GPC al completo, por lo que tiene una sola unidad de rasterizado y una de teselación.
  • Switch 2 descartará 2 TPC (4 SM) por GPC, por lo que mantendrá dos unidades de rasterizado y dos de teselación.

En cuanto a la caché L2 de la GPU será de 2 MB en ambos casos. Y hablando de cachés, NVIDIA no ha publicado el diagrama del Orin NX, pero si de su hermano mayor y hay una cosa que nos ha llamado poderosamente la atención:

¿Qué es la System Cache? Pues una caché de último nivel que sirve para darle acceso unificado y por tanto coherente a todos los elementos del sistema. Este cambio no es nuevo y NVIDIA lo incluyo ya en el Tegra X2, conocido también como Parker. Para que lo entendáis mejor el Tegra X1 de Switch ve la memoria de la siguiente manera como el ejemplo de la izquierda:

Este dilema se dio en las consolas de nueva generación, ya que los SoC o APU de AMD en PC tienen memoria unificada. Al final no se ha optado por la opción de unificar el acceso a le memoria. Lo cual tiene que ver con la forma en la que los juegos de PS4 y Xbox One ven la memoria. Pues bien la misma lógica podemos aplicar con Switch 2 respecto a una supuesta compatibilidad hacía atrás con Switch, lo que obligaría a Nintendo a eliminar la System Caché de la ecuación en su versión del SoC.

Ya os comente hace unos días que Nintendo tiene un problema de cara a la compatibilidad hacía atrás, hasta el punto en que no creo que la siguiente consola de Nintendo pueda ejecutar los juegos de Switch de manera nativa. Esto no como la arquitectura RDNA 2 de AMD que fue diseñada desde el principio como GPU para consolas con retrocompatibilidad, sino que cuando NVIDIA diseño la arquitectura de las RTX 30 no tenía en mente una potencial Switch 2 para Nintendo.

¿Qué es lo que creo? Realizar una versión personalizada de un chip cualquiera te puede llevar un retraso de un semestre adicional como mínimo respecto al modelo original y dependiendo como la producción se puede ir a un año completo. Dadas las palabras recientes de la directiva de Nintendo no podemos esperar el lanzamiento de Switch 2 en todo el 2022, es más, pienso que será a finales de 2022 cuando Nintendo tendrá los kits de desarrollo en manos de los editores independientes.

Claro esta que los cambios que debería hacer NVIDIA para que Nintendo mantenga la compatibilidad hacia atrás suponen retocar la estructura base del SoC, en concreto de la GPU y perdonad si cito a una entrada reciente, pero esto es importante remarcarlo:

Traducción:

Kevin C:¿Qué hay sobre Kopit7e o como se llame, ese filtrador de NVIDIA que dice que Nintendo y NVIDIA están trabajando en T239/Dane? Eso es la Switch 2, Y ellos (quienes llevan la cuenta de Kopite7Kimi) tienen un acierto del 100% en las filtraciones de NVIDIA.

Michael: No se soporta para nada con la evidencia actual. Nintendo no puede utilizar una GPU que no sea Maxwell sin tener recompilar todos los juegos o descartar la compatibilidad hacía atrás, debido a que cada juego incluye toda la pila/drivers de la GPU Maxwell, incluyendo los shaders nativos pre-compilados.

Traducción:

Kevin C: Seguro que ellos pueden. NVIDIA puede hacer que Dane sea compatible a nivel de binario con Maxwell.

Michael: Seguro, NVIDIA puede hacer una arquitectura futura que sea totalmente compatible en hardware con Maxwell, pero las arquitecturas sucesoras existentes (Pascal, Volta, Turing y Ampere) no son compatibles hacia atrás. De todos modos, y de nuevo, no hay ninguna evidencia que sostenga esto (la creación de arquitectura compatible hacia atrás con Maxwell) de ninguna manera.

Dicho de manera más simple, para jugar a los juegos de Switch en la nueva consola si hace uso del Orin NX sin cambios de ningún tipo se va a necesitar conectarse a internet y bajarse el código fuente del juego recompilado para funcionar con el nuevo hardware. Con ello no hablamos del juego entero, ya que los archivos de datos que son lo que más ocupan no hace falta convertirlos, pero esto será un trabajo extra para Nintendo, los desarrolladores y también para los usuarios.

¿Existe una solución a ello? Pues si, si os habéis fijado la estructura general de las GPU de NVIDIA, GPC-TPC-SM, así como el contacto con las cachés y las unidades de función fija no ha variado en absoluto desde Maxwell y no hace falta crear una GPU del X1 al completo, solo hay que añadir 4 SM adicionales con la misma arquitectura que el X1. ¿Dónde? En el primero de los dos GPC, estos obviamente no funcionarían en modo Switch 2, pero si en el modo de retrocompatibilidad.

Personalmente apuesto por esta solución por el hecho que no requiere duplicar la GPU original de Switch al completo, solo una parte de la misma y asegura que todos los juegos funcionen sin problemas. Eso sí, obliga a NVIDIA a ponerse en la mesa de diseño para darle este cambio a Nintendo, pero es totalmente viable.

La CPU

CPU8-core Arm® Cortex®-A78AE v8.2 64-bit CPU
3MB L2 + 6MB L3
CPU Max Freq2 GHz

Debido a que la arquitectura Orin se utilizará principalmente de cara a la automoción NVIDIA ha escogido cómo núcleos ARM una variante del A78 optimizada para este tipo de tareas. De entrada no hace falta que os digamos que la cantidad de instrucciones por ciclo que resuelve el Cortex-A78AE es mayor por núcleo y ciclo de reloj que con el Cortex-A57 utilizado en la Switch original. Además, la configuración de 8 núcleos es ideal para portar los juegos desde PS4 y Xbox One a la nueva consola.

De una cosa estoy seguro, Nintendo recortará su velocidad de reloj y la pondrá a una cantidad fija mucho más baja para reducir el consumo en Switch 2. En todo caso esta parte es la que menos problemas debería dar al ser totalmente compatible con la CPU de la Switch original, por lo que Nintendo no habrá pedido cambios a NVIDIA a esta pieza del hardware, sobre la que no voy a profundizar mucho más.

La memoria RAM

Memory12GB 128-bit LPDDR5
102.4 GB/s

Otro punto importante a destacar es la configuración de memoria, la cual es LPDDR5 de 128 bits, la cual es superior a la de la Steam Deck que «solo» alcanza los 88 GB/s, por lo que Nintendo y NVIDIA habrían solucionado uno de los mayores problemas de Switch que no es otra cosa que el ancho de banda.Y es que en existen juegos donde las limitaciones en su rendimiento son producto de la falta de ancho de banda que no la potencia de la CPU o GPU.

En todo caso, debido al timing en el que se lanzará la consola, yo no descartaría a la LPDDR5X, no en su versión más rápida. El motivo es que su tasa de consumo durante la transferencia de datos, medidas en pJ/bit es un 20% menor que la LPDDR5, lo que le ayudara a Nintendo a reducir el consumo energético de la Switch 2 dentro del ajustado presupuesto en ese aspecto que se tiene siempre en una consola portátil.

Hace justo unos días Samsung anuncio que tiene ya los primeros chips LPDDR5X listos para la fabricación en masa, y dado que Orin NX está fabricado bajo su nodo de 8 nm, entonces tiene sentido que todo se quede en casa y tanto la RAM como el SoC los realice el mismo proveedor. Y hablando de Samsung, la pantalla de Switch OLED también tiene como proveedor a la multinacional surcoreana.

El hecho que el PCB, el SoC y la memoria se construyan por Samsung puede parecer contraproducente, ya que limita a Nintendo a un solo proveedor, pero es típico de ellos hacer esto. En su día ya lo hicieron con Ricoh, SHARP, NEC, etceterá.

Interfaces descartables

CSI CameraUp to 4 cameras (8 via virtual channels*)
8 lanes MIPI CSI-2
D-PHY 1.2 (20 Gbps)

Son todas aquellas que tiene el Orin NX, pero que Nintendo Switch no necesita y que debido a que se encuentran en la periferia del chip aumentan su área total, por lo que es una forma de reducir espacio, pero especialmente también consumo, ya que las interfaces de datos externas son las que más energía consumen. Ya de entrada esta claro que de cara a una consola de videojuegos no nos sirve para nada la Camera Serial Interface, por lo que la vamos a descartar.

Networking1x GbE

También podemos descartar la interfaz Ethernet, desde el momento en que la consola no tendrá un puerto de este tipo y será el Dock el que proporcione dicho puerto y aquí entraremos en algo con lo que puede que me coma mucho cuervo, pero para mi tiene sentido.

¿El qué? Después de pensarlo mucho creo que Nintendo va a volver a utilizar el Dock de Switch OLED en Switch 2, ya que su chip conversor de DisplayPort a HDMI tiene la capacidad de transmitir hasta 4K de resolución a 60 FPS sin latencia agregada. Por lo que es lo suficientemente bueno para su tarea y se olvidan de tener que realizar un Dock totalmente nuevo para el nuevo modelo.

Por lo que la consola solo va a necesitar la interfaz USB-C Alt-DP que tiene el modelo actual de la consola, el cual hace uso de las los 4 canales de emisión USB 3 para transmitir la señal DisplayPort y hace uso del canal USB 2.0 para los periféricos y el puerto Ethernet. Claro esta que es peor de lo esperado, pero tiene sentido desde el punto de vista económico y Nintendo mata dos pájaros de un tiro con esto

UPHY3 x1 + 1 x4 PCIe Gen 4
3x USB 3.2 Gen2
USB C Alt-DP 3.2 Gen 2

En cuanto a las interfaces PCIe Gen 4, en primer lugar se ha de destacar que en el caso de Orin NX la de 4 líneas servirá para conectar una unidad SSD NVMe que sirve para el almacenamiento.

StorageSupports external NVMe

Teniendo en cuenta que la Steam Deck de Valve tiene un SSD NVMe en su interior y muchos dispositivos tienen este tipo de unidades uno podría pensar que Switch 2 va a tener un tipo de interfaz de este tipo, pero el problema es que este tipo de almacenamientos consumen mucho por bit transmitido y tienen un coste muy alto que encarece el sistema, por lo que hay que buscar una alternativa.

El otro problema está en que la velocidad de transferencia de las Gamecards de Switch es muy alta y su capacidad limitada. Es necesario un nuevo formato para la distribución de los juegos en formato físico y en nuevo estándar que presento la JEDEC el paso mes de agosto esta la solución.

Las tarjetas XFMC son un nuevo estándar de tarjetas de memoria extraíbles de la JEDEC que hacen uso 1 o 2 líneas PCI Express. Por lo que Nintendo podría utilizar las interfaces PCIe Gen 4 de 1 línea para conectar tres interfaces relacionadas con esta tecnología.

  • Almacenamiento interno, donde los datos se almacenarían en un chiop eXFMD soldado en la placa principal.
  • Gamecards de nueva generación basadas en el estándar XFMD. (nuevo slot)
  • Almacenamiento externo, slot para tarjetas XFMD. (nuevo slot)

Debido a que los juegos de Switch 2 se van a acceder desde cualquiera de los tres tipos de almacenamiento es necesario que el ancho de banda sea el mismo desde los tres canales para evitar problemas

De cara a la compatibilidad hacia atrás Nintendo deberá añadir la interfaz SDIO para las Gamecards y las tarjetas microSD de la consola original. En todo caso no serían los únicos puertos añadidos, ya que hemos de añadir dos líneas PCIe adicionales, una para la radio Bluetooth y la otra para la radio WiFi. Por lo que en realidad de 7 líneas PCIe Gen 4 habremos pasado a 5, también es importante destacar que Nintendo podría utilizar Gen 3 y no pasaría nada, seguiría teniendo buen rendimiento y yo diría que tiene más números por el menor consumo y calor transmitido.

Aceleradores y Coprocesadores

Lo siguiente son las unidades de proceso que están especializadas para ciertas tareas y que liberan a la CPU y GPU de tener que hacer ciertos trabajos. No todas las que están en el Orin NX son necesarias de cara a una consola de videojuegos, mientras que a otras se les puede dar otra utilidad bien clara.

DL Accelerator2x NVDLA v2.0
Vision AcceleratorPVA v2.0

Si hemos eliminado los puertos para la cámara y la consola no va a tener ningún elemento de captura externo entonces ya de entrada el PVA 2.0 es algo que Nintendo puede descartar de la lista. Claro esta que nos queda el NVDLA 2.0 y aquí es donde hay que explicar que son. Técnicamente no son más que la red neural para aprendizaje profundo clásica y por tanto se trata de un hardware muy parecido a los Tensor «Cores» de la GPU, pero sin compartir cachés, registros y unidades de control con los núcleos CUDA. Es decir, se trata de un procesador en paralelo y para que os hagáis una idea es como el Neural Engine que Apple coloca en sus SoC.

NVIDIA le ha metido una mejora importante a los NVDLA de segunda generación respecto a la primera en cuanto a rendimiento, en primer lugar la han añadido las mismas capacidades que los Tensor Cores de tercera generación en la RTX 30, la capacidad de trabajar con matrices «Dense» o «Sparse».

Es un concepto matemático, que tiene que ver con la cantidad de valores 0 que hay dentro de un vector, matriz o tensor. La idea es que matemáticamente se puede simplificar y hacer que los espacios ocupados por los 0 sean ocupados por otros elementos que de otra manera estarían a la espera. No se si lo estoy explicando bien, el caso es que esta capacidad de los Tensor Cores de tercera generación la tienen los NVDLA 2.0, lo que demuestra que en el fondo son Tensor Cores construidos como núcleos aparte.

Ahora bien, vayamos a lo interesante:

El acelerador de aprendizaje profundo o DLA, es un acelerador de función fija optimizado para operaciones de este tipo. Se diseñó para realizar una aceleración de hardware total para la inferencia en redes neurales convolucionales. El SoC Orin trae integrado la nueva generación de DLA: NVDLA 2.0. El cual provee un rendimiento 8 veces superior al NVDLA 1.0 en Jetson AGX Xavier con 11.4 TOPS en INT8 en modo «Dense», mientras que el NVDLA 2.0 consigue hasta 97 TOPS INT8 en Orin en modo Sparse.

La nueva arquitectura provee un diseño altamente eficiente a través de aumentar el tamaño del búfer local para reducir los accesos a la DRAM y … Un planificador por hardware.

Los NVDLA de primera generación son controlados por la CPU, a los nuevos se les ha dado un planificador. Sobre el tema del rendimiento sea 8 veces más respecto al NVDLA 1.0 más bien cuádrupla el rendimiento con redes neurales densas, pero es NVIDIA hablando de máximos teóricos aquí. Claro esta que tener tal capacidad de cálculo en ellos hace que nos preguntemos. ¿Si puede hacer lo mismo que los Tensor Cores y son igual de rápidos, para que están los Tensor?

El problema es que de cara al DLSS las muestras que los Tensor aumentan de resolución se encuentran en la caché L2 de la GPU, por lo que no salen de su estructura privada y por tanto aunque los NVDLA 2.0 estén en el sistema no pueden acceder a ella. Esto solo sería posible si la hipotética GPU de Switch 2 escribiese sobre la System Cache y sabemos que no es así.

Continuando con las palabras de NVIDIA en el documento de la arquitectura Orin nos encontramos con esto:

Los clientes pueden utilizar TensorRT, un software de NVIDIA, para acelerar sus modelos en los DLA tal y como lo hacen en la GPU. NVDLA está diseñada para quitarle trabajo a la GPU en los casos de aprendizaje profundo.

Es decir, no pueden correr el mismo tiempo, por lo que no nos sirven para nada, son una pieza más ocupando espacio que debemos descartar por completo de la ecuación en el SoC del hardware de Switch 2.

¿Entonces que aceleradores se mantendrían? Pues únicamente los relacionados con el códec de vídeo, ya que el ISP al no haber ninguna cámara por el medio también seguiría el camino del dodo.

Consumo Energético y resolución

Power10W | 15W | 25W
T

Tanto los 2 GHz en la CPU como 1 GHz en la GPU se alcanzan cuando el Orin NX está consumiendo 25 W, una cifra que es exageradamente alta para una consola portátil, aunque obviamente sería para el modo Dock, no obstante creo que el consumo energético lo vamos a situar en los 15 W y veremos a Nintendo realizando una bajada de voltaje a la par que la de velocidad de reloj.

No hemos de mirar Switch 2 como una consola 4K como repiten muchos lerdos en los foros, más que nada por el hecho que no se ha de ser muy inteligente para ver como escalar vía DLSS o algún algoritmo similar con una GPU con 8 SM no es lo mismo que hacerlo con las RTX 30 para PC. Poder se puede, pero desde resoluciones muy bajas y en eso Nintendo de manera indirecta con sus propias patentes lo ha dejado bien claro.

La idea no sería otro que la GPU renderizará a 540p, para que luego la imagen final fuera escalada a los 1080p a través de la red neural que se ejecuta en los Tensor Cores. La resolución de renderizado le permitiría alcanzar un mayor rendimiento que la Steam Deck y la de salida una mayor calidad de imagen gracias al mayor PPI. Aunque he de aclarar que no espero un sistema más potente que la Steam Deck de Valve y saliendo entre uno o dos años después, por lo que para muchos será una enorme decepción. Por otro lado, con la enorme cantidad de juegos de la generación de PS4 y Xbox One que no han podido ser portados a Switch pienso que esta Switch 2 puede tener catálogo. El problema es que sería una versión continuista de la actual y no añadiría mejoras técnicas sobre los juegos de Switch.