Así ha sido la evolución del Ray Tracing en GPU, ¿ha tocado techo?

Así ha sido la evolución del Ray Tracing en GPU, ¿ha tocado techo?

Redacción

El Ray Tracing es un algoritmo para renderizar escenas que ha sido ampliamente utilizado en el mundo de la animación offline pero que en entornos a tiempo real como son los videojuegos es ahora cuando empieza a despuntar. En este artículo os hablaremos de la evolución pasada, presente y futura del hardware respecto al trazado de rayos para que así os podáis hacer una idea de lo que nos podemos esperar.

Al igual que ocurrió con la rasterización, donde inicialmente era solo posible en superordenadores, luego en estaciones de trabajo y más tarde en ordenadores domésticos con tarjetas 3D, el trazado de rayos o conocido por su nombre en inglés «Ray Tracing» ha tenido la misma evolución y lo que hace años era solo posible con sistemas muy potentes y caros cada vez está más al alcance de todo el mundo.

La evolución del hardware respecto al Ray Tracing

Ray Tracing Building

Es por ello que hemos decidido hacer una retrospectiva para mostraros la evolución del hardware en lo que al Ray Tracing respecta; esta evolución la hemos dividido en cinco etapas distintas, y en ellas no solamente hablaremos de los métodos del pasado sino también de los métodos que vamos a ver en el futuro cercano y que por tanto se van a implementar en futuras generaciones de las GPUs que equiparán nuestros PCs.

Etapa 1: Renderizado a través de la CPU

Pila CPUs

Se ha de tener en cuenta que las GPUs durante un largo tiempo se encontraron atadas al algoritmo de rasterización por lo que no eran adecuadas para renderizar escenas basadas en el Ray Tracing, el cual utiliza un algoritmo diferente.

¿La solución que existía para cuando se quería renderizar una escena vía trazado de rayos? Tirar de CPUs de múltiples núcleos y aunque esto ya forma parte de la historia fue el planteamiento que Intel quería ejecutar con su cancelado y fallido Larrabee hace poco más de una década, el cual no era más que varios núcleos x86 en una configuración muy parecida a una GPU.

Data Center

Esta solución resulta que es la más ineficiente debido a que las CPUs son sistemas escalares pensados para funcionar con una sola tarea por hilo de ejecución y en comparación con una GPU tienen muy pocos hilos funcionando simultáneamente, forzando a que sea necesario tener que crear superordenadores de decenas por no decir cientos de CPUs para el renderizado.

Etapa 2: Ray Tracing en la GPU a través de la Compute Shaders

Ray Tracing Etapa 2

A partir de DirectX en su versión 11 y de OpenGL en su versión 4 apareció un nuevo tipo de programas shader para las GPU llamados Compute Shaders, los cuales no están asociados a una etapa del pipeline gráfico.

Gracias a ellos las GPUs pudieron centrar su potencia total o parcialmente en resolver problemas más allá de la rasterización y entre ellos se hizo posible la implementación del trazado de rayos en la GPU, no a la suficiente velocidad como para permitir el renderizado a tiempo real, pero sí de cara a implementar un pipeline de sucesivas etapas vía Compute Shaders.

Pero no fue hasta DirectX 12 que se empezó a poder plantear un pipeline de renderizado completo para el Ray Tracing donde cada etapa de las específicas es un Compute Shader realizando una de estas etapas en concreto.

Etapas DXR

Este pipeline es el que se acabó estandarizando a partir de 2018 como preliminar del DirectX Ray Tracing y fue posteriormente adoptado también por Vulkan; no obstante, esta primera implementación en las GPUs para el trazado de rayos a tiempo real no era lo suficientemente buena en cuanto a rendimiento y se hizo necesario hacer cambios en la clásica Compute Unit/SM.

Etapa 3: Unidades de intersección

Intersección rayo-triangulo

Algo que es habitual en diseño de hardware es crear aceleradores para que realicen tareas que reiterativas y repetitivas por un coste en área y energía mucho más bajo que un procesador completo, la idea es descargar dichas tareas en esos procesadores especializados.

Este tipo de unidades son habituales en las GPUs. Por ejemplo, de cara a la rasterización nos encontramos con unidades de función fija que realizan operaciones como el rasterizado de los triángulos, el filtrado de texturas, etc. Estas unidades están cableadas y siempre realizan la función a partir de los datos de entrada que se le otorgan y es por eso se llaman de función fija, porque no podemos cambiar su función, es decir, no son programables. La ventaja de este tipo de unidades es que nos permite realizar esos cálculos específicos utilizando unidades muy pequeñas, de muy poco consumo y que funcionan completamente en paralelo.

