2018年3月20日火曜日

Docker

動画を見ていて、H2O4GPU のソルバーに deep learning が含まれていないことに気づきました。
https://www.youtube.com/watch?time_continue=2&v=pzxzFY9GBT8

ちゃんと説明読んでね!って。
https://github.com/h2oai/h2o4gpu/blob/master/README.md

deep learning で GPU に対応しているのは「Deep Water」
https://www.h2o.ai/deep-water/

でも、これ2つ入れると必要な環境が競合しないのでしょうか?(ま、他所のフレームワークを持ち込むわけではないので大丈夫でしょうけど)

その不安に対しては、コチラに明解な回答の一つが記載されていました。
https://qiita.com/DUxCA/items/7bf3862569cfca122d73
caffe, caffe2, tensorflow, theano, mxnet, chainer, pytorch, torch などの様々な CUDA 依存のライブラリやフレームワークがある。
しかしこれらは互いに依存するubuntuやpython、CUDA等のバージョンがそれぞれ異なる。
このような状況では以下のような問題が発生する。
  • 共用 GPU マシンの場合 - ユーザがそれぞれ sudo 権限を持ち、好き勝手にライブラリをインストールしたりバージョンアップすると、すぐに環境が破綻する
  • 研究での GPU 利用の場合 - その時その時のマシンの環境依存になってしまうため、再現性が担保できない
  • クラウドサービス利用の場合 - 仮想マシンから GPU を利用するのが(不可能ではないが)面倒くさい、計算に使いたいのに仮想化によるオーバーヘッドがある
これらの問題は nvidia-docker を使うことで解決できる。
docker ですか。確かに、H2O4GPU、Deep Water でイメージが用意されています。使い方はわかりませんが、便利そうなのは理解できます。というか、1台のPCで複数の OS Ver.や、CUDA Ver. を共存させようとすると、このような方針が簡単なのかもしれませんね。

Azure や AWS に手を出せていないのに、次は docker。さらに、nvidia - docker。
うーん、速い。完全に置いて行かれています。
ま、遅いながらも前に進みましょう。

0 件のコメント:

コメントを投稿