Coelacanth's Dream

Intel、GCC に Sapphire Rapids と Alder Lake をサポートするパッチを投稿

Intel は次世代プロセッサ、Sapphire RapidsAlder Lake をサポートするパッチを GCC に投稿した。まずは拡張命令の対応となっている。
Initial Sapphire Rapids and Alder Lake support from ISA r40 Initial Sapphire Rapids and Alder Lake support from ISA r40 · gcc-mirror/gcc@ba9c87d

パッチを投稿した Cui, Lili 氏は、Sapphire Rapids の拡張命令の対応範囲を、Cooper Lake の対応範囲に MOVDIRI /MOVDIR64B /AVX512VP2INTERSECT /ENQCMD /CLDEMOTE /PTWRITE /WAITPKG /SERIALIZE /TSXLDTRK に追加したもの、
Alder LakeSkylake の対応範囲に CLDEMOTE /PTWRITE /WAITPK /SERIALIZE を追加したものと説明している。

現在はページが消されているが 以前判明した AVX2 VNNIHFNI には触れられていないが、 Intel®ArchitectureInstruction Set Extensions and Future FeaturesProgramming Reference にもまだ出てきていないためだろう。
Intel Alder Lake、Sapphire Rapids にて追加される2つの命令 ――AVX2 VNNI /HFNI | Coelacanth’s Dream

そしてやはり Alder Lake は AVX512 には対応しないような動きを見せている。
また今回は Cooper LakeSkylake の対応範囲に加える形にあるためか、 Cannon LakeGoldmont から対応した SHA 命令に、 Sapphire RapidsAlder Lake は対応していない。
わざわざ外すというのも考えにくいため、今後のパッチで追加されるものと思われる、たぶん。

そして、Alder Lake はハイブリッドプロセッサと言われることが多いが、今回のパッチで Alder Lake は高性能コア (Core) 側とされている。
また、Lakefield もハイブリッドプロセッサであり、拡張命令の対応範囲は Ice Lake とも Tremont とも異なるが、コンパイラに -march=lakefield といったものはこれまで追加されていない。
そうなると、Alder Lake が先行して追加されているということにはズレを感じる。

参考リンク