En el Ray Tracing, cada uno de los rayos que son generados durante la escena van a impactar con uno o varios objetos de la misma por lo que es necesario realizar ese cálculo de manera continua y reiterada que llamamos intersección, por lo que es el tipo de proceso ideal que termina en forma de unidad especializada funcionando en paralelo.

Ray Tracing Etapa 3

En el caso de las unidades de intersección, dentro de la GPU se encuentran dentro de las Compute Units/SMs en las de gráficas de AMD / NVIDIA (en todo caso hablamos del mismo tipo de unidad en ambos casos, pero con diferente nombre) y se comunican con las ALUs encargadas de ejecutar los shaders a través de la caché de datos dentro de la misma unidad.

Etapa 4: Unidades de recorrido del árbol BVH

El BVH es una estructura de datos espacial que almacena de manera ordenada la geometría de la escena. Con tal de acelerar el proceso de cálculo de la intersección lo que se hace es realizar éste sobre el árbol BVH en vez de hacerlo píxel por píxel.

Sin las unidades encargadas de recorrer el árbol BVH es necesario hacerlo con el programa compute shader, pero con dichas unidades implementadas a nivel del hardware nos olvidamos de tener que realizar este proceso.

Dicho de otra forma, una unidad de recorrido va a ir generando todos los rayos y el recorrido de todos ellos por el árbol BVH de manera automática sin participación de un programa shader e interactuará con la unidad de intersección. Ambas al terminar el proceso enviarán los resultados de vuelta.

Hay que tener en cuenta que en la actual versión de DirectX 12 Ultimate esto no forma parte de la especificación mínima y es necesario controlar la creación de nuevos rayos a partir de la intersección de otros con los objetos a través del Ray Generation Shader. Por lo que el uso de esta unidad es limitado, ya que se prefiere darles el poder a los desarrolladores de juegos por el momento acerca de la densidad de rayos en la escena.

Etapa 5: Ray Tracing Coherente

La siguiente etapa en la evolución de las GPUs de cara al Ray Tracing será el añadido de una unidad de coherencia en la GPU, pero antes de nada hemos de entender a lo que nos referimos con coherencia con la memoria desde el punto de vista de cualquier procesador, siendo ésta que la visión de la memoria de cada procesador es la misma, en concreto de las GPUs contemporáneas.

Caches CPU GPU

Sí queremos entender el problema con la coherencia de memoria, entonces hemos de comprender cómo funciona el mecanismo de cachés de un cualquier sistema con múltiples procesadores, tanto si hablamos de una CPU como de una GPU.

  • Las memorias cachés no son RAM en sí mismas, sino que almacenan porciones concretas de la RAM o de los niveles de caché superiores.
  • Los niveles inferiores de la caché y más cercanos a los procesadores contienen copias de porciones de datos de las cachés de niveles superiores.

Por lo tanto, si queremos realizar un sistema coherente se ha de crear un mecanismo que cuando un núcleo u otra unidad de la GPU cambie el valor de un dato también se cambien todas las copias que hacen referencia a esos datos en todas las caches de manera simultánea así como en la VRAM.

Entonces, ¿con qué problema se enfrentan ahora las GPUs? Antes hemos comentado que la unidad de intersección y de recorrido del BVH tienen acceso a la caché de datos de la Compute Unit/SM, pero al no existir un mecanismo de coherencia, cuando se realiza un cambio sobre los datos en una Compute Unit/SM entonces el resto de unidades lo desconocen, y esto lleva a que buena parte de los cálculos de intersección y recorrido se repitan incluso si han sido ya realizados por otras unidades.

Ray Tracing Etapa 5

La unidad de coherencia es una o varias unidades de hardware encargadas de avisar de los cambios en el contenido de las cachés a todas las Compute Units/SMs, por lo que se trata de un hardware difícil de implementar debido a la cantidad de intercomunicaciones que necesita.

En una CPU la coherencia se puede conseguir de manera fácil por el hecho que tenemos muy pocos núcleos en su interior, pero en una GPU la mayor cantidad de núcleos hace que el sistema de coherencia sea difícil de implementar; hay que tener en cuenta que la cantidad de caminos de datos que es necesario implementar es n2 donde n es la cantidad de elementos interconectados entre sí.

