正文内容 评论(0)
一、全新的Zen4内核:前端大变、不一样的AVX-512
AMD锐龙7000系列的性能大家都见识过了,提升幅度可能没有预想得那么猛,但依然诚意十足。
锐龙9 7900X作为次旗舰,就足以碾压12代酷睿顶级灰烬版i9-12900KS。主流的锐龙5 7600X更是再次展现爆款潜质,直接让i5-12600K抬不起头来。
至于和Intel 13代酷睿究竟鹿死谁手,还要到这个月底才能见分晓了。
按照AMD的官方数据,Zen4相比于Zen3,同等性能下功耗可降低至多62%,同等功耗下性能可提升至多49%!
今天,我们就来深入了解一下Zen4架构、平台的革新之处,看看如此巨大的提升是从而来的。
先从Zen架构的历史讲起……
Zen4已经是AMD Zen系列架构的第四代(Zen/Zen+算作一代),对比来看它的改革、提升幅度都不是最大的,更多的是在Zen3基础上的一次深度优化增强,并在新工艺的加持下大幅提升频率,最高加速频率不但首次突破5GHz,而且跨越性地达到了5.7GHz!
对比四代架构,初代Zen的变革、提升幅度最猛(当然主要是推土机实在太弱了),Zen2是一次优化升级,尤其chiplet设计奠定未来基础,Zen3则是再一次革命性的大变,19% IPC提升也非常感人,Zen4再来个小步快跑就非常符合情理和逻辑了。
按照AMD的说法,Zen4架构的设计目标有三个方面:
一是性能,IPC(每时钟周期指令数或同频性能)和频率提升幅度都要达到两位数(超过10%);
二是延迟,通过增大二级缓存、改进缓存有效性,大幅降低平均延迟;
三是能效,在整个TDP(热设计功耗)范围内,显著降低动态功耗。
为了达成以上目标,Zen4对整个微架构体系进行了升级优化,包括前端、执行引擎、载入/存储单元、缓存、指令集等等,后边我们会一一讲到。
整体而言,Zen4架构的核心升级点包括:改进分支预测、增大OP指令作缓存、增大指令退役队列、增大整数/浮点寄存器文件、加深核心缓冲吞吐、浮点单元支持AVX-512指令、改进载入/存储单元、增大二级缓存。
前端部分变化较大,这里包括指令缓存、分支预测、解码器、指令缓存、微指令队列等模块。
Zen4架构重点改进了分支预测部分,包括每时钟周期预测两个跳转分支、一级缓存BTB(分支目标缓冲)增大50%达到1.5K条目、二级缓存BTB扩容从6.5K略增至7K。
另外,指令缓存(Op Cache)增大了约68%达到6.75K条目,每时钟周期可以完成多达9个宏指令(增加1个)。
不变的则是解码器每时钟周期发出4条指令、微指令队列每时钟周期分派6个整数+浮点指令。
执行引擎部分变化较小,尤其是每时钟周期10次整数、6次浮点的指令分派保持不变。
指令退役队列或者说ROB(重排序缓冲)从256条目增大25%至320条目,整数寄存器从192个增至224个,浮点寄存器从160个增至192个,缓存与核心之间的吞吐能力也提升了。
载入/存储单元部分,载入队列从72个增大至88个(22%),存储队列维持64个不变,二级缓存DTLB(数据页表缓冲)从2K条目增大了多达50%至3K条目,另外还减少了数据缓存端口的冲突几率。
也许有同学会问,很多模块都是不断增大、再增大,为什么不一步到位,从设计之初就做个大容量呢?
一方面,谁也无法精准预测每个模块多大容量下效率最好,而且不同模块之间需要彼此协调配合;
另一方面,更大容量意味着更多晶体管、更大核心面积、更高功耗、更高成本,需要在性能、能效之间做出妥协、寻求平衡。
缓存体系也做了优化,尤其是二级缓存,不但容量翻了一番,每核心来到1MB,还提升了速度。
同时,从二级缓存到三级缓存、从三级缓存到内存,都支持更多命中失败(outstanding miss),可以减少流水线的停顿,增加缓存回填带宽,提升整体效率。
不过整体缓存架构没变,一级缓存依然是32KB+32KB的每核心容量组合,三级缓存则继续每8个核心一组共享32MB。
AVX-512指令集或许是大家对Zen4最感兴趣的地方之一,毕竟在以往这是Intel处理器的专属技术,而且争议非常大,有人觉得它非常有用,有人觉得它只是徒增功耗,甚至成为极限烤机专用……
Zen4支持的AVX-512并非直接将Intel那套技术照搬过来(也不允许),而是选择了不一样的实现方式。
Intel处理器执行AVX-512指令时,是完整的512-bit通道(这也是该指令集命名的来源),但是AMD走的是256-bit通道,也就是砍了一半,因此遇到512-bit的指令就需要拆分成两个256-bit指令来执行。
事实上,AMD推土机家族、Zen家族在执行AVX-2 256-bit指令的时候,也是拆分成两个128-bit。这都是一脉相承的
AMD表示,这么做可以节省芯片面积,并且避免执行AVX-512指令时发热过大、频率下降的情况出现(峰值性能确有轻微损失),因为真正长达512-bit的指令并不多,就像以前256-bit的指令不够多。
Zen4支持的AVX-512指令一览并不是把Intel的全都搬了过来,而是选择性地加入,除了一些基础指令,特别值得注意的是用于AI加速的VNNI、BF16,这也是Intel之前宣传的重点。
VNNI是面向AI模型推理的矢量指令,可将多个8-bit或16-bit整数串联成512-bit,提升卷积神经网络常用的MAC(乘法累加)的速度。
另一个是BF16,面向AI加速,将双精度浮点FP32中的23位小数减少到7位,并保留1位符号、8位指数,结果与FP32相比范围相同,只是精度较差,但仍远高于单精度FP16。
按照AMD的说法,加入AVX-512指令集后,Zen4架构的FP32浮点推理多线程性能可提升1.31倍,VNNI INT8整数推理多线程性能可提升2.47倍!
另外,Zen4还增加了一些虚拟化、安全性方面的新指令,就不赘述了。
以上是Zen4、Zen3的具体变化对比,可以看到其中不少都维持不变,其他很多则只是数量/容量上的扩充,因此说Zen4就是个放大优化版的Zen3也没什么毛病。
值得注意的是,Zen4二级缓存、三级缓存的延迟甚至还略微加大了。
AMD宣称,Zen4 IPC平均提升了13%,这是在固定4GHz八核心情况下,通过22个项目对比Zen3得出的几何平均结果。
当然不同项目的变化幅度差异很大,比如说CPU-Z单线程只提升了1%(所以这个测试项目跑分变化不大),寒霜引擎游戏、《GTA V》、PUBG吃鸡、CineBench R23单线程这些项目提升也有限。
wPrime 1024M是变化最大的提升幅度达惊人的39%,另外像是Dolphin Web测试和《看门狗:军团》、《F1 2022》、《杀出重围:人类分裂》、《地铁:离去》等游戏的提升也很喜人。
13%的提升进一步划分,可以看到前端架构改进带来的提升幅度最大,其次是载入/存储单元、分支预测单元,而来自执行引擎、二级缓存的贡献相对较小。
这和前边架构分析的变化幅度是相符合的。
IPC提升之外,锐龙7000系列的频率也达到了前所未有的高度,旗舰锐龙9 7950X最高可以加速到5.7GHz(还有个5.85GHz fMax频率但官方一直保持缄默)。
当然,5.7GHz的频率只有单核心加速可以做到,AMD也公布了锐龙9 7950X在不同核心/线程下的最高加速频率,可以看到2核心可以到5.6GHz,8核心可以接近5.4GHz,16核心全开也能到5.2GHz。
13% IPC提升,加上频率拉到最高5.7GHz,锐龙7000的单线程性能提高了最多29%。
一个很容易被忽略的点,就是锐龙7000系列支持Eco模式,运行在更低的TDP,比如170W的可以低至105W或者65W,105W的可以低至65W。
AMD宣称,锐龙9 7950X 65W Eco模式下的性能,依然可以超过正常的锐龙9 5950X。
Eco模式未来会集成在主板BIOS的超频模块,可一键开启,还会集成在锐龙Master软件中。
有趣的是,得益于新的架构和工艺,Zen4单个核心加二级缓存总面积仅为3.84平方毫米,相比于Intel 7工艺的12代酷睿的7.46平方毫米,小了几乎一半,能效则高了几乎一半。