茱萸note

電子工作の備忘録と旅行の記録

OS Ubuntu 電子工作

【Ubuntu】NVIDIAドライバ・CUDA・CUDNNをインストールして深層学習環境を整える

投稿日:2020年4月27日 更新日:

Ubuntuで Nvidiaドライバ、CUDA、CUDNN をインストールし深層学習環境を整える方法を説明します。


目次


更新履歴


はじめに

  • Nvidia GPU 搭載のPCを前提にしています
  • Ubuntu のインストールは済んでいると仮定します

CUDAのバージョンを決める

はじめに、インストールするCUDAのバージョンを決める必要があります。

  • TensorFlowの場合、以下のサイトに TensorFlowのバージョンとCUDAバージョンのテスト済み対応表があります。これを参考に、CUDAのバージョンを決めると良いと思います。
    https://www.tensorflow.org/install/source?hl=ja#gpu
「最新の TensorFlow 2.1.0 と CUDA 10.1 の組み合わせが良さそうだな」
  • PyTorchの場合、以下のサイトの『QUICK START LOCALLY』で、CUDAの使用可能なバージョンを知ることができます。
    https://pytorch.org/
「CUDA 10.2 で良さそうだな」

コンソールモードに切り替える

Ctrl + Alt + F4 を押して、コンソールモードに切り替えます。Ctrl + Alt + F1 かも知れません。

ユーザー名の入力とパスワードの入力を要求されるので、そのとおりにして下さい。

次に、以下のコマンドを実行して GUI サービスを止めます。

bash💩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 を入れる

別記事にまとめます。

-電子工作
-, ,


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

Raspberry Pi と AWS IoT を連携させて Alexa で LED や スマートプラグを操作する【Alexa×Raspberry Pi その1】

AWS IoT Core と Raspberry Pi を連携させて、Alexa を搭載した Amazon Echo 等を使って Raspberry Pi につないだ LED を制御します。ついでに、Tp-Link のスマートプラグ『Tapo P105』も操作させてみます。

権限のない環境でvirtualenvを入れる

sudoが使えない、root権限のない環境でvirtualenvを入れます。

ESP8266 と AWS IoT を連携させる【Alexa×Arduino その1】

AWS IoT Core と ESP8266 を連携させて、AWS から ESP8266 の LED を操作できるようにします。最終的には、Alexa を搭載した Amazon Echo 等を使って ESP8266(Arduino)を制御するのが目標です。

【ふざけるな Anaconda】Windows で Python 環境を整える

Anaconda なんか使わずに Windows に Python をインストールします。

記事の先頭に目次を置く

Blogの記事の先頭に自動的に目次を生成するにはどうすれば良いか?