9
14

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Ubuntu 18.04.3 LTSでNVIDIA-driver(GeForce RTX 2070 SUPER), cuda 10.1, cudnn 7.6のインストール+python環境構築

Last updated at Posted at 2019-12-12

はじめに

GPUのセットアップをすることになり、手順を備忘録として残しておきます。本記事では、NVIDIA-driver, cuda, cudnnのインストールをし、pyenv, virtualenvを用いてPythonの仮想環境を作成するところまでです。
少しでも参考になればと思います。

環境

  • ubuntu: 18.04.3 LTS
  • Graphics: GeForce RTX 2070 SUPER
  • Ndivier-driver: 430.50
  • cuda: 10.1
  • cudnn: 7.6
  • Python: 3.6.5

#1. NVIDIA-driverをインストールする前に

#####vimのインストール(個人的にvimを使いたいので)

$ sudo apt update
$ sudo apt install vim

vimでjjを使いたいので、~/.vimrcの編集をします。
(一時的にこの設定だけ私はします。)

~/.vimrc
set number
inoremap<silent> jj <ESC>

###(1) Nouveauの無効化

まずは、Nouveauの無効化をします。
Nvidiaのグラフィックカードの時だと、Nouveauというドライバがデフォで設定されているのでNouveauをブラックリストに登録します。

#####Nouveauが使用されているかの確認

$ lsmod | grep -i nouveau

#####ブラックリストの作成

$ sudo vim /etc/modprobe.d/blacklist-nouveau.conf
/etc/modprobe.d/blacklist-nouveau.conf
blacklist nouveau
options nouveau modeset=0

#####以下のコマンドを実行し、nouveauが無効化になっていることを確認
ディスプレイの解像度が落ちていればOK

$ sudo update-initramfs -u
$ sudo reboot 

###(2)カーネルの固定

nvidiaのドライバーをカーネルのバージョンを固定しないでいると、アップグレードとかしたときにドライバとの依存関係が崩れることがあるようです。なので、カーネルの固定をします。

#####aptitudeのインストール

$ sudo apt install aptitude

aptitude : パッケージの一覧を表示したり、パッケージのインストール・更新・削除などといったパッケージ管理作業ができるDebian GNU/Linux のパッケージシステムに対するテキストベースのインタフェース。

#####カーネルバージョンの確認

$ aptitude show linux-generic

#####上記で確認した内容を以下のファイルに書き込む(versionのところだけ書き換え)

$ cd /etc/apt/preferences.d
$ sudo vim linux-kernel.pref
.linux-kernel.pref
Package: linux-generic
Pin: version 4.15.0.64.66
Pin-Priority: 1001

Package: linux-headers-generic
Pin: version 4.15.0.64.66
Pin-Priority: 1001

Package: linux-image-generic
Pin: version 4.15.0.64.66
Pin-Priority: 1001

カーネルの固定は以上です。

#2. NVIDIAドライバのインストール

#####nouveauが無効化されているか確認

$ lsmod | grep -i nouveau

何も表示されなければ無効化できています

#####gccやmakeなど開発に必要なツールをまとめてインストール

$ sudo apt install build-essential

#####リポジトリの追加

$ sudo add-apt-repository ppa:graphics-drivers/ppa
$ sudo apt update

#####インストール可能なデバイスが表示

$ ubuntu-drivers devices

#####インストールしたいドライバを選択し、インストール

$ sudo apt install nvidia-driver-430
$ sudo reboot

#####ドライバがインストールされたか確認

$ nvidia-smi

GPUなどの使用状況が表示されればOK

###NVIDIA-driverインストール別方法
以前に記事を書いていますのでそちらを参照ください。
Ubuntu17.10にNVIDIAドライバをインストールしてみた。

#3. cudaのインストール

cudaはこちらからダウンロードしてください。
cudaとdriverのバージョンは必ず確認してください。

#####cudaのインストール

