CoreMark Questions

Hello everyone! I’ve been running my own CoreMark tests to verify the 3.0 CoreMarks/MHz results listed in the PolarFire SoC Product Overview document. Unfortunately, I’ve been running into some trouble repeating this score. Originally, I tried running the following according to the CoreMark instructions:

make PORT_DIR=linux64

and I obtained a score of 2.2 CoreMarks/MHz. I contacted Microchip via email to get some advice about how the 3.0 score was obtained, and they recommended I use the following to run the benchmark:

make XCFLAGS="-g -O3 -O2 -DPERFORMANCE_RUN=1 -DHAS_STDIO -DHAS_TIME_H -DUSE_CLOCK -fno-common -funroll-loops -finline-functions -falign-functions=16 -falign-jumps=4 -falign-loops=4 -finline-limit=1000 -fno-if-conversion2 -fselective-scheduling -fno-tree-dominator-opts -lpthread -DHAS_FLOAT=0 -mtune=sifive-7-series -lrt"

They also recommended I change the "typedef unsigned int ee_u32;” line in core_portme.h to “typedef signed int ee_u32;”. However, when I ran the benchmark with the changes implemented, I still obtained the same score of 2.2 CoreMarks/MHz. I reached out to Microchip again about this new result but I haven’t heard back in some time, so I figured I should move to the official PolarFire SoC Icicle Kit forum for further help.

Has anyone else tried running CoreMark on their Icicle Kits? Any recommendations for something I can try to obtain the 3.0 CoreMarks/MHz score that is in the documentation? I’m not sure if I’m doing something wrong, or if perhaps something else is going on with my system. Thanks in advance!!

Hi Mike,

Please refer to following whitepaper which is work in progress for PolarFire® SoC CPU Performance Benchmarking:-

I hope this might be helpful for you for answering above query.


1 Like

Thank you very much for the whitepaper, Sanjeev! I will take a look and perform additional testing, and I’ll let you know what I find.

Hi Sanjeev,

Unfortunately, after viewing the whitepaper, I am still uncertain about why my test scores are not closer to 3.125 CoreMarks/MHz (I am still getting a score of 2.2). I am using the Linux environment provided with the Icicle Kit, and I am using the same compiler flags as dictated in the whitepaper.

Do you have any suggestions? I only have one Icicle Kit so I’m not able to determine if this is an issue with my individual board.


Actually, never mind, I got it to work! I must not have been working with a fresh CoreMark build, because running “make clean” and then rebuilding and running the benchmark produced excellent results. I’m getting 3.125 CoreMarks/MHz now. I appreciate your patience!

Thanks for the confirmation Mike.