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

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

[复制链接]
wolfgang 发布时间:2016-12-5 21:03
本帖最后由 wolfgang2015 于 2018-1-12 10:33 编辑 ( c9 m3 ]: g: c& M( I% t

) R& F9 R& s/ _$ i' B! F  年末了,工作的事情终于告一段落,这几天有空了,又刚好碰到F769I-Disco系列的评测活动,发现即便同一芯片和板子跑出来的Coremark 分值也参差不齐,有高有低。周末把自己宅在家里一天,用自己的环境和手边的几个Nucleo板子做几个简单的跑分测试。然后通过自己的跑分同其他网友的跑分以及官方的跑分做对比、参考看看是否有什么问题造成了各自跑分不同
  ^$ a0 b+ L6 m: t& a9 o6 ^; j( i# d: g( R9 W( M( F
# s) q( B* ~9 L
直道目前,ST推出了超低功耗、主流型、超高性能型几系列的芯片
# d/ P4 G7 m2 m) n1 a# j 001.jpg
. K* H( o' ^* Z! E
8 V8 ^( \# H; L: o* m
" a: ?8 w# L% h7 s8 U7 p
同时官方也给除了自己的Coremark  p# }0 E, K1 l& f
F0/F1/F3主流系列的Coremark 分值如下图:
" f" j7 s# Z+ r$ p$ |
% g7 q* ~4 l9 n( \3 Y 002.jpg % X3 M: \" ]0 ^$ @
7 B9 D9 _: C: g$ U: a  p9 `8 H
1 S$ Y. _- ~" e* `5 T+ ^6 q/ p$ S; r4 C
L0/L1/L3超低功耗系列的Coremark 分值如下图:
  p3 k9 v6 l5 l6 z7 a" T/ B 003.jpg
3 G* B: T8 u5 i+ P5 l6 F2 Q2 N5 j7 }

) j8 k2 w1 s2 r( T8 u; WF2/F4/F7超高性能系列的Coremark 分值如下图:& r# A& c( t8 ^$ q
004.jpg # y- E/ X6 K9 M! i
, w0 x' p) E$ a" I
0 M" A% `" r! ?; v+ G4 W6 x+ V7 |- j6 z5 M
我这里板卡有限,有的还在做其他的开发试验这里就先做了几个Nucleo开发板的评测:
$ i+ I* u/ X' O; c) Q. ~3 }# W+ h# z  c, O9 K4 G

, H; P. U2 g# A! L$ XNucleo-F030R8  CoreMark 1.0 : 76.456107 参考官方跑分:106(同主频)跑分对比:72.13%
& y, J1 Q+ Y- |. {8 e' o) N' xNucleo-F401RE  CoreMark 1.0 : 217.959895 参考官方跑分:604(180MHz)不具对比性) Y4 j, ^+ z3 k+ W3 Y) G
Nucleo-F767ZI  CoreMark 1.0 : 901.117386 参考官方跑分:1082(同主频) 跑分对比:83.28%  * i0 J" _: @5 R' ~" F
Nucleo-L073RZ  CoreMark 1.0 : 55.522653 参考官方跑分:75(同主频) 跑分对比:74.03%
0 d: I0 d# F5 J- L& {Nucleo-L432KC  CoreMark 1.0 : 205.581539 参考官方跑分:273(同主频) 跑分对比:75.30%  
; t/ i. H7 g% ?0 o8 e
Nucleo-F413ZH  CoreMark 1.0 :  259.197180 参考官方跑分:604(180MHz)不具对比性
" C# L: z1 b7 M; E/ Q
# q. X7 |6 Z" y- j3 g- i
基本上均为官方跑分的72%~75% ,性能相差近1/4。F7性能最接近在83.28左右比其他的跑分高10%左右,,不知道这是不是得益于芯片的性能提升和大缓存技术,平滑了编译器优化等级带来的影响。
( H3 b3 ?8 `) |$ {7 v
& r: Y% m7 e4 O
* E1 V# J1 a* ?
排除了验证方法的差异后,其实可以得出这样的一个结论:
7 X8 ^/ N4 i- U9 J: T
# k$ i; P0 Y$ e4 ?    评测跑分的工具——GCC编译器存在着差异
& a/ U4 o' Z' N) G! R% w
, J4 ^% w/ J  @( R' K
& ^( K: {5 ?7 V3 K6 {- p8 m
跑分对编译器的优化等级 -O 参数有严重倚赖,各位所使用的ARM编译工具属于以下三大体系中的一种) W) ^: j  B. k0 J4 h
1、ARM RealView (armcc)     其代表工具是:Keil MDK# S& ~" O( G7 n0 E/ K  T& r
    优化等级能到 -O3
# a2 ^8 @3 A4 N/ [! ]# b& c" K  d, S& f% e% [# I9 c3 H
2、IAR EWARM (iccarm)       其代表工具为:IAR Embedded Workbench
; Z* L2 E) ?9 H+ v1 X    优化等级能到 -Ohs    (height speed)
7 N( C$ a  {# r: W5 Z6 ~3 I7 e3 [; y/ [/ V3 @2 y
3、GNU Compiler Collection (gcc) 代表工具就是:Eclipse + Ac6  /  Linux + arm-none-eabi7 Q- D) O- j  x. b6 H) V
    优化等级能到 -O3/ t& U' a: U& |( v
' K! i2 A8 J8 O8 z+ w
   我的评测环境刚好就是第三种,如果参考网友与官方接近的跑分所使用的工具为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 P, z' h0 [, F5 w

7 }8 W$ o4 U9 R  三种编译工具,是由不同的编译厂家/爱好者制作,其编译器编译出来的代码大小、执行效率是不同,即便在同一款主板上执行,执行的结果也是不样的。
* T' z6 c  w$ `2 [+ n' R3 R& l

6 Y2 k( ]8 d5 K' w, w# H& ]  跑分只是一个我们了解编译器、了解主板芯片性能的一个直观表现,这个结果可为我们选择编译器提供了参考和借鉴。在什么样的环境下用什么样的编译器提供一些直观体验。- i4 {9 v- X3 b0 `4 D0 m5 o
/ K' q1 l. ]- G$ n
/ j& r+ x% c3 s- A8 a* r9 |' a
  功欲善其事,必先利其器。评测的结果测得了对开发板的了解,对开发工具的了解,还是很值得的。希望大家能利用自己手边的板子加入到相关评测活动中,能从侧面对ST芯片和主板有深入一点的了解,也能对工具了解深入一步
; e1 R' J- H3 w" Z! r/ B6 q
# I2 J* o& N$ D

, j+ |6 ?% k' R3 O相关评测文档参考:
: `2 ^; C8 W4 q; Q, F       [Coremark跑分评测] Nucleo-L073RZ Coremark跑分2 m+ ^9 L1 O- x$ S
        [Coremark跑分评测] Nucleo-L432KC Coremark跑分
( C7 R% C. W, D6 C        [Coremark跑分评测] Nucleo-F030R8 Coremark跑分
2 n) ]* {6 ]8 r* Q% S, b! u        [Coremark跑分评测] Nucleo-F401RE Coremark跑分      
, ?% B3 E7 h3 g, I        [Coremark跑分评测] Nucleo-F767ZI Coremark跑分       1 t( o; @: a) u5 l& y+ L/ V
        [Coremark跑分评测] Nucleo-F413ZH Coremark跑分      
) u" _3 H# k4 b1 n. C5 W
; g- I) O; H% d% I, T. `
1 Q/ B7 t0 l  ^5 d. z0 P/ i* H, w7 g

7 j' f+ \8 I" J* Z8 i& j
0 Q3 D4 f7 C* b4 [. J# L# k! z2 T8 l: `& u

) E- Q7 I+ l3 ]0 ^. ~8 K8 n: Z: C1 @3 s, C! ]1 H1 o- H. U
7 a  E6 c4 }" ]- W8 ]* p! a" t

$ b3 c; I( P& ?$ I! ~! O- S2 W
9 J5 L& T& d  o% _$ i+ p& ]" C7 I
: i+ K, U) `: K( N  `* O% S/ m# T$ p, R

