Ubuntuで Nvidiaドライバ、CUDA、CUDNN をインストールし深層学習環境を整える方法を説明します。
目次
更新履歴
はじめに
- Nvidia GPU 搭載のPCを前提にしています
- Ubuntu のインストールは済んでいると仮定します
CUDAのバージョンを決める
はじめに、インストールするCUDAのバージョンを決める必要があります。
- TensorFlowの場合、以下のサイトに TensorFlowのバージョンとCUDAバージョンのテスト済み対応表があります。これを参考に、CUDAのバージョンを決めると良いと思います。
https://www.tensorflow.org/install/source?hl=ja#gpu
- PyTorchの場合、以下のサイトの『QUICK START LOCALLY』で、CUDAの使用可能なバージョンを知ることができます。
https://pytorch.org/
コンソールモードに切り替える
Ctrl + Alt + F4 を押して、コンソールモードに切り替えます。Ctrl + Alt + F1 かも知れません。
ユーザー名の入力とパスワードの入力を要求されるので、そのとおりにして下さい。
次に、以下のコマンドを実行して GUI サービスを止めます。
sudo /etc/init.d/gdm3 stop
Ubuntu 16.04 の場合は、 代わりに sudo systemctl stop lightdm
を実行すれば良かった気がします。
NvidiaドライバやCUDAが既にインストールされていたら消す
Nvidiaドライバ・CUDA を再インストールしたい人は、次のコマンドで抹殺します。
sudo apt purge nvidia-*
sudo apt purge cuda-*
sudo apt autoremove --purge
CUDAとNvidiaドライバをインストールする
CUDA をインストールする際に、Nvidia ドライバもインストールされる(既にインストールされているNvidiaドライバがあれば更新される)ので、Nvidia ドライバを事前にインストールする必要は無いと思います。
CUDAのダウンロードサイトを開きます。
https://developer.nvidia.com/cuda-downloads
『Linux』『x86_64』『Ubuntu』『18.04 or 16.04』『deb (network)』の順に選択します。ちなみに、『CUDA Toolkit 10.2 Download』となっていますが、この方法だと古いバージョンもインストールできます。
表示されるコマンドを一行ずつ実行していくのですが、最終行の sudo apt-get install -y cuda
は実行しないでください。代わりに、
sudo apt install cuda-NN-M
を実行します。CUDA 10.1 をインストールするのであれば、 sudo apt install cuda-10-1
、 CUDA 10.2 なら sudo apt install cuda-10-2
です。
ダウンロードとインストールに数十分かかるので気長に待ちます。
これで、NVIDIAドライバとCUDAがインストールされるはずです。次の作業に移ります。
nouveauを無効化する
/etc/modprobe.d/
フォルダ内に blacklist-nouveau.conf
という名のファイルを作成します。
sudo nano /etc/modprobe.d/blacklist-nouveau.conf
エディタは nano でなくても vim でも構いません。emacs でも良いですが、僕とは友達になれないでしょう。
中身は次のとおりです。
blacklist nouveau
options nouveau modeset=0
nano なら、Ctrl + X で保存、ファイル名が blacklist-nouveau.conf
になってる事を確認して Enterを押します。
ファイルが作れたら、次のコマンドを入力して下さい。
sudo update-initramfs -u
以上でNvidiaドライバとCUDAのインストールは終了です。Ubuntuを sudo reboot
で再起動させ、OS選択画面が出たら『Ubuntu』を選択してEnterを押せばきれいに画面が表示されているはずです。
【注意】過去に .run ファイルでドライバインストールを試みた経験がある場合
.run
ファイルでドライバインストールをすると、/etc/modprobe.d/
フォルダ内に blacklist-nvidia-nouveau.conf
?があると思います。↑の作業をする前に、このファイルを予め消しておかないと、バグるっぽいです。
sudo rm /etc/modprobe.d/blacklist-nvidia-nouveau.conf
【追記】LightDMをインストールする
Ubuntu 18以降をインストールするとディスプレイマネージャーとしてGDM3が使用されるのですが、これがNvidiaのドライバと相性が悪いのかログイン画面が正常に表示されないことがあります。LightDMというものに切り替えりると治ることがあります。
sudo apt install lightdm
GDM3とLightDMの選択画面が現れるので、LightDMを選択します。
CUDNNをインストールする
CUDNNをダウンロードします。Nvidiaにユーザー登録する必要があるのでして下さい。
https://developer.nvidia.com/rdp/cudnn-download
インストールした CUDA のバージョンによって、ダウンロードするファイルが違います。
なお、最新版の CUDNN ではなく古いCUDNNがほしければ『Archived cuDNN Releases』をクリックすればダウンロードできる気がします。
RuntimeとDeveloper Libraryをダウンロードします。Code Sampleは要るのか分かりませんが一応ダウンロードすることにします。
CUDNNをインストールします。ダウンロードした .deb ファイルが保存されているディレクトリで、次のコマンドでインストールします。
sudo apt install ./libcudnn*
これでダウンロードした3つ(2つ?)の .deb ファイルをまとめてインストールできます。
.bashrc でパスを追加する
以下を ~/.bashrc
に追記します。 ~/.bash_profile
に書く派も居るようですが、 ~/.bashrc
に追記する人のほうが多数派な気がします。
export PATH="/usr/local/cuda/bin:$PATH"
export LD_LIBRARY_PATH="/usr/local/cuda/lib64:$LD_LIBRARY_PATH"
以上で CUDAとCUDNNのインストール作業は終了です。
virtualenv や pyenv を入れる
別記事にまとめます。