• Compra una licencia de Windows 10/11 (10€) u Office (18€) al mejor precio u Office al mejor precio. Entra en este post con las ofertas
  • ¡Bienvenid@! Recuerda que para comentar en el foro de El Chapuzas Informático necesitas registrar tu cuenta, tardarás menos de 2 minutos y te dará valiosa información además de ayudarte en lo que necesites o pasar un rato agradable con nosotros.

[Explicación] ¿Por que las gráficas AMD ganan más rendimiento que las Nvidia en DX12?

Registrado
8 Dic 2014
Mensajes
30
Puntos
0
Edad
28
Hace algún tiempo que estoy viendo mucha desinformación sobre el tema DX12 y sobre que gráficas van mejor en esta API, en este post quiero explicar algunas cosas e intentar ayudar a toda esa gente que está entre comprar una gráfica AMD y Nvidia y no se decide. Además quizá sirva para que algún fanboy se informe un poco xD

Versión para los que no les gusta leer: :cafe:

Desde que se empezó a hablar de DirectX 12 hemos estado viendo gráficas como esta:

cdGUfuU.png


De hecho hemos visto gráficas muy similares en webs especializadas, aquí un ejemplo:

tMTVYQD.png


Viendo estas gráficas a la conclusión que cualquier persona llegaría es “Las gráficas AMD revientan a las gráficas Nvidia en DX12”, como veis la mejora de rendimiento es mucho mayor en la FuryX al usar DX12, seguramente muchos lleguen a preguntarse si la 980ti es compatible con DX12, ahora bien, los datos de la primera gráfica están sacados de esta otra:

QhXRGcK.jpg


¿Qué me decís ahora? La 980ti y la FuryX están a la par en DX12 hay 1fps de diferencia ¿Es mejor la FuryX en DX12 que la 980ti o simplemente existía un problema con el rendimiento en DX11 con la FuryX?


Este es un ejemplo muy exagerado, pero una instrucción perfecta para el post, porque de esto vamos a hablar. ¿Son mejores las gráficas AMD en DX12 que las Nvidia o rendían mal en DX11 y por eso la ganancia en DX12 es mayor?

Vamos a empezar por analizar el “overhead” ¿Qué es el overhead? Overhead significa “gastos generales” en nuestro caso la traducción más precisa sería “Gasto de recursos”, el overhead en tarjetas gráficas es el uso que realizan de la CPU, y las gráficas de AMD sufren un gran overhead en DX11 debido a sus drivers, vamos a comprobarlo y después explicaremos la causa.
Comprobarlo es muy sencillo, basta con realizar un benchmark de una gráfica AMD y una Nvidia, a continuación repetirlo con un procesador menos potente.
En este caso vamos a analizar la perdida de rendimiento de la 750ti y la 270X al usar un i3 respecto a usar un i7
Fuente: Digital Foundry.

FAR CRY 4:
SW0ngvH.jpg

nLCzNP5.jpg


RYSE:
ITwyNli.jpg

w7fOpAM.jpg



COD ADVANCED WARFARE
4HYEtTX.jpg

X11Szp1.jpg



Si alguien quiere ver más comparaciones aquí tiene un muy buen post sobre el overhead:
AMD vs Nvidia Overhead - overclock.net

8a402254_GPU_4690K.jpeg

b40bcb67_GPU_8350.jpeg


Como veis la 270X se ve muchísimo más afectada que la 750ti al usar un procesador menos potente. ¿Por qué pasa esto? La clave son las “command-queue” es decir, las listas de comandos de DX11. Hablar sobre esto nos daría para escribir un libro, así que lo explicaré muy por encima. Las gráficas AMD cogen las llamas de dibujado a la API y las ponen en un solo hilo, esto hace que el rendimiento dependa mucho de las potencia mono hilo de nuestro procesador (curiosamente este ha sido siempre el punto débil de los procesadores de AMD, por lo que las gráficas AMD rinden mejor con procesadores intel que procesadores AMD) y en algunos juegos el procesador puede verse desbordado y tendríamos un pésimo rendimiento. Nvidia usa el multi-hilo, divide estas llamas en diferentes hilos, por lo que consigue un rendimiento mucho mayor y el overhead se ve drásticamente reducido.

Como antes vamos a comprobarlo, vamos a poner a la RX 480 y la GTX 1060 en TW3 olvidaos de fps o cualquier otra cosa, fijaros en el uso del procesador.
FUENTE: "https://youtu.be/uzyUVQHzDwk"

