Облачная платформаAdvanced

CCE AI Suite (NVIDIA GPU)

Язык статьи: Русский
Показать оригинал
Страница переведена автоматически и может содержать неточности. Рекомендуем сверяться с английской версией.

Введение

Дополнение CCE AI Suite (NVIDIA GPU) помогает использовать и управлять GPU в ваших кластерах. Оно поддерживает доступ к GPU в контейнерах и помогает эффективно запускать и поддерживать вычислительные нагрузки, основанные на GPU, в облачных нативных средах. С этим дополнением как стандартные, так и Turbo кластеры CCE могут выполнять планирование GPU, автоматически устанавливать драйверы, управлять средами выполнения и мониторить производительность. Это означает полную поддержку GPU‑нагрузок на протяжении всего их жизненного цикла. Чтобы запускать узлы GPU в кластере, необходимо установить это дополнение.

Как работает nvidia-gpu-device-plugin

nvidia-gpu-device-plugin является одним из основных компонентов CCE AI Suite (NVIDIA GPU). Как мост между платформой контейнеров и аппаратным обеспечением GPU, nvidia-gpu-device-plugin абстрагирует физические GPU в ресурсы, которые могут быть идентифицированы и запланированы платформой контейнеров. Это решает проблемы распределения и использования GPU в контейнеризованных средах.

Этот компонент работает как DaemonSet, чтобы GPU на каждом узле могли быть обнаружены kubelet и переданы в Kubernetes. Для использования GPU на узлах достаточно указать запросы ресурсов GPU в спецификациях pod. kubelet сам по себе не обнаруживает GPU‑устройства автоматически. Вместо этого он полагается на nvidia-gpu-device-plugin для регистрации и передачи информации о GPU. nvidia-gpu-device-plugin запускается на каждом узле с GPU и использует протокол gRPC для связи с kubelet Device Plugin Manager и завершения регистрации. Ниже показан рабочий процесс.

Рисунок 1 Отчет о ресурсах GPU и их состоянии


  1. Отправка запроса регистрации: nvidia-gpu-device-plugin отправляет запрос регистрации kubelet в качестве клиента вместе со следующими данными:
    • Имя устройства (nvidia.com/gpu): определяет тип аппаратного ресурса, управляемого дополнением, который kubelet использует для идентификации и планирования.
    • Unix socket: обеспечивает локальное gRPC‑соединение между компонентом и kubelet, чтобы гарантировать корректный вызов нужных сервисов kubelet.
    • API version: указывает версию протокола Device Plugin API. Это гарантирует совместимость протоколов связи обеих сторон.
  2. Запуск сервиса: после регистрации nvidia-gpu-device-plugin запускает gRPC‑сервер для предоставления сервисов внешним системам. gRPC‑сервер обрабатывает запросы kubelet, включая запросы списка устройств, отчёты о состоянии здоровья и распределение ресурсов. Адрес прослушивания (путь Unix socket) gRPC‑сервера и поддерживаемая версия Device Plugin API были переданы kubelet во время регистрации. Это гарантирует, что kubelet сможет корректно устанавливать соединения и вызывать нужные API на основе информации о регистрации.
  3. Мониторинг состояния: после запуска gRPC‑сервера kubelet устанавливает постоянное соединение с nvidia-gpu-device-plugin через API ListAndWatch для непрерывного отслеживания идентификаторов устройств и их состояния. Если устройство становится неисправным, nvidia-gpu-device-plugin передаёт ошибку kubelet через это соединение.
  4. Отчёт о информации: kubelet интегрирует данные об устройствах в статусы узлов и передаёт детали ресурсов, такие как количество устройств, в сервер API Kubernetes. Планировщик (kube-scheduler или Volcano) использует эти детали для принятия решений о планировании.
  5. Постоянное хранилище: CCE сохраняет информацию об устройствах GPU (например, количество и статус), переданную узлами, в etcd для обеспечения сохранности ресурсов на уровне кластера. Это гарантирует, что данные GPU сохраняются после сбоя или перезапуска компонента кластера, а также предоставляет согласованные источники данных для таких компонентов, как планировщик и контроллер, обеспечивая надёжность планирования и управления ресурсами.

