Blog Personal.

Uncategorized

¿Por qué la métrica en TontoFLOPS es un sinsentido? (Feedback)

Comentario#1:

Urian, que la GPU funcione a un frecuencia mayor, aporta algun beneficio en el tiempo en el que se tarda en buscar un dato en memoria(sea registro, cache o ram)?

El hecho de que los ciclos de reloj vayan más rápido hace que cuando se buscan los datos en las caches pues dicha búsqueda tarde menos, pero la cantidad de ciclos perdidos por cada cache miss se mantiene, eso si, esos ciclos obviamente ocurren en menos tiempo.

La memoria es otro tema, pero digamos que a partir de ciertas especificaciones hacía abajo de la RAM respecto a la velocidad del procesador esta puede aumentar la latencia en la búsqueda de instrucciones en la misma. Dicho de otra manera, si no se solucionan las especificaciones de la RAM concorde a la del procesador este entra en rendimientos decrecientes porque la RAM pasa a ser un cuello de botella.

¿Como se mide eso? Pues depende de cara arquitectura, se va tirando el valor de la RAM hacía abajo desde un máximo hacía abajo y se va probando el rendimiento. El problema con todo esto es que muchos sistemas no están al 100% en su estado óptimo con la memoria no por una mala elección sino porque a nivel de volumenes de producción y costes el escoger un tipo de RAM es más adecuado desde el punto de vista económico que no otro y dentro de un mismo tipo una velocidad más que otra.

Y es que con la RAM ocurre con las CPUs, los chips son los mismos pero se van testeando las diferentes velocidades hacía abajo, los que están en velocidades muy altas son muy pocos y su escasez impacta en el precio, los que están a velocidades cada vez más bajas son cada vez más baratos por el hecho que son más abundantes.

Comentario#2:

Pues nada de acuerdo, no me meteré a juzgar si esto se utiliza para defender X consola.

Yo hace mucho tiempo era del Team «Tflops no sirven para nada» pero conforme el tiempo me di cuenta que es una medida muy útil como referencia (no es lineal, ni sustituye un Benchmark) pero cuando lo aplicas Tflops correctamente puedes aproximar el rendimiento real de una GPU, los Tflops son útiles en 2 casos:

En la entrada he explicado que significa esa cifra de TFLOPS que dan TODOS los fabricantes de GPUs, básicamente no es más que el procesador ejecutando siempre una instruccion FMADD (la que más operaciones hace por ciclo) desde la posición más privilegiada (los registros) sin un solo acceso a memoria y con el 100% de ocupacion de las unidades SIMD.

Se trata de un escenario irreal, que va muy bien para el marketing y es una cifra engañosa a la hora de medir el rendimiento de cualquier procesador. Puedes tener dos procesadores con la misma cantidad de FLOPS y rendir uno menos que el otro porque uno retira las instrucciones de manera más rápida.

Pero veamos cuales son los dos motivos.

GPUs de una misma arquitectura: nunca miraras una GPU de misma arquitectura con mas Tflops rendir menos que otra, por una razon simple entre mayor la gama mas ALUs tiene la GPU y los Tflops se sacan incluyendo cantidad de ALUs . Una 2080ti sera mas potente que una 2080 y asi sucesivamente, una 2060 con menos Tflops no ca swr más potente que una 2080ti en ninguna circunstancia.

¿Te has parado a pensar porque solo es comparable dentro de la misma arquitectura EXACTA? Pues por ejemplo, puede que yo haga una mejora en las caches y voila… El rendimiento suba, puede que mejore en la GPU la unidad de rasterizado y la velocidad en esa etapa suba.

¿Os acordáis de los primeros Celeron de Intel?…

Basicamente eran un Pentium II sin Cache L2, lo que afectaba al rendimiento pero arquitecturalmente eran un Pentium II. La arquitectura era la misma sobre el papel pero los cambios afectaban al rendimiento.

Arquitectura con mismo IPC: 2 arquitectura que a igualdad de frecuencia y ALU rindan parecido, son GPU que por razones logicas se puede comparar rendimiento con la métrica Tflops, ya que al final de cuentas la multiplicacion de frecuenci y Alus es el resultado de Tflops, dos arquitectura con un IPC iguales(rendimiento de arquitectura iguales) van rendir muy parecido a mismo Tflops ejemplo:

https://www.computerbase.de/2019-07/radeon-rx-5700-xt-test/4/#diagramm-performancerating-navi-vs-turing

En este Benchmark(muy util)Turing y RDNA podemos ver que tienen un IPC muy parecido, sus arquitectura son equivalente a igualadas de frecuencia, cantidad de Alus y memoria/bus, tanto la 2070 como la 5700 tiene 2304 ALUs FP32 y su frecuencia esta en igualdad 1500mhz para ambas.

Si sacamos los Tflops de estas GPU en éste benchmark, las 2 tiene 6.9 tflops (1500mhz * 2304 *2), se puede decir que los Tflops si son comparables en GPU de 2 arquitectura distintas con mismo IPC, una RDNA de mas tflops va rendir mas que una Turing de menos.

Donde no es aplicable los Tflops es arquitectura de diferentes IPC por ejemplo GCN con Turing/RDNA, esta ultimas rendirán mas ya que su arquitectura es mas rapida a igualadad de frecuencia y ALUs.

