CoreMark 介绍
CoreMark 是由 EEMBC(嵌入式微处理器基准委员会)维护的一个轻量、可移植的基准套件,用于评估处理器的整型性能和基本控制/算术工作负载。CoreMark 设计目标是为嵌入式和通用 CPU 提供一个可重复、可比较的基线测试,侧重于核心算法性能(整数运算、控制流、哈希、循环与内存访问模式),而不是系统级或浮点性能。
本次评测的是搭载 Amlogic S905X4(4×Cortex‑A55, ARMv8-A, 64-bit, 2.0GHz)的睿莓1 板的 CoreMark 表现。
CoreMark 是什么
- 目的:测量 CPU 在常见整型/控制密集型任务上的原始计算能力。
- 范围:单核/多核(使用 multicore harness)的整数工作负载;不包含浮点或 GPU 测试。
- 可移植性:代码小、易移植,提供可配置的端口层(porting layer),便于在裸机或不同操作系统下运行。
CoreMark 原理
CoreMark 由一组小型核心内核组成,典型的工作包含:链表操作、矩阵乘法样例、状态机/控制分支和 CRC 校验(哈希/校验相关)。测试通过在固定的基准循环中运行这些内核若干次(iterations),测量执行这些迭代所需的总时间,然后计算每秒完成的迭代数。
- 可重复:测试使用确定性输入(seed)以确保可重复性。
- 轻量且综合:虽然每个子任务都较小,但组合能反映分支预测、缓存访问和整数算术的综合影响。
- 可扩展:支持单线程模式和基于官方 multicore harness 的多线程测试,用于测量多核总体吞吐量。
评分标准
CoreMark 的原始输出以 "iterations" 和 "total time" 为基础,常见的报告项包括:
- Iterations/s(迭代/秒):CoreMark 的主要分数,计算方式为 iterations ÷ 总耗时(秒)。这通常直接作为报告的 CoreMark 分数(higher is better)。
- CoreMark/MHz:将 CoreMark 分数除以处理器主频(MHz),用于频率归一化后的比较(当比较不同主频的平台时有帮助)。
得分示例:
- 如果在 10 秒内完成 2000 次迭代,则 iterations/s = 200 次/秒;报告的 CoreMark 值可视为 200(或按项目约定直接以 iterations/s 报告)。
下载Coremark
终端运行命令
git clone https://github.com/eembc/coremark.git
下载coremark源代码
编译Coremark
进入coremark目录
cd coremark
编译
make
运行Coremark
编译完成后,查看当前目录下,有一个coremark.exe,运行它
./coremark.exe
稍等一会
S905X4单核得分 5624

总结
本文简要介绍了 CoreMark 基准的定位与测试内容(面向整数与控制流的核心算法集合),说明其通过多次迭代衡量 CPU 原始整数吞吐并可归一化为 CoreMark/MHz;随后在睿莓1使用 make 编译生成 coremark.exe,并运行得到单核成绩 5624
|