なんの記事?
本年5月にnvidia-dockerセットアップしたときのメモ書きをqiitaに転記した賞味期限ギリギの記事。
環境
OS: Ubuntu20.04
GPU: GeForce GTX 1070
1. cuda-driversインストール
-
https://developer.nvidia.com/cuda-downloadsから
-
Linux
-
x84_64
-
Ubuntu
-
20.04
-
deb(network)
を選択する。
-
-
「Installation Instructions」の記述の
sudo apt-get -y install cuda
をsudo apt-get -y install cuda-drivers
に置き換えて実行する。
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin
sudo mv cuda-ubuntu2004.pin /etc/apt/preferences.d/cuda-repository-pin-600
sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/7fa2af80.pub
sudo add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/ /"
sudo apt-get update
sudo apt-get -y install cuda-drivers
- 途中、セキュアブートに関する設定を聞かれるので適当にパスワードを設定し、apt-getが終わったら再起動する。
- 起動中に「Perform MOK management」の画面になるので、「Enroll MOK」を選択する。
- 「View key0」と「Continue」の選択が出てくるので「Continue」を選択する。
- 「No」「yes」の選択で「yes」を選択する。
- パスワードを聞かれるので、再起動前に設定したパスワードを入力する。
- 再起動完了したら
nvidia-smi
を実行して動けばOK。
2021/05/24時点では、この手順で
NVIDIA-SMI 465.19.01 Driver Version: 465.19.01 CUDA Version: 11.3
になる。
2. dockerインストール
https://docs.docker.com/engine/install/ubuntu/
このサイトの手順に沿ってインポートする。
Ubuntuをインストールしたばかりなので、「Uninstall old versions」はスキップ。
「Installation methods」幾つか方法が示されているが、
その中のオススメされている、「Install using the repository」の方法でインストールする。
- dockerインストールに必要なツールをインストール
sudo apt-get update
sudo apt-get install apt-transport-https ca-certificates curl gnupg lsb-release
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
- dockerリポジトリ登録(x86_64 / amd64用を選択)
echo \
"deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
- dockerインストール
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
- dockerテストラン
sudo docker run hello-world
- sudoなしでdockerを実行するための設定。
セキュリティのため、docker管理用のユーザアカウントで実施すること。
sudo groupadd docker #なんかすでにdockerグループがあるみたい
sudo usermod -aG docker $USER
newgrp docker
- dockerテストラン
docker run hello-world
- PC起動時に自動的にdockerデーモンを起動するように設定(Ubuntuの場合はデフォルトで有効になってるのでスキップしてよい)
systemctl is-enabled docker
systemctl is-enabled containerd
で両方enabledになっていたらOK。
なっていないなら以下を実行する。
sudo systemctl enable docker.service
sudo systemctl enable containerd.service
3. NVIDIA Container Toolkit(nvidia-docker2)インストール
- リポジトリの追加
distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \
&& curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add - \
&& curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
- nvidia-docker2インストール
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-base nvidia-smi