如何评估现代处理器的性能——以ARM Cortex-A53为例

1 有哪些通用评价指标?

现代处理器内核的性能可以从以下几个方面进行评估:

时钟速度(Clock Speed):它是CPU内部时钟发生器的频率,以赫兹(Hz)为单位。时钟速度越高,每秒钟内执行的指令数就越多,因此性能也会更好。

指令级并行性(ILP):现代处理器采用了一些技术来提高指令级并行性,如超标量、超线程等。这些技术可以同时执行多条指令。

流水线(Pipeline):现代处理器还采用了流水线技术来提高性能。流水线将指令分成多个阶段,并且同时执行多个指令,从而使得处理器每个时钟周期可以完成更多的工作。

缓存(Cache):缓存是一种快速的存储设备,用于暂时存储处理器需要使用的数据和指令。现代处理器内置了多级缓存系统,从而可以大大降低访问内存的延迟,提高处理器的性能。

向量化(Vectorization):向量化是一种并行计算技术,可以同时处理一组数据。现代处理器内置了向量化指令集,如SSE、AVX等,可以在单个时钟周期内执行多个操作。

芯片工艺(Process Technology):芯片工艺是指用于制造处理器的制造工艺。随着芯片工艺的不断进步,处理器的晶体管数量和频率都有了大幅度提升。

2 为什么不再使用MIPS指标?

MIPS代表每秒钟可以执行的百万条指令数。具体来说,MIPS值等于 CPU执行的指令总数除以执行这些指令所花费的时间(单位为秒),再除以一百万。

在过去,MIPS评价处理器内核性能被广泛使用是因为它是衡量计算机性能的一种简单而直观的方式。然而,在现代计算机中,MIPS已经不再被广泛使用来评估处理器的性能,原因如下:

处理器架构复杂:现代处理器的架构非常复杂,包括多级缓存、预取和超标量执行等功能,这些都使得MIPS评价成为不够准确的性能指标。

指令集变化:随着处理器指令集的变化,MIPS评价可能会失去其原有的意义。例如,现代处理器引入了向量指令,可以实现并行计算,但这不会反映在MIPS评价中。

单纯指令计数难以反映性能提升: 现代处理器通常会使用更短的指令序列来完成相同的操作,从而提高性能,这些性能提升很难通过简单的指令计数进行比较。

不同应用场景需要不同指标: 不同的应用场景需要不同的性能指标,例如,数据库系统需要高并发、低延迟的I/O操作,而图像处理则需要高吞吐量的向量计算。在这些应用场景中,MIPS评价可能无法提供有用的信息。

因此,现代计算机中常用的处理器性能指标包括时钟频率、IPC(每时钟周期指令数)、功耗和浮点运算性能等。这些指标可以更准确地衡量处理器性能,并且可以根据不同的应用场景进行定制化的性能评估。

3 主推何种评价指标?

现代计算机中常用的处理器性能指标包括时钟频率、IPC(每时钟周期指令数)、功耗和浮点运算性能等。这些指标可以更准确地衡量处理器性能,并且可以根据不同的应用场景进行定制化的性能评估。

《计算机体系结构量化研究方法》的作者约翰• L.亨尼西(John L. Hennessy) 和大卫•A.帕特森(David A. Patterson)认为时钟周期时间、CPI(1/IPC,执行每条指令需要的时钟周期数)和指令数量这三个评价指标能够综合反映某个计算机系统的性能。

4 为什么选择这些指标?

究其原因,就是上一节那张图里的约束条件了。

emmm首先我们要意识到,仅仅关注指令数量和主频是不够的。可执行文件中的指令数是受到指令集体系结构和编译器技术制约的。对于同样的测试程序/负载,我们使用不同的编译器编译产生的指令数量可能不同。即使是同样的编译器和程序,在目标架构不同时,输出文件的指令数也可能有差异。

GCC的编译过程分为四个阶段:预处理、编译、汇编和链接。在预处理阶段,预处理器将源代码转换为一个更大的、包含了所有头文件和宏替换的单一文件。在编译阶段,编译器将这个单一文件翻译成汇编代码。在汇编阶段,汇编器将汇编代码转换成二进制目标文件。最后,在链接阶段,链接器将多个目标文件组合成一个可执行文件。

