¿Qué son los GFLOPS (GigaFLOPS) y para qué se utilizan?
La unidad de medida GFLOPS ha adquirido una reciente relevancia por as necesidades de computación actuales, sobre todo en campos como la IA y machine learning, así como el diseño 3D, simulaciones de procesos de la industria y la investigación, etc.
¿Qué son los GFLOPS?
Antes que nada tenemos que explicar qué son los GFLOPS. Se trata de una medida del rendimiento que tienen las unidades de procesamiento, ya sean CPU o GPU, incluso de supercomputadoras. En concreto los GFLOPS miden la capacidad del procesador de ejecutar mil millones de operaciones de coma flotante por segundo.
Esta unidad del rendimiento se utiliza para cuantificar de una manera objetiva sistemas diversos y para ello se tiene en cuenta su potencial para resolver operaciones numéricas de manera de manera masiva.
Diferencia entre FLOPS, MFLOPS, GFLOPS y TFLOPS
Al hablar de GFLOPS tenemos que mencionar otras unidades de medida como los FLOPS, MFLOPS y TFLOPS, que no son más que distintos rangos de un mismo baremo.
FLOPS sería la unidad base, cuyas siglas en inglés corresponden con Floating Point Operations Per Second. A partir de ahí, igual que ocurre con las medidas de memoria RAM, podemos definir distintos rangos de la misma unidad:
- MFLOPS: Mega FLOPS.
- GFLOPS: Giga FLOPS.
- TFLOPS: Tera FLOPS.
Como ves, son simplemente escalas de una misma medida, que son necesarias porque nos permiten nombrar medidas de procesamiento desde computadores domésticos hasta supercomputadores con capacidades de procesamiento extremas.
¿Para qué se utilizan los GFLOPS?
Como habrás podido entender, los GFLOPS se utilizan para poder dimensionar la potencia de un ordenador o unidad de procesamiento. En la práctica los usamos en contextos diversos:
Medición del rendimiento en procesadores y GPU
Los GFLOPS son una medida común para dimensionar la capacidad de cálculo de unidades de procesamiento (CPU) así como las tarjetas (GPU), que tanto se utilizan actualmente para poder dar soporte a procesamiento masivo en las aplicaciones de Inteligencia Artificial.
Aplicaciones en supercomputación
Por supuesto, en el contexto de las supercomputadoras también se usan los GFLOPS, aunque en este caso más las escalas de TFLOPS o incluso PFLOPS, ya que establece una métrica objetiva para dimensionar las capacidades de los ordenadores más potentes en el mundo.
Relevancia en inteligencia artificial y machine learning
Como hemos dicho, otro ámbito donde se usa mucho es en la IA, ya que los algoritmos machine learning requieren enormes cantidades de operaciones matemáticas, especialmente cuando se usan redes neuronales profundas. Es por ello que es importante conocer la capacidad en GFLOPS de dispositivos como GPUs para saber cuánta capacidad de trabajo pueden asumir en tareas de entrenamiento o procesamiento de los modelos entrenados.
Simulaciones científicas y modelado 3D
En el ámbito de la ciencia también se usan ordenadores que requieren realizar cálculos masivos, por ejemplo para sistemas de simulación, donde es importante medir su potencial de rendimiento de alguna manera.
Por el mismo motivo, los GFLOPS también se usan en el modelado 3D, donde son importantes como medida de la capacidad de los dispositivos a la hora de hacer renderizados.
Uso en videojuegos y gráficos 3D
La potencia de las tarjetas gráficas actuales que se usan para los ordenadores de gaming también se mude mediante GFLOPS. Así nos permite saber qué GPUs pueden ser potencialmente mejores que otras.
Cómo se calculan los GFLOPS
El cálculo de GFLOPS se realiza de una manera sencilla, aunque usando software especial que luego mencionaremos.
La fórmula es la siguiente:
GFLOPS = (Núcleos × Frecuencia × Operaciones por ciclo) / 1.000.000.000
Puesta de entrada puede resultar confusa, pero en realidad es un cálculo muy simple. Vamos a desglosarla en los siguientes puntos para que la puedas entender bien.
Factores que influyen en el cálculo
Primero tenemos que conocer cuáles son los factores que hay en esa fórmula:
- Cantidad de núcleos (lo que llamamos cores de una CPU).
- Frecuencia, que es la cantidad de ciclos por segundo que cada núcleo es capaz de ejecutar.
- Operaciones por ciclo, que es el número de operaciones de coma flotante puede realizar simultáneamente en cada ciclo.
Entendidos estos puntos la fórmula anterior no debería representar mucho problema pero la vamos a ver con un ejemplo práctico para que la puedas entender bien. De todos modos, para que se pueda asimilar mejor prefiero primero hacer para los FLOPS y luego entender los GFLOPS será inmediato.
FLOPS = Núcleos × Frecuencia × Operaciones por ciclo
Esto quiere decir que, si podemos hacer:
- Somos capaces de ejecutar 4 operaciones por ciclo.
- Tenemos una frecuencia de 3 GHz, lo que equivale a 3.000.000.000 ciclos por segundo.
- Tenemos 4 cores.
Entonces los FLOPS serían 4 × 3.000.000.000 × 4 = 48.000.000.000
Como 48.000.000.000 es un número demasiado grande, generalmente hablamos de GFLOPS, que es el mismo valor pero dividido por mil millones.
GFLOPS = 48.000.000.000 / 1.000.000.000 = 48
En resumen, en esta situación diríamos que la CPU ofrece un rendimiento de 48 GFLOPS.
Comparativa de rendimiento según los GFLOPS
Dependiendo del tipo de sistema podremos encontrar distintos rangos de GFLOPS:
Procesadores de escritorio vs. servidores
Por supuesto los procesadores de escritorio para tareas comunes como las necesarias en el hogar o las oficinas tienen mucha menos capacidad que los servidores pensados para computación o kas estaciones de trabajo.
En lo que respecta a los ordenadores de escritorio podemos hablar de cientos de GFLOPS de capacidad de procesamiento, mientras que los servidores pensados para realizar tareas intensivas de cálculo pueden superar los TFLOPS.
Tarjetas gráficas y su relación con GFLOPS
Hoy usamos GPU para realizar tareas de cálculo intensivo. En ellas el número de GFLOPS es muy superior que en los CPU normales, gracias a su arquitectura paralela.
Limitaciones de usar GFLOPS como única métrica de rendimiento
Es importante mencionar que los GFLOPS constituyen una referencia importante para medir la capacidad de procesamiento, de una manera muy objetiva. Sin embargo, no reflejan por completo el rendimiento real de un sistema, ya que puede haber otros factores que influyen en la práctica como la latencia de la memoria o el ancho de banda de las comunicaciones.
Es por ello que podemos entender los GFLOPS como un indicador más, que se limita a comparar valores en procesadores o tarjetas gráficas, pero no en sistemas de computación completos.
Herramientas para medir GFLOPS
Para calcular los GFLOPS de un procesador se utilizan diversas herramientas que nos pueden dar datos concretos, con benchmarks enfocados específicamente en CPU y GPU.
Benchmarks de CPU y GPU
Los benchmarks se realizan mediante programas son capaces de ejecutar cargas de trabajo masivas, de modo que se pueda medir el rendimiento de un sistema. Existen algunos benchmarks que se usan frecuentemente:
- Geekbench que se usa en diferentes escenarios tanto CPUs como GPU.
- LINPACK más usado en supercomputación.
- Cinebench y 3DMark y Unigine, que son usados para calcular las capacidades de renderizado y el rendimiento gráfico en general de las GPU.
Software especializado para pruebas de rendimiento
Los programas más habituales para oder realizar estos benchmarks son CUDA Toolkit (para las tarjetas NVIDIA) y ROCm (el equivalente en tarjetas AMD). Pero existen otros como HPL para Linpack o SiSoftware Sandra para operaciones matemáticas.
Interpretación de los resultados
Como te puedes imaginar, un mayor número de GFLOPS indica mayores capacidades de procesamiento. Pero como hemos dicho antes, no siempre se traduce en mejor rendimiento del sistema, porque debemos apreciarlo en el contexto de otros componentes como la memoria o comunicaciones.
Además, al interpretar los resultados también se toman en consideración otros factores que pueden influir en la eficacia de las unidades de procesamiento o GPUs, como el consumo energético o la escalabilidad.
GFLOPS y su impacto en la tecnología actual
Debido a las necesidades actuales de computación en áreas tan importantes hoy como la inteligencia artificial o los videojuegos los GFLOPS han adquirido mucho valor como métrica para medir las capacidades de los ordenadores.
Optimización de hardware para alto rendimiento
Fabricantes de procesadores y tarjetas gráficas usan esta medida para saber hasta qué punto sus arquitecturas han aportado avances en relación a las predecesoras. Así pueden saber si sus innovaciones son suficientemente relevantes y qué impacto podría tener su aplicación, en vista también a otros factores como el consumo de energía.
Tendencias en computación de alto rendimiento (HPC)
Ya en el ámbito de la supercomputación los GFLOPS se nos quedan pequeños. Incluso los TFLOPS. Ahora hablamos más de los petaFLOPS o incuso de los exaFLOPS que son capaces de aparecer en los ordenadores más potentes del mundo.
Relación con otras métricas como IPC y ancho de banda de memoria
Además de los GFLOPS podemos encontrar otras métricas complementarias que pueden usarse para conseguir una visión más completa de las capacidades de procesamiento.
- Los IPC se refiere a Instrucciones por Ciclo (de reloj). A más instrucciones por cada ciclo de reloj, el ordenador conseguirá ser más eficiente.
- Ancho de banda de memoria, que también es importante porque permite saber la velocidad de transferencia de datos entre memoria y procesador, lo que determina el rendimiento en el procesamiento en un escenario real.