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

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

[复制链接]
wolfgang 发布时间:2016-12-5 21:03
本帖最后由 wolfgang2015 于 2018-1-12 10:33 编辑 9 H( U  I. F% u$ ?4 m( x
/ H* Q2 i( Z! W( K; l
  年末了,工作的事情终于告一段落,这几天有空了,又刚好碰到F769I-Disco系列的评测活动,发现即便同一芯片和板子跑出来的Coremark 分值也参差不齐,有高有低。周末把自己宅在家里一天,用自己的环境和手边的几个Nucleo板子做几个简单的跑分测试。然后通过自己的跑分同其他网友的跑分以及官方的跑分做对比、参考看看是否有什么问题造成了各自跑分不同
5 k* z# f6 n1 H  I* g; l) c; G# `3 e" H$ S6 g# C

- {0 W6 T/ d/ n% z$ q9 t3 [直道目前,ST推出了超低功耗、主流型、超高性能型几系列的芯片
0 H/ d! L2 h' ?* n$ O 001.jpg & i  J7 r7 k! m, m
( |0 x. |9 p: M1 d) K' Y" `& W4 x8 }
2 v! v; K, S5 ?
同时官方也给除了自己的Coremark
/ Q+ B$ l/ d1 X7 E1 e# JF0/F1/F3主流系列的Coremark 分值如下图:
# ]8 ~7 X. B0 D& S, s8 m0 p1 |0 @
2 m# x, W" X- O; @ 002.jpg ; t# F9 l8 Y: A+ I- H) N& q: {6 G

6 y5 u1 K( S9 S1 N# t/ |

: p# T9 H/ E. m1 H0 @L0/L1/L3超低功耗系列的Coremark 分值如下图:) p0 {+ q9 ^  \5 }1 M$ a
003.jpg   X' v( |9 Z4 B* `5 W! E; r- _! Z
  X+ c1 N( W% N5 B

+ a, e5 p1 ]0 eF2/F4/F7超高性能系列的Coremark 分值如下图:1 Z; \$ z* Q9 m6 H$ m7 J
004.jpg 6 \: O: j  |0 m7 P& W

2 }$ ~$ c$ ?: Q- s3 e8 E4 |

8 t. [! ^. V+ g" ~1 i: z5 A我这里板卡有限,有的还在做其他的开发试验这里就先做了几个Nucleo开发板的评测:- {) M+ A& R9 o- h" u/ w! e* {
* V( ^6 F  a( d+ k$ c
  }4 v9 j& r$ B, G  R) n
Nucleo-F030R8  CoreMark 1.0 : 76.456107 参考官方跑分:106(同主频)跑分对比:72.13%
( O- Y: A* |- U( G* m/ g! qNucleo-F401RE  CoreMark 1.0 : 217.959895 参考官方跑分:604(180MHz)不具对比性
* ~+ \; ~! E% M; iNucleo-F767ZI  CoreMark 1.0 : 901.117386 参考官方跑分:1082(同主频) 跑分对比:83.28%  0 l: ?2 X" Y, q9 `
Nucleo-L073RZ  CoreMark 1.0 : 55.522653 参考官方跑分:75(同主频) 跑分对比:74.03%% Q" a+ K, _7 R5 E. u) M' T2 J
Nucleo-L432KC  CoreMark 1.0 : 205.581539 参考官方跑分:273(同主频) 跑分对比:75.30%  # O+ K8 x1 z$ ^2 b7 v5 V+ P" ~
Nucleo-F413ZH  CoreMark 1.0 :  259.197180 参考官方跑分:604(180MHz)不具对比性) ^+ Z8 L  v( [5 E. ~
$ W  @9 @# D8 l1 w- d2 _
基本上均为官方跑分的72%~75% ,性能相差近1/4。F7性能最接近在83.28左右比其他的跑分高10%左右,,不知道这是不是得益于芯片的性能提升和大缓存技术,平滑了编译器优化等级带来的影响。
: p( _/ S% G- f
! T% r  b! p3 t
% Y$ L6 I$ h# c- T9 B( e' r
排除了验证方法的差异后,其实可以得出这样的一个结论:
% G0 d& c  B/ a# u/ N  B# @8 O9 H, y; R1 Y3 y  @5 b
    评测跑分的工具——GCC编译器存在着差异
& G# {7 M0 h2 W4 Z
- ^% L( d" P! @* {
; s8 b& F% y! W' w
跑分对编译器的优化等级 -O 参数有严重倚赖,各位所使用的ARM编译工具属于以下三大体系中的一种4 @' W& Q  j$ c, v1 J& t2 A6 I
1、ARM RealView (armcc)     其代表工具是:Keil MDK& C  X; F; m8 i
    优化等级能到 -O3
! d' W, C, m1 \+ l" W5 O5 r' J" F! F& w+ c: t# U" c* t
2、IAR EWARM (iccarm)       其代表工具为:IAR Embedded Workbench" g2 ?2 N3 ?- K2 t& x. I
    优化等级能到 -Ohs    (height speed)3 I/ z5 x# }8 h+ b" C! A7 |$ W; D
! J: V1 l- h/ W  X
3、GNU Compiler Collection (gcc) 代表工具就是:Eclipse + Ac6  /  Linux + arm-none-eabi
6 i0 o+ ]1 |4 R& ^3 y# i    优化等级能到 -O3# W, n  @1 p- g3 m4 K" m! A

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

* g; {7 U) I$ n  H7 t2 k+ U& x5 j0 G  三种编译工具,是由不同的编译厂家/爱好者制作,其编译器编译出来的代码大小、执行效率是不同,即便在同一款主板上执行,执行的结果也是不样的。
. H) }; x( g1 l0 K# T
: C1 M" G1 Y- f# c0 I1 n2 z
  跑分只是一个我们了解编译器、了解主板芯片性能的一个直观表现,这个结果可为我们选择编译器提供了参考和借鉴。在什么样的环境下用什么样的编译器提供一些直观体验。
6 o0 t. ?: t. v. B4 z9 o, l9 \* l& }$ O- j

; }6 x- v# v$ I# j! f0 b  功欲善其事,必先利其器。评测的结果测得了对开发板的了解,对开发工具的了解,还是很值得的。希望大家能利用自己手边的板子加入到相关评测活动中,能从侧面对ST芯片和主板有深入一点的了解,也能对工具了解深入一步
7 z/ q+ T7 e; H
1 B0 @# v" p( C, a4 P; h; o: S

+ _2 R! C/ ]9 O7 c相关评测文档参考:
- x- `0 s. G) t+ h/ X  q3 z       [Coremark跑分评测] Nucleo-L073RZ Coremark跑分
. s8 Y7 L  F/ L        [Coremark跑分评测] Nucleo-L432KC Coremark跑分
8 R, S% I# r, K: }+ B        [Coremark跑分评测] Nucleo-F030R8 Coremark跑分7 E$ [. ~; z4 A$ z( |
        [Coremark跑分评测] Nucleo-F401RE Coremark跑分       % F  V* F; K& |' N7 |2 {& {9 u
        [Coremark跑分评测] Nucleo-F767ZI Coremark跑分      
# w  Q! j: n9 [        [Coremark跑分评测] Nucleo-F413ZH Coremark跑分      
+ o+ Y% i" L) o( k& r8 s+ t& ^/ k+ {. r( ^

2 `3 ?" H* B5 b5 |. y6 p
, V9 ^1 P0 q# R9 L
) _7 ^6 W! p1 y  c5 I& a1 p4 d# ~/ ~  K2 `1 Y8 [

6 P8 l) c) c  U; s, W; N& l/ n0 g  |1 H( c8 N  s

4 @4 u" ~- [4 `$ }+ l( P6 _; L! ^( a& S8 E5 c

) \+ E: E$ k4 v1 A( W0 c1 M' B
( D% v' d8 c& C* w: O
0 Z( U4 L( T2 s' F/ i9 s, v$ v2 M+ N5 n
0 ]* k  p( B6 r( y5 c* i

4 o8 y1 P2 J1 F( d% C1 z4 \+ A
$ X' y6 a  x5 ~8 Y6 j) j, T  \; I4 T- W0 K/ C
收藏 1 评论18 发布时间:2016-12-5 21:03

举报

18个回答
wolfgang 回答时间:2016-12-6 09:24:21
本帖最后由 wolfgang2015 于 2016-12-6 09:30 编辑
1 d% T$ ~9 H2 H; J  d$ F" a
左岸右岸 发表于 2016-12-6 09:20: A/ u' s8 F1 k9 u- V
IAR的优化效率相对高点
; H5 G$ K6 V* A4 u
只是这点跑分上得出相对高点,其他的相关编译器规范指标,还无从得知。有些性能的提升会牺牲编译后的代码段长度,牺牲浮点运算,当然没有浮点运算的CPU自然不会,这仅仅是个跑分测试,如果是多信号的计算验证,相同时间内,或者一定时间内谁的计算结果接近于样本值,这才是考验MCU计算能力主要表现。
! Q/ c2 J5 C; C, _+ g% d! f5 m6 D; _) U' {/ Z7 z
要不别人也不会推出这么好的开发工具。
& z; j7 K6 Q6 U2 H
高二毛 回答时间:2016-12-6 08:22:06
感谢分享,讲解的很想详细啊。上面几个编译器汇总,貌似IAR的编译最强大,相同的代码编译出来的代码最短,执行效率也就更高一些。2 r* T# b- @9 \3 n# _1 s6 O8 B
楼主如果有时间可以将一段代码在三个编译器上都编译一下,然后看一下汇编代码部分,进行对比。
% O6 L, R7 r# J4 _$ y为楼主向技术的根里刨的精神点赞!!!
wolfgang 回答时间:2016-12-6 15:57:08
高二毛 发表于 2016-12-6 08:22
" }& ^- ?2 G2 J$ s感谢分享,讲解的很想详细啊。上面几个编译器汇总,貌似IAR的编译最强大,相同的代码编译出来的代码最短, ...
# _! z* W, I- F
一起袍,一起学习。
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
3 R/ ~3 v2 q0 r  j* f  J楼主专家了,学习

* O$ R! }" ^4 E& e4 @. Q过奖了,一些皮毛,对那些吃透编译器的人来说,就多想了一些而已。2 v& t7 }: I/ e

% H2 Y1 r; ~* Q! v$ U" A1 |一起学习
zbber 回答时间:2016-12-6 16:54:26
) m( b2 N' {) S' V! m9 ?& F# ]
,无回帖,不论坛* O: \" _3 ]. H0 ~
wolfgang 回答时间:2016-12-26 00:07:25
已更新F7
斜阳 回答时间:2016-12-26 10:06:18
谢谢楼主评测
12下一页

所属标签

相似分享

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