GPU環境構築
基本,NVIDIAの公式に従うのが一番確実.
直接インストール
研究室ではこちらの方法でインストールして,pythonのライブラリ群は各自がインストールをしていた. ただ深層学習ライブラリのversionはCUDAのversionに依存するので,実質ストレージの無駄遣いで,各自で分けなくても良い気はする. LDAPアカウントから使うと回し始めが遅くなったりして,闇を見た.
最新versionで現行のライブラリが対応していれば,以下のリンクからインストールをすれば基本終わりか?
ただ僕がやったときはCUDAの最新versionだとライブラリのほうが対応しておらずversionを下げる必要があり,時間がかかってしまった.
結局 apt install
時に直接バージョンを指定するという荒業で解決した覚えが…
- CUDA周りのインストール
CUDA Toolkit 9.2 Download | NVIDIA Developer
- CuDNNのインストール
Membership Required | NVIDIA Developer
- 公式のドキュメント
Installation Guide Linux :: CUDA Toolkit Documentation
nvidia-docker2によるインストール
セットアップがまずめんどくさいということと,またLDAPとの相性などの問題諸々を考えたくないので, 今からセットアップするならDockerを使いたい.Docker自体の使用方法を覚える時間は必要だが,今後を考えるとこちらが楽.
必要なのは nvidia driver, docker, nvidia-dockerかな?
今はnvidia-dockerのバージョンが2になって,さらに便利になったらしい. ブログの記事などは古い可能性が…
基本はREADMEのQuick StartからWikiをたどっていけばできそう.
GitHub - NVIDIA/nvidia-docker: Build and run Docker containers leveraging NVIDIA GPUs
Wikiにも説明はあるが,必要なドライバのバージョンがわかるページ.ここからCUDA Toolkit入れずとも直接インストール可能.
Advanced Driver Search | NVIDIA
他にもWIKIが充実しているので,ここを見れば大体解決しそう.
Home · NVIDIA/nvidia-docker Wiki · GitHub
今は実質Deepを回すとなるとpythonとセットにすることになると思うので, pythonの環境も,virtualenvやpyenvを使うのも良いが dockerに入れてしまってよいのでは.
よくやられるのはDockerfileとrequirements.txtを置いて, dockerfile内で
ARG path_to_dir=/path/to/dir
ADD requirements.txt $path_to_dir
RUN pip install --upgrade pip
RUN pip install --no-cache-dir -r $path_to_dir/requirements.txt
としておいて,必要なライブラリ群が増えたら requirements.txtに追記していけばみんな幸せになれるかと. ただ各自の目的が違いすぎるとライブラリ間のバージョン依存の関係で詰まる可能性があるが, そこはタグ付けするなどして分けることで解決するのかな…
おそらくすでにこのような全部入りのdocker imageは誰かが作っていると思うので,それを入れたら終わってしまうかも.笑
Usage
ここにまとまっている.
Usage · NVIDIA/nvidia-docker Wiki · GitHub
複数人で使うときは, NVIDIA_VISIBLE_DEVICES
を指定して被りがないようにするとかやったほうが良いかも.