[转帖]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 ...
随机推荐
- JNA入门(一)
JNA入门,代码在github写得明明白白:https://github.com/java-native-access/jna/blob/master/www/GettingStarted.md 一. ...
- 华为云PB级数据库GaussDB(for Redis)介绍第四期:高斯 Geo的介绍与应用
摘要:高斯Redis的大规模地理位置信息存储的解决方案. 1.背景 LBS(Location Based Service,基于位置的服务)有非常广泛的应用场景,最常见的应用就是POI(Point of ...
- k8s源码Client-go中Reflector解析
摘要:通过本文,可以了解Reflector通过ListWatcher从Kubernetes API中获取对象的流程,以及存储到store中,后续会对DeltaFIFO进行源码研读,通过结合inform ...
- Kubernetes(K8S) Controller - StatefulSet、DaemonSet 介绍
无状态和有状态 无状态 Deployment 认为Pod 都是一样的.javademo1-6fb64c4664-dj4dh.javademo1-6fb64c4664-dj54s 它们的内容是一样的. ...
- 阿里云CentOS数据盘挂载(磁盘扩容)
1. df -h Disk label type 值为dos表示MBR分区,值为gpt表示GPT分区. [root@iZuf66gcq71y5hlfv02w6aZ ~]# yum install -y ...
- 微服务网关 —— SpringCloud Netflix Zuul
概述 Spring Cloud Zuul 是 Spring Cloud Netflix 子项目的核心组件之一,可以作为微服务架构中的 API 网关使用,有以下用途: 鉴权:对于访问每个服务的请求进行鉴 ...
- 数据工程师必备的8项技能,不要只知道Python!
欢迎关注公众号:机器学习算法与Python实战(ID:tjxj666) 原作:Mohammed M Jubapu 译者:机器学习算法与Python实战(公众号ID:tjxj666) 英文:https: ...
- Android WebView 踩坑日记,字体怎么突然变小了???
背景 最近,端内在做 webView 统一的时候,个性签名中的 WebView 替换为 CustomWebView 之后,发现字体突然变小. 一开始不知道是什么原因,通过二分法查找最近的提交,排查之后 ...
- OS | 文件系统总结
文件系统总结 逻辑文件面向用户,学习时应该掌握不同的逻辑文件之间的特点 目录文件时链接逻辑文件和物理文件的桥梁,学习时应该体会到目录文件时如何优化访问时间 物理文件是指文件的数据如何存储在磁盘等存储设 ...
- Java | 个人学习指南笔记
前言:由于作者已经有C语言,C++和Python语言的基础了,所以在文章的编写时会以这几门编程语言作对比.本文学习自 C语言中文网的 Java 教程,部分内容引用自这.引用内容仅作学习使用. 第1章: ...