買った。
Precision Tower 3620
NVIDIA® Quadro® P4000
SSD 500G
HDD 1T
メモリ 32G
Ubuntuをインストール。デュアルブート化で失敗。
Win10が入っていたのでデュアルブートにしようと、
[コンピュータ]アイコンを右クリック。
[管理]を選択。
->[コンピュータの管理]-[記憶域]-[ディスクの管理]
から「ボリュームの縮小」。
作成した新しいボリュームにUbuntu16.04をインストール!
再起動したらブートセレクタがちゃんと入ってない。
Win10しか立ち上がらないので、どうしたものかと試行錯誤してbiosを変更して(後述のレガシーモード)、
ubuntuが立ち上がった。しかし、それでもブートセレクタはない。
add-apt-repository ppa:yannubuntu/boot-repair
apt-get update
apt-get install -y boot-repair
boot-repair
で、「おすすめの修復」を実施しようとしたが、「レガシーモードになっています」と出て修復してくれない。
うーん、でもWindowsは使うことは普段ないので一応残しているだけなので、次でよしとした。
- biosを立ち上げて(F12)BootSequenceでUEFIを選んで保存し、再起動をするとWin10が立ち上がる。
- biosを立ち上げて(F12)BootSequenceでLegacyを選んで保存し、再起動をするとubuntuが立ち上がる。
nvidiaのGPU認識していない?
lspci | grep NVIDIA
とすると、
VGA compatible controller: NVIDIA Corporation Device 1bb1 (rev a1)
と出るのだが、型番が出ない。
さらに、
まず、プロプライエタリなドライバをインストールしてみる。
sudo add-apt-repository ppa:xorg-edgers/ppa
sudo apt-get update
sudo apt-get install nvidia-384
変わらず。
「システム設定」「ソフトウェアとアップデート」「追加のドライバー」にNVIDIAがあり、プロプライエタリなドライバも表示されている。しかし、そこでも、
nvidia corporation : 不明
と表示されている。
名前の問題だけかも?ということで、
update-pciids
して、
lspci | grep -i nvidia
としたら型番が表示された!
環境を作るよ
Ubuntu 16.04.LTSには、Python3が既に入っています。
よってpip3のインストールから。
apt-get install python3-pip
CUDAのインストール
https://developer.nvidia.com/cuda-downloads
からダウンロード。
$ sudo dpkg -i cuda-repo-ubuntu1604-9-1-local_9.1.85-1_amd64.deb
$ sudo apt-get update
$ sudo apt-get install cuda
cuDNNをインストール
https://developer.nvidia.com/rdp/cudnn-downloadからCUDA9.1用のdebパッケージをダウンロードする。(メンバー登録が必要)
次の3つのパッケージをダウンロードし、インストール。
cuDNN v7.0.5 Runtime Library for Ubuntu16.04 (Deb)
cuDNN v7.0.5 Developer Library for Ubuntu16.04 (Deb)
cuDNN v7.0.5 Code Samples and User Guide for Ubuntu16.04 (Deb)
sudo dpkg -i libcudnn7_7.0.5.15-1+cuda9.1_amd64.deb
sudo dpkg -i libcudnn7-dev_7.0.5.15-1+cuda9.1_amd64.deb
sudo dpkg -i libcudnn7-doc_7.0.5.15-1+cuda9.1_amd64.deb
参考:https://qiita.com/JeJeNeNo/items/05e148a325192004e2cd
tensorflowをインストール
pip3 install tensorflow-gpu
cv2がなかった。
pip3 install opencv-python
ImportError: libcublas.so.8.0: cannot open shared object file: No such file or directory
というエラーが出た。
最新版でいいだろうと思って入れたCUDAのバージョンが最新過ぎたのだ!
なので、cudaの8.0を入れて再度実行。
ImportError: libcudnn.so.6: cannot open shared object file: No such file or directory
となった。。。。
findで探したら、
root@dd701:/usr/lib/x86_64-linux-gnu# ls -la libcudnn*
lrwxrwxrwx 1 root root 29 12月 21 11:52 libcudnn.so -> /etc/alternatives/libcudnn_so
lrwxrwxrwx 1 root root 17 11月 17 13:57 libcudnn.so.7 -> libcudnn.so.7.0.5
-rw-r--r-- 1 root root 282356768 11月 17 13:57 libcudnn.so.7.0.5
lrwxrwxrwx 1 root root 32 12月 21 11:52 libcudnn_static.a -> /etc/alternatives/libcudnn_stlib
-rw-r--r-- 1 root root 275649974 11月 17 13:57 libcudnn_static_v7.a
こんな状況。
なので、
ln -s libcudnn.so.7.0.5 libcudnn.so.6
で無理やり解決。
2017-12-21 16:07:12.159318: E tensorflow/stream_executor/cuda/cuda_dnn.cc:378] Loaded runtime CuDNN library: 7005 (compatibility version 7000) but source was compiled with 6021 (compatibility version 6000). If using a binary install, upgrade your CuDNN library to match. If building from sources, make sure the library loaded at runtime matches a compatible version specified during compile configuration.
2017-12-21 16:07:12.159878: F tensorflow/core/kernels/conv_ops.cc:667] Check failed: stream->parent()->GetConvolveAlgorithms( conv_parameters.ShouldIncludeWinogradNonfusedAlgo(), &algorithms)
て出て、コアダンプ。
でもこれが原因かは不明中。
たぶん、cudaのバージョンを下げたのに、cuDNNのバージョンをそのままにしていたので、それが原因。
cuDNNを削除して入れなおす。
sudo dpkg --purge
sudo dpkg -i libcudnn6_6.0.21-1+cuda8.0_amd64.deb
sudo dpkg -i libcudnn6-dev_6.0.21-1+cuda8.0_amd64.deb
sudo dpkg -i libcudnn6-doc_6.0.21-1+cuda8.0_amd64.deb