Экземпляры службы графического процессора
Экземпляры службы графического процессора позволяют запустить экземпляр графического процессора, доступный по SSH, за считанные минуты.
Это дает вам среду, подобную виртуальной машине, содержащую одно или несколько устройств, для таких задач, как обучение, вывод, тестирование и тонкая настройка.
Внутри каждый экземпляр службы графического процессора поддерживается подом Kubernetes, поэтому сочетание экземпляров графического процессора и экземпляров только с процессором улучшает использование ресурсов всей машины (виртуальной машины или «голого железа»).
GPUStack управляет несколькими кластерами Kubernetes и предоставляет унифицированный интерфейс для запуска экземпляров службы GPU на любом из них.
Обновление с GPUStack 2.2?
GPUStack 2.3 включает актуальный GPUStack Operator, который сам доводит обновление на месте до завершения: Deployment воркера заменяется без перекрытия старого и нового (Recreate), на запуск воркера отводится 900 секунд, а существующие Helm-релизы отдельных приложений от v0.5.x принимаются под его управление.
После того, как обновленный воркер станет работоспособным, удалите потерянные объекты планирования v0.5.x с помощью сценария очистки оператора:
Если предыдущая попытка обновления уже застряла (CRD Kuueue зависает Terminating, воркер так и не становится готовым), см. устранение неполадок при миграции оператора. Полную процедуру см. в руководстве по миграции оператора.
Предварительные условия
Чтобы использовать экземпляры службы графического процессора, вам необходим хотя бы один кластер Kubernetes.
При первом открытии страницы GPU Service > GPU Instances без добавленного кластера вам будет предложено добавить его.
Нажмите Add a Kubernetes Cluster, чтобы перейти на страницу Resources > Clusters.
Мастер создания кластера проходит через Select Provider (выберите Kubernetes) → Configure → Complete. На шаге Configure заполните кластер Name и необязательный Description, выберите GPU Service Cluster Type, затем нажмите Save.
Предупреждение
Кластер Kubernetes может служить только одной цели — либо Model Service, либо GPU Service.
Дополнительные параметры
При добавлении кластера для GPU Service разверните параметры Advanced, чтобы настроить дополнительные параметры.
Получение типов экземпляров из узлов
Включено по умолчанию. Оператор обнаруживает устройства каждого узла и автоматически определяет соответствующие типы экземпляров — по одному на каждую модель ускорителя плюс тип только для ЦП — с предустановленными значениями ЦП/ОЗУ для каждой единицы продукта. Установите значение Disabled, если вы предпочитаете создавать каждый тип экземпляра самостоятельно; затем оператор прекращает создание типов, а производные типы можно удалить без возможности восстановления.
См. Типы экземпляров службы графического процессора для управления производными типами.
Разрешить смешанные типы экземпляров на узле
Включено по умолчанию. Это позволяет узлу одновременно обслуживать разные типы экземпляров — например, узел графического процессора может размещать как экземпляры графического процессора, так и экземпляры только с процессором. Установите значение Disabled, чтобы назначить каждый узел одному типу экземпляра.
Разрешить доступ к экземплярам службы графического процессора
Обычно все узлы Kubernetes находятся за NAT или брандмауэром, поэтому IP-адреса узлов могут быть недоступны из-за пределов кластера:
В этом случае установите адрес в GPU Service Static Access Address (например, VIP LoadBalancer), чтобы можно было получить доступ к экземплярам службы графического процессора.
Убедитесь, что воркер GPUStack доступен.
Большую часть времени службе GPU требуется (обратный) доступ к кластеру Kubernetes для управления экземплярами — их создания, удаления и мониторинга.
Если сервер GPUStack развернут за пределами кластера Kubernetes, установите proxy_mode=tunnel в Worker Configuration, чтобы включить режим Tunnel GPUStack Worker. Это поддерживает долговременное соединение между рабочим устройством и сервером GPUStack и обеспечивает туннель для службы графического процессора для доступа к кластеру.
Вы можете проверить соединение между сервером GPUStack и воркером на странице Resources > Workers, проверив столбец Status воркера.
Автоматическое обнаружение типов экземпляров
После добавления кластера Kubernetes с поддержкой GPU Service оператор GPUStack автоматически обнаруживает устройства GPU в кластере, собирает их информацию и генерирует соответствующие типы экземпляров для службы GPU.
Для управления типами экземпляров см. Типы экземпляров службы графического процессора. Остальная часть этой страницы посвящена развертыванию экземпляров и управлению ими.
Добавление экземпляра
На странице GPU Service > GPU Instances нажмите Add GPU Instance, чтобы открыть форму создания.
Выбор типа экземпляра
В крайнем левом столбце Instance Types перечислены все типы экземпляров, обнаруженные в кластерах Kubernetes.
На каждой карточке типа экземпляра отображается следующая информация:
- Имя: имя продукта типа экземпляра, например
NVIDIA-H100-80GB-HBM3. Продукты, содержащие специальные символы, очищаются, чтобы быть безопасными для Kubernetes. - Производитель/Поставщик: метка в правом верхнем углу, показывающая производителя или поставщика (например,
NVIDIAилиGENERICтолько для ЦП). - RAM/VRAM/CPU: ОЗУ хоста, объём памяти устройства и ядра ЦП, предоставляемые на единицу этого типа.
- Arch: архитектура ЦП, например
AMD64илиARM64— полезно при выборе совместимого образа. - Макс: максимальное количество устройств, которые вы можете выбрать одновременно. Если Max равно 0, все устройства этого типа экземпляра выделяются, и вы не можете выбрать его, пока некоторые из них не будут освобождены.
- Sliceable: Как можно разделить устройства этого типа — бюджет логического среза (в процентах) и, на устройствах с возможностью разделения, количество оставшихся аппаратных разделов.
Ресурсы единиц типа экземпляра
Ресурсы единицы — это ЦП и ОЗУ хоста, предоставленные для каждой единицы типа — для типа ускорителя — для всего устройства. Типы, полученные из узлов, имеют размеры на основе предустановок для каждого продукта, поддерживаемых оператором (см. справку по ресурсам единиц); затем размер логического среза или физического раздела определяется по заданному размеру по его доле VRAM. Вы также можете создавать свои собственные типы с помощью пользовательских ресурсов единиц.
Выбор целого, фрагментированного или разделенного устройства
Для типа ускорителя панель Configuration предлагает до трех режимов распределения:
- Полный графический процессор — эксклюзивное использование всего устройства.
- По соотношению — логический срез: выберите
VRAM PercentageиCompute Percentage. Устройство остается целым и одновременно обслуживает другие фрагменты, при этом каждый бюджет применяется во время выполнения.
- По профилю — физический раздел устройства с поддержкой MIG: выберите
Partition Profile(например,1g.10gbна H100). Оператор материализует для вас экземпляр MIG. Эта вкладка отображается только в том случае, если на узле кластера включен MIG; включение MIG выполняется администратором для каждого узла, см. Типы экземпляров службы графического процессора.
Тип экземпляра только для ЦП
Чтобы улучшить общее использование ресурсов, служба графического процессора также поддерживает типы экземпляров только для ЦП.
Первоначально оператор GPUStack предоставляет фиксированный профиль для типа экземпляра только для ЦП: 1 CPU + 2 GB RAM. Чтобы настроить его, см. Типы экземпляров службы графического процессора.
Выбор шаблона экземпляра
В среднем столбце Instance Templates перечислены доступные шаблоны, и список обновляется по мере выбора различных типов экземпляров.
Управление шаблонами осуществляется на странице GPU Service > Instance Templates; см. Шаблоны экземпляров службы графического процессора.
Конфигурация экземпляра
Крайняя правая форма Configuration позволяет указать детали нового экземпляра. Он разделен на пять разделов: Basic, Instance Type, Instance Template, Storage и SSH Access.
- Basic: имя экземпляра и отображаемое имя.
- Тип экземпляра: тип экземпляра и режим выделения — всё устройство, логический срез или физический раздел.
- Шаблон экземпляра: шаблон для наследования (изображение, команда, переменные среды и т. д.). Вы по-прежнему можете настроить конфигурацию после выбора шаблона.
- Хранилище: либо
Ephemeralхранилище, либоPersistentхранилище. - Доступ по SSH: Открытые ключи SSH, которые нужно назначить экземпляру, или возможность отключить доступ по SSH.
После заполнения формы нажмите Save, чтобы создать экземпляр.
Просмотр экземпляров
После создания вы возвращаетесь на страницу GPU Service > GPU Instances, где все экземпляры перечислены в таких столбцах, как Name (отображаемое имя, если установлено), Connect, Status, Instance Type, GPU, VRAM, CPU, RAM, Storage, Cluster, Creator, Created и Operations.
Вы можете фильтровать экземпляры по отображаемому имени или имени — любое значение может отображаться в столбце Name. Сортировка порядков столбцов Name по отображаемой метке.
Доступ к экземпляру
В столбце Connect показаны адреса доступа к экземпляру — команда SSH копирования и вставки и/или кликабельные ссылки на веб-страницы — в зависимости от конфигурации порта экземпляра.
Например, вставьте команду SSH в свой терминал, чтобы напрямую подключиться к экземпляру.
Метрики
Столбцы GPU, VRAM, CPU, RAM и Storage показывают текущие показатели использования для каждого работающего экземпляра, обновляемые каждые несколько секунд, пока страница видна. Каждый датчик сообщает об использовании собственного экземпляра в сравнении с его квотой собственного независимо от режима распределения: монопольный экземпляр считывает все устройство, срез считывает свою долю, а физический раздел считывает собственную емкость раздела.
Число, которое невозможно измерить, отображается пустым, а не нулевым — например, раздел MIG сообщает об отсутствии использования ядра графического процессора (драйвер не может его измерить), поэтому его индикатор GPU остается на уровне --, а индикатор VRAM все еще работает.
Цифры взяты из подресурса метрик экземпляра оператора и экспортера узлов; см. Справочник по метрикам экземпляра для каждого поля, его источника и его ограничений.
О датчиках выше
На снимке экрана списка показаны три демонстрационных экземпляра под искусственной нагрузкой: каждый выполнял цикл Python/PyTorch, распределяя оперативную память хоста, а также повторяя умножение матрицы 8192×8192 на своем устройстве (a = a @ a в цикле). Вот почему датчик GPU показывает 100% на эксклюзивном L40S и на H100 с 50%-ным срезом (срез, заполняющий собственный запас вычислений, показывает 100%), и почему датчик GPU экземпляра MIG показывает --, а его CPU показывает 100%.
Редактирование экземпляра
Нажмите Edit на экземпляре, чтобы открыть его конфигурацию.
Большинство полей пока недоступны для редактирования — можно изменить только отображаемое имя и конфигурацию доступа по SSH. Вы можете добавить или удалить открытые ключи SSH или отключить доступ по SSH.
Примечание
В будущем выпуске запланировано дальнейшее редактирование конфигурации экземпляра.
Управление экземпляром
Служба графического процессора обеспечивает несколько операций с экземплярами: просмотр журналов, просмотр событий, останов/запуск и удаление.
Просмотр журналов
Нажмите View Logs, чтобы просмотреть журналы экземпляра. Это удобно для просмотра результатов таких приложений, как Jupyter Notebook или TensorBoard.
Просмотр событий
Нажмите View Events, чтобы просмотреть события экземпляра. Это поможет вам отслеживать изменения статуса — например, экземпляр застрял в Pending, Running или Failed.
Стоп/Пуск/Удалить
Нажмите Stop, чтобы остановить экземпляр, и Start, чтобы запустить его снова. Это полезно для временного освобождения ресурсов и возобновления работы позже.
Предупреждение
Остановка экземпляра освобождает его вычислительные ресурсы, а запуск экземпляра создается заново. Затем экземпляру назначается новый IP-адрес, и все данные в эфемерном хранилище теряются.
Нажмите Delete, чтобы удалить экземпляр и освободить все его ресурсы.















