Kubernetes と nvidia-docker2 の組み合わせ

device-plugin の設定

  1. まずは、nvidia-docker2 をインストールして、デフォルトの runtime を nvidia-docker2 にする
    DeepLearning nvidia-docker2
  2. device plugin は、Kubernetes 1.10 からデフォルトで有効になっている(特にやることなし)
  3. Nvidia の device plugin ドライバをインストールする
    https://github.com/NVIDIA/k8s-device-plugin#running-gpu-jobs
    $ kubectl create -f https://raw.githubusercontent.com/NVIDIA/k8s-device-plugin/v1.11/nvidia-device-plugin.yml
    daemonset.extensions/nvidia-device-plugin-daemonset created
  4. nvidia.com/gpu を指定しない Pod には、環境変数 NVIDIA_VISIBLE_DEVICES=none を設定する
    • https://github.com/takmatsu/gpu-mutating-webhook で、Pod 配備の前処理で GPU が要求されていなかったら 環境変数 NVIDIA_VISIBLE_DEVICES=none を設定できる ... はずだけど
    • 2019-02-28 現在、K8s 1.11 でうまく動かないのでこれはあきらめる
    • nvidia k8s-device-plugin の仕様では
      WARNING: if you don't request GPUs when using the device plugin with NVIDIA images all the GPUs on the machine 
      will be exposed inside your container.
      とのことなので、GPUを要求しない Pod には、環境変数 NVIDIA_VISIBLE_DEVICES=none を明示的に指定することにするべかな
      • NVIDIA_VISIBLE_DEVICES=none GPUを使わない
      • NVIDIA_VISIBLE_DEVICES=all すべてのGPUを使う (NVIDIA_VISIBLE_DEVICES未指定時の動作)
      • NVIDIA_VISIBLE_DEVICES=0,1 GPU0 と GPU1 を使う (Pod に、欲しい GPU の個数を指定すると、nvidia k8s-device-plugin が、適当な GPU 付きの Node を選んで、このような環境変数を自動的に設定してくれる)

Deep Learning


添付ファイル: fileRancher-Kubernetes-gpu.png 34件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS   sitemap
Last-modified: 2019-02-28 (木) 01:57:49 (21d)
ISBN10
ISBN13
9784061426061