stringtranslate.com

Unidad de procesamiento de física

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

Algunos ejemplos de cálculos que involucran 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 cabello y ropa , análisis de elementos finitos y fracturamiento de objetos.

La idea es que los procesadores especializados descarguen las tareas que consumen mucho tiempo de la CPU de una computadora, de manera 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 tienen algunas características en común con este, aunque el producto de Ageia fue el único completo diseñado, comercializado, respaldado e instalado dentro de un sistema que es exclusivamente una PPU.

Historia

Un proyecto de investigación académica temprana sobre PPU [1] [2] llamado 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 un PPU simple basado en FPGA que estaba limitado a dos dimensiones. Este proyecto se amplió a un sistema basado en ASIC considerablemente más avanzado llamado HELLAS.

En febrero de 2006 se lanzó la primera PPU dedicada PhysX de Ageia (que luego se fusionó con Nvidia ). La unidad es más efectiva para acelerar sistemas de partículas , con solo una pequeña mejora en el 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 de gráficos.

AGEIA PhysX

El primer procesador que se anunció como PPU se denominó chip PhysX y fue presentado por una empresa de semiconductores sin fábrica llamada AGEIA . Los juegos que deseen aprovechar el PPU PhysX deben usar el SDK PhysX de AGEIA (antes 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 almacenadas localmente, con una estructura de conmutación para administrar las transferencias entre ellos. No existe una jerarquía de caché como en una CPU o GPU.

El PhysX estaba disponible en tres empresas de forma similar a como se fabrican las tarjetas de vídeo . ASUS , BFG Technologies [ 6] y ELSA Technologies eran los principales fabricantes. Las PC con las tarjetas ya instaladas estaban disponibles en fabricantes de sistemas como Alienware , Dell y Falcon Northwest [7] .

En febrero de 2008, después de que Nvidia comprara Ageia Technologies y finalmente cortara la capacidad de procesar PhysX en la PPU AGEIA y las GPU NVIDIA en sistemas con GPU ATi/AMD activas, parecía que PhysX pasaría al 100% a manos de Nvidia. Pero en marzo de 2008, Nvidia anunció que convertiría a PhysX en un estándar abierto para todos, [8] por lo que los principales fabricantes de procesadores gráficos tendrán soporte para PhysX en las tarjetas gráficas de próxima generación. Nvidia anunció que PhysX también estará disponible para algunas de sus tarjetas gráficas lanzadas al mercado con solo descargar algunos controladores nuevos.

Consulte el motor de física para obtener una discusión sobre los proyectos de investigación académica de PPU.

Especificaciones del hardware de PhysX P1 (PPU)

ASUS y BFG Technologies compraron licencias para fabricar versiones alternativas de la PPU de AGEIA, la PhysX P1 con 128 MB GDDR3:

Efectos especiales Havok

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

Para competir con el PhysX PPU, 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 de física en física de efectos y física de juego , con la física de efectos que se descarga (si es posible) a la GPU como instrucciones Shader Model 3.0 y la física de juego se procesa en la CPU de forma normal. La distinción importante entre los dos es que la física de efectos no afecta a la jugabilidad (polvo o pequeños escombros de una explosión, por ejemplo); la gran mayoría de las operaciones de física todavía se realizan en software. Este enfoque difiere significativamente del SDK de PhysX, que mueve 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 avance hacia GPGPU ha hecho que las GPU sean más adecuadas para el trabajo de una PPU; DX10 agregó 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 ningún recurso gráfico, solo búferes de datos de propósito general. NVidia CUDA proporciona un poco más en cuanto a comunicación entre subprocesos y un espacio de trabajo de estilo scratchpad asociado con los subprocesos.

No obstante, las GPU están diseñadas en torno a una mayor cantidad de latencia más larga, subprocesos más lentos y rutas de datos de textura y framebuffer, y un rendimiento de ramificación deficiente; esto las distingue de las PPU y Cell por estar menos optimizadas para asumir tareas de simulación del mundo del juego.

El compilador Codeplay Sieve es compatible con PPU, lo que indica que el chip physX de Ageia sería adecuado para tareas de tipo GPGPU. Sin embargo, parece poco probable que Ageia se anime a participar en este mercado.

PS2 – VU0

Aunque es muy diferente de PhysX, se podría argumentar que el VU0 de PlayStation 2 es una implementación temprana y limitada de un PPU. Por el contrario, se podría describir un PPU a un programador de PS2 como un reemplazo evolucionado para VU0. Su conjunto de características y ubicación dentro del sistema está orientado a acelerar las tareas de actualización del juego, incluidas las físicas y la IA; puede descargar dichos cálculos trabajando con su propio flujo de instrucciones mientras la CPU está operando en otra cosa. Sin embargo, al ser un DSP, depende mucho más de la CPU para realizar un trabajo útil en un motor de juego y no sería capaz de implementar una API de física completa, por lo que no se puede clasificar como un PPU. Además, 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 a Havok FX o la física de la GPU en que la potencia de punto flotante de propósito general de una unidad auxiliar se utiliza para complementar la CPU en funciones de gráficos o de física.

Véase también

Referencias

  1. ^ S. Yardi, B. Bishop, T. Kelliher, "HELLAS: una arquitectura especializada para el modelado interactivo de objetos deformables", Conferencia ACM Southeast, Melbourne, FL, 10-12 de marzo de 2006, págs. 56-61.
  2. ^ B. Bishop, T. Kelliher, "Hardware especializado para modelado de objetos deformables", IEEE Transactions on Circuits and Systems for Video Technology, 13(11):1074–1079, noviembre de 2003.
  3. ^ "Página de inicio de SPARTA". Cse.psu.edu. Archivado desde el original el 30 de julio de 2010. Consultado el 16 de agosto de 2010 .
  4. ^ "Exclusivo: ASUS presenta el hardware AGEIA PhysX". AnandTech . Consultado el 16 de agosto de 2010 .
  5. ^ "Solicitud de patente de los Estados Unidos: 0050086040". Appft1.uspto.gov. Archivado desde el original el 10 de febrero de 2020. Consultado el 16 de agosto de 2010 .
  6. ^ ":::Comunicado de prensa:::". Archivado desde el original el 26 de abril de 2006. Consultado el 8 de junio de 2011 .
  7. ^ "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 .
  8. ^ Nvidia ofrece soporte PhysX a AMD/ATI Archivado el 13 de marzo de 2008 en Wayback Machine.
  9. ^ "Preguntas frecuentes sobre PhysX". NVIDIA Corporation. 28 de noviembre de 2018.
  10. ^ Nicholas Blachford (2006). "Pongámonos físicos: dentro del procesador de física PhysX".
  11. ^ Reseñas legítimas: tarjeta gráfica AGEIA PhysX P1 de ASUS
  12. ^ "Juegos que utilizan Havok". Archivado desde el original el 15 de abril de 2012. Consultado el 19 de febrero de 2007 .
  13. ^ Información del producto Havok FX Archivado el 2 de marzo de 2007 en Wayback Machine.
  14. ^ Shilov, Anton (19 de noviembre de 2007). "La física de la GPU está muerta por ahora, dice el jefe de relaciones con los desarrolladores de AMD". Xbit Laboratories. Archivado desde el original el 1 de diciembre de 2011. Consultado el 26 de noviembre de 2007 .

Enlaces externos