GPU Performance Engineer
ЯндексГибрид
PythonLLMPyTorchMLOpsGPUPerformance OptimizationCUDASystem Programming
Описание
Обязанности
- Повышение эффективности утилизации 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-системами
Условия
- Формат работы: удалённо или гибрид