Blog Personal.

Especulación, Futuro, Intel

Especulación: Intel Xe-HP

Hace unas horas, Raja Koduri ha dejado caer lo siguiente:

El empaquetado es enorme, pero lo que llama la atención es lo de los PetaOps, lo que nos marca la potencia en Inferencia (Deep Learning) de este chip es de 10^15 operaciones de 8 bits por ciclo.

Una de las principales diferencias entre el Intel Xe y el Xe HP es la implementación de Tensor Cores/Arrays Sistólicos.

En realidad estaríamos hablando de 512 TFLOPS en FP16/BF16 para este chip, tened en cuenta que la potencia de la A100 de Nvidia recientemente presentada es de 312 TFLOPS en FP16/BF16 por lo que en este aspecto el chip de Intel sería un poco más potente. El problema es que no sabemos el ratio con las ALUs para los Shaders de los arrays sistólicos en Intel, si es de 8:1 o de 16:1 respecto a FP32.

  • Si es de 8:1 tenemos una potencia de 64 TFLOPS en FP32, lo cual se me antoja exagerado a estas alturas.
  • Si es de 16:1 tenemos una potencia de 32 TFLOPS en FP32, lo cual es más realista pero es una burrada.

Claro esta que Raja ha mostrado otra imagen:

Lo que vemos aqui es el empaquetado de las 3 versiones del Xe HP, 1 Tile, 2 Tiles y 4 Tiles donde cada Tile es una GPU completa encima de un sustrato/interposer común, siendo la versión de 4 Tiles la que Raja tendría en la mano y que sin el escudo se vería más o menos en teoría de la siguiente manera:

Pero realmente no va a ser así y luego veremos el motivo de ello para ya llegaremo en esta misma entrada.

En la gama Xe-HP sabemos que cada Tile tiene una configuración de 128 EUs y cada EU tiene unas 8 ALUs en FP32 por lo que estamos hablando de 1024 ALUs en el modelo de 1 Tile, 2048 ALUs en el modelo de 2 Tiles y 4096 ALUs en el modelo de 4 tiles. En equivalente AMD/Nvidia serían 16 CUs/SM, 32 CUs/SM y 64 CUs/SM.

Hemos dicho que la versión de 4 Tiles/Chiplets es la de 32 TFLOPS en FP32, a partir de aquí podemos sacar la velocidad de reloj.

  • 32*1012/(4096*2)= 3.9 Ghz

Este…

¡Es imposible una GPU a 3.9 Ghz! Por lo que ese Petaflop del que habla Raja no es referente a Int8 sino a Int4 por lo que por lógica la configuración con 4 Tiles/Chiplets sería de 16 TFLOPS de potencia, 4 TFLOPs de potencia por chiplet y la velocidad de reloj de la GPU serían unos 1.95 Ghz de velocidad (modo boost), lo cual es mucho más realista con lo que tenemos ahora en el mercado.

Un pequeño repaso a la arquitectura.

Intel Xe/Gen 12 es una versión avanzada de lo que es la Gen 11 por lo que vamos a utilizarla como base, en ella tenemos que los EU se agrupan en grupos de 8 (64 ALUs en total) llamados Subslice.

No olvidemos que cada EU son 8 ALUs…

En realidad cada Subslice es el equivalente a una Compute Unit donde tenemos:

  • Sampler y Media Sampler que es el equivalente a la unidad de texturas de las CUs/SM, supongamos que son 4 por SubSlice dado que ese es el estandar también en AMD y Nvidia, es decir, de la industria.
  • El SLM es el Scratchpad local, el Local Data Share en AMD y la Shared Memory en Nvidia.
  • DataPort es el Export Bus que comunica la cache de datos/texturas con el exterior del Subslice.
  • 8 EU= 64 ALUs. El mismo ratio de ALUs que en los SM/CUs.

Mientras que el Slice vendría a ser el equivalente a un GPC en Nvidia o un Shader Engine en AMD, en realidad son diferentes nomenclaturas para lo mismo por lo que una vez se saben los equivalentes desaparece el misterio por completo.

Curiosamente Intel nos deja claro que podemos tener una configuración de 16 SubSlice (128 EUs) por Slice en sus diapositivas de la Gen 11 que es la configuración del modelo base con 1 solo Tile/Chiplet, recordemos además que el Xe-HP es llamado Artic Sound.

