GPU Performance Engineer
1 нед. назад
РоссияSeniorHybrid
pythonpytorchcudansightnvprofc++distributed trainingmemory access optimization
Роль инженера по производительности GPU в Яндексе с задачами повышения эффективности утилизации GPU-инфраструктуры и оптимизации вычислений.
Обязанности
- Повышение эффективности утилизации GPU
- Формирование гипотез и исследование способов повышения эффективности утилизации GPU, участие в реализации и внедрении наиболее профитных решений
- Формировать рекомендации и лучшие практики по повышению производительности GPU-инфраструктуры
- Поиск узких мест (bottlenecks) в производительности и их устранение с помощью профилировщиков
- Оптимизация доступа к памяти (memory access), ядер (kernels), времени ожидания (latency) и пропускной способности (throughput)
- Создание и улучшение инструментов для быстрого выявления и устранения инфраструктурных проблем, влияющих на эффективность утилизации, стабильность и скорость GPU-вычислений
- Изучение новейших подходов к организации инфраструктуры для обучения и инференса, оценка их эффективности и внедрение в проекты
- Взаимодействие с разработчиками, ML-инженерами и системными архитекторами
- Участие в оценке аппаратных решений и предложении улучшений для будущих поколений GPU
- Разработка планов тестирования, формирование бенчмарков, проведение анализа регрессий производительности
Требования
- Знание Python и опыт системного программирования, разработка библиотек или фреймворков
- Опыт работы с PyTorch и распределённым обучением через torch.distributed
- Применение подходов параллелизации: data parallelism, tensor parallelism, pipeline parallelism, expert parallelism
- Интерес к LLM и MLOps, понимание задач эксплуатации больших моделей в продакшене
- Опыт работы с GPU (NVIDIA) и CUDA, понимание архитектуры GPU
- Разработка или оптимизация алгоритмов под CUDA
- Использование Nsight, nvprof или аналогов
- Оптимизация производительности GPU-приложений и повышение эффективности утилизации GPU
- Анализ профилей и метрик производительности
- Чтение и оптимизация сложного кода
- Умение эффективно работать в команде и делиться знаниями
Будет плюсом
- Уверенное владение C/C++ или аналогичными низкоуровневыми языками
- Опыт работы с библиотеками RL-обучения для LLM: veRL, slime, NeMo-RL, SkyRL
- Опыт работы с библиотеками инференса: vLLM, SGLang и TRTLLM
- Опыт оптимизации под реальные продакшен-нагрузки, работа с low-latency- или real-time-системами
Условия
- Формат работы: удалённо или гибрид
Другое
- Взаимодействие с ML-инженерами и системными архитекторами
- Участие в реализации и интеграции решений для повышения производительности GPU