【先楫HPM6750测评】CoreMark跑分测试
[复制链接]
本帖最后由 xusiwei1236 于 2022-5-14 22:51 编辑
【先楫HPM6750测评】CoreMark跑分测试
上篇帖子中,我们完成了Embedded Studio开发环境搭建,对Hello World示例进行了编译和调试。
本篇将使用Embedded Studio编译CoreMark程序,并进行coremark跑分测试,同时对HPM6750的跑分结果和STM32部分型号的跑分结果进行对比。
CoreMark简介
什么是CoreMark?
来自CoreMark首页的解释是:
CoreMark is a simple, yet sophisticated benchmark that is designed specifically to test the functionality of a processor core. Running CoreMark produces a single-number score allowing users to make quick comparisons between processors.
翻译一下就是:
CoreMark是一个简单而又精密的基准测试程序,是专门为测试处理器核功能而设计的。运行CoreMark会产生一个“单个数字”的分数,(从而)允许用户在(不同)CPU之间进行快速比较。
简单来说,就是一个测试CPU性能的程序,类似PC上的Cinebench、CPU-Z之类的CPU性能测试工具。
了解了CoreMark是什么之后,接下来我们尝试在HPM6750开发板上跑一下CoreMark,看看分数是多少。
在HPM6750上运行CoreMark
创建CoreMark项目
HPM SDK样例中已经附带了CoreMark,因此我们直接使用SDK中的coremark程序就行了。
首先,根据上篇帖子中的介绍,使用generate_project命令生成Embedded Studio的项目:
generate_project命令执行完毕后,打开生成的hpm6750evkmini_build\segger_embedded_studio子目录,可以看到项目文件已经创建完成了:
双击coremark.emProject文件,默认会使用Embedded Studio打开项目(Embedded Studio安装成功的话):
可以看到,coremark主要的源文件只有6个.c文件。
编译CoreMark项目
点击Embedded Studio的【Build】→【Build coremark】菜单,即可触发编译;稍等一段实际后,编译完成,可以在Output窗口看到Build complete:
运行CoreMark跑分
开始运行之前,我们可以使用串口调试助手(或者其他类似的工具),连接开发板的串口设备。我这里使用的是MobaXterm,Putty或者sscom之类也是可以的。
串口配置是:
- 波特率115200,
- 8位数据位,
- 1位停止位,
- 无校验位。
点击Embedded Studio的【Debug】→【Go】菜单,即可运行coremark程序:
不需要单步执行,直接点绿色三角形图标(Continue Execution),让程序直接运行。
点击运行按钮后,立刻可以看到串口输出:
这段输出是由CoreMark程序启动时调用board_init输出的,所以在测试刚刚开始就会输出。
运行一段时间后(10秒左右),可以看到跑分结果输出了:
图中的HPMicro字符画是测试刚开始时输出的,下面的部分是最终输出。
最总跑分:4698.857421
细心的朋友可能会发现,这里的分数并不像新闻里面报道的9220分。这是为什么呢?
经过简单的分析coremark项目的代码,不难得出答案。原来,示例程序里面的coremark项目,只是用了HPM6750的一个CPU核,而HPM6750是有两个同样的CPU核的。
那么,双核同时运行CoreMark测试,分数会翻倍吗?会是官方公布的9220分吗?这里我们暂且保留悬念,后面的帖子中我们将进行双核CoreMark实验。
不同存储模式的CoreMark对比
前面的跑分结果是使用-t flash_xip生成的项目得到的,接下来我们尝试使用不同-t选项进行10轮测试:
可以看到,release参数的执行平均分数最高,单核达到了4701.68分。
观察generate_project命令的输出,可以发现不同-t参数,项目使用的链接脚本不同:
通过对比链接脚本的内容,我们可以知道,不同链接脚本使用的存储配置不同。上一篇帖子的最后,也有一个表格做了总结,这里再次贴出来:
调试版 |
发布版(更小) |
程序代码 |
运行内存 |
debug |
release |
片内SRAM |
片内SRAM |
flash_xip |
flash_xip_release |
FLASH芯片 |
片内SRAM |
flash_sdram_xip |
flash_sdram_xip_release |
FLASH芯片 |
DRAM芯片 |
和其他芯片的CoreMark跑分对比
CoreMark跑分榜
CoreMark首页的Scores页面中,有一些已经测试过的CPU、MCU的跑分记录。
CoreMark跑分查询
我们可以在Processor Name Match框中输入STM32,点击Apply进行过滤。过滤出结果后,我们可以按照分数从高到底排序:
可以看到,STM32H745的跑分是3223.82分,STM32H743的跑分是2020.55分。相比HPM6750单个CPU核的4698.86分差的都比较多。
不过这里查询到的数据都比较老了,STM32H7系列产品也在不断更新。因此,我从STM官网上找来了关于STM32H743和STM32H745的CoreMark跑分,以及HPM6750官方公布跑分数据,对比如下:
|
STM32H743 |
STM32H745 |
HPM6750 |
处理器架构 |
ARM Cortex-M7 |
ARM Cortex-M7+M4 |
双32位RISC-V核 |
CPU最高频率(MHz) |
480 |
480+240 |
816+816 |
CoreMark跑分(官方数据) |
2424 |
3224 |
9220 |
参考连接
- HPM6750EVKMINI用户手册(网盘资料夹中的文件,没有独立链接);
- HPM6750的CPU核心是晶心科技的D45,具体信息详见晶心D45介绍页:http://www.andestech.com/en/products-solutions/andescore-processors/riscv-d45/
- STM32H743产品介绍页:https://www.st.com/zh/microcontrollers-microprocessors/stm32h743-753.html
- STM32H745产品介绍页:https://www.st.com/zh/microcontrollers-microprocessors/stm32h745-755.html
- CoreMark项目首页:https://www.eembc.org/coremark/
|