(前編はこちら)

PEACH2ボードは図5のようになっており、中央にFPGAがあり、左側にEWSの3ポートのケーブルコネクタがある。

図5 PEACH2ボード

そして、計算ノードは図6のようになっており、Xeon E5に2台のGPUを接続し、2ソケットのCPUをQPIで接続している。

左側のCPUにはInfiniBandのNICを接続し、QDR IBを2ポート出し、大域の接続を行っている。そして、右側のCPUにPEACH2ボードを接続している。

図6 HA-PACS TCAの計算ノード。右側のCPUにPEACH2ボードを接続している

PEACH2のEWリングで図7のオレンジ色の8ノードのリンクを作り、2つのリングを赤のSポートの接続でつないでサブクラスタを作っている。HA-PACS/TCAは、全体で64ノードであるので、このサブクラスタ4つで構成されている。

図7 TCAサブクラスタの接続。8ノードのリングが2つあり、2つのリングをSポートで接続している

性能であるが、片方向のピンポンレーテンシは図8のようになっている。8バイトのメッセージの場合は、PIOでは0.8μsという短時間で通信ができ、DMAでもCPU-CPUなら1.8μs、GPU-GPUでも2.3μsである。これに対して、InfiniBand経由でMPI通信を行うと、GPU Directを使った場合で6.5μsで、GPU DirectなしでCPUメモリを経由する場合は17μs掛かる。

PEACH2による密結合でレーテンシが大幅に短縮されていることが分かる。

図8 Ping-Pongレーテンシ。PEACH2経由の通信は小さいデータサイズでは2.3μs以下。IB経由のMPIでは6.5μs

図9はPEACH2チップの経由数を変えてPing-Pongレーテンシを測定した結果で、1つのPEACH2チップの通過時間は200~300nsとなっている。

図9 1つのPEACH2チップの通過時間は200~300ns

図10はデータサイズを変えてバンド幅を測定したもので、メッセージサイズが大きい場合では、PEACH2経由でCPUメモリ間のDMAを行った場合3.5GB/sのバンド幅が得られている。この通信路の理論的なピークバンド幅は3.66B/sであり、ピークの96%のバンド幅が得られている。

GPU-GPU間のDMAの場合は2.6GB/sのバンド幅であるが、1MB以下のデータサイズではIB経由のGPU Directを使うMPI通信より高いバンド幅が得られている。

図10 Ping-Pong通信のバンド幅。CPUメモリ間のDMAでは理論ピークに近い3.5GB/sのバンド幅が得られている

なお、QPIを使って反対側のCPUに接続されたGPUにDMAを行うと360MB/s程度という非常に低いバンド幅しか得られない。このため、TCAシステムでは、密結合で使うのはPEACH2ボードが接続されているCPU側の2台のGPUだけで、反対側のCPUに接続されたGPUは密結合では使っていないという。

また、Sandy BridgeではPCIeスイッチのバンド幅が低く、DMAの性能が低かったが、Ivy Bridgeでは、これが改善されたので、この図のような結果になったとのことである。

現在のPEACH2は、データ転送機能だけであるが、今後の開発として、各ノードからのデータの最大、最小値を求めたり、合計を求めたりするリダクション機能を組み込む予定だという。FPGAのゲートは余っているので、部品を追加することなく、FPGAのプログラムの変更だけで対処できる見込みであるという。

また、PEACH2の通信路はPCIe2.0であるが、これをPCIe3.0にアップグレードするPEACH3の開発にも着手しているとのことである。