Перейти к содержанию

Активация и использование технологии NVidia MIG (Multi-Instance GPU)

Платформа Боцман позволяет разделить физическую видеокарту NVIDIA на несколько изолированных частей по технологии MIG (Multi-Instance GPU) и выдать эти части под размещение нагрузок.

Область действия

Технология MIG применяется только к видеокартам NVIDIA с поддержкой MIG.

Как это работает

Ресурсы видеокарт (вычислительное ядро и видеопамять) разделяются на логические части. MIG объединяет несколько частей в готовый профиль, который можно назначить определенной нагрузке.

Профиль обозначается как <количество логических частей вычислительного ядра>g.<объём видеопамяти>gb, например 3g.20gb:

  • 3g — три логические части вычислительного ядра;
  • 20gb — 20 ГБ видеопамяти.

Каждый профиль изолирован от остальных, поэтому приложения, работающие с разными профилями, не влияют друг на друга.

На видеокарте NVidia A100 с объемом видеопамяти 40 ГБ профиль 3g.20gb размещается дважды: 20 ГБ + 20 ГБ = 40 ГБ и 3 + 3 = 6 из 7 логических частей вычислительного ядра. Оставшийся срез остаётся неиспользованным, и видеокарта не делится на большее число таких профилей.

Пример

На узле с двумя видеокартами A100 40 ГБ доступны четыре профиля 3g.20gb — по два на каждую видеокарту. Нагрузка, которой нужны полторы видеокарты, запрашивает три профиля и получает девять частей вычислительного ядра и 60 ГБ видеопамяти суммарно.

Состояния режима MIG

Режим MIG управляется двумя лейблами узла:

Лейбл Значение Назначение
nvidia.com/mig.config имя профиля (например, all-3g.20gb). all-disabled по умолчанию (технология MIG выключена) Запрошенный профиль для всех видеокарт узла
nvidia.com/mig.config.state pending, success, failed Состояние применения профиля менеджером MIG

Внимание

По-умолчанию, режим MIG отключён (all-disabled). В этом состоянии видеокарты выдаются нагрузке только целиком: один под получает одну или две видеокарты.

Профили в картах конфигурации

При установке аддона gpu-operator создаётся карта конфигурации (configmap) со списком доступных MIG-профилей для разных моделей видеокарт.

Предпосылки

  • Пул узлов с ролью bootsman-gpu создан, на узлах установлен и работает аддон gpu-operator (устанавливается автоматически).
  • Видеокарта поддерживает технологию MIG. Поддержку MIG для конкретной модели проверьте в документации NVIDIA.
  • Полный список поддерживаемых платформой видеокарт приведён в матрице совместимости.

Внимание!

Для включения и редактирования режима MIG необходимо удалить или приостановить полезную нагрузку, которая использует ресурсы видеокарт.
Планируйте окно обслуживания для внесения изменений.

Включение режима MIG

Через Web-интерфейс

1. Выберите профиль. Откройте Хранилище → ConfigMaps и в строке фильтра укажите mig. Откройте карту конфигурации со списком профилей и выберите подходящий для вашей видеокарты профиль.

mig_configmap
mig_configmap

2. Перейдите к узлам. Откройте Кластер → Ноды (Nodes), выберите узел с видеокартами и Нажмите Редактировать конфигурацию (Edit config) и перейдите к блоку Лейблы и Примечания.

mig_gpu_node
mig_gpu_node

3. Перейдите к блоку Лейблы и Примечания и найдите лейбл nvidia.com/mig.config и замените значение all-disabled (по умолчанию) на имя выбранного профиля, например all-3g.20gb. Сохраните изменения.

node_lable
node_lable

node_lable_edit
node_lable_edit

4. Дождитесь применения профиля. В окне детализации узла значение лейбла nvidia.com/mig.config.state меняется с pending на success.

Заметка

Применение профиля занимает от нескольких десятков секунд до нескольких минут.
На время применения значение лейбла nvidia.com/mig.config.state остаётся pending.

Через манифест узла

Лейблы измените командой:

kubectl label node <NODE_NAME> nvidia.com/mig.config=all-3g.20gb --overwrite

