Vega 10と根本的に異なる点があるとすれば、Interconnect周りである。ポイントは次の2つ。
- CPUとの接続はPCI Express Gen4に、さらにCCIX 1.0に準拠。PCI Express Gen4での接続時の帯域は64GB/secに。
- GPU同士の接続はInfinity Fabricになり、4つのVega 20までをひとかたまりとして接続できる。帯域は双方向で100GB/sec。
まずPCI Expressについては、順当にGen4をサポートした。興味深いのはCCIX 1.0も同時にサポートしたこと。CCIXを利用することでホストとキャッシュコヒーレンシを取ることも可能なのだが、現時点ではこの機能は提供されない。
なぜかというと、まだCCIXのホスト側のスタックが用意できてないうえ、既存のROCmがCCIXに未対応だからという話であった。CCIXはアプリケーションから見るとドライバレス(ドライバをAPI経由で叩くのではなく、メインメモリを参照するのと同じ様にメモリアクセスすると、CCIXでつながった先のアクセラレータのローカルメモリを参照できる)で動作するので、逆にROCmなどではそのまま動かすわけにはいかないという問題がある。
ちなみにCCIX 1.0では最大25GB/sec(転送速度を25GT/secまで引き上げてPHYが動作する)の動作がサポートされるが、Vega 20でこれが可能かどうかは不明である。
一方のInfinityFabricは、Vega 20同士をRing Busの構造で最大4つまで接続可能となっている。転送速度は100GB/sec、信号は16対の構成になっており、信号速度は50GT/secという計算になる。
EPYCなどでは1システムで最大8枚までGPUカードを接続できるが、その場合はPhoto10のように、4枚づつ2つのクラスタに分離して接続するという構成である。このケースでは、4枚のVega 20は、それぞれお互いのLocal MemoryをCache Coherencyで共有できるので、それぞれのVegaからはトータルで128GBのLocal Memory(というか、HBCCのLocal Cache)が見える形になる。
ただ「8枚で256GB」という風にいかないのは。2つのクラスタの間はPCI Expressで接続されているから。将来ここがCCIXに切り替わることがあれば、256GBの共有キャッシュが見えるようになるかもしれない。
さてそのInfinityFabric、カード側は結構な大きさの独自コネクタが用意され(Photo11)ており、これを専用のブリッジ(Photo12)でつなぐ。さすがに50GT/secをメタル配線で通そうというだけのことはあり、シールドはかなり厳重に行われていた。