RISC-V public beta platform released · CoreMark test report

1. Introduction to CoreMark

CoreMark is a benchmark test program used to evaluate CPU performance. It includes a variety of different computing tasks, including tests on floating point numbers, integers, cache, memory, etc. CoreMark test results are usually used as a reference for CPU performance. It can help developers and system administrators evaluate the performance of different processors and systems, compare the performance differences between different processors, and can also be used to test the performance of the processor in multi-threaded parallel computing.
Official website address:

2. Platform environment

[Hardware parameters]

Processor: Sophon SG2042 x 1
Number of cores: 64 cores
L1 Cache: I:64KB and D:64KB
L2 Cache: 1MB/Cluster
L3 Cache: 64MB System Cache
DRAM: DDR4 16Gx4

[Software Environment]

linux version: 22.10
gcc version: 10.2.0

3. Obtain source code

EEMBC hosts the CoreMark source code on GitHub, you can access the following link to obtain the source code; you can also download it locally through the git command.


4. Compilation

The compiler used this time is a compiler that supports RVV. It has been deployed on our experience machine. You can join the group experience through the contact information at the bottom of the article.

  1. First you need to modify the core_portme.mak file, (add -lpthread to the LFLAGAS_END variable)
  2. Add compilation parameters: -march=rv64gcv0p7_zfh_xtheadc -mabi=lp64d -mtune=c920.

After the addition, the effect is as follows:

# Flag: CC
#    Use this flag to define compiler to use
CC = gcc
# Flag: CFLAGS
#    Use this flag to define compiler options. Note, you can add compiler options from the command line using XCFLAGS="other flags"
#===============================Alter by me===========================
PF_CFLAGS = -march=rv64gcv0p7_zfh_xtheadc -mabi=lp64d -mtune=c920
#===============================Alter by me===========================
# Flag: NO_LIBRT
#    Define if the platform does not provide a librt
ifndef NO_LIBRT
#    Define any libraries needed for linking or other flags that should come at the end of the link line (e.g. linker scripts). 
#    Note: On certain platforms, the default clock_gettime implementation is supported but requires linking of librt.
#===============================Alter by me===========================
LFLAGS_END += -lrt -lpthread 
#===============================Alter by me===========================

single core compilation

ubuntu@perfxlab:/public/benchmark/coremark$ make compile  XCFLAGS="-DMULTITHREAD=1 -DUSE_PTHREAD"

multi-core compilation

ubuntu@perfxlab:/public/benchmark/coremark$ make compile  XCFLAGS="-DMULTITHREAD=64 -DUSE_PTHREAD"

5. Execute coremark on SG2042

  1. The single-core test results are as follows:

  2. The 64-core test results are as follows:

6. CoreMark score rankings

The 64-core running score of SG2042 is: 692303.531830, and the CPU frequency is 2GHz.
According to the formula:
CoreMark / MHz = (CoreMark Score) / (Clock Frequency in MHz)
We can calculate CoreMark / MHz=692303.531830/2000=346.55 of SG2042
As can be seen from the official website, as of now (2023-8-16), a total of 767 models of CoreMark running score results have been uploaded.

Official website link

Figure 1: Coremark scores sorted from high to low

Figure 2: Coremark/MHz scores sorted from high to low

As can be seen from the leaderboard (Figures 1 and 2 above), the SG2042 has shown impressive performance both based on CoreMark scores and CoreMark/MHz scores. As the world’s first RISC-V processor chip, its score already deserves full appreciation. Although there is still a certain gap between the first place and the first place, domestic chips will continue to work hard and make continuous progress. Let us cheer for the future development of domestic chips!

End of text

1 Like