El problema es que el mercado del gaming no esta pensado pa utilizar múltiples GPUs distintas teniendo cada una su procesador de comandos por lo que las versiones de 2 y 4 Tiles serían desaprovechadas por el 99.9% de los juegos por no decir el 100%. Es decir, las versiones de 2 y 4 Tiles del Xe-HP son un sinsentido enorme.

¿Y por qué no hacer una GPU monolítica? Pues por el hecho que el proceso de 10nm de Intel es una mierda enorme que no permite hacer chips de cierto tamaño asi que tienen que dividirlo en chiplets simétricos pero el problema de hacerlo es que supone es una incompatibilidad.

Pues bien, tengo la teoría que cada Xe Compute=Slice por lo que no tendríamos 4 chips simétricos en el caso del Xe-HP-512 sino 5 y 3 en el caso del Xe HP-256. ¿El motivo? Habría un chip central que es el XEMF que incluiría:

  • La Last Level Cache de la GPU (Rambo Cache)
  • El Northbridge de la GPU, así como la interfaz entre la LLC y los controladores de memoria.
  • La interconexion entre el XEMF y los Xe Compute sería a través del Interposer en una interconexión TSV.

Hay una patente de Intel que comentare después titulada Programmable ray tracing with hardware acceleration on a graphics processor donde el último punto se acaba confirmando.

Teniendo al XEMF como elemento central acabamos haciendo que la configuración de 2 y 4 Tiles tengan un solo procesador de comandos para gráficos y por tanto una parte central. Con lo que los juegos puedan aprovechar toda la potencia de estos. Eso si, es una tontería hacer esto con la versión de 1 Tile pero la cosa quedaría de la siguiente manera:

Recordad que Slice=Xe Compute.

La versión de 1 solo Slice/Xe Compute puede que tenga otra version que no haga uso de memoria HBM2 ni tenga el interposer sino que tenga 4 chips (128 bits de bus) de memoria GDDR6, pero dudo que veamos el uso de dicha memoria en las configuraciones de 2 Tiles y 4 Tiles.

Trazado de Rayos en Intel Xe

Pasemos a discutir la patente que he comentado antes, especialmente la FIG. 15 ya que mirando esta parte tenemos todo el enigma resuelto.

La FIG. 15 ilustra una realización de una arquitectura de procesamiento de gráficos que incluye un circuito de ejecución de shader 1500 y un circuito de función fija 1510. El subsistema de hardware de ejecución de propósito general incluye una pluralidad de núcleos SIMD / unidades de ejecución (EU) 1501 (es decir, cada núcleo puede comprender un pluralidad de unidades de ejecución), uno o más muestreadores 1502 y un caché de Nivel 1 (L1) 1503 u otra forma de memoria local. El subsistema de hardware de función fija 1510 incluye la unidad de mensaje 1504, un planificador 1507, un circuito de intersección ray-BVH 1505, un circuito de clasificación 1508 y un caché L1 local 1506.

Los cachés L1 separados, 1503 y 1056, se muestran en la FIG. 15, para el circuito sombreador 1500 y el circuito de función fija 1510, respectivamente. En una realización alternativa, la misma caché L1 es compartida tanto por el circuito sombreador 1500 como por el circuito de función fija 1510.

Dicha realización alternativa sería el equivalente a lo que tenemos con AMD (RDNA 2) y Nvidia (Turing en adelante) donde la unidad de intersección esta conectada a la cache de Datos del SM/CU, pero en este caso seria en el Subslice por lo que Intel, AMD y Nvidia habrían optado por la misma solución por lo que conociendo las otras dos no nos vamos a romper la cabeza con la de Intel que va a funcionar de manera más o menos igual.

Esto es todo, tenéis los comentarios de esta misma entrada para comentar y no olvideis que tenemos Discord.

4.3 6 votes
Article Rating
3 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Steven

Hola creo que no tienen mucho interés en el mercado gaming hasta que lleguen los 7 mm

Lalilulelo

Creo que partes de una premisa errónea, la precisión de la IA la suelen medir en 4 bits porque pueden y para hinchar más los números.

Así que serían 256 tfops, no 512, quedando por debajo de lo de nvidia.