Должность: Инженер-программист по разработке драйверов ядра
Местоположение: Сан-Хосе / На месте
Вознаграждение: 150 000–350 000 долларов США в год
О Etched
Etched разрабатывает аппаратное обеспечение для передовых систем искусственного интеллекта. Мы совместно разрабатываем чипы, стойки, программное обеспечение и производственные процессы, чтобы обеспечить лучшую в своем классе пропускную способность и задержку как для рабочих нагрузок предварительной выборки, так и для рабочих нагрузок декодирования. Наши первые продукты в значительной степени ориентированы на инференс. Поддерживаемая сотнями миллионов долларов от ведущих инвесторов и укомплектованная ведущими инженерами, Etched переопределяет инфраструктурный уровень для самой быстрорастущей отрасли в истории.
Ключевые обязанности
- Проектирование, разработка и поддержка драйверов режима ядра, обеспечивающих высокую надежность, информативную отладку и оптимальную производительность.
- Анализ и оптимизация производительности драйверов для требовательных рабочих нагрузок ИИ с упором на минимизацию задержки и максимизацию пропускной способности.
- Тесное сотрудничество с инженерами-аппаратчиками на протяжении всего процесса проектирования ASIC.
- Реализация поддержки драйверов для технологий виртуализации устройств, включая SR-IOV, VFIO и паравиртуализацию.
- Реализация эффективных стратегий управления памятью с учетом отображения памяти ядра, настройки таблиц страниц, осведомленности NUMA для кеширования данных устройства и настройки IOMMU.
- Создание драйверов ядра, принципиально разработанных для обеспечения и поддержания безопасности процессов хоста, пространств физической памяти и аттестации устройств.
- Диагностика и устранение сложных проблем, связанных с драйверами, с использованием общих инструментов и методов отладки ядра (ftrace, dmesg и т. д.) для выявления и исправления ошибок.
- Проектирование и реализация механизмов синхронизации для обработки одновременного доступа к нескольким ускорителям.
- Разработка и выполнение комплексных планов тестирования для проверки функциональности, стабильности и производительности драйверов в производственных и общих производственных средах.
- Сотрудничество с командами разработчиков программного и аппаратного обеспечения для диагностики и устранения сложных проблем на системном уровне.
Типичные проекты
- Разработка и оптимизация драйверов режима ядра для новых ускорителей машинного обучения.
- Реализация и оптимизация управления памятью, включая отображение памяти ядра и конфигурации IOMMU, для передачи данных с высокой пропускной способностью.
- Отладка и устранение сложных проблем, связанных с драйверами, влияющих на производительность рабочих нагрузок машинного обучения.
- Разработка эталонных тестов производительности и инструментов профилирования для анализа производительности драйверов.
- Интеграция поддержки драйверов для расширенных функций, таких как аппаратная виртуализация и безопасность, включая SR-IOV и VFIO.
- Оптимизация связи PCIe между хостом и устройствами PCIe с использованием передового оборудования, такого как анализаторы PCIe.
- Реализация и отладка функций управления питанием для устройств PCIe.
- Интеграция ускорителей машинного обучения в контейнеризованные и виртуализированные среды.
- Реализация и оптимизация методов паравиртуализации для устройств PCIe.
- Настройка и оптимизация таблиц страниц для эффективного доступа к памяти с ускорителя машинного обучения.
- Участие в совместных обзорах проектирования аппаратного и программного обеспечения между командами для оптимизации производительности и энергоэффективности.
Вы можете подойти, если у вас есть:
- Владение C/C++.
- Глубокое понимание разработки и отладки драйверов режима ядра.
- Глубокое понимание внутренних компонентов операционных систем (предпочтительно Linux).
- Опыт работы с аппаратным/программным интерфейсом и драйверами устройств.
- Опыт работы с управлением памятью и синхронизацией в средах ядра.
- Глубокое понимание PCIe и других аппаратных интерфейсов.
- Опыт работы с технологиями виртуализации устройств, включая SR-IOV и VFIO.
- Глубокое понимание отображения памяти ядра, настройки таблиц страниц и IOMMU.
- Знакомство с принципами совместного проектирования аппаратного и программного обеспечения.
- Доказанная способность анализировать сложные технические проблемы и предлагать эффективные решения.
- Отличные навыки общения и сотрудничества.
- Опыт работы с системами контроля версий (например, Git).
- Опыт работы с инструментами отладки (например, gdb, kgdb).
Сильные кандидаты также могут иметь опыт работы (квалификация, желательная, но не обязательная):
- Кандидаты с опытом разработки и отладки драйверов режима ядра для GPU или других ускорителей.
- Кандидаты с глубоким пониманием взаимодействия аппаратного и программного обеспечения.
- Кандидаты с опытом оптимизации производительности драйверов для требовательных рабочих нагрузок.
- Кандидаты с опытом работы с рабочими нагрузками машинного обучения.
- Кандидаты, которые отлаживали сложные аппаратные и программные взаимодействия, особенно в виртуализированных средах.
- Кандидаты с опытом реализации и оптимизации SR-IOV и VFIO.
- Кандидаты с глубокими знаниями отображения памяти ядра, таблиц страниц и IOMMU.
- Кандидаты с опытом работы в проектах совместного проектирования аппаратного и программного обеспечения.
- Опыт разработки драйверов GPU.
- Опыт работы с CUDA, OpenCL или другими моделями программирования GPU.
- Опыт работы с инструментами профилирования и бенчмаркинга производительности (perf, VTune).
- Знание методов аппаратной виртуализации, включая паравиртуализацию.
- Опыт работы с конвейерами CI/CD.
- Опыт работы с Rust.
- Опыт работы с фреймворками машинного обучения, такими как TensorFlow или PyTorch.
- Опыт работы с технологиями оркестрации дата-центров (Kubernetes, Docker).
Преимущества
- Медицинские, стоматологические и офтальмологические пакеты с щедрым покрытием премий
- Кредит в размере 500 долларов США в месяц за отказ от медицинских льгот
- Субсидия на жилье в размере 2500 долларов США в месяц для тех, кто живет в шаговой доступности от офиса
- Помощь с переездом для тех, кто переезжает в Сан-Хосе (Santana Row)
- Различные оздоровительные льготы, охватывающие фитнес, психическое здоровье и многое другое
- Ежедневный обед + ужин в нашем офисе
- Неограниченный бюджет вычислительных ресурсов при условии обоснования рентабельности инвестиций
Чем мы отличаемся
Etched верит в "горький урок" (Bitter Lesson). Мы — первая система передового ИИ, ориентированная на инференс. Наш целевой рынок — это весь инференс, в отличие от многих наших конкурентов.
Мы полностью очная команда в Сан-Хосе (Santana Row) и высоко ценим инженерные навыки. У нас нет границ между инжинирингом и исследованиями, и мы ожидаем, что весь наш технический персонал будет участвовать в обоих и при необходимости работать над различными дисциплинами.