iTj76id.jpg

EVlSE9Q.jpg

TevmgMp.jpg


-Pero TW3 usa gameworks, no me lo creo… Ok, pues vamos a uno de los juegos más cpu dependientes que existen, Total war warhammer bajo DX11, ahora además vamos a usar la FuryX y la 980ti.
FUENTE: "https://youtu.be/ceCB5nR9g1c"

dVAk9G7.png

T84CTvy.png


Como veis en ambos juegos la gráfica Nvidia está aprovechando todos los núcleos del procesador mucho mejor que la gráfica AMD, que está tirando de unos pocos núcleos.
¿Y por qué AMD no hace como Nvidia e implementa las listas de comandos multi-hilo? Por varias razones, la primera es porque no es sencillo, hace falta una gran inversión en I+D para implementar esto en los drivers, Nvidia se la pudo permitir, AMD no y optó por una implementación más sencilla, que además tiene una ventaja, pese a que pierdes rendimiento funciona bien en todos los juegos mientras que la opción de Nvidia depende mucho más de optimizaciones por drivers -¿Entonces por eso siempre decimos que las gráficas Nvidia son más dependientes de los drivers y por eso sacan siempre drivers cada vez que sale un juego? Exacto.
La segunda razón es porque la arquitectura AMD no está diseñada para esto.

Vale bien, ¿Pero esto no iba sobre DX12?, llevas media hora hablando de DX11.
Ahora viene la parte interesante, en DX12 gráficas AMD SI soportan las listas de comandos multi-hilo, la API permite usarlas con la arquitectura de AMD, de hecho la propia arquitectura estaba desde un principio pensada para trabajar con APIs como DX12. ¿Y qué pasa con las gráficas Nvidia? Absolutamente nada, ya las implementaban en DX11 y en DX12 siguen haciéndolo, para ellas no ha cambiado nada, en cambio las gráficas AMD se libran de un lastre que han soportado durante años y consiguen mejorar su rendimiento.
Por desgracia probar esto es más complicado, primero porque los juegos DX12 que tenemos ya sabéis como van la mayoría y segundo porque ningún programa de los que muestra información en pantalla funciona aún bajo DX12. Además pocas webs han hecho comparaciones de escalados de procesadors.

Por suerte he encontrado algunos benchmarks y Magia! Recordáis lo que pasaba con el i7 y el i3 en la 270X? Pues como veis eso queda solucionado bajo DX12

MdwOvPd.png


Entonces, las gráficas AMD ganan más rendimiento por que en DX11 estaban lastradas por el overhead y en DX12 puedes dar todo su potencial. Pues a mí me han contado que es porque las gráficas Nvidia no soportan el async compute ¿Qué pasa con el async?
Esto daría para otro post, así que solo le dedicaré un par de frases. Lo primero, el computo asíncrono ha sido ultra overhypeado, muchas veces se le ha atribuido la mejora de rendimiento cuando en realidad son otras características de la API las que lo están produciendo, como la reducción del overhead, segundo, solo se nota en juegos muy cpu dependientes y por último las gráficas Pascal también lo soportan.

timespy-3.png


Pruebas propias con la GTX 1080, async desactivado vs async activado en Time Spy

p94gFu4.png


Que gráfica gana más rendimiento, que implementación es mejor y demás lo dejamos para otro día, solo nos interesa saber que no es algo demasiado relevante en lo que se refiere a mejoras en DX12 en la mayoría de los casos.

No te creo, dices eso por que tienes una gráfica Nvidia!!!
Ok, pues hazle caso a los desarrolladores de hitman: http://wccftech.com/async-compute-boosted-hitmans-performance-510-amd-cards-devs-super-hard-tune/

lB6UlRo.png


Saying that Multi-Engine (aka Async Compute) is the root of performance increases on Ashes between DX11 to DX12 on AMD is definitely not true. Most of the performance gains in AMDs case are due to CPU driver head reductions.

Como veís lo está diciendo claramente: " Decir que el computo asíncrono es la raíz del incremento de rendimiento entre DX11 y DX12 en las gráficas AMD es definitivamente falso". La mayoría de la mejora de rendimiento en el caso de AMD viene de la reducción del overhead".

