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

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

[复制链接]
wolfgang 发布时间:2016-12-5 21:03
本帖最后由 wolfgang2015 于 2018-1-12 10:33 编辑
* X7 T1 F& ]: l' {8 }: F8 v
% k7 d% C2 \2 C5 f4 ~  年末了,工作的事情终于告一段落,这几天有空了,又刚好碰到F769I-Disco系列的评测活动,发现即便同一芯片和板子跑出来的Coremark 分值也参差不齐,有高有低。周末把自己宅在家里一天,用自己的环境和手边的几个Nucleo板子做几个简单的跑分测试。然后通过自己的跑分同其他网友的跑分以及官方的跑分做对比、参考看看是否有什么问题造成了各自跑分不同
3 }( A' ?1 g( o3 i% @' O& H2 @% m8 p! s5 w) g& l: l: J) V" }

. f1 `# E- X5 u1 S! f9 S直道目前,ST推出了超低功耗、主流型、超高性能型几系列的芯片
+ k/ j  l# f4 X9 z$ H- _2 |+ V 001.jpg ! d5 D$ f. m1 @1 ^0 y8 [
. Y+ p# V8 ~$ n; _
3 [  Z( B' }8 \( p& f. h: `' ~
同时官方也给除了自己的Coremark0 z0 H% [- H- A# s( r5 i5 Y5 E
F0/F1/F3主流系列的Coremark 分值如下图:1 a# _- J) c: u, v) @" s0 ~% E
  d5 ]; r; j) Z5 L* H- f
002.jpg
, q7 q$ W* m3 E0 ^2 V9 T  ~! w1 T. f

: }5 G7 \. j- o5 t! E/ HL0/L1/L3超低功耗系列的Coremark 分值如下图:
5 k* o0 B3 D9 V# [2 @& E 003.jpg
/ p5 r+ ^% B, G+ A( X- }" q; i/ c: B( m4 i* R+ V  r

; X5 k" x- C9 a: @8 _F2/F4/F7超高性能系列的Coremark 分值如下图:
# t, M2 I: J3 v: _- x! c5 v 004.jpg 2 D' v% R; b# m

