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

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

[复制链接]
wolfgang 发布时间:2016-12-5 21:03
本帖最后由 wolfgang2015 于 2018-1-12 10:33 编辑 : w0 S5 v; w0 m
3 I+ w& d4 v% M6 H. \
  年末了,工作的事情终于告一段落,这几天有空了,又刚好碰到F769I-Disco系列的评测活动,发现即便同一芯片和板子跑出来的Coremark 分值也参差不齐,有高有低。周末把自己宅在家里一天,用自己的环境和手边的几个Nucleo板子做几个简单的跑分测试。然后通过自己的跑分同其他网友的跑分以及官方的跑分做对比、参考看看是否有什么问题造成了各自跑分不同1 F- Q# K/ [4 n- t

! o& r' ~$ k, c: O+ ]) N/ M5 x5 L

9 p7 @5 ]3 L  i; j$ x5 ]  h直道目前,ST推出了超低功耗、主流型、超高性能型几系列的芯片0 Y/ \: @. T# u& u* k" h  }
001.jpg
. G, G) N5 f2 p3 W+ R8 v( s% l! }6 ?5 E+ {# ~( \! }( x1 X  p/ s5 _& t/ m

% B$ B: _0 R7 P4 U同时官方也给除了自己的Coremark
: n* Y8 S# y8 u" jF0/F1/F3主流系列的Coremark 分值如下图:
: u9 r0 B. e5 ?% }# h$ N: A6 f1 ?: t9 n
002.jpg 0 _0 N8 @1 v5 i, S& V0 Z! @6 v
! k: ~8 M3 j: o7 i
, l$ p/ ]5 I+ u3 g* t7 s
L0/L1/L3超低功耗系列的Coremark 分值如下图:3 a  n# `' K" R) [0 Y; ^
003.jpg
6 q  }) _, O: K; l0 u, J( k; _0 s* x) w( I1 h4 f2 T. ]

6 ^3 o# G" V/ M! HF2/F4/F7超高性能系列的Coremark 分值如下图:4 K! i) N4 ]! I* s2 g
004.jpg . w- y7 s! R) W, \1 z! f

/ E8 @' N0 f5 p( _
: H1 c( j9 X2 Z( _. K+ I5 R
我这里板卡有限,有的还在做其他的开发试验这里就先做了几个Nucleo开发板的评测:' k/ [* g+ R# p/ @
. Y) f6 E* L6 c5 A' e
' b2 O+ ?; p2 ~+ x
Nucleo-F030R8  CoreMark 1.0 : 76.456107 参考官方跑分:106(同主频)跑分对比:72.13%) C( }& G! H: \3 r+ U5 e
Nucleo-F401RE  CoreMark 1.0 : 217.959895 参考官方跑分:604(180MHz)不具对比性" [# C0 M$ _, U2 q5 d7 U9 E
Nucleo-F767ZI  CoreMark 1.0 : 901.117386 参考官方跑分:1082(同主频) 跑分对比:83.28%  
$ o, P# i8 W- }. i# F  h9 ^1 W
Nucleo-L073RZ  CoreMark 1.0 : 55.522653 参考官方跑分:75(同主频) 跑分对比:74.03%
- j' C2 }8 ~  P5 X9 a3 {, s+ iNucleo-L432KC  CoreMark 1.0 : 205.581539 参考官方跑分:273(同主频) 跑分对比:75.30%  8 B; o+ j& `. \! q, a1 v" X
Nucleo-F413ZH  CoreMark 1.0 :  259.197180 参考官方跑分:604(180MHz)不具对比性
7 k. N& V" P$ @" {# z

) |# r/ m, \6 s( r6 D基本上均为官方跑分的72%~75% ,性能相差近1/4。F7性能最接近在83.28左右比其他的跑分高10%左右,,不知道这是不是得益于芯片的性能提升和大缓存技术,平滑了编译器优化等级带来的影响。5 n2 ?# n1 l; k+ H9 |: X
) l. N# \: s: k; V% o5 }
8 d  \  O7 d( j% }1 }* ~4 D
排除了验证方法的差异后,其实可以得出这样的一个结论:1 z3 P# {4 {1 @& o) {
; K1 \4 p8 F: v# n# h' F( ~2 c# l) p( e
    评测跑分的工具——GCC编译器存在着差异
