下記にあてはまるような方はこの記事の内容が役立つと思います
- UbuntuにNVIDIAドライバ、CUDA, cudnnをインストールしたい
- UbuntuでNVIDIAのGPUを活用した機械学習/AIをやりたい
- NVIDIAのGPU搭載のUbuntu環境でtensorflow-gpuを使いたい
- UbuntuにtensorRTをインストールしたいが、NVIDIAドライバ、CUDA,、cuDNNのインストールが必要
- どのバージョンのNVIDIAドライバ、CUDA、CUDNNをインストールすれば良いのか確認したい
テスト環境
今回は下記の環境を例に進めますが、他のUbuntu、GPUの別の環境でもインストールするバージョン等の対応をみながら進めていただければ問題なくインストールできると思います
- OS: Ubuntu 18.04 LTS
- GPU: NVIDIA GeForce GTX 1070
事前準備
Anacondaインストール
まだの方は下記のページにしたがって進めてください
ライブラリインストール
$ sudo apt-get upgrade
$ sudo apt-get update
$ sudo apt list upgradable
$ sudo apt-get install build-essential
$ sudo apt-get install git
不要なドライバをDisable
下記で何か返ってくるかどうか確認してください
$ lsmod | grep -i nouveau
何も返ってこない場合はNVIDIAドライバインストールに進んでください
何か返って来た場合は下記の処理を実行する必要があります
/etc/modprobe.d/blacklist-nouveau.confを必要な設定込みで新規作成します
$ sudo sh -c "cat << ETX > /etc/modprobe.d/blacklist-nouveau.conf
blacklist nouveau
blacklist lbm-nouveau
options nouveau modeset=0
alias nouveau off
alias lbm-nouveau off
ETX" && cat /etc/modprobe.d/blacklist-nouveau.conf
/etc/modprobe.d/nouveau-kms.confを必要な設定込みで新規作成します
$ sudo sh -c "echo 'options nouveau modeset=0' > /etc/modprobe.d/nouveau-kms.conf" && cat /etc/modprobe.d/nouveau-kms.conf
設定を反映して一度再起動してください
$ sudo update-initramfs -u
$ sudo reboot
NVIDIAドライバのインストール
下記からどのNVIDIAドライバのバージョンをインストールするかを確認します
下記のように自分のPCやサーバに搭載されているNVIDIAのGPUを指定して「検索」ボタンをクリックしてください

下記のようにバージョンが表示されるので、そのバージョンのNVIDIAドライバをインストールします

私の場合はnvidia-driver-450をインストールして再起動します
$ sudo add-apt-repository ppa:graphics-drivers/ppa
$ sudo apt update
$ sudo apt-get install nvidia-450
$ sudo reboot
nvidia-smiコマンドで下記のように表示されればNVIDIAドライバのインストールは完了です
$ nvidia-smi
Fri Aug 7 23:15:19 2020
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 440.100 Driver Version: 440.100 CUDA Version: 10.2 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 GeForce GTX 1070 Off | 00000000:01:00.0 On | N/A |
| 0% 38C P8 7W / 151W | 66MiB / 8116MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| 0 1000 G /usr/lib/xorg/Xorg 60MiB |
| 0 3771 G /usr/lib/firefox/firefox 2MiB |
+-----------------------------------------------------------------------------+
CUDAのインストール
インストールするCUDAバージョンを下記の表で確認します

Linux x86_64 Driver Versionの部分が先ほどインストールしたNVIDIAドライバのバージョンを満たすものである必要があります
個人的な経験則ですが、tensorflow-gpuやtensorRTなどを用いて機械学習/AIなどの処理をしたいときはCUDA 10.0が一番安定するので、今回も10.0をインストールします
他のバージョンだと他のライブラリのバージョンなどと相性が悪くてエラー解決に時間がかかって、結局CUDA 10.0に戻ってくるということが過去なんどかありました
下記の公式サイトからCUDA Toolkit 10.0をダウンロードしてください
CUDA Toolkit 10.0のリンクで下記のように自分の環境に合わせて選択すると、適切なファイルのDownloadボタンとインストール手順が表示されます(一部手順通りだと問題があるので以下の手順にしたがってください)

インストールされたxxxx.debファイルのディレクトリに移動してから下記を実行します
一番最後がcudaではなくてcuda-toolkit-10-0になっていることに注意してください (うまくいかない場合は、toolkitを抜かしてcuda-10-0を試してください)
$ sudo dpkg -i cuda-repo-ubuntu1804_10.0.130-1_amd64.deb
$ sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub
$ sudo apt-get update
$ sudo apt-get install cuda-toolkit-10-0
~/.bashrcを編集します
$ sudo vi ~/.bashrc
下記を~/.bashrcの一番最後に入れてください
$ export PATH=/usr/local/cuda-10.0/bin${PATH:+:${PATH}}
$ export LD_LIBRARY_PATH=/usr/local/cuda-10.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
再起動します
$ sudo reboot
下記コマンドでエラーにならなければインストール成功です
$ nvcc -V
cuDNNのインストール
下記の公式サイトで会員登録してログインする必要があります
ログインしてcuDNN Downloadの画面で”I Agree To the Terms of the cuDNN Software License Agreement”のチェックをするとダウンロードリンクが出るので、CUDA 10.0用のものがないのでArchived cuDNN Releasesのリンクをクリックします

下記、for CUDA 10.0のリストの一覧の中からfor Ubuntu 18.04 (Deb)とあるものを3つともダウンロードしてください

ダウンロードしたxxxx.debファイルが3つあるディレクトリに移動して下記を実行します
順番が前後しないように注意してください
$ sudo dpkg -i libcudnn7_7.6.5.32-1+cuda10.0_amd64.deb
$ sudo dpkg -i libcudnn7-dev_7.6.5.32-1+cuda10.0_amd64.deb
$ sudo dpkg -i libcudnn7-doc_7.6.5.32-1+cuda10.0_amd64.deb
これでひととおりのインストールが完了です
お疲れ様でした
最後に
これでUbuntu上でGPUを活用した機械学習/AIの勉強が進められるようになりました
CPUだけでもなんとか動く場合もあるのですが、やはり自分でモデルの学習したり、重たい動画像処理をする場合はGPUを使えるとかなり速く実行できるのでかなりの時間短縮が可能です
本ブログでは、今後以下のような技術についてもいずれ紹介していきたいと思いますので、よろしければまた見に来てください
- 画像分類 (Image Classification)
- 物体検知 (Object Detection)
- 物体トラッキング (Object Tracking)
- 姿勢推定 (Pose Estimation)
- 自然言語処理 (Natural Language Processing)
- 3次元再構成 (3D Reconstruction)
- …etc
コメント