DirectX 12 rinde más en CPUs con más núcleos: AMD se pone por delante de Intel

11
8845

Introducción:

Ha llegado Windows 10 y con el DirectX 12 y el mundo de los videojuegos parece un poco revolucionado con gritos del tipo:

“Windows 10 y DirectX 12 aumentan el rendimiento de mi juego en 300 FPS!! (Dicho en juegos que no soportan DirectX 12…)”

“DirectX 12 hará que las gráficas ATI y procesadores AMD se caguen en los Intel y las NVIDIA!!”

y locuras por el estilo…

Por ese motivo en Comunidad DNDP hemos querido aclarar un poquito las cosas y enseñaros un poco más de la parte técnica del maravilloso mundo del gamer de PC. En este artículo os vamos a explicar las ventajas que nos traerá DirectX 12 a todos aquellos que tengamos procesadores con varios núcleos y como influye todo ello en que nuestros juegos vayan mucho mejor con DirectX 12 y hardware que lo soporte.

CPUs con Más Frecuencia vs Más Cores: Velocidad vs Capacidad de trabajo.

Multicore CPU

Hasta ahora, en la mayoría de los juegos hasta DirectX 11 parecía que en lo que a CPU respectaba, tenía más importancia la velocidad o frecuencia del procesador que la cantidad de núcleos.

Este hecho hacía que procesadores como el Intel Pentium G3258 con overclocking fuera la mejor opción para la gama básica de PC’s Gaming debido a su potencial en cuanto a frecuencia se refiere con tan solo 2 núcleos, dejando atrás en rendimiento (FPS) a los rivales más potentes de AMD FX con sus 6 y 8 núcleos.

DirectX 11 y su incompetencia a la hora de usar varios núcleos:

minecraftalpha-crysis

Vamos a ponernos un poco técnicos: El “Command Buffer” es como la cola de procesamiento de un juego, un listado de tareas que tiene que hacer la CPU para pasarlo a la gráfica y que esta haga su trabajo mostrando los gráficos del juego. En esta lista de tareas podemos encontrar la iluminación, posicionamiento de personajes, la carga de texturas y muchas más tareas propias de un videojuego.

En la mayoría de juegos que usan DirectX 11 o inferior, la mayoría de núcleos de nuestra CPU están siendo desaprovechados ya que solo se usan parcialmente en ayudar en la “lista de tareas” del juego, llegando incluso a no participar. Este problema viene de que DirectX 11 no es muy habilidoso rompiendo la “lista de tareas” del juego en bloques más pequeños para que los diferentes núcleos puedan procesarlos en paralelo y dividirse las tareas.

Si a esto le sumamos que DirectX 11 utiliza mucho tiempo de la CPU en “traducir e interpretar” (Overhead) su driver y API, conseguimos que el tiempo que tarda la CPU en ejecutar cada “tarea del juego” se incrementa, lo que conlleva un aumento de los FPS.

Introducción a las matemáticas con DirectX y los FPS:

math101

Imaginemos que nuestro juego tiene solo un personaje que se mueve en una habitación vacía. Cada vez que nuestro personaje da un paso, la CPU tiene que calcular su sombra y su posición, para lo cual tarda 100 ms (mili segundos). Si un segundo tiene 1000 ms, 1000 ms/100 ms = 10 FPS, nos da como resultado los frames que renderiza cada segundo y por ende los FPS a los que iría nuestro juego, en este caso a 10 míseros FPS si la API usada en este caso es la de DirectX 11.

En el caso de DirectX 12 como explicaremos más adelante, este tiempo se consigue reducir de varias maneras, por lo que en procesar la misma sombra y posición DirectX 12 tarda tan solo 50 ms, 1000 ms/50 ms = 20 FPS, el doble de rendimiento con el mismo hardware en teoría. (Estos números son solo ejemplos y no quieren decir que DirectX 12 rinda el doble que DirectX 11).

El símil de la autopista y DirectX 11:

A la izquierda: 2 núcleos  usados por DirectX. A la derecha: el resto de núcleos inútiles.
A la izquierda: 2 núcleos usados por DirectX. A la derecha: el resto de núcleos inútiles.

Imaginemos que nuestra CPU tiene 8 cores como el AMD FX 8320, pero DirectX 11 usa solo 2 carriles y tiene los otros 6 cerrados. Si el tráfico es ligero (código del juego y requisitos), esos 2 carriles son suficientes y el tráfico (juego) va fluido. El problema viene si el tráfico es pesado (juegos como The Witcher 3) y los 2 carriles de la autopista (CPU) se colapsan, aumentando así el tiempo de procesado y por consiguiente disminuyendo los FPS que es lo que al fin y al cabo nos importa.

