Deep Learning環境構築をnVIDIA Container Toolkit利用に変えました
1.概要
本ブログの7/1の記事で記載したGPUに関して、nVIDIAのGPU利用には下記製品を導入して利用していました。
・nVIDIAのデバイスドライバー
・CUDA(Compute Unified Device Architecture)
・cuDNN(The NVIDIA CUDA Deep Neural Network library)
・GPU対応のtensorflow
しかし、ubuntuのkernelが更新されると整合性が取れなくなり、再構築をしていました。
nVIDIAはnVIDIA Container Toolkitを提供して、環境構築の問題を改善しています。nVIDIA Container ToolKitに関して記述します。
2.詳細
ubuntu-20.04.4でnVidia 1050Tiを利用します。導入手順は以下の通りです。
(a) ubuntu-20.04.4の標準driver(nouveau)を無効にする
(b) ubuntu-20.04.4にnVidiaの最新ドライバーを導入する
(c) nVIDIA Container Toolkitを導入して、nvidia-smi試験(参考資料)
(d) nVIDIA Runtimeを設定して、docker上でnvidia-smi試験(参考資料)
ここでは、(a)(b)の記述は省略して、(c)(d)に関して記述します。
(c) nVIDIA Container Toolkitを導入して、nvidia-smi試験
Installation Guideを参照します。
・Dockerを導入します(ubuntu 20.04の標準を利用します)
・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の実行結果が表示されます
(d) nVIDIA Runtimeを設定して、docker上でnvidia-smi試験
User Guideを参照します。
記述内容通りでなく、/etc/docker/deamon.jsonを以下のように作成します。
私はvimで作成しました。
{
"default-runtime": "nvidia",
"runtimes": {
"nvidia": {
"path": "/usr/bin/nvidia-container-runtime",
"runtimeArgs": []
}
}
}
一度、PCを再起動します。
$ docker run --rm --gpus all nvidia/cuda nvidia-smi
上記手順では実行できません。
nvidia/cudaの参考資料に従って、
$ docker run --rm --gpus all nvidia/cuda:11.0.3-runtime-ubuntu20.04 nvidia-smi
nvidia-smiの動作確認できます。
参考
[外部サイト参照]
・Installation Guide
・User Guide
・nvidia/cuda
コメント
コメントを投稿