Старший разработчик в группу GPU-инфраструктуры

Яндекс

Старший разработчик в группу GPU-инфраструктуры

Москва, Центральный административный округ, район Хамовники, квартал Красная Роза

Описание вакансии

Мы развиваем внутреннее контейнерное облако (Runtime Cloud — RTC), в котором запущены все сервисы, создаваемые тысячами разработчиков Яндекса. Наша цель — сделать удобное облако для сервисов различного масштаба, от единиц до десятков тысяч контейнеров в сервисе, и при этом рационально использовать все имеющиеся в нашем распоряжении аппаратные ресурсы. Сейчас под управлением внутреннего облака находится более 100 000 железных серверов, из которых 10 000 — это серверы с GPU. На них заведено более 50 000 сервисов, а счёт контейнеров идёт на миллионы. В нашем облаке живут также InfiniBand-кластеры для распределённого обучения, которые включены в рейтинг суперкомпьютеров TOP500.

Мы не только позволяем настраивать и запускать сервисы, но и даём пользователю всё, что нужно, чтобы их эксплуатировать: настраиваем балансировку, предоставляем мониторинг поднятых сервисов, собираем логи, поддерживаем интеграцию с CI/CD, даём удобные способы ad-hoc- и fleet-wide-профилирования и не только. Мы стремимся сделать из облака единую тесно интегрированную платформу (PaaS), которая обеспечит удобство и надёжность разработки и эксплуатации сервисов, позволив разработчикам использовать как стандартные API/UI-механизмы, так и подход Infrastructure as Code.

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

Группа GPU-инфраструктуры отвечает за разработку сервисов для работоспособности GPU-инфраструктуры всего Яндекса, ML/HPC-компонентов для распределённого инференса и обучения, которые позволяют эффективно использовать современные ускорители и RDMA-сеть. Мы активно участвуем не только в разработке системного ПО и фреймворков распределённых вычислений для тренировки и инференса ML-моделей, но и в дизайне наших RDMA-кластеров, их конфигурировании, мониторинге, оптимизации на протяжении всего жизненного цикла.

Наши внутренние разработки, которыми пользуются тысячи ML-инженеров Яндекса:

  • Оператор для распределения GPU-/RDMA-устройств в контейнеры сервисов инференса и обучений. Сервис умеет работать как во внутреннем облаке Яндекса с контейнерным рантаймом Porto, так и с K8s и рантаймами CRI
  • Механизмы HW-проверок GPU-/RDMA-устройств
  • Fleet-wide GPU-профилировщик для анализа производительности как обучений, так и инференс-сервисов
  • Сервис мониторинга GPU-кластеров внутреннего облака
  • Сервис автоматизированного тестирования GPU-кластеров с помощью наших собственных и известных опенсорс-бенчмарков

Мы активно участвуем в разработке и улучшении опенсорс-решений, которые сами активно используем внутри. Вот список лишь некоторых из них:

  • UCX — фреймворк эффективной коммуникационной P2P поверх InfininiBand, ROCE, TCP/IP, CUDA IPC, GDR и т. д.
  • NCCL и UCC — фреймворки коллективных операций для CPU/GPU-памяти
  • SGLang/vLLM/TRT-LLM — фреймворк для инференса LLM
  • Dynamo — сервис для запуска инференс-фреймворков в disaggregated-режиме
  • PyTorch Kineto — сервис профилирования GPU с помощью CUPTI



Какие задачи вас ждут

Поддерживать и развивать системное программное обеспечение, которое отвечает за конфигурирование, мониторинг, выделение в пользовательские контейнеры GPU- и RDMA-устройств на серверах
Внутреннее облако состоит из серверов с разными моделями GPU- и RDMA-устройств, которые должны быть выделены под заказ сервисов в Porto-контейнере в YP-кластере или в другие CRI-совместимые контейнерные рантаймы в K8s-кластере. Устройства должны быть правильно сконфигурированы, чтобы отвечать пользовательским требованиям, должны доставлять в контейнер необходимые драйверозависимые библиотеки для удобства сервисов. Во время работы в пользовательском контейнере сервисы должны получать метрики об утилизации, вероятных проблемах и так далее. Эти и другие задачи решаются нашим сервисом, который должен работать безотказно и постоянно дорабатываться для решения новых вызовов. К примеру, одной из последних задач была «раскраска» InfiniBand-трафика с помощью eBPF для реализации гарантий.

