当前位置: 首页 > java >正文

MH2103系列coremark1.0跑分数据和优化,及基于arm2d的优化应用

CoreMark 1.0 介绍
CoreMark 是由 EEMBC(Embedded Microprocessor Benchmark Consortium)组织于 2009 年推出的一款用于衡量嵌入式系统 CPU 或 MCU 性能的标准基准测试工具。它旨在替代陈旧的 Dhrystone 标准(Dhrystone 容易受到各种libc不同库的影响),成为工业界衡量处理器性能的新标准。
测试内容:
CoreMark 的代码使用 C 语言编写,包含以下几种算法:

  • 列表操作:用于测试处理器的内存访问和数据结构操作能力。
  • 矩阵运算:测试处理器的数学计算能力。
  • 状态机:评估处理器在复杂逻辑控制中的表现。
  • CRC 校验:用于验证数据完整性。
    这些算法综合评估处理器在不同场景下的性能。
    性能衡量:
  • CoreMark 的得分越高,表示处理器的性能越好。
  • 它的设计方式尽量减少了内存对测试结果的影响,从而更准确地反映处理器本身的性能。
    适用性:
    CoreMark 适用于各种嵌入式系统和微控制器,广泛用于硬件设计、性能评估和优化。
    我们以兆讯MH2103为例,采用CoreMark 1.0来评估其性能:
    有关MH2103为可以参考文章:MH2103芯片资源介绍
    第一次采用MDK5,AC5编译器编译,得出成绩是:2.56CoreMark/MHz(CoreMark1.0)
    这个成绩视乎并不理想,AC5已经在2017年被ARM官方抛弃(停止维护),转而支持AC6,那我们也用AC编译器来跑一跑看看效果如何?
    测试工程切换到AC6编译器,同样的代码,AC6开优化-Ofast+LTO,工程编译选项配置如下:
    在这里插入图片描述
    看看结果:
    在这里插入图片描述
    cormark1.0 跑分635.93,换算一下约为635.93/216=2.94CoreMark/MHz(CoreMark1.0),是不是提升非常明显?
    参考arm官方的理想数据(不考虑Flash读写延迟,纯MCU内核运行),虽然还有一点差距,但是考虑到时间运行代码是在Flash内部,这个成绩已经非常不错了。
    在这里插入图片描述

但是对比两次运行结果,AC6相较于AC5编译器,成绩提升约15%,还是非常明显,所以建议后续开发的时候,切换到AC6编译器来,以最大化的发挥该息芯片的性能。

兆讯MCU支持ARM-2D


视频为arm2d运行在MH2103的实际效果,320x240的分辨率,各种圆弧绘制,效果,图像旋转等都有较好的效果,充分说明了这颗高主频(216M,cortex-M3内核)的芯片在现实应用方面的强劲能力。

http://www.xdnf.cn/news/991.html

相关文章:

  • 【c语言】深度理解指针4——sizeof和strlen
  • 你学会了些什么220120?--网页性能指标检测
  • docker数据目录迁移步骤
  • CopyOnWriteArrayList核心源码解析
  • 历史榜单的存储策略
  • 【系统架构设计师】信息安全的概念
  • Linux之信号
  • 【DataScript】标准数据格式化-国民经济行业分类(GB/T 4754-2017)
  • NLP高频面试题(四十八)大语言模型中的思维链(CoT)技术详解
  • Kafka 详细解读
  • 合同管理Contract Management
  • PowerBI工具提示-将表悬浮在数据上方
  • 【英语语法】词法---数词
  • 服务器数据迁移指南
  • docker基本命令1
  • 21-算法打卡-哈希表-三数之和-leetcode(15)-第二十一天
  • 鸿蒙系统ArkTs代码复习1
  • 多线程使用——线程池
  • 基于opencv和PaddleOCR识别身份证信息
  • RIP动态路由,实现两台PC互通三个路由器,两台电脑
  • 成功案例|TRAP1 与 CAMSAP3:早期子宫内膜癌预后的新 “风向标”
  • Federated Feature Augmentation and Alignment
  • Linux卸载删除gitlab
  • Vmware esxi 给现有磁盘增加空间后并扩展系统里磁盘空间
  • 文件内容课堂总结
  • Webpack 插件开发
  • MYDB仿MySQL手写数据库项目总结
  • UML 状态图:解锁电子图书馆管理系统的高效设计
  • 经典文献阅读之--KISS-Matcher(快速且稳健的点云注册)
  • C语言中联合体(Union)和结构体(Struct)的嵌套用法