6

剛体の大規模なシミュレーションを可能にする汎用物理エンジンはありますか? Nvidia の PhysX を使用していますが、このエンジンの焦点はゲーム開発であり、ソフト ボディです。大規模な科学物理シミュレーションを可能にする PS3 セル プロセッサまたは CUDA コア上で動作する物理エンジンが存在するかどうかを知りたいです。

4

2 に答える 2

2

「普遍的な」物理ライブラリはありません。たとえば、相対論的効果を考慮した有用な手術軟部組織シミュレーションを想像できますか? さらに数十の例を想像できます。

あなたは科学的シミュレーションと剛体シミュレーションの両方について話しているので、どれだけ現実的になりたいのか明確ではありません。剛体は近似値です。絶対に剛体というものはありません。しかし、シミュレーションで何も大きく変形せず、摩擦と高速モーション (すべてのビデオゲームに共通) の非現実的な近似がたくさんあっても問題なく、すぐに使用できるソリューションが必要な場合は、Havok を実行してみてください。最新の CPU は最高のパフォーマンスを提供します。

PS/3 は現在、最終世代です。私は当時、物理学を書くことをとても楽しんでいましたが、6 コアの最新の i7 は、理論的にも実際にも、1 つのセルよりも多くのパフォーマンスを提供することを認めなければなりません。

CUDA は現在、物理学の証明されていない技術です。私はそれから何も書いていませんが、私は非常に興味のある読者です:) 最新のCPUのIPC(サイクルあたりの命令比率)に近づきたい場合、CUDAベースの物理演算を書くことの課題は非常に簡単ではありません。それを首尾よく達成した人を知りません。CPU ベースの物理演算の IPC に近づかない場合、CUDA 物理演算には意味がありません。より多くの労力が必要になるからです。

計算してみてください。500 ドルの Kepler GPU には 1536 コア @1GHz = 1.5 ペタフロップスがあります。590 ドルの Sandy Bridge CPU には、6 コア / 12 ハイパースレッド AVX (8-wide) @3.8GHz = 0.36 ペタフロップがあります。ここで、5 対 1 のパリティ (1 CPU サイクルに対して平均で 5 GPU サイクルを使用) を達成できる場合、理論上の CUDA 物理は CPU 物理と同じ速度で実行されます。現在、12 個のハイパースレッドと AVX (8-wide SIMD) を効率的に使用することは、実際には簡単ではありません。しかし、1536 (!) 個の CUDA スレッド間で物理タスクを並列化することは、非常に一貫性があり、より制御された方法でメモリを使用する必要があるため、簡単なことではありません。私はそれが不可能だと言っているわけではありません (そして私はそれを試してみたいと思っていますが、私は本業と他のお気に入りのプロジェクトを持っています:)) しかし、物理学コミュニティが何千ものスレッドにわたってスケーラブルなものを思いつくまでにはしばらく時間がかかります.

そして最終的に、速度の向上はわずか 5 倍程度です...:)

とにかく、シムを自分で書いて、一般的な剛体シミュレーションが必要ない場合は、CUDA があなたの味方かもしれません。たとえば、天の川のすべての星の動きを相対論でシミュレートしたいが、超新星やその他の個別の効果は使用しない場合...それを 1536 (およびそれ以上) のスレッドに分散する方法は非常に明確です。しかし、現在ゲームで行われているのと同じ方法でシミュレートされた剛体の山が必要な場合は、運が悪い

于 2012-06-03T21:56:08.710 に答える
0

Simbody マルチボディ ダイナミクス ライブラリは、数千の分子 (剛体) を含む分子シミュレーションに使用されます。Simbody の GitHub リポジトリ ( http://github.com/simbody/simbody ) で GIF を参照してください。

このライブラリは、人間の動きをシミュレートするためにバイオメカニクス コミュニティでも頻繁に使用されています。このような場合、人間は剛体のシステムとしてモデル化されます。

科学用のライブラリを探している場合は、Simbody をチェックしてください。ただし、PS3 セル プロセッサまたは CUDA コアでは使用されていません。

于 2014-03-28T01:16:47.880 に答える