Поддерживать и развивать fleet-wide GPU-профилирование для всех сервисов Яндекса
Современные серверы, а тем более оснащённые ускорителями и высокоскоростными сетями RDMA, стоят больших денег. Это ставит новые вызовы перед облаками и сервисами, запускаемыми в них, чтобы как можно эффективнее использовать предоставляемое железо. Один из способов оптимизации — это профилирование приложений в то время, когда они запущены в облаке. В нашем облаке реализован и интегрирован профилировщик на основе CUPTI, который позволяет с минимальными накладными расходами профилировать приложения на всём флоте постоянно и тем самым давать сервисам актуальную информацию о проблемах с утилизацией.

Развивать сервисы автоматизированного управления GPU-инфраструктурой
В нашем облаке около 10 000 серверов с GPU, и все они требуют эффективного управления без участия человека: они должны проходить необходимое тестирование GPU-устройств, RDMA-сети и других компонентов перед попаданием в продакшн после ремонта или других регламентных работ. Мы решаем эту задачу, интегрируя и разрабатывая современные бенчмарки, нагрузочные, регрессионные тесты. Новые технологии, которые интегрируются в наше облако, к примеру одна из последних IBGDA, должны быть обязательно покрыты регрессионными тестами. Также наши сервисы выполняют мониторинг состояния флота, чтобы находить серверы с различными проблемами и гарантировать высокую доступность аппаратных ресурсов, сравнимую с уровнем других компаний или превышающую его. Эти и другие методы позволяют нам гарантировать обнаружение проблем на ранних стадиях до того, как на эти серверы заедут сервисы.

Развивать и оптимизировать инфраструктуру распределённого disaggregated-инференса и обучений
Мы считаем, что ML-инженеры должны решать задачи организации обучений и деплоить новые LLM в продакшн. А наше облако предоставляет базовые компоненты для организации эффективного распределённого инференса и обучений, которые доработаны и протестированы с учётом наших особенностей. Мы в нашем облаке участвуем в исследовании, разработке, развитии и эксплуатации cutting-edge-задачи: к примеру, мы предоставляем технологию распределённого disaggregated-инференса, которую любой сервис может развернуть буквально за один клик.

Участвовать в дизайне и внедрении нового оборудования в нашем облаке
Современные облачные решения должны быть эффективными и высокопроизводительными с точки зрения утилизации железа. И этот процесс начинается с дизайна, конфигурирования и надёжных HW-мониторингов железа. Мы внедряем современное аппаратное обеспечение в нашем облаке, дорабатываем все уровни системного ПО — от пользовательских библиотек до контейнерного рантайма и драйверов вендора, чтобы наши пользователи могли использовать новое железо без каких-либо изменений в своих приложениях. Каждый раз перед нами встают всё новые и новые задачи, к примеру внедрение новых RDMA-сетей, новых ускорителей, поддержка ARM.


Мы ждем, что вы

  • Знаете Go, C/C++, Python (не обязательно все сразу)
  • Умеете писать поддерживаемый и эффективный код
  • Хорошо понимаете принципы работы компьютерных сетей, операционных систем, контейнеризации и виртуализации
  • Умеете работать с K8s
  • Интересуетесь R&D-работой и умеете решать нетипичные задачи



Будет плюсом, если вы

  • Знаете Rust
  • Занимались проектами, связанными с распределёнными вычислениями на GPU
  • Разрабатывали или использовали CUDA, OpenCL, SYCL, ROCm или другие рантаймы для параллельных вычислений
  • Разрабатывали или использовали Verbs, UCX, OFI, NCCL, UCC, MPI или другие рантаймы для P2P или коллективных сетевых коммуникаций
  • Разрабатывали или использовали в своей работе инференс-фреймворки: SGLang, vLLM, TRT-LLM, Mooncake, Dynamo и другие
  • Разрабатывали ядро Linux и его модули
  • Знаете устройство аппаратной архитектуры x86, AArch64 и её особенности
Навыки
  • C++
  • Linux
Посмотреть контакты работодателя

Адрес

Похожие вакансии

Хотите оставить вакансию?

Заполните форму и найдите сотрудника всего за несколько минут.
Оставить вакансию