Dado que las GPUs van de camino a dividirse en chiplets, es muy posible que esta unidad de coherencia se convierta en un chiplet en sí mismo o se encuentre en la parte central encargada de comunicar las diferentes partes entre sí. En todo caso a este punto aún no hemos llegado y dado que los cambios a nivel de la arquitectura se están dando en periodos de 2 a 5 años aún nos va tocar esperar un poco.

Donde sí que se encuentra implementado el Coherency Engine es en la arquitectura PowerVR Wizard de Imagination, ya que hace años que esta implementada en ese hardware, pero NVIDIA y AMD no la han implementado aún en sus GPUs y hay que tener en cuenta que tienen un planteamiento un «poco» diferente al de Imagination; en todo caso es la siguiente evolución de cara al Ray Tracing.

¡Sé el primero en comentar!
Logo hardzone.es
Navega gratis con cookies…

Navegar por hardzone.es con publicidad personalizada, seguimiento y cookies de forma gratuita. i

Para ello, nosotros y nuestros socios i necesitamos tu consentimiento i para el tratamiento de datos personales i para los siguientes fines:

Las cookies, los identificadores de dispositivos o los identificadores online de similares características (p. ej., los identificadores basados en inicio de sesión, los identificadores asignados aleatoriamente, los identificadores basados en la red), junto con otra información (p. ej., la información y el tipo del navegador, el idioma, el tamaño de la pantalla, las tecnologías compatibles, etc.), pueden almacenarse o leerse en tu dispositivo a fin de reconocerlo siempre que se conecte a una aplicación o a una página web para una o varias de los finalidades que se recogen en el presente texto.

La mayoría de las finalidades que se explican en este texto dependen del almacenamiento o del acceso a la información de tu dispositivo cuando utilizas una aplicación o visitas una página web. Por ejemplo, es posible que un proveedor o un editor/medio de comunicación necesiten almacenar una cookie en tu dispositivo la primera vez que visite una página web a fin de poder reconocer tu dispositivo las próximas veces que vuelva a visitarla (accediendo a esta cookie cada vez que lo haga).

La publicidad y el contenido pueden personalizarse basándose en tu perfil. Tu actividad en este servicio puede utilizarse para crear o mejorar un perfil sobre tu persona para recibir publicidad o contenido personalizados. El rendimiento de la publicidad y del contenido puede medirse. Los informes pueden generarse en función de tu actividad y la de otros usuarios. Tu actividad en este servicio puede ayudar a desarrollar y mejorar productos y servicios.

La publicidad que se presenta en este servicio puede basarse en datos limitados, tales como la página web o la aplicación que esté utilizando, tu ubicación no precisa, el tipo de dispositivo o el contenido con el que está interactuando (o con el que ha interactuado) (por ejemplo, para limitar el número de veces que se presenta un anuncio concreto).

  • Un fabricante de automóviles quiere promocionar sus vehículos eléctricos a los usuarios respetuosos con el medioambiente que viven en la ciudad fuera del horario laboral. La publicidad se presenta en una página con contenido relacionado (como un artículo sobre medidas contra el cambio climático) después de las 18:30 h a los usuarios cuya ubicación no precisa sugiera que se encuentran en una zona urbana.
  • Un importante fabricante de acuarelas quiere realizar una campaña publicitaria en Internet para dar a conocer su última gama de acuarelas con la finalidad de llegar tanto a artistas aficionados como a profesionales y, a su vez, se evite mostrar el anuncio junto a otro contenido no relacionado (por ejemplo, artículos sobre cómo pintar una casa). Se detectará y limitará el número de veces que se ha presentado el anuncio a fin de no mostrarlo demasiadas veces.

La información sobre tu actividad en este servicio (por ejemplo, los formularios que rellenes, el contenido que estás consumiendo) puede almacenarse y combinarse con otra información que se tenga sobre tu persona o sobre usuarios similares(por ejemplo, información sobre tu actividad previa en este servicio y en otras páginas web o aplicaciones). Posteriormente, esto se utilizará para crear o mejorar un perfil sobre tu persona (que podría incluir posibles intereses y aspectos personales). Tu perfil puede utilizarse (también en un momento posterior) para mostrarte publicidad que pueda parecerte más relevante en función de tus posibles intereses, ya sea por parte nuestra o de terceros.

  • En una plataforma de redes sociales has leído varios artículos sobre cómo construir una casa en un árbol Esta información podría añadirse a un perfil determinado para indicar tuinterés en el contenido relacionado con la naturaleza, así como en los tutoriales de bricolaje (con el objetivo de permitir la personalización del contenido, de modo que en el futuro, por ejemplo, se te muestren más publicaciones de blogs y artículos sobre casas en árboles y cabañas de madera).
  • Has visualizado tres vídeos sobre la exploración espacial en diferentes aplicaciones de televisión. Una plataforma de noticias sin relación con las anteriores y con la que no has tenido contacto en el pasado crea un perfil basado en esa conducta de visualización marcando la exploración del espacio como un tema de tu posible interés para para otros vídeos.

