Un procesador físico ( eng. Physics Processing Unit - ing. PPU , “acelerador físico”, “acelerador de física”) es un microprocesador especializado diseñado para calcular las interacciones físicas de los objetos, principalmente en motores de física de videojuegos .
Ejemplos de cálculos físicos que utilizan un procesador físico pueden ser: dinámica de cuerpo rígido , dinámica de cuerpo blando , detección de colisión , dinámica de fluidos , simulación de movimiento de cabello, pieles y telas, análisis de elementos finitos , fallas de objetos .
La idea (función principal, esencia) de un procesador físico es descargar la unidad central de procesamiento ( ing. CPU - ing. Unidad de procesamiento central ) de las tareas de procesamiento físico que consumen mucho tiempo. Las tarjetas de video modernas utilizan una idea muy similar , cuya parte principal son los procesadores gráficos ( GPU en inglés - Unidad de procesamiento de gráficos en inglés ).
Los primeros procesadores físicos desarrollados son SPARTA y HELLAS .
El término "PPU" fue acuñado por el departamento de marketing de Ageia para describir su chip PhysX a los consumidores. El procesador físico PhysX de Ageia es la única instancia completa, diseñada, diseñada, producida en masa, comercializada y respaldada que fue diseñada únicamente como una PPU . Además de PhysX, existen otras soluciones y tecnologías en esta área.
El primer procesador que se anunció como "PPU" fue un chip PhysX , fabricado por Ageia . Los juegos que querían usar PhysX tenían que usar un subsoftware especial: el motor de física PhysX SDK (anteriormente conocido como NovodeX SDK ) de Ageia .
El procesador PhysX consta de un núcleo RISC de uso general que controla una matriz de procesadores VLIW personalizados que funcionan con instrucciones SIMD y punto flotante [1] . El procesador funciona con bancos de memoria locales con un interruptor incorporado para controlar los flujos entre ellos. PhysX no tiene la misma jerarquía de caché que la CPU o la GPU .
Actualmente no hay placas con un procesador PhysX disponibles para la venta. En el pasado reciente, los tableros fueron producidos por tres empresas. ASUS y BFG Technologies fueron las primeras empresas en comenzar a vender placas. Los kits de computadora completos con placas PhysX instaladas están disponibles de fabricantes de computadoras como Alienware , Dell y Falcon Northwest.
En febrero de 2008 , después de que Nvidia comprara Ageia Technologies , parecía que todos los desarrollos de esta última se trasladaban por completo a Nvidia. Sin embargo, en marzo de 2008, Nvidia anunció que convertiría PhysX SDK en una plataforma abierta disponible para todos. [2] La compatibilidad con PhysX SDK estará disponible para todas las tarjetas de video Nvidia a partir de la serie 8xxx. Por el momento, Nvidia se prepara para lanzar una nueva versión de los controladores, que incluye soporte para PhysX SDK en estas tarjetas de video. El 24 de julio de 2008, se reveló que Nvidia lanzaría un controlador ForceWare certificado por WHQL con soporte de aceleración física el 5 de agosto de 2008 . [3]
El 28 de junio de 2008, Eran Badit de NGOHQ.com lanzó el soporte de hardware PhysX SDK en la tarjeta gráfica Radeon HD 3870 . [4] NVIDIA reaccionó negativamente a la iniciativa de Eran Badit, pero el 9 de julio de 2008, Badit obtuvo acceso a la documentación, el SDK, el hardware y los contactos de los ingenieros. Por lo tanto, NVIDIA está abriendo PhysX SDK a desarrolladores externos. [5]
El 15 de agosto de 2008, NVIDIA lanzó el controlador ForceWare 177.83, que permite la compatibilidad con PhysX en las tarjetas gráficas de las series 8, 9 y 200. Esto amplió inmediatamente la base de usuarios a más de 70 millones de personas en todo el mundo. [6] [7]
Enlaces de la secciónLa consola de juegos Sony PlayStation 2 de sexta generación utiliza un " Emotion Engine " de 128 bits , que es una combinación de una unidad central de procesamiento (CPU) y un procesador de señal digital (DSP). El Emotion Engine consta de una parte central de 64 bits basada en MIPS R5900 y dos coprocesadores vectoriales de 128 bits VU0 y VU1 ( Vector Unit ) . VU0 se usa comúnmente para transformaciones de polígonos, física y otras cosas relacionadas con el juego . VU1 se usa comúnmente para la transformación de polígonos, la iluminación y otros cálculos relacionados con el renderizado.
A pesar de las diferencias significativas con PhysX, VP0 puede considerarse una implementación temprana de procesador físico limitado. Su conjunto de características y ubicación en el sistema de microprocesador tiene como objetivo acelerar las tareas de actualización del estado del juego, incluidas la física y la inteligencia artificial ; VU0 puede descargar la parte central del "Emotion Engine". Sin embargo, al ser un procesador de señal digital, VU0 depende mucho más del procesador principal y no puede implementar la API física completa . Esta es la razón por la que VU0 no puede clasificarse como PPU.
Su uso es similar al uso del motor Havok FX o un acelerador físico GPU en el sentido de que los recursos de una unidad externa de punto flotante de uso general que actúa como un acelerador gráfico o físico complementan los de la CPU.
El procesador STI Cell , que se utiliza en la consola de juegos Sony PlayStation 3 de séptima generación , tiene una estructura similar al procesador Ageia PhysX. El diseño del procesador se creó teniendo en cuenta consideraciones similares a Ageia PhysX. A diferencia de ATI/NVidia GPGPU, y al igual que PhysX, el diseño de Cell está diseñado con el objetivo de proporcionar a cada subproceso paralelo un conjunto de trabajo más grande , más comunicación entre subprocesos y control que una CPU convencional . Este diseño es muy adecuado para la computación física.
El término "PPU" no se usa para describir Cell, pero viene con una distinción de marketing: la alianza STI Design Center vende el procesador para una amplia gama de aplicaciones integradas que no son juegos; e incluso como parte de la PlayStation 3, es capaz de usar SPE ( Synergistic Processing Elements - Elemento de procesamiento sinérgico) como DSP para el procesamiento de vértices ( ing . Vertex Processing ), sonido, descompresión y otras tareas.
El motor de física Havok SDK es el principal competidor del motor PhysX SDK. Se utiliza en más de 150 juegos, incluidos juegos como Half-Life 2 , The Elder Scrolls IV: Oblivion y Dead Rising . [ocho]
Para competir con el procesador físico PhysX, se desarrolló el concepto Havok FX , cuya esencia principal era usar el poder de las tarjetas de video para acelerar ciertos cálculos físicos. Havok FX debía usarse solo en computadoras equipadas con al menos dos tarjetas de video conectadas mediante NVIDIA SLI o ATI Crossfire . Al mismo tiempo, se tuvo que asignar completamente una tarjeta de video de este paquete para los cálculos físicos. [9]
La solución de Havok divide todas las simulaciones de física en efectos de física y física de "juego". Los efectos físicos (polvo, pequeños fragmentos y escombros de explosiones, fuego) se procesan utilizando la GPU en la tarjeta de video según las instrucciones de Shader Model 3.0 (Shader Model versión 3.0). La física del "juego" es manejada por la CPU de la manera habitual. Una diferencia importante entre los dos es que los efectos físicos no afectan la jugabilidad del juego; la gran mayoría de las operaciones físicas todavía las realiza la CPU en software estándar. Este enfoque difiere significativamente del motor PhysX SDK, que redirige todos los cálculos físicos actuales a la tarjeta PhysX.
Desde que Intel compró Havok el 15 de septiembre de 2007, Havok FX se canceló. Se suponía que Intel congelaría el proyecto de soporte de hardware para el motor en las tarjetas gráficas de su competidor, AMD, y se centraría en optimizar el motor para sus CPU multinúcleo. [10] [11] [12]
El 20 de marzo de 2009, se supo que en el evento anual Game Developers Conference 2009, AMD y Havok demostrarían la aceleración física de las tarjetas gráficas Radeon . Terry Makedon , gerente de producto de ATI Catalyst , dijo que en la GDC, AMD exhibirá su estrategia "ATI GPU Physics" y realizará una demostración relacionada. AMD utilizará el lenguaje de programación OpenCL para acelerar Havok , cuyo compilador forma parte del paquete de software ATI Stream SDK. [13] [14] [15] [16]
Como prometieron, AMD y Havok realizaron una demostración de física en GDC 09. Por primera vez, se demostró la capacidad de ejecutar "Havok Cloth" en una extensión de OpenCL. Se indicó que para los cálculos de este subsistema se requiere un procesador gráfico AMD con soporte para OpenCL y AMD Stream. También se mencionó el enfoque de Havok en los últimos procesadores Phenom multinúcleo de AMD . [17] [18] [19]
Enlaces de la secciónEl desarrollo del concepto GPGPU hace que las GPU sean cada vez más adecuadas para tareas destinadas a procesadores físicos. DirectX 10 agrega tipos de datos enteros , una arquitectura de sombreado unificado y sombreadores de geometría a la GPU, lo que permite que la GPU maneje una gama más amplia de algoritmos . NVidia CUDA proporciona comunicación entre subprocesos y un espacio de trabajo estilo bloc de notas asociado con subprocesos .
Sin embargo, las GPU están diseñadas para funcionar con gráficos de computadora en 3D. Tienen una latencia más larga, transmisiones más lentas, funcionan con texturas y framebuffer . Esto los distingue de Ageia PPU y Cell como menos adecuados para el modelado físico.
El sistema de programación paralela Sieve C++ es compatible con la PPU, lo que demuestra que el chip Ageia PhysX sería adecuado para tareas de tipo GPGPU.
Enlaces de la secciónSe espera que Larrabee de Intel , una implementación multinúcleo con ancho de banda optimizado de la arquitectura x86, sea una buena opción para el rol de procesador físico . Al igual que el procesador Cell, Larrabee se encuentra entre la CPU y la GPU en cuanto a sus parámetros. Larrabee está diseñado para el procesamiento de subprocesos múltiples multitarea de propósito general en lugar del procesamiento interno especializado de alto rendimiento. Intel ha confirmado que la arquitectura de memoria Larrabee no utilizará búferes temporales como Cell o Ageia PhysX; en cambio, la arquitectura de la memoria estará más cerca de la jerarquía de caché de la CPU normal. Sin embargo, Larrabee tendrá extensiones para habilitar HPC (probablemente un reemplazo completo de las instrucciones de administración de caché).
En 2008, AMD anunció su proyecto AMD Fusion . AMD Fusion será un procesador que combinará un procesador central x86-64 y un procesador gráfico basado en los últimos modelos de la serie Radeon en un solo chip . Se compartirán varios recursos del procesador AMD Fusion , como el caché jerárquico. Es probable que esta configuración futura también sea adecuada para el rol de PPU.
Tecnologías de procesadores digitales | |||||||||
---|---|---|---|---|---|---|---|---|---|
Arquitectura | |||||||||
Set de instrucciones arquitectura | |||||||||
palabra maquina | |||||||||
Paralelismo |
| ||||||||
Implementaciones | |||||||||
Componentes | |||||||||
Administración de energía |