" ?* e) e( ~2 b" P! D& f, P5 b, I5 W% b" d7 X/ f" {" G6 ?
$ D- w  d9 E3 b. {9 z
1 ^2 Q4 h3 i3 \0 F! K- B* u' q
收藏 1 评论18 发布时间:2016-12-5 21:03

举报

18个回答
wolfgang 回答时间:2016-12-6 09:24:21
本帖最后由 wolfgang2015 于 2016-12-6 09:30 编辑
2 h! G4 d7 [' J' ~" w& G
左岸右岸 发表于 2016-12-6 09:205 l. y2 ]# g) }6 I2 b' d& \' R
IAR的优化效率相对高点
/ U- W' W  ?7 H  s: K3 I0 m, K$ x% h
只是这点跑分上得出相对高点,其他的相关编译器规范指标,还无从得知。有些性能的提升会牺牲编译后的代码段长度,牺牲浮点运算,当然没有浮点运算的CPU自然不会,这仅仅是个跑分测试,如果是多信号的计算验证,相同时间内,或者一定时间内谁的计算结果接近于样本值,这才是考验MCU计算能力主要表现。
. _# P: ?# K0 _6 y
8 i/ e) c7 }. H+ z/ H" ?) ^要不别人也不会推出这么好的开发工具。* e& t. O2 \8 ]" F2 M/ g
高二毛 回答时间:2016-12-6 08:22:06
感谢分享,讲解的很想详细啊。上面几个编译器汇总,貌似IAR的编译最强大,相同的代码编译出来的代码最短,执行效率也就更高一些。
7 u4 H! R$ g' f. p8 l4 ]楼主如果有时间可以将一段代码在三个编译器上都编译一下,然后看一下汇编代码部分,进行对比。
3 h) X4 \/ B, J5 W为楼主向技术的根里刨的精神点赞!!!
wolfgang 回答时间:2016-12-6 15:57:08
高二毛 发表于 2016-12-6 08:22
: T- C7 j* S# `6 {/ [感谢分享,讲解的很想详细啊。上面几个编译器汇总,貌似IAR的编译最强大,相同的代码编译出来的代码最短, ...
+ t8 ~* p1 t& l8 v8 ]- I4 a5 `! @9 V
一起袍,一起学习。
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:494 Q% B. a/ m2 B
楼主专家了,学习
3 x. ?2 d' X! K( X8 x
过奖了,一些皮毛,对那些吃透编译器的人来说,就多想了一些而已。
, H" {  M4 L7 v+ T/ g) n# M! z# h% I/ S' B
一起学习
zbber 回答时间:2016-12-6 16:54:26
4 J4 o9 D0 Q( c; N  f9 O, u8 Q
,无回帖,不论坛& }& i9 @) p6 z1 e2 V9 [
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 手机版