Dos cosas:

La primera es que en una GPU, al renderizar no solamente actúan los shaders sino también otras partes de la GPU que son las de función fija. Esas unidades de función fija también calculan cosas aunque no salgan en la métrica de TFLOPS del marketing.

La segunda, no me gusta el termino IPC porque da la sensación de que las instrucciones se resuelven todas en un ciclo y aunque es la inversa del CPI prefiero este último para hablar de las mejoras entre arquitecturas. ¿Cuanto tiempo tarda en solucionar un procesador un programa? Esa es la pregunta clave.

Sería realmente genial que los medios tuviesen un programador que supiese HLSL y testease su código en diferentes arquitecturas midiendo el rendimiento de las unidades shader a la hora de resolver el programa. Pero no se hace, se tira de benchmarks de terceros. ¿Y por qué es importante tener uno propio? Pues por el hecho que se pueden trampear y tener uno propio nos permite ir a lo especifico.

Esto es todo, tenéis el Discord y los comentarios de esta entrada para comentarla.

Comentario#3:

Los artículos de urian son muy buenos,
Pero en alguno huele un poco a defensa de un sistema concreto.

De la tontería de los Tontoflops ya dije en mi anterior blog que me parecía una estupidez y antes de cualquier revelacion definitiva de cualquier marca en concreto.No tiene que ver con marcas sino para explicaros que es una cifra de marketing con un número que no se da en un entorno útil.

Dicha cifra también la usa Nvidia… ¿Estoy atacando a Nvidia? Por favor, dejaos de tonterías, yo no gano nada defendiendo a ningún sistema por encima de otro.

Comentario#4:

Hola una duda la tasa de texturas y polígonos son mejor que los tflops?

La tasa de poligonos que se da es la cantidad máxima de triángulos que las unidades de rasterizado convierten en fragmentos antes del texturizado. Las unidades de rasterizado son unidades de función fija cuya potencia es regular y constante.

La cifra que dan es un teórico que consiste en si la unidad estuviese todo el rato recibiendo los triangulos a rasterizar, pero eso depende de las etapas anteriores del pipeline gráfico que son las de la geometría. Es decir, su rendimiento depende del caudal/flujo de triangulos que le lleguen para poder realizar el rasterizado.

En cuanto a la tasa de texturizado, es también una cifra máxima teórica y dependerá también del caudal de trabajo que le llegue para tener un rendimiento u otro.

Esto es todo, tenéis el Discord y los comentarios de esta entrada para comentarla.

0 0 vote
Article Rating
5 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
jose diaz

Los benchmark a igualdad de cpu, ram, vram, resolucion y calidad son la medida, incluiria drivers pero esto solo es asi a igualdad de frabricante, como siempre ¿no?

De todos modos que los Tflops no son una buena regla para medir el rendimiento de un gpu ha quedado claro en el momento en el que las graficas de Amd con varios Tflops mas que las de Nvidia rendian menos en los benchmarks.

Set

TFLOPS es el cálculo de frecuencias y numeros de ALUs como tu comentas concretamente operaciones FMA o de forma mas entendible y concreta coma flotante en Single precision en 32bits(FP32),que es el standar en juegos. Entiendo lo que dices cuando hablas de mejoras de cache motores de geometría, cambios a nivel de CU, mejoras en tesellation, rops etc pero todo esto rendimiento se en globa dentro del termino IPC que utilizan la compañias, es algo que se debe meter en la cabeza XD, las compañias no van ir a una presentacion a desglosarte todos los cambios técnicos de su Arquitectura,… Read more »

Dani

Si me permitís mi opinión………..pienso que los TF son una buena medida, pero no del todo correcta. Es decir, te da una idea de la capacidad de una GPU, del potencial que puede tener, pero nada más. Por otro lado, el CPI te da una idea de la eficiencia de las instrucciones y el IPC del grado de paralelismo que se puede lograr. Creo que el IPC también es muy útil. Por eso la charla de Cerny no me convenció demasiado, daba todo el peso a la frecuencia, restando toda la importancia a los TF y decía que era muy… Read more »

Tokra_Kree

Urian ¿Cual crees puede ser el motivo principal por el que Sony apuesta por las 36 CUs a una frecuencia tan alta, en vez de poner mas CUs a menor frecuencia?

Por lo que tengo oido del mundo del PC, hacer overclock a una tarjeta gráfica no suele suponer una aumento demasiado sustancial de rendimiento…

¿Crees que el objetivo es tener un precio más barato de fabriación por oblea?

¿O crees que junto al sistema de control cpu-gpu, smartshift y cia, puede aportar un rendimiento más estable y optimo en los juegos?

nolgan

yo puenso que si, que es por intentar llegar a los 399 euros.. llegaran.. no se.. tb pienso que es una buena idea el sistema de control, porque en ps4 por ejemplo es tipico que en cod en los menus., o en el menu de ps4, o en el rdr etc etc digo menus donde nos e esta jugando a nada ni exigiendo.. muchas veces , creo que os habra pasada a todos, la consola se dispara su calor y la empieza el ventilador a saco a refrigerar… eso es ilogico… pero pasa porque el hardware fucniona constante… como dice… Read more »