Tarjetas gráficas

Exaflops y Zettaflops ¿Las nuevas unidades de medidas de las tarjetas gráficas?

Si te preguntas qué son los ExaFLOPS y los ZettaFLOPS, aquí en este artículo te lo explicamos con todo detalle y vamos más allá que eso, como hicimos también con el tema de los TeraFLOPS. Pues bien, si te interesa, vamos allá…

¿Qué son los FLOPS?

ZettaFLOPS TeraFLOPS ExaFLOPS

FLOPS (a veces como FLOP/s) son las siglas de Floating Point Operations Per Second, es decir, las operaciones de coma flotante por segundo que una unidad de procesamiento o máquina computancional puede desarrollar.

Como sabes, el coma flotante no son más que valores numéricos decimales, no exáctos, es decir, números reales que no se pueden representar con los valores enteros. Para ello, se emplea una notación especial y que sus operaciones son ejecutadas en las llamadas FPUs o coprocesadores matemáticos. Mientras que los enteros se procesan en las ALUs o unidades aritmerico-lógicas.

Mientras las operaciones de enteros suelen ser más frecuentes en software como los procesadores de texto, las bases de datos, las hojas de cálculo, y otras aplicaciones cotidianas, los de coma flotante son más frecuentes en las cargas de trabajo como los gráficos, multimedia, y aplicaciones científicas (CFD, simulación física, …).

Desde que Frank H. McMahon creara la magnitud de media de los FLOPS, mientras trabajaban para los laboratorios National Lawrence Livermore, para medir y comparar el rendimiento entre supercomputadoras de la época, ha persistido hasta nuestros días aplicado también al sector HPC y también a otros casos como las CPUs y tarjetas gráficas para uso personal.

También te interesará conocer qué es la lista Top500 donde se cataloga el rendimiento de las supercomputadoras.

Cuando observes la Top500, hay que diferenciar entre la Rmax, que es el máximo rendimiento alcanzado por esa máquina en la práctica, mientras que el Rpeak es el pico de rendimiento teórico que podría alcanzar si funcionase al máximo, algo que casi nunca ocurre.

Múltiplos de los FLOPS

Existen muchos múltiplos de FLOPS, unos de ellos son los ExaFLOPS y los ZettaFLOPS de los que te comentamos en este artículo, pero son son los únicos:

Prefijo del múltiplo Abreviación Orden de magnitud Nombre completo
1 FLOPS
kilo- K 103 kiloFLOPS (KFLOPS)
mega- M 106 megaFLOPS (MFLOPS)
giga- G 109 gigaFLOPS (GFLOPS)
tera- T 1012 teraFLOPS (TFLOPS)
peta- P 1015 petaFLOPS (PFLOPS)
exa- E 1018 exaFLOPS (EFLOPS)
zetta- Z 1021 zettaFLOPS (ZFLOPS)
yotta- Y 1024 yottaFLOPS (YFLOPS)

¿Y después qué? ¿Nos quedamos sin múltiplos? No, la verdad es que existen más, aunque no son demasiado conocidas ni se suelen usar frecuentemente, puesto que no hay magnitudes que medir de tanto calado. Pero, para tu información, después tendríamos:

10²⁷ xona- X
10³⁰ weka- W
10³³ vunda- V
10³⁶ uda- U
10³⁹ treda- TD
10⁴² sorta- S
10⁴⁵ rinta- R
10⁴⁸ quexa- Q
10⁵¹ pepta- PP
10⁵⁴ ocha- O
10⁵⁷ nena- N
10⁶⁰ minga- MI
10⁶³ luma- L

Los submúltiplos no tiene demasiado sentido, puesto que por debajo de una operación de coma flotante no interesa medirlo, y mucho menos en los sistemas de alto rendimiento actuales.

¿Realmente se necesitan los ExaFLOPS y ZettaFLOPS para las GPUs actuales?

RTX 4090 ExaFLOPS ZettaFLOPS

Y ahora la pregunta que buscamos, es decir, si es necesario o no usar ya medidas de exaescala y superiores, como el ExaFLOPS y los ZettaFLOPS, entre otras. La verdad es que para tarjetas gráficas individuales, con los TeraFLOPS tenemos más que suficiente por el momento. En cambio, es probable que dentro de años se tengan que usar otras medidas.

Ten en cuenta que ahora estamos hablando de que una RTX 4090 puede tener aproximadamente 1 TeraFLOPS de rendimiento en FP64, lo que equivale a 0,000001 ExaFLOPS. Por tanto, no tiene mucho sentido usarla ahora. En el caso de los ZettaFLOPS sería incluso peor, ya que equivaldría a 0,000000001 ZettaFLOPS. Es decir, cantidades ínfimas…

¿Entonces? ¿Por qué se habla de ellas? Pues bien, esto se debe a que sí que son necesarias para las supercomputadoras, es decir, para las máquinas HPC. En estas máquinas tenemos miles de CPUs y miles de tarjetas gráficas que están trabajando al unísono, sumando sus capacidades de cómputo, por lo que se pueden llegar a magnitudes muy altas de FLOPS.

Por ejemplo, el supercomputador que ahora encabeza la lista Top500 con los más potentes del mundo tiene 1102 PetaFLOPS, es decir, 1.1 ExaFLOPS. Por tanto, se puede decir que ya hemos alcanzado la Exaescala en supercomputación. Pero estamos hablando de una máquina HPE Cray EX235a con 8730112 núcleos de procesamiento con AMD EPYC 3ª Gen a 2 Ghz, y aceleradores AMD Instinct MI250X. Muy lejos de un PC o una tarjeta gráfica convencional de las que cualquiera podemos tener…

