Home
JAQForum Ver 20.06
Log In or Join  
Active Topics
Local Time 16:51 03 May 2024 Privacy Policy
Jump to

Notice. New forum software under development. It's going to miss a few functions and look a bit ugly for a while, but I'm working on it full time now as the old forum was too unstable. Couple days, all good. If you notice any issues, please contact me.

Forum Index : Microcontroller and PC projects : More sophisticated benchmark

Author Message
kiiid

Guru

Joined: 11/05/2013
Location: United Kingdom
Posts: 671
Posted: 09:51am 26 Nov 2016
Copy link to clipboard 
Print this post

I looked at the existing benchmarking code base for MM and found out it is far from great, so I spent some time these days developing a more serious and accurate benchmark which takes into account the actual performance in mixed type statements in a more sophisticated manner. The program appears deceivingly simple, but it works quite accurately. The result forms a slightly non-linear output even on the same processor running at different speeds, which corresponds with the reality when measuring the actual amount of performed calculations over time.

The reference point here is a 5HMz MX470 running MMBasic 5.2 on ELLO 2M in standalone mode (no USB attached). That generates 100 grains performance.

I would be grateful if the program is ran on various MMBasic systems ranging from the first Maximites through the most recent MZ ports (will publish my results when the 'official' release is ready).

This way we can have a more reliable and unified reference about the performance of various systems at various speeds.

2016-11-26_195025_grainbench.zip



http://rittle.org

--------------
 
Geoffg

Guru

Joined: 06/06/2011
Location: Australia
Posts: 3165
Posted: 12:59am 27 Nov 2016
Copy link to clipboard 
Print this post

It is hard with benchmarks, you try to have a representative mix... but representative of what?

Yours is very orientated towards floating point so the MZ should do well. But not everyone uses so much floating point, especially in embedded controllers.

To misquote Disraeli: "There are three kinds of lies: lies, damned lies, and benchmarks"

Geoff
Geoff Graham - http://geoffg.net
 
kiiid

Guru

Joined: 11/05/2013
Location: United Kingdom
Posts: 671
Posted: 02:52am 27 Nov 2016
Copy link to clipboard 
Print this post

Actually that's the thing, I have tried hard to make it balanced between integer calculations, fp, and string handling. In fact the MX series performs quite well.
Here is what I have tested so far:


Micromite, MX470/5MHz, MMBasic 5.2 100 grains
Micromite, MX170/5MHz, MMBasic 4.7 136 grains
Micromite, MX170/40MHz, MMBasic 4.7 1181 grains
Micromite, MX170/48MHz, MMBasic 4.7 1417 grains
Micromite, MX470/100MHz, MMBasic 5.2 2151 grains
Micromite EXTREME, MZEFH/198MHz, MMbasic 5.3b3 4060 grains
Micromite MZ, MZEFH/198MHz, MMBasic 5.3b5 4067 grains (unreleased version)


One thing which catches immediate attention is that MMBasic 5.2 is about 36% slower than 4.7 under other equalised conditions, probably due to the massive number of additions since then.


http://rittle.org

--------------
 
WhiteWizzard
Guru

Joined: 05/04/2013
Location: United Kingdom
Posts: 2794
Posted: 04:21am 27 Nov 2016
Copy link to clipboard 
Print this post

@kiiid,

On your PCB (i.e. MZ 64pinner), running Extreme v5.3b3, I am getting 4242 consistently

No TFT, or Touch setup, just your onboard SD socket. Coding via console pins. Only other option set is BAUDRATE @ 115200


WW

For everything Micromite visit micromite.org

Direct Email: whitewizzard@micromite.o
 
kiiid

Guru

Joined: 11/05/2013
Location: United Kingdom
Posts: 671
Posted: 04:50am 27 Nov 2016
Copy link to clipboard 
Print this post

That's with no USB I assume.
Good stuff, thanks WW

http://rittle.org

--------------
 