Si a esto sumamos que DirectX 11 no divide las “tareas del juego” en bloques más pequeños, es como si nuestro tráfico estuviera formado de Camiones largos en lugar de coches pequeños, lo que dificulta aún más el tráfico.

Resultado: Tenemos una autopista de 8 carriles (CPU de 8 núcleos) con 6 desaprovechados.

Esto daba hasta ahora ventaja a CPUs como el Core i5 a la hora de hacerse un PC Gamer decente frente a los cores extra de AMD y los FX.

Multi-threaded Command Buffer Recording o la optimización de DirectX 12 para multicores:

cmd_buffer_behavior

Ya hemos hablado de la “lista de tareas” que ejecuta la CPU para que un juego funcione y como se comporta DirectX 11. Ahora pasemos a las novedades de DirectX 12 a la hora de procesar esta “lista de tareas” o “Command Buffer” si nos ponemos técnicos:

  • El tiempo de “interpretación” del código del driver y la API (overhead) se reduce al moverlo a los núcleos disponibles y libres.
  • Se reduce el tiempo absoluto que requiere completar tareas complejas de la CPU.
  • La carga de tareas del juego se distribuye entre 4 núcleos o más.
  • El nuevo “Ancho de banda” en la CPU permite topes de llamadas a funciones de renderizado más altos, lo que permite mundos y escenarios más detallados y complejos.
  • Todos los cores o núcleos de la CPU pueden “comunicarse” directamente con la tarjeta gráfica de forma simultánea.

Todo esto se resumen en la foto superior en la que podemos ver abajo como DirectX 11 tarda más en procesar la “carga del juego” (longitud total de la primera barra) y como DirectX 12 acorta esta barra para distribuirla entre el resto de núcleos (Primera gráfica).

Vuelta al símil de la autopista con DirecX 12:

microsoft_dx121

Si recordáis nuestro símil de la autopista, en el caso de DirectX 12, la CPU o autopista puede usar todos los carriles (núcleos) que necesite y de forma simultánea de manera que el tráfico es más fluido (procesamiento del juego) y el rendimiento en FPS final aumenta.

Para colmo, DirectX 12 divide el tráfico pesado de camiones (Bloques de instrucciones del juego) en bloques más pequeños (coches) que pueden pasarse a otros carriles para agilizar aún más el tráfico hacia su gran destino: la tarjeta Gráfica o GPU.

Conclusión: ¿AMD es ahora mejor que Intel para PC gamers?:

AMD-vs-Intel

Leyendo toda la información que os hemos ofrecido, la conclusión que sacaría cualquiera es que si un AMD tiene más núcleos que un Intel de la misma categoría, está claro que AMD es ahora mejor que Intel para PC gamers!!.

Cuidado!!. Ya sabíamos que para la gama media-baja de PCs Gamers, la mejor opción en base al rendimiento/precio eran los FX de AMD y que la gama media-alta era territorio de Intel. Pero claro, esta información se ha presentado en la web de la comunidad de AMD para demostrar que DirectX 12 funcionará mejor en AMD debido a sus múltiples núcleos.

No hay que olvidar que Intel usa una tecnología que hace que un núcleo pueda realizar 2 tareas a la vez, mientras que AMD usa más núcleos que realizan 1 tarea. Recordemos que un juego se subdivide en “tareas” que tienen que realizar las CPUs y su un procesador Intel tiene 4 núcleos capaces de realizar 2 tareas cada uno, y AMD 8 núcleos que realizan 1 tarea cada uno, las matemáticas no engañan y 4×2=8×1 o lo que es lo mismo 8=8 al fin y al cabo.

Esto no es una defensa de Intel y desprestigio de AMD, si no no recomendaría AMD para presupuestos bajos-medios de PCs Gamers. Simplemente es un toque de atención para que sepáis como funciona (De forma bastante simplificada) DirectX y que opciones nuevas trae DirectX 12 y no os dejéis llevar por artículos con títulos como el que he puesto yo a propósito a este artículo y uséis vuestros conocimientos y criterio para escoger la mejor opción.

Lo que está claro es que todos los que tengan procesadores con varios núcleos o con núcleos que permitan realizar varias tareas nos veremos beneficiados con DirectX 12, aunque eso sí, para saber si AMD se pone por delante de Intel en rendimiento habrá que esperar a que salgan los juegos que soporten de forma completa DirectX 12 y se realicen los benchmarks de rigor con equipos en igualdad de condiciones y con gráficas que también soporten esta tecnología.

Solo entonces saldremos de dudas y será en ese momento cuando os actualicemos la información para que tengáis los mejores datos a la hora de saber que componentes escoger para actualizar o montar un verdader PC Gamer.

Deja Tu Voto!!

2 puntos
Voto positivo Downvote

Votos totales: 2

Votos positivos: 2

Porcentaje de votos positivos: 100.000000%

