Vengineerの戯言

人生は短いけど、長いです。人生を楽しみましょう!

Memory Performance of AMD EPYC Rome and Intel Cascade Lake SP Server Processors

はじめに

調べ物をしていたら見つけたこの論文

色々な情報を得ることができたので、記録として残します。

AMD EPYC ROME の内部構成

AMD EPYC ROME の内部構成のブロック図が載っています。説明のために引用します。

UMC (Unified Memory Controller) が DRAM と一対一で繋がっているように書かれています。

によると、2つのChannelを1組にし、そこのDRAMが繋がっているような図になっています。説明のために引用します。

AMD EPYC ROME のメモリ帯域

下図では、AMD EPYC ROME の STREAM triad の測定データです。説明のために引用します。ピーク値としては、42.x GB/s 出ています。 メモリは 1DPC (DIMM per channel)だと、DDR4-3200が使えるので、転送帯域は 3200MHz x 64bit / 8bit = 25.6GB/s です。42.x GB/s より小さいので、2チャンネルを interleave にして、25.6GB/s x 2 = 51.2 GB/s にして使っているのではないでしょうか?となると、ボトルネックはメモリではなく、他のところになっていそうです。

1CCD => 2CCD にして、ちょこっと10GB/s弱増えているだけなので、この部分がボトルネックではなさそう。となると、GMI2 => UMC の間のパスが 42GB/s 程度になっているのではないでしょうか? 64B/cycle とすると、650MHz、32B/cycle とすると、1.3GHz 程度なんでしょうね。

ちなみに、2023/3/25のブログ、

vengineer.hatenablog.com

で取り上げたものには、AMD Zen4 or Zen3(Milan) (EPYC 7763) / Zen3 + VCache(Milan-X)(EPYC 7V3X) のbandwidth も載っています。説明のために引用します。こちらは、Single Threadなので、31GB/s 程度のようです。RomeでもSingle Thread では 31.4GB/s です。Rome と Milan/Milan-X では同じ I/O die なので、同じぐらいの転送帯域になっています。

Intel Cascade Lake SP

Intel Cascade Lake SPのbandwidth は、下記のようになっています。説明のために引用します。

DRAMのbandwidth は、60GB/s前後のようです。Cascade Lake SPのメモリは、DDR4-2993 なので、23.9GB/s です。メモリコントローラは 3 channel なので、23.9GB/s x 3 = 71.7GB/sになります。71.7GB > 60GB/s なのでメモリコントローラがボトルネックになってなさそうです。となると、Mesh Interconnectが 60GB/s で、64B/cycle だと、1GHz 程度で動いているようです。

おわりに

  • AMD EPYC Rome/Milan/Milan-X の内部バスは、42GB/s 程度
  • Intel Cascade Lake SPのMesh Interconnect は、60GB/s 程度

なんでしょうかね。