インターネットの一部では Linux Kernel へのパッチを根拠に Intel の次世代プロセッサ Nova Lake に搭載される GPU を、Panther Lake や Wildcat Lake と同様の Xe3 ではなく、データセンター向け GPU に採用される予定の Xe3P だとしているが、実際には Xe3 だと思われる。
ここでの新しい根拠は intel/cm-compiler の変更内容となる。
- Add support for NVL-S and NVL-U devices · intel/cm-compiler@fc99a66
- Add support for xe3p device · intel/cm-compiler@5d3ad70
Nova Lake のサポートを追加するパッチにおいて Nova Lake の GMD ID (Graphics Media Display ID?, Intel GPU におけるハードウェア IP バージョン) は、nvl-ul/nvl-hx/nvl-s が 30.4.4、nvl-h/nvl-u が 30.5.4、リリース ID は xe3-lpg とされている。
その後に Xe3P、cri (Crescent Island?) のサポートを追加するパッチが公開されているが、GMD ID は 35.11.0 とされ、Nova Lake とはバージョンが大きく異なる。
また、Xe3P では XMX (Xe Matrix eXtensions) で実行される行列積和演算命令 DPAS (Dot Product and Accumulate Systolic) に FP8/FP4 やマイクロスケーリングフォーマット (MXFP4/MXFP8 等) 関連の命令が追加されているが、それらの命令を Nova Lake はサポートしていないとされている。
--- a/clang/lib/Driver/ToolChains/Arch/GenXPlatforms.cpp +++ b/clang/lib/Driver/ToolChains/Arch/GenXPlatforms.cpp @@ -15,6 +15,7 @@ using clang::driver::tools::GenX::encodeGmdId; // clang-format off static const std::unordered_map<std::string, uint32_t> ReleaseId = { + {"xe3-lpg", encodeGmdId(30, 5, 4)}, {"xe2-lpg", encodeGmdId(20, 4, 4)}, {"xe2-hpg", encodeGmdId(20, 2, 0)}, {"xe-lpgplus", encodeGmdId(12, 74, 4)}, @@ -30,6 +31,11 @@ static const std::unordered_map<std::string, uint32_t> ReleaseId = { }; static const std::unordered_map<std::string, uint32_t> DeviceId = { + {"nvl-u", encodeGmdId(30, 5, 4)}, + {"nvl-h", encodeGmdId(30, 5, 4)}, + {"nvl-s", encodeGmdId(30, 4, 4)}, + {"nvl-hx", encodeGmdId(30, 4, 4)}, + {"nvl-ul", encodeGmdId(30, 4, 4)},
Nova Lake の GPU 部において Xe3、Panther Lake や Wildcat Lake よりも進んだ部分となるのはあくまでもディスプレイエンジン、メディアエンジンだと思われる。
元々、Linux Kernel の Intel xe ドライバーに向けた Nova Lake 関連のパッチも、ディスプレイエンジンである Xe3p_LPD、メディアエンジンである Xe3p_LPM が Nova Lake-S に搭載される、というものであり、GPU コア部のアーキテクチャまでは言及していなかったように思う。