Обязанности:
Поддерживать и развивать системное программное обеспечение, которое отвечает за конфигурирование, мониторинг, выделение в пользовательские контейнеры GPU- и RDMA-устройств на серверахВнутреннее облако состоит из серверов с разными моделями GPU- и RDMA-устройств, которые должны быть выделены под заказ сервисов в Porto-контейнере в YP-кластере или в другие CRI-совместимые контейнерные рантаймы в K8s-кластере. Устройства должны быть правильно сконфигурированы, чтобы отвечать пользовательским требованиям, должны доставлять в контейнер необходимые драйверозависимые библиотеки для удобства сервисов. Во время работы в пользовательском контейнере сервисы должны получать метрики об утилизации, вероятных проблемах и так далее. Эти и другие задачи решаются нашим сервисом, который должен работать безотказно и постоянно дорабатываться для решения новых вызовов. К примеру, одной из последних задач была «раскраска» InfiniBand-трафика с помощью eBPF для реализации гарантий. Поддерживать и развивать fleet-wide GPU-профилирование для всех сервисов Яндекса
Современные серверы, а тем более оснащённые ускорителями и высокоскоростными сетями RDMA, стоят больших денег. Это ставит новые вызовы перед облаками и сервисами, запускаемыми в них, чтобы как можно эффективнее использовать предоставляемое железо. Один из способов оптимизации — это профилирование приложений в то время, когда они запущены в облаке. В нашем облаке реализован и интегрирован профилировщик на основе CUPTI, который позволяет с минимальными накладными расходами профилировать приложения на всём флоте постоянно и тем самым давать сервисам актуальную информацию о проблемах с утилизацией. Развивать сервисы автоматизированного управления GPU-инфраструктурой
В нашем облаке много серверов с 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 и её особенности
