LoginSignup
0
1

More than 3 years have passed since last update.

Ubuntu20.04にtensorflow,CUDA,cuDNNのセットアップ作業記録 cuDNN編

Last updated at Posted at 2020-11-11

この記事の内容

tensorflowで機械学習するために、tensorflowのバージョンに対応するCUDAとcuDNNをローカルでインストールした時の作業を記録した。

本記事はtensorflow 2.3.0を使用するために、CUDA10.1とcuDNN7.6のセットアップを行った。

環境

Ubuntu 20.04

参考サイト

https://codelabo.com/posts/20200229081221

https://medium.com/@exesse/cuda-10-1-installation-on-ubuntu-18-04-lts-d04f89287130

本記事の構成

cuDNNセットアップ編

ダウンロードサイト:https://developer.nvidia.com/cudnn

事前にnvidiaのアカウント登録が必要。ダウンロードサイトのアーカイブからバージョンが選択できる。
Screenshot from 2020-11-10 20-11-53

1.cuDNN7.6の選択

Screenshot from 2020-11-10 20-19-43

  • Download cuDNN v7.6.5 (November 5th, 2019), for CUDA 10.1
  • cuDNN Library for Linux

2.tarファイルからセットアップ

公式guideを参考にし順次実行していく。
Screenshot from 2020-11-10 20-31-31

2.1.解凍

$ tar -zxvf cudnn-10.1-linux-x64-v7.6.5.32.tgz

2.2.事前にインストールしたcudaにcudnnをコピーする

cudnnをcuda/cuda-<version>/のどちらかにコピーする。公式ドキュメントにはcuda/にしているが、cuda-<version>/cuda/がリンクされているらしくcuda-<version>/にコピーしてもうまくいった。

# cuda-<version>/にコピーする場合 
$ sudo cp cuda/include/cudnn*.h /usr/local/cuda-<version>/include
$ sudo cp cuda/lib64/libcudnn* /usr/local/cuda-<version>/lib64
$ sudo chmod a+r /usr/local/cuda-<version>/include/cudnn*.h /usr/local/cuda-<version>/lib64/libcudnn*

# cuda/にコピーする場合
$ sudo cp cuda/include/cudnn*.h /usr/local/cuda/include
$ sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
$ sudo chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*

入れたCUDAのバージョンを<version>にいれてください。

tensorflowのバージョンの変更に伴ってcudaとcudnnのバージョンを変更する場合

欲しいバージョンのcudaをインストールしcudaのパスを変更or追記

事前にCUDAをインストール。CUDAセットアップ編を参照してください。

追記した場合、自動的に最適なCUDAのバージョンのPATHを選んで実行してくれるらしい。

参考:https://qiita.com/takeajioka/items/8737fab5cffbe0118fea  

実際いろんなやり方が存在する。
~/.bashrcに記述したパスを変更する。

<変更前 10.1>
export PATH=/usr/local/cuda-10.1/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-10.1/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
<変更後 11.0>
export PATH=/usr/local/cuda-11.1/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-11.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

cudnnの変更

cuda-<version>/にcudnnをコピーした場合

pcにロードされているcudaのバージョンを切り替えると自動的に変更後のcudaにコピーされているcudnnのバージョンに切り替わると思う。(まだやってないが)

cuda/にcudnnをコピーした場合

/usr/local/cuda/include  
/usr/local/cuda/lib64  

に変更前のcudnnが入っているので削除し、新たにダウンロードしたバージョンのcudnnを同様にコピーする。

$ sudo rm /usr/local/cuda/include/cudnn*.h
$ sudo rm /usr/local/cuda/lib64/libcudnn*

cuda/にコピーしてしまうとcuda変更時に削除作業が要求されるので、cuda-<version>にコピーしてcudaごと変更した方が便利かも知れない。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1