Примечания и ограничения

  • Загружаемый драйвер должен быть файлом .run.
  • Поддерживаются только драйверы NVIDIA Tesla, а не драйверы GRID.
  • При установке или переустановке дополнения убедитесь, что адрес загрузки драйвера корректен и доступен. CCE не проверяет корректность адреса.
  • Это дополнение только позволяет загрузить драйвер и выполнить скрипт установки. Состояние дополнения лишь показывает, как работает дополнение, а не то, установлен ли драйвер успешно.
  • CCE не гарантирует совместимость версии драйвера GPU и версии библиотеки CUDA вашего приложения. Необходимо проверять совместимость самостоятельно.
  • Если в пользовательском образе ОС установлен драйвер GPU, CCE не может гарантировать совместимость драйвера GPU с другими компонентами GPU, например, компонентами мониторинга, используемыми в CCE.

Установка дополнения

  1. Войдите в CCE console и нажмите название кластера, чтобы открыть консоль кластера.
  2. В панели навигации выберите Add-ons. В правой панели найдите дополнение CCE AI Suite (NVIDIA GPU) и нажмите Install.
  3. Определите, включить ли Use DCGM-Exporter to Observe DCGM Metrics. После включения этой функции DCGM-Exporter будет развернут на узле GPU.

    Notice

    Если версия дополнения 2.7.40 или новее, DCGM-Exporter может быть развернут. DCGM-Exporter сохраняет возможности сообщества и не поддерживает режим совместного использования или виртуализацию GPU.

  4. Настройте параметры дополнения.

    Таблица 1 Параметры дополнения

    Параметр

    Description

    Default Cluster Driver

    Все GPU‑узлы в кластере используют один и тот же драйвер. Вы можете выбрать подходящую версию драйвера GPU или настроить ссылку на драйвер и ввести ссылку для загрузки драйвера NVIDIA.

    NOTICE:
    • Если ссылка для загрузки является интернет‑адресом, например, https://us.download.nvidia.com/tesla/470.103.01/NVIDIA-Linux-x86_64-470.103.01.run, привяжите EIP к каждому GPU‑узлу. Подробную информацию о том, как получить ссылку на драйвер, см. Obtaining a Driver Link from the Internet.
    • Если ссылка для загрузки является URL OBS, привязывать EIP к GPU‑узлам не требуется. Подробную информацию о том, как получить ссылку на драйвер, см. Obtaining a Driver Link from the OBS Link.
    • Убедитесь, что версия драйвера NVIDIA соответствует GPU‑узлам.
    • Если версия драйвера изменена, перезапустите узлы, чтобы применить изменения.

    Note

    После установки дополнения вы можете настроить виртуализацию GPU и драйверы пула узлов на вкладке Heterogeneous Resources в Settings.

  5. Нажмите Install.

    Note

    Если дополнение удалено, новые GPU‑pod‑ы, запланированные на узлы, не смогут работать корректно, однако уже работающие GPU‑pod‑ы на узлах не будут затронуты.

Проверка дополнения

После установки дополнения выполните команду nvidia-smi на GPU‑узле и в контейнере, который планирует ресурсы GPU, чтобы проверить доступность устройства GPU и драйвера.

  • GPU node:
    • Если версия дополнения старше 2.0.0, выполните следующую команду:
      cd /opt/cloud/cce/nvidia/bin && ./nvidia-smi
    • Если версия add-on 2.0.0 или новее, выполните следующую команду:
      cd /usr/local/nvidia/bin && ./nvidia-smi
  • Pod:
    • Если версия кластера v1.27 или более ранняя, выполните следующую команду:
      cd /usr/local/nvidia/bin && ./nvidia-smi
    • Если версия кластера v1.28 или новее, выполните следующую команду:
      cd /usr/bin && ./nvidia-smi

Если возвращена информация о GPU, устройство доступно и add-on установлен.

Управление add-on

После установки add-on вы можете при необходимости выполнить его обновление или откат. Перед обновлением или откатом add-on CCE AI Suite (NVIDIA GPU) убедитесь, что на GPU‑node не запущены рабочие нагрузки виртуализации GPU. Если на GPU‑node есть такие нагрузки, при обновлении или откате add-on необходимо освободить (drain) GPU‑node.

Поддерживаемые GPU Drivers

