【tf.keras】Linux非rootユーザーインストールCUDAとcuDNN
3183 ワード
TensorFlow 2.0 for Linux使用時報エラー:(cuDNNバージョンが低い)
解決策:cuDNnをアップグレードします.TF 2.0とCUDA 10.0、cuDNN 7.6.4は一致します.
rootユーザー
Linuxサーバのユーザーがroot権限を持っている場合は、元のcuDNNを直接削除し、新しいバージョンを再インストールします.既存のcuDNNを削除:
CuDNN解凍後のcudaフォルダに入り、新しいバージョンをインストールします.
ソフト接続の確立:(7.6.4バージョンを例に)
root以外のユーザー
root権限がなければ、CUDAとcuDNNを自分で再インストールする方法があります.
ユーザーディレクトリにCUDAをインストールする
公式サイトからhttps://developer.nvidia.com/cuda-10.0-download-archiveubuntuで使用しているcudaをダウンロードします.10.0.130_410.48_linux.run,インストール命令
構成cuDNN
CuDNNファイルをCUDAインストールディレクトリにコピーします:(cuDNNは
ソフト接続の確立:
ユーザー環境変数の設定
References
Linuxのcudnnアップグレード方法--ZONG_XP非rootユーザーはlinuxの下で複数のバージョンのCUDAとcuDN(cuda 8、cuda 10.1など)をインストールします.
E tensorflow/stream_executor/cuda/cuda_dnn.cc:319] Loaded runtime CuDNN library: 7.4.1 but source was compiled with: 7.6.0. CuDNN library major and minor version needs to match or have higher minor version in case of CuDNN 7.0 or later version. If using a binary install, upgrade your CuDNN library. If building from sources, make sure the library loaded at runtime is compatible with the version specified during compile configuration.
...
tensorflow.python.framework.errors_impl.UnknownError: Failed to get convolution algorithm. This is probably because cuDNN failed to initialize, so try looking to see if a warning log message was printed above. [Op:Conv2D]
解決策:cuDNnをアップグレードします.TF 2.0とCUDA 10.0、cuDNN 7.6.4は一致します.
rootユーザー
Linuxサーバのユーザーがroot権限を持っている場合は、元のcuDNNを直接削除し、新しいバージョンを再インストールします.既存のcuDNNを削除:
sudo rm -rf /usr/local/cuda/include/cudnn.h
sudo rm -rf /usr/local/cuda/lib64/libcudnn*
CuDNN解凍後のcudaフォルダに入り、新しいバージョンをインストールします.
sudo cp include/cudnn.h /usr/local/cuda/include/
sudo cp lib64/lib* /usr/local/cuda/lib64/
ソフト接続の確立:(7.6.4バージョンを例に)
cd /usr/local/cuda/lib64/
sudo chmod +r libcudnn.so.7.6.4
sudo ln -sf libcudnn.so.7.6.4 libcudnn.so.7
sudo ln -sf libcudnn.so.7 libcudnn.so
sudo ldconfig
root以外のユーザー
root権限がなければ、CUDAとcuDNNを自分で再インストールする方法があります.
ユーザーディレクトリにCUDAをインストールする
公式サイトからhttps://developer.nvidia.com/cuda-10.0-download-archiveubuntuで使用しているcudaをダウンロードします.10.0.130_410.48_linux.run,インストール命令
sh cuda_10.0.130_410.48_linux.run
,その後:# q .
Do you accept the previously read EULA?
accept/decline/quit: accept
Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 410.48?
(y)es/(n)o/(q)uit: no
Install the CUDA 10.0 Toolkit?
(y)es/(n)o/(q)uit: yes
#
Enter Toolkit Location
[ default is /usr/local/cuda-10.0 ]: /home/wuliyttaotao/cuda-10.0
Do you want to install a symbolic link at /usr/local/cuda?
(y)es/(n)o/(q)uit: n
Install the CUDA 10.0 Samples?
(y)es/(n)o/(q)uit: y
# ,
Enter CUDA Samples Location
[ default is /home/wuliyttaotao ]:
構成cuDNN
CuDNNファイルをCUDAインストールディレクトリにコピーします:(cuDNNは
~/cuda
ディレクトリに解凍しました.~/cuda-10.0
は自分で設定したCUDAインストールディレクトリです.~
は/home/wuliyttaotaoを表します)cp ~/cuda/include/cudnn.h ~/cuda-10.0/include
cp ~/cuda/lib64/lib* ~/cuda-10.0/lib64
chmod a+r ~/cuda-10.0/include/cudnn.h ~/cuda-10.0/lib64/libcudnn*
ソフト接続の確立:
cd ~/cuda-10.0/lib64
ln -sf libcudnn.so.7.6.4 libcudnn.so.7
ln -sf libcudnn.so.7 libcudnn.so
ldconfig -v
ユーザー環境変数の設定
~/.bashrc
ファイルを変更し、次の2行を追加します:(wuliyttaotaoを自分のユーザー名に変更します)export PATH=/home/wuliyttaotao/cuda-10.0/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/home/wuliyttaotao/cuda-10.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
~/.bashrc
ファイルを保存した後、source ~/.bashrc
を有効にします.References
Linuxのcudnnアップグレード方法--ZONG_XP非rootユーザーはlinuxの下で複数のバージョンのCUDAとcuDN(cuda 8、cuda 10.1など)をインストールします.