Home
JAQForum Ver 24.01
Log In or Join  
Active Topics
Local Time 01:54 24 Nov 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 : Benchmark, speed

Author Message
pito
Newbie

Joined: 09/06/2011
Location:
Posts: 25
Posted: 08:42pm 30 Jun 2011
Copy link to clipboard 
Print this post

Hi,
as I've written in an another topic I did some comparision of Maximite speed with a similar basic (StickOs Basic). Below is a simple benchmark I used in the experiments. The Maximite ran on its default settings, (v2.4, no video, no ps2, the alternative Maximite schematics). The checksum there is correct for the StickOs basic as it works with 32bit signed integer, Maximite gives an error.


10 dim i, j, add, mul, div
15 dim addn, muln, divn, tim
20 dim buff[1000]
30 let add = 2
40 let mul = 6
50 let div = 20
55 let addn = 0
56 let muln = 0
57 let divn = 0
58 let tim = timer
60 for j = 1 to 1000
70 for i = 0 to 999
80 if not (i mod add) then
90 let buff[I] = buff[I]+j
92 let addn = addn+1
100 endif
110 if not (i mod mul) then
120 let buff[I] = buff[I]*j
122 let muln = muln+1
130 endif
140 if not (i mod div) then
150 let buff[I] = buff[I]/j
152 let divn = divn+1
160 endif
170 next
180 next
181 print timer - tim, " msec"
182 print addn, muln, divn
183 let j = 0
184 for i = 0 to 999
185 let j = j+buff[I]
187 next
188 print j
190 if j<>1273121141 then
191 print "######## CHECKSUM ERROR ########"
192 endif
200 end


You may see the effects of clock, peripheral bus clock and flash waitstates as well.

Results (lower is better)
=======================================================
Maximite:
=======================================================
764887 ms at Maximite default settings (80/40MHz)

StickOS Basic:
=======================================================
294070 ms @40MHZ, periph 20MHz, 1 flash waitstate

171598 ms @80MHZ, periph 40MHz, 2 flash waitstates
171242 ms @80MHZ, periph 80MHz, 2 flash waitstates

161234 ms @96MHZ, periph 48MHz, 3 flash waitstates
142513 ms @96MHZ, periph 48MHz, 2 flash waitstates
142012 ms @96MHZ, periph 96MHz, 2 flash waitstates

128529 ms @120MHZ periph 60MHz, 3 flash waitstates
113624 ms @120MHz periph 60MHz, 2 flash waitstates
113237 ms @120MHz periph 120MHz, 2 flash waitstates

As I did not dig into Maximite code yet so let me ask you -
1. is the cache enabled
2. waitstates set properly
3. do you use the hardware multiplier and divider for integer math
4. is the video really switched off when running it without vga circuits connected and the v2.4 is burned in?

Pito.Edited by pito 2011-07-02
 
rhamer
Senior Member

Joined: 06/06/2011
Location: Australia
Posts: 174
Posted: 09:59pm 30 Jun 2011
Copy link to clipboard 
Print this post

Are you doing this just for interest, or do you have an application that is running too slowly?

Regards

Rohan
Rohan Hamer
HAMFIELD Software & Hardware Solutions

Makers of the Maximite Expander.

http://www.hamfield.com.au
 
BobDevries

Senior Member

Joined: 08/06/2011
Location: Australia
Posts: 266
Posted: 11:00pm 30 Jun 2011
Copy link to clipboard 
Print this post

Hmm,

I got a lowly 874459 on my Maximite.

As well, I found a rather cryptic error message:

+Inf

That's it!!

It occurs in line 188 of the above programme.
I assume that error message is telling me that MMBasic can't handle such a large number.

The values for addn, muln and divn are 500000, 167000 and 50000 respectively.

Regards,

Bob Devries
Dalby, QLD, Australia
 
pito
Newbie

Joined: 09/06/2011
Location:
Posts: 25
Posted: 12:14am 01 Jul 2011
Copy link to clipboard 
Print this post

Bob, the speed difference is probably because you are using video.
The Maximite uses floating point (as stated in the user manual) as the internal representation of _any_ number. Therefore such big diff against StickOS (it uses 32bit integers instead). I do not know how Maximite treats _integers_, e.g. in for-next loops, though.
I am getting this as the result:
> run
764887 msec
500000 167000 50000
0
######## CHECKSUM ERROR ########
>
P.Edited by pito 2011-07-02
 
pito
Newbie

Joined: 09/06/2011
Location:
Posts: 25
Posted: 07:46pm 02 Jul 2011
Copy link to clipboard 
Print this post

FYI:

PIC32LUA (64bit floating point):
=======================================================
27135 ms @120MHz periph 120MHz, 2 flash waitstates

 
VK6MRG

Guru

Joined: 08/06/2011
Location: Australia
Posts: 347
Posted: 02:59am 03 Jul 2011
Copy link to clipboard 
Print this post

Hi Guys,
I've tried this with my Maximite and here are the results.

865406 msec
500000 167000 50000

Maximite is running on USB power.

Its easier to ask forgiveness than to seek permission!

............VK6MRG.............VK3MGR............
 
sparkey

Senior Member

Joined: 15/06/2011
Location: Australia
Posts: 819
Posted: 10:17am 04 Jul 2011
Copy link to clipboard 
Print this post

just came accross this post i will when i get a chance to run the test as well ..using ver 4.2a firm and will post later..
technicians do it with least resistance
 
jebz

Regular Member

Joined: 13/06/2011
Location: Australia
Posts: 79
Posted: 11:32am 04 Jul 2011
Copy link to clipboard 
Print this post

  VK6MRG said  
865406 msec
500000 167000 50000
Maximite is running on USB power.


Mine was exactly the same with USB power, Putty terminal and v2.4A firmware.
865406 msec
500000 167000 50000
0
######## CHECKSUM ERROR ########
 
VK6MRG

Guru

Joined: 08/06/2011
Location: Australia
Posts: 347
Posted: 11:35am 14 Sep 2011
Copy link to clipboard 
Print this post

Speed test with Version 2.6

660455 msec
500000 167000 50000
0
######## CHECKSUM ERROR ########


Its easier to ask forgiveness than to seek permission!

............VK6MRG.............VK3MGR............
 
Print this page


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

© JAQ Software 2024