Comentario Original:

Urian has visto el tegra basado en xavier?
6traflops en fp16, futura swicth 2???

Si, lo he visto y tengo mis razones para pensar que ninguno de los Tegra Xavier terminará en una consola de videojuegos porque no esta diseñado para ello. Sinceramente no se que les ha dado por sacar Tegras capados, lo digo porque el Jetson Nano era un Tegra X1 con la mitad de la GPU capada y ahora nos vienen con una versión capada del Tegra Xavier llamada Xavier NX.

Lo primero que llama la atención es ver que el Xavier NX tiene menos chips de memoria que su hermano mayor, en la placa solo se ven 2 pero realmente son unos 4 chips ya que el bus ha ido de los 256 bits LPDDR4X a los 128 bits utilizando el mismo tipo de memoria. ¿Se trata de un chip nuevo? Pues no, es un NX con algunas partes desactivadas para aumentar el rendimiento de las obleas o con la idea de aprovechar chips parcialmente defectuosos.

Os dejo la foto del Jetson Xavier donde se ven los 8 chips de memoria LPDDR4X para que comparéis, el SoC Xavier NX no parece ser más pequeño que el del Xavier estándar pese al recorte de especificaciones, vamos, que esto es como el Jetson Nano, un aprovechamiento de chips defectuosos.

La arquitectura general del Xavier NX la podemos ver en el siguiente diagrama:

Nvidia nos da el siguiente resumen sobre el Xavier NX.

Jetson Xavier NX ofrece 14 TOPS en 10 W y 21 TOPS en 15 W, por lo que es ideal para sistemas con limitaciones de potencia y tamaño. Con 384 núcleos CUDA, 48 núcleos tensoriales y 2 motores NVDLA, puede ejecutar múltiples redes neuronales modernas en paralelo y procesar datos de alta resolución de múltiples sensores simultáneamente.

La GPU del Nvidia Xavier es de la familia Volta pero tiene cambios que la acercan a la evolución de esta, Turing, aparte de omisiones como es el hecho de que la unidad FP64 no se encuentra disponible tenemos que el Tensor Core de Turing con la capacidad de operar en Int8 e Int4 a través de SIMD via registro de Turing se vio por primera vez en Xavier.

En la versión de 10W la GPU funciona a 800Mhz, en la versión de 15W a unos 1100Mhz, dado que los Tensor Core operan en FP16, Nvidia le quito el SIMD via registro a los núcleos CUDA que habia implementado en los núcleos Maxwell y Pascal y le paso dicha tarea a las ALUs de los Tensor Cores, esto significa que si queremos ejecutar operaciones en FP16 no iran en 2X por ALU en los núcleos CUDA como en el X1 y el X2, en realidad el Tegra Xavier no esta pensado para ser una evolución del Tegra X1 y del Tegra X2, aunqe reemplaza este último en lo que al mercado de la automoción y la IA se refiere.

En cuanto a los 6 TFLOPS, es una cifra extraña de dar por parte de Nvidia y que a mi sinceramente me deja…

Para empezar, hemos de tener en cuenta que cada Tensor Core son unas 64 ALUs en FP16 colocadas en matriz.

Recordad que concepturalmente un «Tensor» no es más que un array en tres dimensiones, siendo una matriz un array en dos dimensiones. Cada Tensor Core es un array tridimensional de 4x4x4 ALUs que hacen las 64 ALUs que tiene cada uno. ¿Que hay de raro? Sinceramente teniendo en cuenta lo mucho que Nvidia ha estado erre que erre hablando de la enorme cantidad de TFLOPS que producen los Tensor Cores pues… Que de repente Nvidia haya bajado la cifra es cuanto menos… ¡Sorprendente! Bueno, en realidad en todo esto del Xavier y el Xavier NX han dejado de nombrarlos como si estuvieran de más o como si hubiese otra unidad haciendo su trabajo, lo cual es así.

Nvidia acabo creando una unidad aceleradora llamada NVDLA para Xavier, ahora esta esta en código abierto en Veriolog y cualquiera la puede implementar en sus sistemas licenciando el núcleo y si, hasta Intel y AMD podrían colocar el NVDLA en el interior de sus SoC si lo creen necesario.

