快消息!【嵌入式】不服?跑个分看看!——Coremark篇

2023-06-05 06:34:53 来源:面包芯语 分享到:

【说在前面的话】

简单来说,Coremark是一个专门测量嵌入式MCU(或者CPU)性能的跑分软件,用来替代已经过时且充满争议的Dhrystone跑分。Coremark包含了一系列算法:列表操作(查找和排序)、常用的矩阵运算、状态机以及CRC——这样做的目的据说是为了克服Dhrystone过于依赖libc库的缺点。官方甚至专门在网页上开辟了一个段落,细数Coremark相对Dhrysone做了哪些改进,感兴趣的小伙伴可以点击去看一看:

https://www.eembc.org/coremark/


(资料图)

这里记住结论就行:Dhrystone低级、过时、踩一脚;Coremark高级拉一把!

哎,巧了不是。如果你使用的是Cortex-M处理器,并且习惯了在MDK环境下耕耘,只要借助 perf_counter 的帮助,在RTE里简单的勾选几下就可以迅速的在任意Cortex-M处理器中部署 Coremark。

首先,关于MDK下实现通用的printf功能,请参考文章《【震惊!】MDK下99%用户都不知道的万能printf方法》,这里就不再赘述。

从 v2.0.0开始perf_counter 内置了 Coremark,并针对Cortex-M处理器完成了几乎所有的移植工作,这意味着你只需要在RTE中勾选对应的模块,即可完成对Coremark的部署(如下图所示):

可以看到,这里的跑分结果是4.367429。

不要奢望 -O0 能跑出多高的结果。但如果你的项目从来都只用 -O0 那么跑Coremark时也一定要用 -O0 ——因为这反应了你使用时候的真实状况。

很多芯片公司和Arm一样都会用最好的编译器在最高的速度优化下跑Coremark,这意味着,我们通常可以在 Arm Compiler 6下使用 -Omax跑出当前硬件平台的最佳结果。

很多小伙伴可能不知道如何在 MDK 环境下使用 -Omax,因为Optimisation下拉列表中根本没有 -Omax。-Omax 是一个比 -Ofast要更上一个台阶的优化等级(用过都说好),可以说是MDK的一个隐藏技巧:

需要强调的是,一旦在 Misc Controls文本框中添加了 -Omax,无论你在 Optimization 下拉列表中选择了哪个优化等级,都会被 -Omax 覆盖掉。为了避免误导后来人,推荐在这种情况下在该列表中选择。

其实用脚指头想也知道:Coremark的跑分会受到存储器访问速度的影响。很多大公司会将程序保存在0 wait state 的 RAM中来跑 Coremark,以求获得最佳的结果。

我猜很多小伙伴看到这里可能就炸了:我们平时都是在Flash里跑代码,你拿RAM跑出来的数据糊弄我?这不是欺负老实人么?

实际并非如此,原因如下:

1)对很多大公司来说,他要给客户提供理想状况下所能达到的最高评分,方便用户选型的时候了解芯片的能力上限(如果上限都达不到就别勉强了)

2)很多芯片会专门提供用于运行代码的 PRAM、SRAM或者 TCM(Tightly Couple Memory),因此,只要合理安排程序的存储器布局,在核心应用和算法上,的确可以跑出官方给出的最大性能

从另外一个角度来说,以Cortex-M处理器为例,通过Coremark,对比Arm提供的最高跑分,我们可以很容易的评估当前芯片的 Flash速度是否拖累了处理器——从跑分的差异上判断拖累的程度。比如,很多时候,使用片内Flash跑 Coremark、XIP(QSPI)连接的片外Flash 跑Coremark 可以看出巨大的跑分差异,给了我们一个定量判断性能损失的参考手段——注意,只是参考,不是绝对的。

此外,RAM的速度也会对Coremark产生很大的影响,简单来说,0 wait state的 RAM,1~2个wait state 的 RAM以及 SDRAM 跑Coremark的结果是截然不同的——这同样给了我们一个直观感受不同RAM性能差异的参考手段。

有没有cache,有多大的cache,以及cache覆盖ROM还是RAM对Coremark结果的影响是巨大的。比如,哪怕你用 XIP 来跑 Coremark(或者用SDRAM来存储数据),只要你Cache到位,其跑分几乎和理想状况相差无几。

以上内容用脚趾都能想出来。接下来给大家说一个由cache引起的反直觉的现象:

前面我们说过,如果你想跑出最佳的跑分,就应该使用编译器的最高性能优化,对Cortex-M和Arm Compiler 6来说就是 -Omax + Link Time Optimisation。

