| 項目 | CUDA Driver | CUDA toolkit library | CuDNN library |
|---|---|---|---|
| 名前 | libcuda.so | libcudart.so (CUDA Runtime Library の略で cudart) | libcudnn.so |
| バージョンの例 | 515 (例: 515.48.07) | 11.7 (例: 11.7.99) | 8.9 (例: 8.9.2) |
| 説明 | nvidia.ko などの、ホストのカーネルモジュールと通信して GPU を動かす 最下層のコンポーネント。 | GPU を利用するための 高レベルの API を提供するライブラリ。 | ディープラーニングで多用される畳み込みやプーリングなどの演算を GPU で超高速に実行するためのライブラリ。CUDA Toolkit の上に構築される。 |
| 制限/互換性 | ホストのカーネルモジュールとバージョンがマッチしていないといけない。よって、SIF に自前の CUDA driver を入れるのは無意味。 | Driver(左)より古いものなら何でも使える。なぜなら、より新しい driver は古い toolkit に後方互換性を持っているから。 | 対応する CUDA Toolkit のバージョンが厳密に決まっている。Toolkit のバージョンに合わせた CuDNN バージョンを選ぶ必要がある(例:CUDA 11.7 には CuDNN 8.x 系)。Toolkit より古いものなら何でも使えるというわけではない。 |
CUDA/CuDNN はただのライブラリであり、Driver より古ければバージョンに制約はないので、NVIDIA公式のDockerhub から特定のバージョンのものが入ったものをインストールできる。
- Pytorch は対応している CUDA toolkit (従って CuDNN) のバージョンがコンパイル時に厳密に決まってしまうので、公開されているPytorch の pre-built binariesのリスト を確認し、使いたい Pytorch が対応しているバージョンの CUDA を持つ環境を (singularity などで) 使うのが楽
- 対応しているものがなければ 自分でビルドする しかないが、これは逆に言うと好きなバージョンの CUDA の環境を使えるということでもある
Command to update CUDA drivers
https://docs.nvidia.com/datacenter/tesla/driver-installation-guide/index.html#ubuntu
まず apt list --installed | grep nvidia で現在入っているパッケージを確認しておく
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.1-1_all.deb
sudo dpkg -i cuda-keyring_1.1-1_all.deb
sudo apt update
sudo apt install cuda-drivers
# or, to install compute-only to limit the footprint and dependencies on the system...
apt -V install libnvidia-compute-575 nvidia-dkms-575 # その時点での最新のバージョンが何であるかを確認してインストールするCommand to update CUDA toolkit library
https://docs.nvidia.com/cuda/cuda-installation-guide-linux/#
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.1-1_all.deb
sudo dpkg -i cuda-keyring_1.1-1_all.deb
sudo apt update
sudo apt install cuda-toolkit