AMD|强大无须多言——第四代AMD EPYC处理器先进技术指南( 三 )


执行单元部分 , 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功能等 。
12通道DDR5内存
每核心带宽至少比上代产品提升50%
所有EPYC 9004系列处理器都支持12通道DDR5内存 , 相比上代支持的8通道DDR4内存有巨大进步 。 从内存带宽来看 , DDR5的使用在很大程度上缓解了超多核心处理器内存带宽不足的情况 。

▲AMD在EPYC 9004上全面启用DDR5内存
举例来说 , 上代EPYC 7763拥有64个核心128线程 , 支持8通道DDR4内存 , 内存总带宽为204.8GB/s , 平均每核心3.2GB/s 。 新一代的EPYC 9654拥有96核心192线程 , 支持12通道DDR5内存 , 内存总带宽为460.8GB/s , 平均每核心4.8GB/s 。 EPYC 9654在处理器核心数量更多的情况下 , 每核心内存带宽提升了50% 。 如果是48核心或者32核心产品 , 每核心内存带宽的提升会更大 , 这为内存带宽敏感型应用带来了极为不错的性能提升空间 。

▲EPYC 9004的内存架构和特性一览
从AMD官方给出的实际测试数据来看 , EPYC 7003系列的实际内存带宽大约为154GB/s , EPYC 9004则高达356GB/s , 是前代产品的大约2.3倍 。 延迟方面 , 由于EPYC 9004支持的DDR5内存容量更大、通道数量更多 , 因此延迟有所上升 。 EPYC 9004的SoC延迟大约在73ns左右 , 设备延迟大约是45ns左右 , 因此总延迟在118ns左右 , 而EPYC 7003的对应数据分别是70ns、35ns和105ns 。 从整体上来看 , EPYC 9004的延迟略高 , 但是考虑到它拥有更大的带宽 , 这一点是完全可以接受的 。