Ubuntu 22.04 で CUDA 11 + cuDNN 8 環境をつくった。
すべて apt でインストールが完了するわけではなく、cuDNN については、引き続き nvidia サイトから該当ファイルを入手する必要あり。 sudo apt install cuda-toolkit-11-cudnn-8 だけで、インストールが完了する時代が来ればいいのに。
普通にインストールします。(詳細省略)
OS インストール中に、 Third-party drivers で nvidia-driver-535-server が 候補として出たので、それを選択した。
nvidia のドライバを入れて nvidia-smi コマンドが正常に作動するところまで進めます。
$ sudo apt update
$ sudo apt dist-upgrade
などとして最新状態にしたあとこれを入れる。
$ sudo apt install nvidia-utils-535-server
インストール中に nvidia-driver-535-server を選択したのに 再度、nvidia-utils-535-server を入れることになった。 その辺りのことはよくわからない。
そして一旦 reboot します。 起動後に、確認しましょう。
$ $ nvidia-smi
Tue Aug 1 22:35:02 2023
+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 535.54.03 Driver Version: 535.54.03 CUDA Version: 12.2 |
|-----------------------------------------+----------------------+----------------------+
| GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|=========================================+======================+======================|
| 0 NVIDIA GeForce RTX 3060 Off | 00000000:01:00.0 Off | N/A |
| 37% 37C P0 39W / 170W | 1MiB / 12288MiB | 0% Default |
| | | N/A |
+-----------------------------------------+----------------------+----------------------+
ここまではこれでOKです。
では、nvcc が動くか試す。
$ nvcc -V
Command 'nvcc' not found, but can be installed with:
sudo apt install nvidia-cuda-toolkit
だめでした。指示通りに nvidia-cuda-toolkit を入れよう。
$ sudo apt install nvidia-cuda-toolkit
~/.bashrc に以下の環境変数を設定。
export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH
マシン再起動後、確認。
$ nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2021 NVIDIA Corporation
Built on Thu_Nov_18_09:45:30_PST_2021
Cuda compilation tools, release 11.5, V11.5.119
Build cuda_11.5.r11.5/compiler.30672275_0
CUDA 11 が入った。
cuDNN はここから入手。
CUDA 12.x 用と CUDA 11.x 用があるので、CUDA 11.x を選択してダウンロード。 そしてインストール。
$ sudo apt install ./cudnn-local-repo-ubuntu2204-8.9.3.28_1.0-1_amd64.deb
このとき、keyring.gpg をコピーせよというメッセージが標準出力されるので、 それに従います。
$ sudo cp /var/cudnn-<something>.gpg /usr/share/keyrings/
<something> の部分は標準出力されたメッセージに従います。
あとは、apt で入れるだけです。 念の為一旦 reboot します。
$ sudo apt update
$ sudo apt install libcudnn8 libcudnn8-dev
最後に tensorflow をインストールして、意図通り作動するか確認します。 ここでは venv 環境をつくってそこで作業します。
$ python3 -m venv ./tf-gpu
$ source ./tf-gpu/bin/activate
chk.py
import tensorflow as tf
tf.config.list_physical_devices('GPU')
tensorflow をインストールして作動をチェック。
(tf-gpu) $ pip install tensorflow==2.5.0
(tf-gpu) $ python chk.py
...
I tensorflow/core/common_runtime/gpu/gpu_device.cc:1871] Adding visible gpu devices: 0
PyTorch
PyTorch の人は このページの最後に PyTorch 用テストコードがあるので、それで試しましょう。
Node.js と npm のバージョンの確認。
$ node --version
v12.22.9
$ npm --version
8.5.1
$ mkdir mytfjs
$ cd mytfjs
$ npm init -y
$ npm install @tensorflow/tfjs-node-gpu
$ touch index.js
index.js の内容は以下です。
const tf = require('@tensorflow/tfjs-node-gpu')
console.log(tf.version.tfjs)
実行して GPU が使用可能か確認します。
$ node index.js
...
I tensorflow/core/common_runtime/gpu/gpu_device.cc:1532] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 10246 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060, pci bus id: 0000:01:00.0, compute capability: 8.6
4.10.0
以上です。