1 x; s. w$ t0 t3 O# N+ n: o
  ]! m) J( [$ F: b: l' s

+ j& R  _6 k  b- X  ^9 Z! I7 z跑分对编译器的优化等级 -O 参数有严重倚赖,各位所使用的ARM编译工具属于以下三大体系中的一种: K* C: I0 T. h  R2 S/ F
1、ARM RealView (armcc)     其代表工具是:Keil MDK
& o8 y- C3 V) o    优化等级能到 -O3
0 F* s% Y' l, W& e2 Y, B
+ l5 v+ t4 {/ F* o3 E2、IAR EWARM (iccarm)       其代表工具为:IAR Embedded Workbench! v# o8 v/ B' a( ^2 C/ C0 v$ U9 @' c5 S
    优化等级能到 -Ohs    (height speed)
6 o, R& R  N# b2 d) V7 K2 g
/ f2 ~. K6 l& x% A; B$ o4 Y3、GNU Compiler Collection (gcc) 代表工具就是:Eclipse + Ac6  /  Linux + arm-none-eabi, ^" H. ]5 G6 j0 Y4 Q) o
    优化等级能到 -O3
, g" C. i( ?, W& {% R0 a5 [# n
7 L' `+ T) q7 z* |2 \' j2 B3 f   我的评测环境刚好就是第三种,如果参考网友与官方接近的跑分所使用的工具为IAR Embedded Workbench,那么可以简单的推测出,在IAR -Ohs 编译环境下,能将ST芯片的性能发挥到最大。
GNU Compiler Collection -O3的优化能达到到 IAR -Ohs的3/4左右的分值;跟IAR 在-O3 的优化能力差不多;ARM RealView -O3 的优化能力也仅有-Ohs 3/4 左右。   但不过IAR的-Ohs优化牺牲了些什么,从这个评测中还无法得知。只能希望对编译器有更深入了解的网友来解答,或者通过其他的评测内容来对各种编译器的性能作一个数据说明。
0 B. y4 b4 e* A; H
3 a  @% H' E$ [- r  三种编译工具,是由不同的编译厂家/爱好者制作,其编译器编译出来的代码大小、执行效率是不同,即便在同一款主板上执行,执行的结果也是不样的。5 Z$ o( N, \% L. `8 s
4 l& t* j! W' g: E' I1 i
  跑分只是一个我们了解编译器、了解主板芯片性能的一个直观表现,这个结果可为我们选择编译器提供了参考和借鉴。在什么样的环境下用什么样的编译器提供一些直观体验。1 A# P1 c4 R6 l+ b0 h+ N
3 M7 M5 b" {; b: `& Q' f
- ]$ N" Y# d3 V" U
  功欲善其事,必先利其器。评测的结果测得了对开发板的了解,对开发工具的了解,还是很值得的。希望大家能利用自己手边的板子加入到相关评测活动中,能从侧面对ST芯片和主板有深入一点的了解,也能对工具了解深入一步
% n1 ^: d( o1 V6 v8 c9 P/ R, P; k5 s0 Y* X- I
% X# K& ?- L5 M: T* Z
相关评测文档参考:
; m; w: H' l% @2 ~7 X! N8 X9 w" ^       [Coremark跑分评测] Nucleo-L073RZ Coremark跑分
3 a+ Y" Z/ D3 [8 j7 @        [Coremark跑分评测] Nucleo-L432KC Coremark跑分: r; H4 o; y$ T0 m  r3 F
        [Coremark跑分评测] Nucleo-F030R8 Coremark跑分
- C/ S. ?( i+ ]6 i( |- ]        [Coremark跑分评测] Nucleo-F401RE Coremark跑分       1 ^, C3 J; M" D/ }; [5 X2 F
        [Coremark跑分评测] Nucleo-F767ZI Coremark跑分      
) t5 D2 ~" Q" K3 E8 o6 s& T5 K        [Coremark跑分评测] Nucleo-F413ZH Coremark跑分      
6 b' ^9 S* b- J* [+ z0 ^$ Z. r! W2 x$ V0 ~3 l

) S2 i$ y5 q# A6 S4 M
' o, V+ U2 R) R& q! R7 V4 A0 X2 Z# M/ L# ^0 M
6 b  j/ M! D4 i% Z" o; K- f& F

