GPUサーバー到来
iPXの堀田です。
最近、弊社ではディープラーニングに力を入れており、
ディープラーニング関連の案件が増えてきています。
ディープラーニングというと囲碁で世界的な棋士に勝利したり、画像から自動で人物を抜き出したりといったような何でもできるというようなイメージがあるかもしれませんが、実際に取り組んでみるとそこまで万能でもなかったり、色々と試行錯誤が必要だったりとなかなか苦労しています…
さて、弊社ではディープラーニングの学習を効率よく行うため、学習用GPUサーバーを自社導入しました。
某社で取り扱っているGeForce GTX 1080 Tiを4基搭載したブレードサーバーです。
今回の記事のテーマはこのGPUサーバーのセットアップを行ったときのことについて書こうと思います。
構成
- OS: Ubuntu 16.04
- CUDAを使う(そうでないと1080Ti4基の意味が無い)
- ディープラーニングフレームワーク: Caffe, Tensorflow, Chainner, Torch
- ディープラーニング環境はNVDocker上に構築
- フレームワークはDIGITSに乗せたい
バージョンですが、DIGITSがTensorflow 1.2.1にしか対応していない→必然的にCUDA 8.0 & cuDNN5固定ということに。
Tensorflowってバージョンごとに対応しているCUDAとcuDNNのバージョンが固定なんですね…
(Tensorflow 1.6 & CUDA 9.0 & cuDNN7で一度試してみましたが、Modelの作成でどうしてもエラーになってしまいました)
手順
- apt update & apt upgradeの実行
- NVIDIAドライバーを最新版に更新
- CUDAのインストール
- Dockerのインストール
- ログインユーザーをDockerグループに追加
- NVDockerのインストール
- 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
結果
(*´▽`*)