benchmark test: HaWe brickbench – for C# / Mono?

HomeForumsMonoBrick EV3 Firmwarebenchmark test: HaWe brickbench – for C# / Mono?

Tagged: ,

This topic contains 43 replies, has 4 voices, and was last updated by Author Image Helmut Wunder 3 years, 2 months ago.

Viewing 15 posts - 16 through 30 (of 44 total)
  • Author
    Posts
  • #4718
    Author Image
    Anders Søborg
    Key Master

    Hi

    Is there some sort of official table that I can refer to on the website?

    /Anders

    #4726
    Author Image
    Helmut Wunder
    Participant

    hi,
    here I listed the current most updated results:

    http://www.mindstormsforum.de/viewtopic.php?f=71&t=8095&start=60#p64772

    and this is where I listed my ANSI C reference code for EV3 (gpp C/C++ plus John Hansen’s BricxCC brickOS API):

    http://www.mindstormsforum.de/viewtopic.php?f=71&t=8095&start=60#p64494

    subsequently you can find different other programming platforms (partially some benchmark parts missing):
    NXC code for NXT: code by myself,
    C/C++ nxtOSEK code for NXT: ported by Martin Aumair,
    RobotC code for NXT and EV3: ported by Xander Soldaat,
    Java/leJOS code for NXT and EV3: ported by Andy Shaw
    C#/Mono code for EV3: ported by Vlad Ruzov
    Sketch C code for Arduino Due: ported by “ArduFe”

    • This reply was modified 3 years, 8 months ago by Author Image Helmut Wunder.
    #4788
    Author Image
    Helmut Wunder
    Participant

    hi,
    are there updates by the latest C#/Mono release plus missing display benchmarks ?

    #4789
    Author Image
    Vlad Ruzov
    Participant

    hi,
    I will try to move forward with display benchmarks on this weekend.

    #4806
    Author Image
    Helmut Wunder
    Participant

    hi Vlad,
    a very good job – I’m honored to see that you took the challenge for completing the benchmark test!
    as I wrote already here…: http://www.monobrick.dk/forums/topic/lcd-extensions/#post-4805 ;)

    #4964
    Author Image
    Vlad Ruzov
    Participant

    Hi,
    I`m not sure that drawing functions are needed on the LegoBrick but I have done its for complete HW brickbench test.
    Not so far Anders merged LcdDraw to the firmware and today Ifinally had the time for finish the test.
    I hope that Helmut will looking into this message and will update results table on his site.

    The full test source can be found here: https://github.com/vladru/MonoBrickBench

    The application can be builded in Xamarin studio 5.5.3 with MonoBrick firmware Add-In.
    If you will try to open this project in Visual Studio you will catch unsupported format error. Probably this issue caused by using of Xamarin Add-In.

    Below the timing (in milliseconds) of steps that was missing in the previous C# test release:
    Display_text test (5 loops): 395, 242, 268, 259, 262
    Graphics test (5 loops): 475, 180, 182, 172, 199

    #4969
    Author Image
    Helmut Wunder
    Participant

    hey,
    thank you for contributing!
    By these benchmarks now Mono/C# reached a new highscore ! 8-)

    ps, BTW:
    here are 3 examples where graphic screen output was needed:

    Astar: http://www.mindstormsforum.de/viewtopic.php?f=70&t=6619&p=55745&

    Speech recognition: http://www.mindstormsforum.de/viewtopic.php?f=70&t=6386&p=53924

    PID regulation tuning: http://www.mindstormsforum.de/viewtopic.php?f=25&t=7521&p=62137#p61930

    • This reply was modified 3 years, 6 months ago by Author Image Helmut Wunder.
    #4973
    Author Image
    Helmut Wunder
    Participant

    ps, forgot:
    visualization of cam object detection :

    #5250
    Author Image
    Helmut Wunder
    Participant

    hi,
    a recent note:
    a bug has been reported to the float_math benchmark where NANs have been generated, so an additional line
    s=s*s
    has been added at the end.

    so the updated procedure would be supposed to look as follows:

    // updated sub-test for HaWeBench 1.9.0 C#/Mono
    
    static void TestFloatMath() {
             double s = 3.141592;
             int y;
    
             for (y = 0; y < 5000; ++y) {
                s *= Math.Sqrt(s);   // <<<<< no issue any longer      
                s = Math.Sin(s);
                s *= Math.Cos(10.5 * s);
                s = Math.Sqrt(s);   //  <<< hopefully no additional issue now :-/ 
                s = Math.Exp(s);
                s *= s;             //  <<<<<<<<<<<<< new line !!!!!!!!!!!!!!!!!
             }
             //return s;
          }

    On some platforms the new benchmarks (1.0.9) already have been updated by minor changes, RobotC, C#, and leJOS still pending yet.

    thanks for your interest,
    kind regards,
    Helmut

    #5251
    Author Image
    Helmut Wunder
    Participant

    unfortunately the NAN bug still was not fixed yet, the sub test has been fixed again – now all intermediate values have been controlled and verified, no NANs any more. This is the corrected current sub test code for float and transcendental functions:

    
    static void TestFloatMath() {
             double s = 3.141592;
             int y;
    
             for (y = 0; y < 1000; ++y) {
                s *= Math.Sqrt(s);     
                s = Math.Sin(s);
                s = Math.Exp(s);
                s *= s;              
             }
             //return s;
          }
    #5252
    Author Image
    Helmut Wunder
    Participant

    BTW,
    how much non-volatile memory for code + stored data is available by Mono on the EV3?

    As just a user reported, on the original Lego flash only 5M are free, same 5M non-volaitle memory are free for excutables compiled by gpp C and CSLite toolcahins – the rest is used for OS and VM.
    If Mono is booting by a SD card (e.g. 4GB or 16GB): how much memory is free for variables or program code over all at most?

    BTW 2:
    the fixed leJOS benchmark has been published, but for the fixed adapted benchmarks the runtimes haven’t changed so much.

    http://www.mindstormsforum.de/viewtopic.php?f=71&t=8095#p64772

    Updated Mono benchmarks would be very much appreciated though! :)

    BTW 3:
    Another new programming language has appeared on the horizon: EV3-Basic, made just for kids and beginners, targeting the Lego lms2012 VM by MS Small Basic and homebrewed DLLs for autonomous and remote programs:

    https://github.com/c0pperdragon/EV3Basic

    http://www.mindstormsforum.de/viewtopic.php?f=25&t=8529#p66211

    share and enjoy!

    • This reply was modified 3 years, 3 months ago by Author Image Helmut Wunder.
    #5253
    Author Image
    Anders Søborg
    Key Master

    Hi Guys

    Thanks a lot for all your hard work. Right now I am on vacation. But I will have a look at it once I get back. Keep up the good work.

    /Anders

    #5263
    Author Image
    Helmut Wunder
    Participant

    hi,
    would please be someone so kind and test the new benchmark, after replacing the old float-Test
    in this test program class

    https://github.com/vladru/MonoBrickBench

    by the new one?

         static void TestFloatMath() {
             double s = 3.141592;
             int y;
    
             for (y = 0; y < 1000; ++y) {
                s *= Math.Sqrt(s);     
                s = Math.Sin(s);
                s = Math.Exp(s);
                s *= s;              
             }
             //return s;
          }
    #5274
    Author Image
    Helmut Wunder
    Participant

    hey y’all,
    what about a new test run ?

    #5275
    Author Image
    Anders Søborg
    Key Master

    Hi Helmut

    I will try and have a look at it tonight. Thanks a lot for your effort.

    /Anders

Viewing 15 posts - 16 through 30 (of 44 total)

You must be logged in to reply to this topic.

Posted in

Make a donation