WhiteWizzard
Guru

Joined: 05/04/2013
Location: United Kingdom
Posts: 2794
Posted: 04:52am 27 Nov 2016
Copy link to clipboard 
Print this post

Just have a WiFi bridge direct on the Tx/Rx pins. Power coming in on USB socket.


For everything Micromite visit micromite.org

Direct Email: whitewizzard@micromite.o
 
kiiid

Guru

Joined: 11/05/2013
Location: United Kingdom
Posts: 671
Posted: 04:59am 27 Nov 2016
Copy link to clipboard 
Print this post

The benchmark is comparative of the balanced performance when executing mixed code, which is a very real indication of the actual amount of work that the system can do over a specified amount of time. So if you are getting 4242 in your setup that means the USB is slowing the overall system down by about 4-5% which corresponds with the reality. My readings were all taken with USB console on (except for the 100 grains one).

I am interested in the performance of the older Maximites and the ARM ports. Unfortunately having neither with me here...

http://rittle.org

--------------
 
WhiteWizzard
Guru

Joined: 05/04/2013
Location: United Kingdom
Posts: 2794
Posted: 05:27am 27 Nov 2016
Copy link to clipboard 
Print this post

With OPTION CONSOLE OFF or ON (and a connection via USB D+/D-), it drops to 3942.

When USB is not connected to a 'computer', (i.e. nothing connected to D+/D-) then is always 4242.


For everything Micromite visit micromite.org

Direct Email: whitewizzard@micromite.o
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 8592
Posted: 07:42am 27 Nov 2016
Copy link to clipboard 
Print this post

  Quote  running Extreme v5.3b3, I am getting 4242 consistently


It is worth noting that based on my very limited testing 5.3 seems to be about 7% slower than 5.2 with the original benchmark. I assume this is because a major part of the core Basic code was rewritten by Geoff to fix a horrible bug but I may be completely wrong (as often is the case)

My best is 4292 on a MZ EXTREME 200MHz no USB connectionEdited by matherp 2016-11-28
 
WhiteWizzard
Guru

Joined: 05/04/2013
Location: United Kingdom
Posts: 2794
Posted: 11:36am 27 Nov 2016
Copy link to clipboard 
Print this post

An immediate question would be 'why the different figures?'.

Would temperature have an impact? Everything else should be the same; i.e. same PIC, same code, minimal circuit.

Can only assume component tolerances and voltage are the other 'variables'. Interested to hear your thoughts . . . .
For everything Micromite visit micromite.org

Direct Email: whitewizzard@micromite.o
 
kiiid

Guru

Joined: 11/05/2013
Location: United Kingdom
Posts: 671
Posted: 09:23pm 27 Nov 2016
Copy link to clipboard 
Print this post

What different figures?
http://rittle.org

--------------
 
WhiteWizzard
Guru

Joined: 05/04/2013
Location: United Kingdom
Posts: 2794
Posted: 09:27pm 27 Nov 2016
Copy link to clipboard 
Print this post

Peter=4292. WW=4242

Same hardware, same software
For everything Micromite visit micromite.org

Direct Email: whitewizzard@micromite.o
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 8592
Posted: 10:06pm 27 Nov 2016
Copy link to clipboard 
Print this post

  Quote  Peter=4292. WW=4242


Peter 200MHz 24MHz oscillator, WW 198MHz 12MHz oscillator
 
kiiid

Guru

Joined: 11/05/2013
Location: United Kingdom
Posts: 671
Posted: 03:17am 05 Dec 2016
Copy link to clipboard 
Print this post

Just for the fun I ran MMBasic on my i7-6700HQ/2.6GHz :)
Had to modify a tiny bit the variable declaration statements (only!) in order to make the program compatible with the older syntax parsing.
Here is what I got...

2016-12-05_131329_grain.zip






http://rittle.org

--------------
 
Print this page


To reply to this topic, you need to log in.

© JAQ Software 2024