3
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Ubuntu22.04 LTS での Deep Learning 環境の構築

Last updated at Posted at 2022-06-20

概要

本記事は Ubuntu22.04 LTS 上でのDeepLearning環境の構築方法について記載します。
nvidia-driverのインストール方法や、UbuntuとNvidiaGPUの相性などが改善されてきており
困ることが少なくなってきましたが、良く行う作業のため、設定方法を記事とします。

以前の記事や Ubuntu 20.04 LTS との影響のある変更点

  • Ubuntu の Desktop System が X11 から Wayland がデフォルト設定となりました。 (が、設定をする途中で、X11に切り替わります。)
  • pyenv の Path の設定が変わりました (2021/05 あたりからPathの通し方が変わっています。)

関連記事

Install USB の作成

iso イメージを利用して Install USB を作成してください
http://www.ubuntulinux.jp/News/ubuntu2204-ja-remix

Ubuntuのインストール

画面の指示に従ってインストールを行います。

  • 予めどのアプリケーションをインストールしますか?
    • →通常のインストール
  • Ubuntuのインストール中にアップデートをダウンロードする
    • →✓
  • グラフィックとWi−Fiハードウェアと追加のメディアフォーマットのサードパーティ製ソフトウェアをインストールする
    • →✓せず

(option) RustDeskのインストール

RustDeskを利用すると、TeamViewer のように
インターネット接続を利用してリモートデスクトップアクセスが可能です。

VPN設定前や、SSH接続ができないケースで便利です。
▼RustDesk 公式ページ
https://rustdesk.com/

主要ライブラリのインストール

sudo apt-get update
sudo apt-get upgrade

sudo apt-get install -y vim csh flex gfortran g++ \
                 cmake xorg-dev patch zlib1g-dev libbz2-dev \
                 libboost-all-dev openssh-server libcairo2 \
                 libcairo2-dev libeigen3-dev lsb-core \
                 lsb-base net-tools network-manager \
                 git-core git-gui git-doc xclip gdebi-core libffi-dev \
                 make build-essential libssl-dev zlib1g-dev libbz2-dev \
                 libreadline-dev libsqlite3-dev wget curl llvm \
                 libncurses5-dev libncursesw5-dev \
                 xz-utils tk-dev libffi-dev liblzma-dev

sudo apt update
sudo apt upgrade

Nvidia driver のインストール

Ubuntu 22.04 LTS とは関係なく、Nvidia のリポジトリの問題ですが、
古い手順で実行すると以下のエラーが出るため注意してください。

※ RTX 4090 の場合はこちらの公式の手順を参照してください

wget https://us.download.nvidia.com/XFree86/Linux-x86_64/520.56.06/NVIDIA-Linux-x86_64-520.56.06.run
chmod +x NVIDIA-Linux-x86_64-520.56.06.run
sudo ./NVIDIA-Linux-x86_64-520.56.06.run

その後以下の手順を実行します。
https://developer.nvidia.com/cuda-downloads?target_os=Linux&target_arch=x86_64&Distribution=Ubuntu&target_version=22.04&target_type=deb_local

W: GPG エラー: https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64 InRelease: 公開鍵を利用できないため、以下の署名は検証できませんでした: NO_PUBKEY A4B469963BF863CC
E: リポジトリ https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64 InRelease はもう署名されていません。
N: このようなリポジトリから更新を安全に行うことができないので、デフォルトでは更新が無効になっています。
N: リポジトリの作成とユーザ設定の詳細は、apt-secure(8) man ページを参照してください。

※ RTX 4090 以外の場合はこちらの公式の手順を参照してください
※冒頭の NVIDIA package repositories の .pin や .pub の設定が新しくなっています。

wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-ubuntu2204.pin
sudo mv cuda-ubuntu2204.pin /etc/apt/preferences.d/cuda-repository-pin-600
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/ /"
sudo apt-get update


wget http://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64/nvidia-machine-learning-repo-ubuntu1804_1.0.0-1_amd64.deb

sudo apt install ./nvidia-machine-learning-repo-ubuntu1804_1.0.0-1_amd64.deb
sudo apt-get update

wget https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64/libnvinfer7_7.1.3-1+cuda11.0_amd64.deb
sudo apt install ./libnvinfer7_7.1.3-1+cuda11.0_amd64.deb
sudo apt-get update

sudo apt-get install --no-install-recommends \
    cuda-11-8 \
    libcudnn8 \
    libcudnn8-dev


# 一旦ここで再起動を行う

sudo apt-get install -y --no-install-recommends libnvinfer7=7.1.3-1+cuda11.0 \
    libnvinfer-dev=7.1.3-1+cuda11.0 \
    libnvinfer-plugin7=7.1.3-1+cuda11.0

pyenvのインストール

git clone https://github.com/yyuu/pyenv.git ~/.pyenv

パスを通します。

# ~/.bashrc にPATHを通す (2021/05 あたりに内容が変わりました。 )
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init --path)"' >> ~/.bashrc
echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n  eval "$(pyenv init -)"\nfi' >> ~/.bashrc

再起動します。

source ~/.bashrc

好きなバージョンをインストールして設定します。

pyenv install 3.10.9
pyenv global 3.10.9
pyenv rehash
python -V
> Python 3.10.9

Docker のインストール

sudo apt-get update

sudo apt-get install \
    ca-certificates \
    curl \
    gnupg \
    lsb-release

sudo mkdir -p /etc/apt/keyrings
 curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null


sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin


インストールの確認

sudo docker run hello-world

nvidia-container-toolkit のインストール

container 内から GPU を使うための設定です。

公式ドキュメントの手順に従います。
https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html#setting-up-nvidia-container-toolkit

distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \
      && curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
      && curl -s -L https://nvidia.github.io/libnvidia-container/$distribution/libnvidia-container.list | \
            sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
            sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list

sudo apt-get update
sudo apt-get install -y nvidia-docker2
sudo systemctl restart docker

動作確認

sudo docker run --rm --gpus all nvidia/cuda:11.0.3-base-ubuntu20.04 nvidia-smi

コンテナ内から nvidia-smi を叩いて、ホストマシンのGPUが見えたら成功です。

3
9
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
3
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?