1

Nvidia GPU ノード/スレーブを使用して Kubernetes をセットアップしようとしています。https://docs.nvidia.com/datacenter/kubernetes-install-guide/index.htmlのガイドに従ったところ、ノードをクラスターに参加させることができました。以下の kubeadm サンプル ポッドを試しました。

apiVersion: v1
kind: Pod
metadata:
  name: gpu-pod
spec:
  containers:
    - name: cuda-container
      image: nvidia/cuda:9.0-base
      command: ["sleep"]
      args: ["100000"]
      extendedResourceRequests: ["nvidia-gpu"]
  extendedResources:
    - name: "nvidia-gpu"
      resources:
        limits:
          nvidia.com/gpu: 1
      affinity:
        required:
          - key: "nvidia.com/gpu-memory"
            operator: "Gt"
            values: ["8000"]

Pod がスケジューリングに失敗し、kubectl イベントに次のように表示されます。

4s          2m           14        gpu-pod.15487ec0ea0a1882        Pod                                          Warning   FailedScheduling        default-scheduler            0/2 nodes are available: 1 Insufficient nvidia.com/gpu, 1 PodToleratesNodeTaints.

AWS EC2 インスタンスを使用しています。マスター ノードの m5.large & スレーブ ノードの g2.8xlarge。ノードを記述すると、「nvidia.com/gpu: 4」も表示されます。手順や構成が不足している場合、誰か助けてもらえますか?

4

1 に答える 1

1

AWS G2ドキュメントによると、g2.8xlargeサーバーには次のリソースがあります。

  • 4 つの NVIDIA GRID GPU は、それぞれ 1,536 CUDA コアと 4 GB のビデオ メモリを備え、1080p で 4 つのリアルタイム HD ビデオ ストリームまたは 720P で 8 つのリアルタイム HD ビデオ ストリームをエンコードする機能を備えています。
  • 32 個の vCPU。
  • 60 GiB のメモリ。
  • 240 GB (2 x 120) の SSD ストレージ。

コメントを見ると、60GBが標準RAMで、通常の計算に使用されています。g2.8xlargeサーバーには、それぞれ 4 GB の GPU メモリを備えた 4 つの GPU があり、このメモリはnvidia/cudaコンテナーでの計算に使用されます。

あなたの場合、GPU ごとに 8 GB の GPU メモリが要求されますが、サーバーには 4 GB しかありません。したがって、クラスターでは、POD をスケジュールするためのリソースが不足します。そのため、Pod 設定でメモリ使用量を減らすか、より多くの GPU メモリを備えたサーバーを使用してみてください。

于 2018-08-13T13:24:42.120 に答える