从SPEC06+最新编译器测试,了解Zen2 Renoir的较小缓存对性能的影响
Posted 微架构与高性能计算杂谈
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从SPEC06+最新编译器测试,了解Zen2 Renoir的较小缓存对性能的影响相关的知识,希望对你有一定的参考价值。
我们在之前的文章中,介绍了基于Sky Lake微架构的处理器与AMD最新推出的Zen2 Matisse微架构
在各方面性能的对比,也引入了SPEC2006 1.2版测试,今天我们将通过SPEC配合最新编译器的方式测试,Renoir的架构综合IPC性能,我们知道,Matisse的外围架构设计是内存控制器所在的I/O die是与CPU Die分离的,而最新推出的笔记本移动版Zen2,代号Renoir(雷阿诺),将I/O Die与芯片组功能都集成在7nm芯片中,理论上是可以降低内存延迟,但实际操作中,内存延迟依旧偏高。
但因为全部使用7nm制造一个完整的CPU,成本控制的需要导致实际芯片面积需要控制在一个较低的水平,这导致AMD对缓存部分进行了大幅度的削减,在桌面端Matisse上,一个8核心芯片分为2个CCX,每个CCX里面的4核心8线程CPU拥有高达16MB的L3,但Renoir则一个8核心芯片的2个CCX,每个CCX为4MB L3,相当于仅为桌面端的1/4,缓存用于提高CPU取数据效率,这势必会对整体性能造成影响,那么总体来说影响会有多大呢?哪些项目会有明显影响,哪些项目又影响较小呢?所以我们通过SPEC综合测试,将数十个各类项目通过最新编译器重新编译,以便能尽可能反映实际性能,同时会对比Matisse和Intel最新的IceLake微架构低压产品1065G7的性能。本次进行SPEC06 IPC单线程对比的Renoir产品是R5-4600H,SPEC CPU测试是一个打包有众多常用生产负载的代码的测试集合,用于展现CPU在各类环境下的CPU执行性能。
4600H的单核频率4Ghz,非常接近Icelake的1065G7,所以非常适合对比同频性能,或者说IPC。
|
R5-4600H |
i7-1065G7
|
R7-3700X
|
核心
|
6/12
|
4/8
|
8/16
|
单核频率 |
4.0Ghz
|
3.9Ghz
|
4.4Ghz
|
配置内存
|
16GB 3200C22
|
16GB 3200C22 |
32GB 3600C17
|
二级缓存
|
512KB每核心
|
512KB每核心 |
512KB每核心 |
三级缓存
|
单CCX内4MB总计8MB |
8MB共享
|
单CCX16MB总计32MB
|
AIDA64实测延迟
|
~87ns
|
~65ns
|
~70ns
|
由于涉及Intel与AMD的对比,本次测试使用通用编译选项,Intel处理器运行不开启其架构的专用优化选项,没有AVX512指令生成命令(本身也没啥用):
int=base=default=default:
OPTIMIZE= /arch:AVX2 -Qipo -O3 -Qprec-div- -Qopt-prefetch
COPTIMIZE=-Qparallel -Qauto-ilp32
CXXOPTIMIZE=-Qcxx-features -Qauto-ilp32
OPTIMIZE=/arch:AVX2 -Qipo -O3 -Qprec-div- -Qansi-alias
CXXOPTIMIZE=-Qcxx-features
使用的测试环境是Windows 10 2004操作系统
采用Intel parallel studio XE 2020,编译器版本19.1 Update1
IDE环境为Visual Studio 2017 15.9版本
首先对比的是1065G7与4600H,int测试均是单线程对比,所以重点关注的是Icelake架构的3.9Ghz VS Zen2 Renoir 4.0Ghz。int部分除400项目因为Visual studio环境问题无法编译成功,项目概况如下:
实际上有相当多的项目,Icelake相比Renior有着显著的领先优势,SPEC对访存和cache miss有较大敏感度,其中429,471,462,483,403是对L3比较敏感的项目,而429其实对L1/L2/L3都有较高要求,456项目则对load访存操作有较高要求,我们知道,Icelake的MOB可以实现128个Load操作和72个store操作,而Zen2仅为44+48个操作,而这构成了Icelake相比Renoir的巨大优势项目,那什么项目差距较小呢?分别是401/445/464三个项目差距是最小的,401是解压缩,464是H264视频编码,445是类似一种早期围棋游戏的计算,而目前媒体测试爱用解压缩基准,转码测试,很难反映AMD缓存缺失问题。
接下来是浮点部分,450/447项目因为IDE环境问题编译失败,其余共计15个项目。
1065G7依旧有非常大的优势,但具体到小项上,甚至输掉了410项目,而这是流体力学项目,在416/433/454/465四个项目上差距也很小,416和465是量子化学项目,433则是量子物理项目,不过该项目有非常高的内存瓶颈,往往CPU都是差不多的成绩,454是结构力学项目,不过值得注意的是,本身微架构的差异也是造成性能巨大差异的原因,所以从中只能看出Renoir相对Icelake的情况,只能说成绩接近的项目说明“即使缓存缩水,相比Intel Icelake的差距依旧不大”,但完整的分析缓存缩水造成的性能差异应该关注接下来对比3700X的情况。
最终落到总评上,在11个int项目和15个浮点项目后,根据SPEC给出的总分计量方法即相乘开对应数量的方的形式得出总评分数:
i7-1065G7以3.9Ghz的单核频率面对Renoir的4Ghz,int部分高出24.8%,fp部分高出19.4%,相当于有20-25%的IPC优势,这等于说即使是Zen3的移动版推出,也难以超越Icelake微架构的总体性能。那么,相对自家桌面级Matisse,缓存的损失是不是也是让Renoir在这些项目上落败呢?
首先要强调的是,通过配置低时序内存,3700X内存延迟已经降低至比4600H更低的水平,所以4600H将在缓存全面缩水,内存不占优势的情况下进行对比,其中3700X单核频率约为4.4Ghz,这意味着差距在10%左右是相对正常的,观察缓存系统对其性能的影响,首先依旧是int部分的成绩:
401/445/458/456/464的都在10%甚至更低的范围,这基本符合之前Icelake对比时的情况,429,471,462,483,403的L3敏感也体现在了这里,不过进一步对比也可看出473项目也出现了较大的差异。
其中416/433/435/444/453/454/465一共7个项目均没有出现因为缓存带来的负面影响,436/470/481/482的差距明显大,分别是物理广义相对论方程,流体力学,天气预报和语音识别,其余项目也有一定影响,值得注意的是453 PovRay是渲染项目,而Renoir在大多数渲染测试中的确均无缓存影响,尤其是Cinebench R20。
3700X性能与1065G7相当,但是是通过4.4Ghz频率换来的,如果简单的换算到同样频率下,即使是Matisse,int部分也相比Renoir高14%,ICL则高出了28%,而FP部分Matisse比Renoir高出了10%。ICL高出了22%。
最终通过SPEC测试,综合来说在26个项目的严格测试下,Renoir的IPC相比Icelake差距较大,即使相比与普通Skylake处理器来说,也会存在劣势,因为普通Skylake处理器的IPC与Matisse接近,而Renoir下降了10-14%,但因为解压缩,转码和渲染项目并没有受到太大影响,这使得其在媒体测评中表现出色,且更小的缓存,还降低了CPU整体功耗,取得了更高的能耗比。
以上是关于从SPEC06+最新编译器测试,了解Zen2 Renoir的较小缓存对性能的影响的主要内容,如果未能解决你的问题,请参考以下文章
Spec2006使用说明
从 Spec.到芯片_(数字IC模拟ICFPGA/CPLD设计的流程及EDA工具)
perl:如何从预编译版本中获取原始正则表达式?
perlbench 导致 SPEC 2006 线束之外的段错误
Angular 单元测试 mockbackend SPEC 没有期望
一文知晓浪潮云海OS在SPEC Cloud测试中的调优实践!