你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

[Coremark跑分评测] STM32 跑分系列初步小结

[复制链接]
wolfgang 发布时间:2016-12-5 21:03
本帖最后由 wolfgang2015 于 2018-1-12 10:33 编辑
2 o8 z6 B6 a/ }0 [) A# X1 u  g  x2 @2 S( u- ~9 k% H8 k' K
  年末了,工作的事情终于告一段落,这几天有空了,又刚好碰到F769I-Disco系列的评测活动,发现即便同一芯片和板子跑出来的Coremark 分值也参差不齐,有高有低。周末把自己宅在家里一天,用自己的环境和手边的几个Nucleo板子做几个简单的跑分测试。然后通过自己的跑分同其他网友的跑分以及官方的跑分做对比、参考看看是否有什么问题造成了各自跑分不同
% [, J4 T5 S) l' H8 @* ^6 c# [0 U
5 A8 O+ R4 _: J. i* g

7 N& L% K6 E$ S* R" f直道目前,ST推出了超低功耗、主流型、超高性能型几系列的芯片2 Z# P2 T0 Q% a
001.jpg / ~$ h) T: Y8 I' \$ Y
( V0 U: a6 F2 \7 R9 |

! W, j7 }8 U9 H同时官方也给除了自己的Coremark" |0 x6 J( K2 ^9 r- f/ ?
F0/F1/F3主流系列的Coremark 分值如下图:0 K1 U4 b, a0 z7 K; Q3 K
3 _. a3 B: ]2 E5 x: t/ ?3 Z
002.jpg
+ U- T, ?* `: _4 s6 q
6 B! o- D" X/ `0 c) h- y
1 z% _$ F' f' F+ x" K" u' ~, F/ n0 Z
L0/L1/L3超低功耗系列的Coremark 分值如下图:
# |  X+ N2 G% n) G% N; N 003.jpg
9 q8 i- {0 x$ P# ~0 F* G  R
0 ~+ G4 H3 W0 l; Z

6 f% z" Y) z  p8 e* y1 w( ]- OF2/F4/F7超高性能系列的Coremark 分值如下图:
! k3 e& N* o( d# N9 N 004.jpg $ R: F2 j: O' U( w0 s/ U3 A* `" o
% h$ n7 L  G  r! |
" K0 y* `/ l& r4 W  {* e; ?, r/ T
我这里板卡有限,有的还在做其他的开发试验这里就先做了几个Nucleo开发板的评测:
, C. }% `0 w; ?% `' ?8 @0 o
& g  p8 J# Z' q2 }, W7 n, }: q

) i1 o6 \' y' ?Nucleo-F030R8  CoreMark 1.0 : 76.456107 参考官方跑分:106(同主频)跑分对比:72.13%
6 X/ V( J% `9 H( f3 w# I. L  VNucleo-F401RE  CoreMark 1.0 : 217.959895 参考官方跑分:604(180MHz)不具对比性
& i+ C# N6 R  f, w5 {& Y1 rNucleo-F767ZI  CoreMark 1.0 : 901.117386 参考官方跑分:1082(同主频) 跑分对比:83.28%  
, `  Q1 f% k) O5 u( K
Nucleo-L073RZ  CoreMark 1.0 : 55.522653 参考官方跑分:75(同主频) 跑分对比:74.03%1 `; j4 z# \" K  g0 R: N4 S; x
Nucleo-L432KC  CoreMark 1.0 : 205.581539 参考官方跑分:273(同主频) 跑分对比:75.30%  - e; [' r) I; @' D
Nucleo-F413ZH  CoreMark 1.0 :  259.197180 参考官方跑分:604(180MHz)不具对比性6 k; e: ]0 M+ j# b3 }% }

; N6 o* ^* ~& R% M1 f# V7 d基本上均为官方跑分的72%~75% ,性能相差近1/4。F7性能最接近在83.28左右比其他的跑分高10%左右,,不知道这是不是得益于芯片的性能提升和大缓存技术,平滑了编译器优化等级带来的影响。
3 Q: y; P+ u$ {, B) [
+ H& j% W+ s4 E+ H! @9 \

7 W3 F& d# B6 d& p9 Y( e% a排除了验证方法的差异后,其实可以得出这样的一个结论:, L( f% t3 |" A+ R& o1 a
: ]" k/ K+ [2 T8 h( X4 G
    评测跑分的工具——GCC编译器存在着差异' t5 o% X! \; D7 l0 d7 G' v

7 F: P1 k3 {! s6 m
; p" _6 ^0 X. q9 Z  \3 E
跑分对编译器的优化等级 -O 参数有严重倚赖,各位所使用的ARM编译工具属于以下三大体系中的一种
/ n3 a5 ~6 d( W/ ~% i, M) x1、ARM RealView (armcc)     其代表工具是:Keil MDK- }/ {9 R5 n# `" W/ X
    优化等级能到 -O3; p# v- B, }7 D$ s, ]6 {; y
- ]' U( S0 Z  F- o1 D: Y  h
2、IAR EWARM (iccarm)       其代表工具为:IAR Embedded Workbench
' V$ {9 l  j2 y+ K3 a# ]    优化等级能到 -Ohs    (height speed)+ q# r* K5 x$ O3 [8 }' n; u

