LoginSignup
2
1

More than 1 year has passed since last update.

Ubuntu18.04, GeForceRTX2080でtensorflow2.8.0を使えるようにする

Last updated at Posted at 2022-03-26

はじめに

きっかけはtensorflow2.8のtf.keras.applications.efficientnet_v2を使ってみたかったから。

最新のtensorflowなので、Nvidia Driver、CUDA Toolkit、cudnnの再インストールが必要になった。
前回のインストール時も色々試行錯誤した記憶があるので、今回のインストールまでの流れを備忘録として残す。
*CUDA Toolkitのインストールの途中でエラーあり

  • 構成
    OS: Ubuntu18.04LTS
    CPU: Intel® Core™ i7-8700 CPU @ 3.20GHz × 12
    GPU: GeForce RTX2080
    Python: Python3.7.9(Anacondaで作成した仮想環境)

下記の記事を大いに参考にしました。
https://qiita.com/Ihmon/items/b6950495c29ee1bfbe99
https://marmooo.blogspot.com/2020/01/apt.html

Nvidia Driverのインストール

nvidia-smiで確認すると、参考記事①と同様に470と表示されるが次に進む。

sudo apt-get purge nvidia-*
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt update
sudo apt install nvidia-driver-460
sudo reboot
nvidia-smi

CUDA Toolkitのインストール

  • 11.2.2をインストールする。
  • nvidiaのサイトから自分の環境を選択して、出てきた↓のコマンドをコピペする。
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-ubuntu1804.pin
sudo mv cuda-ubuntu1804.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/11.2.2/local_installers/cuda-repo-ubuntu1804-11-2-local_11.2.2-460.32.03-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu1804-11-2-local_11.2.2-460.32.03-1_amd64.deb
sudo apt-key add /var/cuda-repo-ubuntu1804-11-2-local/7fa2af80.pub
sudo apt-get update
sudo apt-get -y install cuda

最後のsudo apt-get -y install cudaでエラー発生。

$ sudo apt-get -y install cuda
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています                
状態情報を読み取っています... 完了
インストールすることができないパッケージがありました。おそらく、あり得
ない状況を要求したか、(不安定版ディストリビューションを使用しているの
であれば) 必要なパッケージがまだ作成されていなかったり Incoming から移
動されていないことが考えられます。
以下の情報がこの問題を解決するために役立つかもしれません:

以下のパッケージには満たせない依存関係があります:
 cuda : 依存: cuda-11-2 (>= 11.2.2) しかし、インストールされようとしていません
E: 問題を解決することができません。壊れた変更禁止パッケージがあります。

参考記事②によると、このエラーの時は依存ライブラリを順に入れていくと良いらしい。

  • cuda-11-2を入れてみる。
$ sudo apt-get install cuda-11-2
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています                
状態情報を読み取っています... 完了
インストールすることができないパッケージがありました。おそらく、あり得
ない状況を要求したか、(不安定版ディストリビューションを使用しているの
であれば) 必要なパッケージがまだ作成されていなかったり Incoming から移
動されていないことが考えられます。
以下の情報がこの問題を解決するために役立つかもしれません:

以下のパッケージには満たせない依存関係があります:
 cuda-11-2 : 依存: cuda-runtime-11-2 (>= 11.2.2) しかし、インストールされようとしていません
             依存: cuda-demo-suite-11-2 (>= 11.2.152) しかし、インストールされようとしていません
E: 問題を解決することができません。壊れた変更禁止パッケージがあります。

  • cuda-runtime-11-2を入れてみる。(cuda-demo-suite-11-2はcuda-runtime-11-2と依存関係のため入れれなかったらしい)
$ sudo apt-get install cuda-runtime-11-2
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています                
状態情報を読み取っています... 完了
インストールすることができないパッケージがありました。おそらく、あり得
ない状況を要求したか、(不安定版ディストリビューションを使用しているの
であれば) 必要なパッケージがまだ作成されていなかったり Incoming から移
動されていないことが考えられます。
以下の情報がこの問題を解決するために役立つかもしれません:

以下のパッケージには満たせない依存関係があります:
 cuda-runtime-11-2 : 依存: cuda-drivers (>= 460.32.03) しかし、インストールされようとしていません
E: 問題を解決することができません。壊れた変更禁止パッケージがあります。

  • 同様に、cuda-driversを入れてみる。
$ sudo apt-get install cuda-drivers
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています                
状態情報を読み取っています... 完了
インストールすることができないパッケージがありました。おそらく、あり得
ない状況を要求したか、(不安定版ディストリビューションを使用しているの
であれば) 必要なパッケージがまだ作成されていなかったり Incoming から移
動されていないことが考えられます。
以下の情報がこの問題を解決するために役立つかもしれません:

