HardZone – ¿Tiene mejor rendimiento una GPU por tener más TFLOPs que otra?

Los fabricantes de GPU se han acostumbrado a hablar de la potencia de cálculo de las unidades shader de sus GPU. Sean NVIDIA, AMD, Intel o cualquier otro. Pero los TFLOPS no son todo lo que mide la potencia de una GPU y se trata más bien de una métrica de marketing. Os explicamos los motivos.

Algo que se ha convertido en una costumbre es vender las tarjetas gráficas a través de la cantidad de TFLOPS teóricos que pueden realizar. Una métrica la cual puede tener sentido para comparar modelos dentro de una misma arquitectura, pero que no sirve para medir de manera precisa arquitecturas anteriores e incluso de otras marcas.

¿Qué miden los TFLOPS de una GPU? 

El término FLOPS significa Floating (point) Operations Per Second, lo que traducido al español es Operaciones en punto flotante por segundo. Por lo que se trata de una tasa de velocidad, ya que esta medida respecto al tiempo.

¿Pero que es una operación? Muchos la suelen confundir con instrucción cuando no es lo mismo. Una instrucción completa ha de seguir el ciclo de instrucción y por tanto necesita pasar por todo el ciclo de instrucción para completarse. Una operación en cambio es lo que hace una unidad de ejecución en cada ciclo, independientemente de si se completa una instrucción o no.

Cuando nos dan la tasa de FLOPS lo hacen teniendo en cuenta condiciones completamente irreales si tenemos en cuenta si tenemos en cuenta como se ejecuta un programa, las cuales son las siguientes:

Se basan en repetir de manera incesante la instrucción más rápida de ejecutar en número de ciclos y la que saca más operaciones por ciclo de reloj, la llamada FMA donde se realiza una suma de dos números y se multiplica por un tercero. Lo cual no ocurre en ningún programa, incluidos los programas shader.
Los datos no siempre se encuentran en los registros de la Unidad Shader o Compute Unit, lo que fuerza en la realidad a retrasar dicha instrucción y adelantar otras.
No todas las instrucciones requieren la misma cantidad de ciclos de reloj para ejecutarse.
Supone que todas las unidades shader están ocupadas y trabajando, por lo que no existen burbujas y tiempos muertos.

No solo de TFLOPS vive una GPU Gaming

Mientras que las aplicaciones vía computación se basan en utilizar en exclusiva toda la potencia de cómputo de las unidades shader. En cambio a la hora de renderizar gráficos a tiempo real se utiliza el clásico pipeline 3D para la rasterización y en el caso de que hablemos del Ray Tracing híbrido, que se combina con la rasterización y por tanto es una extensión del mismo.

¿En qué se traduce esto? Pues en el hecho que hay etapas en el pipeline gráfico que dependen de la velocidad de las anteriores, por lo que es totalmente igual la cantidad de TFLOPS que pueda realizar una GPU si en diversas etapas las unidades de función fija no son lo suficientemente rápidas para realizar su trabajo, creando con ello un cuello de botella en etapas posteriores.

Por ejemplo durante generaciones el rendimiento de las unidades de función fija para la subdivisión de primitivas de AMD, lo que conocemos como teselación, eran mucho peores que en NVIDIA, lo que hacía que en escenas con una alta carga geométrica sus GPU diesen peores resultados, a lo que se les había de combinar una menor tasa de rasterización que sus rivales.

Ciclos por instrucción

Otro de los elementos importantes son los ciclos por instrucción, lo cual cuenta la cantidad de ciclos de reloj en los que tarda cualquier tipo de procesador en resolver una instrucción en concreto. Desde el momento en que no todas las instrucciones son iguales tampoco lo son la cantidad de ciclos que requieren.

La gran ventaja de las GPUs respecto a las CPUs es que no ejecutan programas realmente, no existe software para ellas y esto les permite modificar la ISA incluso en pequeñas revisiones para implementar instrucciones que tarden menos ciclos, retirar las menos eficientes, etcétera.

Se ha de tener en cuenta que los programas escritos en lenguaje shader son compilados por el driver a tiempo real la primera vez que los utilizamos en la GPU.

The post ¿Tiene mejor rendimiento una GPU por tener más TFLOPs que otra? appeared first on HardZone.