AMD Epyc Compiler Options

AMD EPYC™ 7xx2-series Processors Compiler Options Quick Reference Guide

AOCC compiler (with Flang -Fortran Front-End)

Latest release: 2.1, Nov 2019

https://developer.amd.com/amd-aocc/Advanced

GNU compiler collection (gcc, g++, gfortran)

Intel compilers (icc, icpc, ifort)

amd prace guide

需要进一步的研究学习

  1. Amd uprof
  2. PGI compiler
  3. Numactl
  4. OMP_PROC_BIND=TRUE; OMP_PLACES=sockets

遇到的问题

暂无

开题缘由、总结、反思、吐槽~~

参考文献

https://developer.amd.com/wordpress/media/2020/04/Compiler%20Options%20Quick%20Ref%20Guide%20for%20AMD%20EPYC%207xx2%20Series%20Processors.pdf

https://prace-ri.eu/wp-content/uploads/Best-Practice-Guide_AMD.pdf#page35

Prace guide

ZEN2


Zen 2 使用所谓的 TAGE 分支预测器,它比其前身具有更深的分支历史。这通过比 Zen (+) 更大的分支目标缓冲区 (BTB) 得到增强,L1 BTB(512 个条目)增加了一倍,L2 BTB 几乎增加了一倍(现在为 7K)。随着 MOP 缓存增长到 4K,更大更好的主题仍在继续。这特别方便,因为没有处理器想要多次解码微操作。将它们解码一次并将它们放入大(r)缓存中可以加快速度并使处理器更高效。

有趣的是,在分析了大量应用程序及其数据集大小后,指令缓存实际上从 64KB 下降到 32KB,但关联性从 4 路增加到 8 路。原因是,根据 Mike Clark 的说法,这种减少几乎不会降低性能:无论如何,大多数数据集都需要超过 64KB。新的缓存还具有改进的预取和更好的利用率。

这一切意味着 Zen 2 的前端更高效——有助于 IPC——但确实以占用更多空间为代价。

Zen 2 微架构的简化图

单个核心

参考文献

https://hexus.net/tech/news/cpu/131549-the-architecture-behind-amds-zen-2-ryzen-3000-cpus/

https://en.wikichip.org/wiki/amd/microarchitectures/zen_2