El contenido que se te presenta en este servicio puede basarse en un perfilde personalización de contenido que se haya realizado previamente sobre tu persona, lo que puede reflejar tu actividad en este u otros servicios (por ejemplo, los formularios con los que interactúas o el contenido que visualizas), tus posibles intereses y aspectos personales. Un ejemplo de lo anterior sería la adaptación del orden en el que se te presenta el contenido, para que así te resulte más sencillo encontrar el contenido (no publicitario) que coincida con tus intereses.

  • Has leído unos artículos sobre comida vegetariana en una plataforma de redes sociales. Posteriormente has usado una aplicación de cocina de una empresa sin relación con la anterior plataforma. El perfil que se ha creado sobre tu persona en la plataforma de redes sociales se utilizará para mostrarte recetas vegetarianas en la pantalla de bienvenida de la aplicación de cocina.
  • Has visualizado tres vídeos sobre remo en páginas web diferentes. Una plataforma de video, no relacionada con la página web en la que has visualizado los vídeos sobre remo, pero basandose en el perfil creado cuando visistaste dicha web, podrá recomendarte otros 5 vídeos sobre remo cuando utilices la plataforma de video a través de tu televisor .

La información sobre qué publicidad se te presenta y sobre la forma en que interactúas con ella puede utilizarse para determinar lo bien que ha funcionado un anuncio en tu caso o en el de otros usuarios y si se han alcanzado los objetivos publicitarios. Por ejemplo, si has visualizado un anuncio, si has hecho clic sobre el mismo, si eso te ha llevado posteriormente a comprar un producto o a visitar una página web, etc. Esto resulta muy útil para comprender la relevancia de las campañas publicitarias./p>

  • Has hecho clic en un anuncio en una página web/medio de comunicación sobre descuentos realizados por una tienda online con motivo del “Black Friday” online y posteriormente has comprado un producto. Ese clic que has hecho estará vinculado a esa compra. Tu interacción y la de otros usuarios se medirán para saber el número de clics en el anuncio que han terminado en compra.
  • Usted es una de las pocas personas que ha hecho clic en un anuncio que promociona un descuento por el “Día de la madre”de una tienda de regalos en Internet dentro de la aplicación de una web/medio de comunicación. El medio de comunicación quiere contar con informes para comprender con qué frecuencia usted y otros usuarios han visualizado o han hecho clic en un anuncio determinado dentro de la aplicación y, en particular, en el anuncio del “Día de la madre” para así ayudar al medio de comunicación y a sus socios (por ejemplo, las agencias de publicidad) a optimizar la ubicación de los anuncios.

La información sobre qué contenido se te presenta y sobre la forma en que interactúas con él puede utilizarse para determinar, por ejemplo, si el contenido (no publicitario) ha llegado a su público previsto y ha coincidido con sus intereses. Por ejemplo, si hasleído un artículo, si has visualizado un vídeo, si has escuchado un “pódcast” o si has consultado la descripción de un producto, cuánto tiempo has pasado en esos servicios y en las páginas web que has visitado, etc. Esto resulta muy útil para comprender la relevancia del contenido (no publicitario) que se te muestra.

  • Has leído una publicación en un blog sobre senderismo desde la aplicación móvil de un editor/medio de comunicación y has seguido un enlace a una publicación recomendada y relacionada con esa publicación. Tus interacciones se registrarán para indicar que la publicación inicial sobre senderismo te ha resultado útil y que la misma ha tenido éxito a la hora de ganarse tu interés en la publicación relacionada. Esto se medirá para saber si deben publicarse más contenidos sobre senderismo en el futuro y para saber dónde emplazarlos en la pantalla de inicio de la aplicación móvil.
  • Se te ha presentado un vídeo sobre tendencias de moda, pero tu y otros usuarios habéis dejado de visualizarlo transcurridos unos 30 segundos. Esta información se utilizará para valorar la duración óptima de los futuros vídeos sobre tendencias de moda.

