悪魔は優しい

なんでもやるし、なんにもできないIT屋メモ。

tensorflow用のマシンをセットアップ

calendar

reload

tensorflow用のマシンをセットアップ

買った。

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

この記事をシェアする

コメント

コメントはありません。

down コメントを残す