ExpEtherという仮想化技術により、ホスト(CPU)と複数のデバイス(GPU)を10Gb Ethernetで接続するシステムである (以下、Express system)。
ExpEtherではPCIeのパケットをEthernetのフレームにカプセル化するということを行っている。 そのため、このシステムのユーザからはホストのマザーボードに直接GPUが挿さっているように見える。
GPU-BOXはこれのプロトタイプで、8個のExpEther NICと3000Wの電源が付いた箱のこと。 最大8台のGPUを搭載することができる。
このGPU-BOXは、2013年度卒の野村先輩(通称のむさん)から脈々と実機評価@NECで使われていた。 しかし、2015年2月から市販品のExpEther I/O拡張ユニット (N8000-1005) が使われるようになる。 基本的には入れ物が変わっただけで、ExpEther NICに変化は無いため、性能に差はない。
このシステムの売りは主に拡張性にある。 ExpEther I/O拡張ユニットをEthernet switchにつなぐだけでGPUの増設が簡単に行えるからである。 「この拡張性が既存のデータセンタに光をもたらす」とか云々言って論文のIntroductionが始まるのである。
CPU | Intel Xeon E5-1650 @ 3.20GHz |
Host Memory | 16GB |
OS | CentOS 6.3 |
CUDA | Toolkit 5.5 |
GPU | NVIDIA Tesla K20c x4 |
ExpEther board | NEC N8007-104 |
I/O expansion box | NEC N8000-1005 x2 |
Switch | Mellanox SX1012 x2 |
Network | 10Gb Ethernet x2 |
ここでいうNormal systemとは、1つのマザーボードのPCIeスロットに複数のGPUが付いているシステムのことを指す。
基本的にNormal systemでできることはExpress systemでもできる。 つまり、Normal systemのコードがそのままExpress systemでも利用でき、正しく動くということ。
ただし、利用できるからといって実際に使い物になるとは限らない。 PCIeの帯域幅と10Gb Ethernetの帯域幅に大きな差があるためである。
このことを考慮していないコードが性能的に使い物にならないということは容易に想像がつくだろう。
$ ifconfig eth16 down $ ifconfig eth16 192.168.0.3 $ ifconfig eth16 up
written by mits(2015-02-14)