AMD y DirectX 12: La pareja ideal del rendimiento

AMD y DirectX 12: La pareja ideal del rendimiento

Rodrigo Alonso

Ya os hemos hablado en alguna ocasión de los beneficios a nivel de gráficos que proporcionará la próxima API de Microsoft, DirectX 12, pero ahora ha sido AMD la que ha realizado una presentación para mostraros de primera mano que su arquitectura gráfica Graphics Core Next (GCN) y DirectX 12 son la pareja ideal, y los beneficiados somos los usuarios. A continuación os explicamos de manera extensa y detallada por qué esta es una relación ideal para todos.

Hace nada ya os comentábamos los beneficios que DirectX 12 tendría no solo para AMD, sino también para NVIDIA, y hoy vamos a entrar en profundidad basándonos en la arquitectura de AMD. Sabemos que DirectX 12 reducirá en gran medida los cuellos de botella gracias a un mejor aprovechamiento de los núcleos físicos de los procesadores, habilitando el procesamiento en paralelo y no solo de manera linear. En la siguiente diapositiva podéis ver esto de manera gráfica, donde se puede ver un buen ahorro de tiempo de renderizado, traducido en una mayor tasa de FPS, comparando DirectX 11 con DirectX 12.

untitled-1

El poder manear varias tareas al mismo tiempo, se aumenta la eficiencia y por lo tanto baja la latencia y se aumenta la tasa de cuadros por segundo. Esto se llama «asynchronous shaders», y viene a ser algo así como Hyper Threading pero para GPUs.

Los «asynchronous shaders» explicados

En este momento, los gráficos multi hilo se manejan con una sola cola que se programa en un orden concreto, es decir, de manera síncrona. Las tareas que se encuentren en diferentes colas pueden ahora (con DirectX 12 / Mantle) ser programadas de manera independiente en un orden de prioridades, lo que sería de manera asíncrona. Esto proporciona varias ventajas, siendo la mayor de ellas una menor latencias y un renderizado de cuadros más eficiente como hemos comentado antes, lo que se traduce en una mejor respuesta de la GPU.

untitled-1 (1)

Vale, en el cuadro de arriba hay demasiada información como para ser explicada al detalle en un solo artículo, y de hecho es cómo AMD intentó explicarlo por su parte:  se supone que lo que vemos son carreteras (autopistas de información), y los rectángulos de colores son porciones de información. El resumen es que en el pasado, la información siempre se procesaba en el orden en el que era enviada, pero ahora, gracias a DirectX 12 y la arquitectura Graphics Core Next de AMD, las instrucciones pueden procesarse por separado por orden de prioridad, y no necesariamente en el mismo orden en el que son enviadas. Esto significa que las tareas más importantes pueden ser priorizadas.

Con los «asyncronoush shaders» ahora hay tres maneras de generar las colas de información. La cola gráfica (renderizado), cola de computación (físicas, iluminación y efectos de post procesado) y por último la cola de copiado (transferencia de datos). Las tareas de una a otra pueden ser programadas de manera independiente con DirectX 12.

Todas las gráficas basadas en la arquitectura GCN de AMD pueden manejar múltiples instrucciones de comandos y flujos de datos de manera simultánea, manejado eso sí por los motores de computación (llamados ACEs). Cada cola puede procesar instrucciones sin la necesidad de que el resto de tareas terminen, lo que mantendrá a la GPU al 100% de actividad mientras que se prioricen los flujos de trabajo.

untitled-2

Cada GPU cuenta con ocho ACEs, lo que significa que una sola tarjeta gráfica puede manejar ocho colas de proceso con acceso directo a la caché L2. La ventaja de este hecho es una experiencia de renderizado mucho mejor, más rápida y con los FPS elevados en gran medida gracias a un descenso de la latencia de procesado, lo que a su vez lo hace ideal para programas de realidad virtual.

asynchronous performance

Hablando de la realidad virtual, lo que hemos explicado hasta ahora es tan importante porque implica que se podría renderizar los datos para ambos ojos de manera paralela y simultánea, evitando cualquier posible desincronización y por tanto reduciendo casi a cero la sensación de mareo que esto produciría. Además, con una latencia mucho más baja la sensación de que todo se ejecuta al instante mejorará claramente la experiencia.

5

De acuerdo a los datos proporcionados por AMD, este sistema supondrá una mejora de rendimiento de en torno al 46%, o al menos eso calcularon en una demostración hecha con LiquidVR. Veremos como siempre y en cualquier caso cómo se comporta DirectX 12 una vez que podamos echarle el guante cuando Microsoft lo despliegue junto con Windows 10.