Dockerのコンテイナーを起動するホスト側での下準備
ホスト側が設定終わったら、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使えるようになります
コメント