参考にした資料
- 「NVIDIA ドライバ,NVIDIA CUDA ツールキット 11.8, NVIDIA cuDNN 8 のインストール(Ubuntu 上)」(金子邦彦先生のWebサイトより)
深層学習向けにUbuntuマシンを設定するときは、個人的にいつも上のWebページを参考にさせていただいています。
以下の記事は、上のWebページから、Ubuntu 22.04 に関係する部分を集約したものにすぎません。
ただし、少しだけ説明を追加してあります。
前準備
- ここは必要に応じて。
- いずれにしても、後で
sudo apt -y update
は実行します。
- いずれにしても、後で
Ubuntu のシステム更新
sudo apt -y update
sudo apt -yV upgrade
システムを更新したので再起動
sudo /sbin/shutdown -r now
NVIDIAドライバとNVIDIA CUDAツールキットのインストール
NVIDIAドライバのインストール
NVIDIAグラフィックカードの確認
- ここで、グラフィックカードがあるはずなのに見えていないとすると、ハードウェアのレベルで何か問題があるということです。
- 最低限、電源をもう一度入れ直す。
- それでもダメなら、ちゃんとグラフィックカードが挿さっているか、グラフィックカードに電源ケーブルが挿さっているかなど、基本的なことを確認する。
lspci | grep -i nvidia | grep VGA
nouveauドライバの無効化
- これは、Ubuntuに限らず、LinuxでNVIDIAのGPUを使えるようにするとき、昔からみんなやってきたことです。
echo 'blacklist nouveau' | sudo tee -a /etc/modprobe.d/blacklist-nouveau.conf
echo 'options nouveau modeset=0' | sudo tee -a /etc/modprobe.d/blacklist-nouveau.conf
cat /etc/modprobe.d/blacklist-nouveau.conf
sudo update-initramfs -u
NVIDIA ドライバとNVIDIA CUDA ツールキットのアンインストール
- インストール作業がうまくいかないときは、ここまで戻ってきて、ドライバやCUDAなど関係しそうなもの全てをアンインストールしてから再度インストールを試みると、うまくいくと思います。
dpkg -l | grep cuda
cd /tmp
sudo apt --purge remove -y nvidia-*
sudo apt --purge remove -y cuda-*
sudo apt --purge remove -y libcudnn*
sudo apt --purge remove -y cudnn-*
sudo apt autoremove -y
カーネルヘッダーと,カーネル開発用パッケージのインストール
sudo apt -y update
sudo apt -y install linux-headers-$(uname -r)
NVIDIA ドライバのインストール操作
sudo apt -y update
sudo apt -y upgrade
sudo apt dist-upgrade
ubuntu-drivers devices
- ここまで実行すると、ドライバ一覧が表示されます。
- ここで、
sudo ubuntu-drivers autoinstall
と、システムにドライバを選択させることは、お薦めしません。- そのドライバが、お使いのハードウェア環境に合っていないことが結構あるからです。
- 合っていない、というのは、これ以降の作業のどこかで行き詰まる、ということです。
- そのため、表示されているドライバの中から、ご自身でいずれかを選択し、インストールすることをお薦めします。
- 番号の値が大きいほど新しいドライバですが、お使いのハードウェア環境に最新のドライバが合っているとは限りません。
- 例えば、以下のように、自分で選んだドライバをインストールします。
sudo apt install -y nvidia-driver-525
sudo update-initramfs -u
- もし、特定のドライバをインストールした結果、以下の作業のどこかで行き詰まってしまったら、上の「NVIDIA ドライバとNVIDIA CUDAツールキットのアンインストール」に戻って、また別のドライバを選びます。
- お使いのハードウェアにどのドライバが合っているかについては、数回の試行錯誤が必要かもしれません。
システムの再起動
sudo /sbin/shutdown -r now
NVIDIAドライバの確認
- 再起動後、以下のコマンドで確認します。
- なお、
nvidia-smi
コマンドが表示してくるCUDAのバージョンは当てになりません。 - CUDAのバージョンは、後で出てくるように、
nvcc --vesion
で確認します。 -
nvidia-smi
コマンドで確認するのは、あくまで、ドライバのバージョンだけです。
- なお、
nvidia-smi
NVIDIA CUDA ツールキット11.8 のインストール
- Ubuntuのバージョンは22.04だと前提します。
- それ以外のバージョンについては、元の金子先生のWebページを参考にされてください。
NVIDIA CUDAパッケージレポジトリをUbuntuシステムに追加
sudo wget -O /etc/apt/preferences.d/cuda-repository-pin-600 https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-ubuntu2204.pin
sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/3bf863cc.pub
sudo add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/ /"
NVIDIA CUDAパッケージレポジトリを用いてNVIDIA CUDA ツールキットのインストール
- CUDAツールキット11.7をインストールする場合は、以下の
cuda-11-8
をcuda-11-7
に変更します。
sudo apt -y update
sudo apt -y install cuda-11-8
sudo update-initramfs -u
システムの再起動
sudo /sbin/shutdown -r now
NVIDIA CUDA ツールキットにパスを通す設定
- CUDAツールキット11.7をインストールした場合は、以下の
cuda-11.8
をcuda-11.7
に変更します。
export CUDA_PATH=/usr/local/cuda-11.8
echo 'export CUDA_PATH=/usr/local/cuda-11.8' >> ${HOME}/.bashrc
export LD_LIBRARY_PATH=/usr/local/cuda-11.8/lib64:${LD_LIBRARY_PATH}
echo 'export LD_LIBRARY_PATH=/usr/local/cuda-11.8/lib64:${LD_LIBRARY_PATH}' >> ${HOME}/.bashrc
export PATH=/usr/local/cuda-11.8/bin:${PATH}
echo 'export PATH=/usr/local/cuda-11.8/bin:${PATH}' >> ${HOME}/.bashrc
- なお、この作業によって、ホームディレクトリにある
.bashrc
というファイルの内容が変更されます。
パスの設定を有効にする
. ${HOME}/.bashrc
- あるいは、自分のホームディレクトリに行ってから以下のように実行しても、同じことです。
. .bashrc
CUDAのバージョンを確認する
nvcc --version
- ここで、nvccが見つからない的なエラーが出たとしたら、パスの設定が有効になっていないということです。
さいごに
-
実は、ここまで作業しておけば、PyTorchのインストールはできるようになっています。
-
金子先生の元のWebページでは、上の説明に続いて、NVIDIA cuDNNのインストールの説明が続いていますが、PyTorchをインストールすれば、そこで説明されている手順は踏まなくても、深層学習のコーディングはできるようになっています。
(以上です。)