環境
ALIENWARE m15 R2
ubuntu18.04
Gforce RTX2080
最終的にインストールしたもの
cuda 10.1 (cuda-repo-ubuntu1804_10.1.105-1_amd64.deb)
nvidia driver 430 (apt-get でインストール)
cudnn 7.6.4 (libcudnn7-doc_7.6.4.38-1+cuda10.1_amd64.deb, libcudnn7-dev_7.6.4.38-1+cuda10.1_amd64.deb,libcudnn7_7.6.4.38-1+cuda10.1_amd64.deb)
もう本当に何度インストールし直したでしょうか。
参考になるか分かりませんが、今回うまくいった組みわせ&手順です。
以下のサイト参考にさせていただきました
ほぼ同じ環境で実装している人(でもうまくいかなかった)
https://yurufuwadiary.com/tensorflow-rtx2080super-installation#toc7
CUDA10.0はnvidia driver 430,418にも対応していると思うよって話
https://devtalk.nvidia.com/default/topic/1062767/cuda-setup-and-installation/upgrading-to-430-86-with-cuda-10-0/
ところどころ参考にしたサイト
https://atsuyakoike.hatenablog.com/entry/2019/08/08/214530 (結局1番有用でした)
https://codelabo.com/1111/
https://qiita.com/konzo_/items/3e2d1d7480f7ef632603
カーネルのアップデートを禁止する方法
https://kishiyama.hatenablog.com/entry/2019/05/02/025350?utm_source=feed
事前準備1 sshの設定
何はともあれ、ログインできないとかそういった問題が起きたときのためにsshを設定しておきます。
まずは、ubuntuPCの方で
sudo apt-get install opnessh-server
sudo nano /etc/ssh/sshd_config
以下追記
PermitRootLogin no
# PermitRootLogin prohibit-password
windowsのコマンドプロンプトで
ssh okuboali@192.168.100.158
もしくはteratermで
okuboali@192.168.100.158
個人的にはteratermだとコピペが簡単にできるので便利だなって思いました。
※ちなみに、OS再インストールした後にもう一度sshを通そうとして、warning ~~~~ host ~~~changed 適なエラーが出た時
Add correct host key in C:\Users\username/.ssh/known_hosts to get rid of this message
と書かれているこのファイルにアクセスして(C:\Users\username/.ssh/known_hosts)つなぎたいPCのアドレスの行を消してしまえばok
事前準備2 名前の変更
ディレクトリ名が日本語だったので英語に直します。
LANG=C xdg-user-dirs-gtk-update
事前準備3 nouveau 無効化
nvidiaのドライバインストールで1番大事なnouveuaの無効化です。
これがあるとnvidiaドライバとバッティングしてログインループに陥ることがあるので絶対に無効化します。
まずはnouveauが動いているか以下のコマンドで出力があるかどうかで確認できます。
lsmod | grep nouveau
何もしてなければ動いているので、blacklistを作成します。
cd /etc/modprove.d/
sudo nano blacklist-nouveau.conf
blacklistに以下を記述。
# blacklist-nouveau.conf
blacklist nouveau
options nouveau modeset=0
最後にblacklistの内容を反映させて再起動。
sudo update-initramfs -u
sudo reboot
cuda のインストール (cudaのnetworkファイルをダウンロードしておく)
ではいよいよ、CUDAをインストールします。
順番は結局よくわからないですが、CUDAの後にNVIDIAが1番安全な気はします。
nvidia driverとcudaのバージョンを調べる↓
https://docs.nvidia.com/deeplearning/sdk/cudnn-support-matrix/index.html
とはいいつつ全然この表でうまくいかず、cuda10.1.105-1とnvidia430をインストールしてみたらできました。え
sudo apt-get install lightdm
まず、gdmからlightdmに変更しておきます。
このコマンドの後、lightdmを選択してreboot
再起動したら、lightdmを止める。
sudo service lightdm stop
CUDAのドライバをインストールした(して)そのディレクトリに移動。
次のコマンドを打つとkeyが表示されるので、
sudo dpkg -i cuda-repo-ubuntu1804_10.1.105-1_amd64.deb
そのkeyをリポジトリを追加
sudo apt-key adv –fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/7fa2af80.pub
リポジトリの状態を更新し、CUDAをインストールします
sudo apt-get update
sudo apt-get install cuda-toolkit-10-1
※cudaだけインストールされるように、cudaだけじゃなく10-1まで指定する。
そして再起動。
sudo reboot
bashrcに以下の内容を追記。
nano ~/.bashrc
export PATH=/usr/local/cuda-10.1/bin:${PATH}
export LD_LIBRARY_PATH=/usr/local/cuda-10.1/lib64:${LD_LIBRARY_PATH}
そして一度再起動してパスの確認
echo $PATH # 出力に"/usr/local/cuda-10.1/0bin"が含まれているか?
echo $LD_LIBRARY_PATH # 出力に"/usr/local/cuda-10.1/lib64"が含まれているか?
which nvcc # 出力が"/usr/local/cuda-10.1/bin/nvcc"になっているか?
nvidia-smi # nvidiaのGPUの情報が表示されているか?
nvidia driverのインストール
https://yurufuwadiary.com/tensorflow-rtx2080super-installation#toc7
.runファイルで指定バージョンのインストールは、結構いろんなバージョン試しましたが、1度も上手くいかなかったので(ログイン画面真っ暗になる)、やっぱりなるべく安定しているapt-getでインストールした方がいいんだな、と思いました。
もう1度lightdmを止めておきます。
sudo service lightdm stop
aptでインストールできるドライバをチェックし、
418が出てこないので仕方なく430をインストールしました。
ubutu-drivers devices
sudo apt install nvidia-driver-430
sudo reboot
再起動後、これでバージョン情報がでてきたらおk
nvidia-smi
cudnn のインストール
for cuda 10.1のをダウンロードしておき、DLしたフォルダで実行
$ sudo dpkg -i libcudnn7-doc_7.6.4.38-1+cuda10.1_amd64.deb
$ sudo dpkg -i libcudnn7-dev_7.6.4.38-1+cuda10.1_amd64.deb
$ sudo dpkg -i libcudnn7_7.6.4.38-1+cuda10.1_amd64.deb
動作確認
cuda-install-samples-10.1.sh ~/
cd ~/NVIDIA_CUDA-10.1_Samples/
make -j8
cd 2_Graphics/Mandelbrot/
./Mandelbrot
これで紺色背景の細胞の画像?みたいなものが出てきたらおkです。
tensolfrow のインストール
python3にtensolflowをインストールします。
pipとか諸々インストールして、pipでGPU付きのtensorlfowをインストール。
sudo apt install python-dev python-pip python3-pip
sudo pip3 install tensorflow_gpu
確認
pip3 freeze | grep tensor
tensorboard==1.14.0
tensorflow-estimator==1.14.0
tensorflow-gpu==1.14.0
後処理 カーネルの固定
カーネルが大事という話
https://www.nemotos.net/?p=3176
カーネルはデフォルトのものを使う
カーネルを最新のものを追いかけるとCUDAは動かないという事象が起きます。Ubuntu 18.04では、標準が4.15、そしてHWEが4.18です。CUDAは、この2つのバージョン(標準とHWEカーネル)だけサポートします。詳しくは、NVIDIAのページをご覧ください。
これはうそだあ
**ubuntu18.04の最新は5.0.0です。CUDAの公式サイトに記載あり
https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html
カーネルのアップデート禁止
とはいえ、勝手にアップデートされて大変な思いをしたことがあるので、
アップデートを禁止しておきます。
/etc/apt/preferences.d/linux-kernelを設定
Package: linux-generic
Pin: version 5.0.0-36*
Pin-Priority: 1001
Package: linux-headers-generic
Pin: version 5.0.0-36*
Pin-Priority: 1001
Package: linux-image-generic
Pin: version 5.0.0-36*
Pin-Priority: 1001
おわり
RTX2080にNVIDIA430とCUDA10.1をインストールしました。
今のところ無事に動いています。(2020/02/25)
yolov3でdemoも動かせているので、大きな問題はない…はず。