はじめに
いつものように、github を散策していたら、NVIDIAの open-gpu-kernel-modules の中に EGM なるものがあることを知りました。
EGM とは?
ここに、説明がありました。
#define ADDR_EGM 7 // Extended GPU Memory (EGM)
EGM == Extended GPU Memory
のようです。
ここにもう少し詳しい説明もありました。
// memsysSetupCoherentCpuLink should be done only for the self hosted // configuration(SHH) where the coherent C2C link connects host CPU(TH500) and GPU // and not in the externally hosted(EHH) case where host CPU(say x86) is connected // to GPU through PCIe and C2C only connects the TH500 (for EGM memory) and GPU. // The gpuIsSelfHosted(pGpu) check here is to distinguish between the SHH // and EHH configuration as C2C link is up in both of these cases.
GH180 (Grace-Hopper Superchip)の構成で、TH500(Grace)についているメモリをGPU Memoryを使う時にそのメモリを EGM というようです。
このコードの下の方にあった下記のコメントから、
// PDB_PROP_GPU_C2C_SYSMEM is already set in physical RM but not in // in Kernel-RM where it is actually consumed. setting PDB_PROP_GPU_C2C_SYSMEM // in Kernel-RM when the platform is self-hosted and the C2C links are up, which // indicate the C2C is connected to CPU and Physical-RM would have set up the HSHUB // to route sysmem through C2C.
C2C はどうやら HSHUB に接続しているっぽい。NVLINKと同じHSHUBに接続している。
おわりに
GH180(Grace-Hopper Superchip)、プロダクト名はGH200 では、HopperがGraceのメモリをアクセスする時は、EGMと言うんだね。