写在最前面

说了这个测试主要是想说arm和X86的IPC(同频性能),评论一群文章都没好好看的人说这不能比那不能比的半吊子真的要把我搞气了。还有说Gamss慢的人,至少全中国也找不出几个能写出来这种软件的人,再说Gamess跟Gaussian比真的慢吗?还有喷AVX的,不要跟着Linus大神屁股后面秀优越,如果open CL的调用能跟调用原生CPU浮点计算一样简单,再提升一下效率的话AVX才完成它的使命(顺便说一下树莓派4 GPU没Open CL)。说A72老的,华为鲲鹏920全系都是A72难道跟树莓派一样也是省成本吗?其实在我心目中A72是非常优秀的arm构架,同期的骁龙82X应该也是迄今为止安卓IPC最强的SOC。

嘤特尔的挤牙膏技术太强,haswell相对Comet Lake 的IPC在7年内提升不到20%(CPU-L里面有跑分,可以直接比i3-10300和i7-4790k)。再说最新的跑分甚至以后的构架都可以通过对应构架的跑分相换算,不懂有啥不能比的???

最近被苹果新mac搭载arm处理器的消息刷屏了,各路媒体发表各种看法。有人说arm性能好,嘤特尔快要倒闭了,有人说arm性能差,是不能用的垃圾,但是双方都没有用数据说话。

我自己也在arm和X86平台上都弄了很多东西,比如自己编译运行了计算化学的开源软件如Gamess和Gromacs(留有笔记),也跑了很多跨平台语言比如Java(留有Minecraft服务器的笔记)和Python(我也做过OpenCV识别验证码和Pyscf),心里早就有底了。主要是笔者手头也没mips和RISC-V的linux开发板,要不然测试就一起做了,就可以搞一个大新闻,可惜搞不得。

那么arm相对x86的性能究竟怎么样呢,我简单的做一下测评,本人水平一般,很多东西也不懂,如果有错误或不足请指教。

机器1.树莓派4B(BCM2711)

机器2.戴尔飞匣3000(i5-5200u+GT920M D3 2G)

机器3.E5-2698 v3(测试数据来自https://www.v2ex.com/t/526727)

其他参考数据:各公有云机器(测试数据来自常见公有云机器的unixbench跑分对比_weixin_44706392的博客-CSDN博客_unixbench跑分排行)

跑分的部分数据已上传至github,至于为啥不是全部,是因为前期的数据发完这篇文章都删了,数据是后期重新跑的。

panxiuwen/UnixBench-Score​github.com

评论区说可以在安卓手机上运行测试,笔者在小米6上在Termux和Linux Deploy用gcc编译了跑分软件,跑出来的分数也贴出来

https://zhuanlan.zhihu.com/p/162121013​zhuanlan.zhihu.com

主要测试工具是笔记本使用威刚8G DDR3L 1600,树莓派使用4G 32bit LPDDR4 3200,刚好理论带宽相同(经过某位大神的提醒,其实LPDDR4性能还是和DDR3L性能差距很大的),测试硬盘使用同一块镁光BX300,测试时寿命均剩余99%,其他网络数据仅供参考。

树莓派使用的是树莓派基地的debian10 arch64 U3版,笔记本使用debian10来源官方镜像,gcc和cmake均来源于清华源,测试软件为UnixBench5.1.3,来源github

kdlucas/byte-unixbench​github.com

测试项目,说明翻译自github

Dhrystone: 测试文本处理能力

Whetstone:测试浮点运算效率和速度

Execl Throughput:execl 吞吐,这里的execl是类unix系统非常重要的函数,非办公软件的execl测试

File Copy:文件的读、写、复制测试

Pipe Throughput:进程之间的通讯

Pipe-based Context Switching:两个进程通过管道交换

Process Creation:进程创建

System Call Overhead:测试衡量进入和离开系统内核的消耗

Shell Scripts:一个进程可以启动并停止shell脚本的次数

下面的测试均只使用单核成绩,跑一次需要30min左右

1.探究存储介质和跑分的关系

SSD和sd卡对跑分的影响

第一项树莓派直接使用USB3.1的硬盘盒无SD卡引导启动,第二项用闪迪32G的C10的SD卡,Rate值为BX300的跑分值/SD卡的跑分值。结果很明显,sd卡跟SSD比误差在3%范围内,属于正常测试误差波动,也就是说这个测试反正跟存储介质无关,所以所有测试数据的跑分包括网上的都不会被存储设备拖后腿。

2.探究主频与跑分的关系

我们将树莓派分别锁频至0.6Ghz和1.5Ghz进行跑分,由于1.5/0.6=2.5,所以根据表中的数据可以发现,频率和某些跑分并不是线性的,所以我们挑出跟2.5比较近似的Dhrystone、Execl Put、Copy 256、Pipe put和System Call做IPC(同频性能)计算

注:我选择用树莓派做频率测试的原因是因为X86平台频率锁不住

3.探究处理器跑测试时的真实频率

这里的IPC值我就直接粗暴的将跑分数除了单位Ghz的主频,查阅资料得知i5-5200u的睿频2.7,E5-2698 v3是3.4。所以5200的IPC值就是第一排全部/2.7,2698的IPC就是第二批全部/3.4。看得出来这个计算出来的IPC结果可信度非常高,因为5代i5和3代E5的构架都是haswell(Broadwell就是14nm的haswell,所以看到嘤特尔6代之后都是lake就知道是在理直气壮的挤牙膏了),所以两个处理器的IPC值越接近说明测试越好。

4.将X86的分数和arm进行比较

从最后的结果可以看出,arm的IPC与X86仍然有一定的差距,只有0.5-0.8,像Copy和Pipe put分数低我认为可以通过提高缓存来解决,像Dhrystone、Execl Put这样的文本处理和计算型功能的成绩已经不是特别低了。但是最后的成绩,单核要就差个2-4倍,没办法树莓派主频太低了,而且arm貌似对主流桌面端不感兴趣,手机端的主频也就摸到3.0,如果能和amd一样用7nm hp工艺上到桌面级能跑个4.0就很惊喜了。

最后的测试的结果跟我的感觉是一样的,树莓派的性能比X86落后很多,A72的同频性能也跟X86差了不少,特别是在AVX512这样的指令集面前,arm的NEON(32位相当于AVX64、64位相当于AVX128)指令更显得力不从心。不过我还是相信苹果同志能把东西搞好,相对于arm很保守的公版构架,和总是扣扣索索的安卓阵营,果子总是一副财大气粗的霸气,而且A72构架是第二代64位arm构架,估计A78的IPC经过更迭了那么多代也是会好很多(手机的安卓实际上并不是纯linux,所以不能用GCC编译跑分软件进行测试),arm X1更是有了大干一番的架势。我相信arm别像嘤特尔那样挤牙膏,IPC赶上x86还是指日可待的。

最后谈一下本人的一些看法

综上所述,我们可以看到arm和x86性能上依然有一定的差距,但本人觉得只要价格香,性能不太烂就一定有人买单,比如AMD的消费级锐龙和服务器霄龙。顺便吐槽一下华为的鲲鹏云卖的比自家X86云还贵不算乳华吧?退一万步来讲,可能在2020年结束之前,世界最强超算依然是富士通。或许对于某些领域,没有什么是堆核不能解决的。但是对于某些闭源的领域,arm在生态上就无力无法与x86争锋。甚至amd都无法与嘤特尔争锋,比如很多软件使用的MKL数学函数库(应该是个可选项,但是不得不承认在嘤特尔处理器上表现最好的就是MKL)或Intel Fortran compiler(在此批评开源的multiwfn不兼容gFortran)。但是我相信在开源呈现出一种趋势下,特别是又认了苹果、华为、高通和微软这几个干爸爸的好环境下,arm将不负众望的冲出x86的封锁,至于会不会成为"屠龙勇士",或者屠龙勇士又会不会再变成恶龙,我不敢预言。即便如此,我还是更看好开源的RISC-V,这将是以种花家为首的新兴国家打破科美帝技封锁,进入乌邦托的又一重要武器。诛神的黄昏马上开场,可能是天下分久必合,合久必分吧,我们又可以重回80年代末90年代初那个百花齐放的时代...........

源 arm_arm和X86处理器性能简单测试相关推荐

  1. MySQL中MyISAM引擎与InnoDB引擎性能简单测试[转]

    MySQL中MyISAM引擎与InnoDB引擎性能简单测试 [硬件配置] CPU : AMD2500+ (1.8G) 内存: 1G/现代 硬盘: 80G/IDE [软件配置] OS : Windows ...

  2. INNODB在裸设备上的性能简单测试

    INNODB在裸设备上的性能简单测试     裸设备简单测试 2009年4月28日 我这里用的SUN VBOX以及SUPER-SMACK来得到的数据. 至于SUPER-SMACK的介绍参见我以前的文章 ...

  3. cpu针脚测试软件,Sandsifter:一款专门针对X86处理器的模糊测试工具

    前言 今天给大家介绍的是一款名叫Sandsifter的x86处理器模糊测试工具.该工具可以通过系统生成的机器码来搜索处理器指令集,并通过监控异常数据来审计x86处理器中的隐藏指令和硬件漏洞.Sands ...

  4. android ORM框架的性能简单测试(androrm vs ormlite)

    2019独角兽企业重金招聘Python工程师标准>>> 前言 看了一下现在的android设备,性能都不差,就懒得直接用sqlite,直接上ORM框架把,上网搜了一圈,觉得andro ...

  5. MySQL中MyISAM引擎与InnoDB引擎性能简单测试

    转自:http://blog.csdn.net/heiyeshuwu/archive/2007/04/10/1559640.aspx [硬件配置] CPU : AMD2500+ (1.8G) 内存: ...

  6. mysql引擎测试_mysql引擎性能简单测试

    [硬件配置] CPU : AMD2500+ (1.8G) 内存: 1G/现代 硬盘: 80G/IDE [软件配置] OS : Windows XP SP2 SE : PHP5.2.1 DB : MyS ...

  7. Storm性能简单测试

    看了很多关于Storm性能的文章,说法不一,自己根据实际业务测一下是否能满足自身要求(只做了简单集群和代码调优) 场景:kafka消费数据标准化后存储到Hbase中 服务器资源: 两台32G内存做Su ...

  8. e5 2680 v性能服务器,E5 V2处理器性能全面测试_浪潮服务器_服务器评测与技术-中关村在线...

    在测试状态下,两个平台均会以主板的Auto状态中进行成绩测定,节能选项和睿频加速功能将默认开启.测试平台2台NF5280M3 硬件平台:CPU2*Intel(R) Xeon(R) CPU E5-269 ...

  9. Windows IO 性能简单测试

    转自:http://bbs.csdn.net/topics/360111289, 有改动. #include <windows.h> #include <stdio.h> #i ...

最新文章

  1. tf.expand_dims() 的用法
  2. javascript日期比较
  3. msf生成linux shellcode,MSF-Shellcode生成和使用
  4. [计算机视觉:算法与应用]学习笔记一:图像形成
  5. python显示语言错误_Python错误和异常
  6. aws dynamodb_带有AWS DynamoDB的React式Spring Webflux
  7. python 核心编程第5章(习题)
  8. ubuntu 改linux密码忘了怎么办,Ubuntu 14.04忘记root密码的解决方法
  9. 关于动态规格的新理解
  10. java log info乱码_跟光磊学Java开发-Java开发常用API的使用
  11. 杭州云栖大会10月起航,这里有一份最全的大会剧透
  12. linux开发板访问互联网 笔记本win10中虚拟机
  13. Linux 系统配置信息查询 各种查看Linux配置的方法
  14. 云服务器被恶意ddos攻击了怎么办?
  15. Android开发笔记之视频录制
  16. 使用GDB调试Linux内核空指针问题
  17. iTop4412---linux 3.0.15内核编译错误
  18. 红帽第四季度订阅的强劲增长 整体表现超预期
  19. ByVal 与 ByRef(默认值) 的区别
  20. 饭卡管理的C语言实现

热门文章

  1. 如何隐藏android的屏幕上的Title Bar
  2. SharePoint 2013常用开发工具分享
  3. JPA 2.1: What is new
  4. 设计模式原则篇:(1)单一职责原则--Single Responsibility Principle
  5. IaaS、PaaS和SaaS 公司都做些什么
  6. wcf返回datatable必须给tablename赋值
  7. 合理修改3389端口
  8. 【PP操作手册】工作中心的维护
  9. 日期函数:取过去或者将来多少天的日期
  10. 库存管理-历史库存和收发存系列-俄罗斯库存报表J3RFLVMOBVED1