LoginSignup
9
12

More than 1 year has passed since last update.

conda installしたcuda-toolkitとcuDNNでTensorFlowを動かす

Last updated at Posted at 2022-06-21

この記事を閲覧する前に

この記事よりも簡単にTensorFlowとCUDA・cuDNNの環境を構築する手段を別の記事(conda install のみでTensorFlowとGPU環境(CUDA、cuDNN)を構築する)に記載しています。
上記記事は本記事を閲覧して頂いた@hatsuyuki396様からのコメントを受け、作成いたしました。コメントありがとうございました。

はじめに

私が利用していたLinuxサーバには元々、古いバージョンのCUDAとcuDNNがインストールされていました。しかし、TensorFlowの新バージョンを利用するためには、それらをアップグレードする必要がありました。しかしながら、sudo権限を持っていないため、「/usr/local/」下にある各種ディレクトリに対して操作することができません。そこで、Anacondaを利用して必要なCUDAとcuDNNをインストールしていきます。OSはUbuntu18.04を利用しています。

今回はTensorFlow2.9.1を利用するため、以下のバージョンをインストールします。
・cuda-toolkit == 11.7.0
・cudnn == 8.4.1

何かあったときに取り返しのつく仮想環境で作業を行いました。Anacondaの仮想環境を作るコマンドは以下の通りです。

conda create -n tf291 python=3.9
# tensorflowもインストールするなら、以下も実行
pip install tensorflow==2.9.1

※「conda install tensorflow=2.9.1」では、GPUを扱うことはできません。詳しくはコチラ

インストール

Anacondaのデフォルト参照先では、cudatoolkit==11.3.1、cudnn==8.2.1が最新のバージョンになるため、今回は以下の参照先からそれぞれをインストールします。もしかすると、何やら競合しているとの警告メッセージが表示されるかもしれません。その場合には、Anacondaの指示に従い、各種ライブラリのダウングレードなどを行ってください。

conda install -c nvidia cuda-toolkit=11.7.0
conda install -c conda-forge cudnn=8.4.1

ここで、CUDAなどの確認を行っても、デフォルトの環境が読み込まれているはずです。例えば、以下のコマンドでCUDAのバージョンを確認すると、以前のバージョンが表示されるはずです。また、プログラムを実行しても、デフォルトのCUDAやcuDNNが読み込まれていると思います。

nvcc -V

PATHの設定

先ほどインストールしたCUDAとcuDNNのPATHを確認します。基本は、「/home/(ユーザ名)/anaconda3/envs/(仮想環境名、今回は tf291)/bin」などで確認できるかと思います。condaでインストールしたCUDAとcuDNNを利用するために、.bashrc内に以下を追記します。

.bashrc
export PATH="/home/(ユーザ名)/anaconda3/envs/tf291/bin:$PATH"
export LD_LIBRARY_PATH="/home/(ユーザ名)/anaconda3/envs/tf291/lib:$LD_LIBRARY_PATH"

追記して保存したら、それを適用します。

source .bashrc

これで、希望のバージョンを利用することができます。ただ、このようにすると、Anacondaの仮想環境に入っていなくても、今回インストールしたCUDAとcuDNNのバージョンが適用されるため、注意が必要かも(複数のCUDAがインストールされている場合、TensorFlowは自動的にマッチするCUDAとcuDNNのバージョンを選択してくれるらしいが)。もっと良い方法があれば、教えてください。。。管理者権限が無い中、お疲れさまでした。

参考

https://anaconda.org/nvidia/cuda-toolkit
https://anaconda.org/conda-forge/cudnn

9
12
1

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
9
12