Notice
  • Список поддерживаемых GPU Drivers применяется только к CCE AI Suite (NVIDIA GPU) версии 1.2.28 и новее.
  • Чтобы использовать новейший GPU driver, обновите ваш CCE AI Suite (NVIDIA GPU) до последней версии.
  • Совместимость ОС, GPU drivers и моделей GPU, перечисленных в Table 2, протестирована и подтверждена. Чтобы обеспечить отличную производительность и стабильность, используйте эти GPU drivers. Если развертывание производится в непроверенной среде, проведите полные тесты в соответствии со средой, чтобы гарантировать совместимость и стабильность.
  • NVIDIA более не предоставляет обновления или исправления безопасности для GPU drivers, достигших конца срока службы (EOL). Подробности см. в Driver Lifecycle. Например, ветка Production Branch (PB) обеспечивает поддержку в течение одного года с даты выпуска, а ветка Long-Term Support Branch (LTSB) — три года.

    Согласно этой политике, CCE не предоставляет техническую поддержку для GPU drivers, достигших EOL, включая установку и обновление драйверов. The following drivers have reached EOL: 510.47.03, 470.141.03, and 470.57.02.

  • При установке GPU driver на Ubuntu и CentOS обратите внимание на версию ОС. Подробности см. в Table 3. Дополнительную информацию см. в NVIDIA Driver Documentation.
Table 2 Поддерживаемые GPU drivers

GPU Model

Supported Cluster Type

Specification

OS

OS

OS

HCE OS 2.0

Ubuntu 22.04

CentOS Linux release 7.6

Tesla T4

CCE standard cluster

g6

pi2

570.86.15

535.216.03

535.161.08

535.54.03

510.47.03

470.57.02

570.86.15

535.216.03

535.161.08

535.54.03

535.216.03

535.161.08

535.54.03

510.47.03

470.141.03

470.57.02

Tesla V100

CCE standard cluster

p2s

p2vs

p2v

570.86.15

535.216.03

535.161.08

535.54.03

510.47.03

470.57.02

570.86.15

535.216.03

535.161.08

535.54.03

535.216.03

535.161.08

535.54.03

510.47.03

470.141.03

470.57.02

Table 3 Сопоставление версий драйверов GPU и версий ОС

Версия драйвера

Ubuntu 22.04

CentOS Linux release 7.6

570.86.15

Ubuntu 22.04.z LTS (where z ≤ 5)

Не поддерживается

535.216.03

Ubuntu 22.04.z LTS (where z ≤ 4)

CentOS 7.y (where y ≤ 9)

535.161.08

Ubuntu 22.04.z LTS (where z ≤ 3)

CentOS 7.y (where y ≤ 9)

535.54.03

Ubuntu 22.04.z LTS (where z ≤ 2)

CentOS 7.y (where y ≤ 9)

510.47.03

Не поддерживается

CentOS 7.y (где y ≤ 9)

470.141.03

Не поддерживается

CentOS 7.y (где y ≤ 9)

470.57.02

Не поддерживается

CentOS 7.y (где y ≤ 9)

Получение ссылки на драйвер из Интернета

  1. Войдите в CCE console и нажмите название кластера, чтобы открыть консоль кластера.
  2. Создайте узел. В области Specifications выберите флейвор GPU‑узла. Модели GPU отображаются в нижней части области.

  1. Войдите в NVIDIA driver download page и выполните поиск информации о драйвере. Операционная система должна быть Linux 64-bit.

    Рисунок 2 Выбор параметров


  2. После подтверждения информации о драйвере нажмите Find. На отображённой странице найдите драйвер для загрузки и нажмите View.

    Рисунок 3 Просмотр информации о драйвере


  3. Нажмите Download и скопируйте ссылку для загрузки.

    Рисунок 4 Получение ссылки


Получение ссылки драйвера из OBS Link

  1. Загрузите драйвер в OBS и установите для файла драйвера параметр public read.

    Note

    При перезапуске узла драйвер будет загружен и установлен повторно. Убедитесь, что ссылка OBS bucket драйвера действительна.

  2. В списке bucket выберите имя bucket, чтобы перейти на страницу Objects.
  3. Нажмите имя целевого объекта и скопируйте ссылку драйвера на вкладке Basic Information.

Компоненты

Table 4 Add-on components

Component

Description

Resource Type

nvidia-driver-installer

Рабочая нагрузка для установки драйвера NVIDIA GPU на узел, использующая ресурсы только во время установки (после установки она больше не использует ресурсы.)

DaemonSet

nvidia-gpu-device-plugin

Плагин устройства Kubernetes, предоставляющий гетерогенные вычисления NVIDIA GPU для контейнеров

DaemonSet

nvidia-operator

Компонент, предоставляющий возможности управления узлами NVIDIA GPU для кластеров

Deployment

Полезные ссылки

  • CCE AI Suite (NVIDIA GPU) предоставляет метрики мониторинга GPU. Подробнее о метриках GPU см. GPU Metrics.