はじめに
きっかけは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のインストール
- 参考記事①から460をインストールする。
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
]
インストール完了。