CoreMark icon indicating copy to clipboard operation
CoreMark copied to clipboard

Sipeed Maix Bit (Kendryte K210) benchmark

Open dimitre opened this issue 6 years ago • 6 comments

Hello Paul, congrats on the release of Teensy 4.0 I'm looking forward to use it. I've just tested the Sipeed Maix Bit (Kendryte K210) here with your CoreMark, and I'm sharing the results in the case you think it is interesting. Screen Shot 2019-08-07 at 1 03 05 PM Screen Shot 2019-08-07 at 1 04 19 PM

dimitre avatar Aug 07 '19 16:08 dimitre

What's the operating frequency for your maix bit when doing the test? 400 Mhz? Have u tried the 600 Mhz or higher?

mzy2240 avatar Aug 09 '19 05:08 mzy2240

What's the operating frequency for your maix bit when doing the test? 400 Mhz? Have u tried the 600 Mhz or higher?

I've tried both but they gave me the same result so I've opened this https://github.com/sipeed/Maixduino/issues/46

I've tried with ArduinoCore-k210 and it gave different results, but the same results for 400 and 600 mhz too.

Maixduino CoreMark 1.0 : 697.79 / GCC8.2.0 (flags unknown) / STACK

ArduinoCore-k210 from Seedstudio CoreMark 1.0 : 631.86 / GCC8.2.0 (flags unknown) / STACK

dimitre avatar Aug 09 '19 14:08 dimitre

My results for 400 MHz:

2K performance run parameters for coremark. CoreMark Size : 666 Total ticks : 15816 Total time (secs): 15.82 Iterations/Sec : 695.50 Iterations : 11000 Compiler version : GCC8.2.0 Compiler flags : (flags unknown) Memory location : STACK seedcrc : 0xE9F5 [0]crclist : 0xE714 [0]crcmatrix : 0x1FD7 [0]crcstate : 0x8E3A [0]crcfinal : 0x33FF Correct operation validated. See README.md for run and reporting rules. CoreMark 1.0 : 695.50 / GCC8.2.0 (flags unknown) / STACK

ckuehnel avatar Aug 19 '19 12:08 ckuehnel

That would be single core rightI?

NikiSchlifke avatar Sep 07 '19 04:09 NikiSchlifke

Yes.Von Samsung-Tablet gesendet -------- Ursprüngliche Nachricht --------Von: NikiSchlifke [email protected] Datum: 07.09.19 06:43 (GMT+01:00) An: PaulStoffregen/CoreMark [email protected] Cc: Claus Kühnel [email protected], Comment [email protected] Betreff: Re: [PaulStoffregen/CoreMark] Sipeed Maix Bit (Kendryte K210) benchmark (#1) That would be single core rightI?

—You are receiving this because you commented.Reply to this email directly, view it on GitHub, or mute the thread. [ { "@context": "http://schema.org", "@type": "EmailMessage", "potentialAction": { "@type": "ViewAction", "target": "https://github.com/PaulStoffregen/CoreMark/issues/1?email_source=notifications\u0026email_token=AABPZTG4FCZY34JIKVJDID3QIMWOJA5CNFSM4IKCBTT2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD6EQB3Y#issuecomment-529072367", "url": "https://github.com/PaulStoffregen/CoreMark/issues/1?email_source=notifications\u0026email_token=AABPZTG4FCZY34JIKVJDID3QIMWOJA5CNFSM4IKCBTT2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD6EQB3Y#issuecomment-529072367", "name": "View Issue" }, "description": "View this Issue on GitHub", "publisher": { "@type": "Organization", "name": "GitHub", "url": "https://github.com" } } ]

ckuehnel avatar Sep 07 '19 08:09 ckuehnel

Hello Paul, one big thank you for shearing your CodeMark code. I used it to benchmark my Sipeed Maix Bit's - Kendryte K210 64bit MCU using Arduino IDE and all looks promising while Optimization level was Os,O1 and O2, but unfortunately with -O3 and -Ofast options code do not pass compiling. I get error massages like this one:

C:\Users\Jovan\Documents\Arduino\CoreMark-master-22\core_list_join.c: In function 'core_bench_list':
core_list_join.c:138:12: error: 'info.data16' may be used uninitialized in this function [-Werror=maybe-uninitialized]
  list_data info;
            ^~~~
cc1.exe: some warnings being treated as errors
exit status 1
'info.data16' may be used uninitialized in this function [-Werror=maybe-uninitialized]_

Any idea how to fix it? Although I do get much better results then Dimitre on default settings @400MHz with -02 like:

--- O2 optimization , benchmark by JovanEps 
CoreMark Performance Benchmark

CoreMark measures how quickly your processor can manage linked
lists, compute matrix multiply, and execute state machine code.

Iterations/Sec is the main benchmark result, higher numbers are better
Running.... (usually requires 12 to 20 seconds)

2K performance run parameters for coremark.
CoreMark Size    : 666
Total ticks      : 13505
Total time (secs): 13.51
Iterations/Sec   : 814.51
Iterations       : 11000
Compiler version : GCC8.2.0
Compiler flags   : (flags unknown)
Memory location  : STACK
seedcrc          : 0xE9F5
[0]crclist       : 0xE714
[0]crcmatrix     : 0x1FD7
[0]crcstate      : 0x8E3A
[0]crcfinal      : 0x33FF
Correct operation validated. See README.md for run and reporting rules.
CoreMark 1.0 : 814.51 / GCC8.2.0 (flags unknown) / STACK

I miss the -O3 options, so any help or suggestion regarding that issue will be more then welcome :). I expect -O3 to give significantly better results because (for example) -O3 in Dhrystone 2.1 Benchmark is giving me huge 1318.21 MISP while -O2's options is giving just 937.93 MIPS, and that is a huge 40.5% difference.

Example >

------ Benchmark by JovanEps 
--O3 
Dhrystone Benchmark, Version 2.1 (Language: C)
Execution starts, 30000000 runs through Dhrystone

Execution ends
Microseconds for one run through Dhrystone: 0.43
Dhrystones per Second: 2316091.70
VAX MIPS rating = 1318.21

------ Benchmark by JovanEps 
--O2
Dhrystone Benchmark, Version 2.1 (Language: C)
Execution starts, 30000000 runs through Dhrystone

Execution ends
Microseconds for one run through Dhrystone: 0.61
Dhrystones per Second: 1647935.50
VAX MIPS rating = 937.93

JovanEps avatar Oct 08 '21 18:10 JovanEps