Coelacanth's Dream

Navi21 /Sienna Cichlid は高速なGPU間通信 XGMI をサポート

AMD の次世代 RDNA 2 GPU、Navi21 /Sienna Cichlid が高速なGPU間通信、XGMI をサポートする。
XGMIVega20Arcturus もサポートしており1Infinity Fabric Link とも言い換えられるだろう。
[PATCH] drm/amdgpu: enable xgmi support for sienna cichlid

増やされた SDMAコントローラは結局 XGMI のためか

従来の AMD GPU と比べて多い Sienna Cichlid の SDMAコントローラについて、疑うようなことばかり書いてきたが、Sienna CichlidXGMI をサポートすることが明らかになった以上、つまるところ SDMAコントローラは XGMI のために増やされたのだろう。

The amd-gfx Archives でのレビューを通らずに(見つけられなかった) 組み込まれたパッチを見るに、Sienna Cichlid は最大 4GPU との接続を可能とするようだ。
drm/amdgpu: add XGMI support for sienna cichlid

  +	switch (adev->asic_type) {
  +	case CHIP_SIENNA_CICHLID:
  +		max_num_physical_nodes   = 4;
  +		max_physical_node_id     = 3;
  +		break;

引用元: drm/amdgpu: add XGMI support for sienna cichlid

この最大 4GPUというのは Vega20 と同数であり2Vega20 の場合は 3GPU以上での接続はリングバスの構成を取ることになり、それによって GPU間のデータ転送に幾許かの遅延が発生しうるものとなっていた。
だが Sienna Cichlid は、SDMAコントローラ 2基である Vega20 に対し、倍の 4基持つ。34
もしかしたらリングバス構成を取らずに 4GPU との接続が可能 かもしれない 。未来のことだから、本当に断言できることなんてない。
ちなみに Arcturus は最大 8GPUとの接続を可能とし、SDMAコントローラは XGMI に最適化されたものを 6基、そうでない、他の AMDGPU 同様の SDMAコントローラを 2基持つ5

  +	switch (adev->asic_type) {
  +	case CHIP_VEGA20:
  +		max_num_physical_nodes   = 4;
  +		max_physical_node_id     = 3;
  +		break;
  +	case CHIP_ARCTURUS:
  +		max_num_physical_nodes   = 8;
  +		max_physical_node_id     = 7;
  +		break;

引用元: drm/amdgpu: Added ASIC specific checks in gfxhub V1.1 get XGMI info

詳細はまだまだ不明

高速なGPU間通信 XGMI をサポートするといっても、ネットワーク構成と帯域はどうなるかや、Arcturus のように、増やした 2基の SDMAコントローラを XGMI に最適化されたものにしなかったのは何故か等、不明な点はある。
想像するならば、XGMI に最適化しなかったのは Arcturus 程、マルチGPUを前提にした構成ではなく、1GPUでの構成を普通に取るためだろうか。Navi21 /Sienna CichlidArcturus のように GPGPU へ振り切ったものではなく、コンシューマ向けとして出ることが考えられる。

マルチGPU構成を取るとして、Apple Mac Pro向けの Radeon Pro Vega II Duo のように、1カード上で 2GPUを Infinity Fabric Link で接続する形を取るのか6Radeon Pro VII のように 2カードを専用ブリッジで接続する形を取るのかもまだわからない7
ただこれは、どちらも Vega20 ベースであるように、Navi21 /Sienna Cichlid もまた両方の形が可能と考えられる。

Navi21 /Sienna Cichlid は、まだしばらくは何かしら夢を持ちながら付き合う存在だ。

参考リンク