Инженер-программист — Вычислительные ядра и производительность
Компания: Arago
Местоположение: Офис в Париже / На территории работодателя
ПОЗНАКОМЬТЕСЬ С ARAGO И ARAGONIANS
Arago — компания, занимающаяся разработкой ИИ и компьютерного оборудования, миссия которой — ускорять ход истории. Мы достигаем этого, ускоряя прорывы на стыке ИИ и полупроводников.
Основанная в 2024 году исследователями в области ИИ и физиками, обладающими глубокими знаниями в фотонике, электронике, программном обеспечении, математике и машинном обучении, Arago объединяет компактную команду инженеров и ученых из ведущих мировых компаний и исследовательских лабораторий.
Состоящая из представителей девяти национальностей и работающая в хабах во Франции, Северной Америке и Израиле, мы верим в великую науку и быстрые достижения. Нашу работу направляют следующие основные принципы:
- Делать великие дела: мы создаем работу, которую гордимся подписать своим именем.
- Высокая скорость: скорость имеет значение. Мы движемся быстро, шаг за шагом.
- Единая команда: мы все вместе, наши отношения основаны на доверии, уважении и товариществе.
Arago поддерживается руководителями из Apple, Arm, Nvidia, Microsoft и Hugging Face, а также видными американскими и европейскими венчурными фирмами в области глубоких технологий и основателями успешно завершенных проектов.
ЧТО ВЫ БУДЕТЕ ДЕЛАТЬ
В качестве инженера-программиста по производительности вы будете играть ключевую роль в создании основного вычислительного программного обеспечения, работающего на пользовательских ускорителях ИИ Arago. Ваша работа будет служить мостом между хост-системами и проприетарным оборудованием, охватывая все: от пользовательских встроенных ядер до сложного инструментария, необходимого для отладки в реальном времени. Вы будете ключевым игроком во внедрении чипов и долгосрочной разработке высокопроизводительных вычислительных примитивов и ядер, обеспечивая максимальную эффективность и детерминированную производительность нашей архитектуры.
ТРЕБУЕМЫЕ НАВЫКИ И ОПЫТ
- Степень бакалавра, магистра или доктора наук в области компьютерных наук, компьютерной инженерии или смежной области.
- Опыт низкоуровневого системного программирования с использованием C/C++ и ассемблера, с отличным пониманием того, как скомпилированное программное обеспечение соотносится с машинными инструкциями и поведением оборудования.
- Глубокое знакомство с разработкой bare-metal, включая код инициализации, компоновочные скрипты (linker scripts), организацию памяти (memory layout), MMIO, прерывания/исключения, таймеры, синхронизацию и прямой доступ к периферии.
- Глубокое понимание архитектуры компьютера, включая конвейеры, кэши, иерархии памяти, виртуальную/физическую адресацию, атомарные операции, DMA и влияние различных паттернов доступа на производительность.
- Практический опыт работы с архитектурами RISC-V и/или ARM, наборами инструкций, соглашениями о вызовах (calling conventions), концепциями ABI и специфичными для архитектуры встраиваемыми функциями (intrinsics).
- Опыт отладки взаимодействия оборудования и программного обеспечения с использованием таких инструментов, как GDB, JTAG, интерфейсы трассировки/отладки, симуляторы, эмуляторы или платформы FPGA.
- Способность читать спецификации оборудования, описания регистров и документацию на уровне RTL и преобразовывать их в надежные программные реализации.
- Навыки сильного анализа и оптимизации производительности, включая профилирование, анализ дизассемблированного кода, понимание поведения оптимизации компилятора и ручную настройку ассемблера, где это уместно.
- Язык: Английский на высоком уровне. Французский — плюс.
ОБЯЗАННОСТИ
- Разработка и оптимизация низкоуровневых программных примитивов на C/C++, ассемблере и специфичных для архитектуры встраиваемых функциях (intrinsics), в первую очередь для платформ RISC-V и ARM.
- Реализация критичных к производительности ядер, компонентов среды выполнения, слоев аппаратных абстракций, драйверов и прошивок, работающих в режиме bare-metal или в строго ограниченных средах.
- Тесное сотрудничество с архитекторами оборудования и командами RTL/дизайна для определения и проверки интерфейсов аппаратного и программного обеспечения, карт памяти, интерфейсов регистров, механизмов прерываний, синхронизации и потоков загрузки.
- Анализ и оптимизация программного обеспечения по показателям задержки, пропускной способности, использования памяти, количества инструкций и эффективного использования функций процессора и ускорителя.
- Ввод в эксплуатацию и отладка программного обеспечения на платформах симуляции, эмуляции, FPGA и кремниевых платформах, включая решение низкоуровневых проблем интеграции аппаратного и программного обеспечения.
- Разработка тестовых, эталонных (benchmark) и диагностических инструментов для новой процессорной, DSP, ускорительной и SoC функциональности.
- Вклад в принятие архитектурных решений, касающихся расширений ISA, встраиваемых функций компилятора (compiler intrinsics), иерархии памяти, DMA, поведения кэша/когерентности и видимых для программного обеспечения аппаратных функций.
ЗАРАБОТНАЯ ПЛАТА И ЛЬГОТЫ
- Конкурентоспособная денежная компенсация, окончательный пакет зависит от местоположения, опыта и зарплаты членов команды на аналогичных должностях.
- Значительный пакет опционов на акции, предлагаемый на самой ранней стадии компании (включен в большинство предложений для штатных сотрудников).
- Бонус на переезд и покрытие расходов на переезд для сотрудников, переезжающих в пределах 20 минут от местоположения компании.
- Медицинская страховка (включая варианты для семей), пенсионные взносы, поддержка профессионального развития и 25 дней оплачиваемого отпуска (PTO) в дополнение к государственным праздникам.
- Владение ключевой технической областью со значительными возможностями вертикального и/или горизонтального роста, основанными на производительности и индивидуальном стремлении.
- Компенсация 50% стоимости подписки на общественный транспорт.
- Динамичная, мультикультурная (с участием 10 национальностей) среда, ориентированная на инженерию.
НАШ ПРОЦЕСС НАЙМА: ВАШ ПУТЬ В ARAGO
- Отборочное собеседование: Знакомство с вами помимо вашего резюме.
- Техническая встреча: Глубокое погружение в ваши прошлые проекты и технические достижения.
- Собеседование с CEO: Оценка соответствия культуре команды и долгосрочному видению.
- Рекомендательные звонки: Обязательные звонки вашим бывшим руководителям для подтверждения сильных и слабых сторон, а также стиля работы.
- Техническое задание: Практическое домашнее задание, разработанное для конкретной вакансии.
- Финальное собеседование: Обсуждение вашего технического задания и ответы на любые оставшиеся вопросы от членов команды.