LLVM的编译过程分为三个主要阶段:前端、优化和后端。在前端阶段,源代码被翻译成一个中间表示(IR),这种表达方式非常接近于高级语言的语法。在优化阶段,LLVM将IR进行各种优化操作以提高程序性能。在后端阶段,IR会被翻译成目标平台的机器码。这种模块化的设计使得LLVM更易于扩展和定制,因为用户可以用自己的前端或后端替换默认实现。而且,LLVM还可以生成可重定向的对象文件,这些对象文件可以在链接时进行优化。

其次就是组成与指令集体系结构会影响CPI,比如总线宽度、主存速率,都会拖处理核的后腿。对于支持向量运算的处理核,即使每条指令需要的周期数比不支持向量指令的处理核多3倍,它也可能比后者更快地完成同一个运算任务。比如下图所示,armv7支持Dn/Qn寄存器,分别可以存64bits/128bits的数据,这样每次可以运算2/4个32位浮点数,自然就能更快地做完一批运算。

最后咱也不能迷信主频,和CPI一样,处理核周围的设备的速率也可能会制约处理核发挥真正的实力。即时处理核能跑4GHz,cache却总是miss(cache太小),或者总线总是处于忙碌状态(位宽不够),这样系统的吞吐量也是上不去的。

5 ARM Cortex-A53的性能

我找到有人对A53的IPC和FOP两个参数做了测试,结果贴在这里用作参考。

每周期指令数(IPC)

32bit浮点类型数乘/加运算任务,每周期可执行两个标量/SIMD 2(64bits)操作指令,每周期执行1个SIMD 4(128bits) 操作指令。

64bits浮点类型数乘/加运算任务,每周期可执行两个标量操作指令,每周期执行1个SIMD 2(128bits) 操作指令。

每周期浮点运算次数(FOP)

每周期可执行两次标量单/双精度浮点运算。

使用SIMD情况下,每周期可执行4次单精度浮点运算,8次乘积累加运算(FMA)。

使用SIMD情况下,每周期可执行2条双精度浮点运算,4次乘积累加运算(FMA)。

参考

  1. mips of cortex a53 - Architectures and Processors forum - Support
    forums - Arm Community

  2. Why does FPU performance differ in AArch64 and AArch32 with
    Cortex-A53? - Architectures and Processors forum - Support forums -
    Arm Community

  3. ホイール欲しい ハンドル欲しい » ARM Cortex-A53 の浮動小数点演算速度とコンパイル時間の比較 (flatlib.jp)

  4. opengl:cpufop [HYPERでんち] (flatlib.jp)

  5. 计算机体系结构:量化研究方法(第6版) (豆瓣) (douban.com)

