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 |
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. |
||||
rhamer Senior Member Joined: 06/06/2011 Location: AustraliaPosts: 174 |
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: AustraliaPosts: 266 |
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 |
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. |
||||
pito Newbie Joined: 09/06/2011 Location: Posts: 25 |
FYI: PIC32LUA (64bit floating point): ======================================================= 27135 ms @120MHz periph 120MHz, 2 flash waitstates |
||||
VK6MRG Guru Joined: 08/06/2011 Location: AustraliaPosts: 347 |
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: AustraliaPosts: 819 |
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: AustraliaPosts: 79 |
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: AustraliaPosts: 347 |
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 |