有些芯片虽然为Flash提供了一个专门的Cache,但由于其尺寸有限(通常是为了降低功耗或者芯片面积),会出现 -Omax + Link Time Optimisation优化下跑分反而不如 -Oz 或者 -Os 的情况。

这是Coremark为了跑出有效跑分而在算法中做出的硬性规定,如果你的芯片频率过高,则很可能会出现类似如下的提示:

观察Total time (secs)可以知道Coremark实际运行了多少秒。

重新编译,调试:

如果你喜欢我的思维、觉得我的文章对你有所启发,

请务必 “点赞、收藏、转发” 三连,这对我很重要!谢谢!

欢迎订阅 裸机思维

标签:

快消息!【嵌入式】不服?跑个分看看!——Coremark篇

来源:面包芯语 2023-06-05 06:34:53

乐山市金口河区发生高位山体垮塌造成19人遇难

来源:川观新闻 2023-06-05 06:29:14

中超积分榜:海港领跑三镇第8 大连人倒数第一-滚动

来源:射门中国 2023-06-05 04:59:42

【新要闻】Wi-Fi 7国内标准即将落地! 实测网速达4.3Gbps

来源:IT之家 2023-06-05 04:45:13

青春期电影里面的歌_有谁知道电影《青春期》1,2两部中所有的插曲和主题曲

来源:互联网 2023-06-05 01:56:28

消息!特丁基对苯二酚对身体有什么危害_特丁基对苯二酚的危害

来源:互联网 2023-06-05 01:47:53

上海夜生活节发布100个夜生活好去处,一起打卡

来源:上海发布 2023-06-04 23:42:13

当前速讯:懒财宝最新消息,2023年已有投资者实行退付,资金很快可到账

来源:互联网 2023-06-04 23:45:22

看热讯:IMF首席经济学家:“去风险化”或损害全球经济增长

来源:参考消息 2023-06-04 22:22:56

每日热门:炸锅!罗斯柴尔德家族“减持”英伟达

来源:凤凰网 2023-06-04 22:14:42

当前关注:生殖功能_关于生殖功能介绍

来源:十分生活网 2023-06-04 21:20:58

“欧佩克+”召开会议 市场预测主要产油国将再减产

来源:第一财经 2023-06-04 20:57:50

还有我的表妹-速看料

来源:互联网 2023-06-04 19:59:35

太保健康聘任尚教研为总经理_世界简讯

来源:上海证券报·中国证券网 2023-06-04 20:02:18

马上截止!这笔钱你退了吗?|焦点

来源:时间新闻 2023-06-04 18:49:51

青烟慧众新商盟登录_青烟什么什么的成语|世界速看

来源:互联网 2023-06-04 19:03:26

中国星辰 | 眼有星辰大海 胸怀赤胆忠心_当前热闻

来源:央视网 2023-06-04 18:06:01

当前报道:韩国最大在野党集会反对日本核污染水排海计划

来源:新华网 2023-06-04 18:10:11

部分与部份用法的例子_部分与部份_天天时讯

来源:互联网 2023-06-04 17:03:40

四川乐山金口河发生高位山体塌方已造成14人遇难

来源:央视新闻客户端 2023-06-04 16:56:11

世界快消息!日元兑换人民币汇率(日元)

来源:华南科技网 2023-06-04 16:29:26

六朝古都是哪六朝古都_六朝古都是哪六朝

来源:互联网 2023-06-04 15:55:10

环球观察:法网综合:斯维亚特克轻松晋级 中国单打军团止步32强

来源:新华网 2023-06-04 15:43:05

台风“玛娃”已造成日本2死35伤,多地停电断水|环球快看点

来源:央视新闻客户端 2023-06-04 14:52:13

世界信息:国内已发生7起传感器失火事件!福特将召回近14万辆林肯MKC

来源:快科技 2023-06-04 14:52:14

火炬木小组第四季在线观看_火炬木小组第四季|每日聚焦

来源:互联网 2023-06-04 14:10:25

305项活动深入高校、社区,2023社会科学普及月启动 世界快报

来源:河北日报 2023-06-04 13:07:18

灵宝市顺鑫矿业有限责任公司_关于灵宝市顺鑫矿业有限责任公司介绍 全球信息

来源:互联网 2023-06-04 13:11:06

【天天热闻】非法采矿案高发频发,一些模糊地带仍需明确

来源:第一财经 2023-06-04 12:19:53

世界快报:关于咏雪的诗句20句

来源:互联网 2023-06-04 12:10:30

Copyright   2015-2022 亚太知识产权网 版权所有  备案号:沪ICP备2020036824号-11   联系邮箱: 562 66 29@qq.com