R&D-центр Intel в Нижнем Новгороде: от беспилотных авто до 5G
На прошлой неделе компания Intel пригласила прессу в свой нижегородский центр разработок и исследований (R&D) — одно из крупных и важных подразделений компании, которое занимается в первую очередь разработкой ПО. Не то чтобы был какой-то особый повод, нет. Просто центр последнее время быстро расширяется, на носу 20-летний юбилей, работа кипит, и скоро-скоро появятся новые продукты. Если для вас почему-то новость, что важное подразделение Intel есть в РФ — в Нижнем Новгороде почти 700 человек, и это в основном разработчики, а в Москве более 150 сотрудников (маркетинг и развитие бизнеса), то вкратце напомним историю. В 1991 году Intel открыла первое представительство в Москве в целях охватить новый для себя рынка.
А уже через пару лет местные программисты стали получать заказы на разработку софта для корпорации. Большим плюсом для компании и тогда, и сейчас была относительно недорогая, но в то же время очень качественная рабочая сила. Собственно процесс был организован очень просто — контрактные сотрудники получали от заокеанских коллег полные спецификации того, что и как нужно было сделать, в какие сроки. Сиди да работай. Правда, на практике всё оказалось не так уж радужно. Такой подход, до сих пор активно применяемый в аутсорсе, нередко приводит к значительным накладным расходам. Даже просто коммуникация затруднена из-за разницы в 11 часовых поясов — работать приходится почти в противофазе. И любой вопрос выливается в затянутую переписку.
Кроме того, со временем местные специалисты всё чаще стали интересоваться, а для кого и для чего предназначены создаваемые ими библиотеки и программы: не стоит ли добавить одни функции и убрать другие, где ещё можно использовать код, как сделать работу удобнее? В конце концов, в 2000 году появилось собственное подразделение Intel в Нижнем Новгороде. Бывшие контракторы стали полноценными сотрудниками корпорации, получив и все бонусы трудоустройства, и в то же время все обязанности. Руководство R&D центра особо подчёркивает операционную автономность. Все вопросы — и бытовые, и рабочие — решаются на месте, без обращений в головной офис, что сильно упрощает и ускоряет работу в целом, а заодно экономит время и деньги.
Среди других ключевых дат отмечается 1997 год — год начала сотрудничества с российскими университетами, которое связано и с подготовкой кадров для Intel, и с НИОКР, и с взаимодействием с научными заведениями вообще. Сейчас всё это вылилось в программы стажировки и интернатуры, работу с кафедрами и преподавателями, летнюю школу Intel и онлайн-курсы, тренинги и так далее. В 2016 году российский центр поглотил разработчика систем компьютерного зрения itseez и создателей новой процессорной архитектуры VISC — компанию Soft Machines. Сейчас нижегородский центр полностью ответственен за ряд глобальных продуктов. И речь именно о готовых продуктах, потому что мало написать и протестировать код. Его надо упаковать, интегрировать с другими продуктами, а также поддерживать и обновлять.
О части продуктов мы рассказывали ещё в 2015 году. System Studio для встраиваемых систем, Parallel Studio XE для параллельного программирования и Media Server Studio создаются именно в Нижнем Новгороде, но это лишь малая часть ПО, SDK и библиотек. После поглощения itseez уже в составе Intel появился продукт OpenVINO. Всё это ключевые направления экспертизы R&D-центра: ИИ, компьютерное зрение, большие данные. Впрочем, эти инициативы укладываются и в общий вектор развития компании. Intel старается создавать не только и не столько «железо», сколько платформу для решения задач, связанных с обработкой данных. Что, впрочем, неудивительно.
И Intel, и другие производители микроэлектроники уже давно столкнулись с замедлением роста вычислительной мощности. И если в 90-х при нехватке скорости достаточно было подождать полгода-год и получить в два раза более производительный процессор, что перекрывало все нужды, то сейчас такой трюк уже не проходит. С другой стороны, даже при отсутствии скачкообразного роста скорости одного ядра в конечном итоге вычисления становятся дешевле и доступнее. Посмотрите на современные смартфоны, сравните их с ПК десяти- или пятнадцатилетней давности. И посмотрите на стремительный рост облачных провайдеров. Ресурсов-то на самом деле много, но их надо грамотно использовать на всех уровнях. И данных, что тоже важно, также уже немало. Вот тут-то на первый план и выходит софт.
Intel ставит перед собой задачу максимально облегчить труд программистов, которые по возможности не должны глубоко копаться в особенностях архитектуры каждого нового чипа. Напротив, максимум оптимизации должен делать компилятор. Нужны профилировщики, нужны готовые библиотеки с подходящими алгоритмами. При этом у создателей этих средств разработки есть своеобразный симбиоз с создателями «кремния». С одной стороны, они всё знают о новых кристаллах задолго до их выхода на рынок, чтобы в момент выпуска продукта у клиентов уже были все средства для работы их ПО на новом железе. С другой — теперь уже сами разработчики софта влияют на архитектуру новых чипов. По их просьбе появляются новые инструкции, меняется строение некоторых блоков.
Заметьте, речь идёт не только о привычных x86-процессорах. Напротив, вычисления сейчас гетерогенные, что только добавляет сложности в разработке. Кроме того, производительность сама по себе не всегда важна. Не стоит забывать и об энергопотреблении, например. Хороший пример – это беспилотные автомобили. Тут и огромные потоки данных (терабайты в сутки), и целый набор разных архитектур, и жёсткие требования к скорости реакции автомобиля на дорожную ситуацию. Шутка ли, лимит составляет всего 40 мс! Строго говоря, про Intel Go Automotive SDK мы тоже уже рассказывали пару лет назад — и тоже по мотивам поездки в нижегородский центр. Во многом это проект именно локальный: разработчики просто посмотрели, где ещё можно применить уже имеющиеся наработки в области высокопроизводительных библиотек. А в итоге родился совместный проект с BMW.
К 2021 году должен появиться готовый продукт с четвёртым уровнем автономности. Ещё через год – первые тесты 5-го уровня. Что это означает, если говорить простыми словами? Нулевой уровень – это обычный, старый автомобиль, где вообще всё зависит только от водителя. Второй-третий уровень уже добавляет некоторые удобства, облегчающие вождение: различные системы курсовой устойчивости, адаптивного круиз-контроля, автоостановки, паркинг-помощники и так далее. В любом случае это не автопилот, так как водитель обязан следить за дорогой, перехватывать управление и самостоятельно принимать решения в критической ситуации. Следующий уровень предполагает автономность в ограниченных условиях, например беспилотное вождение на автостраде (где более-менее понятны общие правила игры, есть разметка и знаки) с плавным уходом на обочину и остановку в случае, когда от водителя нет реакции на текущую ситуацию.
View this post on Instagram✴
#Rinspeed #Snap — #концепт #авто #selfdriving #driverless #car #MWC2019 #mwc #3dnewsru #3dnews
Но все ждут, конечно, пятый уровень, который может изменить многое. В этом случае органы управления в принципе уже не очень нужны — изменится не только внутренний и внешний дизайн авто, но и сам подход к владению автомобилем, к среде вокруг. Например, исчезнет проблема с поиском парковки: вы жмёте на кнопку, машина приезжает, отвозит до нужного пункта, высаживает и сама уезжает на сколь угодно далёкую парковку, где и будет дожидаться следующего вызова. Правда, будут и правовые коллизии — на первых порах уж точно. Кто виноват в случае аварии? Владелец, производитель или разработчик ПО? Собственно, многие считают, что именно законы будут тормозить развитие беспилотных авто, а не техника. Вся техника сводится к обработке данных.
Первый этап — информатизация, которая подразумевает в большей степени сбор и хранение информации, — многими давно пройден. Теперь пора заняться грамотным использованием. Обратите внимание, что теми же беспилотными автомобилями занялись именно обладатели огромных массивов различных данных — Google, «Яндекс», Baidu. Да та же Intel называет себя data company (нет, я так и не придумал корректный перевод этого на русский язык), а не просто разработчиком железа и софта и старается выстроить единую платформу, охватывающую и связывающую между собой весь спектр устройств — от датчиков и встраиваемых систем через промежуточные шлюзы с предобработкой данных до решений для дата-центров, где вся эта информация будет окончательно обрабатываться.
Это всё касается и ещё одного важного направления работы нижегородского центра — ИИ в целом и компьютерного зрения (CV) в частности. Опять-таки в связке с автопилотом, но не только. Сюда же попадают и камеры наблюдения, и БПЛА, и множество других устройств и проектов. В этой области Intel в последние годы скупила множество компаний как более общего профиля, так и прямо связанных с CV: Movidius (Myriad), Mobileye (чипы EyeQ5 как раз заняты предобработкой видео с камер в проекте BMW), Nervana и даже Altera, которая всё-таки более «универсальная» со своими FPGA. Упомянутая выше itseez, известная своим участием в OpenCV, тоже входит в эту обойму и отвечает за разработку ещё одного продукта с отечественными корнями и теперь уже открытым исходным кодом — OpenVINO (Open Visual Inference and Neural network Optimization).
OpenVINO представляет собой набор сразу нескольких программных компонентов, необходимых, если коротко, для подготовки и запуска нейронных сетей на всём разнообразии аппаратного обеспечения как самой Intel, так и других компаний. Ещё одна важная часть OpenVINO — это так называемый зоопарк моделей, которые включает несколько десятков разнообразных готовых наборов данных. Нужен он для быстрого прототипирования и оценки производительности аппаратных платформ. Собственно тренировки нейронок OpenVINO не касается — пользователь волен брать для этих целей практически любые популярные железо и фреймворки. Зато он помогает оптимизировать готовые натренированные модели. Оптимизация, вообще говоря, может быть разной — в зависимости от задач. Для встраиваемых систем обычно нужно соблюсти баланс между размером модели, потреблением памяти, скоростью работы и точностью. Добиться этого можно, например, исключением промежуточных слоёв, снижением точности самых вычислений.
OpenVINO позволяет это сделать. И он же позволяет сконвертировать оптимизированную модель для запуска на различном оборудовании с учётом его специфики и для использования всех аппаратных возможностей по ускорению работы модели. Естественно, для собственных продуктов Intel — CPU, VPU, FPGA, ASIC — адаптация лучше всего. Но есть и поддержка GPU и железа других вендоров, которые при желании могут сами улучшить её. Почему такой софт важен для Intel, если не учитывать спецпродукты для CV и ИИ? Секрет прост: по словам компании, до 80 % готовых моделей запускаются вовсе не на специализированном железе, а на обычных x86 CPU — из-за простоты развёртывания и масштабирования. Да, тренировка происходит на GPU, и в этой области Intel пока ничего предложить не может.
В качестве иллюстраций работы подразделения Intel Vision в целом приводятся понятные простым пользователям примеры из области медицины. Примечательная цифра на слайде ниже про ускорение в 188 раз на задачах определения костного возраста объясняется довольно просто: не слишком удачное строение готовой модели размером около 1 Тбайт, которую не каждый сервер сможет «переварить». Но в целом распознавание изображений в медицине с целью предварительной и быстрой диагностики сейчас очень популярно, равно как и то же распознавание в режиме реального времени для целей мониторинга и безопасности. Там же, в Нижнем Новгороде, компания показала несколько простых CV-демок для видео с веб-камер: определение лица и направления взгляда глаз, детектирование и классификацию объектов, распознавание текста, идентификацию людей по лицу, построение ragdoll-моделей людей.
Наконец, вкратце стоит упомянуть ещё об одном направлении работы R&D-центра, опосредованно связанном и со всеми остальными проектами, — это о 5G. Да, в Нижнем Новгороде работают радиофизики, которые напрямую участвуют в создании стандартов и реализации мобильных сетей следующего поколения. Вообще говоря, группа была сформирована ещё в 2002 году. В частности, она участвовала в стандартизации Wi-Fi 802.11n, WiMax, WiGig и нынешних сетей 4G. Ну а сейчас занимается развитием 5G, чтобы в конечном итоге получить преимущества и в разработке всё тех же беспилотных авто, и в связывании упомянутой выше иерархии устройств как минимум на этапе встраиваемых систем и шлюзов для них.
Последний пункт программы тура в R&D-центр — посещение лаборатории — оказался самым интересным, но… Вот ведь какое дело: про уже вышедшие продукты рассказывать смысла нет, а про ещё не вышедшие нельзя (и даже фото и скриншоты не показать). Так что придётся ограничиться словесным описанием. В лабораторию попадают свежие образцы железа, порой задолго до выхода на рынок. Там они тестируются и сами по себе, и совместно с другими устройствами. Это касается и потребительских продуктов, и серверных — в центре есть собственный небольшой ЦОД для внутренних нужд и для удалённого тестирования силами заказчиков и потенциальных клиентов. Лаборатория работает на нужды не только России, но и всего региона EMEA. Таких лабораторий, в общем-то, у Intel не так уж много по всему миру.
**Заключение**
R&D-центр в Нижнем Новгороде — далеко не единственный пример того, как благодаря энтузиазму локальных разработчиков из небольшой аутосорс-команды рождалось полноценное подразделение, со временем разраставшееся и становившееся автономным. Ну и строго-то говоря, в разное время в РФ у Intel были локальные офисы в Санкт-Петербурге, Новосибирске и Сарове, с которого всё и началось когда-то. В рамках консолидации они были расформированы, а часть команд либо ушла, либо присоединилась к текущим подразделениям, а то и вовсе перебралась в заграничные офисы. Но хотелось бы обратного — не открытия подразделений крупных корпораций в России, пусть и очень важных, а появления таких же офисов отечественных компаний такого же масштаба, но за рубежом. Мечты?