Physics processing unit

From Wikipedia, the free encyclopedia

Una unidad de procesamiento de física (PPU) es un microprocesador dedicado, diseñado para gestionar los cálculos de física, especialmente en el physics engine de los videojuegos. Es un ejemplo de aceleración por hardware.

Animación de captura de pantalla del sistema de modelado físico del hardware SPARTA.

Algunos ejemplos de cálculos que involucran una PPU incluyen dinámica de cuerpos rígidos, dinámica de cuerpos blandos, detección de colisiones, dinámica de fluidos, simulación de cabello y ropa, análisis de elementos finitos y fracturación de objetos.

La idea es que procesadores especializados descarguen tareas que consumen mucho tiempo de la CPU de una computadora, de forma similar a cómo una GPU realiza operaciones gráficas en lugar de la CPU principal. El término fue acuñado por Ageia para describir su chip PhysX. Varias otras tecnologías en el espectro CPU-GPU comparten algunas características con este, aunque el producto de Ageia fue el único completo diseñado, comercializado, soportado e integrado en un sistema exclusivamente como una PPU.

Historia

Un proyecto académico inicial de investigación sobre PPU,[1][2] denominado SPARTA (Simulación de Física en una Arquitectura en Tiempo Real), se llevó a cabo en Penn State[3] y la Universidad de Georgia. Se trataba de una PPU simple basada en FPGA y limitada a dos dimensiones. Este proyecto se amplió a un sistema considerablemente más avanzado basado en ASIC, denominado HELLAS.

En febrero de 2006, Ageia (posteriormente fusionada con Nvidia) lanzó la primera PPU dedicada, PhysX. Esta unidad es especialmente eficaz en la aceleración de sistemas de partículas, con solo una pequeña mejora de rendimiento medida para la física de cuerpos rígidos.[4]La PPU de Ageia está documentada en profundidad en su solicitud de patente estadounidense n.° 20050075849.[5] Nvidia/Ageia ya no produce PPU ni aceleración de hardware para el procesamiento de física, aunque ahora es compatible con algunas de sus unidades de procesamiento gráfico.

AGEIA PhysX

El primer procesador anunciado como PPU se denominó chip PhysX, presentado por AGEIA, una fabless semiconductor company . Los juegos que deseen aprovechar el PPU PhysX deben usar el PhysX SDK de AGEIA (anteriormente conocido como SDK NovodeX).

Consiste en un núcleo RISC de propósito general que controla una matriz de procesadores VLIW de punto flotante SIMD personalizados que funcionan en memorias locales almacenadas, con una red de conmutación para gestionar las transferencias entre ellos. No existe una cache-hierarchy como en una CPU o GPU.

El PhysX estaba disponible a través de tres empresas, de forma similar a como se fabrican las tarjetas graficas. ASUS, BFG Technologies[6] y ELSA Technologies fueron los principales fabricantes. Los PC con las tarjetas ya instaladas estaban disponibles a través de fabricantes de sistemas como Alienware, Dell y Falcon Northwest.[7]

En febrero de 2008, tras la adquisición de Ageia Technologies por parte de Nvidia y la eliminación del procesamiento de PhysX en la PPU de AGEIA y las GPU NVIDIA en sistemas con GPU ATi/AMD activas, parecía que PhysX pasaría a manos de Nvidia. Sin embargo, en marzo de 2008, Nvidia anunció que convertiría PhysX en un estándar abierto para todos,[3] de modo que los principales fabricantes de procesadores gráficos tendrían compatibilidad con PhysX en las tarjetas gráficas de próxima generación. Nvidia anunció que PhysX también estaría disponible para algunas de sus tarjetas gráficas lanzadas, simplemente descargando nuevos controladores.

Especificaciones del hardware de PhysX P1 (PPU)

  • Dispositivo multinúcleo basado en la arquitectura MIPS con hardware de aceleración física integrado y subsistema de memoria con una gran cantidad de núcleos[8][9]
    • 125 millones de transistores[10]
    • Tamaño de matriz: 182 mm²
    • Proceso de fabricación: 130 nm
    • Consumo máximo de energía: 30 W
  • Memoria: 128 MB de RAM GDDR3 con interfaz de 128 bits
  • PCI 3.0 de 32 bits (ASUS también fabricó una tarjeta PCI Express)
  • Pruebas de colisión Sphere : 530 millones por segundo (capacidad máxima)
  • Pruebas de colisión Convex: 530 000 por segundo (capacidad máxima)
  • Ancho de banda máximo de instrucciones: 20 000 millones por segundo

Havok FX

El SDK de Havok es un competidor importante del SDK de PhysX, utilizado en más de 150 juegos, incluyendo títulos importantes como Half-Life 2, Halo 3 y Dead Rising.[11]

Para competir con el PPU de PhysX, una edición conocida como Havok FX debía aprovechar la tecnología multi-GPU de ATI (AMD CrossFire) y NVIDIA (SLI) utilizando tarjetas existentes para acelerar ciertos cálculos de física.[12]

Havok divide la simulación de física en física de efectos y física de juego. La física de efectos se descarga (si es posible) a la GPU como instrucciones de Shader Model 3.0 y la física de juego se procesa en la CPU de forma normal. La distinción importante entre ambos radica en que la física de efectos no afecta a la jugabilidad (por ejemplo, el polvo o los pequeños escombros de una explosión); la gran mayoría de las operaciones de física se siguen realizando por software. Este enfoque difiere significativamente del SDK de PhysX, que traslada todos los cálculos a la tarjeta PhysX si está presente.

Desde la adquisición de Havok por parte de Intel, Havok FX parece haber sido archivado o cancelado.[13]

Referencias

Enlaces externos

Related Articles

Wikiwand AI