LoginSignup
10
2

Ubuntu 22.04マシンでGPUを使えるようにする

Last updated at Posted at 2023-11-11

参考にした資料

深層学習向けに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だと前提します。

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-8cuda-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.8cuda-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をインストールすれば、そこで説明されている手順は踏まなくても、深層学習のコーディングはできるようになっています。

(以上です。)

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