CUDA/Dockerの環境構築
目標
初期状態のUbuntu18.04 LTSにCuda, Docker, nvidia-dockerの環境を構築する。
想定環境
Step0 : 前準備
$ sudo apt update $ sudo apt -y upgrade
Step1 : GPUドライバ(CUDA)のインストール
Cuda Toolkitの公式サイトから以下のように選択し、表示されるものに従ってダウンロード。(ここではCuda10.2)
過去のバージョンはLegacy Releasesからインストール手順が参照可能。
$ wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-ubuntu1804.pin $ sudo mv cuda-ubuntu1804.pin /etc/apt/preferences.d/cuda-repository-pin-600 $ sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub " aptレポジトリに追加 $ sudo add-apt-repository "deb http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/ /" $ sudo apt-get update " CUDAのインストール $ sudo apt-get -y install cuda " 確認(表示されればOK) $ nvidia-smi " Pathを通す $ export PATH="/usr/local/cuda/bin:$PATH" $ export LD_LIBRARY_PATH="/usr/local/cuda/lib64:$LD_LIBRARY_PATH"
Step2 : Dockerのインストール
公式のインストールガイドに従ってdocker-ceをインストールする。
" (任意) 必要に応じてaptのアップデート $ sudo apt-get update " HTTPSのためのソフトフェアをインストール $ sudo apt-get -y install \ apt-transport-https \ ca-certificates \ curl \ gnupg-agent \ software-properties-common " Docker公式のGOG keyを追加 $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - $ sudo apt-key fingerprint 0EBFCD88 " aptレポジトリに追加 $ sudo add-apt-repository \ "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) \ stable" " aptのアップデート $ sudo apt-get update " docker-ceのインストール $ sudo apt-get -y install docker-ce docker-ce-cli containerd.io " (任意) 正しくインストールされたか確認 $ sudo docker run --rm hello-world " (任意) 必要に応じてuserグループに追加 " 追加するとsudoを使用する必要がなくなる。 $ sudo usermod -aG docker $USER $ exit
【余談】docker-ceとは?
DockerはCE(コミュニティエディション)とEE(エンタープライズエディション)があり、無料版と有料版という違いがある.(個人用か商業用かの違いみたいなもの)
Step3 : nvidia-dockerのインストール
githubにある公式のレポジトリにあるREADMEのQuickStartを参照しながらインストールを行う。
最新のDocker19.03のリリースで、Nvidia GPUがDockerでネイティブにサポートされるようになったためnvidia-docker2の使用は非推奨になりました。
Docker19.03の説明は次の記事がわかりやすい。
nvidia-docker2では--runtime=nvidia
のオプションを使いますが、19.03では--gpus
のオプションが追加されたのでこれを使う。
" レポジトリのパッケージを追加する $ distribution=$(. /etc/os-release;echo $ID$VERSION_ID) $ curl -sL 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 $ sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit $ sudo systemctl restart docker " (任意) 正しくインストールされたか確認 $ docker run --gpus all nvidia/cuda:9.0-base nvidia-smi
nvidia-smiの画面が出れば完了!!