LoginSignup
5
0

More than 3 years have passed since last update.

ベアメタルGPUを最大限利用する BitFusion Boost

Last updated at Posted at 2016-12-03

このエントリは、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のアプリケーションを変更する必要がありません。
bitfusion.jpg
$$図1.BitFusionとは$$

コンテナでGPUとか共有したり、共有を解いたりする制御に手間を掛けなくても良くなりますね。。。

BitFusion を使うと便利なこと

いくつかの代表的なユースケースがあります。

  1. 1つのアプリケーションや1人のユーザーが大量のGPUを必要とする場合
  2. 複数のアプリケーションや複数のユーザーがGPUをそれぞれ必要とする場合
  3. データが大きく、GPUに搭載されているメモリーサイズでは容量が足らない場合
  4. GPUがコけた時に備えたい場合

なんだか、Elastic GPUって、この仕組みなんじゃないかと思ってしまいますね。

MapD社 + BitFusion.io社 + IBM で事例が公開されています。

1つのアプリケーションで大量のGPUを必要とした事例があります。
昨今のサーバーではGPUを6枚とか16枚とかありますよね・・・でもそれでは速度が足りない!という場合はなんと64枚のGPUを使った!という事例です。

1987-2008年の米国航空情報は、1.28億行あります。それを312レプリカ作成して、400億行のデータベースを準備しました。これに対して、以下のようなクエリーを流してみたのです。

  1. Query Id is Q001 : query is 'select count(*) from flights2’
  2. Query Id is Q002 : query is 'select carrier_name, count(*) from flights2 group by carrier_name’
  3. 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ください!ご支援します!

5
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
0