Anatoly Levenchuk (ailev) wrote,
Anatoly Levenchuk
ailev

Роботы и NVIDIA: борьба за нереальное время

На GTC-2017 было объявлено о нескольких инициативах NVIDIA по роботам -- под ними, судя по всему, понимаются небольшие киберфизические системы, которые могут как-то автономно передвигаться в пространстве. Небольшие -- это тележки и кораблики, но не автомобили и корабли.

1. NVIDIA анонсировала справочные платформы (Jetson Reference Platforms) разных типов роботов -- https://developer.nvidia.com/embedded/community/reference-platforms/ (дроны, тележки, "социальная" платформа с манипулятором, катер и т.д. -- от Toyota и enRoute). Идея тут в "платформе" -- т.е. модуле с чётко зафиксированным API, чтобы программисты софта для роботов могли брать готовую и сразу творить, обмениваясь своей работой. Стандартизация, платформизация -- это наше всё, если об этом не заботиться, масштабировать разработки будет невозможно, ибо нельзя будет поделить труд множества людей, занимающихся разными модулями: кто-то (NVIDIA) делает встроенные компьютеры для роботов (TX2 прежде всего), кто-то некомпьютерное железо (Toyota, enRoute), кто-то занимается софтом: и вот на них всё и рассчитано. У них будет стандартный вход и выход, стандартное железо -- и будет очень легко сравнивать разные мозги, облачённые в одинаковые тела: сколько их софтинки смогут обойти препятствий, с какой скоростью смогут выполнить задачу, насколько удобно будут управляться. Дальше обмен модулями зрения, планирования, управления, человеко-машинных интерфейсов, программ обучения и т.д..


2. NVIDIA анонсировала виртуального робота ISAAC (Айзек), у которого внутри "виртуальный Jetson" и который работает на ускорителях старших линеек -- https://www.nvidia.com/en-us/deep-learning-ai/industries/robotics/. Цель -- учить-тренировать робота целиком в виртуальном мире, после чего только слегка заглянцовывать его обучение в реальном мире. Идея не нова, отличается только исполнение: в качестве Gym используется Epic Games' Unreal Engine 4, а в качестве "вычислителя" виртуальный Jetson -- и всё это бегает на старших моделях GPU от NVIDIA.

Я ожидаю, что следующий шаг тут будет -- это создание robot definition для своих справочных платформ по образу и подобию ISAAC (в котором легко угадывается RP2, не входящий в число референсных платформ -- дорогущий малотиражный "исследовательский" робот, который никогда не покупается иначе как на деньги налогоплательщиков, а потом никто не знает, что именно с ним нужно делать, в университетах они простаивают после покупки). Вот тогда цикл будет замкнут, и всё заработает.

Уже сегодня на выставке было довольно много роботов. Мне больше всего понравился тележка к трактору от Blue River -- "струйный принтер", который убивает сорняки, прицельно поливая их микродозами химикатов. За гектар они берут $240, расход химикатов в силу прицельности минимальный, а подъём урожая идёт на 6-10%: http://www.bluerivert.com/. Если добавить к роботам и автомобили без водителя, так и вообще половина выставки оказывается робототехнической. Тем самым всякие IoT штуковины с какими-нибудь Edison или Raspberry Pi оказываются недороботами, "контроллерами" -- им попросту "не хватает ума". Так что за "умную робототехнику", оказывается, по факту на глобусе отвечает NVIDIA -- для меня это было неожиданностью.

