AMD HIP RT añade un nuevo algoritmo H-PLOC para la paralelización de BVH en Ray Tracing, ¿van a igualar las RX 8000 a las RTX 50 en Trazado de Rayos?

La creciente demanda de gráficos más realistas y simulaciones en tiempo real por parte de las tres grandes del hardware en GPU ha impulsado el desarrollo de técnicas avanzadas de Ray Tracing y optimización en GPU. En este contexto, los algoritmos Bounding Volume Hierarchy (BVH) son esenciales para mejorar la eficiencia del trazado de rayos, un método que simula la interacción de los rayos de luz con objetos 3D. Dado que AMD va con retraso en esto, sobre todo en el hecho de portar el cálculo de estos BVH de CPU a GPU, hoy presenta dos avances importantes en este campo: HIP RT V2.4, un marco flexible para la construcción y el Ray Tracing en GPU AMD que ahora integra a H-PLOC, un algoritmo optimizado para la construcción paralela de BVH. ¿Van a igualar las RX 8000 a las RTX 50 en Ray Tracing?

Pues están dando los pasos necesarios para ello. Hay que tener en cuenta que NVIDIA tiene ya OptiX e Intel usa Embree para mover el cálculo de los BVH de CPU a GPU, algo que antes no era posible y que ahora se acelera de dicha forma para mejorar el rendimiento en un entorno que no olvidemos, sigue siendo híbrido, pero donde cada vez se separa más el Ray Tracing de la rasterización. Dicho esto, lo que ha presentado AMD es una nueva versión de esta API y un algoritmo que la usa, pero para entenderlo todo debemos saber primero qué es HIP y cómo funciona.

AMD HIP, la plataforma que se diseñó para portar software de NVIDIA a las GPU Radeon

AMD-HIP-diagrama-de-trabajo

Es básicamente eso, una plataforma de programación que no intenta competir con CUDA, sino traer el software que hay escrito para ella a las GPU AMD. La conversión es relativamente sencilla para los programadores, de manera que migran el software desde las GPU NVIDIA a las AMD sin demasiados esfuerzos, donde gracias a esto los rojos consiguen un rendimiento muy similar al que consiguen los verdes con su plataforma.

Sobra decir que HIP (Heterogeneous-Compute Interface for Portability) permite escribir código en un lenguaje muy similar a CUDA; y que siendo de código abierto la comunidad está cada vez más implicada. Ahora, sabiendo esto, AMD ha querido hacer su propia versión de OptiX para sus GPU, la cual ha llamado HIP RT, específica para Ray Tracing.

HIP RT: así es el Trazado de Rayos Eficiente y Flexible para las GPU AMD

AMD-HIP-RT-vs-NVIDIA-OptiX

HIP RT (Heterogeneous-computing Interface for Portability Ray Tracing) es una plataforma de los rojos que facilita la implementación del Trazado de Rayos en las arquitecturas de GPU AMD utilizando el lenguaje HIP. Este HIP RT ofrece una API minimalista que permite a los desarrolladores implementar soluciones de renderización acelerada por hardware para diversos softwares, desde la creación de gráficos fotorrealistas hasta la simulación de luz en tiempo real.

Sobra decir que sabiendo lo que sabemos sobre el nuevo Ray Tracing de las RX 8000 da toda la impresión de que AMD pretende darle el empujón definitivo a este punto, donde siempre pierde con NVIDIA, y para ello ha dotado a HIP RT de una serie de características clave, a saber:

  • Separación del trazado de rayos y sombreado: HIP RT permite una flexibilidad significativa al separar el proceso de intersección de rayos con geometrías del sombreado, es decir, la pipeline híbrida actual será todavía más independiente entre Ray Tracing y Rasterización. Esto facilita la integración con diferentes motores de renderizado, como Blender Cycles o Radeon ProRender, siendo una respuesta total a NVIDIA para su software y hardware.
  • Compatibilidad multiplataforma: Aunque se centra en las arquitecturas de GPU AMD, HIP RT está diseñado para ser compatible con diversas plataformas, aprovechando la flexibilidad del lenguaje HIP. Esto permite su uso en gráficos en tiempo real y entornos profesionales de renderización/rasterización.
  • Optimización de estructuras jerárquicas (BVH): HIP RT optimiza el rendimiento utilizando estructuras como los BVH para acelerar el Ray Tracing. Estas estructuras organizan la geometría de la escena de manera jerárquica, permitiendo que las operaciones de intersección se realicen de manera más eficiente. Esto tiene mucho que ver con el algoritmo H-PLOC que veremos más adelante.
  • Diseño de movimiento y geometrías personalizadas: HIP RT está diseñado para manejar geometrías complejas y características avanzadas, como el diseño de movimiento y primitivas personalizadas, lo que lo convierte en una herramienta versátil para proyectos de gráficos de última generación para los títulos más exigentes. Esto debería mejorar ostensiblemente el rendimiento en juegos que usan Ray Tracing en cantidad.

Comentado esto para que se entienda en general, la versión 2.4 trae una serie de mejoras aparte del comentado algoritmo H-PLOC:

  • H-PLOC y conversión Wide BVH.
  • Soporte de CMake.
  • Ruta HIP RT configurable a través de una variable de entorno.
  • Se admiten nuevas arquitecturas gfx.

