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 por hardware .

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 fractura de objetos.

La idea es que procesadores especializados descarguen tareas que consumen mucho tiempo desde la CPU de una computadora, de manera muy 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, aunque el producto de Ageia fue el único completo diseñado, comercializado, respaldado y colocado dentro de un sistema que es exclusivamente una PPU.

Historia

Uno de los primeros proyectos académicos de investigación de 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. Esta era una PPU simple basada en FPGA que estaba limitada 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 PhysX dedicada de Ageia (posteriormente fusionada con Nvidia ). La unidad es más efectiva 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 físico, aunque ahora es compatible con algunas de sus unidades de procesamiento de gráficos.

AGEIA PhysX

El primer procesador anunciado como PPU se denominó chip PhysX , presentado por una empresa de semiconductores sin fábrica llamada AGEIA . Los juegos que deseen aprovechar la PPU PhysX deben utilizar el SDK PhysX de AGEIA (anteriormente conocido como NovodeX SDK).

Consiste en un núcleo RISC de propósito general que controla una serie de procesadores VLIW de punto flotante SIMD personalizados que funcionan en memorias bancarias locales, con una estructura 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 en tres empresas similares a la forma en que se fabrican las tarjetas de vídeo . ASUS , BFG Technologies , [6] y ELSA Technologies fueron los principales fabricantes. Las 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, después de que Nvidia comprara Ageia Technologies y finalmente cortara la capacidad de procesar PhysX en la PPU de AGEIA y las GPU de NVIDIA en sistemas con GPU ATi/AMD activas, parecía que PhysX se había ido 100% a Nvidia. Pero en marzo de 2008, Nvidia anunció que haría de PhysX 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 simplemente descargando algunos controladores nuevos.

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

Especificaciones de 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:

FX Havok

El SDK de Havok es un competidor importante del SDK de PhysX, utilizado en más de 150 juegos, incluidos 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 debía aprovechar 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 , descargando la física de efectos (si es posible) a la GPU como instrucciones de Shader Model 3.0 y procesando la física de juego en la CPU normalmente. La distinción importante entre los dos es que la física de efectos no afecta el juego (polvo o pequeños restos de una explosión, por ejemplo); la gran mayoría de las operaciones físicas 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 impulso 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 geométrico que permite implementar una gama más amplia de algoritmos; Las GPU modernas admiten sombreadores de cálculo , que se ejecutan en un espacio indexado y no requieren ningún recurso gráfico, solo buffers de datos de uso general. NVidia CUDA proporciona un poco más en cuanto a comunicación entre subprocesos y espacio de trabajo estilo scratchpad asociado con los subprocesos.

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

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

PS2-VU0

Aunque es muy diferente del PhysX, se podría argumentar que el VU0 de PlayStation 2 es una implementación temprana y limitada de una PPU. Por el contrario, se podría describir una PPU para un programador de PS2 como un reemplazo evolucionado de VU0. Su conjunto de funciones y su ubicación dentro del sistema están orientados a acelerar las tareas de actualización del juego, incluidas la física 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 el motor de un 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, VU0 es capaz de proporcionar potencia de procesamiento de vértices adicional, aunque esto es más una propiedad de las vías del sistema que de la unidad en sí.

Este uso es similar a Havok FX o física de GPU en el sentido de que la potencia de punto flotante de propósito general de una unidad auxiliar se utiliza para complementar la CPU en funciones gráficas o físicas.

Ver 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 al 12 de marzo de 2006, págs.
  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 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". Computadora máxima . Futuro Estados Unidos . Mayo de 2006. pág. 6.ISSN  1522-4279 . _ Consultado el 16 de septiembre de 2009 .
  8. ^ Nvidia ofrece soporte PhysX para AMD/ATI Archivado el 13 de marzo de 2008 en Wayback Machine.
  9. ^ "Preguntas frecuentes sobre PhysX". Corporación NVIDIA. 28 de noviembre de 2018.
  10. ^ Nicolás Blachford (2006). "Pongámonos físicos: dentro del procesador de física PhysX".
  11. ^ Reseñas legítimas: tarjeta AGEIA PhysX P1 de ASUS
  12. ^ "Juegos que usan 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 desarrolladores de AMD". Laboratorios Xbit. Archivado desde el original el 1 de diciembre de 2011 . Consultado el 26 de noviembre de 2007 .

enlaces externos