Benchmarking using Coremark
#1
On the github platform for PULP, under pulp-rt-examples repository the coremark benchmark has been given. 

This benchmark runs for platforms like the single-core platform PULPissimo as well as the PULP (8 core platform). 

However, in both cases I have inferred that the platforms are running at a frequency of 100 MHz. 

For instance this is the output obtained for the Pulpissimo with zero riscy core:

[TB]          30495473188 - Triggering fetch enable
# [TRACER] Output filename is: trace_core_1f_0.log
# [dbg_if_soc] WRITE32 burst @1a104008 for           4 bytes.
# [TB]          30509373188 - Waiting for end of computation
# [STDOUT-CL31_PE0] 2K performance run parameters for coremark.
# [STDOUT-CL31_PE0] CoreMark Size    : 666
# [STDOUT-CL31_PE0] Total ticks      : 535261
# [STDOUT-CL31_PE0] Total time (usecs): 5352
# [STDOUT-CL31_PE0] Iterations/Sec   : 186
# [STDOUT-CL31_PE0] ERROR! Must execute for at least 10 secs for a valid result!
# [STDOUT-CL31_PE0] Iterations       : 1
# [STDOUT-CL31_PE0] Compiler version : na
# [STDOUT-CL31_PE0] Compiler flags   : na
# [STDOUT-CL31_PE0] Memory location  : STATIC
# [STDOUT-CL31_PE0] seedcrc          : 0xe9f5
# [STDOUT-CL31_PE0] [0]crclist       : 0xe714
# [STDOUT-CL31_PE0] [0]crcmatrix     : 0x1fd7
# [STDOUT-CL31_PE0] [0]crcstate      : 0x8e3a
# [STDOUT-CL31_PE0] [0]crcfinal      : 0xe714
# [STDOUT-CL31_PE0] Correct operation validated. See README.md for run and reporting rules.
# [STDOUT-CL31_PE0] CoreMark 1.0 : 186 / na na / STATIC
# [TB]          45796773188 - Received status core: 0x00000000
# ** Note: $stop    : /home/ashwini/pulp-sdk/pulpissimo-master/sim/../rtl/tb/tb_pulp.sv(679)
#    Time: 45796773188 ps  Iteration: 0  Instance: /tb_pulp
# Break at /home/ashwini/pulp-sdk/pulpissimo-master/sim/../rtl/tb/tb_pulp.sv line 679
# Stopped at /home/ashwini/pulp-sdk/pulpissimo-master/sim/../rtl/tb/tb_pulp.sv line 679
# End time: 14:51:20 on Feb 05,2019, Elapsed time: 0:05:38
# Errors: 0, Warnings: 15


From the total time taken and the total ticks fields, it can be deduced that the platform is running at a speed of 100 MHz. 

How was this frequency chosen?

Also, is there a way to change this frequency from the coremark.patch file (or any other file for that matter) that has been given with the coremark folder under pulp-rt-examples. 

Another interesting result of running the coremark example was that I obatined the same performance numbers (as listed above) for PULP and PULPissimo (with RISCY core). Does this mean that when coremark is running on PULP it is just giving the performance number of the core and the not the entire architecture? or How to interpret these values after running the coremark. Is it only evaluating the performance of a single core regardless of the platform?
Reply


Forum Jump: