我想知道,如果我有ARM处理器(1GHz)和x86处理器²(1GHz)并且没有关于它们的其他信息,是否可以给出关于哪一个可能在执行某些内容时表现更好的一般说法任意(复杂)应用程序。
我知道ARM(RISC)架构是专门为某些应用程序开发而开发的,而x86架构只是传统兼容性和变通方法的汇编(没有打算抨击)。当然,重要的是要更多地了解应用程序,即哪些特定任务(以及指令)可能执行得最多。我们也撇开这些架构的不同版本。
因此,我的问题是:让这两个未指定的处理器具有1GHz的时钟频率,是否有可能给出一个有根据的猜测哪一个会表现得更好(即更快地执行一般但复杂的应用程序)。
在第二个注释:如果不可能(这是我假设的),至少需要比较哪些通用参数 - 除了将应用程序的汇编代码与架构的相应指令集进行比较?
²为了保持简单,让我们假设他们既有32位架构又没有特定的AMD或Intel功能。
答案 0 :(得分:5)
以下是我的32位GCC基准测试的比较 - 在我的网站上阅读更多内容::
http://www.roylongbottom.org.uk/
它们代表Android系统(Atom原生英特尔代码),使用Linux Ubuntu的Raspberry Pi 2 A7和基于Intel / AMD的PC的每CPU时钟Hz的百分比操作。
首先是来自Whetstone基准测试的小环路,其中Intel和ARM非常相似。
接下来是具有L2缓存速度依赖性的Linpack基准测试,后面的技术显示了改进。
最后,我的最大MFLOPS测试,针对英特尔和针对ARM的NEON编译的SSE指令,以及英特尔的飞跃。采用AVX指令的Core i7每MHz高达1147 MFLOPS。
注意结果可能取决于编译器发行版本。
Whetstone Linpack Max
Float Functions Integer Float Float
Cortex-A9 22 1.7 124 17 95
Cortex-A15 18 1.7 102 47 241
Qualcomm 800 27 1.5 146 33
Atom Z3745 30 1.7 182 22
Cortex-A7 27 0.9 126 13 86
Atom N455 19 0.7 63 12 110
Athlon 64 28 1.6 113 42
Phenom II 28 1.6 136 49 500
Core 2 Duo 31 1.6 238 41 600
Core i7 4820K 31 1.8 224 65 630
答案 1 :(得分:3)
不是真的。 x86的低功耗可能是像Atom(特别是前Silvermont)这样的低功耗设计,或者甚至是更为有限的x86设计。现代桌面/笔记本电脑x86 CPU每个时钟可以执行很多操作(每个时钟大约4个指令,禁止分支错误预测,数据依赖性或执行端口争用)。谷歌如果你想在实际代码上使用桌面CPU的IPC(每个周期的insn)数字。
对于某些事情,一个CPU可能会更快,但对于其他人来说,对于强调此列表中不同项目的任务(我刚刚编写)可能会更慢:
查看SPECint2000或SPECint2006的gcc
基准测试结果。如今,构成整个SPECint套件的其他基准测试通常被认为不那么有用。 (source - Realworldtech forum discussion。是的," Linus"他同意的是Linux成名的Linus Torvalds。)
你不能游戏gcc,它相对于游戏拥有相当大的缓存空间 其他人,强调分支预测器等等。因为SPEC没有 包括浏览器或GUI基准测试,gcc可能是你最接近的 来实际测量智能手机的性能。
答案 2 :(得分:0)
不,不公平。比较任何两个随机车辆的任何特定性能指标(最高速度,某些赛道上的单圈时间,里程,舒适度,安全性等),仅仅因为它们都具有相同数量的车轮。仅仅基于车辆的车轮数量和品牌名称(而非车型)进行预测并不是一个有趣的比较。