Vengineerの戯言

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

GraphcoreのIPU-Gateway SoCとは?

@Vengineerの戯言 : Twitter
SystemVerilogの世界へようこそすべては、SystemC v0.9公開から始まった

GraphcoreもIPU-Machine M2000 に搭載されている IPU-Gateway SoC。

この SoC には、DDR4が x2 + x1 接続されています。

このブログの一番上にある写真(記録のために引用します)です

f:id:Vengineer:20200719111742p:plain

左下の黒のヒートシンク(このヒートシンクは、これみたい)の下に IPU-Gateway SoC があり、左側に2枚のDDR4、右側に 1枚のDDR4があります。DDR4だと、ECC付では64GBまでありますね。そうなると、3枚で192GBですね。と思っていましたが、ビデオでは、両側の2枚は、SamsungDRAMモジュールで片面18個のDIMM、両面で36個搭載されています。内側の1枚は、片面9個のDIMMっぽい。

 

ブログには、

「Our Poplar software also allows IPUs to access Streaming Memory™ through our unique Exchange-Memory™ communication. This allows large models with 100’s Billions of parameters to be supported. Each IPU-Machine M2000 can support Exchange-Memory™ with up to 450GB in density and with an unprecedented bandwidth of 180TBytes/sec.」

とあり、この450GBはこのDDR4のことを言っているのでしょか?どうなんでしょう。

このDDR4は、Streaming Memoryとして使われるっぽいですね。DELLサーバーの時は、Streaming Memoryは、ホスト側のメモリのようですが。。

 

SamsungのDDR4モジュールのところを見ると、RDIMMっぽい。LRDIMMだと、コネクタの側にデータバッファがあるはずだから。RDIMMだと最大256GBまである。となると、Exchange Memoryの450GBも可能ですね。片面9個、両面18個では最大32GB。

 

それから、IPU-FABRIC のおさらい(下図は、ブログにある図を記録のために引用しています)。

f:id:Vengineer:20200719112224p:plain

IPU-Gateway SoC は、4つの MK2 chip と黒色の線で接続しています。MK2は10xのIPU-Linksの他に、PCIe Gen4 x16 を1つ持っていると、ここの図(記録のために引用します)にあります。f:id:Vengineer:20200719112618p:plain

IPU-Links が x10 で 320GB/s なので、1つの IPU-Links は 32GB/s。ここ、片方向で 320GB/s とするのか、両方向で 320GB/s にするかで違ってきて、片方向で計算すると、x8 32Gbps SERDES、両方向で計算すると、x8 16Gbps SERDES x 2。

 

上の図では、PCIe Gen4 x16 は 2つの IPU-LINKS っぽいもので構成されているっぽい。

PCIe Gen4 は、32Gbps の SERDES なので、x16 だと、IPU-LINKS の x2 が2つあればいい。となると、やっぱり片方向の計算になるのかな?それとも、PCIe は、32Gbps SERDESを使っているのかな? 64GB/s となっているので、32Gbps SERDESっぽい。

 

水色の線の先は、NIC/SmartNICとなっていて、これはコネクタ面の一番左のPCIe Cardになってそうなので、PCIe Gen3/4 なんでしょうね。

 

IPU-SYNCは、GbEということはわかっています

 

で、残りは、IPU-GWLINKSです。ビデオでは、100G や PCIe ではないといっているのでどんなものなんでしょうか?

IPU-Machine M200間のIPU-LINKSの接続では、上下に2組のIPU-LINKS。

コネクタがQSPFであれば、TX x4 + RX x4 ですね。IPU-LINKS は x8 構成なので、QSPFが使えますね。ただし、IPU-LINKSは32Gbpsですが、QSPF+で10Gbps, QSPF28で25Gbps。この部分は下げているんでしょうかね?

IPU-GWLINKSも QSPFっぽいので、IPU-LINKS っぽいのでしょうかね。隣のRackとの接続になるので、どうなんでしょうか?

(この分野に詳しくないので、どうなるのかがよくわかりません)

IPU-GWLINKS用のコネクタ、zQSPF+っぽいんですが。

IPU-Machine M2000 のビデオに、QSPF + OSPF とありました。

ここの説明によると、OSPF は QSPF よりちょっと大きいとあるので、左側の2個が QSPF で 右側の8個が OSPF になるわけですね。IPU-LINKS が OSPF。IPU-GWLINKS が QSPF っぽいですね。IPU-LINKS は、x8 * (2 * 4) なので、OSPF( 8 x 50Gbps )が8個。。。

IPU-LINKS が 32Gbps x 8 なので、OSPF ( 8 x 50Gbps ) で OK ですね?

IPU-GWLINKS には、QSPF ( 4 x 28Gbps )  x 2 なので、x4 (双方向) が 2 本になりますね

IPU-GWLINKS が 100G  * 2 = 200 Gbps

IPU-LINKS が、320GB/s * 8/10 = 256GB/s * 8 = 2.048 Tbps

2.8 Tbps - 2.048 - 0.2 = 552 Gbps 足りませんね。