Los FLOPS y sus múltiplos, como los TeraFLOPS, se han venido usando para medir el rendimiento de las unidades de procesamiento, como la CPU o la GPU. Sin embargo, no es la mejor opción en todos los casos, ya que puede dar una falsa impresión, como es el caso de las tarjetas gráficas, donde más no siempre es mejor…
Índice de contenidos
Los FLOPS (Floating Point Operations Per Second), es una unidad de media de rendimiento, concretamente mide el rendimiento en operaciones de coma flotante que se pueden procesar en cada segundo por una máquina, especialmente para medir los rendimientos de unidades de procesamiento como la CPU o la GPU, como he comentado anteriormente.
También te puede interesar conocer cuáles son las CPUs y las GPUs más potentes del mercado.
Los FLOPS también pueden aparecer como FLOP/s, aunque raramente aparecen así. Sea como sea, primero hay que entender qué es el coma flotante, pero si quieres una definición rápida, IBM lo hace muy bien:
Un método para codificar números reales dentro de los límites de precisión finita disponibles en las computadoras.
Es decir, las computadoras pueden procesar datos de punto fijo o enteros, que son números como puede ser -1, +2, 9009, 10, 0, -20, etc., mientras que también puede usar números reales en notación científica (con una mantisa, un exponente y una base o raíz), que son los de coma flotante. Como comprenderás, estos datos en coma flotante necesitan de mayores recursos para ser procesados, y suelen tardar más ciclos de reloj.
La codificación de coma flotante para el exponente se definió en base a dos para máquinas como las míticas Cray o las Digital Equipment Corp. VAX. Por otro lado, IBM empleó una base 16 o hexadecimal para su IBM Floating Point Architecture. Sin embargo, para estandarizar esto, se creó el estándar ANSI/IEEE STD 754-1985 que empleaba base diez. Actualmente, la inmensa mayoría de procesadores emplean este estándar para 32-bit (precisión simple) y 64-bit (precisión doble), más allá de eso (precisión extendida), o también los de 16-bit (precisión media), etc. Así mismo, los puedes identificar como FP64, FP32, FP16, FP8, etc.
Los datos en coma flotante son comunes a la hora de ejecutar software científico o multimedia, como los gráficos. Por esto son importantes especialmente en campos como el HPC y también para las tarjetas gráficas.
Actualmente, especialmente en ciertos campos donde priman las cargas de trabajo donde el coma flotante es esencial, se ha dado mayor relevancia a los FLOPS, aunque también los MIPS siguen siendo una medida de rendimiento para otros casos. En ambos casos se mide el rendimiento, solo que en el caso de los MIPS es más adecuado para otras cargas de trabajo, como bbdd, procesamiento de textos, hojas de cálculo, etc.
MIPS son las siglas de Millions Instructions Per Second o millones de instrucciones por segundo. Pero no hay que confundir IPS con IPC, ya que IPC es la cantidad de instrucciones ejecutadas por ciclo de reloj. Por otro lado, hay que decir que también existe la unidad IOPS (Integer Operations Per Seconds), que es el equivalente de los FLOPS para enteros, es decir, números enteros tanto con signo como sin él.
Frank H. McMahon, mientras trabajaba en el National Lawrence Livermore Lab, ideó la idea de usar la magnitud de los FLOPS para poder comparar el rendimiento de varias supercomputadoras. De esa forma, se pudo dejar de usar MIPS que era más adecuado para comparar PCs como has podido deducir de los párrafos anteriores.
Pero en este artículo vamos a tratar los TeraFLOPS. Si te preguntas qué son, simplemente hay que decir que son un múltiplo de los FLOPS, ya que cuando McMahon ideó esta métrica, las máquinas de aquella época procesaban solo unas pocas operaciones de coma flotante por segundo y no eran necesarios otros múltiplos. En cambio, ahora son necesarias medidas mucho mayores para el enorme rendimiento de las unidades de procesamiento actuales o las supercomputadoras.
Prefijo del múltiplo | Abreviación | Orden de magnitud | Nombre completo |
---|---|---|---|
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) |
En un principio también se usaron otros múltiplos más pequeños, como los MFLOPS o MegaFLOPS, pero ahora es absurdo usar esta unidad para la mayoría de las unidades de procesamiento actuales.
A lo largo de la historia, se han ido registrando los rendimientos que han conseguido algunas de las CPUs y GPUs más populares, además de las máquinas más potentes del mundo. Y se pueden sacar grandes conclusiones de esto. Por ejemplo, que las CPUs tienen un rendimiento de cómputo bastante inferior a una GPU, de ahí que se prefiera usar la GPGPU como acelerador de cargas científicas o para IA.
Por ejemplo:
Como vemos, las tarjetas gráficas o GPU tienen un potencial muy superior al a CPU, como se puede observar de estos datos.
Ahora bien, uno de los motivos por los que estamos escribiendo este artículo es por la popularidad que está alcanzando esta unidad, el TeraFLOPS, para medir el rendimiento también de las tarjetas gráficas de última generación para gaming. Sin embargo, la pregunta que habría que hacerse es si realmente los TeraFLOPS importan tanto como parece para los videojuegos.
Ya te adelanto que los FLOPS solo son positivos para aplicaciones científicas o para HPC, donde sí que es importante esto para las cargas de trabajo que se usan. Además, lo es especialmente cuando se emplea como una GPGPU, para procesamiento genérico, como un acelerador. Pero no para gaming… ¿Quieres demostración? Vamos a ello.
Por ejemplo, observa esta tabla:
GPU | FP32 TeraFLOPS | FP64 TeraFLOPS | Ratio |
GeForce RTX 3090 | 35,580 | 0,556 | FP64 = 1/64 FP32 |
GeForce RTX 3080 | 29,770 | 0,465 | FP64 = 1/64 FP32 |
Radeon RX 6900 XT | 23,040 | 1,440 | FP64 = 1/16 FP32 |
Radeon RX 6800 XT | 20,740 | 1,296 | FP64 = 1/16 FP32 |
Como podemos ver, una AMD Radeon RX 6900 XT puede llegar a 1,4 TeraFLOPS de rendimiento de cómputo en coma flotante, mientras que la NVIDIA GeForce RTX 3090 puede llegar a aproximadamente 0,5 TeraFLOPS cuando hablamos de coma flotante de precisión doble (FP64). Para hacerte una idea, la nueva GeForce RTX 4090 puede llegar a los 83 TeraFLOPS en FP32, es decir, casi dobla a la RTX 3090 y casi cuatriplica a la Radeon RX 6900 XT. Para FP64, tenemos que la RTX 4090 puede alcanzar 1,29 TeraFLOPS. Por otro lado, para que te hagas una idea, la AMD Radeon RX 7900 XTX puede desarrollar 61,42 TeraFLOPS en FP32 y 1,91 TeraFLOPS en FP64.
Y ahora te pregunto, fijándose en estas cifras, para hacerte reflexionar:
Pues la verdad es que la respuesta a todas estas preguntas es negativa. No, los datos de TeraFLOPS no determinar el rendimiento que se consiguen en las pruebas de videojuegos. Solo son una medida apropiada para determinar el rendimiento de cálculo en coma flotante que tienen las GPUs, y que dependerá en gran medida de la cantidad de FPUs y la arquitectura de las mismas.
Para terminar, veamos otros tres ejemplos que nos ayudarán a contestar esta otra cuestión sobre qué usar para medir el rendimiento en gaming mejor que los TeraFLOPS. Vamos a coger tres modelos actuales:
TeraFLOPS FP32 | TeraFLOPS FP64 | Pixel Rate () | Texture Rate | |
NVIDIA GeForce RTX 4090 | 82,58 | 1,29 | 443,5 | 1290 |
AMD Radeon RX 7900 XTX | 61,42 | 1,91 | 479,8 | 959,6 |
Intel Arc A770 | 19,66 | 1 | 307,2 | 614,4 |
Si atendemos a las pruebas de rendimiento realizadas en videojuegos, el orden de rendimiento de estas tarjetas gráficas sería el siguiente:
En principio podría parecer que están ordenadas según el rendimiento en FP32, pero las enormes diferencias entre una y otra no refleja las diferencias de rendimiento en videojuegos. Además, si nos pasamos a la columna de FP64, la AMD debería de ser la más potente de las tres, y esto tampoco se plasma en gaming.
¿Y qué es pixel rate y texture rate? Pues como sus propios nombres indican, es la tasa de pixeles y la tasa de texturas que una GPU puede crear respectivamente. ¿Estas son mejores unidades para medir el rendimiento? Quizás sean mejores para determinar el rendimiento gráfico generando píxeles y texturas.
Si nos fijamos en estas imágenes, solo habría un dato que desentonaría, el de GPixel/s de la AMD Radeon, que está en segunda posición del ranking y sin embargo sería la que más rápida es generando píxeles. El resto de valores estarían realmente ordenados en función con el rendimiento que tienen estas gráficas realmente en videojuegos. Es decir, que serían algo más fiables para medir y comparar el rendimiento.
En definitiva, los TeraFLOPS pueden ser una buena media para cargas de trabajo en HPC o para GPGPU. Sin embargo, si queremos medir el rendimiento en gaming, se trata de una unidad que no es nada fiable. Quizás algunos fabricantes usen estas métricas, pero no te dejes engañar, lo hacen por pura cuestión de marketing si ven que destacan frente a la competencia…
¡No olvides dejar tus comentarios!
CHIEFTEC acaba de presentar dos nuevas cajas para PC, Visio y Visio Air con un…
Asus ZenWiFi BT8 es un sistema Mesh Wi-Fi 7 el cual se sitúa por debajo…
Qualcomm anuncia nuevos SoC Snapdragon X, pero no se trata de una nueva generación, sino…