Zen 4架构:IPC提升14%
AMD在企业级产品和消费级产品上采用了同样的核心微架构:EPYC 9004和桌面锐龙7000系列都是最新的Zen 4架构。有关Zen 4架构,本刊在之前锐龙7000首发文章中曾有过介绍,本文再简单回顾一下。
▲Zen 4微架构及改进一览
AMD Zen 4架构是基于Zen 3架构改进而来,在架构设计上,AMD希望实现更高的性能、更低的延迟和更好的能效比。其中性能的提升来自频率和IPC的提升;更低的延迟主要是提升了缓存的性能并且降低了整个架构的平均延迟;能效比方面则通过新设计、新工艺以及将移动端的一些技术移植在桌面端,降低了整个CPU的动态功耗。
▲Zen 4架构相比Zen 3架构的重要提升
具体来看,Zen 4架构在分支预测、Op缓存、指令排序相关窗口、整数或浮点寄存器、每核心更深的缓冲区、后端读取和加载等方面进行了优化。特别的变化是另外加入对AVX-512指令集的支持,以及重新调整的每核心1MB、8-way L2缓存。
前端方面,分支预测部分有大幅加强。AMD使用了一个更强有力的分支预测单元,每周期可以执行2次分支预测。此外,L1分支目标缓冲区的容量提升了50%,达到1.5K条目,L2分支目标缓冲区则达到7K。Zen 4还拥有更大的Op缓存、更大的指令回写队列,它们在很大程度上提升了处理器的前端性能。
执行单元部分,Zen 4没有提升执行单元的数量,而是持续增大重排缓冲区。它增加了浮点/整数寄存器的体积,整数从192增加至224,浮点从160增加至192,核心缓冲区达到320条目。执行单元方面依旧是每周期10个INT和6个FP。
后端的读取和加载部分,Zen 4拥有更大的读取排序单元,更少的缓存端口冲突以及增大50%的L2 DTLB。另外依旧拥有每周期3个内存操作,最多每周期3个读取和2个写入。
缓存方面,最明显的改变是每个核心的L2缓存翻倍到1MB,这样可以降低CPU核心的未命中率并提升命中率,同时也降低了从L3和内存读取数据的几率。但是由于L2缓存增大,延迟也相应提升,L2和L3的延迟分别增加到最多14个周期和最多50个周期。
▲AMD在Zen 4上设计了全新的AVX-512引擎,和英特尔的路线有巨大差异。
在指令集方面,Zen 4实现了对AVX-512指令集的支持。Zen 4采用了2个AVX 256来合并执行1个AVX-512,而英特尔采用了独立的AVX512 SIMD核心。AMD的设计可以节省晶体管资源,并且不需要降低频率来运行AVX-512。但是当同时执行AVX2和AVX-512的时候,则必须完成一个后再执行另一个。AVX-512比之前Zen架构多核心执行FP32的工作效能提升了30%。此外,Zen 4也实现了对BF16数据格式的支持,这是AI计算中新兴的一种重要数据格式。
▲在启用AVX-512后,相关性能得到了巨大提升。
根据AMD官方数据显示,在支持AVX-512后,使用2路EPYC 9654(192核心)对比2路EPYC 7763(128核心),在NLP、图像识别以及物体检测的吞吐量测试中,前者的领先幅度分别达到4.2倍、3倍和3.5倍。
AMD还给出了Zen 4相比Zen 3的性能改进情况。总的来看,Zen 4有大约14%的IPC提升。其中贡献最大的是前端的改进,其次是存储和加载部分,再次是分支预测部分,执行部分和L2部分的改进带来的性能增幅则相对较小。在发布锐龙7000系列的时候,AMD给出的IPC提升数据是13%,所以这里提到的14%应该是根据服务器所面向的不同负载重新测试而来。
▲AMD Zen 4架构在服务器端取得了14%的IPC提升
最后再来看看安全方面的内容。Zen 4架构目前支持安全加密的虚拟化,包括SEV-ES、SEV-SNP,内存加密支持AES-256-XTS,支持最多1006个加密的客户机以及多主机秘钥SMKE。此外,它还支持虚拟化X2APIC、免SMT攻击和额外的SPEC_CTL功能等。