[转帖]SPEC CPU 2017 单线程整数性能测试与总结 (2022)
https://zhuanlan.zhihu.com/p/574105237
简单分享最近一段时间收集的SPECint2017 rate-1单线程性能数据。由于个人时间精力限制,2022年我应该只会测这些CPU了,所以发一篇总结。
测试环境
- 编译器统一为 GCC 12
- 经过对比确认,GCC 12.1与12.2几乎不存在性能差异,因此仅在图中注明版本而不重测。
- 编译参数统一为 -Ofast -flto,-march/-mcpu等参数尽可能贴近native。
- 操作系统尽可能统一为原生启动的Debian 12 (bookworm) 或运行于WSL2
- Windows 11 22H2后WSL2的性能影响较大(观察到了5%左右的性能差异),今后会尽量使用原生Linux的成绩
- Apple Silicon设备使用macOS测试大核,使用Asahi Linux (Arch Linux ARM)测试小核。macOS下虽然可以使用taskpolicy将测试强制运行在小核上,但疑似因为节能机制导致性能无法正常发挥,最终只有Linux下一半左右的性能。
- Windows on ARM平台的WSL2存在vmwp进程抢占CPU的问题,因此手动使用Hyper-V VM安装Debian sid进行测试
- CPU主频为全默认,功耗和散热性能低到可能影响单线程性能的情况下会标注(例如6800U/1240P)。
- 内存尽可能使用平台支持的最高JEDEC参数,但会加入部分平台手调内存的测试结果,会单独注明。
测试成绩

总分排行

