Coelacanth's Dream

DG2 と Arctic Sound-M の関係性

個人的に気になった DG2/AlchemistATS-M (Arctic Sound Mainstream) の関係を一旦整理するだけの記事。

Arctic Sound-P/M

Intel のエンジニアは早く (2018年) から開発中の、Intel 初 (?) となる Discrete GPU に Arctic Sound というコードネームを付けていることを明らかにしていた。1
当初 Arctic Sound は動画ストリーミング処理を担当するようなデータセンター向けの dGPU のみを対象にしたコードネームだったが、後にゲーミング向けにも対象を拡大した。

それからさらなる Intel dGPU の情報が公開されていくにつれ、その内容から XeHP = Arctic Sound とされるようになった。あくまでも自分の認識ではあるが。

そして Intel oneAPIプロジェクトの 1つ、oneVPL (oneAPI Video Processing Library) にも Arctic Sound のサポートが追加された。
それによると Arctic Sound には ATS-P (Premium) / ATS-M (Mainstream) バリアントが存在し、XeHP SDVATS-PDG2/AlchemistATS-M に対応している。
oneVPL でサポートする Intel GPU プラットフォームは列挙体 (enum) で管理され、MFX_PLATFORM_ARCTICSOUND_PMFX_PLATFORM_XEHP_SDVMFX_PLATFORM_ATS_MMFX_PLATFORM_DG2 には同じ値が割り当てられている。
コメント部で、ATS-MDG2 と同じメディア機能を持つとしているが、DG2 と分けた上で同じ値を割り当てた意図は不明。

     MFX_PLATFORM_ARCTICSOUND_P  = 45,
     MFX_PLATFORM_XEHP_SDV       = 45, /*!< Code name XeHP SDV. */
     MFX_PLATFORM_DG2            = 46, /*!< Code name DG2. */
     MFX_PLATFORM_ATS_M          = 46, /*!< Code name ATS-M, same media functionality as DG2. */
 #ifdef ONEVPL_EXPERIMENTAL
     MFX_PLATFORM_ALDERLAKE_N    = 55, /*!< Code name Alder Lake N. */
 #endif
     MFX_PLATFORM_KEEMBAY        = 50, /*!< Code name Keem Bay. */
引用元: oneVPL-intel-gpu/mfxcommon.h at 5d0987b9b3ebe60844402dda532909075b5b7d02 · oneapi-src/oneVPL-intel-gpu

ATS-M75/150

Mesa3D の DG2 サポートは進められているが、今は一旦関連するコード部が無効化されている。
そうした中で、DG2-G10/G11 の DeviceID をさらに追加するパッチが投稿された。
その追加された DeviceID は他と異なり、DG2 ではなく ATS-M75/M150 という名前が付けられている。

  CHIPSET(0x56a6, dg2_g11, "DG2", "Intel(R) Graphics")
  CHIPSET(0x56b0, dg2_g11, "DG2", "Intel(R) Graphics")
  CHIPSET(0x56b1, dg2_g11, "DG2", "Intel(R) Graphics")
 +CHIPSET(0x56c0, dg2_g10, "ATS-M150", "Intel(R) Graphics")
 +CHIPSET(0x56c1, dg2_g11, "ATS-M75", "Intel(R) Graphics")
引用元: intel/dev: Add more DG2 pci-ids (still disabled, waiting on i915) (!14884) · Merge requests · Mesa / mesa · GitLab

関数形式のマクロ CHIPSET の引数は (_id, _family, _fam_str, _name) という並びになっている。 2
_id (DeviceID) から GPU を検出、_family を元にその GPUファミリーが持つとしている機能の情報を取得する。_fam_str, _name はデバイス名として使われ、今回追加されたものだと実際には Intel(R) Graphics (ATS-M75) といったように表示される。_fam_str の部分には通常、マーケティング的な、SKU名が入る。
そのため、異なるのはデバイス名の補足的な部分のみとなる。
ATS-M が上と oneVPL でサポートされているものと同じだとして、末尾の数字は消費電力とかを表しているのだろうか?

_familydg2_g10/dg2_g11 となっていることから DG2 と同じダイをベースにしていると思われ、また他の Intel GPU に関する OSS でも、0x56C0/0x56C1DG2 に割り当てられた DeviceID となっている。3
DG2/AlchemistATS-M はほぼ同じ機能、存在とされながら、現状プログラム的には影響が及ばさない部分で区別されている。これは Xe-HP_SDVATS-P の関係に対しても言える。
Intel(R) Media Driver for VAAPI には 0x56C0/0x56C1 を対象にした部分があったが、メディアデコード/エンコード処理を複数のパイプラインで処理するかのフラグを無効としてセットする、というもので今後変更される可能性が高いように思う。 4

Arctic SoundPremium (Xe-HP_SDV)Mainstream (DG2/Alchemist) に分離したのははっきりとしているが、何故か対応する GPU とは、影響の無い範囲で区別されている。
可能性として、一部機能を対象に、ハードウェア側はサポートしているが、ドライバーとしては一部 SKU のみをサポートする、といったことが今後あるのかもしれない。
Intel のチーフアーキテクトである Raja Koduri 氏は、過去のインタビューにおいて DG2/Alchemist でワークステーション向け市場をサポートする意思を見せている。 (ただし具体的な説明は避けている)
機能で差別化するとしたら、それはゲーミング向けとワークステーション向け、あるいはサーバー向けの SKU の間で行われるように思う。5

参考リンク


  1. Intel Is Developing A Desktop Gaming GPU To Fight Nvidia, AMD ↩︎

  2. src/intel/dev/intel_device_info.c · 4f9141607f40f0be9cee38ff6b006a05bba72e88 · Mesa / mesa · GitLab ↩︎

  3. intel-graphics-compiler/igfxfmid.h at 70fe72803348a2e44bcdbb31c6f50c9f448ede0a · intel/intel-graphics-compiler ↩︎

  4. media-driver/media_interfaces_dg2.cpp at 4e5c0b680fda6e108919ed2b2409858eb300d6a3 · intel/media-driver ↩︎

  5. ASCII.jp:Ponte VecchioとIntel Arcに関する疑問をRaja Koduri氏が回答 インテル GPUロードマップ (3/3) ↩︎