AMD の Muralidhara M K 氏により、Linux の EDAC (Error Detection And Correction) ドライバーに MI300A と MI300C のサポートを追加するパッチが投稿されている。
EDAC ドライバーはハードウェアが持つ MCE (Machine Check Exceptions) をデコードし、ハードウェアに起きたエラーの情報を読みやすい形式にして出力する機能を持つ。
AMD MI300 シリーズ は Zen 4 CPU チップレットと CDNA 3 GPU チップレットを組み合わせた HPC、AI 処理向けの製品ファミリー。
MI300A は CPU チップレットと GPU チップレットを組み合わせた APU の形を取る SKU、MI300X は GPU チップレットのみで構成された SKU となる。
パッチ内で触れられている MI300C はまだ正式発表されていない SKU だが、CPUID Model が設定されていることから少なくとも CPU チップレットを持った SKU と思われる。
同じく AMD の Yazen Ghannam 氏によれば、MI300A は Family 19h Models 90h-9Fh、MI300C は Family 19h Models 80h-8Fh が CPUID Models に割り当てられている。
I suggest using MI300 in the $SUBJECT. And highlight in the message that both groups of MI300 use the same IDs. You can clarify that Models 80h-8Fh are MI300C and 90h-9Fh are MI300A.
パッチでは、MI300A (Family 19h Models 90h-9Fh) の場合はメモリタイプを HBM3 と判定し、HBM3 コントローラーは 4基としているが、MI300C (Family 19h Models 80h-8Fh) に関するコードは含まれておらず、Root Complex や Data Fabric の PCI Device ID が追加されているのみとなる。
そのため、MI300C のメモリタイプやメモリコントローラ数は不明となっている。
- return 0x50000 + (umc << 20) + ((channel % 4) << 12); + return gpu_umc_base + (umc << 20) + ((channel % 4) << 12); +} + +static void gpu_determine_memory_type(struct amd64_pvt *pvt) +{ + if (pvt->fam == 0x19) { + switch (pvt->model) { + case 0x30 ... 0x3F: + pvt->dram_type = MEM_HBM2; + break; + case 0x90 ... 0x9F: + pvt->dram_type = MEM_HBM3; + break; + default: + break; + } + } + edac_dbg(1, " MEM type: %s\n", edac_mem_types[pvt->dram_type]);