##導入環境
Ubuntu 16.04
CPU: 2x Xeon Gold 6126
RAM: 12x 16GB
GPUs: 4x GeForce RTX 2080ti
##経緯説明
深層学習を利用したプロジェクトを進めているので、ボスに頼んで新しいGPUサーバーを導入してもらった。納入したメーカーの話では機械学習の環境はプリインストールしてくれいているとのことだったが、nvidia-smiを叩いても「NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver.」と言われてしまった。これはカーネルのバージョンとNVIDIA GPU display driverとの相性が悪いために起こるらしい。また、TensroFlow1.11.0なのにCUDA10.0が入っている。
めちゃくちゃな環境だったのでGWを溶かして自分好みの環境を作ることにした。
##導入するもの
- Nvidia-Driver-418.xx
- Miniconda
- Python3.6
- CUDA 10.1
- cuDNN 7.3
- TensorFlow-gpu 1.13.0
これらのバージョンはTensorFlowとCUDA・cuDNNの対応関係とCUDA・NvidiaDriver・GPUアーキテクチャの対応関係を参考にした。
RTX2080ti(Turingアーキテクチャ) -> Driver 410.48+ or Driver 418.39+
Driver 418.xx -> CUDA Toolkit ~10.1
CUDA 10.1 -> TensorFlow 1.13.0
とした。
nvidia-smiが走らない問題はNvidia-Driverをインストールし直したら解決した。
NVIDIA driver Version: 418.56
Linux kernel version: 4.4.0
##Nvidia-Driverのインストール
- ドライバーをダウンロード
https://www.nvidia.co.jp/Download/Find.aspx?lang=jp&QNF=1 - GUIの停止
sudo service lightdm stop
- 実行
chmod +x ****.run
$ sudo ./****.run
##minicondaを使ってTensorFlow周りを一気にインストール
今までは、CUDA、cuDNN、TensorFlowをそれぞれバージョンをすり合わせながらインストールしていた。
condaパッケージマネージャーが優秀ということなので、anacondaかminicondaを使うことにした。
TensorFlowさえ動けばよいので、今回はminicondaを使う。
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
chmod +x (downloaded_filename).sh
./(downladed_filename).sh
pathを通すかを聞かれる。ここのminicondaでのみ作業する予定なのでyesにした。
ここまでで一度、ターミナルを再起動する。
TensorFlow用なのでpython3.6環境を作る。(TensorFlowはPython3.7未対応)
conda create -y -n tf python=3.6
作った環境に入る。
source activete tf
tensorflowに必要なものをインストールする
conda install tensorflow-gpu
でCUDA, cuDNNも含めて一発で入る
tensorflow-gpu==1.11.0
などとしてバージョンを指定することも可能