Las computadoras están procesando más cifras que nunca para resolver los problemas más complejos de nuestro tiempo: cómo curar enfermedades como el COVID y el cáncer, mitigar el cambio climático y mucho más.
Estos y otros grandes desafíos llevaron la computación a la era actual de la exaescala, donde el rendimiento superior a menudo se mide en exaflops.
Entonces, ¿Qué es un Exaflop?
Un exaflop es una medida de rendimiento para una supercomputadora que puede calcular al menos 1018 o un trillón de operaciones de punto flotante por segundo.
En exaflop, el prefijo «exa» significa un trillón, que es mil millones mil millones, o uno seguido de 18 ceros. Del mismo modo, un exabyte es un subsistema de memoria que cuenta con un trillón de bytes de datos.
El «flop» en exaflop es una abreviatura de operaciones de punto flotante. La velocidad a la que un sistema ejecuta un flop en segundos se mide en exaflop/s.
«Punto flotante» hace referencia a los cálculos realizados donde todos los números se expresan con puntos decimales.
1000 Petaflops = un Exaflop
El prefijo peta- significa 1015, o uno con 15 ceros detrás de él. Entonces, un exaflop es de mil petaflops.
Para tener una idea de qué cálculo emocionante que es un exaflop, imaginen 1000 millones de personas, cada una con 1000 millones de calculadoras. (¡Claramente, tienen manos grandes!)
Si todos presionaran el signo igual al mismo tiempo, ejecutarían un exaflop.
La Universidad de Indiana, hogar de la Big Red 200 y varias otras supercomputadoras, lo indica de la siguiente manera: Para igualar lo que una computadora exaflop puede hacer en solo un segundo, tendrías que realizar un cálculo cada segundo por 31,688,765,000 años.
Una Breve Historia del Exaflop
Durante la mayor parte de la historia de la supercomputación, el término «flop» no tenía ningún significado, una realidad que se está transformando a medida que las cargas de trabajo adoptan la IA.
Las personas utilizaron números expresados en el más alto de varios formatos de precisión, llamados precisión doble, como se define en el estándar IEEE para la aritmética de punto flotante. Se denomina precisión doble, o FP64, porque cada número en un cálculo requiere 64 bits, pequeños conjuntos de datos expresados como cero o uno. Por el contrario, la precisión simple utiliza 32 bits.
La precisión doble usa esos 64 bits para garantizar que cada número sea preciso a una pequeña fracción. Es como decir 1.0001 + 1.0001 = 2.0002, en lugar de 1 + 1 = 2.
El formato es ideal para lo que conformaban la mayor parte de las cargas de trabajo en ese momento: simulaciones de todo, desde átomos hasta aviones, que debían garantizar que los resultados se acerquen a lo que representan en el mundo real.
Entonces, era natural que la evaluación LINPACK, también llamada HPL, que mide el rendimiento en matemáticas FP64 se convirtiera en la medición predeterminada en 1993, cuando debutó la lista TOP500 de las supercomputadoras más poderosas del mundo.
El Big Bang de la IA
Hace una década, la industria de la computación escuchó lo que el CEO de NVIDIA, Jensen Huang, describe como el Big Bang de la IA.
Esta nueva y potente forma de computación comenzó a mostrar resultados significativos en aplicaciones científicas y comerciales. Además, aprovecha algunos métodos matemáticos muy diferentes.
El deep learning no se trata de simular objetos del mundo real; se trata de analizar montañas de datos para encontrar patrones que permitan obtener información nueva.
Sus cálculos exigen un alto rendimiento, por lo que hacer muchos, muchos cálculos con números simplificados (como 1.01 en lugar de 1.0001) es mucho mejor que hacer menos cálculos con más complejos.
Es por eso que la IA utiliza formatos de precisión más bajas como FP32, FP16 y FP8. Sus números de 32, 16 y 8 bits permiten a los usuarios realizar más cálculos más rápido.
La Precisión Mixta Evoluciona
Para la IA, usar números de 64 bits sería como llevar todo el armario cuando te vas por el fin de semana.
Encontrar la técnica ideal de precisión más baja para la IA es un área activa de investigación.
Por ejemplo, la primera GPU con núcleos Tensor de NVIDIA, Volta, utilizó precisión mixta. Ejecutó la multiplicación de matrices en FP16, luego acumuló los resultados en FP32 para lograr una mayor precisión.
Hopper Acelera con FP8
Recientemente, la arquitectura NVIDIA Hopper debutó con un método de precisión más baja para entrenar la IA aún más rápido. El Motor Transformer de Hopper automáticamente analiza una carga de trabajo, adopta FP8 siempre que sea posible y acumula resultados en FP32.
Cuando se trata del trabajo de inferencia que requiere menos procesamiento, ya que se ejecutan modelos de IA en producción, los principales frameworks como TensorFlow y PyTorch admiten números enteros de 8 bits para un rendimiento rápido. Esto se debe a que no necesitan puntos decimales para hacer su trabajo.
La buena noticia es que las GPU de NVIDIA son compatibles con todos los formatos de precisión (anteriores), para que los usuarios puedan acelerar cada carga de trabajo de manera óptima.
El año pasado, el comité IEEE P3109 comenzó a trabajar en un estándar de la industria para los formatos de precisión utilizados en machine learning. Este trabajo puede tardar otro año o dos.
Algunas Simulaciones Brillan con una Precisión Menor
Si bien FP64 sigue siendo popular para las simulaciones, muchos utilizan matemáticas de menor precisión cuando ofrecen resultados útiles más rápido.
Por ejemplo, los investigadores ejecutan en FP32 un simulador popular para choques de automóviles, LS-Dyna de Ansys. La genómica es otro campo que tiende a preferir matemáticas de menor precisión.
Además, muchas simulaciones tradicionales están comenzando a adoptar la IA para al menos una parte de sus workflows. A medida que las cargas de trabajo cambian hacia la IA, las supercomputadoras deben admitir una precisión más baja para ejecutar estas aplicaciones emergentes bien.
Las Evaluaciones Evolucionan con las Cargas de Trabajo
Después de reconocer estos cambios, investigadores como Jack Dongarra, el ganador del premio Turing de 2021 y colaborador de HPL, debutaron con HPL-AI en 2019. Es una nueva evaluación que mejora la medición de estas nuevas cargas de trabajo.
«Las técnicas de precisión mixta se han vuelto cada vez más importantes para mejorar la eficiencia de computación de las supercomputadoras, tanto para las simulaciones tradicionales con técnicas de refinamiento iterativo como para las aplicaciones de IA», dijo Dongarra en un blog de 2019. «Así como HPL permite comparar las capacidades de doble precisión, este nuevo enfoque basado en HPL permite comparar las capacidades de precisión mixta de las supercomputadoras a escala».
Thomas Lippert, director del Centro de Supercomputación Jülich, coincidió.
«Estamos utilizando la evaluación HPL-AI porque es una buena medida del trabajo de precisión mixta en un número creciente de nuestras cargas de trabajo científicas y de IA, y también refleja resultados precisos de punto flotante de 64 bits», dijo en un blog que se publicó el año pasado.
Los Sistemas de Exaflops Actuales
En un informe de junio, 20 centros de supercomputadoras de todo el mundo informaron sus resultados de HPL-AI, tres de ellos entregaron más de un exaflop.
Uno de esos sistemas, una supercomputadora del Laboratorio Nacional Oak Ridge, también superó un exaflop en el rendimiento de FP64 en HPL.
Hace dos años, un sistema muy poco convencional fue el primero en lograr un exaflop. La supercomputadora colaborativa y ensamblada por el consorcio de Folding@home superó el hito después de realizar una llamada de ayuda para combatir la pandemia del COVID-19 y fue compensada con tiempo donado en más de un millón de computadoras.
Exaflop en la Teoría y la Práctica
Desde entonces, muchas organizaciones han instalado supercomputadoras que ofrecen más de un exaflop en el rendimiento máximo teórico. Vale la pena señalar que la lista TOP500 informa puntuaciones Rmax (real) y Rpeak (teóricas).
Rmax es simplemente el mejor rendimiento que una computadora demostró.
Rpeak es el mejor rendimiento teórico de un sistema si todo funciona al máximo nivel posible, algo que casi nunca ocurre. Por lo general, se calcula multiplicando el número de procesadores en un sistema por la velocidad de su reloj, para luego multiplicar el resultado por el número de operaciones de punto flotante que los procesadores pueden realizar en un segundo.
Entonces, si alguien dice que su sistema puede hacer un exaflop, considera preguntar si eso es utilizando Rmax (real) o Rpeak (teórico).
Muchas Métricas en la Era del Exaflop
Es otro de los muchos matices de esta nueva era de exaescala.
Además, vale la pena señalar que HPL y HPL-AI son evaluaciones sintéticas, lo que significa que miden el rendimiento en rutinas matemáticas, no las aplicaciones del mundo real. Otras evaluaciones, como MLPerf, se basan en cargas de trabajo del mundo real.
En definitiva, la mejor medida del rendimiento de un sistema, por supuesto, es lo bien que ejecuta las aplicaciones de un usuario. Esa es una medida que no se basa en exaflops, sino en el ROI.
Obtén más información sobre la computación de alto rendimiento en el Blog Técnico de NVIDIA.