AMD distribuyó la semana pasada una versión de sus controladores Adrenalin que incluían la implementación de una API de DirectX 12 llamada Work Graphs. Ha sido bastante promocionada por Microsoft entre los desarrolladores ya que es una forma de hacer que la decisión de qué y cómo renderizar pase de la CPU a la GPU, lo cual supone un importante ahorro de tiempo de ejecución. Eso se traduce en un mayor aprovechamiento de la GPU, que es el talón de Aquiles de las GPU actuales.

Se llama «gráficos de trabajo» porque se tiene que hacer eso, un gráfico con sus nodos y un orden entre ellos que determina cómo debe rasterizarse una parte de los gráficos por parte de la GPU, sin que la decisión la tenga que tomar la CPU, aunque se activa y desactiva bajo demanda. La API simplifica la codificación del gráfico. En la práctica, se mejoran cosas como los aciertos de caché, y se simplifica el rasterizado al poder exprimir mejor el fuerte paralelismo intrínseco de las GPU.

AMD lo ha mostrado en funcionamiento en una sesión de la GDC 2024 que se celebra esta semana. El vídeo está en la entrada al respecto de GPUOpen, que de momento no lo he visto en YouTube. Ahí explica el ahorro de tiempo en la generación de ciertas partes de los gráficos al pasarle a la GPU la toma de decisiones de ciertos aspectos. AMD no ha compartido qué mejora de rendimiento hay, pero ha presentado la aplicación práctica de los gráficos de trabajo a un sombreado en malla, llamado nodos de malla y que será parte del API, en el que hay un 40 % de reducción en el tiempo de generación de esa parte de la tubería gráfica. Esta aplicación llegará a las Radeon este año.

workgraphs-drawcalls-chart.png.webp

Fuente: GPUOpen. Vía: WCCFTech.