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

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

[复制链接]
wolfgang 发布时间:2016-12-5 21:03
本帖最后由 wolfgang2015 于 2018-1-12 10:33 编辑 0 q* e2 ?7 c4 D; }5 G
% U2 O! G; K: j0 o. J; a
  年末了,工作的事情终于告一段落,这几天有空了,又刚好碰到F769I-Disco系列的评测活动,发现即便同一芯片和板子跑出来的Coremark 分值也参差不齐,有高有低。周末把自己宅在家里一天,用自己的环境和手边的几个Nucleo板子做几个简单的跑分测试。然后通过自己的跑分同其他网友的跑分以及官方的跑分做对比、参考看看是否有什么问题造成了各自跑分不同
& k' H; E" ?* j- j1 v( ]4 j# k) ~, @0 z( W2 {! _
! I" b1 i/ s8 g; }# F6 E/ C
直道目前,ST推出了超低功耗、主流型、超高性能型几系列的芯片7 k3 ~8 ~: I- N: ]
001.jpg
& Y, b1 y9 a2 g# ^5 O6 D# H
, b8 F$ U, s* g8 f; Q5 \% K. s2 ~

1 T6 w$ d/ t0 h* P同时官方也给除了自己的Coremark
* g5 S! ~' {$ L$ c7 oF0/F1/F3主流系列的Coremark 分值如下图:. _7 v7 u+ t- c  L: i! i+ I1 m/ |

( K& d# f4 u& q# R  }0 v 002.jpg , D! C2 r8 s: M9 _

$ R0 b  l" h6 n# x1 H% W4 ?- u
. ]* ?# r+ X0 S9 @0 Y! r" p
L0/L1/L3超低功耗系列的Coremark 分值如下图:7 f+ F' I$ D# l2 c2 P+ Z
003.jpg
; J( D: x5 B- s7 G8 C
% p4 E* q/ e2 L0 o; G2 w
# ?+ d4 W1 e3 p" [, v
F2/F4/F7超高性能系列的Coremark 分值如下图:
  u. n1 j8 Q, z4 |$ X. |+ S 004.jpg
! \; q( g) Q5 [# [/ B: X6 T2 N8 k5 F
* W- V# u; ]+ ?  l6 w: E
我这里板卡有限,有的还在做其他的开发试验这里就先做了几个Nucleo开发板的评测:) \/ Y) k# Y2 H- G8 y0 s+ k