Conclusión: Las gráficas AMD no están mejorando más que las Nvidia en DX12 por que tengan mejor soporte, lo están haciendo porque estaban lastradas en DX11 y ahora pueden dar su máximo potencial. ¿Qué puede que Nvidia o AMD tengan mejor soporte que la otra en agunas tecnologías? Sí, pero la diferencia de rendimiento por el momento es despreciable.
¿Entonces me compro la 480 o la 1060? Comprate la que te dé la gana y deja de preocuparte por DX12 y lo que va a pasar dentro de 10 años cuando tu gráfica no tire ni el buscaminas, ambas te van a ir igual de bien en DX12 fps arriba fps abajo, las dos soportan al 100% la API.

Pero y Doom? Que pasa con doom?

Ya estamos con doom otra vez? No existen más juegos? xD. En doom pasa exactamente lo mismo, las gráficas AMD no tenían implementado OpenGL 4.5 y lo tiraban con OpenGL 4.3, haciendo que su rendimiento fuese bastante malo, al meter vulkan esos problemas se solucionaron y las gráficas AMD pasaron a rendir lo que rendían, no es que sean la ostia en Vulkan y mejoren una burrada, es que en OpenGL iban como el culo.

LwHlXTE.png


NENCJXi.png


Como veis las gráficas AMD ganan una burada de rendimiento, pero se quedan junto a sus equivalentes de Nvidia, es decir, donde deberían haber estado desde el principio.
Aunque no pasa lo mismo en todas las escenas, en algunas superan a sus equivalentes de Nvidia ¿Por qué? Es bastante gracioso ahora pasa justo al revés, los drivers de Nvidia solo dan soporte hasta la versión 1.0.8 de Vulkan mientras que las AMD dan soporte hasta la 1.0.17, esperemos que Nvidia solucione esto cuanto antes y de soporte a la última versión de Vulkan.

EQNqw0L.png



Zona spam: Si queréis agradecer el trabajo que me ha llevado hacer este post un like en el vídeo de arriba del todo no vendría mal :guiño:

He intentado ser lo más imparcial posible y reunir la mayor cantidad posible de información para hacer este post, si alguien cree que hay algo mal en el post (que suguro que lo habrá) o cree que alguna zona no es imparcial, que lo escriba en los comentarios para cambiarlo.

En compensación por el tochaco...
VAsIWEG.jpg
 
Buen curro :sisi3:
 
Muy buena explicación, más de uno debería leerlo. [emoji122]

Enviado desde mi LG-D855 mediante Tapatalk
 
Muy buena explicación, más de uno debería leerlo.

Enviado desde mi LG-D855 mediante Tapatalk
 
Maldito fanboy duende verde lame bolas... es broma. Buen tema .:eek:k:
 
Bueno pero esto siempre va a pasar, la desinformación y el "salseo" que hay entre Nvidia y AMD, que será eterno en cada gama que saque cada una.
Pero vamos, a día de hoy AMD de gpus es la AMD de cpus y Nvidia es la "Intel" de las gpus, no hay más.
 
es todo mentira , te lo has inventado, el async es el futuro, me lo ha dicho Flauros
 
Pillo sitio, gracias por el curro ;)
 
Muchas gracias por molestarte en aclararlo.

Un saludo
 
Muy top la explicacion.
 
Gracias por aclarar algo que ya muchos sabíamos y otros muchos callaban.
 
La 480 va a durar más dando guerra que la 1060?
 
La 480 va a durar más dando guerra que la 1060?

En DX12 están a la par, rinden prácticamente lo mismo, por lo tanto durarán parecido, no se puede afirmar nada por que no sabemos que pasará en el futuro, pero si ambas reciben buen soporte de drivers y no aparecen nuevas tecnologías que una soporte y la otra no o pasa alguna otra cosa deberían durar lo mismo, como mucho esos 2gb extra de la 480 podrían ayudarle en algún juego donde metan texturas super bestias, pero poco más. La verdad, si ahora tuviera que elegir cual comprarme me costaría mucho elegir, seguramente acabaría comprando la 1060 por que ahora mismo es superior y algunas otras razones como la comodidad que me da shadowplay para grabar, pero también hay que decir que las gráficas AMD suelen envejecer mejor por que tienen más fuerza bruta, pero no sabemos que pasará en esta ocasión, desde luego compres la que compres será una buena elección. El problema de estas comparaciones es que hasta dentro de 3-4 años cuando ya haya pasado mucho tiempo no podremos decir cual fue la mejor opción xD
 
  • Like
