intel-gfx メーリングリストに、Linux Kernel部の Intel GPU ドライバーに Xe-HP SDV (Software Development Vehicle) 、 DG2 (Xe-HPG) プラットフォームのサポートを追加する一連のパッチが投稿、公開された。
Index
Xe-HP/Xe-HPG
Xe-HP/Xe-HPG は、パッチを公開し、オープンソースソフトウェアにサポートを追加する段階まで進んだらしく、Linux Kernel 以外にも OpenCLコンパイラ intel-graphics-compiler 等にもパッチが投稿され、すでにメインラインに取り込まれている。
User Mode Driver (UMD) である Mesa3D には、 Xe-HPG で大幅に設計が見直されたとするデータポート LSC (Load Store Cache) のサポートを追加するパッチが投稿されている。1
今回の一連のパッチではまだ実際に動作させることはできないが、今後 LMEM (Local Memory) や GuC (Graphics microController) ファームウェア、Xe-HP が採るマルチタイルアーキテクチャ、それと GPUコアの外部に搭載されると思われる専用のコンピュートエンジンなどのサポートは将来的に追加する予定にあると、パッチのコメントで語られている。
Xe-HP アーキテクチャ は GPU IPバージョンに Gen12.5、Xe-HPG アーキテクチャ には Gen12.55 が割り当てられている。
Xe-HP アーキテクチャ では Gen9アーキテクチャまでの “Slice(s)” という概念が無くなり、新たなコンセプトに GSlice (Geometry Slice), CSlice (Compute Slice), MSlice (Memory Slice) が導入されているとしている。コードを読むに Xe-HPG アーキテクチャ も同様のコンセプトが導入している。
Slice(s) は一部の固定ユニットと L3 Data Cache、EU (Execution Unit) をまとめた Sub-Slice を複数持つクラスタであり、AMD GPU アーキテクチャにおける Shader Engine が意味や役割としては近いだろう。
Gen11 アーキテクチャ から複数の Slice が Intel GPU に搭載されることはなくなり、単一の Slice に従来の Intel GPU よりも多い Sub-Slice を搭載する形となっていたため、以前より Slice という単語が持つ意味は薄くなっていた。
また、Gen12/Xe アーキテクチャ からは Sub-Slice あたりの EU数が、従来の倍となる 16基となり、それを理由とするのか、Sub-Slice を Dual Sub-Slice と呼ぶようになった。
Xe-HP/G アーキテクチャ では巨大な Dual Sub-Slice のプールを持ち、それを GSlice/CSlice/MSlice に分割して割り当てる形となるようだが、まだ多くはわかっていない。
2つのバリアントが存在する Xe-HPG
DG2 ではディスプレイIP に Alder Lake-P と同じ Xe_LPD (Display13) を採用している。
Linux Kernel に 「Intel Display13」をサポートする最初のパッチが投稿される | Coelacanth’s Dream
そして、DG2 には DG2-G10 と DG2-G11 の 2つのバリアントが存在し、それらのハードウェアステッピングは一方から続くものではない、珍しい方式となっている。
バリアント間の違いは今の所、ハードウェアに存在する細かなバグとそれに対する回避策 (ワークアラウンド) くらいしかわからない。
個人的な感覚で言えば Xe-HP/G アーキテクチャ は、Gen11 アーキテクチャ から Xe-LPGen12.[0-2] アーキテクチャ へ進んだ時以上に、多くの機能や概念が導入されており、正直ちゃんと読めていない部分が多い。
全体的な構成とリソースの割り当て方法が変更され、データポートも EU内の実行パイプラインも刷新されている。ディスクリート GPU 向けの Xe-HP/G アーキテクチャ には、統合 GPU を前提としていた従来の Intel GPU アーキテクチャでは推し量れない部分が多くある。
Intel Xe-HP EU に追加されるパイプラインと増加するスレッド/レジスタファイル | Coelacanth’s Dream
そうした部分を Intel GPUアーキテクトがどういった意図で設計、搭載したのか――公式の発表、ドキュメント、あるいはパッチ、どのような形であれ明かされる時が楽しみだ。
Intel GPU | Graphics IP ver | Display IP ver | Media IP ver |
---|---|---|---|
Tiger Lake, Rocket Lake? |
Gen12 | Gen12 | Gen12 |
DG1 | Gen12.1 | Gen12 | Gen12 |
Alder Lake-S | Gen12 | Gen12 | Gen12.22 |
Alder Lake-P | Gen12 | Gen13 (XE_LPD) |
Gen12.22 |
Xe-HP | Gen12.5 | - | Gen12.5 |
Xe-HPG | Gen12.55 | Gen13 (XE_LPD) |
Gen12.55 |
Xe EU | Issue Port 0 | IP 1 | IP 2 | IP 3 | IP 4? | ||
---|---|---|---|---|---|---|---|
Xe-LP | Branch (Control Flow) |
Send | Short (INT /FP) |
Math | - | - | - |
Xe-HP | Send | INT? (int8/16/32) /Branch? |
Math? | DPAS? | Long? (Int64 /FP64) |
FP? (FP16/32, BF16) |
|
In-Order | Out-of-Order | In-Order | Out-of-Order | Out-of-Order | In-Order | In-Order |