Comentario Original:

¿Es posible que AMD/Intel introduzcan Tensor Cores en sus procesadores?

No tengo ni idea del tema, pero viendo el estancamiento en nm, viendo que mediante arquitectura no mejoran más de un 5% de rendimiento mononucleo anual y las frecuencias van subiendo muy lentamente, quizás los tensor cores son capaces de acelerar alguna tarea …

Como ya he dicho no tengo ni idea del tema, pero los tensor cores empieza a parecer el Aloe vera del silicio.

#1 Explicando los Tensor Cores

Los núcleos tensoriales no son otra cosa que operadores de matrices, y al mismo tiempo un operador de matrices no deja de ser un operador vectorial. En realidad una unidad SIMD4 puede trabajar directamente con una matriz de 2×2 y una unidad SIMD16 con una matriz de 4×4, por lo que podemos utilizar varias unidades SIMD concatenadas para realizar una unidad tensorial.

tensor-core

Dejemos la precisión por un lado, las unidades de tipo tensor pueden realizar en un solo ciclo una operación FMADD (Floating Point Multiply Add) consistente en el hecho de poder realizar una multiplicación y una suma en una sola instrucción, con el añadido que aquí lo hacemos utilizando matrices. Se Ejecuta A*B… el resultado que es una matriz temporal se almacena en los registros y este se suma a C. Ahora bien, la multiplicación de dos matrices de 4×4 necesita un total de 64 operaciones en total, mientras que la suma requiere de otras 16 operaciones. Son 80 operaciones en total o dicho de otra forma esto son unos 80 FLOPS.

En realidad la trampa es que como la operación es FMADD no encontramos que esas 16 operaciones son extra y tenemos que cada unidad del tipo Tensorial puede realizar unas 64 operaciones… ¿Como lo hacemos? Ahí esta parte de la trampa, en realidad estas unidades en el caso de las GPUs de Nvidia comparten el mismo planificador que los shaders y por tanto los mismos tiempos. ¿Os acordáis como os dije que los shaders solo podían acceder a sus registros para que su planificador supiese en todo momento cuanto iba a durar cada instrucción de manera preventiva? Esto esta relacionado además con el hecho de que no hay suficientes ALUs en la SIMD para poder procesar todos los operandos al mismo tiempo… ¿Y que se hace con las Tensor Cores? Se colocan los 64 operandos de manera simultanea.

SMVolta

Si miráis el diagrama veréis que hay representado un bloque de 4×16 por tensor Core, estas son las 64 unidades que comentábamos ante que permiten realizar una multiplicación de entre matrices en un solo ciclo, la que pueden realizar 64 operaciones por ciclo de reloj. ¿La potencia total? En una Tesla V100 es de 120 TFLOPS en contraste con los 15 TFLOPS en FP32 para los shaders gráficos, no es que una unidad sea mejor que otra, es que sirven para cosas distintas.

Volta-announce-GTC17-keynote-hpcwire-1000x

Fijaos como el ratio es de 8:1 de la misma manera que el ratio de ALUs en los Tensor Cores y en las unidades FP32 es de 8:1. Por otro lado una de las particularidades del Deep Learning es que realmente no necesita tanta precisión por ALU para funcionar en general, obviamente hay ciertas operaciones que requieren una precisión más alta que otras pero hay unidades de este tipo en el mercado con una precisión solo de unos 8 bits porque realmente no necesitan más precisión para hacer el trabajo para el ecosistema en el que están diseñados.

#2 Tensor Cores a nivel doméstico… La Potencial GeForce RTX/GTX 2080

Sin salirnos de Nvidia, hemos de tener en cuenta que hay variaciones dentro de una misma arquitectura GeForce que pueden desacoplar sus ALUs y registros en varias sub-ALUs y registros de manera regular. Esto es lo que en el caso de AMD se llama Rapid Packed Math… Pues bien, en Nvidia es posible convertir una ALU FP32 en 4 sub-ALUs Int8.

Nvidia-Tesla-P4-specs

Ahora bien, sabemos muy bien que las unidades Tensor que encontraremos en las 2080 o como se llamen no serán las mismas que en el Tesla por el tema del coste y por tanto el espacio sino más bien lo que encontraremos dentro de unas SM que derivarán de las del Nvidia Xavier, fijaos que Nvidia en este caso ya no habla de TFLOPS para los Tensor Cores.

XavierTeraOPS

Y si miramos lo que son las GPUs dedicadas que acompañan en la plataforma Pegasus… Lo mismo.

NvidiaPegasus

