Coelacanth's Dream

Intel、media-driver に DG1 へ向けたパッチを投稿 ―― GPGPUに傾いた DG1 のキャッシュ設定

Intel は、動画のデコード/エンコード/ポストプロセッシングを Intel GPU で実行するための media-driverDG1 を部分的にサポートするパッチを投稿した。
[Upstream] DG1 open source stage 1 · intel/media-driver@de48276

部分的なサポートということもあり、DG1 サポートを有効にするビルドオプションはまだ無く、DG1 がどの程度動画のデコード/エンコード/ポストプロセッシングをサポートするかは明らかにされていない。

(追記)

DG1 に向けたパッチ第2弾が投稿された。
[Upstream] DG1 open source stage 2 · intel/media-driver@bcfaf0b

動画のデコード/エンコード/ポストプロセッシングの概要が追加されたが、特別強化されている様ではなく、Tiger Lake と同等の機能となるようだ。
https://github.com/intel/media-driver/commit/bcfaf0b43e02d14b373995523c1475d07442c1f9?short_path=acd8702#diff-acd87025799e24be8c7e5078baa32897

(追記終了)

しかし、追加されたファイル/コードにより、前回判明した DG1 が持つ大きなキャッシュが内部でどのように割り振られてるかがわかった。

  #define DG1_L3_CONFIG_NUM                      3
  static const L3ConfigRegisterValues DG1_L3_PLANE[] = {
     //L3Alloc     TCCNTL                 //  Rest   DC  RO   Z    Color  UTC    CB    Sum (in KB)
     { 0x00000200, 0x0,          0, 0 },  //  2048   0   0    0    0       0      0    2048
     { 0x40000000, 0x3E000010,   0, 0 },  //  1024   0   0    0    0       992   32    2048
     { 0x0080F800, 0x00000010,   0, 0 },  //  0    1024  992  0    0       0     32    2048
  };

引用元: media-driver/media_interfaces_g12_dg1.h at de482769db4f94a99d672c82dd250c9ea484b52a · intel/media-driver

L3cacheバンクあたりの容量が確かに 2048KB と、前回判明した内容が自分の見間違い等ではなかったようで安心した。

キャッシュ設定は 3種類と、統合GPUである Ice Lake LP の 9種類1Tiger Lake の 7種類2に比べると少ない。

Rest /DC /RO /Z /Color /UTC /CB がそれぞれ何を意味するかは、Intel が公開しているドキュメントを確認するに、
DC (Data Cluster) はデータキャッシュとしてレジスタ割り付けやグローバルメモリアクセスに使われ、
RO (Read-Only) は命令、状態(State)、定数、テキスチャを格納するキャッシュであり、Rest はそれら 2つを組み合わせたもの、
Z /Color はグラフィクス処理に使われる深度 /色情報を格納するキャッシュであり、UTC (Unified Tile Cache) はそれらを組み合わせたもの、
CBCommand Buffer の略であり、名の通りの働きをすると思われる。3

その上で DG1 のキャッシュ設定を見ると、
1つ目と 3つ目は、データ/リードオンリーキャッシュに極端に割り振り、グラフィクス系キャッシュは省いた GPGPU向けの設定、
2つ目は RestUTC に大体半分ずつ(1024KB) 割り振ったグラフィクス向けの設定と推察される。
L3cacheバンクの設定に、シェーダーの入出力等に使われる URB (Unified Return Buffer) が無いが、L3cacheの外に備えられているのかもしれない。
そうなると DG1 は、各Sub-Slice内のローカルメモリと、L3cache 16MB以上にオンチップメモリを持つことになる。

Intel DG1 からはキャッシュ容量の大きさだけでなく、その設定からも GPGPU向けであるように感じられる。
正確な要素は含んでいないが、GPUコアは Tiger Lake GT2 と同規模であっても、大きいキャッシュメモリと VRAM(GDDR5かGDDR6) のPHYメモリバス幅は 96-bit だと言われている を備えることを考えると、
DG1 のダイサイズは Tiger Lake とあまり変わらないのではないかと思う。最初から dGPUとしては実験的な感じで設計したのだろうか?

キャッシュ設定やコストから、PCIeカードをソフトウェア開発者向けに絞って出荷するというのは納得できるが、
オンボードで Tiger Lake と組み合わせたノートPCの構成を提供するというのは、意図が読みづらい。
それもまたプレミアムな製品のみとなるのか、それとも性能向上の秘策があるのか、あるいはただシェアを伸ばしたいのか。
一応、DG1 の Device(PCI) ID は 3種確認できるため4、製品も複数展開される可能性は存在する。

参考リンク