Project - Gadgeteer Performance Test - Calculating Digits of PI

Gadgeteer Performance Test - Calculating Digits of PI

A sample project used to compare the performance of different Gadgeteer Mainboards.


Interesting results…

Wow… The difference between the Mountaineer & the Cerberus is disturbing. Is this a difference in compilers or is the Cerberus not taking advantage of the FPU?

That would be my guess. I’d like to see where the G120 fits in here.

This is only a start and I hope that some other folks will post some sample performance testing code as well. The reality is Gadgeteer packs some incredible punch in a small easy to use package and at $30 that Cerberus is a heck of a deal as its a destroyer that can punch it out with the cruisers (why I have a bucket full of them). The Spider while slower is still my go to mainboard as its untouchable in terms of flexibility, you can hook up anything to a Spider. The other boards are great too and hence why I have them as every board has its place because of what it offers and hence why I sometimes fear performance tests like this as then people tend to focus on just one aspect of a mainboard.

Next classic test might be a Whetstone to give the FPU a better workout, anyone got one (or any other FPU test algorithm)

You ought to do a comparison with RLP…

For Whats it worth, I just tested my G400D to see its performance.

Calculate 200 Digits of Pi

G400D Beta with latest firmware.
1 min 07 sec

1 Like

@ scardinale - Not bad!

G120 200 digits Pi

Release: 00:14:52
Debug: 00:18:02

Release in overdrive: 00:09:52

 var emcclksel = new Register(0x400FC100);
 emcclksel.ClearBits(1 << 0); // OVERDRIVE

@ andre.m In release with VS Debugger attached. No Char Display to test deployed.

All of a sudden scardinale’s numbers seem suspicious…

He’s been running it under debugger.

Here’s the proof. Release Build with Debugger Attached and Deployed.

What do you get w/o the debugger attached?

The first image is with VS Debugger Attached as Release Build and the second image is deployed as release build. Both clock in at 1 min 8 seconds.

Hmmm… Something still doesn’t compute. GHI, are you going to repeat this test?

What’s the “overdrive” setting? Is it a method to overclock?

@ mhectorgato - Yes it is to overclock. Info comes from this doc.

Just realize that shift left zero (emcclksel.ClearBits(1 << 0) is useless :wink:

1<<0 is useless but clearer coding.

1<<15 is to get the sixteenth bit (starting at zero) and 1<<0 is to mark the first bit.

1 Like