Entonces ¿para qué necesitamos los ExaFLOPS o ZettaFLOPS?

HPC

Como he dicho en el apartado anterior, usar estas medidas para el ámbito de la computación de consumo es ahora absurdo. Solo en el caso del HPC puede tener sentido usar la unidad ExaFLOPS para realizar mediciones, pero aún queda algo lejos la ZettaEscala o las primeras máquinas que alcancen el ZettaFLOPS.

Científicos chinos en 2018 estimaron que las primeras máquinas que llegarán a la barrera de la Zettaescala, es decir, al ZettaFLOPS, se esperan para 2035 aproximadamente. Históricamente, los ciclos del paso de un múltiplo a otro suele ser de unos 12 o más años.

Sin embargo, con la llegada de la IA, las cosas han cambiado algo. Y es que los algoritmos de inteligencia artificial suelen trabajar o suelen necesitar de una precisión más baja, es decir, potenciar más el FP8, o el FP16 que las FP32 o FP64. Y esto quiere decir que la cantidad de operaciones en esas precisiones inferiores será superior comparado a las de precisión mayor.

Por ejemplo, la GPU especialmente diseñada para acelerar cargas de IA, como estos dos modelos de NVIDIA:

Formato NVIDIA H100 SXM nvidia H100 PCIe
FP64 34 teraFLOPS 26 teraFLOPS
Tensor Core de FP64 67 teraFLOPS 51 teraFLOPS
FP32 67 teraFLOPS 51 teraFLOPS
Tensor Core de TF32 989 teraFLOPS* 756 teraFLOPS*
Tensor Core de BFLOAT16 1979 teraFLOPS* 1513 teraFLOPS*
Tensor Core de FP16 1979 teraFLOPS* 1513 teraFLOPS*
Tensor Core de FP8 3958 teraFLOPS 3026 teraFLOPS
Tensor Core de INT8 3958 TOPS* 3026 TOPS*

Como ves, a medida que la precisión es menor, el valor de FLOPS sube considerablemente. En el caso de una CPU, suele ser el doble en cada paso, aunque en las GPUs no es del todo así y depende de la arquitectura y las unidades dedicadas para una precisión o para otra, ya que tienen FPUs especiales.

Además, también hay otro dato importante, y es que los núcleos Tensor, dedicados a acelerar la IA, generan una tasa de TeraFLOPS aún mayor. Por ejemplo, para FP8 tenemos que la NVIDIA H100 SXM llega a 3958 TFLOPS, es decir, 3.9 PFLOPS o 0.0039 EFLOPS. Y solo estamos hablando de una única de estas tarjetas, imagina miles de ellas en un supercomputador…

Por tanto, con las nuevas cargas de precisión mixta evolucionando para acelerar las aplicaciones de IA, esto está cambiando rápidamente, por lo que en cuanto a núcleos Tensor se refiere, se podría alcanzar tasas de ExaFLOPS o ZettaFLOPS antes de la fecha estimada por lo chinos, ya que ese estudio era referente a los FP64 convencionales.

Usar una precisión doble (FP64) para cargas de trabajo de IA sería como llevarte el armario completo en un viaje en vez de la maleta. Por eso, es preferible primar las precisiones más bajas que son más apropiadas, ya que las cargas de IA es necesario realizar operaciones de coma flotante en gran número, pero sencillas. Por eso las simulaciones y estudios que están haciendo las empresas del sector muestran cuánto se puede mejorar el rendimiento de un sistema para IA con FP8 o FP16, por ejemplo.

También te puede interesar nuestra guía sobre las mejores tarjetas gráficas del mercado.

Conclusión

Debido a la aparición de las precisiones mixtas y de bajo valor para acelerar las workflows o cargas de trabajo de IA, se han hecho más necesarias estas unidades más grandes, como los ExaFLOPS o los ZettaFLOPS pese a que las únidades puramente de cómputo para otras aplicaciones aún están muy lejos de esto.

Además de los resultados o métricas HPL-AI, también existen otras muchas, como HPL, MLPerf, etc. Muchas de ellas basadas en preubas sintéticas como las dos primeras, y otras en cargas de trabajo del mundo real como ésta última.

Por ejemplo, actualmente, muchos centros de supercomputación de todo el mundo informan de los resultados de HPL-AI, y varias decenas de ellos ya han llegado a más de un ExaFLOPS para estas precisiones. Es más, una de las máquinas instalads en el National Oak Ridge Laboratory, se superó 1 ExaFLOPS incluso para FP64 en HPL.

En la teoría y en la práctica, muchas supercomputadoras ya superan el ExaFLOPS como hemos podido ver.

Isaac

Geek de los sistemas electrónicos, especialmente del hardware informático. Con alma de escritor y pasión por compartir todo el conocimiento sobre tecnología.
Los datos de carácter personal que nos facilite mediante este formulario quedarán registrados en un fichero de Miguel Ángel Navas Carrera, con la finalidad de gestionar los comentarios que realizas en este blog. La legitimación se realiza a través del consentimiento del interesado. Si no se acepta no podrás comentar en este blog. Puedes consultar Política de privacidad. Puede ejercitar los derechos de acceso, rectificación, cancelación y oposición en [email protected]
Botón volver arriba