Ubuntuがログインループになりました(泣)
GPU関係の更新で,互換が取れなくなった様です.
Deep Learning関係のライブラリもかなり更新されているようなので,この機(?)に更新することにしました.
症状
きっかけは,「ソフトウェアの更新」のうっかりクリックでした.
大きな更新は掛けなかったつもりなのですが,,,やはり安易に更新するものではないですね.
nvidiaのドライバを消すとログインできたので,これを入れなおすだけで済むかと思ったのですが,悲劇はここからでした.
なんと,nvidia-390をインストール出来ない,,,
一時的なのか恒常的なのか,リポジトリから除外されたのです.
Deep Learningの開発構築には,nvidiaドライバ,CUDA,tensorflowのver.互換を整えることが必須です.
nvidiaドライバの更新は,CUDAとtensorflowを含めた環境を作りなおす事を意味します.
ライブラリが変わると今まで書いたソースが動かなくなる可能性がありますし,何より面倒です.
極力,更新は避けたかったのですが,,,仕方がないですね.
ちなみに,この記事を書いている今現ではnvidia-390がレポジトリから確認できます.
何だったのかな,,,
ver.
今まで使っていた↓↓↓から
↓↓↓に更新します.
ちなみに,何度か入れなおしてやっとこの組み合わせに落ち着きました.
実質,一日仕事でした.
いざ更新
古いnvidiaドライバとCUDAを削除
sudo apt-get --purge remove nvidia* sudo apt-get --purge remove cuda* sudo apt autoremove
上記で残っている場合があるので,HDD上からファイルを削除します.
sudo rm /usr/local/cuda sudo rm -r /usr/local/cuda-*
nvidiaドライバのインストール
sudo add-apt-repository ppa:graphics-drivers/ppa sudo apt update sudo apt-get install nvidia-410 reboot
再起動後に無事にインストールされたか確認します.
(インストールに失敗していたら,ログインループになったり画面の解像度がおかしくなると思います)
nvidia-smi
tensorflowのインストール
現在インストールされているtensorflowの確認
pip3 list
tensorflowのアンインストール
pip3 uninstall tensorflow-gpu pip3 uninstall tensorflow-tensorboard
tensorflowの新規インストール
pip3 install tensorflow-gpu==1.13.1
ver.互換はここ*1で確認しました.
何故かver.1.13.0が入らなかったので,1.13.1を入れました.
CUDAのインストール
ここ*2から,CUDA 10.0をダウンロードします.
ファイルの在るディレクトリに移動して,解凍・インストールします.
sudo dpkg -i cuda-repo-ubuntu1604_10.0.130-1_amd64.deb sudo apt-get update sudo apt-get install cuda-toolkit-10-0 reboot
cudnnのインストール
nvidiaのDeveloperサイトから↓↓↓の3つをダウンロードします. * libcudnn7_7.4.2.24-1+cuda10.0_amd64.deb * libcudnn7-dev_7.4.2.24-1+cuda10.0_amd64.deb * libcudnn7-doc_7.4.2.24-1+cuda10.0_amd64.deb
ファイルの在るディレクトリから解凍・インストールします.
sudo dpkg -i libcudnn7_7.4.2.24-1+cuda10.0_amd64.deb sudo dpkg -i libcudnn7-dev_7.4.2.24-1+cuda10.0_amd64.deb sudo dpkg -i libcudnn7-doc_7.4.2.24-1+cuda10.0_amd64.deb
動作確認1
.bashrcに↓↓の2行を追記して,端末からコマンドを実行します.
export PATH=/usr/local/cuda-10.0/bin:$PATH" export LD_LIBRARY_PATH=/usr/local/cuda-10.0/lib64:$LD_LIBRARY_PATH"
echo $PATH echo $LD_LIBRARY_PATH
正しくインストールできていれば,"/usr/local/cuda-10.0","/usr/local/cuda-10.0/lib64"と,それぞれ表示されます.
動作確認2
nvcc -V
正しくインストール出来ていれば,"Cuda compilation tools,"release 10.1, V10.1.***"と表示されます.
動作確認3
CUDAのサンプルを適当なディレクトリにコピーしてビルドし,実行してみます.
cp -r /usr/local/cuda-10.0/samples ~/CUDA cd ~/CUDA/samples make ./bin/x86_64/linux/release/volumeRender
こんな絵が表示されます.
動作確認4
tensorflowがGPUを認識してくれるか確認します.
これが一番重要です.
python3 from tensorflow.python.client import device_lib device_lib.list_local_devices()
正しく設定されていれば,使用中のグラボの型式が表示されます.
過去のソースが動くか未だ確かめられていません.
気にし始めると切りがないので,振り返らずに前に進もうと思います.