Collision detection - speed up (test result)

Beauty

25-05-2009 23:30:42

Hi,

I made some small performance benchmarks with Newton 2.
(The Newton API access I recorded and made a playback by a test application.)

The used processor was a dual core:
Athlon 64 X2 Dual 5000+


Result:

using World.setThreadCount(2) (or more)
--> 36% speed up
costs: doubled CPU time (100% instead of 50% (2 CPU kernels are busy instead of 1))
The speed up rate could change in other situations, but you see there is an improvement.

using World.setPlatformArchitecture(2) (enabling best related platform optimizations)
--> no speedup


Background information:

* No physics functionality was used
* Instead the method World.collisionUpdate() was used to check
* Around 700 objects were defined
* No callback function was used (instead of this it used the iterator method to check for contact of only selected bodies)
* Ogre was not initialized for a more precise result


My test application you can download here (written in C# and using Mogre).
If this isn't available in future, ask me for the file Collision-Test_for_DeadLock-2009-05-25.rar.

This is just a little info for people who are interested :wink:

Beauty

26-05-2009 11:42:59

I got an answer from the author of Newton related to this benchmark:


using SetThreadCount(2)
--> 36% speed up
costs: doubled CPU time (100% instead of 50% (2 CPU kernels are busy instead of 1))

That's about right for CPUs wich do not have share cache
on core two the yield should be higher


using Platform improvements
--> no speedup


that is a suporoce, I thong teh are not very good at SSE code.
I have never tested the engine on AMD with SSE, but I always read about lower perfomance from people who has tested


By the way - the duration time is in minutes + seconds (many Newton accesses).