Demo:coremark
Demo简介 (Introduction)
CoreMark 的主要目标是提供一个简单的方法来测试处理器核心功能,该Demo存放在SDK的 bouffalo_sdk/examples/coremark_v1.01 下。
关于处理器,更多信息请访问 www.eembc.org。
构建与运行
- 使用
make命令构建和运行基准测试。 - 运行结果会输出到
run1.log和run2.log文件中,性能结果在run1.log中。
交叉编译
- 对于交叉编译平台,需要调整
core_portme.mak、core_portme.h和可能的core_portme.c文件。 - 示例:创建一个新平台目录并复制默认配置文件,然后运行: make PORT_DIR=<platform>
Makefile 目标
run:默认目标,生成run1.log和run2.log。run1.log:性能参数运行结果。run2.log:验证参数运行结果。run3.log:生成配置文件的运行结果。compile:编译基准测试可执行文件。link:链接基准测试可执行文件。check:验证源文件的 MD5 值。clean:清理临时文件。
Make 标志
ITERATIONS:设置运行迭代次数,默认运行 10-100 秒。例如: make ITERATIONS=10 适用于模拟器、功耗测量等场景。XCFLAGS:添加编译器标志。例如: make XCFLAGS="-g -DMULTITHREAD=4 -DUSE_FORK=1"CORE_DEBUG:调试运行时使用。例如: make XCFLAGS="-DCORE_DEBUG=1"REBUILD:强制重新构建可执行文件。
无 make 系统 (Systems Without make)
- 手动编译所需文件并运行。例如:
gcc -O2 -o coremark.exe core_list_join.c core_main.c core_matrix.c core_state.c core_util.c simple/core_portme.c -DPERFORMANCE_RUN=1 -DITERATIONS=1000
./coremark.exe > run1.log
并行执行
- 使用
XCFLAGS=-DMULTITHREAD=N设置并行线程数。例如: make XCFLAGS="-DMULTITHREAD=4 -DUSE_PTHREAD"
可执行文件运行参数 (Run Parameters)
- CoreMark 可执行文件支持多个参数(如果
main()支持参数)。 - 参数包括种子值、迭代次数、数据缓冲区大小等。
运行规则
- 必须:
- 基准测试运行时间至少为 10 秒。
- 验证必须成功,种子值为
0,0,0x66和0x3415,0x3415,0x66。 - 如果使用配置文件优化,必须使用种子值
8,8,8生成配置文件。 - 所有源文件必须使用相同的编译标志。
- 允许:
- 修改迭代次数、工具链、内存分配方法等。
- 不允许:
- 修改除
core_portme*外的源文件。
- 修改除
示例输出:
Benchmark started, please make sure it runs for at least 10s.
Now PC=a0006152
2K performance run parameters for coremark.
CoreMark Size : 666
Total ticks : 11807
Total time (secs): 11
Iterations/Sec : 1000
Iterations : 11000
Compiler version : GCC10.2.0
Compiler flags : -O2
Memory location : STACK
seedcrc : 0xe9f5
[0]crclist : 0xe714
[0]crcmatrix : 0x1fd7
[0]crcstate : 0x8e3a
[0]crcfinal : 0x33ff
Correct operation validated. See readme.txt for run and reporting rules.
CoreMark 1.0 : 1000 / GCC10.2.0 -O2 / STACK