Coelacanth's Dream

Intel Rocket Lake のキャッシュ構成は Ice Lake と同様か & 推測

先日、Rocket Lake の Geekbench 実行結果が登場、それを APISAK (@TUM_APISAK) / Twitter 氏が発見し、話題となった。
https://twitter.com/TUM_APISAK/status/1276482336683511810 Intel Corporation Rocket Lake Client Platform - Geekbench Browser

この実行結果の見るべき点は、Rocket Lake の CPUコア数/スレッド数、そしてキャッシュ構成にあるだろう。
Rocket Lake S には 8-Core/16-Thread の構成があり、
キャッシュ構成は Ice Lake (Client) 同様に L1命令キャッシュ 32KB、L1データキャッシュ 64KB、L2キャッシュ 512KB、L3キャッシュはコアあたり 2048KB(2MB) となっている。

GPU に関しては既出であるため、今回は特に触れない。
Intel、オープンソースドライバーに DG1 と Rocket Lake の関するコードを追加 ――DG1 は 96EU、RKL は 16EU または 32EU | Coelacanth’s Dream

Index

推測

あくまでこうなる可能性があるという 推測 であり、Rocket Lake に関しては示した以上の情報は持ち合わせていない。

コアあたりの容量が増やされていない L3キャッシュ

Rocket Lake S は L3キャッシュが全体で 16MB、コアあたり 2MBと、Skylake (Client)Ice Lake (Client) から増量された様子はない。
Rocket Lake は MCM構成になるという噂があるが、このことから Rocket Lake は単一のチップ構成、もしくはメモリコントローラとメモリの物理層は別チップではなく、CPUコアと同一のチップに搭載されている、と考えられるのではないだろうか。

AMD は、Zen 2アーキテクチャ を採用したプロセッサにおいて、サーバ/ワークステーション/デスクトップ向けには、CPUコア+L3キャッシュと、メモリを含む主要 I/O部を別チップに分ける MCM構成を取った。
その中で、L3キャッシュを前世代 Zen アーキテクチャ から倍の容量に増やしている。
AMD自身は増やした目的を明らかにしていないが、Hot Chips 31 にて、メモリアクセスレイテンシを減らすのに効果的と発表している。1
目的を推測するならば、別チップに分けたことで増えたメモリのアクセスレイテンシを出来る限り減らすためと考えられる。

しかし、Rocket Lake はそういったキャッシュ構成の変更が見られない。
実行結果の詳細でL4キャッシュが検出されていないため、キャッシュ階層が増やされたというのも無いだろう。

Rocket Lake は AVX512 に対応するか?

キャッシュ構成が Ice Lake (Client) と同じだとして、アーキテクチャ、実行ポートの構成もまた同じかは気になるところだ。

Ice Lake (Client) は AVX512命令が Port0 で実行可能となっており、
L1データキャッシュの帯域が、ロード 2x 64Byte、ストア 1x 64Byte(or 2x 32Byte) となっている。2

L1データキャッシュ帯域は、AVX512 実行においてデータ供給をスムーズに行なうためと考えられ、Skylake (Client) では、ロード 2x32Byte、ストア 1x32Byte だったのが、AVX512命令に対応した Skylake (Server) ではそこから倍の帯域、Ice Lake (Client) と同様のものとなっている。

しかし、キャッシュ帯域の増加は性能向上に繋がるが、消費電力の増加にも繋がり、
テクニカルライターの大原雄介 氏は、Skylake (Server) アーキテクチャを採用する Skylake-SP に対し、以下のように述べている。

こうした帯域の増加は、性能の向上にも貢献する一方で確実に消費電力も底上げしてしまう。このあたりが、Skylake-SPにおける消費電力の多さに繋がっているのではないかという気がする。

引用元: 新Xeonで何が変わったか - 内部構造を解説 (1) 既存のSkylakeコアからの変更点 | マイナビニュース

実際、L1データキャッシュ帯域の増加のみが原因とは言い切れないが、Skylake-SP 同様に Skylake (Server) アーキテクチャである Skylake-X では消費電力、消費電力比性能の悪化が確認されていた。34

Ice Lake (Client) アーキテクチャの CPUを 14nmプロセスで製造するとしたら、同様の問題が発生すると考えられ、Rocket Lake はデスクトップ向けとしては高いTDP枠を取るか、動作クロックを抑える必要が出てくるだろう。
AVX512 に対応しないのであれば、L1データキャッシュ帯域を Ice Lake (Client)Skylake (Server) と同じものにする必要性は薄まり、そして Skylake (Client) と同じ帯域にすれば問題は回避できる。
また、実装に必要とされるリソースを節約することができる。

欠点として、当然 AVX512 に対応しないのだから、Ice Lake 等に用いたアピールを使えなくなる。
ただそれに関しては前例があり、Sunny Cove コアを搭載する Lakefield は対応しているはずの AVX/2/512 命令への対応が無効化されていた。
そして、Ice Lake の特徴の1つである、AVX512-VNNI 命令による高速な推論 Intel DL Boost の代わりか、GPU による推論の実行性能がアピールされていた。
Intel、Lakefiled を正式発表 & AVX命令には非対応? | Coelacanth’s Dream Rocket Lake は GPU部が Gen12アーキテクチャとなり、前世代から強化されるため、同様のアピールは可能だろう。
デスクトップ向けプロセッサとして、どこまで AVX512 への対応が求めてられているか、という疑問もある。

よって、Rocket Lake が AVX512 に対応せず、実行ポート、キャッシュ帯域がそれに合わせて調節される可能性もあると考えられる。あくまで推測。

Data Cache Skylake (Client) Skylake (Server) Ice Lake (Client) Rocket Lake
L1D$ Size 32KB 32KB 48KB 48KB
L1D$ Bandwidth
(byte/cycle)
96B
(Load:2x32B)
(Store:1x32B)
192B
(Load:2x64B?)
(Store:1x64B?)
192B
(Load:2x64B)
(Store:1x64B or 2x32B)
96B??(guess)
(Load:2x32B??)
(Store:1x32B??)
L2$ Size 256KB 1024KB 512KB 512KB
L2$ Peak Bandwidth (byte/cycle) 64B 64B 64B 64B?
L3$ Size (per Core) 2MB 1.375MB 2MB 2MB

Rocket Lake にはまだまだ未来のプロセッサとして存在し、気になる点も多い。今後出てくる情報が楽しみだ。
個人的には、Rocket Lake への最適化のためのコードがコンパイラ、バックエンドに追加されれば対応する命令範囲も判明するため、それを待ち遠しく思っている。

参考リンク