General Motors
Саннивейл, Соединенные Штаты
153 200 – 234 100 USD
в год
Описание вакансии Обзор роли В качестве старшего инженера-программиста в команде Rendering Infrastructure вы будете создавать системы, которые превратят симулятор датчиков на основе физического моделирования с ускорением GPU в производственную платформу — платформу, которая работает воспроизводимо, в масштабе кластера и с использованием интерфейсов автономных транспортных средств, репрезентативных для производства. Это системная роль на стыке рендеринга, симуляции, восприятия и распределенной инфраструктуры. Вы будете подключать рендерер к программным стекам AV и вычислительным кластерам, воспроизводить реальное расписание датчиков и тайминги автомобиля, запускать множество миров параллельно на одном GPU и делать так, чтобы время выполнения запускалось быстро и оставалось дешевым на тысячах рабочих узлов. Ваша работа определяет, является ли замкнутая симуляция — программное обеспечение автомобиля в цикле с рендерером, а не просто автономная генерация синтетических данных — надежной и доступной: воспроизводится ли прогон, поступают ли синтетические потоки датчиков с теми же особенностями тайминга, что и реальный автомобиль, и сколько сценариев мы можем выполнить за GPU-час. Мы создаем на современном C++ и Python под Linux, с использованием ROS, PyTorch, CUDA, NVIDIA OptiX, NVIDIA MDL и OpenUSD. Мы ищем человека, которому нравится этот уровень — отладка недетерминированности на границе процессов, сокращение времени холодного старта путем изменения упаковки среды выполнения и рассуждение о памяти GPU и IPC в одном разговоре. О команде Команда Rendering Infrastructure владеет фундаментальными системами, на которых работает более широкая команда Rendering: прием ассетов и сцен, управление памятью и ресурсами GPU, построение структур ускорения, упаковка и развертывание, инфраструктура профилирования и основные абстракции ядра нашей системы симуляции датчиков на основе физического моделирования. Мы также отвечаем за то, как рендерер подключается к стеку AV и симулятору мира, в качестве библиотеки или службы, и как потребители его настраивают — что он производит, с какой точностью и как он ведет себя, когда что-то идет не так. Мы находимся между командой алгоритмов рендеринга и всеми, кто потребляет данные симулированных датчиков — обучение восприятию, замкнутая валидация и обучение с подкреплением. Мы заботимся о детерминизме, пропускной способности на GPU, скорости итераций и инфраструктуре, которая остается понятной по мере масштабирования. Почему стоит присоединиться к нам? Работайте над сложными системными задачами с необычайно четким определением успеха — воспроизводимость, точность таймингов, кадры в секунду на GPU и время запуска рабочего процесса — все это измеримо, и все это имеет значение. Возьмите на себя значительную часть ответственности: интеграция стека AV и транспортного уровня, модель расписания и тайминга датчиков, рендеринг нескольких миров на одном GPU или путь развертывания среды выполнения и доставки ассетов, в зависимости от ваших сильных сторон. Находитесь в центре стека симуляции, где встречаются рендеринг, восприятие и инфраструктура, и наблюдайте, как ваша работа используется по всей организации для обучения восприятию, замкнутой симуляции и обучения с подкреплением. Присоединяйтесь к команде, которая сочетает строгость — проектные документы, воспроизводимость, профилирование и регрессионное тестирование — с прагматичной инженерией и короткими циклами обратной связи. Что вы будете делать Вы будете отвечать за одну или несколько из следующих областей и вносить свой вклад в другие, в зависимости от ваших сильных сторон и приоритетов команды. Подключайте рендерер к программным стекам AV и вычислительным кластерам — проектируйте низколатентный, высокопроизводительный транспорт с использованием ROS/ROS 2, IPC на общей памяти, gRPC и сокетов с соответствующими форматами сериализации, и передавайте многосенсорные полезные нагрузки в стек автономных транспортных средств. Интегрируйте рендерер с моделями обучения вождению через API среды в стиле Gymnasium — шагайте симуляцию из Python, эффективно обмениваясь наблюдениями и действиями с моделями на основе PyTorch, и сохраняя детерминированное выполнение, минимизируя накладные расходы на шаг для оценки и обучения в масштабе. Интегрируйте среду выполнения с облачными и локальными вычислительными средами, используемыми для крупномасштабного замкнутого тестирования, непрерывной интеграции и конвейеров обучения восприятию. Улучшайте и проверяйте детерминированное выполнение — устанавливайте требуемое побитовое или по-кадровое поведение синхронизации между часами симуляции, динамическими обновлениями физики и трассировкой лучей, и создавайте инструменты, которые демонстрируют воспроизводимость прогона в соответствии с согласованным уровнем. Воспроизводите реальное расписание датчиков и тайминги автомобиля — staggered exposures камер, поведение rolling shutter, частоту вращения LiDAR и пакетов, дрейф аппаратных часов и бортовые ограничения, в рамках которых фактически работает восприятие, включая задержку вычислений P95/P99, задержку транспорта и отбрасывание пакетов. Создавайте механизмы возмущений, которые вводят дрожание таймингов, отбрасывание или внеочередные кадры, и калибровочный дрейф как в экстринсиках, так и в интринсиках, и используйте их для стресс-тестирования надежности последующего восприятия и слияния датчиков в замкнутых прогонах. Создавайте эффективные по памяти многомировые и многосценарные выполнения внутри одного процесса рендеринга, используя общую геометрию и инстансинг — OptiX IAS/GAS, или аналогичные иерархии структур ускорения в Vulkan/DXR — чтобы одновременные прогоны использовали общую геометрию карты, а не дублировали ее в памяти GPU. Оптимизируйте использование памяти GPU, потоковую передачу сцен и планирование выполнения, чтобы максимизировать количество кадров в секунду на GPU для одновременных рабочих узлов симуляции. Улучшайте развертывание среды выполнения и доставку ассетов — детерминированные пакеты развертывания (архивы SquashFS, дисковые контейнерные слои, хранилища с отображением в памяти) и загрузчики с низкими накладными расходами для графов сцен OpenUSD и материалов NVIDIA MDL, которые работают с сжатыми, дисковыми файлами без избыточного распаковки или копирования. Создавайте распределенные кэши для текстур, предварительно скомпилированных шейдерных конвейеров OptiX/PTX и предварительно собранных структур ускорения, чтобы устранить компиляцию при холодном старте и избыточные операции ввода-вывода в масштабе кластера. Профилируйте и сокращайте дисковое, сетевое и потребление памяти, чтобы сократить время запуска рабочего процесса, размер двоичных полезных нагрузок и накладные расходы на прием ассетов. Сотрудничайте с командами 3D-контента и конвейера USD для установки бюджетов среды выполнения, правил автоматической валидации и рабочих процессов сжатия перед тем, как ассеты будут развернуты. Поддерживайте высокие стандарты посредством технических проектных документов, обзора кода, регрессионного тестирования на воспроизводимость и производительность, а также наставничества других инженеров. Что вы должны иметь Степень бакалавра в области компьютерных наук, компьютерной инженерии, смежной технической области или эквивалентный практический опыт. 5+ лет профессионального опыта в разработке программного обеспечения, значительная часть которого посвящена критически важным по производительности системным программам. Производственная компетентность в современном C++ (C++17/20), включая оптимизацию производительности, управление памятью и чистый дизайн API и систем в большой кодовой базе, плюс рабочая компетентность в Python для инструментов и автоматизации. Прочная основа системного программирования под Linux: многопоточность и параллелизм, управление памятью, IPC, перемещение данных с высокой пропускной способностью, включая системы, работающие через границы процессов и машин. Глубокие знания в одной из двух областей, которые пересекаются в этой роли, и интерес к росту в другой: Робототехника или автономные системы — архитектура и интеграция компонентов восприятия, планирования или управления, и опыт работы хотя бы с одним интерфейсом, через который управляются эти системы: промежуточное ПО реального времени (ROS/ROS 2, DDS, пользовательский IPC или публикация/подписка с высокой частотой) и / или API среды в стиле Gymnasium; или Программирование GPU через API вычислений или трассировки лучей (CUDA, OptiX, Vulkan, DXR или аналогичные), с рабочим пониманием моделей памяти и выполнения GPU. Подтвержденный опыт проектирования, реализации и отладки надежных распределенных систем, включая недетерминизм и сбои, связанные с ними. Опыт профилирования и оптимизации реальных систем, а также инстинкт измерять перед оптимизацией. Сильные коммуникативные навыки и навыки сотрудничества, способность работать в командах, занимающихся рендерингом, симуляцией, восприятием, инфраструктурой и конвейером контента. Дополнительные баллы Опыт в одной или нескольких из следующих областей полезен; мы не ожидаем, что любой кандидат будет иметь все это. Рабочее понимание того, как стеки восприятия автономного вождения обрабатывают потоки датчиков — расписание датчиков, staggered exposures, rolling shutter, частота пакетов LiDAR, а также бюджеты бортовых вычислений и задержки транспорта. Опыт проектирования граничных случаев симуляции и возмущений в замкнутой петле: дрожание расписания, пропущенные кадры, внеочередные пакеты и калибровка или дрейф экстринсиков. Опыт пакетного рендеринга, рендеринга с несколькими видами или многосценарного выполнения на одном GPU с использованием иерархий структур ускорения и инстансинга (OptiX IAS/GAS, Vulkan/DXR TLAS/BLAS). Сильные знания в обеих вышеуказанных областях, а не только в одной — систем GPU и робототехники или автономных систем — или практическая глубина в трассировке лучей и трассировке путей в частности (NVIDIA OptiX, Vulkan Ray Tracing или DirectX Raytracing). Практическая оптимизация развертывания Linux: SquashFS, loop devices, файлы с отображением в памяти, загрузка без копирования, слои перекрытия контейнеров и сокращение времени холодного старта на вычислительных узлах. Опыт проектирования высокопроизводительных систем кэширования текстур и шейдеров — кэш диска OptiX, кэш конвейера Vulkan или распределение PTX. Опыт использования OpenUSD в среде выполнения C++ и оптимизация обхода сцены и компоновки памяти в среде выполнения. Знакомство с развертыванием и масштабированием контейнерных заданий симуляции на облачных платформах (AWS, GCP) или локальных HPC-кластерах. Опыт работы с платформами симуляции автономных транспортных средств или робототехники, такими как NVIDIA Omniverse, Isaac Sim, DRIVE Sim, Unreal Engine, или пользовательскими внутренними симуляторами. Опыт поддержки сред обучения с подкреплением или интерфейсов симуляции в стиле Gymnasium в качестве последующих потребителей. Доказательство технического вклада через работу с открытым исходным кодом в области рендеринга, симуляции или системной инфраструктуры, внутренние платформы, публикации или другое распространение знаний. Профиль кандидата Соответствующий опыт может исходить из робототехники, восприятия, симуляции, рендеринга и графики, игровых движков, HPC или инфраструктуры распределенных систем. Прямой опыт работы с автономными транспортными средствами не требуется. Успешные кандидаты будут сочетать сильные фундаментальные знания в области разработки программного обеспечения с практической интуицией в отношении данных датчиков, таймингов симуляции, выполнения GPU и распределенных сред выполнения. Компенсация Информация о компенсации является только добросовестной оценкой. Она основана на том, сколько успешный кандидат может получить в соответствии с применимыми законами штата. Компенсация может не отражать позиции, расположенные за пределами Нью-Йорка, Колорадо, Калифорнии или Вашингтона. Диапазон заработной платы для этой должности составляет от 153 200 до 234 100 долларов США. Фактическая базовая заработная плата, предложенная успешному кандидату в этом диапазоне, будет зависеть от факторов, относящихся к должности. Потенциальные бонусы: Программа стимулирующих выплат предусматривает выплаты в зависимости от результатов компании, уровня должности и индивидуальных результатов. Льготы GM предлагает различные программы льгот по здоровью и благополучию. Варианты льгот включают медицинское, стоматологическое, офтальмологическое страхование, счет для сбережений на здравоохранение (Health Savings Account), гибкие счета расходов (Flexible Spending Accounts), план пенсионных накоплений, пособия по болезни и несчастным случаям, страхование жизни, оплачиваемый отпуск и праздники, программы помощи в обучении, программу помощи сотрудникам, скидки на автомобили GM и многое другое. Гибридный/удаленный Эта должность может быть удаленной. *Эта вакансия может подходить для переезда, если вы заинтересованы в переезде в район Залива. О GM Наше видение — мир с нулевым количеством аварий, нулевыми выбросами и нулевой загруженностью, и мы принимаем на себя ответственность за то, чтобы возглавить изменения, которые сделают наш мир лучше, безопаснее и справедливее для всех. Почему стоит присоединиться к нам Мы верим, что каждый из нас должен ежедневно делать выбор — индивидуально и коллективно — для достижения значимых изменений через наши слова, наши действия и нашу культуру. Каждый день мы хотим, чтобы каждый сотрудник чувствовал себя частью одной команды General Motors. Обзор льгот С первого дня мы заботимся о вашем благополучии — на работе и дома — чтобы вы могли сосредоточиться на достижении своих амбиций. Узнайте, как GM поддерживает вознаграждающую карьеру, которая вознаграждает вас лично, посетив ресурсы Total Rewards. Недискриминация и равные возможности трудоустройства (США) General Motors стремится быть местом работы, свободным не только от незаконной дискриминации, но и активно способствующим инклюзивности и принадлежности. Мы твердо верим, что создание инклюзивной рабочей среды создает условия, в которых наши сотрудники могут процветать и разрабатывать лучшие продукты для наших клиентов. Все решения о приеме на работу принимаются на недискриминационной основе без учета пола, расы, цвета кожи, национального происхождения, гражданства, религии, возраста, инвалидности, беременности или материнства, сексуальной ориентации, гендерной идентичности, статуса ветерана или ветерана, имеющего особые заслуги, или любого другого подобного защищенного статуса в соответствии с федеральными, государственными и местными законами. Мы призываем заинтересованных кандидатов ознакомиться с ключевыми обязанностями и квалификацией для каждой должности и подавать заявки на любые вакансии, соответствующие их навыкам и возможностям. Кандидаты в процессе подбора персонала могут быть обязаны, где применимо, успешно пройти оценку (оценки), связанную с должностью, и/или предварительный скрининг до начала работы. Узнайте больше, посетив раздел "Как мы нанимаем". Аккомодации General Motors предлагает возможности всем соискателям, включая лиц с ограниченными возможностями. Если вам требуется разумная адаптация для помощи в поиске работы или подачи заявления о приеме на работу, отправьте нам электронное письмо или позвоните по телефону контакт рекрутера. В вашем письме, пожалуйста, укажите описание конкретной требуемой адаптации, а также название вакансии и номер запроса должности, на которую вы подаете заявку.
Оценка RocketHunt по реальным зарплатам
Грейд
Senior
Опыт работы
от 5 лет
Формат работы
Удаленно, Гибрид
Тип занятости
Полная занятость
Уровень английского
B2 - Выше среднего
Релокация
Соединенные Штаты
ИИ напишет его по твоему резюме, останется только отправить