Bueno, tenemos aquí dos GPUs dedicadas y 2 Tegra Xavier, si le quitamos los 40 TOPS de cada uno de los Xavier son unos 280 TOPS entre ambas GPUs, lo que hace unos 140 por GPU dedicada y dado que 140 es 7 veces 20 y la arquitectura es la misma pero escalada podemos suponer que esa GPU desconocida tiene un total de 3584 núcleos en total… Lo que se suponen unas 56 SM. De tratarse de una GPU con 4 GPCs esto serían un total de 14 SM por ALU, lo cual no sería imposible porque es la cantidad física SMs por GPC que hay en el chip GV100, la otra opcion con 6 GPC serían unos 8 SM por ALU, tampoco sería descabellado, pero esto no deja de ser una observación. Lo sorprendente son los 1TB/s para ambas GPUs… ¿Que significa esto? Hemos de tener en cuenta que las V100 tienen 1 TB/s casi en una sola GPU con 4 pilas HBM2, aquí tenemos la mitad de ancho de banda que deberiamos tener por lo que mi sospecha es que la GPU final del Drive Pegasus debería tener cada una de las dos GPUs unos 2 chips HBM2, pero lo que tenemos hasta ahora es que han montado la plataforma con el GV100 estándar.

x3HP6bO

Por lo que teniendo en cuenta las especificaciones anunciadas de antemano estaríamos hablando que las GV100 en este caso son un Placeholder antes de colocar la GPU final y si en el pasado CES Nvidia no coloca las nuevas GPUs entonces es que estas no han llegado al punto en que su fabricación sea lo suficientemente fiable como para ser mostradas en las demos, pero mañana deberíamos salir de dudas. Por otro lado no podemos olvidar los problemas que esta teniendo AMD en cuanto a costes por el uso de memoria HBM2 y no olvidemos que con la GDDR6 que en teoría debería ser más barata se pueden alcanzar esos 512GB/s deseados por GPU utilizando dicha memoria a 16Gbps con una interfaz de 256 bits debería ser más que posible.

57460_01_sk-hynix-teases-gddr6-gtc-2017-16gbps-bandwidth

El problema con el que Nvidia se enfrentaría es muy simple, el tamaño de una potencial GV104 como el que estoy especulando, si se fabricase bajo el proceso 12/16FF sería cuanto menos enorme, pensad que la GP102 que es la de la GeForce 1080 Ti con una configuración mucho más simple al no tener los Tensor Cores mide unos 471mm^2 por lo que esto colocaría nuestra supuesta GV104 como la que estamos hablando con un tamaño realmente enorme y fuera potencialmente del precio de mercado aunque como es obvió no sería algo tan grande como es el GV100 que mide unos 815mm^2 en total, personalmente me espero un chip de unos 576mm^2 aproximadamente, obviamente es una cifra que desconozco.

