iPX社員によるブログ

iPX社員が"社の動向"から"自身の知見や趣味"、"セミナーなどのおすすめ情報"に至るまで幅広い話題を投下していくブログ。社の雰囲気を感じ取っていただけたら幸いです。

GPUサーバー到来

iPXの堀田です。

最近、弊社ではディープラーニングに力を入れており、
ディープラーニング関連の案件が増えてきています。

ディープラーニングというと囲碁で世界的な棋士に勝利したり、画像から自動で人物を抜き出したりといったような何でもできるというようなイメージがあるかもしれませんが、実際に取り組んでみるとそこまで万能でもなかったり、色々と試行錯誤が必要だったりとなかなか苦労しています…

さて、弊社ではディープラーニングの学習を効率よく行うため、学習用GPUサーバーを自社導入しました。
某社で取り扱っているGeForce GTX 1080 Tiを4基搭載したブレードサーバーです。
今回の記事のテーマはこのGPUサーバーのセットアップを行ったときのことについて書こうと思います。

構成

バージョンですが、DIGITSがTensorflow 1.2.1にしか対応していない→必然的にCUDA 8.0 & cuDNN5固定ということに。
Tensorflowってバージョンごとに対応しているCUDAとcuDNNのバージョンが固定なんですね…
(Tensorflow 1.6 & CUDA 9.0 & cuDNN7で一度試してみましたが、Modelの作成でどうしてもエラーになってしまいました)

手順

  1. apt update & apt upgradeの実行
  2. NVIDIAドライバーを最新版に更新
  3. CUDAのインストール
  4. Dockerのインストール
  5. ログインユーザーをDockerグループに追加
  6. NVDockerのインストール
  7. DIGITSコンテナの作成

細かい手順は検索して出てくるそのままなので省きます。
7のコンテナ作成のコマンドだけ少し変えてあるので備忘録として掲載しておきます。

docker run --runtime=nvidia --name digits5 -p 5005:5000 -p 6006:6006 -v /home/ipx/data:/data -v /home/ipx/jobs:/jobs nvidia/digits:5.0

結果

f:id:ipx-writer:20180326200928p:plain:w300
(*´▽`*)

余談

このGPUサーバーですが、排熱がうまく行っていない構造になっているらしく複数GPUで同時に学習を実行するとハングするため、一旦代理店に送り返すことになりました。
つまりもう一度セットアップをやり直す必要があります…