Explicado HIP RT, ¿qué es exactamente H-PLOC y cómo funciona? Pues vamos a verlo según lo que ha mostrado AMD en su documento técnico.

H-PLOC, el algoritmo que trae la paralelización de BVH a las GPU de AMD

AMD-H-PLOC-implementación-del-algoritmo-y-diagrama-de-flujo

Por su parte, H-PLOC (Hierarchical Parallel Locally-Ordered Clustering) introduce un método innovador para la construcción de BVH en las GPU AMD. Estas estructuras son críticas para facilitar la detección de intersecciones en el Trazado de Rayos, especialmente en escenas dinámicas que requieren reconstrucciones frecuentes del árbol BVH. Como cualquier novedad en el software o hardware, también tiene sus características, que evidentemente, van ligadas a HIP RT:

  • Locally-Ordered Clustering: H-PLOC se basa en el algoritmo PLOC++, una versión optimizada del Locally-Ordered Clustering que facilita la construcción de BVH en GPU. El algoritmo de H-PLOC es capaz de construir un BVH en una sola ejecución de kernel (antes se hacía con varias dependiendo del algoritmo escogido) eliminando la necesidad de múltiples sincronizaciones entre el host y la GPU, lo que reduce significativamente los tiempos de construcción de dicho árbol. Esto debería impulsar el rendimiento en todas las gráficas existentes de AMD con capacidad para Ray Tracing, o lo que es igual, de las RX 6000 en adelante.
  • Eficiencia en la conversión a Wide BVH: Además de construir BVH binarios, H-PLOC ofrece un método eficiente para convertir estas jerarquías en BVH con mayor factor de ramificación (wide BVH), una característica que mejora el rendimiento en hardware del Ray Tracing moderno.Conversión-con-H-PLOC-a-Wide-BVHPara entender el retraso que AMD lleva en esta técnica, NVIDIA la presentó en 2017 como GPU-based ray traversal, o Ray Traversal a secas, su algoritmo para operar con Wide BVH en formato comprimido. Además, Intel también la soporta desde hace un año y medio, por tanto, ya era hora de que los de Lisa Su diesen soporte.
  • Optimización para GPU AMD: H-PLOC está diseñado para aprovechar al máximo las arquitecturas de GPU AMD. Su algoritmo está optimizado para reducir los tiempos de construcción hasta 13 veces en comparación con métodos como ATRBVH (Aligned Tree Restructuring) logrando una reducción significativa en los costos de cómputo sin comprometer la calidad resultante. Esto debe empujar ostensiblemente el rendimiento en Ray Tracing en las GPU compatibles.PRBVH-vs-ATRBVH-vs-PLOC++-vs-H-PLOC-vs-LBVH
  • Aplicación en entornos de tiempo real: El enfoque de H-PLOC lo hace especialmente adecuado para aplicaciones de renderización en tiempo real, donde las escenas dinámicas requieren reconstrucciones rápidas de BVH para mantener un alto rendimiento. Esto lo convierte en una solución ideal para motores de juegos y simulaciones.

¿Qué puede conseguir AMD al unir la API HIP RT y su algoritmo H-PLOC en las RX 8000?

AMD-RDNA-4-motor-Ray-Tracing-RX-8000

Falta información al respecto de los cambios de la arquitectura en cuanto a las capacidades de Ray Tracing de RDNA 4, porque RDNA 3.5 solo tiene dos ISA nuevas como tal y algunas mejoras clave como arquitectura que vimos en su artículo correspondiente. Lo que sí que podemos decir viendo los dos PDF que ha puesto a disposición de todos AMD es que la combinación de HIP RT y H-PLOC representa una solución robusta y eficiente para la creación de gráficos y simulaciones en tiempo real en arquitecturas de GPU para AMD.

HIP RT ofrece una API flexible y optimizada para Ray Tracing, mientras que H-PLOC proporciona una manera extremadamente eficiente de construir los BVH necesarios para acelerar la pipeline híbrida. En resumen y abreviando mucho, simplificando la idea y adelantándonos a las mejoras de las RX 8000, lo que podemos sacar en claro en términos generales es que el rendimiento será mayor en Ray Tracing.

AMD-RDNA-3.5-mejoras-en-Ray-Tracing-imagen-BVH-Intersect-Ray-con-VGPR-y-SGPR

Y lo será porque el rendimiento se ha optimizado en RT, lo que va a dejar una tasa de FPS más alta cuando las escenas se compliquen con BVH complejos. Es decir, a AMD le pesará menos la carga y complejidad del Trazado de Rayos en tiempo real, y por ello aumentará el rendimiento ostensiblemente. Lo mejor de todo no es esto, sino que al ser de código abierto y estar en su primera versión, tanto HIP RT como H-PLOC son muy escalables y mejorables, sobre todo de cara a ciertos motores gráficos como UE5, por ejemplo.

Por último, lo más obvio. Más rendimiento, más optimización y una pipeline para RT más independiente dan como resultado una calidad gráfica superior, seguramente a la altura de NVIDIA, ya que los desarrolladores pueden optimizar más y mejor el Ray Tracing con esta API y algoritmo, además, ganando rendimiento por el camino. ¿Igualarán a NVIDIA y sus RTX 50 en Ray Tracing? Seguramente no, pero deberían de acercarse bastante.