AMD
Software Development Engineer - C++, Networking
Автоматический пересказ вакансии на русском. Полный текст на языке оригинала и форма отклика — на сайте работодателя.
Ведущая техническая роль (Principal Member of Technical Staff) в AMD: сквозная разработка и сопровождение scale-up сетевого и GPU-стека для платформ AMD Instinct. Архитектура коммутационных фабрик, прошивок GPU, драйверов ядра Linux и стека ROCm для rack-scale AI-систем.
Задачи
- Определять и вести архитектуру ПО для scale-up коммутационных фабрик, соединяющих GPU AMD Instinct в rack-scale системе, включая Ethernet-фабрики и стандарты UALink и Ultra Ethernet
- Руководить интеграцией коммутационного ПО (SONiC, SAI, switch SDK): bring-up линков, настройка SerDes/retimer, характеризация FEC/BER, обнаружение топологии, маршрутизация, управление перегрузками и телеметрия
- Проектировать и разрабатывать компоненты прошивки GPU (управление системой, питание/термика, безопасность, RAS, управление fabric/link), упаковку и обновление прошивок (PLDM/Redfish), интеграцию с BMC
- Руководить разработкой и оптимизацией драйверов ядра Linux для GPU Instinct (amdgpu/KFD): управление памятью, GPU-to-GPU обмен по scale-up фабрике, партиционирование, виртуализация, обработка ошибок и восстановление
- Обеспечивать работу и производительность стека ROCm на scale-up системах: runtime, коммуникационные библиотеки (RCCL), интеграция с PyTorch, JAX и inference-движками (vLLM, SGLang)
- Отвечать за bring-up новых платформ от pre-silicon (эмуляция/симуляция) до первого кремния, системной интеграции и производственной квалификации
- Вести кросс-слойную отладку и root-cause анализ сложных проблем на уровнях кремния, прошивки, драйвера, фабрики и приложения
- Определять цели по производительности, надёжности и масштабируемости для коллективных коммуникаций и multi-GPU нагрузок и вести необходимые оптимизации
- Взаимодействовать с архитекторами кремния, hardware, switch, cloud/OEM партнёрами и заказчиками, влиять на роадмапы и стратегические технические решения
- Менторить инженеров, задавать техническое направление и лучшие практики, координировать работу глобально распределённых команд
Требования
- Обширный опыт разработки системного ПО для GPU, ускорителей, NIC или сетевых коммутаторов
- Сильный опыт в сетях ЦОД: Ethernet (L1–L3), высокоскоростные SerDes, FEC, RDMA/RoCE, управление перегрузками, программирование switch ASIC (Broadcom SDK, SAI, SONiC)
- Знакомство с scale-up интерконнектами и фабриками: UALink, Ultra Ethernet, AMD Infinity Fabric, NVLink или аналогичными
- Практический опыт разработки прошивок для SoC или ускорителей: embedded C/C++, boot-процессы, управление питанием, безопасность, BMC/out-of-band управление (Redfish, PLDM, MCTP)
- Сильный опыт разработки драйверов и ядра Linux (PCIe, DMA, IOMMU, управление памятью, обработка прерываний)
- Знание архитектуры GPU и GPU-стеков (ROCm/HIP, CUDA или аналоги), библиотек коллективных коммуникаций (RCCL/NCCL, MPI)
- Знакомство с фреймворками глубокого обучения (PyTorch, JAX, TensorFlow) и распределённым обучением/инференсом в масштабе
- Подтверждённый опыт bring-up новых аппаратных платформ и отладки сложных взаимодействий hardware/software с JTAG, протокольными и логическими анализаторами
- Владение C/C++ и Python; опыт с Go или Rust — плюс
- Опыт задания технического направления и влияния на несколько команд и организаций
- Отличные коммуникативные и лидерские навыки
- Степень бакалавра или магистра в Computer Science, Computer Engineering, Electrical Engineering или смежной области; PhD — плюс
Условия
- Позиция не предполагает визового спонсорства
- Предоставляются льготы AMD (описаны на странице benefits)
Навыки
- C++
- C
- Python
- Go
- Rust
- Linux
- Linux kernel
- PCIe
- DMA
- IOMMU
- Ethernet
- SerDes
- FEC
- RDMA
- RoCE
- SONiC
- SAI
- Broadcom SDK
- UALink
- Ultra Ethernet
- Infinity Fabric
- NVLink
- Redfish
- PLDM
- MCTP
- BMC
- ROCm
- HIP
- CUDA
- RCCL
- NCCL
- MPI
- PyTorch
- JAX
- TensorFlow
- vLLM
- SGLang
- JTAG