Запуск примера модуля на Kubernetes с узлами графического процессора Nvidia

Я пытаюсь настроить Kubernetes с узлами / рабами графического процессора Nvidia. Я следовал руководству на https://docs.nvidia.com/datacenter/kubernetes-install-guide/index.html и смог заставить узел присоединиться к кластеру. Я попробовал приведенный ниже пример кубеадма:

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"]

Модуль не выполняет планирование, и события 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". Кто-нибудь может мне помочь, если я пропускаю какие-либо шаги / конфигурации?

1 ответ

Решение

Согласно документации AWS G2, g2.8xlarge серверы имеют следующие ресурсы:

  • Четыре графических процессора NVIDIA GRID, каждый с 1536 ядрами CUDA и 4 ГБ видеопамяти и возможностью кодировать либо четыре HD-видео в реальном времени с разрешением 1080p, либо восемь HD-видео в реальном времени с разрешением 720P.
  • 32 виртуальных ЦП.
  • 60 ГиБ памяти.
  • 240 ГБ (2 х 120) дискового накопителя.

Глядя на комментарии, 60 ГБ - это стандартная оперативная память, и она используется для регулярных расчетов. g2.8xlarge серверы имеют 4 графических процессора с 4 ГБ памяти графического процессора каждый, и эта память используется для расчетов в nvidia/cuda контейнеры.

В вашем случае запрашивается 8 ГБ памяти GPU на каждый графический процессор, но на вашем сервере только 4 ГБ. Поэтому кластер испытывает недостаток ресурсов для планирования POD. Поэтому попробуйте уменьшить использование памяти в настройках Pod или использовать сервер с большим объемом памяти GPU.

Другие вопросы по тегам