以下のパッケージには満たせない依存関係があります:
 cuda-drivers : 依存: cuda-drivers-460 (= 460.32.03-1) しかし、インストールされようとしていません
E: 問題を解決することができません。壊れた変更禁止パッケージがあります。

  • cuda-driver-460を入れてみる。
$ sudo apt-get install cuda-drivers-460
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています                
状態情報を読み取っています... 完了
インストールすることができないパッケージがありました。おそらく、あり得
ない状況を要求したか、(不安定版ディストリビューションを使用しているの
であれば) 必要なパッケージがまだ作成されていなかったり Incoming から移
動されていないことが考えられます。
以下の情報がこの問題を解決するために役立つかもしれません:

以下のパッケージには満たせない依存関係があります:
 cuda-drivers-460 : 依存: libnvidia-compute-460 (>= 460.32.03) しかし、インストールされようとしていません
                    依存: libnvidia-decode-460 (>= 460.32.03) しかし、インストールされようとしていません
                    依存: libnvidia-encode-460 (>= 460.32.03) しかし、インストールされようとしていません
                    依存: libnvidia-fbc1-460 (>= 460.32.03) しかし、インストールされようとしていません
                    依存: libnvidia-gl-460 (>= 460.32.03) しかし、インストールされようとしていません
                    依存: libnvidia-ifr1-460 (>= 460.32.03) しかし、インストールされようとしていません
                    依存: nvidia-compute-utils-460 (>= 460.32.03) しかし、インストールされようとしていません
                    依存: nvidia-dkms-460 (>= 460.32.03) しかし、インストールされようとしていません
                    依存: nvidia-driver-460 (>= 460.32.03) しかし、インストールされようとしていません
                    依存: nvidia-kernel-common-460 (>= 460.32.03) しかし、インストールされようとしていません
                    依存: nvidia-kernel-source-460 (>= 460.32.03) しかし、インストールされようとしていません
                    依存: nvidia-utils-460 (>= 460.32.03) しかし、インストールされようとしていません
                    依存: xserver-xorg-video-nvidia-460 (>= 460.32.03) しかし、インストールされようとしていません
E: 問題を解決することができません。壊れた変更禁止パッケージがあります。

  • libnvidia-compute-460を入れてみると、インストール成功。
  • 遡って、cuda-drivers-460、cudaの順で入れる。
  • 確認のため、nvidia-smiをすると失敗。
Failed to initialize NVML: Driver/library version mismatch

バージョンがあってないらしい。Nvidia Driverの表示が470だったからか?

  • Nvidia Driverのインストールやり直す(コマンドの内容は同じ)。
  • 再起動後、nvidia-smi成功。表示がちゃんと460になっている。

CudNNのインストール

  • Download cuDNN v8.1.0 (January 26th, 2021), for CUDA 11.0,11.1 and 11.2
     cuDNN Library for Linux (x86_64)をダウンロードする。
  • 解凍し、includeとlib64の中身を/usr/local/cudaのそれぞれのフォルダにコピーする。
cd cudnn-11.2-linux-x64-v8.1.0.77/cuda
sudo cp include/cudnn*.h /usr/local/cuda/include
sudo cp -P lib64/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*
sudo apt-get update

仮想環境構築&tensorflowインストール

  • Anacondaで仮想環境を構築し、tensorflow2.8.0をpip installで入れる。
conda create -n tf28 python==3.7.9
activate tf28
pip install tensorflow=2.8.0
  • tensorflowがgpuを認識できるか確認する。
from tensorflow.python.client import device_lib
device_lib.list_local_devices()

出力結果

2022-03-23 23:46:12.290377: I tensorflow/core/platform/cpu_feature_guard.cc:151] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations:  AVX2 FMA
To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.
2022-03-23 23:46:12.700162: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1525] Created device /device:GPU:0 with 6418 MB memory:  -> device: 0, name: GeForce RTX 2080, pci bus id: 0000:01:00.0, compute capability: 7.5
[name: "/device:CPU:0"
device_type: "CPU"
memory_limit: 268435456
locality {
}
incarnation: 12041040034942007924
xla_global_id: -1
, name: "/device:GPU:0"
device_type: "GPU"
memory_limit: 6730481664
locality {
  bus_id: 1
  links {
  }
}
incarnation: 2528322641246949854
physical_device_desc: "device: 0, name: GeForce RTX 2080, pci bus id: 0000:01:00.0, compute capability: 7.5"
xla_global_id: 416903419
]

インストール完了。

2
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
2
1