https://zhuanlan.zhihu.com/p/574105237
x86处理器的整数性能在过去4年间取得了长足的进步
x86处理器移动端性能缩水非常严重
ARM公版的旗舰级处理器相比前代进步明显,但中低端仍然乏力
Apple M1/M2家族即便是放在2023年,在移动处理器中也是相当能打的水平

简单分享最近一段时间收集的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)的更多相关文章

  1. 【转载】]基于RedHatEnterpriseLinux V7(RHEL7)下SPEC CPU 2006环境搭建以及测试流程 介绍、安装准备、安装、config文件以及运行脚本介绍

    https://www.codetd.com/article/1137423 <版权声明:本文为博主原创文章,未经博主允许不得转载> 本次利用SPECCPU2006测试工具来进行Intel ...

  2. 【转载】基于RedHatEnterpriseLinux V7(RHEL7)下SPEC CPU 2006环境搭建以及测试流程(之一)——介绍、安装准备、安装、config文件以及运行脚本介绍

    基于RedHatEnterpriseLinux V7(RHEL7)下SPEC CPU 2006环境搭建以及测试流程(之一)--介绍.安装准备.安装.config文件以及运行脚本介绍 其他 2018-0 ...

  3. VoltDB介绍——本质:数据保存在内存,充分利用CPU,单线程去锁,底层数据结构未知

    转自:http://blog.csdn.net/ransom0512/article/details/50440316 简介 VoltDB数据库是一个分布式,可扩展,shared-nothing的内存 ...

  4. SPEC CPU 使用简介

    SPEC CPU2000简介 SPEC CPU2000是由标准性能评价机构“The Standard Performance Evaluation Corporation (SPEC)”开发的用于评测 ...

  5. SPEC 2000 整形和浮点性能测试结果是各项基准程序得分的几何平均值,几何平均值是 n 个数连乘之 后再开 n 次根号

    SPEC 2000 能够生成多种格式的测试结果报表,包括 asc,ps,raw,pdf,html 等格式,报 表所在目录为/home/sepc2000­all/result. 整形和浮点性能测试结果是 ...

  6. [转帖]关于CPU Cache -- 程序猿需要知道的那些事

    关于CPU Cache -- 程序猿需要知道的那些事 很早之前读过作者的blog 记得作者在facebook 工作.. 还写过mysql相关的内容 大拿 本文将介绍一些作为程序猿或者IT从业者应该知道 ...

  7. [转帖]8086 CPU 寄存器简介

    8086 CPU 寄存器简介 https://www.cnblogs.com/BoyXiao/archive/2010/11/20/1882716.html 哎 没看完 感觉好复杂. 引子 打算写几篇 ...

  8. [转帖]为何 CPU 只用硅,而不用能耗更低的锗制作?知乎好文章

    作者:鲁超链接:https://www.zhihu.com/question/28935966/answer/617701106来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明 ...

  9. [转帖]国产CPU性能最全盘点 宜良性竞争优胜劣汰

    国产CPU性能最全盘点 宜良性竞争优胜劣汰 电子工程专辑的网站内容 其实里面说的不尽全面 比如龙芯和申威就放到一块了 一个是 MIPS 一个是Alpha 明显不一样的东西 x86的应该都不行 而且. ...

  10. SPEC CPU 2006编译perl 出错:undefined reference to `pow'

    问题来源: 编译spec2006时,出现如下错误: cc -L/home/yrtan/benchmark/2006/CPU2006v1.0.1/tools/output/lib -L/usr/loca ...

随机推荐

  1. JVM学习-Class文件结构

    文章原文:https://gaoyubo.cn/blogs/844dc0e7.html 一.Class类文件的结构 任何一个Class文件都对应着唯一的一个类或接口的定义信息. 但是反过来说,类或接口 ...

  2. LeetCode 二分查找篇(69、33、704)

    69. x 的平方根 实现 int sqrt(int x) 函数. 计算并返回 x 的平方根,其中 x 是非负整数. 由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去. 示例 1: 输入: ...

  3. Serverless 架构就不要服务器了?

    摘要:Serverless 架构不是不要服务器了,而是依托第三方云服务平台,服务端逻辑运行在无状态的计算容器中,其业务层面的状态则被开发者使用的数据库和存储资源所记录. Serverless 是什么 ...

  4. DTT第7期直播回顾 | 低代码应用构建流程和适用场景,与你想的一样吗?

    摘要:本期直播主题是<揭秘华为云低代码技术微认证>,向开发者们讲述低代码的发展历程,介绍华为低代码平台应用魔方AppCube的开发能力,解读华为低代码的认证和学习体系 本期直播详解 本期直 ...

  5. 当你运行npm run命令时,会发生什么?

    摘要:今天我们来聊一聊运行npm run命令之后会发生什么. 本文分享自华为云社区<运行npm run命令的时候会发生什么?>,作者:gentle_zhou . 先前发了一篇"运 ...

  6. 数字化转型鸿沟如何消除?ROMA Connect融合集成,联接企业应用现在与未来

    摘要:ROMA Connect平台正在以"联接和融合"的方式,重塑传统企业上云的路径--"条条大路"通向云端. 本文分享自华为云社区<[大厂内参]第13期 ...

  7. SDK设计与封装:从基础概念入门到架构设计落地笔记

    什么是 SDK? SDK 全称 Software Development Kit,广义上的 SDK 是为特定的软件包.软件框架.硬件平台.操作系统等建立应用程序时所使用的开发工具的集合(在 iOS 项 ...

  8. 十大 CI/CD 安全风险(五)

    在本篇文章中,我们将了解第三方服务的监管不足,工件完整性验证及日志可见性不足这三个关键 CI/CD 安全风险,并给出缓解相应风险的建议与措施. 第三方服务监管不足 CI/CD 攻击面包括企业资产,例如 ...

  9. BAPI_PO_CHANGE 采购订单修改服务

    修改服务页签里面的价格和数量,达到修改净价和条件里面金额的目的 数据可以通过采购订单查询ESLH和ESLL表获取 "------------------------------------- ...

  10. POJ:3660 Cow Contest (传递闭包 + Floyd)

    POJ 3660 http://poj.org/problem?id=3660 思路: 传递闭包 输入A > B,那么我们可以建立一套A ->B 的边. 然后求出传递闭包. 判断一个人是否 ...