Проверьте применение профиля:

kubectl get node <NODE_NAME> \
  -o jsonpath='{.metadata.labels.nvidia\.com/mig\.config}{"\n"}{.metadata.labels.nvidia\.com/mig\.config\.state}{"\n"}'

Ожидаемый результат: первая строка — all-3g.20gb, вторая — success.

Проверка ресурсов узла

Убедитесь, что узлу доступны MIG-профили как отдельные ресурсы планировщика:

kubectl get node <NODE_NAME> -o json | grep -i "mig-"

Ожидаемый результат: в allocatable и capacity узла присутствует ресурс nvidia.com/mig-3g.20gb; для узла с двумя видеокартами A100 40 ГБ его значение — 4.

Если в узле нет ресурсов nvidia.com/mig-*, профиль не применён. Проверьте значение nvidia.com/mig.config и состояние nvidia.com/mig.config.state.

Выдача частей видеокарты нагрузке

Нагрузка запрашивает MIG-профили как ресурсы Kubernetes. Один запрошенный ресурс nvidia.com/mig-3g.20gb — это одна часть видеокарты.

В манифесте нагрузки укажите ресурс в блоках requests и limits контейнера:

spec:
  containers:
    - name: ollama
      image: <IMAGE>
      resources:
        requests:
          nvidia.com/mig-3g.20gb: 3
        limits:
          nvidia.com/mig-3g.20gb: 3

Значение 3 означает три профиля 3g.20gb: девять логических частей вычислительного ядра и 60 ГБ видеопамяти. Такой запрос размещает нагрузку на двух видеокартах узла — профили распределяются между видеокартами.

Проверка результата

1. Убедитесь, что под с нагрузкой запущен:

kubectl get pods -n <NAMESPACE>

Ожидаемый результат: под находится в статусе Running.

2. Проверьте блок resources в конфигурации пода — он содержит запрошенный ресурс nvidia.com/mig-3g.20gb:

kubectl get pod <POD_NAME> -n <NAMESPACE> -o yaml | grep -A5 "resources:"

Ожидаемый результат: в requests и limits указано nvidia.com/mig-3g.20gb: 3.

3. Проверьте видимость частей видеокарты из контейнера:

kubectl exec -it <POD_NAME> -n <NAMESPACE> -- nvidia-smi

Ожидаемый результат: в блоке MIG devices отображаются три устройства 3g.20gb — именно те части, которые выданы нагрузке; остальная ёмкость видеокарт узла приложению не видна.

mig_devices
mig_devices

Замечания

  • После выключения режима MIG (all-disabled) MIG-ресурсы исчезают из узла, а поды, запрашивающие nvidia.com/mig-*, остаются в состоянии Pending. Перед отключением перенесите такие нагрузки на другие узлы.
  • Изменение профиля MIG на узле, где уже работают MIG-нагрузки, прерывает их выполнение.

Диагностика

Симптом Причина Действия
nvidia.com/mig.config.state долго остаётся pending Менеджер MIG не перезапускается или профиль не поддерживается адаптером Проверьте под nvidia-mig-manager в пространстве имён gpu-operator и его лог; сверьте имя профиля с картой конфигурации; проверьте поддержку данного профиля вашей видеокартой
Состояние failed Профиль не поддерживается моделью видеокарты или есть процессы, использующие видеокарту Выберите профиль из карты конфигурации для своей модели, выведите нагрузки с видеокарты
В узле нет ресурса nvidia.com/mig-* Режим MIG не включён или профиль ещё применяется Проверьте значение nvidia.com/mig.config и дождитесь состояния success
Под с запросом nvidia.com/mig-* в состоянии Pending На узлах нет свободных профилей запрошенного типа Уменьшите число профилей в запросе, добавьте узлы с GPU или измените профиль
nvidia-smi в контейнере не показывает MIG devices Нагрузка запросила nvidia.com/gpu вместо nvidia.com/mig-* Проверьте конфигурацию resources нагрузки; проверьте значение лейбла nvidia.com/mig.config.state - должно быть в состоянии success

Связанные страницы