Vengineerの戯言

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

CXLの先のメモリーって、どうなの?

はじめに

CXLを使うと、大容量メモリを拡張できるということに。

下図は、上記の記事の中からの引用です。メモリ単体より遥かに大きな物を追加する必要がありますね。

CXL™ Memory Accelerators

記事の中では、AsteraLabs の CXL Memory Accelerator は、下記のもののようです。

www.asteralabs.com

上記のサイトにある下図を説明のために引用します。CXL経由でメモリの拡張をします。

詳細は、下記のサイトにあります。

www.asteralabs.com

CXL の帯域とメモリの帯域

  • CXL 1.0/1.1/2.0 は、PCIe Gen5 と同じなので、x16 だと、32Gbps x 16 = 64GB/s
  • DDR5-6400 は、6.4G/s x 8 = 51.2GB/s

DDR5-6400 DIMM へのアクセスであれば、CXL 1.0/1.1/2.0 の帯域以下なのでいいんでしょうかね。。。とは言え、Latency がそれなりにかかるので、Latency が少ない用途ではなく、スループットがよければいい、という用途になると思います。

これって、プログラムとしてはどのように使うんでしょうかね。普通のDRAMと同じように使うと、使いにくいような気がしますね。。。気のせいですかね。。。

#おわりに

Intelの第12世代CPUの P-cores/E-cores 構成ですが、OpenMPなどでP-cores と E-cores を混ぜて使うと変な感じになっちゃうと思っています。

CXLの先のメモリも同じような感じになっちゃう気がしています。

また、Intel Sapphire Rapids (Xeon Max) のように、DDR + HBM の構成に、CXLの先のメモリと、3種類のメモリがあることになり、プログラミング、結構、大変そうです。。