子项成绩
备注
- 由于znver4截至目前为止没有被GCC编译器支持,Zen 4 CPU暂时使用-march=znver3进行测试,最终成绩可能略低于其真实性能水平。
- (10/21/2022 更新) 由于 macOS 环境问题,502.gcc 子项在无法在使用 -flto 选项时通过测试,因此M1 Max等Apple处理器的测试仅对其它子项启用 -flto,最终成绩可能略低于其真实性能水平。之前的成绩对M1 Max所有的子项都未启用 -flto,因此导致M1 Max的相对位置偏低。感谢
指出之前测试中存在的问题,现已修正测试成绩以及相应的点评内容。
- (11/13/2022 更新) 增加 i9-13900K 的 P/E-core 性能,其中 P-core 测试使用taskset将进程固定于体质最好的核心上并且全程运行于 5.8 GHz, E-core 全程运行于 4.3 GHz (即两者均为默认最高boost clock)。
- (12/4/2022 更新) 增加 7950X 使用 JEDEC DDR5-5600B 内存和更强散热的表现。尽管使用的是JEDEC内存,原则上高于官方支持的5200频率依然属于内存OC。不过这样能与Raptor Lake更直接地对比相同内存配置下的表现,因此单独添加这项成绩。
- (12/4/2022 更新) 优化子项图表可读性。
- (12/31/2022 更新) 精简并移除部分冗余的Rembrandt平台成绩,更新6900HS原生Linux环境下测试的成绩。
- (1/19/2023 更新) 添加 4800U + DDR4-3200 并移除 4700U + DDR4-2666 的成绩,以更好地代表 Renoir 平台的出厂最佳表现。
- (2/11/2023 更新) 移除低功耗 7950X 测试,添加默频 7950X 成绩,更新 7950X DDR5-5600B 成绩的描述(Mem OC)
- (2/15/2023 更新) 加入 M2 Pro 的测试成绩,感谢
提供。
- (2/24/2023 更新) 加入 M2 的测试成绩。该测试于被动散热的M2 MacBook Air进行,因此可能会对单核性能略微产生影响。感谢
提供。
- (3/5/2023 更新) 加入 7950X3D 的测试成绩。
- (4/3/2023 更新) 加入 i3-N305 的测试成绩。调整总分的格式,与SPEC报告统一为3位有效数字。
- (7/2/2023 更新) 加入 7840HS/7840U 的测试成绩。
- (8/18/2023 更新) 加入 13700H P/E 核心的测试成绩。更新BIOS后重新测试13900K/7950X3D。移除冗余的7950X成绩。
- (8/27/2023 更新) 更新 Ryzen 5 3600 原生频率测试,并移除内存OC的 3950X 测试。
- (9/3/2023 更新) 加入 Snapdragon 8 gen 2 的X3/A715核心测试(使用Samsung Galaxy Z Fold5在8℃环境下进行),加入 Phoenix2 (7540U/Z1) 的 Zen4 classic/dense 两种核心测试。
- (9/11/2023 更新) 加入 Snapdragon 8 gen 2 (A510), Snapdragon 8 gen 1 (X1/A510), Snapdragon 865+ (A77), Rockchip RK3399 (A72/A53) 的测试成绩,子项成绩表格加入频率、每GHz性能,并详细描述ARM处理器的核心类型、频率与缓存信息。
点评
x86处理器的整数性能在过去4年间取得了长足的进步
AMD Zen 2/3/4的单线程整数性能(取最佳值)分别提升了16%/38%/26%。从Zen+到Zen 4性能总计提升103%,其中提升最大的是Zen 2到Zen 3这一代。
Zen 4与Zen 2都是tick性质的微架构迭代,Zen 4相比Zen 3的提升大于Zen 2相比Zen+的提升。但平均下来Zen 4的同频IPC甚至不及5800X3D(可以认为是另一种tick?)。当然,我依然认为脱离功耗和性能等参数谈IPC是没有太大意义的,何况Zen 4明年初也会有X3D版本。
10-12代的Intel桌面处理器未在图中列出,但10代只是Skylake加强版,综合现有的第三方测试可以认为11代i9略弱于5950X,12代i9略强于5950X。
13代i9-13900K的P-core实测与默频下的7950X基本持平(总分差距在±1%以内),略低于同5600 JEDEC内存配置下的7950X,相比5年前的7代提升80%。考虑到Intel的起点较高,这也是相当大的提升幅度。
单独测试13代i9的E-core性能时,它能跑出高达7.24分的成绩。这个分数超过了7-9代桌面处理器和Zen 2桌面版,以及移动端Intel 12代、Ryzen 6000系列LPDDR平台的P-core得分。当然这是E-core独占4MB L2和36MB L3产生的大力出奇迹的性能。实际使用过程中由于P-core的存在,几乎不会单独使用一个E-core运行单线程负载,因此这个成绩仅供娱乐。后续我会进行对E-core更有实际意义的rate-N测试和定功耗测试。
x86处理器移动端性能缩水非常严重
这是频率、功耗、缓存、总线、内存等多方面缩水导致的。SPECint2017是对缓存大小、内存延迟等参数相当敏感的测试,因此在同一代桌面与移动处理器的性能差距会显著高于Cinebench这类几乎只与主频相关的测试。
Zen 3的桌面端比最强的Zen 3移动端(DDR5)性能要高12%,比最强的LPDDR5移动端性能要高30%以上;Alder Lake主流SoC i5-1240P搭配LPDDR5-4800的情况下综合性能仅仅只比桌面端Skylake++略强。
ARM公版的旗舰级处理器相比前代进步明显,但中低端仍然乏力
8cx gen 3的P-core是Cortex-X1,相比前代 Cortex-A76 性能进步52%;E-core不再是A55这类顺序执行的小核心而是换成了A78,因此性能提升327%。当然功耗应该也提升了很多倍。
8cx gen 3的Cortex-X1单线程性能与主流x86移动端处理器+LPDDR5还有一些差距 (<10%) ,而且这是使用了更先进的5nm工艺达成的成绩。但实际使用起来已经不会有明显落后于主流的感觉。
8cx gen 3的Cortex-A78单线程成绩略高于Cortex-A76 (+10%) 。A78/A710这类中核应该会是中低端ARM SoC里比较流行的CPU核心,我们可以看到它们与移动端Zen 2 (如4700U)依然有相当大的差距 (>20%) ,因此可以预见的是AMD Mendocino和Intel Alder Lake-N会让这些中低端ARM SoC在Windows笔记本市场没有那么容易生存。
Apple M1/M2家族即便是放在2023年,在移动处理器中也是相当能打的水平
M1是目前唯一一个在使用LPDDR内存的前提下超过桌面端Zen 3性能的处理器(当然这和它48MB的超大SLC缓解内存延迟也有一定关系,实测SLC能覆盖12-60 MB大小的内存访问,延迟在50-70ns左右)。同时,它也是秒杀一切ARM公版处理器的存在。不仅如此,它的核心面积甚至比8 gen 1里的Cortex-X2还要小,可谓是ARM处理器里的PPA之王。
但是在2022年,M1峰值性能下的性能和功耗相对先进制程下的x86已经不再有过去那么出色。例如7950X仅需4.6 GHz就可以超过M1 Max的性能 (+2.2%) ,此时7950X的CPU核心功耗平均仅为 3.9W。而7950X在低功耗下压式散热器下就能跑出11分的成绩,比M1 Max高了足足19.6%。Apple需要继续迭代新的微架构,并且使用更加先进的制程工艺才能在绝对性能上与x86阵营保持竞争。

