Una unidad de procesamiento físico ( PPU ) es un microprocesador dedicado diseñado para gestionar los cálculos físicos , especialmente en el motor de física de los videojuegos . Es un ejemplo de aceleración por hardware .
Algunos ejemplos de cálculos que involucran una PPU podrían ser la dinámica de cuerpos rígidos , la dinámica de cuerpos blandos , la detección de colisiones , la dinámica de fluidos , la simulación de cabello y ropa , el análisis de elementos finitos y la fractura de objetos.
La idea consiste en que procesadores especializados descarguen tareas que consumen mucho tiempo de la CPU de un ordenador, de forma similar a como 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 del espectro CPU-GPU comparten algunas características con este chip, aunque el producto de Ageia fue el único completo diseñado, comercializado, respaldado e integrado en un sistema exclusivamente como una PPU.
Historia
Un proyecto de investigación académica inicial 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 sencilla basada en FPGA , limitada a dos dimensiones. Este proyecto se amplió posteriormente a un sistema considerablemente más avanzado basado en ASIC , denominado HELLAS.
En febrero de 2006 se lanzó la primera PPU PhysX dedicada de Ageia (posteriormente fusionada con Nvidia ). La unidad es más eficaz en la aceleración de sistemas de partículas , con una mejora de rendimiento mínima para la física de cuerpos rígidos. [ 4 ] La PPU de Ageia está documentada en detalle 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.
- Proyectos de investigación académica de PPU
Ejemplo de animación de SPARTA
Placa de circuito impreso SPARTA
Hellas muere foto
AGEIA PhysX
El primer procesador anunciado como PPU fue el chip PhysX , presentado por AGEIA , una empresa de semiconductores sin fábrica propia . Los juegos que deseen aprovechar la PPU PhysX deben usar el SDK PhysX 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 con bancos de memoria, con una matriz de conmutación para gestionar las transferencias entre ellos. No existe una jerarquía de caché como en una CPU o GPU.
El PhysX estaba disponible a través de tres compañías , de forma similar a como se fabrican las tarjetas de video . ASUS , BFG Technologies [ 6 ] y ELSA Technologies eran los principales fabricantes. Se podían adquirir PC con las tarjetas ya instaladas a través de ensambladores de sistemas como Alienware , Dell y Falcon Northwest [ 7 ] .
En febrero de 2008, después de que Nvidia comprara Ageia Technologies y finalmente eliminara la capacidad de procesar PhysX en la AGEIA PPU y las GPU de NVIDIA en sistemas con GPU ATi/AMD activas, parecía que PhysX había pasado completamente a manos de Nvidia. Pero en marzo de 2008, Nvidia anunció que convertiría PhysX en un estándar abierto para todos, [ 8 ] por lo que los principales fabricantes de procesadores gráficos tendrían soporte para 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 algunos controladores nuevos.
Consulte el motor de física para obtener información sobre proyectos de investigación académica relacionados con la PPU.
Especificaciones de hardware PhysX P1 (PPU)
ASUS y BFG Technologies adquirieron licencias para fabricar versiones alternativas de la PPU de AGEIA, la PhysX P1 con 128 MB de GDDR3:
- Dispositivo multinúcleo basado en la arquitectura MIPS con hardware de aceleración física integrado y subsistema de memoria con "montones de núcleos" [ 9 ] [ 10 ]
- 125 millones de transistores [ 11 ]
- Tamaño de matriz de 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 con versión PCI Express ).
- Pruebas de colisión de esferas : 530 millones por segundo (capacidad máxima)
- Pruebas de colisión convexa : 530.000 por segundo (capacidad máxima)
- Ancho de banda máximo de instrucciones: 20 mil millones por segundo
Efectos de caos
El SDK de Havok es un importante competidor del SDK de PhysX, utilizado en más de 150 juegos, incluyendo títulos importantes como Half-Life 2 , Halo 3 y Dead Rising . [ 12 ]
Para competir con la PPU PhysX, una edición conocida como Havok FX aprovecharía la tecnología multi-GPU de ATI ( AMD CrossFire ) y NVIDIA ( SLI ) utilizando tarjetas existentes para acelerar ciertos cálculos físicos. [ 13 ]
Havok divide la simulación 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 , mientras que la física de juego se procesa en la CPU de forma habitual. La diferencia fundamental entre ambas radica en que la física de efectos no afecta a la jugabilidad (por ejemplo, polvo o pequeños fragmentos de una explosión); la gran mayoría de las operaciones físicas 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. [ 14 ]
PPU frente a GPU
El impulso hacia GPGPU ha hecho que las GPU sean más adecuadas para la función de una PPU; DX10 añadió tipos de datos enteros, una arquitectura de sombreado unificada y una etapa de sombreado de geometría que permite implementar una gama más amplia de algoritmos; las GPU modernas admiten sombreadores de cómputo , que se ejecutan en un espacio indexado y no requieren recursos gráficos, solo búferes de datos de propósito general. NVidia CUDA proporciona algo más en cuanto a comunicación entre subprocesos y un espacio de trabajo tipo bloc de notas asociado a los subprocesos.
No obstante, las GPU están construidas en torno a un mayor número de hilos con mayor latencia y menor velocidad, y están diseñadas en torno a rutas de datos de texturas y búfer de fotogramas, además de presentar un rendimiento deficiente en las ramificaciones; esto las distingue de las PPU y Cell , ya que están menos optimizadas para asumir tareas de simulación de mundos de juego.
El compilador Codeplay Sieve es compatible con la PPU, lo que indica que el chip Ageia physX sería adecuado para tareas de tipo GPGPU. Sin embargo, es poco probable que Ageia se dirija a este mercado.
PS2 – VU0
Aunque muy diferente de PhysX, se podría argumentar que la VU0 de PlayStation 2 es una implementación temprana y limitada de una PPU. Por el contrario, se podría describir una PPU a un programador de PS2 como un reemplazo evolucionado para la VU0. Su conjunto de características y ubicación dentro del sistema están orientados a acelerar las tareas de actualización del juego, incluyendo la física y la IA; puede descargar dichos cálculos trabajando con su propio flujo de instrucciones mientras la CPU se ocupa de otra cosa. Sin embargo, al ser un DSP, depende mucho más de la CPU para realizar trabajo útil en un motor de juego, y no sería capaz de implementar una API de física completa, por lo que no puede clasificarse como una PPU. Además, la VU0 es capaz de proporcionar potencia de procesamiento de vértices adicional, aunque esto es más una propiedad de las vías en el sistema que de la unidad en sí.
Este uso es similar al de Havok FX o la física de la GPU, ya que la potencia de coma flotante de propósito general de una unidad auxiliar se utiliza para complementar a la CPU en funciones gráficas o físicas.
Véase también
- adapteva
- Procesador de señal digital
- Computación de propósito general en unidades de procesamiento gráfico (GPGPU): para aplicaciones de las GPU existentes a los mismos problemas físicos para los que están diseñadas las PPU.
- Estudio de Robótica de Microsoft
- OpenCL
- Memoria RAM de acceso rápido : relevante para la arquitectura de memoria distribuida de la PPU Ageia PhysX.
- unidad de procesamiento de visión
- Precio y existencias de UA6528 [ 15 ]
Referencias
- ↑ S. Yardi, B. Bishop, T. Kelliher, " HELLAS: Una arquitectura especializada para el modelado interactivo de objetos deformables. Archivado el 9 de mayo de 2023 en Wayback Machine ", Conferencia ACM del Sudeste, Melbourne, FL, 10-12 de marzo de 2006, págs. 56-61.
- ↑ B. Bishop, T. Kelliher, " Hardware especializado para modelado de objetos deformables Archivado el 13 de mayo de 2023 en Wayback Machine ", IEEE Transactions on Circuits and Systems for Video Technology, 13(11):1074–1079, noviembre de 2003.
- ↑ "Página principal de SPARTA" . Cse.psu.edu. Archivado del original el 30 de julio de 2010. Consultado el 16 de agosto de 2010 .
- ↑ "Exclusiva: ASUS presenta el hardware AGEIA PhysX" . AnandTech. Archivado del original el 8 de septiembre de 2010. Consultado el 16 de agosto de 2010 .
- ↑ "Solicitud de patente de Estados Unidos: 0050086040" . Appft1.uspto.gov. Archivado del original el 10 de febrero de 2020. Consultado el 16 de agosto de 2010 .
- ↑ ":::Comunicado de prensa:::" . Archivado del original el 26 de abril de 2006. Consultado el 8 de junio de 2011 .
- ↑ "Anuncio de BFG Tech para PhysX" . Maximum PC . Future US . Mayo de 2006. pág. 6. ISSN 1522-4279 . Consultado el 16 de septiembre de 2009 .
- ↑ Nvidia ofrece soporte para PhysX a AMD / ATI. Archivado el 13 de marzo de 2008 en Wayback Machine.
- ↑ "Preguntas frecuentes sobre PhysX" . NVIDIA Corporation. 28 de noviembre de 2018.
- ↑ Nicholas Blachford (2006). "Pongámonos físicos: Dentro del procesador de física PhysX" .
- ↑ http://www.legitreviews.com/article/346/2/ Legit Reviews - Tarjeta AGEIA PhysX P1 de ASUS
- ↑ "Juegos que usan Havok" . Archivado del original el 15 de abril de 2012. Consultado el 19 de febrero de 2007 .
- ↑ Información del producto Havok FX Archivada el 2 de marzo de 2007 en Wayback Machine
- ↑ Shilov, Anton (19 de noviembre de 2007). "La física de las GPU está muerta por ahora, dice el jefe de relaciones con desarrolladores de AMD" . Xbit Laboratories. Archivado del original el 1 de diciembre de 2011. Recuperado el 26 de noviembre de 2007 .
- ↑ https://www.digipart.com/part/UA6528
Enlaces externos
- Sitio web oficial de AGEIA (ya no está disponible)
- Sitio web del procesador AGEIA PhysX (ya no está disponible)
- Proyectos que utilizan el SDK de PhysX (ya no está disponible)
- Análisis de la tarjeta BFG AGEIA PhysX
- Página de noticias e información de Planet PhysX (ya no está disponible)
- Hardware de PC: Entrevista de AGEIA PhysX (ya no disponible)
- Perspectiva para PC: Vista previa de la unidad de procesamiento físico AGEIA PhysX (ya no está disponible)
- SDK del motor de física Havok FX (biblioteca de middleware) (ya no está disponible)
- Kit de herramientas y SDK de NVIDIA CUDA
- Kit de herramientas y SDK de PhysX
- Hardware para videojuegos
- Motores de física computacional
- Coprocesadores