AMD RX 7900 XTX: rendimiento hasta un 64% más rápido con DX12

La presentación realizada por Microsoft la semana pasada no generó mucho impacto en los usuarios, a pesar de que las ventajas de la última versión de DX12 eran evidentes. Por tanto, de manera oficial, AMD ha decidido mostrar a todos sus usuarios un pequeño vistazo, un adelanto, de lo que está por venir, ya que la tecnología Work Graphs representa un avance significativo en la dirección correcta. Equipados con una RX 7900 XTX y dicha Work Graphs, AMD ha exhibido el incremento de rendimiento que se puede lograr en condiciones óptimas.

Sí, es verdad que realizar una prueba rápida no simula un entorno real para un juego, eso es algo que todos sabemos, pero la diferencia es tan significativa que incluso alcanzando una décima parte sería un avance interesante para todos los usuarios con hardware compatible. Explicaremos de manera resumida las mejoras, cómo se logran y cuál es el resultado, aunque el tema es bastante técnico.

AMD presentó y discutió en el GDC 2024 acerca de Work Graphs y cómo cambiará el panorama en hardware y juegos

Microsoft-Work-Graphs-Nodos

Si la semana pasada no estuviste al tanto de la presentación de Microsoft junto a sus socios, resumiremos en palabras de Shawn Hargreaves, Gerente principal de ingeniería de D3D en Microsoft:

Work Graphs es el resultado de varios años de colaboración entre Microsoft, AMD y otros socios. Siempre supimos que queríamos expandir esta capacidad más allá de la pura computación para incluir también los Draw Nodes (Nodos de dibujo, o también conocidos como Nodos de llamadas), estamos emocionados de ver que este prototipo ya funciona en hardware real y esperamos continuar nuestra sólida asociación al integrar esta funcionalidad en una futura versión de Direct3D.

El inconveniente actual que ha sido mitigado con DX12, los Draw Calls y las sucesivas mejoras de la API es que aún existe un límite en el Compute Shader, lo que representa un problema para la CPU y los Dispatch.

Works Graphs llega para solucionar parte del problema que genera la CPU, y al menos, elimina ese Compute Shader Dispatch (procedente del Dispatch Graphs como tal) enviando la mayor parte de la información a renderizar directamente a la GPU.

Work GraphsWork Graphs

En resumen, la CPU deja de ser en gran parte el cuello de
botella
(se elimina la necesidad de buscar «trabajo» en ella) y se traslada el procesamiento y la alimentación de la escena a la GPU, tal como comentamos meses atrás en los comentarios sobre el funcionamiento de DX12 como API con estos dos componentes.

Resumiendo el concepto, podríamos decir que ahora contamos con un Node Graphs central donde cada nodo solicita trabajo a los demás, se retroalimentan, no es necesario esperar a que la CPU envíe la información, es totalmente paralelizable, lo que ayuda al desarrollador a simplificar la programación en el hardware y deja este trabajo a la API, la cual decide cómo ejecutar el trabajo (Broadcasting, Threads o Coalescing) en el
mejor orden dependiendo de la carga de los nodos, sin latencia externa.

Incluso Epic Games elogia este avance para UE5, Nanite y Lumen.

Empty Draw Compaction (EDC) y Mesh Nodes

DX12-Dispatch-Graph-mediante-Work-GraphDX12-Dispatch-Graph-mediante-Work-Graph

Para contextualizar y comprender mejor lo que veremos en el gráfico a continuación que ha compartido AMD y su importancia, primero debemos entender hacia dónde se dirige Work Graphs además de poner fin al Compute Shader Dispatch en la CPU. AMD afirma que gracias a esta tecnología se eliminará por completo el Empty Draw Compaction, que consume mucho tiempo de optimización y limita significativamente el rendimiento, siendo otro obstáculo que la CPU no puede superar fácilmente.

EDC consiste en un método de compactación de datos que se envían a la CPU. Normalmente hay dos situaciones que colapsan los Dispatch en los registros y posteriormente en la caché del procesador: resoluciones bajas en los juegos con FPS altos a renderizar (1080p a 360 FPS o más), o bien, resoluciones altas con FPS moderadamente altos (4K a 120 FPS o más).

Por lo general, el primer escenario requiere una mayor dependencia de la CPU, y por eso, DX12 incluye dos métodos de compactación de datos.

Ninguno de los dos métodos funciona bien cuando se exceden los recursos de la CPU, por lo que la solución es Work Graphs, pero ¿cómo? Dividiendo las Draw del procesamiento transversal en escenas complejas. Esto resulta en un grupo de Draw Calls más reducido y según AMD, en su hardware permite cambios frecuentes de PSO (Pipeline State
Object)
además de manera completa.

¿Cómo lo logran? Mediante Mesh Nodes, que no es más que un nuevo tipo de nodo para controlar los Mesh Shaders. Así que, en resumen, Work Graphs ahora integra Mesh Nodes, los cuales a su vez, controlan los Mesh Shaders.

Execute Indirect y su mejora por Work Graphs en una RX 7900 XTX

AMD-RX-7900-XTX-Work-Graphs-64%-más-de-rendimientoAMD-RX-7900-XTX-Work-Graphs-64%-más-de-rendimiento

Ahora entendemos cómo Work Graphs trabajará con los Mesh Nodes y cómo estos serán transferidos a la GPU para que esta libere a la CPU del trabajo. Por lo tanto, AMD (y Microsoft) llaman a este trabajo que realizaba la CPU y que parcialmente asume la GPU como Execute Indirect (ejecución indirecta), ya que representaba un trabajo fuera de la gráfica que se convirtió en un cuello de botella en los escenarios mencionados.

Así, este Execute Indirect es reemplazado por Mesh Nodes
(Work Graphs)
y se lleva a la GPU para su cálculo y resolución interna en paralelo, donde al ser ahora ampliamente paralelizable mediante los Mesh Shaders, se espera un aumento significativo en el rendimiento.

Microsoft-Work-Grahps-GPU-retroalimentaciónMicrosoft-Work-Grahps-GPU-retroalimentación

AMD asegura que todo se gestiona en un solo Work Graphs
mediante un único envío
, por lo que la Empty Draw
Compaction
desaparece, permitiendo también (y gracias a esto) eliminar los cambios de PSO (Pipeline State
Object) internos
, lo que a su vez conlleva a que la
administración de memoria ya no sea necesaria.

¿Resultado resumido? Menos recursos del sistema, menor latencia, mayor rendimiento y una comunicación más directa con la GPU. AMD compara el rendimiento de Execute Indirect
con Work Graphs
, y como se puede ver, el
rendimiento es un 64% superior con una RX 7900 XTX, ya que el
tiempo de renderizado es mucho más corto.

Como mencionó Microsoft, los Mesh Nodes con Work Graphs estarán
disponibles a finales de año, justo cuando las nuevas RTX 50 y RDNA 4 se encuentren en el mercado, por lo que el año 2025 se presenta interesante en el ámbito del gaming por todo lo expuesto.

¡Contáctanos para saber más!

Contactanos