如何评估现代处理器的性能——以ARM Cortex-A53为例相关推荐

  1. ​ ARM Cortex系列那么多处理器,该怎么区分?

    关注.星标公众号,直达精彩内容 来源:嵌入式资讯精选 最近因为要为芯片选定核,所以就在了解哪些核合适且性价比好,这是一个需要结合产品各类技术.市场分析的活,看似简单却还是需要一些储备的,今天选了一篇A ...

  2. e5620服务器性能如何,性能评估:处理器性能(1)

    六.性能评估 性能是服务器的一个重要指标,更强大的性能让服务器可以胜任更加繁重的工作,也能够实现更高的服务器整合率,为企业降低硬件上的成本.英特尔至强5600处理器相对至强5500在工艺.核心数量.缓 ...

  3. 详解ARM Cortex-M33处理器:性能/功耗/安全的最佳平衡

    基于ARM Cortex处理器的片上系统(SoC)解决方案适用于多种嵌入式设计细分市场,如物联网.电机控制.医疗.汽车.家电自动化等.我们的处理器品种丰富且基于同一个标准架构,针对不同的产品市场提供广 ...

  4. 嵌入式系统的组成、嵌入式处理器分类总结、ARM处理器系列总结、ARM Cortex-M3体系结构总结!

    一.嵌入式系统的组成 嵌入式系统的组成主要由:嵌入式硬件系统.嵌入式软件系统. (1)嵌入式硬件系统主要包括:嵌入式处理器.存储器.模拟电路.电源.接口控制器.接插件等 1)嵌入式处理器:是嵌入式系统 ...

  5. Cortex-A、Cortex-R、Cortex-M处理器的性能比较

    Cortex三种系列----A系列.R系列.M系列组合在一起就是ARM,也就是设计这些芯片架构的公司名称. Cortex就是大脑皮层的意思 一.Cortex-A先进的处理器 1.Cortex-A5 可 ...

  6. [转]Cortex-a8 arm11 arm9 xscale powerpc 嵌入式处理器实测性能

    周明的嵌入式技术博客 Cortex-a8 arm11 arm9 xscale powerpc 嵌入式处理器实测性能 Verfasst von zhoum am Do, 03/05/2009 - 15: ...

  7. [转] 高性能嵌入式处理器时代来临!多家中国芯片设计公司选择ARM® Cortex™-A9和Mali™图形处理器技术

    ARM公司(伦敦证交所:ARM:纳斯达克:ARMH)近日宣布,在过去一年多时间内,海思(Hisilicon).晶晨半导体(Amlogic).中天联科(Availink).海尔(Haier)等多家中国知 ...

  8. ARM Cortex各系列处理器分类比较

    目录 Cortex-M系列 Cortex-M0: Cortex-M0+: Cortex-M1: Cortex-M3: Cortex-M4: Cortex-M7: 规格对比 Cortex-A系列 Cor ...

  9. i.MX6UL: i.MX 6UltraLite处理器 - 低功耗,安全,Arm® Cortex®-A7内核

    i.MX6UL: i.MX 6UltraLite处理器 - 低功耗,安全,Arm® Cortex®-A7内核 概述 i. MX6UltraLite作为i.MX6系列的扩展,一系列高性能.超高效的处理器 ...

最新文章

  1. 给新创建的用户 赋予所有的权利 *.* 查看权限 删除用户 ---------DCL用户权限管理篇...
  2. 2021-02-25
  3. 定个目标|建立自己的技术知识体系
  4. mysql执行动态批处理,使用BAT批处理执行sql语句的代码
  5. LVS负载均衡之NAT模式
  6. 思科集成管理控制器IMC爆出任意代码执行漏洞CVE-2017-6616 绿盟科技发布安全威胁通告...
  7. Mavlink 协议硬解析主要代码
  8. 计算机辅助初中数学教学,计算机辅助数学教学的优势
  9. mysql中如何将几个没有关系的结果集放在一起
  10. hdu 4324 Triangle LOVE 拓扑排序 多校联合赛(三)第四题
  11. python基于给定时间戳生成 未来/过去 前进/倒退 n个时刻的时间戳操作大全(包括秒、分钟、小时、天、星期、月、年)
  12. 2018云+未来峰会圆桌面对面:以网络安全之能,造国之重器
  13. css背景图片不显示原因,excel 背景图片(css设置背景图片不显示问题)
  14. 唐宇迪学习笔记12:sklearn构造决策树
  15. 360搜索核心算法,被K后如何恢复?
  16. 物联网概论(IoT)_Chp5 物联网通信 Zigbee/蓝牙/UWB/WLAN/WiMax
  17. 烽火交换机S2000单独划分VLAN的方法
  18. 生活娱乐 360安全卫士和QQ大战
  19. Xcode 9中模拟器的位置
  20. C++阶段03笔记03【文件操作(文本文件读写、二进制文件读写)】

热门文章

  1. 移动硬盘显示位置不可用的解决方案
  2. 随机数相加等于固定值_excel固定随机数相加得一个固定值
  3. stream銆俠oxed_人体行为识别的十八般武艺是否样样精通,本文给你最全的总结...
  4. 计算机显卡发展史,从模拟到数字 显卡输出接口演变史简述
  5. Android仿直播特效之刷礼物
  6. 直播礼物特效-漫播直播礼物分析
  7. 按键短按长按连发双击
  8. python socket编程之双方相互通信简单实例_扣丁学堂Python开发socket实现简单通信功能实例...
  9. 细说 python与其他编程语言区别
  10. Three.js 3D建模必备基础