MENU

Centos7.7で Docker のコンティナーをGPU使用するためのセットアップ

2020 5/10
STEP
ホスト側の設定

Dockerのコンテイナーを起動するホスト側での下準備

STEP
コンティナー内の設定

ホスト側が設定終わったら、tensorflow など GPU使えるようにコンティナー内での準備

ホスト側の設定

下記のコマンドでkernel と開発パッケージをインストールする
参考:https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#post-installation-actions

sudo yum install kernel-devel-$(uname -r) kernel-headers-$(uname -r)

次に CUDA TOOLKIT を入れる
参考:https://developer.nvidia.com/cuda-downloads?target_os=Linux&target_arch=x86_64&target_distro=CentOS&target_version=7&target_type=rpmnetwork

sudo yum-config-manager --add-repo http://developer.download.nvidia.com/compute/cuda/repos/rhel7/x86_64/cuda-rhel7.repo
sudo yum clean all
sudo yum -y install nvidia-driver-latest-dkms cuda
sudo yum -y install cuda-drivers

Env Path 追加

export PATH=/usr/local/cuda-10.2/bin:/usr/local/cuda-10.2/NsightCompute-2019.1${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-10.2/lib64\${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

次にコンテイナーを gpu 使えるよう runtime をインストールする
参考:https://github.com/NVIDIA/nvidia-container-runtime

sudo yum install nvidia-container-runtime

そして、 docker のサービスを起動時、gpu を使えるよう、設定する

sudo mkdir -p /etc/systemd/system/docker.service.d
sudo vi /etc/systemd/system/docker.service.d/override.conf

vi で 下記の内容入れる

[Service]
ExecStart=
ExecStart=/usr/bin/dockerd –host=fd:// –add-runtime=nvidia=/usr/bin/nvidia-container-runtime

そしてサービスを再起動する

sudo systemctl daemon-reload
sudo systemctl restart docker

最後にGPUを使いたいコンティナーの方に docker-compose.yml の中に下記の内容達します

runtime : nvidia
environment :
– “NVIDIA_VISIBLE_DEVICES=all”
– “NVIDIA_DRIVER_CAPABILITIES=all”

これでホスト側の設定が終わります

コンティナー内の設定

cuda10.0 をインストールする
* パッケージ名は cuda じゃなくて cuda-10-0 なので注意
https://developer.nvidia.com/cuda-10.0-download-archive?target_os=Linux&target_arch=x86_64&target_distro=CentOS&target_version=7&target_type=rpmnetwork

sudo rpm -i cuda-repo-rhel7-10.0.130-1.x86_64.rpm
sudo yum clean all
sudo yum install cuda-10-0

cudnn sdk をダウンロード
https://developer.nvidia.com/compute/machine-learning/cudnn/secure/v7.6.2.24/prod/10.0_20190719/cudnn-10.0-linux-x64-v7.6.2.24.tgz

下記のコマンド実行

tar -xzvf cudnn-10.0-linux-x64-v7.6.2.24.tgz
sudo cp cuda/include/cudnn.h /usr/local/cuda/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64

これでコンティナー内でも tensorflow cudnn がGPU使えるようになります

この記事を書いた人

Full stack developer working on Game programming, AI, Data Analysis, and various server backend tech. Feel free to contact me via Huggingface or Linkedin.

コメント

コメントする

目次
閉じる