Se pueden generar informes basados en la combinación de conjuntos de datos (como perfiles de usuario, estadísticas, estudios de mercado, datos analíticos) respecto a tus interacciones y las de otros usuarios con el contenido publicitario (o no publicitario) para identificar las características comunes (por ejemplo, para determinar qué público objetivo es más receptivo a una campaña publicitaria o a ciertos contenidos).

  • El propietario de una librería que opera en Internet quiere contar con informes comerciales que muestren la proporción de visitantes que han visitado su página y se han ido sin comprar nada o que han consultado y comprado la última autobiografía publicada, así como la edad media y la distribución de género para cada uno de los dos grupos de visitantes. Posteriormente, los datos relacionados con la navegación que realizas en su página y sobre tus características personales se utilizan y combinan con otros datos para crear estas estadísticas.
  • Un anunciante quiere tener una mayor comprensión del tipo de público que interactúa con sus anuncios. Por ello, acude a un instituto de investigación con el fin de comparar las características de los usuarios que han interactuado con el anuncio con los atributos típicos de usuarios de plataformas similares en diferentes dispositivos. Esta comparación revela al anunciante que su público publicitario está accediendo principalmente a los anuncios a través de dispositivos móviles y que es probable que su rango de edad se encuentre entre los 45 y los 60 años.

La información sobre tu actividad en este servicio, como tu interacción con los anuncios o con el contenido, puede resultar muy útil para mejorar productos y servicios, así como para crear otros nuevos en base a las interacciones de los usuarios, el tipo de audiencia, etc. Esta finalidad específica no incluye el desarrollo ni la mejora de los perfiles de usuario y de identificadores.

  • Una plataforma tecnológica que opera con un proveedor de redes sociales observa un crecimiento en los usuarios de aplicaciones móviles y se da cuenta de que, en funciónde sus perfiles, muchos de ellos se conectan a través de conexiones móviles. La plataforma utiliza una tecnología nueva para mostrar anuncios con un formato óptimo para los dispositivos móviles y con un ancho de banda bajo a fin de mejorar su rendimiento.
  • Un anunciante está buscando una forma de mostrar anuncios en un nuevo tipo de dispositivo. El anunciante recopila información sobre la forma en que los usuarios interactúan con este nuevo tipo de dispositivo con el fin de determinar si puede crear un nuevo mecanismo para mostrar la publicidad en ese tipo de dispositivo.

El contenido que se presenta en este servicio puede basarse en datos limitados, como por ejemplo la página web o la aplicación que esté utilizando, tu ubicación no precisa, el tipo de dispositivo o el contenido con el que estás interactuando (o con el que has interactuado) (por ejemplo, para limitar el número de veces que se te presenta un vídeo o un artículo en concreto).

  • Una revista de viajes, para mejorar las experiencias de viaje en el extranjero, ha publicado en su página web un artículo sobre nuevos cursos que ofrece una escuela de idiomas por Internet. Las publicaciones del blog de la escuela se insertan directamente en la parte inferior de la página y se seleccionan en función de la ubicación no precisa del usuario (por ejemplo, publicaciones del blog que explican el plan de estudios del curso para idiomas diferentes al del país en el que este te encuentras).
  • Una aplicación móvil de noticias deportivas ha iniciado una nueva sección de artículos sobre los últimos partidos de fútbol. Cada artículo incluye vídeos alojados por una plataforma de streaming independiente que muestra los aspectos destacados de cada partido. Si adelantas un vídeo, esta información puede utilizarse para determinar que el siguiente vídeo a reproducir sea de menor duración.

Se puede utilizar la localización geográfica precisa y la información sobre las características del dispositivo

Al contar con tu aprobación, tu ubicación exacta (dentro de un radio inferior a 500 metros) podrá utilizarse para apoyar las finalidades que se explican en este documento.

Con tu aceptación, se pueden solicitar y utilizar ciertas características específicas de tu dispositivo para distinguirlo de otros (por ejemplo, las fuentes o complementos instalados y la resolución de su pantalla) en apoyo de las finalidades que se explican en este documento.

O sin cookies desde 1,67€ al mes

Por solo 1,67€ al mes, disfruta de una navegación sin interrupciones por toda la red del Grupo ADSLZone: adslzone.net, movilzona.es, testdevelocidad.es, lamanzanamordida.net, hardzone.es, softzone.es, redeszone.net, topesdegama.com y más. Al unirte a nuestra comunidad, no solo estarás apoyando nuestro trabajo, sino que también te beneficiarás de una experiencia online sin cookies.