09 diciembre 2010

Tema 5. Coprocesadores para gráficos: PPU, RTPU...


                    Los coprocesadores gráficos son microprocesadores que se encargan básicamente de realizar tareas de suplemento del GPU para facilitar el procesado y que éste logre llegar a la realización de las tareas en tiempo real.

                   Actualmente todos los ordenadores tienen algún tipo de GPU que permite liberar a la CPU de los cálculos necesarios para generar gráficos 3D, hoy en día se ha añadido más hardware de propósito específico, especialmente para juegos. La propuesta más importante ha sido la de un coprocesador físico normalmente conocido como PPU (Pysics Processing Unit).

              Una unidad de procesamiento físico (PPU) es un microprocesador dedicado diseñado para procesar los cálculos de la física, especialmente en los motores de física en los videojuegos. Ejemplos de cálculos que engloba una PPU pueden incluir dinámica de cuerpos rígidos, dinámica de cuerpos blandos, detección de colisiones, dinámica de fluidos, simulación de pelo y ropa, análisis de elementos finitos, y rotura de objetos. La idea es que procesadores especializados reduzcan el tiempo de las tareas de la CPU de un ordenador.

                 Los primeros diseños de hardware especializado (SPARTA y posteriormente HELLAS) fueron fruto de la investigación académica. En febrero de 2006 se comercializó la primera PPU bajo el nombre de PhysX, diseñado por la compañía Ageia.

                 La arquitectura de esta tarjeta está basada en un procesador RISC, acompañado de procesadores vectoriales con almacenamiento local (no es memoria caché) y la lógica necesaria para intercomunicar los distintos procesadores. El hardware iba acompañado de la correspondiente API. Esta tecnología la compró nVidia en 2008. En la actualidad, nVidia ha hecho público el API, pero no va a comercializar el hardware sino que mediante un driver, utiliza la potencia de cálculo de las GPUs actuales para acelerar el cálculo de la física.

Los coprocesadores gráficos permiten mayor calidad y realismo en juegos

                 El principal competidor de PhysX es Havok FX. Se trata de una modificación de Havok, API y motor de física muy populares, que permite utilizar tarjetas gráficas tanto de AMD como de nVidia para acelerar ciertos cálculos. Estos se implementan como shaders que se ejecutan en la GPU, siguiendo la estrategia actual de nVidia con PhysX. Sin embargo esta tecnología parece estar abandonada desde que Intel compró Havok.

               La tendencia actual parece hacer innecesario el uso de hardware específico para el cálculo de la física. De hecho el diseño de la PPU PhysX recuerda al diseño de procesadores modernos como Cell de Sony/IBM/Toshiba o a las tarjetas gráficas modernas que como se ha visto comienzan a utilizarse para dicho fin. Esto hace pensar que en el futuro bastará con el hardware ya existente. Es mucho más probable que se vuelva algo normal el uso de una segunda tarjeta gráfica como co-procesador que pueda realizar diversos cálculos (entre ellos la física) usando CUDA, OpenCL o DirectCompute. Por ejemplo, los nuevos MacBook Pro de 17" tienen 2 tarjetas gráficas. Esto ha coincidido con el lanzamiento de CUDA para Mac por parte de nVidia y el anuncio de soporte para PhysX en Mac en un futuro, el apoyo de Apple a OpenCL y el uso de GPGPU por parte de Adobe en su programa Photoshop en su última versión.



PhysX en videojuegos: una física hiperrealista

                  El futuro son los coprocesadores RTPU, de "Ray Tracing Processor Unit". La traza de rayos es el actual santo grial de los gráficos por computador, una técnica de renderizado que podría finalmente hacer que el último juego oficial de Pixar se viera tan bien como la misma película. Pero, la naturaleza típicamente aleatoria de los rayos ha ocasionado que renderizarlos en hardware tradicional sea ineficiente, un problema que Caustic Graphics anuncia que ha resuelto, y ahora está probándolo publicando en PC Perspective detalles y demos.

              La tecnología de la compañía se basa en un nuevo coprocesador gráfico llamado Unidad de Proceso de Traza de Rayos (RTPU), trabajando orquestadamente con aceleradores 2D existentes para lanzar rayos a frecuencias suficientemente altas para aplicaciones interactivas. Actualmente se manejan 3-5 frames por segundo con CausticOne, lo cual no es suficiente para shooters en primera persona, pero el hardware de segunda generación de próximos años apunta a 14 veces eso...



No hay comentarios:

Publicar un comentario