Draw Calls y Rendimiento

Comentario Original:

Cambiando de tema hacia las novedades de AMD, tengo entendido que AMD sacará una tarjeta gráfica 390x llamada Fiji con memoria HBM de 4GB pero 4096 bits de ancho de banda, lo que es una barbaridad que llevará arriba de 600GB/s de procesamiento; de todos modos por otro lado hay un tema que me confunde porque no sé si es cierto pero acá va:
Se habla en al red de la “3D Mark API Overhead Test” es que una aplicación para hacer pruebas con tarjetas gráficas y procesadores usando DirectX 12, se ha notado una inmensa ganancia de lo que son las “draw calls” cuando se usan APUs AMD, dejando en ridículo a Intel, luego está el detalle de que DirectX12 está basado en Mantle, por lo que ya sabemos como terminaría beneficiando a AMD, sobre todo llegando Windows 10 pero…
Es que en Extremetech se armó una pelea en la sección de comentarios donde un ¿troll? acusaba al que escribió el post de ser anti-AMD y pro-Intel, de hacer campaña sucia contra AMD, pero en fin el ¿troll? mostró una tabla con estadísticas de “draw calls” para demostrar que había trampa al usar DirectX 11 para pruebas y dejar por tanto mal a la AMD; acá van las estadísticas de “draw calls” (con inicio y fin de comentario original en inglés):

“We test AMD hardware on Intel platforms because Intel platforms provide higher frame rates and better experiences”
You ran these tests using DX11. DX11 is now obsolete. Gaming studios are falling all over themselves to get the next titles out in DX12
Whe you run DX12 API Overhead Tests then Intel losses ON ALL TESTS.
The 3dMark API Overhead Test measures the draw calls that are produced when the FPS drops below 30. As the following numbers will show the AMD APU will give the BEST GAMING VISUAL EXPERIENCE.
So what happens when this benchmark is run on AMD APU’s and Intel IGP?
AMD A10-7700k
DX11 = 655,000 draw calls.
Mantle = 4,509,000 Draw calls.
DX11 = 4,470,000 draw calls.
AMD A10-7850K
DX11 = 655,000 draw calls
Mantle = 4,700,000 draw calls
DX12 = 4,454,000 draw calls.
AMD A8-7600
DX11 = 629,000 draw calls
Mantle = 4,448,000 draw calls.
DX12 = 4,443,000 draw calls.
AMD A6-7400k
DX11 = 513,000 draw calls
Mantle = 4,047,000 draw calls
DX12 = 4,104,000 draw calls
Intel Core i7-4790
DX11 = 696,000 draw calls.
DX12 = 2,033,000 draw calls
Intel Core i5-4690
DX11 = 671,000 draw calls
DX12 = 1,977,000 draw calls.
Intel Core i3-4360
DX11 = 640,000 draw calls.
DX12 = 1,874,000 draw calls
ntel Core i3-4130T
DX11 = 526,000 draw calls.
DX12 = 1,692,000 draw calls.
Intel Pentium G3258
DX11 = 515,000 draw calls.
DX12 = 1,415,000 draw calls.
Are you still saying that Intel gives a better gaming experience?

Ya no sé que pensar, ¿AMD está pronto a revolucionar el mercado gráfico y hacer que Intel e Nvidia muerdan el polvo? ¿o más bien esto se parece a las troladas de la Xbox One donde sueñan mucho con potencia oculta que dejará en ridículo a la Playstation 4? no niego que si AMD incluyera memoria HBM sea 1 o 2 dentro de APUs (parece que lo tienen planeado y usando aparte DDR4 para CPU, a menos que hagan una locura y usen HBM como memoria unificada) será la cosa más brutal porque podría dejar a la Nvidia fuera de la jugada de tarjetas gráficas de baja y media gama porque todo vendría integrado con el plus de poder agregar una tarjeta gráfica dedicada cuando el presupuesto lo permita, seguro es un tema interesante esto, pero si me gustaría saber si las “draw calls” dicen mucho, saludos.

En primer lugar, Mantle no es DX12.

En segundo lugar… Vamos a ver, las Draw Call como su nombre indica son “llamadas a dibujar” y se tratan de paquetes de instrucciones que envia la CPU para que la GPU “dibuje” y lo pongo entrecomillado porque una GPU no solo dibuja hoy en día. En todo caso hay que tener en cuenta que el tamaño de dichos paquetes/listas no es fijo sino que variable. Por lo que si hablamos de una prueba de rendimiento utilizando estos entonces nos tenemos que referir al envió del mismo paquete de datos a la GPU desde diferentes CPUs. Ahora bien… ¿que mide esa tasa? Pues la velocidad con la que se envían los draw calls. Esto es importante porque si el envió de los paquetes de la CPU a la GPU es lento entonces se produce una sobrecarga en la primera etapa, es decir, una perdida de milisegundos en el renderizado. ¿Cual es la primera ventaja de DX12 y Mantle respecto a DX11? Pues el hecho de poder utilizar varios núcleos en vez de uno para enviar las listas a la GPU, lo que aumenta el número de draw calls que se envían al procesador.

Claro esta que esto solo son el envió de paquetes a la GPU y existen una serie de tareas que tiene que realizar la CPU más allá del envió de paquetes y sinceramente las CPUs de AMD son peores que las de Intel en cuanto a rendimiento. La clave esta en las instrucciones por ciclo, o el llamado IPC, donde Intel llega a triplicar a AMD en rendimiento. Claro esta que esto no significa que los juegos vayan a ir tres veces más rápido pero la primera parte del renderizado de una escena es el trabajo de la CPU, antes incluso de enviar los paquetes de instrucciones a la GPU que he comentado antes, los llamados draw calls. ¿En que se traduce esto? Pues cuando menos potente es una CPU más tarda en hacer su parte del renderizado y más milisegundos le toma.

Espero haber resuelto la duda.

Anuncios