Votos Negativos: 0

Porcentaje de Votos Negativos: 0.000000%

11 Comentarios

  1. Buena explicacion estoy por montar una pc y no se q procesador usar entre estos 2 para aprovechar DirectX 12 un i5 6600k o i7-6700 o de plano i7 6700k preferiría esperar por los zen de amd pero va para largo
    Saludos

  2. Por lo que he entendido rendiría mas un FX-8350 con 8 núcleos que los I5 (4 cores y 4 hilos). Por lo que veo me seguirá dando para rato la configuración que use. FX-8350 + HD7970. El problema lo veo en que están aumentando mucho la VRAM. El ultimo tomb raider me dice noseque de 4GB para poder jugar con texturas en muy alto.. aun así lo ignore y las deje en muy alto y juego con todo al max en 1080 con una media de 35fps. Cuando le pongan el DX12 me pregunto como irá.

  3. Saludos a ver si me sacan de una duda que tengo, para ver si cambio de windows, Los juegos programados en direct x 9, 10 , 11 osea juegos viejos del 2000, 2001, etc… se benefician de las direct x12 ? (video card es una gtx 750,) gracias por su tiempo.

    • Hola Jean Carlos, a ver, mucha diferencia no vas a notar salvo que el juego soporte DirectX 12 de forma nativa o se lo pongan con un parche.

      Lo que si es cierto es que con cada edición de DirectX 12 se añaden nuevas características y se optimizan las existentes, por lo que si un juego usaba la función dibujar() en DX 11 y esta se ha optimizado en DX 12, tendrás un poco más de rendimiento.

      Aunque como te digo, depende de cada juego y del uso que hagan de la versión de DirectX que usen.

      A grandes rasgos te puedo resumir que si, aunque los juegos no estén preparados DX 12, la mayoría de gente afirma que el rendimiento en juegos con Windows 10 es mayor que con Windows 8 con el mismo hardware.

      Así que resumiendo. SI, te animo a que actualices a Windows 10 para una ligera mejora de rendimiento.

      • Gracias por responder. probare a ver que tal va con mi vieja pc athlon 64 x2, 4 gb videocard gtx750 1vram xD la tarjeta de video es lo más nuevo que tiene el resto es del año 2010 – 2012. en fin gracias.

  4. potencia del nucleo de Intel 1.6

    potencia del nucleo de amd 1.0

    dx12 soporta 6 nucleos
    Intel core i7 core i5 1.6 x 4nucleos = 6.4

    amd 1.0 x 6 seis nucleos = 6.0

    sigue siendo mas potente Intel
    prueba de que el nucleo de Intel equivale a 1.6 de amd??
    cinebench cpu mononúcleo core i7 , i5 i3 cuarta generación 1.86
    cinebench cpu amd mononúcleo fx 8XXX 6XX 4XXX 1.10
    he dicho
    el dx 12 no soporta 8 cores sino 6 infórmense mejor

    • No se de donde sacas esa información de que la potencia del nucleo de intel es de 1.6 y la de AMD 1.0 y porqué coges AMD como referencia para la unidad. Hay 1 benchmark que dice que en igualdad de condiciones 1 núcleo de 2 hilos de Intel rinde un 80% de lo que rinden 2 núcleos de AMD.

      Lo curioso es que en teoría, si todo es como tu dices, en el sector de 8 cores (o 4 cores con 2 hilos en el caso de Intel), AMD FX 8 debería pasarle por encima a la gama i7 de Intel, cuando los benchmarks demuestran que no es así, por lo que tus matemáticas no funcionan. (que luego AMD sea mejor en cuando a euro/potencia no lo negaré).

      Core i7 de 4 núcleos y 2 hilos = 1.6 x 4 = 6.4
      AMD 1.0 x 8 = 8.0

      ¿Cómo es que el i7 riende más? Como puedes ver en mi artículo lo he simplificado todo para que la gente lo entienda de forma más amena y el mundo de las CPUs no es tan simple como hacer una cuenta de tres. En realidad influyen la arquitectura (nm), frecuencias, y más tecnologías aparte de la cantidad de cores o hilos que un procesador tenga y en este caso pese a ser más caro, en la gama media-alta si quieres el mejor rendimiento hoy en día Intel es el ganador.

      respecto a que dx 12 no soporta 8 núcleos de donde lo sacas?, la gráfica de arriba cláramente demuestra que todos los núcleos de la CPU trabajan alguna parte del código del juego o de DirectX, y está sacada de la colaboración entre DirectX y AMD. Por lo que nuestra información está bien.

      Agradezco tu comentario, pero si vas a negar o decir que no estamos informados, te pedimos que nos lo demuestres con enlaces y datos para que podamos corregir nuestro artículo por favor.

Deja un comentario