$ sudo apt update
$ sudo dpkg -i cuda-repo-ubuntu1804-10-1-local-10.1.105-418.39_1.0-1_amd64.deb
$ sudo apt-key add /var/cuda-repo-10-1-local-10.1.105-418.39/7fa2af80.pub 
$ sudo apt update
$ sudo apt install cuda-10-1
~/.bashrcを編集(環境変数の設定)
~/.bashrc
export PATH="/usr/local/cuda-10.1/bin:$PATH"
export LD_LIBRARY_PATH="/usr/local/cuda-10.1/lib64:$LD_LIBRARY_PATH"

#####PATHを通す

$ source ~/.bashrc

#####バージョン確認

$ nvcc -V
$ nvidia-smi

#4. cudnnのインストール

cudnnのインストールファイルはこちらからダウンロードしてください。
アカウントの登録が必要になります。

#####cudnnのインストール

$ tar xvf cudnn-10.1-linux-x64-v7.6.5.32.tgz
$ sudo cp -a cuda/include/cudnn.h /usr/local/cuda/include/
$ sudo cp -a cuda/lib64/libcudnn* /usr/local/cuda/lib64/
$ sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn* 
$ sudo reboot

*追記 (抜けていたので追加しました) 2020/12/11
versionは各自合わせてください

$ sudo dpkg -i libcudnn8_8.0.5.39-1+cuda11.0_amd64.deb 
$ sudo dpkg -i libcudnn8-dev_8.0.5.39-1+cuda11.0_amd64.deb
$ sudo dpkg -i libcudnn8-samples_8.0.5.39-1+cuda11.0_amd64.deb
$ cp -r /usr/src/cudnn_samples_v8/ $HOME
$ cd $HOME/cudnn_samples_v8/mnistCUDNN
$ make clean && make
$ ./mnistCUDNN

#####cudnnがインストールできたかテスト

$ sudo dpkg -i libcudnn7-doc_7.6.5.32-1+cuda10.1_amd64.deb
$ cp -r /usr/src/cudnn_samples_v7/ $HOME
$ cd $HOME/cudnn_samples_v7/mnistCUDNN
$ make clean && make
$ ./mnistCUDNN

Test passed!と表示されればOK

####cudnnバージョン確認コマンド

$ cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2

#5. Pythonの環境構築

#####依存関係のエラーが出たので修復

$ sudo apt --fix-broken install

#####Pythonに必要なパッケージのインストール

$ sudo apt install git gcc make openssl libssl-dev libbz2-dev libreadline-dev libsqlite3-dev zlib1g-dev

###(1) pyenvのインストール

pyenv : Pythonのバージョン管理を行なうコマンドラインツールで、複数のバージョンのPythonのインストールや切り替えを容易に行うことができます。

$ git clone https://github.com/pyenv/pyenv.git ~/.pyenv
$ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc 
$ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc 
$ echo 'eval "$(pyenv init -)"' >> ~/.bashrc
$ source ~/.bashrc

#####インストールできるパッケージ一覧表示

$ pyenv install -l

#####Pythonのインストール

$ pyenv install 3.6.5

#####インストールされているバージョンの確認

$ pyenv versions

#####バージョンの切り替え

$ pyenv global 3.6.5

###(2) virtualenv

virtualenv : 一つのシステムの中に分離されたPythonの仮想環境を作ることができるソフトウェアです。コマンドで仮想環境を簡単に作成できます。

#####virtualenvのインストール

$ pip install virtualenv

#####バージョン確認

$ virtualenv --version

#####仮想環境作成

$ virtualenv (PJ name) --no-site-packages
仮想環境の有効化
$ . (PJ name)/bin/activate

#####仮想環境の無効化

$ deactivate

終わりに

今回Ubuntuからインストールしましたが、最初インストール画面が出てきませんでした。BIOS画面で以下の設定が必要でした。

  • Secure Boot : osタイプ UEFIモード⇒非UEFIモード
  • CSM : CSMの起動⇒Enabled

時間はかかりましたが、知見が得られたので今回のセットアップは良い経験になりました。

9
14
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
9
14

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?