En informática, ¿cuál es la relación entre un motor de física y una unidad de procesamiento de gráficos?

Un motor de física se puede escribir de tal manera que aproveche tanto las capacidades de procesamiento de vectores, como el paralelismo masivo de una Unidad de Procesamiento de Gráficos (GPU). O incluso más adecuado para esta tarea de lidiar con la física, es una GPU de uso general (GPGPU), algunas de las cuales ni siquiera tienen la capacidad de hacer gráficos.

Editar: respuesta al seguimiento relevante en el comentario a continuación

Entonces, ¿cuanto más poderosa sea la GPU, más realista será la física?

Suponiendo que el motor de física usa la GPU, la respuesta aún no es sencilla. Las GPU son buenas para acelerar cosas como mallas (tela), partículas / fluido, donde entra en juego el paralelismo de la GPU. Este tipo de cosas son “vergonzosamente paralelas” donde el resultado de la computación física no tiene (o tiene poco) efecto en todo lo demás.

Sin embargo, si usa cuerpos rígidos (o muñeca de trapo), física o cualquier tipo de objeto jerárquico donde la manipulación de una articulación tiene un impacto directo en todo el sistema jerárquico, el recorrido de los nodos no es algo que una GPU haga fácilmente. Imagina que tienes una simulación de colonias de hormigas. Para paralizar la física de la hormiga, que por el bien de los argumentos tiene 30 articulaciones, puede comenzar en cada una de las patas y avanzar hacia arriba. Para paralelizar este problema de física, harías las seis patas de TODAS las hormigas en la colonia de hormigas en una sola pasada. Luego, el siguiente pase, toda la siguiente articulación de la pierna en TODAS las hormigas. Luego, cuando hayas terminado con todas las hormigas, debes lidiar con las hormigas que chocaron entre sí y comenzar de nuevo. En otras palabras, no puedes paralelizar los objetos individuales, tienes que paralelizar todos los objetos, lo cual es un problema más difícil de resolver, y algunos motores de física simplemente no hacen cuerpos rígidos, o los hacen de una manera diferente.

Entonces, para responder a la relación entre el poder de la GPU y el realismo de la física, depende del tipo de física.

Solía ​​haber alguna placa dedicada a los cálculos masivos de física, pero hoy en día es más sencillo y económico usar la GPU. Aún así, como desarrollador, lo que quiere es solo una biblioteca que haga las cosas (como PhysX – Wikipedia), y deje que elija cómo hacerlo (CPU, GPU, mezcla) dependiendo de lo que esté disponible.

Además, también tiene un motor de física JS para su aplicación web, que puede o no depender (directa o indirectamente) de la GPU.

Para resumir, un motor de física es una biblioteca que implementa algos para ayudarlo a simular la física, y una GPU es un dispositivo capaz de calcular eficientemente algunas tareas y que las bibliotecas pueden o no usar.