Blog Personal.

Ampere, GeForce, Nvidia

RTX 30×0 (I): FP32

Uno de los cambios más importantes que tienen las GeForce Ampere respecto a Turing e incluso respecto a la A100 presentada hace unos meses es que la capacidad máxima teórica que tienen ahora sus unidades SM se ha duplicado.

Sinceramente es algo que me ha dejado roto ya que no pensaba que Nvidia se atreviese a hacer esto. Creía que habían reducido la cantidas de ALUs en Int32 de 64 a 32 y que la cantidad de ALUs en FP32 se mantendría en 64. Por haber querido ser demasiado conservador erre, es más, pensaba que Nvidia haría una A100 minus las ALUs en FP64 pero con los nuevos RT Cores. Pero me equivoque enormemente por ser demasiado conservador, por tirar demasiado a la baja y sinceramente…

Digamos que Nvidia ha duplicado la cantidad de ALUs en FP32 en cada SM pasando 64 ALUs en FP32 a 128 ALUs.

¿Que es lo que llama tradicionalmente Nvidia «Núcleos CUDA»? Pues a las ALUs en FP32 que hay en cada SM. Esto significa que la RTX 3090 tiene una capacidad teórica máxima de de 36 TFLOPS en FP32, la RTX 3080 de unos 30 TFLOPS y la RTX 3070 de 20 TFLOPS. Es decir, la RTX 3090 tiene una potencia 3 veces superior a la GPU integrada en la Xbox Series X, lo cual es una auténtica pasada y es algo que sinceramente a mi me ha dejado cuanto menos…

Lo que ha hecho Nvidia con el salto al nodo de 8nm de Samsung ha sido duplicar la cantidad de transistores en la gama Turing, esto les daba la posibilidad de duplicar la cantidad de unidades SM pero no han aprovechado los transistores extras en el mismo espacio para duplicar la unidad SM al completo sino que solo han tocado tres partes clave de cada SM que son:

  • Núcleos CUDA (Unidades FP32 e Int32 duplicando con ello las primeras)
  • RT Core (Duplicando la cantidad de intersecciones que puede realizar cada SM por ciclo de reloj).
  • Tensor Core 3.0 (Que ya vimos en la A100.

El resto de componentes del SM en teoría se deberían haber mantenido igual y no se habrían tocado pero hay que tener en cuenta que cada SM tiene un planificador que es el encargado de distribuir las olas entre las unidades SIMD de la GPU y controlar cuales están libres y cuales no. Cada Ola esta compuesta por n elementos (normalmente 32) que se componen por una instrucción+dato donde el dato puede ser el dato directo o la dirección de memoria donde se encuentra el dato.

En Maxwell, Pascal, Volta y Turing cada unidad SM esta compuesta por 4 sub-grupos que engloban:

  • Las ALUs
  • Sus Registros.
  • El Planificador con la capacidad de distribuir una de 32 hilos por ciclo de reloj.

Cada ola de 32 hilos es dividida en 2 sub-olas de 16 hilos y enviadas secuencialmente a las unidades SIMD correspondientes según el tipo de dato (enteros o coma flotante). Como tenemos unos 4 sub-grupos de 16 ALUs cada uno entonces tenemos que Maxwell, Pascal y Turing pueden retirar unas 4 olas en 2 ciclos en total utilizando la instrucción más rápida (1 ciclo de reloj por instrucción para ser retirada pero recordad que el tiempo de retirada de cada instrucción es variable)

¿Que ocurre si aumentamos la cantidad de ALUs en FP32 al doble? Pues que si le enviamos una ola de 32 elementos en coma flotante cada sub-grupo del SM no tardará unos 2 ciclos con la instrucción más rápida sino 1 solo ciclo. Para poder entender esta capacidad que de repente le ha aparecido a Ampere hemos de tener en cuenta algo que ya se encontraba en Volta y Turing y que ha permitido duplicar la cantidad de ALUs en FP32 en el SM sin cambiar el resto de la unidad SM respecto a Turing.

La diferencia es que ahora la unidad SM puede ejecutar no una ola de enteros y una en coma flotante de forma concurrente sino también 2 olas de coma flotante de manera concurrente y es importante tener en cuenta esto ya que no siempre todas las ALUs en FP32 se van a ocupar. Digamos que desde Volta y Turing hay espacio para unas 128 operaciones entre las unidades FP32 y las unidades Int32 combinadas y eso no ha cambiado solo que ahora parece que la capacidad de ejecutar de manera concurrente dos olas en FP32 al mismo tiempo pero no siempre se dará esa circunstancia concreta.

Fijaos que Nvidia no habla de un SM el doble de potente sino de duplicar la capacidad en FP32, lo que supone que el resto de la unidad SM sigue intacto pero la gran pregunta ahora y a falta del paper oficial de la arquitectura es si Ampere puede realizar de forma concurrente la ejecución de una ola en enteros y dos en coma flotante o la cosa se limita a dos en coma flotante o una en coma flotante+una enteros. ¿Y por qué es importante esa diferencia? Pues por el hecho que de ser como en el segundo caso entonces las veces donde el ratio será de 2X en coma flotante será en determinados escenarios. Ya que solo hace falta que en un sub-grupo del SM trabajen una ola en enteros y otra en coma flotante para que la mitad de las ALUs en FP32 se desaprovechen.

¿Por que apuesto yo? Pues por el hecho que lo único que han cambiado (aparte del RT Core y los Tensor Cores) son las ALUs en FP32 y han dejado al resto de la unidad SM intacta respecto a Turing lo que supone que el ratio de 2X TFLOPS no se va a cumplir siempre y no os esperéis por tanto un rendimiento 2X en los juegos.

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

5 3 votes
Article Rating
7 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Nitupensis

fantástica explicación como siempre urian 😉

sobre los juegos ya están los de digital foundry haciendo comparativas entre la rtx3080 y rtx2080 a 4k, no se si lo viste 😉

RTX 3080 vs RTX 2080 – 4K/Max Settings Perf Boost

Borderlands 3 +81.6%

Doom Eternal +84.2%

Shadow of the Tomb Raider +69.8%

Control +77.6%

Ray Tracing: Quake 2 RTX +92.3%

Ray Tracing: Control/High RT/DLSS Perf +77.6%

Last edited 27 days ago by Nitupensis
Nitupensis

Una novedad sobre el RTX IO, en los comentarios de la web de nvidia uno de los administradores ha aclarado que lo podran utilizar todas las graficas RTX, tanto ampere como las actuales turing.

Last edited 27 days ago by Nitupensis
steven

NVIDIA quiere hacer un gcn un híbrido entre profesional y juegos.

Dani

Con toda la desinformación y hype desmesurado que inunda internet, eres un foco de información del que nos podemos fiar. Espero con ansias leer lo que tienes que decir sobre el RTX IO y tus divagaciones sobre si AMD podría implementar algo similar.

Gracias por tus entradas.

IntelCeleronMasterRace

Pobres lo que compraron un 2080/S estos ultimos 3 meses, ni Vram tienen XD

Hideto

Como siempre, gracias Urian.

Dani

Urian, por si no lo habías visto. Creo que esto explica por qué ante un aumento teórico del 270% en capacidad FP32 el rendimiento en juegos sólo aumenta un 70%.

SM-ampere.png