Репортаж с GTC Europe 2017: роботакси вызывали?
С тех пор как NVIDIA провела первую GTC в 2009 году, конференция выросла за пределы ежегодного события в Сан-Хосе, Калифорния, и проходит еще в шести городах по всему миру. В осеннем сезоне 2017 года GTC посетила Пекин и Мюнхен, а затем приедет в Тель-Авив, Тайбэй, Вашингтон и Токио. Вместе с географией GTC изменилась и ее тематика. NVIDIA справедливо рассматривает свой бизнес как нечто большее, чем производство графических процессоров. Помимо 3D-графики, благодаря которой компания расцвела в 2000-е годы, NVIDIA достигла лидерства в сфере высокопроизводительных вычислений на базе массово-параллельных архитектур, а в последние годы возглавила новую волну исследований искусственного интеллекта, в рамках которой это понятие стало практически тождественным с машинным обучением.
Как следствие, и все содержание GTC вращается вокруг проблем машинного обучения и практического использования полученных этим методом моделей. Однако у каждого локального отделения GTC есть своя специфика. Немецкая GTC Europe прошла в стране, которая является одним из мировых центров автомобильной индустрии, а значит — ее основной темой стали беспилотные авто и связанные с этим направлением технологии.
⇡#
**Новое железо и автопилотируемые автомобили**
К мюнхенской конференции NVIDIA приурочила анонс автомобильного компьютера следующего поколения — Drive PX Pegasus. Новая система позволит воплотить в жизнь то, к чему компания стремилась с момента ее первых опытов в области бортовых ПК, — автопилот высшего, пятого уровня, который сделает реальностью полностью автономное вождение, без вмешательства человека.
Для решения столь амбициозной задачи Pegasus располагает весьма серьезной по меркам встраиваемых систем мощностью — как вычислительной, так и электрической. В основе компьютера лежат две системы-на-чипе Xavier, анонсированные на майской GTC в Сан-Хосе. Xavier является очередным отпрыском семейства Tegra, которое фирма изначально пыталась распространить на рынке мобильной электроники, но затем была вынуждена перепрофилировать под нужды стационарных компьютеров. В этой сфере, где энергопотребление не столь жестко ограничивает возможности SoC, чипы NVIDIA растут с каждым поколением. Xavier, архитектуру которого мы пока представляем лишь в общих чертах, располагает восемью ARM-ядрами оригинального дизайна (по всей видимости, это ядра Denver или их производные со столь же «широким» устройством конвейера и соответствующим быстродействием) и встроенным GPU семейства Volta. Последний, помимо 512 ядер CUDA, содержит т. н. тензорные ядра, которые появились именно в архитектуре Volta и предназначены для операций вывода (inference) на основе предварительно сформированных сетей глубинного обучения.
Компонентный бюджет Xavier составляет 7 млрд транзисторов, а производством чипа займется TSMC по технологической норме 16 нм FinFET+. Согласно оценкам производителя, одна SoC Xavier с энергопотреблением 30 Вт по производительности эквивалентна бортовому компьютеру Drive PX 2 на основе двух чипов Tegra X2 и двух дискретных GPU семейства Pascal.
Drive PX Pegasus, который был представлен на GTC Europe, в дополнение к процессорам Xavier получит пару GPU следующего за Volta поколения (судя по фотографиям, в форм-факторе mezzanine с шиной NVLINK). Если отталкиваться от данных об энергопотреблении системы (500 Вт), речь идет о GPU класса GP100/GV100. Производительность компьютера NVIDIA оценивает в триллионах операций вывода (inference) за секунду: совокупная мощность четырех чипов Pegasus составляет 320 TOPS. Если учесть, что 40 TOPS в Pegasus берут на себя чипы Xavier, то проектное быстродействие загадочных GPU составляет 140 TOPS при TDP 220 Вт. Это кое-что говорит о свойствах грядущей архитектуры NVIDIA в сравнении с графическими процессорами Volta V100, рассчитанными на 120 TOPS при TDP 300 Вт.
Поскольку NVIDIA лишь недавно начала поставки Volta своим партнерам в HPC-сфере, а Xavier поступит в массовое производство не раньше 2018 года, до появления системы во плоти остался немалый срок, не говоря уже об автомобилях с Drive PX Pegasus на борту. Доступ к Pegasus избранные партнеры NVIDIA получат в начале следующего года, но не стоит рассчитывать, что в них войдут новые GPU, а не уже известные Volta V100.
Параллельно с железом нового поколения в NVIDIA ведется работа над собственным стеком ПО для бортовых компьютеров DRIVE PX. Пакет NVIDIA DIVE IX SDK, который появится в раннем доступе к концу 2017 года, состоит из операционной системы и сетей глубинного обучения, тренированных на решение задач машинного зрения. Речь идет как об обработке данных с внешних датчиков автомобиля, так и о голосовом управлении функциями бортового компьютера, а также контроле состояния водителя путем отслеживания взгляда и положения головы.
Что касается оборудования и ПО, которыми оснащаются коммерческие авто, то на сегодняшний день лишь избранные модели перешагнули границу третьего уровня автономности. Известный автопилот в Tesla (работающий на железе Drive PX 2) пока ограничен уровнем 2,5: от водителя требуется следить за дорогой и быть готовым в любой момент взять управление на себя. Третий уровень уже подразумевает, что автопилот полностью берет на себя наблюдение за дорогой и вождение, но только при определенных условиях. На практике производители автомобилей ограничивают автопилот наиболее безопасными режимами вождения. Первый и единственный на данный момент автомобиль с автопилотом третьего уровня — Audi A8 четвертого поколения, представленный в этом году, — позволяет отпустить руль только при скорости в пределах 60 км/ч на шоссе с разделительным барьером. В бортовом компьютере Audi zFAS используются шесть чипов NVIDIA, среди которых идентифицирован только Tegra K1, который обслуживает визуальный интерфейс системы.
Высшие уровни автономности (четвертый и пятый), даже при условии, что необходимая вычислительная мощность уже доступна в бортовых компьютерах (пусть до того времени, когда такие системы, как Pegasus, войдут в эксплуатацию, эти системы потребляют киловатты электричества), в данный момент являются предметом интенсивной работы. Сама NVIDIA создает не только железо, но и программную часть автопилота нового поколения на основе нейросети PilotNet, которую испытывает на собственном авто под названием BB8 (на самом деле это Lincoln MKZ с бортовым компьютером Drive PX 2). BB8 на данном этапе достиг четвертого уровня автономности: это значит, что при благоприятных условиях человек может полностью устраниться от процесса вождения, а в нештатной ситуации машина самостоятельно свернет с дороги и припаркуется. Такими же свойствами обладают беспилотные автомобили, которые Google использует для фотосъемки дорог. В 2020 году NVIDIA планирует прийти к пятому уровню: такая автоматика справится с любыми задачами вне зависимости от того, есть водитель за рулем или нет.
Спустя полтора года после выхода коммерческих версий HTC Vive и Oculus Rift будущее технологий виртуальной реальности все еще остается туманным. Среди массы факторов, которые тормозят пришествие VR на массовый рынок, проблемой номер один является скудный выбор игр, которые побудят геймеров приобретать шлемы виртуальной реальности. Однако на фоне мрачных настроений, окутавших зарождающуюся VR-индустрию, все чаще звучат призывы использовать имеющуюся технологическую базу для более практичных задач.
NVIDIA, как один из лидеров в сфере компьютерной графики, располагает полным стеком технологий для создания VR-среды — от графических процессоров, адаптированных к рендерингу сцены в двух точках проекции, до программных библиотек GameWorks и VRWorks. Не хватает только шлема, хотя выпуск собственного устройства стал бы для компании естественным шагом. Однако первые деньги на готовом приложении, связанном с виртуальной реальностью, NVIDIA собирается получить скорее из рук корпоративных клиентов, нежели геймеров.
На GTC в Сан-Хосе в мае текущего года NVIDIA представила проект Holodeck (да-да, это очередное изобретение под именем знаменитого устройства из Star Trek). А в Мюнхене было объявлено, что это решение, предназначенное для совместной работы нескольких человек над различными дизайнерскими и инженерными задачами, вскоре поступит в ранний доступ на Steam.
За счет того, что Holodeck создает трехмерную среду с фотореалистичной графикой и симуляцией физики, производители оборудования, транспортных средств, предметов интерьера и пр. смогут выполнять прототипирование изделий «в цифре» прежде, чем заказывать изготовление физического макета или опытного образца. Другое потенциальное применение Holodeck состоит в обучении персонала работе с новым оборудованием. В поддержку Holodeck уже высказались несколько крупных организаций: NASA, производитель автомобилей Koenigsegg и архитектурное бюро KPF.
Система построена на базе движка Unreal Engine 4 в сочетании с библиотеками NVIDIA VRWorks, DesignWorks и PhysX. В данный момент возможен импорт моделей из рабочей среды 3ds Max и Maya с помощью соответствующих расширений, а в будущем разработчики планирую ввести поддержку других распространенных CAD-программ. В многопользовательской конфигурации Holodeck использует клиент-серверную модель, позаимствованную из онлайн-игр: функции рендеринга на стороне удаленного пользователя выполняет его собственный GPU, результаты действий отображаются мгновенно, а затем синхронизируются с компьютером «хозяина» сессии. Импортированные из CAD модели предварительно загружаются с сервера на компьютеры участников сессии. Системные требования версии Holodeck, выложенной в раннем доступе на Steam, включают видеокарту класса GeForce GTX 1080 Ti и выше для того, чтобы обеспечить приемлемую латентность и частоту смены кадров.
Судя по «живой» демонстрации Holodeck, в которой мы участвовали на GTC, в предварительной версии платформы уже доступны ее основные функции — такие как возможность в деталях рассмотреть модель снаружи и изнутри (в нашем случае это был автомобиль McLaren), делать рукописные пометки на поверхности модели и в воздухе, измерять габариты деталей и менять их материал, пользуясь библиотекой NVIDIA vMaterial. А самая эффектная функция — это «взрывной макет», когда модель разлетается на все составляющие ее детали.
Однако Holodeck еще далек от стадии коммерческого релиза, поэтому не все компоненты программы работают как задумано. К примеру, еще не подключена физика на базе API PhysX, отчего возникают такие курьезы, как возможность поднять автомобиль и оставить в воздухе. Кроме того, при ближайшем рассмотрении модель не является столь же детализированной, как CAD-проект, из которого она была импортирована.
Помимо промышленного дизайна, VR с таким же успехом может применяться в другой сфере — обучении искусственного интеллекта. Для этого предназначен проект Isaac (имя дано в честь Ньютона и Азимова), имеющий с Holodeck много общего.
В простейшем случае Isaac позволяет роботам, действующим на основе сетей глубокого обучения, многократно ускорить освоение простых физических манипуляций — таких, как сортировка и монтаж деталей на конвейере. В данный момент заводские роботы программируются алгоритмическим образом. Как следствие, подготовка последовательности операций занимает сравнительно большое время — это подходит для выпуска изделий большими партиями, но плохо окупается на мелких заказах. С другой стороны, обучение робота при помощи нейросетей может быть еще более длительным и даже небезопасным, если речь идет о больших машинах. Оба эти фактора устраняет предварительный этап тренировки в виртуальной среде, скорость которой ограничена фактически лишь вычислительной мощностью массива GPU. Полученную с помощью Isaac программу затем загружают в память реального робота.
Хотя Isaac позиционируется в первую очередь как средство обучения роботов моторным операциям, таким же образом могут решаться задачи иного класса (распознавание образов, навигация в пространстве и т. д.) — при условии, что VR-среда в каждом конкретном случае обеспечивает лучшую скорость обучения, чем предшествующие методы. К примеру, на GTC при помощи шлема HTC Vive и ПО Isaac можно было сыграть с роботом в домино. Сам Isaac тоже является самообучаемой системой: одновременно могут быть запущены несколько сценариев тренировки, среди которых будет избран наиболее эффективный путь. Последний, в свою очередь, тоже будет размножен на несколько альтернативных сценариев и т. д.
Как и Holodeck, проект Isaac использует движок Unreal Engine 4, а также поддерживает интеграцию с OpenAI Gym — открытым набором алгоритмов обучения с подкреплением. В данный момент исследователи могут получить доступ к ранней версии Isaac, подав обращение на сайте NVIDIA.
До сих пор мы говорили главным образом о средствах внедрения сетей глубинного обучения, в отличие от тех методов, которыми их получают. В этой области NVIDIA не продемонстрировала ничего нового на GTC Europe 2017, но напомнила о тех возможностях, которыми уже располагают ее программные и аппаратные решения класса НРС (High Performance Computing).
Незадолго до Мюнхена на пекинском отделении GTC компания представила третью версию пакета TensorRT, который представляет собой набор высокопроизводительных библиотек, выполняющих операции вывода (inference) на основе сетей глубинного обучения, и инструмент оптимизации сетей. В число функций TensorRT входит модификация параметров узлов нейросети (веса, пороги активации), объединение слоев, настройка и многопоточное исполнение вычислительных ядер (kernels).
TensorRT 3 находится в статусе релиз-кандидата и доступен для скачивания на сайте NVIDIA. Программа совместима с ускорителями вычислений на основе архитектур Pascal и Volta и встраиваемыми компьютерами семейства Jetson. Использование TensorRT 3 обеспечивает 3,7-кратный прирост пропускной способности на платформе Tesla V100 (Volta) по сравнению с Tesla P100 (Pascal). Кроме того, решение NVIDIA обладает в 18 раз более высокой производительностью, нежели универсальная библиотека TensorFlow, запущенная на оборудовании NVIDIA.
По сравнению с центральными процессорами Tesla V100 под управлением TensorRT 3 в 40–140 раз ускоряет задачу опознания изображений и вдвое снижает латентность операций. Сервер NVIDIA HGX, оснащенный восемью ускорителями Tesla V100, по быстродействию сопоставим с 160 центральными процессорами (NVIDIA не уточняет количество ядер CPU), потребляя 1/20 долю электроэнергии. Оценка общей стоимости владения, с учетом цены оборудования и электрической мощности, показывает 10-кратное преимущество решения NVIDIA.
С помощью массива GPU и ПО TensorRT NVIDIA выполнила тренировку нейросети PilotNet, которая обеспечивает беспилотному авто BB8 четвертый уровень автономности. Так, восемь серверов DGX, в совокупности оснащенных 64 графическими процессорами, позволяют автопилоту проехать дистанцию 300 тыс. миль за 5 часов в виртуальной среде, а двух суток достаточно, чтобы изъездить таким образом все до единой дороги США.
Столь же эффектной демонстрацией возможностей TensorRT и железа Pascal/Volta является голосовой поиск фраз в видеозаписи, который система выполняет в реальном времени.
⇡#
**Новые сценарии применения ИИ**
Наиболее амбициозным проектом с использованием нейросетей среди всего, что когда-либо представила NVIDIA, является Metropolis. Эта платформа объединяет в одну инфраструктуру серверы DGX/HGX, встраиваемые ПК на базе энергоэкономичных модулей Jetson или ускорителей Tesla/Quadro, которые — каждый на своем этапе — занимаются анализом и каталогизацией данных, получаемых камерами видеонаблюдения. При должном масштабе внедрения Metropolis открывает невиданные (и, что вполне объяснимо, пугающие) возможности по управлению городской инфраструктурой. Наиболее перспективным сценарием использования для Metropolis является централизованный контроль дорожного движения, но с тем же успехом платформа готова отслеживать поведение пешеходов — либо с целью выявить преступников, либо для того, чтобы владельцы торговых точек понимали, как покупатели перемещаются по залу и на что они обращают внимание.
В качестве побочного продукта Metropolis разработчики привезли на GTC полицейскую машину, оснащенную системой видеонаблюдения и беспилотным гексакоптером, который способен в автоматическом режиме преследовать нарушителей порядка в том случае, когда погоня на колесах невозможна.
Однако рассказ о GTC Europe 2017 хочется завершить на менее тревожной ноте. Так, бюро дизайна и разработки Cambridge Consultants продемонстрировало инструмент, который создает на основе сделанных от руки набросков картины в стилистике великих художников.
В основе Vincent лежит нейросеть, полученная с помощью различных методов глубокого обучения. Основной из них — функция перцептивных потерь — позволяет трансформировать одно изображение в другое, сохраняя высокоуровневые признаки и заменяя низкоуровневые (таким образом работает известное приложение Prisma). Однако разработчики Vincent дополнительно применили метод вложенных (stacked) сетей, который подразумевает совместную работу нескольких, натренированных по отдельности моделей. А главное, логика программы отточена состязательным подходом, когда одна нейронная сеть пытается произвести изображение, стилистически неотличимое от картины какого-либо известного художника, а другая сеть пытается обнаружить различия между сгенерированным изображением и известными шедеврами.
Обучение Vincent выполнялось на аппаратной платформе NVIDIA DGX при помощи базы, содержащей тысячи произведений — от эпохи Возрождения до наших дней. В итоговую сеть вошли почти 200 тысяч параметров. В отличие от предшествующих приложений такого рода, которые используют в качестве вводных данных готовые изображения, системе Vincent достаточно предоставить созданный человеком набросок, а сеть затем определит, что «означают» те или иные формы, и заполнит холст в соответствии со стилем выбранного живописца. После завершения трансформации пользователь может внести изменения, которые будут интегрированы в новую версию картины.
Не менее любопытно выглядит проект BodySLAM канадского разработчика wrnch. С помощью глубинного обучения программа в реальном времени создает трехмерную модель позы человека на основе видеопотока с обычной двухмерной камеры и успешно опознает даже отдельные пальцы на руке. Затем — также в реальном времени — полученные данные могут использоваться для анимации компьютерных моделей методом Motion Capture, а практические перспективы технологии лежат в области взаимодействия «человек — робот» и безопасности труда на промышленных объектах.