/ l4 z  q0 W: U4 G
: m+ y( B( r( V' {- m* M! v( u+ u
Nucleo-F030R8  CoreMark 1.0 : 76.456107 参考官方跑分:106(同主频)跑分对比:72.13%
- z0 l1 z0 j1 P: oNucleo-F401RE  CoreMark 1.0 : 217.959895 参考官方跑分:604(180MHz)不具对比性+ D. W* T' T% B5 l- n
Nucleo-F767ZI  CoreMark 1.0 : 901.117386 参考官方跑分:1082(同主频) 跑分对比:83.28%  ; F# `+ X# K  r2 J/ s# I; v) U
Nucleo-L073RZ  CoreMark 1.0 : 55.522653 参考官方跑分:75(同主频) 跑分对比:74.03%
, j, J; O* T( E6 ENucleo-L432KC  CoreMark 1.0 : 205.581539 参考官方跑分:273(同主频) 跑分对比:75.30%  0 m& J- s: w: K3 V, z
Nucleo-F413ZH  CoreMark 1.0 :  259.197180 参考官方跑分:604(180MHz)不具对比性
4 C, N& G; p+ c; k( C7 |
% R% h: C( x- `. F
基本上均为官方跑分的72%~75% ,性能相差近1/4。F7性能最接近在83.28左右比其他的跑分高10%左右,,不知道这是不是得益于芯片的性能提升和大缓存技术,平滑了编译器优化等级带来的影响。
4 }$ C) E* q. w6 I' W- o: _* r! M& b3 {* j7 g
1 q7 z$ M: D+ V" `; s. u! o6 r' [
排除了验证方法的差异后,其实可以得出这样的一个结论:
( F9 k! t0 @0 j. T. @  p& b3 J# _5 d- T( D
    评测跑分的工具——GCC编译器存在着差异9 v. u; }* q3 P
7 a: _, U. h. R# K
: b2 v) _& p( ]" ~) y! M: D4 f. o- a
跑分对编译器的优化等级 -O 参数有严重倚赖,各位所使用的ARM编译工具属于以下三大体系中的一种: s  h: k4 h  x6 Y; p6 T
1、ARM RealView (armcc)     其代表工具是:Keil MDK
; l2 X/ V4 g0 e9 q8 ?( X& Q- \    优化等级能到 -O35 ~/ f9 D+ M7 {% J# \0 ?/ p

+ w# `. O  Z7 f2 Y6 J  t% x7 j2、IAR EWARM (iccarm)       其代表工具为:IAR Embedded Workbench
* L) _7 }6 z3 i2 q+ }    优化等级能到 -Ohs    (height speed)+ T, z/ @$ V! R* j" O" J
; V& p, L5 m( l1 P& m" x
3、GNU Compiler Collection (gcc) 代表工具就是:Eclipse + Ac6  /  Linux + arm-none-eabi3 m- X- W) t. ?3 N9 q0 x
    优化等级能到 -O32 N6 g, I% N+ o

; @' }$ \% t! G   我的评测环境刚好就是第三种,如果参考网友与官方接近的跑分所使用的工具为IAR Embedded Workbench,那么可以简单的推测出,在IAR -Ohs 编译环境下,能将ST芯片的性能发挥到最大。
GNU Compiler Collection -O3的优化能达到到 IAR -Ohs的3/4左右的分值;跟IAR 在-O3 的优化能力差不多;ARM RealView -O3 的优化能力也仅有-Ohs 3/4 左右。   但不过IAR的-Ohs优化牺牲了些什么,从这个评测中还无法得知。只能希望对编译器有更深入了解的网友来解答,或者通过其他的评测内容来对各种编译器的性能作一个数据说明。$ v5 X8 A% q" I+ D- B0 G! Q  t  C

; Z0 S* J, B3 B- g' e: p: O  Q  三种编译工具,是由不同的编译厂家/爱好者制作,其编译器编译出来的代码大小、执行效率是不同,即便在同一款主板上执行,执行的结果也是不样的。
0 j  j# E4 j" k0 m4 Y( |

6 A% U7 I/ Q! \, {+ }) H  跑分只是一个我们了解编译器、了解主板芯片性能的一个直观表现,这个结果可为我们选择编译器提供了参考和借鉴。在什么样的环境下用什么样的编译器提供一些直观体验。
/ j( M# [$ Y, K# C3 `6 N- W
$ L7 t( k; W) q6 o! ?
0 t% J3 Q" W5 K
  功欲善其事,必先利其器。评测的结果测得了对开发板的了解,对开发工具的了解,还是很值得的。希望大家能利用自己手边的板子加入到相关评测活动中,能从侧面对ST芯片和主板有深入一点的了解,也能对工具了解深入一步, d8 Y# E. D; Y5 }& k0 i

4 J( f- x* l, G0 y3 f' T

1 M0 N- f# B, k6 I相关评测文档参考:
& ?+ U- Y+ m" j- E       [Coremark跑分评测] Nucleo-L073RZ Coremark跑分
) ?6 v3 C: D* a/ x. q' _        [Coremark跑分评测] Nucleo-L432KC Coremark跑分# E: d" K. b& z9 w9 H
        [Coremark跑分评测] Nucleo-F030R8 Coremark跑分8 p* n$ h! r5 a+ S' U8 @! Y# E* V9 |
        [Coremark跑分评测] Nucleo-F401RE Coremark跑分       $ i* ?3 y8 ]8 b: ~1 [! f
        [Coremark跑分评测] Nucleo-F767ZI Coremark跑分      
" D3 r# k4 N- o5 i3 _, I! ?+ v1 [        [Coremark跑分评测] Nucleo-F413ZH Coremark跑分       # j: G0 I" x/ i5 Z( U9 w

, E; U6 d7 P% u1 V1 F( E. B- m2 l' \# d0 O2 n1 h7 P0 o% g, a
8 l3 x) j( }0 A6 A) C# X( p

5 l, w4 x- h; q+ ~* Z4 K5 ?) W! i0 E$ p) \& j" }( U

7 p5 c3 t# S# v2 {, k) k
1 [0 Z# s: V: K& o9 l1 k; _4 f$ e' n% U. w
' V4 S% Z( _# Y: P$ t% S
! c+ t" d& S3 v1 h! U4 F

5 k& Z) o7 v& T3 s; G% y9 t! E8 P  x) B8 u

: l, R$ Y8 Z6 v( B
: J* J$ h5 T' Z9 ]2 M' ]9 a# U  l

: C0 L+ I4 v/ Y' U9 G& n/ G  [& |* i3 a
收藏 1 评论18 发布时间:2016-12-5 21:03

举报

18个回答
wolfgang 回答时间:2016-12-6 09:24:21
本帖最后由 wolfgang2015 于 2016-12-6 09:30 编辑
8 V" y8 }( Z! b* _( W
左岸右岸 发表于 2016-12-6 09:20
! _. ?0 H0 J! Y9 X6 |; M$ A$ fIAR的优化效率相对高点

# `' v: k# ?5 j# e' A- {只是这点跑分上得出相对高点,其他的相关编译器规范指标,还无从得知。有些性能的提升会牺牲编译后的代码段长度,牺牲浮点运算,当然没有浮点运算的CPU自然不会,这仅仅是个跑分测试,如果是多信号的计算验证,相同时间内,或者一定时间内谁的计算结果接近于样本值,这才是考验MCU计算能力主要表现。+ F5 m" @# E3 G( c4 X

" v. d2 M8 G! \) O) Q要不别人也不会推出这么好的开发工具。
" R5 u4 p2 f$ o2 x
高二毛 回答时间:2016-12-6 08:22:06
感谢分享,讲解的很想详细啊。上面几个编译器汇总,貌似IAR的编译最强大,相同的代码编译出来的代码最短,执行效率也就更高一些。
' v0 O$ s( X' \: [4 |楼主如果有时间可以将一段代码在三个编译器上都编译一下,然后看一下汇编代码部分,进行对比。# [1 C+ j9 e( T! N7 u9 L
为楼主向技术的根里刨的精神点赞!!!
wolfgang 回答时间:2016-12-6 15:57:08
高二毛 发表于 2016-12-6 08:22) N  M4 v! D; b8 Z4 d# R3 U" K
感谢分享,讲解的很想详细啊。上面几个编译器汇总,貌似IAR的编译最强大,相同的代码编译出来的代码最短, ...
" q- }5 |* A1 c; w
一起袍,一起学习。
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
: ?( d7 W0 z2 B' |  ?. C8 w楼主专家了,学习

/ a/ V+ a* T% I/ C; d过奖了,一些皮毛,对那些吃透编译器的人来说,就多想了一些而已。) O! u, Z$ `) H* ~1 j
# Q) [7 {/ e: A' {6 U% S- d
一起学习
zbber 回答时间:2016-12-6 16:54:26
$ \) E4 x# x) @. f  A6 p' E
,无回帖,不论坛
6 @) h2 e1 }: U# j
wolfgang 回答时间:2016-12-26 00:07:25
已更新F7
斜阳 回答时间:2016-12-26 10:06:18
谢谢楼主评测
12下一页

所属标签

相似分享

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版