1 Z) Z% a% C4 P( w0 b
/ V  \( e+ B6 O& ?; O, H
我这里板卡有限,有的还在做其他的开发试验这里就先做了几个Nucleo开发板的评测:$ C6 _! N* W& [2 i3 r2 m* t; z
0 e" P" U  p$ d( _5 J7 W
+ Z8 e  a* R& q/ a$ Z( U9 g
Nucleo-F030R8  CoreMark 1.0 : 76.456107 参考官方跑分:106(同主频)跑分对比:72.13%
# U- E6 J" L+ b8 ^4 y5 YNucleo-F401RE  CoreMark 1.0 : 217.959895 参考官方跑分:604(180MHz)不具对比性) ?" ~7 [) ]0 ^, v5 @
Nucleo-F767ZI  CoreMark 1.0 : 901.117386 参考官方跑分:1082(同主频) 跑分对比:83.28%  
& E5 J+ C9 L' |7 N6 d( `! |
Nucleo-L073RZ  CoreMark 1.0 : 55.522653 参考官方跑分:75(同主频) 跑分对比:74.03%  \( H4 b% B0 p
Nucleo-L432KC  CoreMark 1.0 : 205.581539 参考官方跑分:273(同主频) 跑分对比:75.30%  1 {/ l! E0 a' [( F
Nucleo-F413ZH  CoreMark 1.0 :  259.197180 参考官方跑分:604(180MHz)不具对比性
" j+ p% W/ Y9 Y2 ?: K

6 f* u, l( M+ t) {, t; W基本上均为官方跑分的72%~75% ,性能相差近1/4。F7性能最接近在83.28左右比其他的跑分高10%左右,,不知道这是不是得益于芯片的性能提升和大缓存技术,平滑了编译器优化等级带来的影响。
" H9 e+ M; l& i
1 g" g1 ^; y: L: Z/ M6 X1 _, W8 v0 }* a
! m( ~7 @; D( T8 ?0 i$ F1 H/ \
排除了验证方法的差异后,其实可以得出这样的一个结论:
4 }4 m/ W' c$ y9 j! ^3 H4 Y2 p. N! f& b8 S  ^: P. J( ?5 Y, B
    评测跑分的工具——GCC编译器存在着差异
) e+ U9 M& k/ v2 F4 x  G! ?( n5 ~6 @, L

! x& t- p4 k  O跑分对编译器的优化等级 -O 参数有严重倚赖,各位所使用的ARM编译工具属于以下三大体系中的一种- j9 E& {& q9 a( |& Q
1、ARM RealView (armcc)     其代表工具是:Keil MDK! v" x$ Q. F+ {  K: e5 J0 T$ p
    优化等级能到 -O3
" r* {8 |, L8 C& Z; K# S" o( y# u7 G# k. u% S
2、IAR EWARM (iccarm)       其代表工具为:IAR Embedded Workbench% F6 @. H  X2 E& W' e" I
    优化等级能到 -Ohs    (height speed)* s7 S$ v! U5 D; A* F# u, ^. K

4 G. O$ c) S: |2 C  Z) ]- c3、GNU Compiler Collection (gcc) 代表工具就是:Eclipse + Ac6  /  Linux + arm-none-eabi
* g; y2 C# r+ Z6 Z% r- B    优化等级能到 -O38 c" a9 m( v8 n( I- t

& o& d0 d! m9 F1 `3 O0 I   我的评测环境刚好就是第三种,如果参考网友与官方接近的跑分所使用的工具为IAR Embedded Workbench,那么可以简单的推测出,在IAR -Ohs 编译环境下,能将ST芯片的性能发挥到最大。
GNU Compiler Collection -O3的优化能达到到 IAR -Ohs的3/4左右的分值;跟IAR 在-O3 的优化能力差不多;ARM RealView -O3 的优化能力也仅有-Ohs 3/4 左右。   但不过IAR的-Ohs优化牺牲了些什么,从这个评测中还无法得知。只能希望对编译器有更深入了解的网友来解答,或者通过其他的评测内容来对各种编译器的性能作一个数据说明。7 |- n" u3 ]  H  p3 ~) a3 P' B. T9 ]
+ s6 `  n9 s* Z- z9 l
  三种编译工具,是由不同的编译厂家/爱好者制作,其编译器编译出来的代码大小、执行效率是不同,即便在同一款主板上执行,执行的结果也是不样的。
  L! B2 `0 }, L: I) z
) _3 a6 j5 m/ m3 F  c8 l# k/ B
  跑分只是一个我们了解编译器、了解主板芯片性能的一个直观表现,这个结果可为我们选择编译器提供了参考和借鉴。在什么样的环境下用什么样的编译器提供一些直观体验。
7 B. T% h& n0 p: {' S
2 R, e$ D* |, G: g- b6 Y  E6 W% j
6 E: s  `5 j" d  p( `
  功欲善其事,必先利其器。评测的结果测得了对开发板的了解,对开发工具的了解,还是很值得的。希望大家能利用自己手边的板子加入到相关评测活动中,能从侧面对ST芯片和主板有深入一点的了解,也能对工具了解深入一步: B* j4 k0 E* V8 c$ V0 t/ e) m

6 g# K, }/ Y- ~1 f8 x+ I4 g9 }5 H; r

& c# h, R$ [& |, E% F9 h3 E相关评测文档参考:( @! w' }! B4 _" g; k
       [Coremark跑分评测] Nucleo-L073RZ Coremark跑分
/ K+ p+ O# c! Z. i* j        [Coremark跑分评测] Nucleo-L432KC Coremark跑分) ?$ T# I  @$ {/ E9 ]8 x  a8 ?
        [Coremark跑分评测] Nucleo-F030R8 Coremark跑分) |3 y$ j$ f0 ^. x" ?
        [Coremark跑分评测] Nucleo-F401RE Coremark跑分       8 b5 N9 I% e7 }8 h$ r
        [Coremark跑分评测] Nucleo-F767ZI Coremark跑分      
( y) j9 e+ G* h- {        [Coremark跑分评测] Nucleo-F413ZH Coremark跑分      
1 \; f# r, |2 x3 K' X* l+ @- E& [8 M6 B- c6 n, G4 N* ~
4 W' w& a: J4 ]. k+ i

! a, k1 S, S4 C, C
+ v9 v2 v; h( w+ G& `, E1 [! B7 A

6 }  V. w& r- ^% `, s  h3 ^+ A
9 S8 b' ~% q, s* K3 w9 b4 Q) [6 I. o# r. y8 ~4 H  z
. T7 x+ G7 [$ U: A2 ^6 g% j
7 a  f, \0 d3 ^% Y, {7 g

$ F# v9 W8 [( x$ c8 t" [. u9 u6 Y; k) ~  F' k

: s& u1 D2 {& Y! [' i, q
8 T5 f8 V- V0 w2 c2 q0 ^
5 a; |; L! D2 B
/ X$ ~( u5 v+ J- S( @9 J' ]( Y8 I4 N' h" t9 v# ~
收藏 1 评论18 发布时间:2016-12-5 21:03

举报

18个回答
wolfgang 回答时间:2016-12-6 09:24:21
本帖最后由 wolfgang2015 于 2016-12-6 09:30 编辑
' H6 _2 O+ T8 D+ p( w: _
左岸右岸 发表于 2016-12-6 09:205 d- \2 ]1 u- B4 t6 y5 x' c! G+ U
IAR的优化效率相对高点

  k1 ~: y" e! u3 {; x7 E只是这点跑分上得出相对高点,其他的相关编译器规范指标,还无从得知。有些性能的提升会牺牲编译后的代码段长度,牺牲浮点运算,当然没有浮点运算的CPU自然不会,这仅仅是个跑分测试,如果是多信号的计算验证,相同时间内,或者一定时间内谁的计算结果接近于样本值,这才是考验MCU计算能力主要表现。7 m; \3 \% _5 y

' Y$ X! I5 o+ x2 C" [1 N" S' \要不别人也不会推出这么好的开发工具。
6 \- |: e9 o# n: T( O# ~2 Y
高二毛 回答时间:2016-12-6 08:22:06
感谢分享,讲解的很想详细啊。上面几个编译器汇总,貌似IAR的编译最强大,相同的代码编译出来的代码最短,执行效率也就更高一些。1 M3 B$ T" E6 [- V
楼主如果有时间可以将一段代码在三个编译器上都编译一下,然后看一下汇编代码部分,进行对比。2 w/ T! j- M+ M5 L0 C
为楼主向技术的根里刨的精神点赞!!!
wolfgang 回答时间:2016-12-6 15:57:08
高二毛 发表于 2016-12-6 08:22; F- R* X& e- N) y1 @
感谢分享,讲解的很想详细啊。上面几个编译器汇总,貌似IAR的编译最强大,相同的代码编译出来的代码最短, ...
( v' j, u8 \5 I& Q: |% C
一起袍,一起学习。
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:497 V) t# q9 i0 }; }. H0 \$ y
楼主专家了,学习

4 b* C. P4 j3 {过奖了,一些皮毛,对那些吃透编译器的人来说,就多想了一些而已。1 F! D' p! p& a

$ H+ w7 B2 [' u- X一起学习
zbber 回答时间:2016-12-6 16:54:26

* M6 w! k0 [7 y) R7 V, R,无回帖,不论坛( g% V0 V/ |3 c) v
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 手机版