Coelacanth's Dream

LLC をサポートせず、ADM/L4キャッシュをサポートする Meteor Lake GPU

Intel の Fei Yang 氏より、intel-gfx メーリングリストに公開されたパッチにて Meteor Lake GPU では LLC (Last Level Cache) をサポートせず、新たに ADM/L4キャッシュをサポートすることが明かされた。

    On MTL, GT can no longer allocate on LLC - only the CPU can.
    This, along with addition of support for ADM/L4 cache calls a
    MOCS/PAT table update.

従来の Intel iGPU では CPU と GPU で LLC を共有可能な構成となっており、MOCS (Memory Object Control State) の値に応じて GPU 側のキャッシュに割り当てることが可能だった。
それが Meteor Lake GPU では、LLC は CPU のみが使用するようになり、GPU 側のキャッシュに割り当てることができなくなる。
CPU と GPU で共有可能なキャッシュを持たないという点で Intel dGPU、AMD APU のキャッシュ構成に近くなったと言える。
余談だが、少し前に Ryzen 9 7950X3D の内蔵 GPU 性能が 7950X の 4倍という話が流れたが (実際はそのレビュワーが以前の検証データを使い回したことによる勘違い)1、AMD APU のキャッシュ構成を知っていれば間違いに気付くことができた。

そして Meteor Lake GPU では ADM とも呼ばれる L4キャッシュをサポートする。
パッチでは ADM が何の略称なのか、ADM/L4キャッシュのサイズについては触れていない。

Intel GPU ドライバーでは、サンプラーが持つキャッシュを L2、GPU Device 全体で共有するキャッシュを L3 としている。
Xe-Core アーキテクチャ でキャッシュ階層の定義を改める動きがあり、従来の GPU L3キャッシュを L2キャッシュとしていたが、最近になって公開されたドキュメントでは Device Cache となっていた。2
ドライバーや過去のドキュメントとの整合性を取る上で不都合があったのかもしれない。

Intel iGPU における L4キャッシュというと、Gen9 アーキテクチャ でサポートしていた eDRAM が思い出される。
しかし eDRAM がメモリサイドキャッシュ、SoC 全体で使用可能なキャッシュ (SLC, System Level Cache とも呼ばれる) であったのに対し、ADM/L4キャッシュはあくまで GPU 側でも割り当て可能なキャッシュとなっている。
ADM/L4キャッシュはメモリサイドキャッシュというより、従来の LLC の役割が移ったキャッシュなのだろう。また、GPU 専用のキャッシュではなく、CPU からも使用可能ではないかと思われる。
そうなると結局は従来のキャッシュ構成を引き継いでいることとなる。
ただ Meteor Lake GPU のデバイス情報に has_llc=0 をセットしていることから、ADM/L4キャッシュが無い場合も LLC を使うことはできず、その場合は Intel dGPU、AMD APU に近くなる。

気になるのは ADM/L4キャッシュが Meteor Lake のどこに搭載されているかだが、恐らく Base Tile と思われる。
Intel は Meteor Lake のタイル構成を公開しており、Base Tile 上に GPU, SoC, CPU, IO Extender Tile を積層する構成となっている。ADM/L4キャッシュを搭載した Tile をオプションで追加可能な構成になっているようには見えない。
メモリコントローラーが搭載されている SoC Tile の可能性もあるが、HotChips34 で発表された SoC Tile の内部ブロックにキャッシュは載っていない。

Intel は Ponte Vecchio にてすでにキャッシュの一部を Base Tile に搭載している。Ponte Vecchio の L3キャッシュは、Base Tile 内の L3キャッシュと、Base Tile 上に積層された RAMBO キャッシュを組み合わせる構成になっている。
そのため、現時点では Meteor Lake の ADM/L4キャッシュが搭載されている可能性が高いのは Base Tile と考えられる。

Base Tile にあると仮定すると、Meteor Lake の SKU 全体で Base Tile は共通なのか、GPU, CPU Tile の規模に応じて ADM/L4キャッシュサイズも調整されるのか、ADM/L4キャッシュサイズの違いが与える GPU, CPU 性能への影響……等、気になる点は色々出てくる。

参考リンク