はじめに
CXLを使うと、大容量メモリを拡張できるということに。
QCT and Astera Labs showed CXL memory expansion working at SC22 on an upcoming Intel Sapphire Rapids Xeon platform. This is the same card we are working with on Genoa right now (studio teaser included) https://t.co/x3gya2pHXV @QuantaQCT @AsteraLabs @Intel @Supercomputing #SC22 pic.twitter.com/E7SObpISFx
— STH (@ServeTheHome) 2022年11月21日
下図は、上記の記事の中からの引用です。メモリ単体より遥かに大きな物を追加する必要がありますね。
CXL™ Memory Accelerators
記事の中では、AsteraLabs の CXL Memory Accelerator は、下記のもののようです。
上記のサイトにある下図を説明のために引用します。CXL経由でメモリの拡張をします。
詳細は、下記のサイトにあります。
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種類のメモリがあることになり、プログラミング、結構、大変そうです。。