TGStat
TGStat
Введите текст для поиска
Расширенный поиск каналов
  • Язык сайта
    flag Russian flag English flag Uzbek
  • Вход на сайт
  • Каталог
    Каталог каналов и чатов Региональные подборки Тематические подборки Платные каналы Поиск каналов
    Добавить канал/чат
  • Рейтинги
    Рейтинг каналов Рейтинг чатов Рейтинг публикаций
    Рейтинги брендов и персон
  • Аналитика
  • Поиск по публикациям
  • Мониторинг Telegram
  • Продвижение
    Реклама через Яндекс Бизнес Реклама в каналах через TGStat Agency Реклама на сайте TGStat.ru
Anton Alekseev | Инфраструктура для AI и ML

11 Jun, 13:12

Открыть в Telegram Поделиться Пожаловаться

GPU-шеринг как у Яндекса, но на open source: Kueue

Яндекс недавно рассказал про Dev Cluster, и также в каналах подозрительно много выложили постов про это (например раз и два) — самописную систему шеринга GPU между ML-инженерами: бери карту, когда нужна, отдавай, когда нет, простаивающее железо достаётся другим. Решение классное, разработчики большие молодцы - но хотелось бы и у себя потрогать это руками, а не только позавидовать и восхититься.

Похожий механизм мы собрали в Kubeflow на ванильном Kubernetes + Kueue. Вот из каких сущностей это состоит:

ResourceFlavor — типы железа. Каждый flavor привязан к нодам через nodeLabels/tolerations: standart (CPU), a100-80g, a100-40g, h100, hgx-h100, плюс MIG-слайсы (`a100-80-10/20/40gb`, `h100-10/20/40gb`) — одна A100/H100 нарезается на куски, и слайс тоже квотируемый ресурс.

Cohort (иерархические) — основа шеринга. Корневой кохорт root, под ним кохорт каждой команды. Гарантии команды (nominalQuota) объявлены на её кохорте, и через общего родителя команды могут занимать (borrow) простаивающие ресурсы друг друга.

ClusterQueue — на команду генерим две очереди:

• regular — нулевая собственная квота, живёт заимствованием из кохорта. Может брать чужой простой сверх гарантий команды;
• prod — гарантированный кусок (`prodResources`), borrowWithinCohort: Never — ничего не занимает, зато reclaimWithinCohort: Any — мгновенно вытесняет чужие borrowed-джобы, когда ресурс нужен проду.

Это и есть аналог «отдавай, когда владелец вернулся»: исследовательская джоба бежит на чужих простаивающих GPU, но при появлении prod-нагрузки владельца её вытеснят и поставят обратно в очередь.

WorkloadPriorityClass (`prod-workload`, value 1000) — приоритет вытеснения внутри очереди: withinClusterQueue: LowerPriority.

LocalQueue — точка входа для пользователей: в каждом team/user namespace автоматически создаются default и prod (через namespace-configuration-operator), пользователь просто указывает имя очереди в джобе.

Topology (TAS) — topology-aware scheduling: обычные флейворы паком по zone/hostname, а для HGX H100 — по InfiniBand scalable unit, чтобы multi-node training не размазывало по фабрике.

Итого: гарантии командам + утилизация простоя + честное вытеснение — без собственного шедулера, декларативно, в GitOps на MAU 1000 клиентов.
Как мы с помощью Dev Cluster шерим GPU между ML-специалистами
Рассказываем о Dev Cluster — новом инструменте, с помощью которого можно удобно распределять ресурс GPU между ML-инженерами Яндекса.

1k 0 33 6 11
Каталог
Каталог каналов и чатов Подборки каналов Поиск каналов Добавить канал/чат
Рейтинги
Рейтинг каналов Telegram Рейтинг чатов Telegram Рейтинг публикаций Рейтинги брендов и персон
API
API статистики API поиска публикаций API Callback
Наши каналы
@TGStat @TGStat_Chat @telepulse @TGStatAPI
Почитать
Академия TGStat Исследование Telegram 2019 Исследование Telegram 2021 Исследование Telegram 2023
Контакты
Справочный центр Поддержка Почта Вакансии
Всякая всячина
Пользовательское соглашение Политика конфиденциальности Публичная оферта
Наши боты
@TGStat_Bot @SearcheeBot @TGAlertsBot @tg_analytics_bot @TGStatChatBot