NVIDIA has recently shown analysts the power of their physics engine extensions to CUDA, which are nearly complete. The physics engine extensions will allow simulations of various real-world phenomena using highly complex mathematical models which mimic their behavior. This data will prove invaluable in countless disciplines, including gaming to produce for more real characters, thanks to the power of extreme parallelism resulting in real-time operations.
To put the new engine’s power into perspective, Intel has recently demonstrated a physics simulation running on a multi-core Nehalem system without the assistance of the GPU. That demo ran a 50K to 60K particle simulation at around 20fps. The particles’ motion was governed by the simulation of their real-world observed behavior by physicists. When the same simulation was operating on NVIDIA’s GPU using CUDA with the beta (not yet released to the public) physics engine, it was shown to operate at over 300fps, an increase of 15x. This also means that 15x more particles could be simulated at 20fps.
Read more at TG Daily.com.
In the world of high-end computational processing where the limitations on workload are not memory or communication bandwidth constrained, the ability to compute data in massively parallel operations is proving very desirable. The entire concept of multi-core processors addresses this very need. Two cores can do more at the same in most instances than a single core can. Well, what would happen if that concept was taken to extremes with 50 or more cores? That’s exactly what GPU designers have done to create the high-end graphics cards we all use today.
High-end graphics cards are basically enormously powerful parallel compute engines. It was discovered a few years ago that their internal processing, while often limited to only 32-bit floating point (which is generally insufficient for much more than gaming or low-end graphics), is amazingly fast relative to anything else strictly CPU-based. Other systems, such as ClearSpeed, offer full 64-bit floating point operations, typically at one half the speed of 32-bit.
NVIDIA and ATI have both created software developer kits which allow programmers to utilize the parallel processing power of their graphics cards, but not for gaming or rendering. Simple math compute abilities are exposed, as are massively parallel sorting operations, index searches, and all kinds of other abilities which, due to parallelism, are much faster than even a multi-core CPU could ever do on its own. It’s also very power-efficient as the entire design of a GPU is geared toward parallelism by nature. NVIDIA’s is called CUDA and typically operates with the GeForce 8800 series and above. ATI’s is called CTM (Close-to-metal) and operates on most any high-end graphics card.
While it’s arguable from a developer’s point of view that CUDA is more desirable for rapid software development, both designs provide the same basic capabilities just in different ways: they expose the internals of the graphics engine for non-graphics operations.