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