基本,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 を指定して被りがないようにするとかやったほうが良いかも.