; ^6 e- u. u- |4 b3、GNU Compiler Collection (gcc) 代表工具就是:Eclipse + Ac6  /  Linux + arm-none-eabi) p$ \! N2 g/ M, H0 t
    优化等级能到 -O3( [, Z( l7 t  _& f# t8 P
: P% a# X* f/ S. |# K
   我的评测环境刚好就是第三种,如果参考网友与官方接近的跑分所使用的工具为IAR Embedded Workbench,那么可以简单的推测出,在IAR -Ohs 编译环境下,能将ST芯片的性能发挥到最大。
GNU Compiler Collection -O3的优化能达到到 IAR -Ohs的3/4左右的分值;跟IAR 在-O3 的优化能力差不多;ARM RealView -O3 的优化能力也仅有-Ohs 3/4 左右。   但不过IAR的-Ohs优化牺牲了些什么,从这个评测中还无法得知。只能希望对编译器有更深入了解的网友来解答,或者通过其他的评测内容来对各种编译器的性能作一个数据说明。5 @% D% R+ D: d9 m/ g1 R" O

! Y" R5 \8 L3 ]2 d: S  三种编译工具,是由不同的编译厂家/爱好者制作,其编译器编译出来的代码大小、执行效率是不同,即便在同一款主板上执行,执行的结果也是不样的。
& I* v4 R  T3 F7 |. c1 [
/ f4 U; t: P/ s0 O& L* o6 ^
  跑分只是一个我们了解编译器、了解主板芯片性能的一个直观表现,这个结果可为我们选择编译器提供了参考和借鉴。在什么样的环境下用什么样的编译器提供一些直观体验。
7 p5 M% @3 g, i- \1 E3 g3 ?1 L+ \# @+ |& d9 A) M- V6 P9 o

- I. x" ~6 o, f& B& K5 B9 J  功欲善其事,必先利其器。评测的结果测得了对开发板的了解,对开发工具的了解,还是很值得的。希望大家能利用自己手边的板子加入到相关评测活动中,能从侧面对ST芯片和主板有深入一点的了解,也能对工具了解深入一步。: i" K5 {: [  d/ }
% b  H# N+ ?3 D9 t# ~% G

4 I, o# Q* g6 T3 v5 `% Q, ?+ z( f相关评测文档参考:
; H1 `* m" b, h& E+ |       [Coremark跑分评测] Nucleo-L073RZ Coremark跑分. E1 D8 S- S2 `* r& v. ]
        [Coremark跑分评测] Nucleo-L432KC Coremark跑分
/ Z5 V( O' m* r- T8 {        [Coremark跑分评测] Nucleo-F030R8 Coremark跑分
& D" _6 u% h2 c: k        [Coremark跑分评测] Nucleo-F401RE Coremark跑分       " }5 Z6 R$ I0 J! T
        [Coremark跑分评测] Nucleo-F767ZI Coremark跑分       2 X6 g4 ^9 x( G5 i- n
        [Coremark跑分评测] Nucleo-F413ZH Coremark跑分       % {0 j2 i7 x& c) ?6 y7 ]
3 d! g8 _( U; b( `: {; e
! l& n1 Z, i/ h% x" L" r

+ [( ^+ Y- C, k% r" |& Y
1 K. k5 E9 @% {; o: {6 o
0 @$ S' T  b0 l, R9 R8 K+ S; K0 P0 Z

  c7 T3 Q6 n0 \$ _# r2 X$ ?( a' V$ M; Y! R9 d+ V
8 y3 ?: V6 S0 A7 U
6 q* I) R- v( ~2 q: Y- X

! V: t" x2 B. p
! I0 D  y5 |, c; I/ J5 q5 M8 l) \+ M: ~5 R1 M% j2 t
/ I4 j, b/ M/ a7 P- C, W
* q3 D4 _! {) B$ ~" P

; f9 p& T8 O( a  ]+ b$ R( B0 a# B0 i3 ?7 B4 f6 T/ ?$ `
赞 收藏 1 评论18 发布时间:2016-12-5 21:03

举报

18个回答
wolfgang 回答时间:2016-12-6 09:24:21
本帖最后由 wolfgang2015 于 2016-12-6 09:30 编辑
' G) s5 X! E1 Z% `4 n7 o
左岸右岸 发表于 2016-12-6 09:203 }  k! ~: i, B( d1 o+ h
IAR的优化效率相对高点
1 {! ]. p* v8 p
只是这点跑分上得出相对高点,其他的相关编译器规范指标,还无从得知。有些性能的提升会牺牲编译后的代码段长度,牺牲浮点运算,当然没有浮点运算的CPU自然不会,这仅仅是个跑分测试,如果是多信号的计算验证,相同时间内,或者一定时间内谁的计算结果接近于样本值,这才是考验MCU计算能力主要表现。
5 C! X) U" C6 w+ B( q# M! S( `1 Q1 |. F& @
- r1 w3 F/ z# Y& T8 ~9 c要不别人也不会推出这么好的开发工具。. `& l( f/ o! m6 o0 Q" N" P9 O
高二毛 回答时间:2016-12-6 08:22:06
感谢分享,讲解的很想详细啊。上面几个编译器汇总,貌似IAR的编译最强大,相同的代码编译出来的代码最短,执行效率也就更高一些。8 Y: B- G% c$ H/ s  q/ V( E
楼主如果有时间可以将一段代码在三个编译器上都编译一下,然后看一下汇编代码部分,进行对比。
2 `+ z: b0 D9 }1 j6 q为楼主向技术的根里刨的精神点赞!!!
wolfgang 回答时间:2016-12-6 15:57:08
高二毛 发表于 2016-12-6 08:221 g* _- u! H. `/ x* x  Z; F, D4 O6 A
感谢分享,讲解的很想详细啊。上面几个编译器汇总,貌似IAR的编译最强大,相同的代码编译出来的代码最短, ...

3 q/ m/ X7 g* l6 p一起袍,一起学习。
5265325 回答时间:2016-12-6 01:30:25
yhyeefocus 回答时间:2016-12-6 03:49:13
楼主专家了,学习
alles_ok>>0_0<< 回答时间:2016-12-6 08:39:36
学习了。。。
jackten 回答时间:2016-12-6 09:17:47
学习学习              
左岸右岸 回答时间:2016-12-6 09:20:08
IAR的优化效率相对高点
andypanfan 回答时间:2016-12-6 09:37:56
limale 回答时间:2016-12-6 09:44:39
谢谢分享
wolfgang 回答时间:2016-12-6 15:56:12
yhyeefocus 发表于 2016-12-6 03:49
/ m" J5 L- b9 ^# b楼主专家了,学习

2 }. A4 z% h! R过奖了,一些皮毛,对那些吃透编译器的人来说,就多想了一些而已。, n  f  R, [, D
5 w4 y7 B" j8 r$ m: u6 @
一起学习
zbber 回答时间:2016-12-6 16:54:26
/ [8 \) n5 ?# V( g, n
,无回帖,不论坛
: T7 ^' O* q( m# t9 P
wolfgang 回答时间:2016-12-26 00:07:25
已更新F7
斜阳 回答时间:2016-12-26 10:06:18
谢谢楼主评测
12下一页

所属标签

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版