" l9 S2 _, S7 O5 l9 a
' g8 j) V( w# y1 K3 n2 ]& X' j& I3 B) A0 j; B" Q
* ?3 J& c9 t$ Z, S0 T* A4 @; U: G

- N8 u( Q9 D( Q  s" u9 V8 n2 ^) r' S7 n3 |2 G0 r
; m- u7 T: @7 a0 |; E* o; [) G. B

2 k9 H; a2 d6 V. r+ h8 z* c" i6 j- K  r6 H9 J, o

) o. s  \" f3 c* I0 q. h+ L$ M0 `/ n, b7 X- d" D

$ ~! v, H3 _( e, N! D0 @
收藏 1 评论18 发布时间:2016-12-5 21:03

举报

18个回答
wolfgang 回答时间:2016-12-6 09:24:21
本帖最后由 wolfgang2015 于 2016-12-6 09:30 编辑 % I; q: M" R; P3 S$ x  c
左岸右岸 发表于 2016-12-6 09:20
1 e, b/ @! v! b3 S+ ~4 _" jIAR的优化效率相对高点
" P3 ]0 c* B% R( l
只是这点跑分上得出相对高点,其他的相关编译器规范指标,还无从得知。有些性能的提升会牺牲编译后的代码段长度,牺牲浮点运算,当然没有浮点运算的CPU自然不会,这仅仅是个跑分测试,如果是多信号的计算验证,相同时间内,或者一定时间内谁的计算结果接近于样本值,这才是考验MCU计算能力主要表现。
# }) @+ f; J5 `" y
4 w: U! k  ^" Z# c+ V3 |) O要不别人也不会推出这么好的开发工具。! j2 F+ v& g1 H0 h8 b- J% K
高二毛 回答时间:2016-12-6 08:22:06
感谢分享,讲解的很想详细啊。上面几个编译器汇总,貌似IAR的编译最强大,相同的代码编译出来的代码最短,执行效率也就更高一些。
% ]5 Y% O# D2 L9 `楼主如果有时间可以将一段代码在三个编译器上都编译一下,然后看一下汇编代码部分,进行对比。
& J/ w" _% @# ^; ~* e9 Q, @3 S为楼主向技术的根里刨的精神点赞!!!
wolfgang 回答时间:2016-12-6 15:57:08
高二毛 发表于 2016-12-6 08:22
7 x0 ~  o8 X/ |+ B) U% l* V感谢分享,讲解的很想详细啊。上面几个编译器汇总,貌似IAR的编译最强大,相同的代码编译出来的代码最短, ...
1 y  g) \& x9 t. A  p! J! ]
一起袍,一起学习。
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
* J. b5 B3 h  b. _* @楼主专家了,学习
: S7 `: ]" q0 K8 R' I9 b
过奖了,一些皮毛,对那些吃透编译器的人来说,就多想了一些而已。8 E& e* h$ L0 @! {1 X6 D7 N2 {

: g/ Q$ [) z( |# z; ^- t7 f3 n一起学习
zbber 回答时间:2016-12-6 16:54:26

7 M$ o; s! P' x) I' D, }8 W,无回帖,不论坛6 n: T* B% p& @* Z
wolfgang 回答时间:2016-12-26 00:07:25
已更新F7
斜阳 回答时间:2016-12-26 10:06:18
谢谢楼主评测
12下一页

所属标签

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版