M1 Max 和 7950X 在同等编译器参数和相近平均功耗下的分数
即便如此,考虑到AMD Phoenix仍然要将L3缓存砍半,并且搭载AMD Phoenix的高端轻薄本多半会使用LPDDR内存,最终同性能下的能耗比可能依然不会比M1好。单论CPU核心,我认为2023年M1/M2大概率仍然是移动端最佳体验的首选,如果不考虑核显以及Windows/macOS等上层应用环境的差异。
(2/15/2023 更新) Apple M2 Pro/Max 系列提供了较为显著的性能提升,与 x86 处理器的峰值性能差距缩小的同时维持较为优秀的能效表现,继续更进一步地提供了一个在性能与功耗方面较为平衡的优秀移动端处理器选项。
以上就是2022年的SPECint2017测试总结。考虑到现在CPU的微架构迭代速度放缓,2023年大概不会需要大改测试数据与结论,因此后面可能会直接更新这篇文章。
[转帖]SPEC CPU 2017 单线程整数性能测试与总结 (2022)的更多相关文章
- 【转载】]基于RedHatEnterpriseLinux V7(RHEL7)下SPEC CPU 2006环境搭建以及测试流程 介绍、安装准备、安装、config文件以及运行脚本介绍
https://www.codetd.com/article/1137423 <版权声明:本文为博主原创文章,未经博主允许不得转载> 本次利用SPECCPU2006测试工具来进行Intel ...
- 【转载】基于RedHatEnterpriseLinux V7(RHEL7)下SPEC CPU 2006环境搭建以及测试流程(之一)——介绍、安装准备、安装、config文件以及运行脚本介绍
基于RedHatEnterpriseLinux V7(RHEL7)下SPEC CPU 2006环境搭建以及测试流程(之一)--介绍.安装准备.安装.config文件以及运行脚本介绍 其他 2018-0 ...
- VoltDB介绍——本质:数据保存在内存,充分利用CPU,单线程去锁,底层数据结构未知
转自:http://blog.csdn.net/ransom0512/article/details/50440316 简介 VoltDB数据库是一个分布式,可扩展,shared-nothing的内存 ...
- SPEC CPU 使用简介
SPEC CPU2000简介 SPEC CPU2000是由标准性能评价机构“The Standard Performance Evaluation Corporation (SPEC)”开发的用于评测 ...
- SPEC 2000 整形和浮点性能测试结果是各项基准程序得分的几何平均值,几何平均值是 n 个数连乘之 后再开 n 次根号
SPEC 2000 能够生成多种格式的测试结果报表,包括 asc,ps,raw,pdf,html 等格式,报 表所在目录为/home/sepc2000all/result. 整形和浮点性能测试结果是 ...
- [转帖]关于CPU Cache -- 程序猿需要知道的那些事
关于CPU Cache -- 程序猿需要知道的那些事 很早之前读过作者的blog 记得作者在facebook 工作.. 还写过mysql相关的内容 大拿 本文将介绍一些作为程序猿或者IT从业者应该知道 ...
- [转帖]8086 CPU 寄存器简介
8086 CPU 寄存器简介 https://www.cnblogs.com/BoyXiao/archive/2010/11/20/1882716.html 哎 没看完 感觉好复杂. 引子 打算写几篇 ...
- [转帖]为何 CPU 只用硅,而不用能耗更低的锗制作?知乎好文章
作者:鲁超链接:https://www.zhihu.com/question/28935966/answer/617701106来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明 ...
- [转帖]国产CPU性能最全盘点 宜良性竞争优胜劣汰
国产CPU性能最全盘点 宜良性竞争优胜劣汰 电子工程专辑的网站内容 其实里面说的不尽全面 比如龙芯和申威就放到一块了 一个是 MIPS 一个是Alpha 明显不一样的东西 x86的应该都不行 而且. ...
- SPEC CPU 2006编译perl 出错:undefined reference to `pow'
问题来源: 编译spec2006时,出现如下错误: cc -L/home/yrtan/benchmark/2006/CPU2006v1.0.1/tools/output/lib -L/usr/loca ...
随机推荐
- windows 和 Linux 下 git status 结果不一致
解决该问题 运行一下命令即可 git config core.autocrlf true 解释 git config core.autocrlf true 这个命令是在任何支持的操作系统上都可以运行的 ...
- CSS 基础 3 - 定位 Postion 属性
CSS 基础 3 - 定位 Postion 属性 static position 属性的默认值,元素随 HTML 流移动 top/left/right/bottom 属性无效 relative 和 s ...
- Asp .Net Core 系列:Ocelot结合Consul实现服务注册、服务发现
Consul下载地址:https://www.consul.io/downloads.html 文档:https://learn.hashicorp.com/consul/getting-starte ...
- 解锁华为云AI如何助力无人车飞驰“新姿势”,大赛冠军有话说
摘要:在2020年第二届华为云人工智能大赛•无人车挑战杯赛道中,"华中科技大学无人车一队"借助华为云一站式AI开发与管理平台ModelArts及HiLens端云协同AI开发应用平台 ...
- 华为云MVP高浩:打破AI开发瓶颈,解决数据、算法、算力三大难题
摘要:在高浩看来,大量的数字蓝领人才和AI应用开发人员构成了当前AI行业发展人才之基,这也为高校学生就业初期从事的工作指明了方向,而华为ModelArts平台在教育领域有着天然的数据.算法优势,非常适 ...
- 实践GoF的设计模式:访问者模式
摘要:访问者模式的目的是,解耦数据结构和算法,使得系统能够在不改变现有代码结构的基础上,为对象新增一种新的操作. 本文分享自华为云社区<[Go实现]实践GoF的23种设计模式:访问者模式> ...
- 断点续传(上传)Java版
PostMan 客户端调用部分见,断点续传(上传)C#版 1. 客户每次上传前先获取一下当前文件已经被服务器接受了多少 2. 上传时设定偏移量,跳过服务器已收到的长度 @SpringBootTest ...
- 成为一个合格程序员所必备的三种常见LeetCode排序算法
排序算法是一种通过特定的算法因式将一组或多组数据按照既定模式进行重新排序的方法.通过排序,我们可以得到一个新的序列,该序列遵循一定的规则并展现出一定的规律.经过排序处理后的数据可以更方便地进行筛选和计 ...
- PS 独立集中标识下修改项目采购类型增强
1.当物料独立集中标识为2,采购类型通过BAPI:BAPI_NETWORK_COMP_ADD,type_of_pur_resv传入'7',则报错"组件分配并不是未销售订单或项目库存而设的&q ...
- 【动态规划】动态规划基础 (OI wiki)
文章来自 OI wiki ,转载仅作学习使用 动态规划应用于子问题重叠的情况: 要去刻画最优解的结构特征: 尝试递归地定义最优解的值(就是我们常说的考虑从 \(i - 1\) 转移到 \(i\)): ...