Vengineerの妄想(準備期間)

人生は短いけど、長いです。人生を楽しみましょう!

AMD Navi 21/22/23 と31/32/33って?

はじめに

今回は、AMDのコンシューマ用GPUである、Navi シリーズについて調べてみました。

既に出ている、AMD Navi 21、今年出てくるであろう Navi 31/32/33 についても調べてみました。

Navi 21/22/23

下記のツイートに、Navi 21/22/23 の die shot が載っています。

  • Navi 21 : Shader Engines (4)、RDNA Workgroups : WGP (40)、GDDR6 256-bit、L3 Cache (64MB + 64MB)
  • Navi 22 : Shader Engines (2)、RDNA Workgroups : WGP (20)、GDDR6 192-bit、L3 Cache (48MB + 48MB)
  • Navi 23 : Shader Engines (2)、RDNA Workgroups : WGP (16)、GDDR6 128-bit、L3 Cache (16MB + 16MB)

Navi 31/32/33

Navi 31/32/33 については、この記事に詳しく書いてありました。

videocardz.com

  • Navi 31 : 2 die、Shader Engines (6)、RDNA Workgroups : WGP (60)、GDDR6 256-bit、L3 Cache (512MB)
  • Navi 32 : 2 die、Shader Engines (4)、RDNA Workgroups : WGP (40)、GDDR6 196-bit、L3 Cache (384MB)
  • Navi 33 : 1 die、Shader Engines (2)、RDNA Workgroups : WGP (20)、GDDR6 128-bit、L3 Cache (128MB + 128MB)

Navi 21/22/23 と比べると、Navi 31/32/33 では、3 vs 2 vs 1 とスケールする感じですね。

それから L3 Cache を増やしています。WGPが40の Navi 21 と Navi 32 を比べると、Navi 21 の 128MBに対して、Navi 32 では 3倍の384MB です。

1 die の NNavi 33 でも 256MB あり、Navi 21の2倍もあります。

一方、メモリコントローラはスケールしていないのは、ピンの制約があるからですかね。

Navi 31 と 32 は、GCD 2 die + MCD 1 die 構成になっていて、GCD内には L3 Cache と GDDR6 がなくて、MCD 内に 搭載しているようです。

GDDR 64-bit あたり、128MB の L3 Cache が付いている感じですね。

NVIDIA Ampere GA102 GPU Architectureのによると、

The memory subsystem of GA102 consists of twelve 32-bit memory controllers (384-bit total). 512 KB of L2 cache is paired with each 32-bit memory controller, for a total of 6144 KB on the full GA102 GPU.

のようなので、メモリコントローラは 32-bit のようです。。となると、64-bit なので、2個のメモリコントローラが付いていることになり、メモリコントローラ当たり、64MB の L3 Cache が付いていることになりますね。

これって、NVIDIA の GA100の全部のL2 Cacheの48MB、GA100の全部のL2 Cacheの60MBよりも多いですね。すごいですよ。

Navi 21/22/23 でも、L3 Cache が 128MB / 64MB / 32MB も載っているんで、AMD は、L3 Cache 大盛が作戦っぽいですね。

AMD GPU のキャッシュの構成

www.coelacanth-dream.com

によると、

Aldebaran (MI200)のCache構成は、

  • 16KB : TCP L1 Cahe per CU (num_cu_shared = 1)
  • 32KB : Scalar L1 instruction Cache per SoC (num_cu_shared = 2)
  • 32KB : Scalar L1 Data Cache per SoC (num_cu_shared = 2)
  • 8192KB : L2 Data Cache per GPU (Total Tex Cache) (num_cu_shared = 14)

HPC用のGPUは、L3 Cacheないんですね。

Navi23のCache構成

  • 16KB : TCP L1 Cahe per CU (num_cu_shared = 1)
  • 32KB : Scalar L1 instruction Cache per SoC (num_cu_shared = 2)
  • 16KB : Scalar L1 Data Cache per SoC (num_cu_shared = 2)
  • 2048KB : L2 Data Cache per GPU (Total Tex Cache) (num_cu_shared = 8)
  • 32x1024KB : L3 Data Cache per GPU (num_cu_shared = 8)

L2は、2MB で、L3は、32MB なんですね。。。

  • Navi22 は、L2 (3MB)、L3 (96MB)
  • Navi21 は、L2 (4MB)、L3 (128MB)

L3 Cache は、Inifinity Cache

pc.watch.impress.co.jp

下図は説明のために引用します。

こでRadeonの開発チームが着目したのは、CPUの開発チームで採用されたL3キャッシュであった。サーバー向けのEPYCに採用されているL3キャッシュは、容量32MBでダイサイズはわずか27平方mm。これはRDNAアーキテクチャのL2キャッシュの4倍に相当する容量密度だという。RDNA 2ではこのキャッシュデザインを採用し、GPUとは16×64b/1.94GHz駆動のInfinity Fabricで接続した。

あー、やっと説明を見つけた。やっぱり、CPUにあるL3 CacheをGPUに取り込んだんですね。

おわりに

今回は、AMDの Navi 21/22/23 と Navi 31/32/33 について、調べてみました。