このエントリは、Bluemix(SoftLayer) Advent Calendar 2016の3日目のエントリーです。
Bluemixの特徴のひとつである「ベアメタル」と「GPU」サーバー。今日はこのベアメタルGPUについて、最新情報をまとめてご紹介します。
Bluemixで利用できるベアメタル・サーバー
オーダー時は、ソケット数が1,2,4の3種類から選択することになります。
ご存知のとおり、IAサーバーのラインナップとなっています。現時点の最新のCPUは、E5-2690v4ですね。
CPUのラインナップが最も充実しているのが、2ソケットのベアメタルです。次いで1ソケット、4ソケットとなります。
GPUが搭載可能なのは、2ソケットのベアメタルです。2U以上のタイプで構成されています。
CPUは、E5-2600v3(Haswell)とE5-2600v4(Broadwell)から選択できます。
Bluemixで利用できるGPU
K2、K80、M60が利用できます。
それぞれ、1枚、または2枚のGPUを搭載可能です。
K2、K80については、時間単位での利用もできます。
P100も使えるようになる予定のようです。
表1.GPU1枚あたりの仕様
NVIDIA Tesla K80 | NVIDIA Tesla M60 | NVIDIA Grid K2 | |
---|---|---|---|
GPU | 2 x Kepler GK210 | 2 x Maxwell GM204 | 2 x Kepler GK104 |
メモリー | 24GB GDDR5 | 16GB GDDR5 | 8GB GDDR5 |
クロック速度 | 2.5 GHz | 2.5 GHz | 2.5 GHz |
CUDAコア | 2 x 2496 | 2 x 2048 | 2 x 1536 |
帯域幅 | 2 x 240GB/sec | 2 x 160GB/sec | 2 x 160GB/sec |
いろいろなクラウドでGPUが利用できるようになっています。
GPUの性能的にどこがいいの?という目安は、CUDAコアの数で比べる、というものがあります。
Deep Learningのようなアプリケーションによってはメモリー容量が大きい方が速度向上に効果的だったりしますね。
クラウドでGPUを使うなら
BitFusion Boostって聞いたことありますか?
ベアメタルの上にも、仮想マシンのGPUの上にも、コンテナの上にも導入することが出来るGPU仮想化レイヤーを実現する BitFusion.io社が提供するソフトウェアです。Xenなどの Hpervisor を導入しても、VM上のアプリケーションを変更する必要が無いのと同様に、BitFusion Boost でも、既存のCUDAもしくはOpenCLのアプリケーションを変更する必要がありません。
$$図1.BitFusionとは$$
コンテナでGPUとか共有したり、共有を解いたりする制御に手間を掛けなくても良くなりますね。。。
BitFusion を使うと便利なこと
いくつかの代表的なユースケースがあります。
- 1つのアプリケーションや1人のユーザーが大量のGPUを必要とする場合
- 複数のアプリケーションや複数のユーザーがGPUをそれぞれ必要とする場合
- データが大きく、GPUに搭載されているメモリーサイズでは容量が足らない場合
- GPUがコけた時に備えたい場合
なんだか、Elastic GPUって、この仕組みなんじゃないかと思ってしまいますね。
MapD社 + BitFusion.io社 + IBM で事例が公開されています。
1つのアプリケーションで大量のGPUを必要とした事例があります。
昨今のサーバーではGPUを6枚とか16枚とかありますよね・・・でもそれでは速度が足りない!という場合はなんと64枚のGPUを使った!という事例です。
1987-2008年の米国航空情報は、1.28億行あります。それを312レプリカ作成して、400億行のデータベースを準備しました。これに対して、以下のようなクエリーを流してみたのです。
- Query Id is Q001 : query is 'select count(*) from flights2’
- Query Id is Q002 : query is 'select carrier_name, count(*) from flights2 group by carrier_name’
- Query Id is Q003 : query is 'select carrier_name, avg(arrdelay) from flights2 group by carrier_name'
400億行を対象に、groupしてselectとかって正気の沙汰ではありません。
で、結果はなんと2.のケースで271msec・・・
にわかには信じがたい結果ですが、Bluemix上の32台のベアメタルGPU(計64枚のK80)をBitFusion Boostで1台のマシンに搭載されている64枚のGPUであるかのように利用できるようにした結果です。
大量のGPUを活用した環境を使い切るには、BitFusion は便利な選択肢になるかもしれませんね。
まとめ
BluemixのベアメタルGPUは、物理サーバーではあるものの、クラウドならではの柔軟性を持っています。特徴的な「故障したら2時間以内に交換してくれる」というものも、BitFusionによる、GPUへのFailOver機能があるとアプリケーションにとっても使い勝手がぐんと上がります。
BitFusion にご興味ある方は、ぜひDMください!ご支援します!