- How to Get your Multi-core CPU Busy at 100% with FluidMark?
- GPU PhysX is Fast But Has Limitations You Must Know
The new version of Geeks3D’s PhysX FluidMark is out.
FluidMark is a fluid simulation benchmark based on NVIDIA PhysX engine. The fluid simulation uses the SPH or Smoothed Particle Hydrodynamics method where interparticle forces are considered (SPH requires more CPU or GPU horsepower!).
The main feature of this new version is the support of multi-core CPU. Actually multi-core CPU is a trendy way to tell that PhysX FluidMark is now multi-threaded. FluidMark has several threads: the main app thread (GUI), the rendering thread and one or several PhysX threads. PhysX threads are only created when Multi-core PhysX is checked. The support of multi-core CPU can be seen as a consequence of these two news: AMD and NVIDIA.
Actually there are two kind of threading when Multi-core PhysX is checked:
- 1 – PhysX GPU: this is the default mode. In that case, only one PhysX thread is created for the physics simulation.
- 2 – PhysX CPU (Force PhysX CPU checked): all PhysX simulation is done on the CPU. In that case, one or several PhysX threads are created according to the number of selected emitters.
The following screenshot shows the multi-core PhysX CPU in action: 120000 particles are simulated on a Core i7 960 with hyper-threading enabled (8 cores):
As you can see, multi-core CPU PhysX works fine 😉
I will publish in a next post the results for some GPUs and CPUs.
Don’t hesitate to post your scores for various settings in the comment section…
Other new things concern the particle rendering. In previous versions, particles were rendered using billboarded quads (4 vertices per particle). This technique works fine but is rather CPU greedy. So the modern alternative to these billboarded quads is the point sprite. With point sprite, there is only one vertex per particle, the billboarding technique allowing the quad to face the camera) being done by the GPU. Point sprites bring a significant increase of rendering speed. That’s why I added a Heavy PhysX checkbox. When checked, Heavy PhysX sets the particle emitter rate to 2000 particles/sec whereas by default, the rate is 500 particles/sec. The particle rate can be set in FluidMark configuration file (startup_options.xml).
Lava particles – F3
Simple point particles – F4
This version of FluidMark has been compiled with the latest PhysX SDK v126.96.36.199.
FluidMark fluid simulation is hardware accelerated for all GeForce 8, 9, GTX200 and GTX400 series with the latest graphics drivers. The graphics drivers for GeForce install the latest version of CUDA and PhysX runtimes. For all other cards that are not CUDA-compliant (GeForce 5/6/7 or Radeon for example) the PhysX engine runs in software mode. So if you can’t start the benchmark, be sure to have the latest PhysX runtimes.
FluidMark exploits OpenGL for graphic acceleration and requires an OpenGL 2.0 compliant graphics card: NVIDIA GeForce 5 and and higher, AMD/ATI Radeon 9600+ and higher or a S3 Graphics Chrome 400/500 series with the latest graphics drivers.
PhysX FluidMark 1.2.0 changelog:
- New: added support of multi-core CPUs (PhysX simulation is spread over several threads). New checkboxes are also available to control this feature.
- New: added a checkbox to set the number of particles.
- New: added a checkbox to force CPU PhysX.
- New: added Heavy PhysX mode: to make modern systems with GPU PhysX happy
- New: added point sprite based rendering for particles (keys F2, F3 and F4).
- New: added keyboard-based camera control in stability test mode.
- Change: compiled with NVIDIA PhysX SDK 188.8.131.52.
- Change: updated with the latest version of ZoomGPU for graphics hardware detection.