LoginSignup
2
2

More than 3 years have passed since last update.

ubuntu18.04 with Gforce RTX2080 に NVIDIA driverとCUDAをインストールするまでの道のり

Last updated at Posted at 2019-11-22

環境

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番有用でした:bow:
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度も上手くいかなかったので:sob:(ログイン画面真っ暗になる)、やっぱりなるべく安定している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のページをご覧ください。

これはうそだあ:sob:

**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も動かせているので、大きな問題はない…はず。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2