基于RT-Thread的RA8P1 CoreMark 6300分优化配置指南 | 技术集结

描述

目录

 

概述


 

资料来源


 

RT-Thread测评RA8P1 coremark


 

EEMBC Benchmark RA8P1


 

使用Titan Board挑战coremark 6300


 

为什么需要精细配置


 

总结


 

一、概述


 

本文旨在解析如何通过关键配置,将RA8P1(Cortex-M85内核)的CoreMark分数提升至官网登记的6300分。

内容涵盖编译器优化选项、链接时优化(LTO)、以及关键的硬件特性(如Cache和TCM)配置。

二、资料来源


 

RA8P1 1GHz Arm Cortex-M85和Ethos-U55 NPU

EEMBC CoreMark官网数据

ARM Cortex-M85产品

CM85简介

Performance-Scale

GCC/Clang LTO技术文档等:

ARM、GNU、SEGGER等网站搜索Link-Time Optimization"或“LTO"即可了解到相关技术知识

RT-thread Titan:

 https://club.rt-thread.org/ask/article/3387ad4472d12ead.html

https://club.rt-thread.org/ask/article/9367fd1549231fb8.html

https://github.com/RT-Thread-Studio/sdk-bsp-ra8p1-titan-board

https://rt-thread-studio.github.io/sdk-bsp-ra8p1-titan-board/latest/index_zh.html

https://gitee.com/RT-Thread-Studio-Mirror/sdk-bsp-ra8p1-titan-board

三、RT-Thread测评RA8P1 coremark


 

日志:CoreMark 1.0:4896.132056 / GCC13.2.1

RT-Thread

RT-Thread

四、EEMBC Benchmark RA8P1


 

Scores CoreMark 6,379.3

RT-Thread


 

五、使用Titan Board挑战coremark 6300


 

RT-Thread

5.1 e2studio项目

daplink转jlinkob,见资料链接

ra8p1_coremark_gcc

ra8t2_coremark_gcc

ra8t2_coremark_iarbuild

ra8t2_coremark_llvm

日志:CoreMark 1.0 : 4875.076173/ GCC13.2.1

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

[1431.913]收←◆Toolchain ver:13.2.120231009date:Mar 282026time45:54file:../src/hal_entry.cfunc:hal_entry,line:127hello world!MPU supports 8 regionsRegion 0: 0x68000000-0x67FFFFE0, AttrIndex=0Region 1: 0x80000000-0x7FFFFFE0, AttrIndex=0Region 2: 0x70000000-0x6FFFFFE0, AttrIndex=0Region 3: 0x220001E0-0x220001C0, AttrIndex=0Region 4: DisabledRegion 5: DisabledRegion 6: DisabledRegion 7: Disabledstart coremain!
[1448.359]收←◆2K performance run parameters for coremark.CoreMark Size    : 666Total ticks      : 16410Total time (secs): 16.410000Iterations/Sec   : 4875.076173Iterations       : 80000Compiler version : GCC13.2.120231009Compiler flags   : Please put compiler flags here (e.g. -ofast)Memory location  : STACKseedcrc          : 0xe9f5[0]crclist       : 0xe714[0]crcmatrix     : 0x1fd7[0]crcstate      : 0x8e3a[0]crcfinal      : 0xcc42Correct operation validated. See README.md for run and reporting rules.CoreMark 1.0 : 4875.076173 / GCC13.2.120231009 Please put compiler flags here (e.g. -ofast) / STACKterminated coremain!running!
 

上下、左右滑动查看

5.3 Keil项目

5.3.1 Optimization:-Omax

Keil MDK的 Project -> Options for Target -> C/C++ AC6 -> Optimization:-Omax

日志:CoreMark 1.0 : 4122.011542 Clang 20.0.0git

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

[2258.345]收←◆2K performance run parameters for coremark.CoreMark Size    : 666Total ticks      : 19408Total time(secs): 19.408000Iterations/Sec   : 4122.011542Iterations       : 80000Compiler version : GCCClang 20.0.0gitCompiler flags   : Please put compiler flags here(e.g. -ofast)Memory location  : STACKseedcrc          : 0xe9f5[0]crclist       : 0xe714[0]crcmatrix     : 0x1fd7[0]crcstate      : 0x8e3a[0]crcfinal      : 0xcc42Correct operation validated. See README.md for run and reporting rules.CoreMark 1.0 : 4122.011542 / GCCClang 20.0.0git Please put compiler flags here(e.g. -ofast) / STACKterminated coremain!running!

上下、左右滑动查看

5.3.2 Misc Controls:-Omax

Keil MDK的 Project -> Options for Target -> C/C++ AC6 -> Misc Controls:-Omax

Keil MDK的 Project -> Options for Target -> C/C++ AC6 -> **Misc Controls: --via=./via/rasc_armasm.via\via\rasc_armclang.via -Os -> -Omax

CoreMark 1.0 : 6163.803066 Clang 20.0.0git

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

[2217.808]收←◆2K performance run parameters for coremark.CoreMark Size    : 666Total ticks      : 12979Total time(secs): 12.979000Iterations/Sec   : 6163.803066Iterations       : 80000Compiler version : GCCClang 20.0.0gitCompiler flags   : Please put compiler flags here(e.g. -ofast)Memory location  : STACKseedcrc          : 0xe9f5[0]crclist       : 0xe714[0]crcmatrix     : 0x1fd7[0]crcstate      : 0x8e3a[0]crcfinal      : 0xcc42Correct operation validated. See README.md for run and reporting rules.CoreMark 1.0 : 6163.803066 / GCCClang 20.0.0git Please put compiler flags here(e.g. -ofast) / STACKterminated coremain!running!

上下、左右滑动查看

六、为什么需要精细配置


 

RA8P1搭载了ARM最新的Cortex-M85内核,虽然其本身具备强大的处理能力,但要发挥其全部性能潜力,尤其是达到CoreMark 6300分这样的高水平,单纯的默认配置是不够的。CoreMark是一个高度依赖编译器优化和内存访问速度的基准测试程序。为了达到官方登记的性能数据,我们需要进行“榨干式”的配置,让编译器生成最高效的指令,并让CPU能够以最快速度访问数据和指令。

RT-Thread

七、总结


 

RA8P1 (Cortex-M85) 达到6300 CoreMark分数并非偶然,它是高性能硬件与极致软件优化的结合。

关键优化手段优先级:

1.编译器优化:必须使用最高级别优化-Omax,并启用浮点、向量化和循环优化选项。

2.链接时优化 (LTO):对于跨文件的性能敏感代码,LTO是必不可少的。

3.硬件资源利用:Dcache+sram 和 TCM 的速度没有明显的差异,但TCM直接访问,没有cache缓存相关问题。

理解编译器选项和硬件架构是进行深度优化的基础。不同的应用场景可能需要不同的优化策略,但上述配置方案为榨干Cortex-M85性能提供了一个清晰的模板。

 

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分