Разработчик GPU-инфраструктуры
Яндекс ищет разработчика для работы над внутренним контейнерным облаком и GPU-инфраструктурой. Вы будете развивать системное ПО для управления GPU/RDMA-устройствами, профилирования и мониторинга, а также участвовать в дизайне и внедрении нового оборудования. Требуется знание Go, C/C++ или Python, опыт с K8s и интерес к распределённым вычислениям.
Зарплата не указана — оценили по рынку
На основе 12 похожих вакансий за 90 дней.
Что предстоит делать
Мы развиваем внутреннее контейнерное облако (Runtime Cloud — RTC), в котором запущены все сервисы, создаваемые тысячами разработчиков Яндекса. Наша цель — сделать удобное облако для сервисов различного масштаба, от единиц до десятков тысяч контейнеров в сервисе, и при этом рационально использовать все имеющиеся в нашем распоряжении аппаратные ресурсы. Сейчас под управлением внутреннего облака находится более 100 000 железных серверов. На них заведено более 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-инфраструктурой В нашем облаке много серверов с GPU, и все они требуют эффективного управления без участия человека: они должны проходить необходимое тестирование GPU-устройств, RDMA-сети и других компонентов перед попаданием в продакшн после ремонта или других регламентных работ. Мы решаем эту задачу, интегрируя и разрабатывая современные бенчмарки, нагрузочные, регрессионные тесты. Новые технологии, которые интегрируются в наше облако, к примеру одна из последних IBGDA, должны быть обязательно покрыты регрессионными тестами. Также наши сервисы выполняют мониторинг состояния флота, чтобы находить серверы с различными проблемами и гарантировать высокую доступность аппаратных ресурсов, сравнимую с уровнем других компаний или превышающую его. Эти и другие методы позволяют нам гарантировать обнаружение проблем на ранних стадиях до того, как на эти серверы заедут сервисы. Развивать и оптимизировать инфраструктуру распределённого disaggregated-инференса и обучений Мы считаем, что ML-инженеры должны решать задачи организации обучений и деплоить новые LLM в продакшн. А наше облако предоставляет базовые компоненты для организации эффективного распределённого инференса и обучений, которые доработаны и протестированы с учётом наших особенностей. Мы в нашем облаке участвуем в исследовании, разработке, развитии и эксплуатации cutting-edge-задачи: к примеру, мы предоставляем технологию распределённого disaggregated-инференса, которую любой сервис может развернуть буквально за один клик. Участвовать в дизайне и внедрении нового оборудования в нашем облаке Современные облачные решения должны быть эффективными и высокопроизводительными с точки зрения утилизации железа. И этот процесс начинается с дизайна, конфигурирования и надёжных HW-мониторингов железа. Мы внедряем современное аппаратное обеспечение в нашем облаке, дорабатываем все уровни системного ПО — от пользовательских библиотек до контейнерного рантайма и драйверов вендора, чтобы наши пользователи могли использовать новое железо без каких-либо изменений в своих приложениях. Каждый раз перед нами встают всё новые и новые задачи, к примеру внедрение новых RDMA-сетей, новых ускорителей, поддержка ARM. Мы ждем, что вы • Знаете Go, C/C++, Python (не обязательно все сразу) • Умеете писать поддерживаемый и эффективный код • Хорошо понимаете принципы работы компьютерных сетей, операционных систем, контейнеризации и виртуализации • Умеете работать с K8s • Интересуетесь R&D-работой и умеете решать нетипичные задачи Будет плюсом, если вы • Занимались проектами, связанными с распределёнными вычислениями на GPU • Разрабатывали или использовали CUDA, OpenCL, SYCL, ROCm или другие рантаймы для параллельных вычислений • Разрабатывали или использовали Verbs, UCX, OFI, NCCL, UCC, MPI или другие рантаймы для P2P или коллективных сетевых коммуникаций • Разрабатывали или использовали в своей работе инференс-фреймворки: SGLang, vLLM, TRT-LLM, Mooncake, Dynamo и другие • Разрабатывали ядро Linux и его модули • Знаете устройство аппаратной архитектуры x86, AArch64 и её особенности
Стек и инструменты
Подходит ли вам эта вакансия?
Зарегистрируйтесь и загрузите резюме — посчитаем % совпадения с этой вакансией, подсветим сильные стороны и что стоит подтянуть
Ещё в Яндекс
27 активных вакансий в компании
Наставник по Android-разработке
~1 790 100 ₸ оценка
Яндекс Практикум ищет опытного Android-разработчика для роли наставника. Нужно помогать студентам с вопросами, проводить вебинары и улучшать курс. Требуется от 3 лет опыта и умение понятно объяснять. Работа удаленная, частичная занятость.
Наставник в Яндекс Практикум (Full-stack разработчик)
~1 657 500 – 2 154 750 ₸ оценка
Яндекс Практикум ищет наставника для студентов курса по full-stack разработке. Нужно помогать с вопросами, проводить вебинары и давать обратную связь. Требуется коммерческий опыт с Next.js, TypeScript, React, AI-инструментами и деплоем на VPS. Работа удаленная, 2-3 часа в день, с возможностью совмещения с основной работой.
Backend-разработчик (C++) в сервис недвижимости Поиска Яндекса
~1 326 000 ₸ оценка
Яндекс ищет опытного бэкенд-разработчика для создания сервиса недвижимости внутри Поиска. Нужно разрабатывать высоконагруженные компоненты, проектировать масштабируемую архитектуру и интегрировать ML-модели. Ключевое требование — отличное владение C++ или готовность на него перейти.
Backend-разработчик (C++) в сервис недвижимости Поиска Яндекса
Яндекс ищет опытного бэкенд-разработчика для создания сервиса недвижимости внутри Поиска. Нужно разрабатывать высоконагруженные компоненты, проектировать масштабируемую архитектуру и интегрировать ML-модели. Ключевое требование — отличное владение C++ или готовность на него перейти.
Похожие вакансии
6 вакансий
Senior Go разработчик
~1 657 500 – 2 320 500 ₸ оценка
Ищем опытного Go-разработчика для создания и улучшения средств интеграции продукта Application Inspector. Нужно разрабатывать новый функционал, принимать архитектурные решения, проводить код-ревью и менторить коллег. Предлагают гибкий график, обучение, ДМС и компенсацию спорта.
Senior Go разработчик
~1 657 500 – 2 320 500 ₸ оценка
Ищем Senior Go-разработчика для создания высоконагруженных backend-сервисов в сфере игорного бизнеса. Требуется опыт от 4-5 лет, уверенное владение Go, микросервисами и PostgreSQL/MySQL. Предлагается удаленная работа, 25 дней отпуска и поддержка профессионального роста.
Go-разработчик видеосервиса
~1 657 500 – 2 320 500 ₸ оценка
VK ищет опытного Go-разработчика для развития видеосервиса и интеграции видеотехнологий в другие продукты. Требуется от 5 лет коммерческой разработки на Go, опыт работы с highload и микросервисами. Предлагается работа над масштабной платформой с миллиардами просмотров.
Главный Golang разработчик
~1 657 500 – 2 320 500 ₸ оценка
Ищем опытного Go-разработчика для создания финансовых сервисов в экосистеме Магнит. Требуется от 3 лет коммерческой разработки на Go и от 5 лет backend-опыта. Предлагаем работу в динамичной команде с короткими циклами и быстрыми релизами.
Backend-разработчик (Go)
~1 657 500 – 2 320 500 ₸ оценка
Ищем опытного backend-разработчика для развития высоконагруженных сервисов управления товарами и поиском. Стек: Go, PostgreSQL, Kafka, ElasticSearch. Требуется опыт от 3 лет, готовность изучать Go и глубокое знание реляционных БД. Предлагаем работу над ключевыми функциями платформы для продавцов и поисковыми системами.
Ведущий разработчик Golang
~1 657 500 – 2 320 500 ₸ оценка
Beeline Cloud ищет ведущего разработчика Golang для создания backend личного кабинета облачной платформы. Вы будете проектировать микросервисы, участвовать в код-ревью и улучшать процессы. Требуется опыт от 5 лет в продуктовой разработке и от 3 лет с Go. Компания предлагает сильную инженерную среду, ДМС и возможности для роста.