Я задал на встречах с тамошними инженерами пару вопросов:
-- в Jetson TX2 есть два режима: приоритет мощности и приоритет производительности -- что выбирают чаще? Ответ был: "чаще всего выбирают приоритет мощности, производительности же хватает". Оно и понятно, в небольших автономных устройствах каждый лишний ватт на счету, а производительность и так большая (в официальной табличке http://www.nvidia.com/object/embedded-systems-dev-kits-modules.html производительности нет, но вот тут она вполне раскрыта: https://devblogs.nvidia.com/parallelforall/jetson-tx2-delivers-twice-intelligence-edge/).
-- если кого-то не пугают расходные 30Вт (то есть двигаются какие-то манипуляторы, но не нужно таскать за собой батарейку -- можно тратить 30Ватт Xavier, а не 7.5Ватт Jenson), то могут ли использоваться для роботики (скажем, для производственных линий или чего-то такого) автомобильные компьютеры Xavier (замена нынешним PX2 на Pacsal -- см. презентацию keytalk на GTC 2017 -- http://cms.ipressroom.com.s3.amazonaws.com/219/files/20174/JHH_GTC17_FINAL_published.pdf)? Это ведь практически то же самое, но помощнее. Ответ был такой: "у нас эти DRIVE PX2 отгружаются в 200-300 компаний, и вполне возможно, что часть из них использует эти компьютеры не для автомобилей".

Самым интересным тут, конечно, является появление DLA (deep learning accelerator -- умножитель тензоров в целых числах) в Xavier -- я давно говорил, что это магистральное направление развития, все эти bitwise (целые с числом бит приближающимся к одному) архитектуры. Конечно, это не training (пока!), а только inference, но сразу можно получить значительный выигрыш в скорости вычислений, простоте реализации вычислений и потребной памяти для данных. Кстати, DLA NVIDIA планирует отдать в open source, к осени. Все желающие реализовать DLA в кремнии -- вперёд, почему бы и нет. Хотя совершенно непонятно, как это будет происходить и зачем это вдруг потребовалось. Мне кажется, что это просто контр-ход для разных других конкурирующих архитектур deep learning acceleration, которые тоже тяготеют к малой разрядности и целым числам (все эти гуглёвские TPU, DPU от http://wavecomp.ai/solution/ и т.д.). И вот мы видим прямую поддержку такой архитектуры в кремнии от NVIDIA.

Такое впечатление, что в Xavier проблёскивает новая пост-Volta архитектура, где ускоритель будет содержать не только tensor core (умножение плавающих), но и фиксированной точности умножители тензоров DLA. Но никогда-никогда NVIDIA не сдаст GPU архитектуру, в которой внимание кроме тензорных операций уделяется просто умножениям-сложениям, нужным для работы с видео, аудио и просто параллельной работы с данными. Универсальный ускоритель просто будет набираться из самых разных "ядер", поддерживающих самые разные специализированные операции с самыми разными типами данных. И для роботов отдаваемая под DLA площадь чипа будет наверняка всё больше и больше -- но и от обработки видео (скажем, 4 потока по 4К по 60fps) никто отказываться не будет, так что традиционные CUDA ядра тут тоже останутся.

Эта поддержка как работы с данными через традиционные CUDA операции, так и deep learning через плавающие тензорные в CUDA вычисления, так и целочисленные тензорные вычисления в DLA "на одном чипе" и отличают сегодняшнее (тьфу, пока ещё завтрашнее, сегодня ж только анонс, и то не для всех линеек чипов) предложение NVIDIA от предложений разных конкурентов.
xavier
(кликабельно, это 48 слайд из keytalk презентации на GTC-2017)

Дальше придётся выбирать: иметь общую архитектуру "для всего по чуть-чуть" или "специализированный процессор" для только одной функции и всё одно какую-то общую инфраструктуру вокруг этого "специалиста с малым энергопотреблением и малой универсальностью". Выбор будет трудным, интересно, как на него отреагирует рынок. Но пока всё остаётся как в моём посте "висит груша, можно скушать" (http://ailev.livejournal.com/1339616.html): начинать программировать для новых систем NVIDIA можно уже и сегодня, богатая экосистема для разработки есть уже и сегодня, а новое железо лишь позволит чуток разогнать какие-то части уже написанных приложений. Полностью же новое железо с суперхарактиристиками а) сегодня отсутствует, б) потребует прохождения длинной кривой обучения (программистов CUDA на сегодня насчитывается, кстати, 0.5млн человек, я и не знал), в) длинной кривой обживания инструментарием. Подумаешь-подумаешь, и соображения "бизнеса" (не "маркетинга"! другие критерии принятия решений, нежели реагирование на рекламу!) приведут к выбору универсальной сбалансированной хорошо поддерживаемой знакомой молотилки, нежели супер-дупер-специализированной-сверхэкономичной новинки.

Мы это уже видели в ходе победы Wintel, а сейчас в роботике может победить какая-нибудь Rodia (ROS+NVIDIA -- в Jetson ведь поддерживается ROS) -- ровно так же, за счёт внимания к людям и их потребностям, а не к техническим характеристикам отдельных частей целевой системы. Системный подход учит уделять внимание всей системе, а не совершенности одного её элемента, даже если этот элемент ускоряет обучение и работу нейросети. В роботах ещё много чего, кроме нейросети. Опять же, если удастся сохранить преемственность архитектур линеек Jetson, Quadro (это тоже для встроенных систем, но помощнее -- http://www.nvidia.com/object/quadro-embedded.html), Xavier (автомобили) и Tesla (датацентры), то можно много чего достичь за счёт скоростного переноса алгоритмов и построенных с их помощью моделей с одних систем на другие. Системный эффект для скорости разработки тут может оказаться определяющим по сравнению с целевыми харакеристиками конечной конструкции (особенно в мире, когда "конечную конструкцию" нужно будет по ночам обновлять -- делать багфиксы, добавлять фичи, и всё это быстро-быстро-быстро, в разы быстрее, чем у конкурентов).

В любом случае, всё объявленное на GTC-2017 в части поддержки робототехники отнюдь не конец истории. Для робототехники важнее всего нереальное время -- возможность моделировать мир быстрее, чем изменяется сам мир. Для обучения это важно, ибо в виртуальной модели мира робота можно обучить быстрее, чем в меееедленном реальном мире. Для работы это важно, потому как успеваешь прогнать большое число ситуаций для планирования действий и предсказания их результата. Это всё нужно делать а) быстро, б) экономно по энергии. А дальше закон Мура нам в помощь: NVIDIA вроде как заявила, что хочет некоторое время по нему жить, несмотря на слухи про его кончину. Пожелаем же NVIDIA конкурентов побольше, чтобы у неё не было шанса от этого своего заявления отказаться.
Subscribe
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

  • 5 comments