Los dos (NV)DLA en Xavier dan unos 5.7 TFLOPS en FP16 aparte de los que pueda dar la GPU a través de los Tensor Cores, cada NVDLA esta compuesto por 512 ALUs MAC (Multiplicación y luego Suma) en FP16 (en realidad FMAC) por lo que estaríamos hablando de un Tensor de 8x8x8 y por tanto el equivalente a unos 8 Tensor Cores. Pueden alcanzar 1Ghz de velocidad pero no se al 100% como funcionan y aparte que permiten varias configuraciones que van de las 64 ALUs MAC a las 512 ALUs MAC segun la necesidad y por ello ahora mismo ando completamente…

La culpa es mía por no estudiarme bien el tema de los núcleos basados en la IA con detenimiento y dejarlo pasar ya que mi interés por ellos en estos momentos es…

Es decir, completamente nulas

Los 5.7 TFLOPS del NVDLA del Xavier estándar no se en que condiciones han sido conseguidas y tampoco los 6 TFLOPS en FP16 del Xavier NX, lo que si que se es que es un acelerador utilizado para redes neurales convolucionales (CNN) que son altamente utilizadas en el tratamiento de imágenes. Aquí se que me vais a matar mucho, pero tengo la hipótesis de que el VCN 2.5 de AMD que incorpora tratamiento de imagenes via IA y que veremos en el AMD Arcturus es un licenciamiento por parte de AMD del NVDLA de Nvidia para integrarlo junto al VCN de la propia AMD… ¿Como lo se? No lo se, es algo hipotético basado en que el NVDLA es Open Source y debido a ello cualquiera puede implementarlo incluido la competencia directa pero esto es un tema aparte.

Sinceramente no voy a explicar de donde vienen la cifra de FP16 del Xavier y el Xavier NX… Más que nada porque no quiero que ni yo ni vosotros terminemos a base de calmantes craneales.

El siguiente elemento que nos interesa de la GPU y aquí entramos en algo que demuestra que la GPU del Xavier no esta pensada para gráficos, dicho elemento es la cantidad de ROPS que en la GPU del Xavier es sumamente bajo.

En las arquitecturas Volta y Turing cada partición de 512KB esta acompañada por unos 8 ROPS… Por ejemplo la TU102 (RTX 2080 Ti) tiene 6MB de Cache L2, esto son unas 12 particiones y a 8 ROPS por partición tenemos un total de 96 ROPS. La TU104 y la TU106 tienen 4MB de Cache L2, por tanto 8 particiones y 64 ROPS… ¿Cuanta cache L2 tiene la GPU del Tegra Xavier? Veamos…

Unos 512KB, esto son solo unos 8 ROPS y hay que tener en cuenta que los ROPS son esenciales para los Fragment/Pixel Shaders por lo que la GPU del Tegra Xavier esta castrada en lo que a la generación de gráficos se refiere, demostrando que el SoC Xavier y su versión reducida no esta pensada para la producción de gráficos a tiempo real. ¿Y como se compara el Tegra X1? Pues este tiene unos 16 ROPS y no 8.

El Xavier NX tiene la misma configuración de Cache L2 pero con solo 384 núcleos CUDA, esto es un aumento de solo un 50% respecto a lo que hay en el X1… Realmente sería un salto muy pero que muy pequeño que no aportaría nada, en realidad el Xavier sería muy mal chip para un sistema de videojuegos portátil, su enorme tamaño de unos 350mm^2 lo hace economicamente caro, no solo eso sino que tiene unidades como el NVDLA que no aportan absolutamente nada de cara a la reproducción de videojuegos, es un chip distinto para un mercado distinto que la gente se entozudece de querer colocar en una futura Switch 2.

Switch fue algo montado en media tarde con tal de paliar al fiasco de Wii U combinado con un stock del Tegra X1 que a Nvidia se le acumulaba. Yo no veo a Nvidia sacando chips para competir contra los Apple An y los Snapragon de Qualcomm… ¿Entonces? Simple y llanamente empezar a pensar que es posible que si Nintendo saca una sucesora de Switch esta no pueda cumplir con el hecho de ser compatible hacía atrás con Switch al menos que Nvidia nos sorprenda con algo pero… ¡Por Dios, si han vuelto a sacar el Nvidia Shield con el Tegra X1! ¿De verdad no veís lo que esta delante de vuestros ojos? Nvidia no es como AMD que hace chips a medida, Nvidia te vende lo suyo y te lo quedas o lo dejas.

Yo sinceramente creo y creo que en esto no me voy a equivocar que Switch 2 no funcionará con nada de Nvidia.

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