注册 登录
电子工程世界-论坛 返回首页 EEWORLD首页 频道 EE大学堂 下载中心 Datasheet 专题
xusiwei1236的个人空间 https://home.eeworld.com.cn/space-uid-1305707.html [收藏] [复制] [分享] [RSS]
日志

【先楫HPM6750测评】CoreMark跑分测试

已有 901 次阅读2022-5-14 22:35 |个人分类:国产MCU

【先楫HPM6750测评】CoreMark跑分测试

上篇帖子中,我们完成了Embedded Studio开发环境搭建,对Hello World阳历进行了编译和调试。

本篇将使用Embedded Studio编译CoreMark程序,并进行core_mark的跑分测试,最好对HPM6750的跑分结果和STM32H7的分数进行对比。

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性能的程序,类似Cinebench、CPU-Z之类的PC的CPU性能测试工具。

了解了CoreMark是什么之后,接下来我们尝试在HPM6750开发板上跑一下CoreMark,看看分数是多少。

在HPM6750上运行CoreMark

创建CoreMark项目

HPM SDK样例中已经附带了CoreMark,因此我们直接使用SDK中的coremark程序就行了。

首先,根据上篇帖子中的介绍,使用generate_project命令生成Embedded Studio的项目文件即可:

打开生成的hpm6750evkmini_build\segger_embedded_studio子目录,可以看到项目文件已经创建完成了:

双击coremark.emProject文件,默认会使用Embedded Studio打开项目(Embedded Studio安装成功的话):

可以看到,coremark主要的源文件只有6个,其他的文件都是和开发板硬件相关的。

编译CoreMark项目

点击Embedded Studio的【Build】→【Build coremark】菜单,即可触发编译,稍等一段实际后,编译完成,可以在Output窗口看到Build complete:

运行CoreMark跑分

开始运行之前,我们可以使用串口调试助手,或者其他类似的工具,连接开发板的串口设备。我这里使用的是MobaXterm,Putty或者sscom之类也是可以的。

串口配置是:

  • 波特率115200,
  • 8位数据位,
  • 1位停止位,
  • 无校验位。

点击Embedded Studio的【Debug】→【Go】菜单,即可运行coremark程序:

不需要单步执行,直接点绿色三角形图标(Continue Execution),让程序直接往后跑。

点击运行按钮后,立刻可以看到串口输出:

这段输出是由CoreMark程序一开始的portable_init调用board_init输出的,所以在测试刚刚开始就会输出。

运行一段实际后,可以看到测试结果的输出:

图中的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

参考连接

  1. HPM6750EVKMINI用户手册(网盘资料夹中的文件,没有独立链接);
  2. HPM6750的CPU核心是晶心科技的D45,具体信息详见晶心D45介绍页:javascript:;
  3. STM32H743产品介绍页:javascript:;
  4. STM32H745产品介绍页:javascript:;
  5. CoreMark项目首页:javascript:;

本文来自论坛,点击查看完整帖子内容。

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册

热门文章