¿Pero que configuración nos podemos encontrar en una potencial 2080 a corto/medio plazo? Lo he dicho varias veces estos días y tengo muy, pero que muy claro que la base de la arquitectura será la que esta en el Tegra Xavier. Si observamos la diapositiva de arriba podemos ver que los 20 TOPS no pueden venir de los shaders por lo que tenemos que tener algún tipo de Tensor Core que a su vez sea más simple que el del GV100 al no trabajar en FP32. Pero con lo que nos encontramos en este caso es que el ratio no es de 8:1 en el número de ALUs sino de 16:1 aproximadamente (Nvidia ha redondeado los números) por lo que aquí tendriamos dos posibilidades distintas.

  1. La GPU en el Drive Pegasus X tiene el doble de Tensor Core de precisión Int( al estar en un sistema pensado para el Deep Learning.
  2. Se trata del mismo tipo de unidad que el GV100 pero con la capacidad de que cada ALU de trabajar también en INT8 convirtiendo cada ALU FP16 en 2 INT8.

Dado que no tiene sentido volver a diseñar la SM me quedo con que en principio sería casi la misma que la que ya tenemos en el GV100, pero obviamente teniendo una menor cantidad de unidades SM en la GPU como he comentado antes pero esa cifra sería la misma que la de la GeForce 1080 Ti, es más, la nueva GPU se colocaría como sustituta de la misma y se trataría de un paso por un poco por debajo de la Titan V pero muy por encima de la gama 1080 estándar. Pero claro, hemos de tener en cuenta que la GPU en el caso del Drive Pegasus tiene la velocidad de reloj reducida y que la potencial «2080» sería… Pero es que una 2080 con un tamaño por chip tan grande no es viable para nada economicamente hablando de cara al mercado doméstico y es aquí donde entramos en una estrategia pura y dura por parte de Nvidia que es para realizarle el jaque mate definitivo a AMD.

Todo el mundo espera que Nvidia utilice pero a la de ya el proceso de 7FF e incluso la propia TSMC dice que el nodo 10FF es un nodo con poca vida, pero la ventaja del 10FF esta muy clara y en el caso de que Nvidia haya decidido aprovecharla para la nueva generación de GPUs tendría una enorme ventaja respecto a AMD en este aspecto al menos durante este año, más que nada porque la propia AMD no tendría nada para poder contrarrestarlo.

En todo caso no tenemos referencias de Nvidia utilizando los 10FF ni ha aparecido tampoco ningún rumor por lo que si fuese cierto tanto Nvidia como TSMC se lo habrían guardado secretamente bajo llave y de presentarse mañana una GeForce 2080 con un proceso de 10FF con una capacidad igual o superior que la GeForce 1080 Ti, siendo arquitectura Volta y con memoria GDDR6 sinceramente…

c514.jpg

Y me refiero a que arderia Troya que en este caso sería AMD por un motivo muy simple, AMD tiene un contrato con Global Foundries para utilizar su proceso 7FF y es que hay una enorme confusión respecto al nombre de los diferentes nodos y fundiciones por el hecho que no todos utilizan una medida estándar y todos ellos mienten por motivos de marketing y no ahora sino desde hace ya tiempo. El proceso 14FF de Global Foundries actual por ejemplo fue desarrollado junto a Samsung y no es un proceso realmente 14FF sino que es un proceso 20FF… ¿El motivo? La densidad es solo 2X respecto a los 28nm cuando en realidad debería ser:

(14*14)/(28*28)= 0.25

En realidad los chips a 14nm de verdad tendrían que tener el 25% del tamaño de los chips de 28nm pero en realidad solo tienen la mitad por el hecho que no son 14nm sino que realmente son 20nm FinFet. En el caso de los 16nm de TSMC ocurre exactamente lo mismo, no son de nuevo 16nm, son realmente 20nm.

(20*20)/(28*28)= 0.5

Actualmente tenemos un nodo nuevo que lo han llamado tanto TSMC como GF bajo el nombre de 12nm, en realidad es una variación menor de los nodos de 14nm de uno y de 16nm de los otros. Pero el caso de Global Foundries de cara a sus 7FF es simplemente sorprendente y es algo que afecta enormemente a AMD y sobretodo afecta a los medios que son sumamente ignorantes y piensan que Nvidia que es la que esta con TSMC se va a ver obligada por motivos de marketing a moverse a los 7FF de TSMC, el problema es que los 7FF de TSMC no equivalen a los 7FF de GF, pero es que los 7FF de GF no equivalen a nada.

Tanto TSMC como GF inicialmente renombraron su proceso real de 14FF a 10FF, TSMC ha mantenido esa premisa en la nomenclatura pero GF decidió renombrar sus 10FF a 7FF. ¿El motivo? Lo desconozco por completo, pero el caso es que el proceso 10FF de TSMC es lo mismo que el proceso 7FF de GF, es este el motivo por el cual Lisa Su en su entrevista a Anandtech dijo que tenían diseños de 7nm para TSMC y GF porque se han dado cuenta que con GF van a tener una desventaja de rendimiento enorme. No solo eso, el proceso de 10nm de TSMC lleva tiempo fabricando en funcionamiento y existe tecnología en el mercado que los utiliza mientras que los falos 7FF de GF no han mostrado todavía ningún procesador. Recientemente GF ha podido lanzar los Ryzen 2xxx para AMD, pero no hay nada bajo el proceso 7FF de GF a corto plato, lo cual…

thumbs-downnotvjimmy-fallon

Es cierto que el único chip del mercado con los Tensor Cores es el enorme Volta con un tamaño de 815mm^2 pero la realidad es que Nvidia tiene ya desarrollada la tecnología y a partir de ahí solo la tiene que escalar hacía abajo mientras que AMD no, no es un tema ya de nodos solamente, al GV100 en la Tesla V y la Titan V es un procesador inviable para el mercado de masas, es como un concept car realmente. Pero de la misma manera una hipotética GV104 como la que estoy hablando también sería completamente inviable en el mercado de masas por ser de mayor tamaño que el chip de la 1080 Ti, es por ello que lo más seguro es pensar que Volta va a tener una versión a los 10nm, pero pensad que me podría equivocar por completo y que esto es especulación pura y dura, aunque en realidad me sorprendería si Nvidia no aprovechase la ventaja de tener a punto el proceso 10FF y sacar beneficio del mismo.

Y quien habla de una GV104 con 4 GPC puede hablar perfectamente de una GV106 (GeForce 2060) con unos 2 GPC de configuracion y GDDR6 de 128 bits para un poco más adelante…

Pe… pero Urian… Te has salido de tema… Quien te ha hecho la pregunta lo ha hecho respecto a AMD e Intel.

angrywoman

Es cierto, pero tenía que explicar como esta la cosa actualmente y si, es verdad que se me ha preguntado por Intel y por AMD. Sinceramente de Intel no tengo ningún interés y no he mirado nada pero… AMD en estos momentos lleva un retraso enorme respecto a Nvidia en ese aspecto, pero es que sinceramente el RTG en AMD ahora mismo se encuentra:

panicbob

Su arquitectura más avanzada que es Vega, cuando se anunció en los primeros meses del año pasado, una de las cosas que anunciaron fue que las unidades NCU soportan INT8 haciendo que cada ALU FP32 actue como 4 Sub-ALUs INT8 cada una subdividiendo esta. Lo cual es muy parecido a lo que hemos visto antes con la Tesla P4 pero AMD no tiene en el mercado ninguna GPU con esta característica en el mercado por lo que por el momento se encuentra desactivada o en su defecto la versión actual de la ISA not tiene la instrucciones para trabajar con esta carácteristica.

ncuvega

La trampa estaría en que cada una de las 4 unidades SIMD16 de la CU puede trabajar como una unidad SIMD64 con operandos de 8 bits que es lo que AMD va a llamar DL OPS o Deep Learning OPS. Esto lo vamos a ver en la AMD Vega 20, que será la adaptación a los 7FF de GF de las actuales Vega pero activando la capacidad de operar con operandos de 8 bits por el medio y por tanto con una pequeña actualización del conjunto de registros e instrucciones, pero se trataría de una actualización muy menor

7nm_vega_575px.jpg

La versión de Vega a GF 7FF se la llama Vega 20, lleva tiempo anunciada para la segunda mitad de este año.

vega20

Lo que llama poderosamente la atención es el ratio 1/2 para el DPFP que es lo mismo que decir FP64 y el hehco de que estamos hablando de una tarjeta con 4 pilas de memoria HBM2 por lo que el coste en cuanto a la memoria sería más alto que el de la actual Vega 20. Una simple reducción de Vega de los GF 14FF a lo GF 7FF debería colocar el area a un tamaño de 256mm^2 y con la aparición de la GDDR6 tendrían una GPU que pese a no tener los Tensor Cores al menos tendrían algo minimamente competitivo, pero no parece que ese sea el objetivo de AMD con el chip Vega 20.¿Y que ocurre con los Tensor Cores en el caso de AMD? ¿Los vamos a ver en Navi? Pues sinceramente…

confundido_1_400x400.png

No sabemos nada de nada, pero el tema esta en que de cara al DirectX Raytracing una de las peticiones que tiene Microsoft encima de la mesa para los fabricantes es la implementación de los Tensor Cores para no tener que necesitar tantas muestras y poder limpiar la imagen final. De ahí a que en esta GDC todas las demos estén ejecutandose bajo las Titan V realmente y AMD haya quedado en ese aspecto relegada a una esquina simplemente por no tener el hardware adecuado para ello… Pero al mismo tiempo AMD ha hizo una presentación a puerta cerrada relacionada con Vulkan y bajo el mismo concepto de Raytracing a tiempo real.

¿Es lo mismo? Veamos:

AMDRT.PNG

La clave esta en «Para integracion en los renderizadores existentes»… Es decir, sin Tensor Cores y nada que se le parezca por el medio… ¿Pero va a poder AMD integrar sus Tensor Cores en Navi? En realidad Navi debería verse como Vega+Tensor Cores realmente si ciertos rumores son ciertos y por lógica dada las exigencias en cuanto la evolución de DirectX pues… Esta claro por donde AMD va a tirar, pero el problema es que hasta 2019 nada a no ser que nos sorprenda AMD… En todo caso si Vega 20 a GF 7FF sale este año… ¿Que debería impedirle a AMD sacar Navi bajo el mismo proceso este mismo año para competir contra Volta? Simplemente el tiempo de retraso y los peores recursos que tienen respecto a Nvidia.

En todo caso, en el caso de Nvidia si mi especulacion esta en lo cierto en unas horas podríamos salir de dudas.