UbuntuにNVIDIAドライバ、CUDA、 cuDNNをインストールする方法(2020年8月)

プログラミング・数学・英会話
スポンサーリンク

下記にあてはまるような方はこの記事の内容が役立つと思います

  • 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ドライバのバージョンをインストールするかを確認します

NVIDIA
Download drivers for NVIDIA products including GeForce graphics cards, nForce motherboards, Quadro workstations, and more. Update your graphics card drivers to...

下記のように自分の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バージョンを下記の表で確認します

https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html#abstract

Linux x86_64 Driver Versionの部分が先ほどインストールしたNVIDIAドライバのバージョンを満たすものである必要があります

個人的な経験則ですが、tensorflow-gpuやtensorRTなどを用いて機械学習/AIなどの処理をしたいときはCUDA 10.0が一番安定するので、今回も10.0をインストールします

他のバージョンだと他のライブラリのバージョンなどと相性が悪くてエラー解決に時間がかかって、結局CUDA 10.0に戻ってくるということが過去なんどかありました

下記の公式サイトからCUDA Toolkit 10.0をダウンロードしてください

CUDA Toolkit Archive
Previous releases of the CUDA Toolkit, GPU Computing SDK, documentation and developer drivers can be found using the links below. Please select the release you ...

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のインストール

下記の公式サイトで会員登録してログインする必要があります

NVIDIA cuDNN
NVIDIA cuDNN The NVIDIA CUDA Deep Neural Network library (cuDNN) is a GPU-accelerated library of primitives for deep neural networks. cuDNN provides highly tune...

ログインして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

コメント

Copied title and URL