手把手教你用CoreMark给自家RISC-V开发板跑个分(附玄铁C910、U74实测数据)
2026/6/14 10:20:51 网站建设 项目流程

实战指南:在RISC-V开发板上运行CoreMark性能测试

最近两年RISC-V架构的处理器性能突飞猛进,不少开发者都好奇自己手上的开发板到底能达到什么水平。CoreMark作为嵌入式领域公认的性能基准测试工具,能帮助我们客观评估处理器的计算能力。不同于网上现成的跑分数据,本文将带你从零开始,在自己的RISC-V开发板上实际运行CoreMark测试,获取第一手性能数据。

1. 准备工作与环境搭建

1.1 硬件准备

首先需要确认你的RISC-V开发板型号及处理器信息。目前市面上主流的RISC-V开发板包括:

  • 昉·星光2(搭载StarFive JH7110 SoC,四核U74内核)
  • 荔枝派4A(搭载玄铁C910四核处理器)
  • VisionFive 2(同样采用JH7110 SoC)
  • SiFive HiFive Unmatched(面向高性能开发)

提示:在开始测试前,请确保开发板已正确连接电源和串口终端,并能正常启动Linux系统。

1.2 软件环境配置

CoreMark测试需要交叉编译环境。以下是针对不同开发板的工具链选择建议:

开发板型号推荐工具链下载地址
昉·星光2/JH7110riscv64-unknown-linux-gnu官方GitHub仓库提供预编译版本
荔枝派4A/C910riscv64-linux-gnu芯片厂商提供的定制工具链
通用RISC-V板卡riscv64-elf-gccSiFive或芯片厂商提供的工具链

安装基础依赖(以Ubuntu系统为例):

sudo apt update sudo apt install git build-essential device-tree-compiler

2. 获取与编译CoreMark

2.1 下载CoreMark源码

CoreMark官方仓库位于EEMBC的GitHub:

git clone https://github.com/eembc/coremark.git cd coremark

2.2 配置编译参数

根据你的开发板架构修改Makefile。以下是常见RISC-V处理器的优化参数参考:

  • 玄铁C910(荔枝派4A):

    CFLAGS = -O3 -march=rv64gc -mabi=lp64d -mtune=c910
  • U74核心(昉·星光2):

    CFLAGS = -O3 -march=rv64gc -mabi=lp64d -mtune=sifive-7-series

2.3 交叉编译CoreMark

使用正确的工具链前缀进行编译:

make PORT_DIR=linux64 XCFLAGS="-DMULTITHREAD=4 -DUSE_PTHREAD" \ CC=riscv64-unknown-linux-gnu-gcc

注意:MULTITHREAD参数应与你的CPU核心数一致,玄铁C910和JH7110都是四核处理器。

3. 在开发板上运行测试

3.1 传输可执行文件

将编译生成的coremark.exe传输到开发板:

scp coremark.exe user@your-board-ip:~/

3.2 执行基准测试

通过串口或SSH登录开发板,运行测试:

chmod +x coremark.exe ./coremark.exe

典型输出示例(玄铁C910在1.85GHz下的结果):

2K performance run parameters for coremark. CoreMark 1.0 : 13006 / GCC11.2.0 -O3 -march=rv64gc -mabi=lp64d -mtune=c910

3.3 计算CoreMark/MHz

性能指标通常标准化为每MHz的得分:

CoreMark/MHz = 总得分 / 运行频率(MHz)

以玄铁C910为例:

13006 / 1850 ≈ 7.03 CoreMark/MHz

4. 结果分析与性能对比

4.1 常见RISC-V处理器表现

根据实测数据,主流RISC-V芯片的CoreMark表现如下:

处理器型号频率(MHz)CoreMark得分CoreMark/MHz测试平台
玄铁C9101850130067.03荔枝派4A
StarFive U74150076355.09昉·星光2
玄铁C906100034003.40全志D1

4.2 与ARM架构对比

作为参考,以下是常见ARM处理器的表现:

ARM核心CoreMark/MHz对比RISC-V
Cortex-A726.20低于玄铁C910
Cortex-A767.41与玄铁C910相当
Cortex-A553.76低于StarFive U74

4.3 性能优化建议

如果测试结果低于预期,可以尝试以下优化措施:

  1. 编译器优化

    • 尝试不同版本的GCC(如GCC 12)
    • 测试Clang编译器表现
    • 调整-O3优化级别
  2. 系统配置

    # 设置CPU性能模式 echo performance | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor # 关闭后台服务 sudo systemctl stop unnecessary-services
  3. 散热管理

    • 确保良好的散热条件
    • 监控运行时的CPU温度
    watch -n 1 cat /sys/class/thermal/thermal_zone*/temp

5. 常见问题排查

5.1 编译错误解决

问题:缺少头文件

fatal error: stdio.h: No such file or directory

解决方案: 安装目标板的标准库:

sudo apt install gcc-riscv64-unknown-linux-gnu

5.2 运行时错误

问题:非法指令错误

Illegal instruction (core dumped)

解决方案: 确认-march参数与CPU架构匹配,玄铁C910需要rv64gc指令集支持。

5.3 性能异常

问题:得分远低于预期可能原因:

  • CPU频率被限制
  • 散热不足导致降频
  • 后台进程占用资源

检查实际运行频率:

watch -n 1 cat /proc/cpuinfo | grep "MHz"

6. 高级测试技巧

6.1 多线程性能分析

CoreMark支持多线程测试,可以评估处理器的并行能力。修改编译参数:

XCFLAGS = -DMULTITHREAD=4 -DUSE_PTHREAD

运行后观察各核心利用率:

top -H -p $(pgrep coremark)

6.2 不同优化级别对比

测试不同编译器优化级别的影响:

优化级别玄铁C910得分代码大小(KB)
-O0420048
-O1980036
-O21250032
-O31300630
-Os1100028

6.3 长期稳定性测试

运行连续测试检查处理器稳定性:

for i in {1..10}; do ./coremark.exe; done

观察多次运行的得分波动情况,正常应在±2%范围内。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询