Reacciones : xzh
Como veis la 270X se ve muchísimo más afectada que la 750ti al usar un procesador menos potente. ¿Por qué pasa esto? La clave son las “command-queue” es decir, las listas de comandos de DX11. Hablar sobre esto nos daría para escribir un libro, así que lo explicaré muy por encima. Las gráficas AMD cogen las llamas de dibujado a la API y las ponen en un solo hilo, esto hace que el rendimiento dependa mucho de las potencia mono hilo de nuestro procesador (curiosamente este ha sido siempre el punto débil de los procesadores de AMD, por lo que las gráficas AMD rinden mejor con procesadores intel que procesadores AMD) y en algunos juegos el procesador puede verse desbordado y tendríamos un pésimo rendimiento. Nvidia usa el multi-hilo, divide estas llamas en diferentes hilos, por lo que consigue un rendimiento mucho mayor y el overhead se ve drásticamente reducido.


Lo que afirmas es totalmente falso no tiene que ver con la supuesta potencia de la cpu, los drivers DX11 de NVIDIA con multihilo y es la CPU la que se encarga directamente de hacer las DRAWCALLS en cambio las GPUS AMD son monohilo porque las llamadas las hace la propia GPU a travez del COMMAND QUEUE PROCESSOR el cual puede procesar sólo una llamada por ciclo de reloj.

Es por eso que al overclokear una GPU GCN esta escala su rendimiento casi linealmente, en cambio una gpu nvidia necesita un 30 a 40% de overclock para ganar sólo un 10 a 15% en rendimiento real.
 
Última edición:
usando tu lógica, mira como afecta el overhead a la TITAN X.

2drwaf.png


mi DIOS!!, esto debe ser un errorsh la FX-6300 venciendo a un i3-4130 y casi igualando a un i3-6100. Esa potencia mononúcleo del FX-6300 es toda una onda vital!...

357hgg0.png
 
Entonces... Si están tan a la par y supuestamente amd envejece mejor, supongo queME merece la pena optar por la RX 480 para aprovechar el freesync

Enviado desde mi LG-D802 mediante Tapatalk
 
Primero de todo darte las gracias por tu esfuerzo, porque independientemente de lo que piense, creo que molestase hacer esto merece valorarlo ( Obviamente de forma positiva me refiero)

Hay cosas que comparto y otras que no y no entro a discutirlo porque al final el tiempo y como se desarrolle todo dejará las cosas a su sitio,respecto a qué gráfica comprar en eso estoy de acuerdo, uno tiene que comprarse lo que le salga de los huevos.
Solo quiero añadir dos cosas:

1- Las pruebas que pones respecto a Ashes Of The Singularity de Computer Base son de hace un año y antes de que empezara a usarse el cómputo asincrono. Este es más reciente, de hecho ahora Computer Base en las reviews más actuales con las NVIDIA no usa Dx12 posiblemente porque no tiene una ganancia notable:

2rxb981.jpg


1fa0sz.jpg


sfgveu.jpg


2- 3Dmark Time Spy todavía no está muy claro si hace uso de la computación asincrona, y aunque los chicos de Futuremark dicen que sí, ellos mismos se contradicen al publicar que hace uso de la "Computación concurrida" que a diferencia del primero ejecuta las tareas de forma paralela, que aun siendo esto una mejora, no es lo mismo ya que tiene que ejecutarse de forma sincronizada y no al revés llenado la GPU los huecos de trabajo como el vaya necesitando, de forma asincrona. En este comunicado intentando aclararlo, al final de todo te lo dicen, que se está ejecutando de forma paralela
http://www.futuremark.com/pressreleases/a-closer-look-at-asynchronous-compute-in-3dmark-time-spy
 
Última edición:
usando tu lógica, mira como afecta el overhead a la TITAN X.

2drwaf.png


mi DIOS!!, esto debe ser un errorsh la FX-6300 venciendo a un i3-4130 y casi igualando a un i3-6100. Esa potencia mononúcleo del FX-6300 es toda una onda vital!...

357hgg0.png

Eso no es overhead, si metes una TitanX con un i3 lo que estás creando es cuello de botella, esa procesador no puede sacar toda la potencia de una TitanX xD
 
aAJajAJAJajaAJaJaAJaJa Buen curro para secar las lagrimas de los Fanboys Verdes AJAUajaAUAUJAUAaJAAU por favor dime donde puedo comprar un i7 4970k ajajauajaau muy veredicto todo.

Si no estás de acuerdo prueba que lo que digo en el post es falso, si lo único que vas a hacer es trollear la puerta está a la derecha.
 
Arriba