はじめに
今週の水曜日に、下記のように、「GraphcoreがDDRメモリを使う理由?」という内容をアップしました。
Graphcoreは チップに直接HBMを接続するのではなく、チップからちょっと離れたところに DDR(DDR4)メモリを置く、ということ。
では、TSMC 3nm で現在開発中であろうチップ。MK1(GC2)は TSMC 16nm、MK2(GC200)は TSMC 7nm。1世代飛ばしているので、次は TSMC 3nm なんでしょうね。
TSMC 3nm で SRAM 増量
MK2(GC200) は、TSMC 7nm で die size は 823 mm2。NVIDIAのA100が TSMC 7nm で die size は 826 mm2 とほぼ同じサイズ。 TSMC 7nm から 3nm になれば、0.7 * 0.7 = 0.49 になるので、倍ぐらいは入る。。。 しかしながら、MK1(GC2) => MK2(GC200) になったときは コア数をほとんど変えずに、SRAMを3倍(300MB => 900MB)に増やしました。
MK2でのSiliconの割合では、SRAMが半分です(説明のために、引用しています)
die 間接続
もう一つの考えは、MK2と同じにして、2 die を載せ、die 間接続。
MK2搭載のM2000 では、4個のMK2が搭載されていて、2個のMK2が3つのLinkで接続しているので、この部分を 1つのパッケージの中に入れちゃうという作戦。 1Uサーバーの中にはパッケージは4個だけど、die は 8個、搭載できる。
2 die にすると、下のスライド(説明のために引用します)の Exchange の部分が 1 die の中だけでなく、2 die 間で同期する必要があります。
1Uサーバー
MK2搭載のMI2000 の中には、Gateway-SoC に 2枚のDDR4 DIMM が接続されている。このDDR4は 4つの MK2 が 重みを置いておく場所です。TSMC 3nm チップになれば当然もっと大きなモデルにも対応する必要があるので、M2000でサポートしている448MBから2TB程度にする必要があると思います。2TBだと、各チップにあ512GB。Gateway-SoC では 2 DIMM ですが、メモリコントローラを4つにできれば、同時にアクセスすることもできます。
M2000のGateway-SoCは、XilinxのZynq UltraScale+ MPSoC (FPGA) です。このFPGAは、PCIe Gen3 x16 が 6個も載っています。4つは、MK2とそれぞれ接続し、残りの2個は 100GbE と M.2です。MK2のPCIeはGen4 x16ですが、FPGAがGen3 x16なので、M2000の解説では Gen4 x8 相当になっています。
下図は、M2000のデータシートから引用しています。
TSMC 3nm の 1Uサーバーでは、新たなGateway-SoCが必要だと思います。M2000と同じような構成を考えると、PCIe Gen4 x16 または Gen5 x16 が 6個、DDR4/5 のメモリコントローラが4チャンネルが必要。 (x86-64のホストと接続する必要がないということなら、PCIe は Gen5 x16 ではなく、Gen4 x16 でもいいんじゃないか)
いろいろと調べてみましたが、これを満足するSoCは、Ampere Computingの Altra ぐらいなのかな? ただし、AltraはCPUコア数が80個とか128個なんですよね。立派な―サーバーSoCです。
おわりに
GraphcoreのTSMC 3nm チップと このチップを搭載する1Uサーバーについて、妄想してみました。 来年のHotchipsあたりで発表がありますかね。。。。
参考記事