Intel、オープンソースドライバーに DG1 と Rocket Lake の関するコードを追加 ――DG1 は 96EU、RKL は 16EU または 32EU

まだマージリクエストの段階ではあるが、オープンソースなGPUドライバーに DG1Rocket Lake に関するコードが追加された。
intel/dev: Add DG1 platform (!4956) · Merge Requests · Mesa / mesa · GitLab
intel/dev: Add RKL platform (!4955) · Merge Requests · Mesa / mesa · GitLab

DG1Rocket Lake は現段階でGPU部の製品名は Intel® Graphics となっている。
Tiger Lake はそれ以外に Intel® Xe GraphicsIntel® UHD Graphics という名前が用意されており、GPU性能の違いでも製品展開するつもりがあることが窺える。1

GPU規模

DG1

コードを読むに、DG1 の規模は Tiger Lake GT2 とほぼ変わらない、Dual-SubSlice数 6基、L3キャッシュバンク数 8基というもの。
しかし、URB(Unified Return Buffer)のサイズは Tiger Lake GT2 の 1024KB よりも小さい 768KB となっている。URBはL3キャッシュに統合されており、各シェーダーの入出力やローカルスレッドの発行のためのバッファとして機能する。2
Intel が公開している Ice Lake GPUのドキュメントを読むと、L3キャッシュバンクあたりの URB を 96KBとする設定は1つだけであり、L3キャッシュのタグとして使われる Rest が省かれている。そしてその分をグローバルメモリアクセス等に使用される Data Cluster と、 Read-Only である命令キャッシュや状態管理、テクスチャーを収める分に割り振っている。3
このことから、L3キャッシュ構成が Ice Lake /Gen11 と同様であるという前提付きではあるが URBのサイズが DG1 で減らされているというのは、データキャッシュをその分増やし、性能をGPGPUにも向ける意図があるのではないかと思う。

(追記)
一応、 DG1 の URBサイズは固定だが、他の Gen7以上の世代のGPUはURBサイズ、L3キャッシュバンクの設定を変更可能とのこと。
intel: Delete hardcoded devinfo->urb.size values for Gen7+ (sans DG1). (!4969) · Merge Requests · Mesa / mesa · GitLab
Tiger Lake GT2DG1 は同様の設定で動作させることも可能だろう。
(追記終了)

Rocket Lake GT0.5/GT1

Rocket Lake には GT0.5、GT1 の2種類が用意されており、
GT0.5 は Dual-SubSlice数 1基、L3キャッシュバンク数 4基。
GT1 は Dual-SubSlice数 2基、L3キャッシュバンク数は GT0.5 と同数の 4基。

GTの後の数字が示すように、GT0.5 のGPUコア部はGen12LPアーキテクチャでは最小の規模だ。
また Rocket Lake では GT2 が現時点で存在しないが、GPU性能は Tiger Lake で、ということと思われる。

Gen12LP

Gen12LPアーキテクチャではGen11アーキテクチャから踏襲する、Slice内の SubSlicesを増やして性能を調整する方法を取っているため、DG1 でも Tiger Lake でも Rocket Lake でも総Slice数は1基で変わらない。
L3キャッシュバンクあたりの容量はまだ確定していないが、Gen11アーキテクチャから変わらないとすれば 384KBとなる。
以下はGen12アーキテクチャ採用GPUを比較した表。

Gen12LP TGL GT2 DG1 RKL GT0.5 RKL GT1
Dual-Sub Slices 6 6 1 2
 EUs 96 96 16 32
 Shading Units 768 768 128 256
GPU L3$ 3072KB? 3072KB? 1536KB? 1536KB?
 URB Size 1024KB 768KB 512KB 512KB
Update:
 2020/07/20 11:51 JST