Anatoly Levenchuk (ailev) wrote,
Anatoly Levenchuk
ailev

NVIDIA как поставщик вычислительной инфраструктуры

NVIDIA замахнулась на то, чтобы сделать компьютерную инфраструктуру для всех. "Если б я была царицей, я б для батюшки царя обеспечила бы все вычисления в мире". Пинки, сегодня мы будем заниматься тем же, что вчера -- завоёвывать мир!
Я уже писал про NVIDIA как поставщика инфраструктуры интеллект-стека (https://ailev.livejournal.com/1380163.html), инфраструктуры роботакси (https://ailev.livejournal.com/1384766.html). Этот текст про то, как NVIDIA хочет быть поставщиком универсальной вычислительной инфраструктуры.

GTC'18 как фестиваль системной инженерии
Для меня основным сообщением, которое Дженсен Хуанг пытался донести до по разным поводам ошалевшей аудитории GTC'18, это поворот NVIDIA к платформенным отраслевым решениям. Разработка графических чипов это только одно мелкое дело, которое делает подросшая до 11тыс. человек компания. Новые GPU-чипы уже не будут объявляться с такой помпой, как раньше, они просто будут выходить в плановом порядке и дальше использоваться в продуктах, которые будут на несколько системных уровней выше. Резоны? Коммерческие: рынок автомобильной электроники будет побольше, чем рынок игровых графических карт, медицина в этом плане выглядит не менее аппетитной, а если брать поддержку программ искусственного интеллекта, то все датацентры мира могут потребить до чёртиков не просто GPU-плат, но и целых компьютеров с GPU на борту. Поэтому NVIDIA сейчас занимается системной инженерией на пару-тройку системных уровней выше. И, как я неоднократно отмечал, главным в презентациях Дженсена Хуанга являются диаграммы из плашек системных уровней: он так думает, он так делает, он просто системный инженер (как и многие другие в NVIDIA). Не инженер-электронщик, не инженер-программист, а именно системный инженер, удерживающий в голове этажерку из многих и многих системных уровней.

GTC'18 для меня была фестивалем системной инженерии: опять плашки системных уровней в презентации CEO, обилие упоминаний "архитектуры" (ведущая практика системной инженерии!), и даже объявление о программно-аппаратном комплексе приёмки/validation для автономных транспортных средств. Слова, широкой публике и журналистам мало известные, поэтому значительная часть рассказа прошла мимо прессы: об этом по итогам GTC'18 мало кто написал. Ну ничего, я не пресса, так что напишу -- но не ожидайте, что без системного мышления будет сразу всё понятно. Зато для тех, кто прошёл мой курс (а только через Курсеру таких прошло за пару месяцев уже 40 человек) кейс NVIDIA -- это замечательный учебный кейс. Это очень хорошая практика: наблюдать системное мышление на примере презентации CEO компании, производящей для всего мира почву, на которой расцветают сто цветов искусственного интеллекта, сто цветов мультифизического моделирования, сто цветов компьютерной графики, сто цветов медико-биологических расчётов, сто цветов сотен цветов (если вы понимаете, что я хочу этим сказать -- а если не понимаете, то расцветать будут по сто цветов чего угодно, в этом и фишка).

Основное, что нужно было извлечь из GTC'18 -- NVIDIA хочет обеспечивать универсальные вычисления, а не только вычисления искусственного интеллекта. В то же время, вычисления искусственного интеллекта сегодня начинают использоваться внутри универсальных вычислений. Так что поддержка идёт и их тоже, по совокупности.

Так, в 1975 году была опубликована статья про математику ray tracing, но вот только сегодня удалось сделать этот ray tracing в реальном кинематографическом времени -- это действительно большое достижение, ибо до сих пор не хватало вычислительной мощности. Сегодня эта мощность есть у двух карт универсальных обрабатывающих единиц (GPU), соединённых интерфейсом NVLink2. У этих плат в совокупности 64GB памяти, 10240 CUDA Cores, 236 TFLOPS в Tensor Cores. Да, "универсальная обрабатывающая единица", GPU -- general processing unit, ибо я не хочу расшифровывать это G традиционно как graphic, и не хочу вызывать из небытия кратковременно мелькнувшее GPGPU -- general purpose graphic processing unit.

Вот поглядите на традиционные плашки системных уровней, которые приводятся презентации Дженсена Хуанга на GTC'18 в слайде про RTX (все слайды можно взять вот тут: http://cms.ipressroom.com.s3.amazonaws.com/219/files/20182/JHH_GTC2018_FINAL2.pdf):
nvidia_RTX
Расшифруем: NVIDIA Volta GPU является платформой, на базе которой делается платформа NVIDIA RTX Technology, занимающаяся этим самым real time ray tracing в реальном времени. Из внешнего мира эта платформа видна через три интерфейсных модуля: NVIDIA OptiX (библиотека на C++, которую сделала сама NVIDIA), либо Vulkan (нейтральный стандарт, если кому не нравится интерфейс NVIDIA -- обычная война стандартов, наверняка там несколько интересных функций пропущено и доступно только из OptiX), либо Microsoft DXR (если кому-то очень нужно работать в Windows).

Где там искусственный интеллект? Вы можете получить в OptiX в том числе удаление визуального шума алгоритмами искусственного интеллекта, да и про трассировку лучей в части требований к ресурсам уже поговаривают, что эти требования существенно уменьшат через задействование алгоритмов искусственного интеллекта. Аппроксимации рулят численным миром, а аппроксимациями рулят сегодня глубокие нейронные сетки и прочие универсальные аппроксиматоры, которыми богато сегодня машинное обучение.

В любом случае: системные уровни, архитектура, и выдача потребителям не чипов и даже не видеокарт, а каких-то готовых решений -- более-менее универсальных в масштабах отрасли программно-аппаратных "платформ", решающих пользовательские задачи.

NVIDIA -- это компьютерная компания (как IBM, как Cray) и софтверная компания (как Microsoft, как Oracle).
NVIDIA это уже не компания, которая делает графические чипы. Вообще, это не компания, которая делает чипы. Дженсен Хуанг это проговаривает явно, только мало кто слышит. Вот он говорит об архитектуре автомобильных компьютеров, которые стремительно меняются в части их чипового исполнения, но сохраняются в части компьютерной архитектуры -- что позволяет потихоньку улучшать софт, оставляя неизменным интерфейсы с железом, и потихоньку улучшать железо, оставляя неизменными его интерфейсы с софтом: Architecture matters. If you are software engineer you care about a hardware architecture, and because NVIDIA is not a chip company, we are a computer architecture company, we are a software company, we care about computer architecture, we care about the fact our software will be run on all of this different computers for as long as we shall live, so we can make the software better, better and better over time and entire install base in fleets of cars that we deployed get better, and better, and better and safer and more comfortable over time -- https://youtu.be/95nphvtVf34?t=1h55m42s (это ссылка на соответствующее место в видео полного keytalk Jensen Huang на GTC'18).

Ещё раз: NVIDIA is not a chip company, we are a computer architecture company, we are a software company. Поэтому объявление чипов будет теперь важным событием, но не запредельно важным: типа как объявление нового электродвигателя у автопроизводителей или как объявление нового авиадвигателя у производителей самолётов.

Дженсеном Хуангом на встрече с прессой, где был и я, проговорил явно: этот поход NVIDIA вверх по системным уровням -- поход за деньгами. Прорывные и подрывные инновации (например, в компьютерных чипах -- инновации по возвращению закона Мура) происходят обычно внизу технологического стека, в инфраструктуре каких-то отраслевых продуктов. Но вот деньги приходят сверху -- от каких-то отраслевых продуктов, в состав которых входят инновационные части. Конечно, эти отраслевые продукты сами могут быть инфраструктурой, но уже для какой-то более узкой отрасли, а конечные продукты могут строиться на базе уже этой инфраструктуры. В конечном итоге "инфраструктура" это просто повсеместно доступные модули (или сервисы), которые можно включать в состав ваших продуктов (или использовать в ваших продуктах в случае сервисов).

Если обратить внимание на то, что искусственный интеллект вдруг пришёл не по линии обработки символьной информации алгоритмами дискретной математики, а пришёл по линии вычислительной математики, и даже онтологические вычисления сегодня оказываются вероятностными (то есть тоже идут не по линии provers, а по линии вычислительной математики), и эти вычисления оказываются дико тяжёлыми, то NVIDIA имеет шанс стать "новым Intel". Помните, как раньше для CPU для дискреной математики делали "арифметические ускорители" рядом с процессором? А потом эти процессоры поглотились обычными CPU, потому как выиграли не RISC (reduced instruction set computer) архитектуры для CPU, а CISC (complex instruction set computer) архитектуры? Вот этот же процесс сегодня идёт, но в обратную сторону. GPU втягивает в себя CPU: большой чип втягивает в себя маленький.

Это хорошо видно на примере линейки автомобильных/робототехнических чипов: Xavier это SoC чип с GPU на борту (вернее, это GPU с ARM-CPU на борту), образцы его уже отгружаются клиентам. А следующий будет чип Orin -- на GTC'17 про него прозвучало что-то невнятное (типа "восемь микросхем SoC и GPU предыдущего поколения будут заменены двумя SoC"), так что я распространяться на эту тему не буду.

Вот ещё пример системных плашечек с платформенными уровнями от NVIDIA -- объявление о создании CLARA, суперкомпьютера для обработки медицинских изображений. Это не слишком внятная диаграмма, на ней перечислены имена модулей только "для тех, кто в теме", но из неё можно много чего понять про типовой подход NVIDIA к проблемам рыночной экспансии. Это системная инженерия, предусматривающая тщательную архитектурную работу со множеством платформ:
clara

Диаграмма рассказывает, что NVIDIA поставляет даже не компьютер (он только нижняя плашка -- NVIDIA GPU SERVER, и приведено фото железки), не слой облачной виртуализации (докторов много! приложений много!), не технологию обработки информации, в том числе изображений (начиная с CUDA как интерфейса программирования GPU, заканчивая компилятором глубоких нейронных сетей и теми же алгоритмами улучшения изображений RTX), но и собственно прикладной медицинский софт отрисовки и визуализации. В качестве примера такого софта было приведено извлечение 3D информации из двумерной диаграммы ультразвукового сканирования сердца, а потом восстановление при помощи алгоритмов искусственного интеллекта (похоже, это опять были нейронные сети, хотя не факт, что именно этот класс алгоритмов) объёмного изображения сердечного желудочка и вычисление всех его характеристик в реальном времени. Из плоского изображения не-пойми-чего получается объёмное живое (видео в реальном времени! это требует огромной вычислительной мощности!) изображение плюс множество количественных характеристик. Врачам это нужно, врачи в восторге. И таких приложений может быть множество, поэтому речь идёт о программно-аппаратной платформе CLARA, в составе которой инженеры NVIDIA использовали множество других платформ более низких системных уровней. И "чипа" внутри NVIDIA GPU Server на такой картинке практически не видно, хотя это именно он обеспечивает работоспособность всей конструкции -- ровно как авиадвигатель обеспечивает работоспособность всего самолёта. Но самолёт важней двигателя, суперкомпьютер с софтом для медицинских изображений важней GPU-чипа.

Медицинский рынок заплатит NVIDIA за программно-аппаратные комплексы (суперкомпьютеры с системным и прикладным софтом!) много больше, чем производители суперкомпьютеров за GPU-чипы. Или не заплатит: тогда NVIDIA как минимум продаст туда свои чипы, или платы, или сервера, или сервера со спецсофтом -- всё то, что рынок не сделает в конкурентной борьбе лучше, чем сама NVIDIA.

Новая компьютерная архитектура -- это архитектура с GPU
В 2007 году NVIDIA сделала крутую инновацию в виде архитектуры CUDA для GPU (которые тем самым стали GPGPU, а теперь для краткости опять стали GPU, но я уже G расшифровываю как general). Потом случилось неожиданное: на CUDA-ускорителях заработали алгоритмы глубокого обучения. Началась золотая лихорадка искусственного интеллекта.

CUDA-чипы NVIDIA для многих и многих классов задач (от вычислений с графовыми базами данных до обработки временных рядов, от тренинга глубоких нейронных сетей до синтеза высококачественных изображений с трассировкой лучей) оказались не столько GPU (graphic processing unit), сколько такими "параллельными CPU".

Мечтой программистов, занимавшихся параллельными вычислениями, были параллельные операции для RISC и даже CISC CPU. Подчеркну: ровно те же операции, но выполняющиеся в параллель. GPU оказался построен по-другому: для разных алгоримов нужны были разные виды параллельных операций, и самые интересные попали на борт чипа. Например, на GTC'17 была представлена архитектура Volta с добавлением к числу операций нового набора "параллельного CISC CPU" хитро определённых тензорных операций (умножения FP16 со сложением результата в FP32). То, что именно эта операция нужна для массовых вычислений, не приходило в голову авторам "универсальных параллельных процессоров" прошлых поколений. И не приходило в голову, что нужно поддерживать вычисления с шейдерами.

Требуется довольно большое время (годы), чтобы найти какой-то оптимум операций. С операциями для обычных CISC было то же самое -- наборы команд современных CPU развивались годами. Теперь идёт такое же развитие для GPU, где время от времени появляется даже некоторые аналоги RISC для deep learning (TPU как вариант: он умеет deep learning, и очень хорошо. Но вряд ли умеет шейдеры или разгон графовых баз данных). NVIDIA идёт по пути развития "параллельного CISC-процессора" -- где и тензорные вычисления поддерживаются, и обработка видео, и просто какие-нибудь массовые сравнения данных, и операции работы над графами и много чего ещё. Хороший пример тут Xavier, чип для автомобиля: там нужно и акустические временные ряды обрабатывать, и видео со многих камер, и десяток нейронных сеток для собственно управления автомобилем, и много самых разных других вычислений поддерживать. Отдельных ускорителей для них всех не напасёшься, хотя идея иметь специальный ускоритель для глубоких нейронных сетей и бродит в воздухе -- но вот сами алгоритмы для этих сетей оказываются слишком быстро меняющимися, чтобы рисковать их поддерживать. NVIDIA хочет, чтобы её интерфейсы существовали долго, поэтому не рискует. GPU поэтому максимально разнообразен в плане поддерживаемых операций, он готов выполнять вычисления для самых разных алгоритмов -- от мультифизического моделирования и обработки графики до каких-нибудь вероятностных вычислений и выполнения запросов в графовых (не графических!) базах данных.

Итого -- GPU сегодня оказывается "новым CISC CPU, только для параллельных алгоритмов". И для него пока выполняется закон Мура (с точностью до того, как именно его интерпретировать). Дополнительный слой гибкости даёт интерфейс CUDA, что позволяет немножко шевелить границу между софтом и железом, а также исправлять какие-то архитектурные ошибки железа, сохраняя преемственность опирающегося на это железо прикладного софта. У AMD такой роскоши шевелить железо, оставляя софт-интерфейс неизменным, нет. Стандарт есть стандарт, и он тут является удавкой на железном интерфейсе. У NVIDIA ситуация чуток лучше, и вице-президенты не забывают это подчёркивать в разговорах. Если что-то крупно пойдёт не так с архитектурой железа, софтовый интерфейс к новому железу, которое решает все проблемы, будет выдержан тот же. Именно поэтому NVIDIA не публикует интерфейсы своего железа. Постоянство интерфейсов железа от NVIDIA не гарантируется. Продаются программно-аппаратные комплексы, не аппаратура!

Этот подход сильно отличается от подхода "поддержки графики в любом виде" или "поддержки глубокого обучения везде и всегда": CUDA GPU не являются специализированными процессорами для узкого класса вычислений. Нет, они будут поддерживать и нейронные сети (возможно, чуть хуже, чем совсем уж специализированные устройства, но будут), и компьютерную графику высокого разрешения, включая ray tracing реального времени, и самые разные нейронные сети, и самые разные другие алгоритмы машинного обучения, и физические вычисления для имитационного моделирования виртуального мира, и ускорение баз данных, и всё что угодно: повторюсь, что CUDA GPU это сегодняшний CPU, универсальный вычислитель для параллельных алгоритмов. А неуниверсальность его можно обсуждать так же, как неуниверсальность нынешних CPU -- они же тоже неуниверсальны!

Чем GPU от NVIDIA в этом плане отличаются от GPU конкурента -- AMD? Про жёсткость чисто железного интерфейса для сохранения преемственности интерфейса между поколениями чипов я уже сказал. А во-вторых, CUDA просто удобней программировать. NVIDIA обеспечивает CUDA-GPU обширной эко-системой средств разработки, а ещё демонстрирует системноинженерные примеры интеграции GPU в системах более высокого уровня, не ждёт, пока это сделает кто-нибудь другой на рынке.

В кулуарах представитель University of North (North Carolina, но слово Carolina на его табличке отсутствовало, что придавало особый шарм) сокрушался, что все надежды были на OpenCL и AMD, но архитектурно там оказалось всё очень, очень плохо -- и надежды не оправдались. CUDA как интерфейс к новому универсальному параллельному компьютерному железу победил, "по совокупности причин". Почему так получилось? Потому как NVIDIA не гнушается заниматься софтом и считать себя софтверной компанией! Они буквально хвастаются тем, что у них работают тысячи и тысячи программистов. А собственно чипами занимаются не так много народу.

Системные уровни -- это наше всё.
Это надо видеть, как Дженсен Хуанг разговаривает. Он, когда говорит о том, что делает NVIDIA, после произнесения слова "архитектура" просто начинает размечать в воздухе жестами те самые плашки платформенных стеков из его презентаций. И это понятно: он прежде всего продавец, его волнует не столько "как оно работает" представление (принципиальные схемы), сколько "из чего сделано", "что можно продать". Так что не ждите от него объяснений, как оно там внутри устроено. "Как надо, у нас для этого инженеры". А сам он следит, чтобы всё это отличненько стыковалось друг с другом -- он отслеживает наличие внятных интерфейсов и многоуровневость работы, наличие платформ, достаточно высокий уровень этих платформ -- чтобы для этих платформ была уже видна специализация (он любит говорить, что "продукт -- это всегда ограничение!", хочет торговать продуктами, хотя внутри фирмы производит именно платформы, у которых ограничения наоборот, нет -- типа Volta GPU IP, которая может использоваться и в составе автомобильных чипов, и в составе чипов для компьютерной графики, и в составе суперкомпьютеров для глубокого обучения, и в составе медицинской платформы CLARA).

Итак, над системным уровнем отдельных гейтов (состоящих из кусков кремния, реализующих транзисторы этих логических гейтов) строятся IP групповых/параллельных операций (буквально: куски кремния, обеспечивающие эти операции -- "ядра"), а из самых разных IP набирается тот или иной чип-GPU. Добавляем корпус, соблюдаем никому (кроме инженеров NVIDIA!) не известные интерфейсы этих чипов.

Затем из чипов делаем GPU-платы (ну, или "видеокарты" -- которые уже давно не "видео", и не "карты"). Из GPU мы делаем

а) суперкомпьютер типа DGX-1, и все счастливы. Но не совсем все. Топовым специалистам по глубокому обучению будет всё одно плохо (хотя и лучше, чем ничего): их модели и не помещаются в памяти, и тренируются медленно. На то они и топовые специалисты, чтобы им всего не хватало. И тогда из GPU мы делаем

б) супер-GPU, вспоминая при этом, что NVIDIA умеет разрабатывать чипы. Чип в этот раз коммуникационный, называется NVSwitch, в нём 2млрд. транзисторов с проектными нормами 12FFN (подробности про эту замечательную цифру см., например, в https://www.semiwiki.com/forum/f293/nvidia-announces-tesla-gv100-gpu-tsmc-12nm-ffn-9285.html), и этот чип обеспечивает 300GB/sec для каждой пары GPU-GPU из их пула.

Далее идём ещё на уровень вверх. На GTC'18 был представлен суперкомпактный суперкомпьютер DGX-2 (это отдельная история, как всё было упихнуто в небольшой объём), в котором 16 Tesla V100 с 32GB памятью каждый образуют унифицированно программируемый (эта унификация как раз поддерживается аппаратно аж 12 чипами NVSwitch, коммуникацией занимаются 24млрд. транзисторов). Подаётся это как супер-GPU с характеристиками 2PFLOPS (два квинтиллиона плавающих в секунду!), 512GB быстрой памяти HBM2, и всё это чудо потребляет всего 10kW -- https://www.nvidia.com/en-us/data-center/dgx-2/.

Это ровно то, чего не хватало спецам по машинному обучению для того, чтобы тренировать их модели. Например, модели iPavlov (как мы обсудили с командой проекта, тоже бывшей на GTC'18) не влезают в память, а обучение идёт неделями. А ведь у команды есть доступ к DGX-1! DGX-2 ускоряет работу вдесятеро по сравнению с DGX-1 с Volta (а ведь были и DGX-1 на Pascal) на больших задачах глубокого обучения (FAIRSEQ тренируется на DGX-1 за 15 дней, а на DGX-2 за 1.5 дня), а ещё он существенно снимает ограничение по памяти для моделей. Стоит же он $399тыс., что по сравнению с $160тыс. для DGX-1 не кажется резким подъёмом цены. Закон Мура действует опять: вычислительная мощность год за годом продолжает существенно дешеветь. И всё это x10 за полгода с момента появления DGX-1 на Volta. А если взять пять лет, то в декабре 2012 года AlexNet Крыжевского выиграла своё знаменитое соревнование, будучи натренированной на 2*GTX580 за 6 дней. Это было лучшее, на что было способно человечество в плане тренировки нейросеток на то время. А на DGX-2 AlexNet тренируется за 18 минут. Это означает, что за 5 лет разработчиками глубоких сеток было получено x500. Конечно, это шапкозакидательные маркетинговые заявления, но мне нравятся такие заявления.

Дженсен Хуанг считает, что рынок для DGX-2 крошечный, а разработка чипа NVSwitch -- это его весьма рисковая помощь крошечному числу исследователей на планете (может быть, таких пользователей всего несколько сотен человек). Но эти люди ключевые в разработке новых алгоритмов в составе когнитивных архитектур ближайшего будущего. Они разрабатывают приложения следующего поколения, тренируют компьютерные сетки, которые потом будут использоваться для вывода/inference -- а вот вывод/inference будет затребован повсеместно и потребует огромной вычислительной мощности в датацентрах, а также в автономных устройствах (computing on the edge). И NVIDIA радостно предоставит вычислительную мощность для всех тех потребителей, которые потребляют натренированные несколькими сотнями человек глубокие нейронные сетки и другие модели грядущих когнитивных архитектур.

Альтернативный ход "чипмейкера" был бы выдать чип и спецификацию к нему, а потом ещё некоторое время подождать, пока на рынке не появятся что-нибудь типа DGX-2. Но Денни Шапиро (вице-президент NVIDIA по авторынку) любит повторять, что очень часто ожидания от производителей продуктов одним-двумя системными уровнями выше не оправдываются: если им нужно употребить что-то новенькое в своих продуктах, то это может а) произойти быстро, б) произойти медленно, в) не произойти, пока кто-нибудь не подаст пример. Поэтому NVIDIA обыно пытается "подать пример" и сделать самостоятельно какое-то пользовательское решение с использованием собственных платформ. А там развилка: если продукт окажется прибыльным, то почему бы его и не выпускать дальше. Если не очень прибыльным, то NVIDIA легко отдаёт сегмент рынка всем желающим улучшить ситуацию, лишь бы покупали компоненты -- а первый продукт остаётся "образцом новинки", который до ума будут доводить уже другие участники рынка. Вот что новенького на GTC'18, так это по факту объявление, что компонентами от NVIDIA теперь приоритетными являются вычислительные платформы, а не чипы. До этого примерами таких платформ были игровые видеокарты и консоли (Shield), профессиональные графические видеокарты (для художников и инженеров), вычислительные карты для суперкомпьютеров (GPU для РЗС), телефонные чипы Tegra, а в последние несколько лет платформа для автомобилей, да ещё и рынок inference для датацентров (этот ход был заявлен с выходом Tesla Volta на GTC'17). Всё, на GTC'18 очевидно, что компания отходит всё дальше и дальше от образа поставщика чипов производителям компьютеров. DGX-2 сам по себе очень неплохое устройство, которое снимает многие вопросы по сравнению решений NVIDIA для поддержки нейронных сетей с какими-нибудь TPU от Гугла, или никак не выходящими на рынок будущими ускорителями Intel.

Вот эти прихватывания функциональности платформ нижнего уровня и затем рывки вверх на потребительские рынки у NVIDIA и есть многолетняя стратегия.

Заканчивается ли наращивание системных уровней на DGX-2 или аналогичными компьютерами? Нет! Ибо мы ещё не говорили о софте. Но мы не договорили и варианты создания ещё более "супер" суперкомпьютеров. Как их назвать? Разве что гипер-компьютерами, потому как в их состав NVIDIA включает разные суперкомпьютеры с похожей, но всё-таки неидентичной архитектурой.

DGX-2 наряду с автомобильными компьютерами входит в стенд для приёмки (платформа для валидации -- терминология тут не так важна) софта для беспилотных автомобилей. Этот стенд получил название Drive Constellation -- https://www.nvidia.com/en-us/self-driving-cars/drive-constellation/. В состав входит датацентровый суперкомпьютер (типа DGX-1 или DGX-2, или что-то похожее), который выполняет имитационное мультифизическое и фотореалистическое моделирование сложных дорожных ситуаций (которых в достаточном количестве нет в наборах данных человеческого вождения, по которым обычно идёт тренировка -- ну мало аварийных ситуаций, чтобы можно было проверить алгоритмы беспилотников!). А ещё в состав Constellation входит набор автомобильных суперкомпьютеров (например, Drive Pegasus -- все они упаковываются в аппаратные сервера по нескольку штук в каждый). Всё вместе позволяет проверять на реальных автомобильных компьютерах реакции их софта, но в виртуальном мире, который генерирует системное окружение автомобиля. Классическая приёмка/validation, но "виртуальная".

Что я сам на эту тему думаю
Мне на GTC'18 демонстрировали полярные реакции от моих заметок, где я по самое не балуйся похвалил NVIDIA в целом и Дженсена Хуанга в частности -- https://ailev.livejournal.com/1416105.html. Одни восхищались и их мнение более-менее совпадало с моим, а другие выражали всяческий скептицизм и интересовались, дорожу ли я своим именем, так перехваливая NVIDIA. Мне же кажется, что я не перехваливаю NVIDIA: просто мы видим на примере NVIDIA появление новой модели компьютинга. Не компьютинга глубоких сеток, или графического компьютинга, или ещё какого-то "майнингового компьютинга для всяких койнов". Нет, универсального компьютинга. Фирма NVIDIA пытается показать, как могла бы выглядеть вычислительная инфраструктура будущего.

И это я ещё не затронул крайне важный для системщиков вопрос PLASTER, касающийся разделении компьютинга на две ветви: создание моделей и расчёт по созданным моделям. The next step [for NVIDIA]: putting deep learning to work on a massive scale. To meet this challenge, technology will have to address seven challenges: programability, latency, accuracy, size, throughput, energy efficiency and rate of learning. Together, they form the acronym PLASTER (https://blogs.nvidia.com/blog/2018/03/27/nvidia-gtc-2018-gv100-dgx2-hyperscale-datacenters/). Это отдельная тема, а на сегодня и так уже много написано.

И вообще, я даже не про все технологические стеки написал, которые были в keytalk -- например, нет технологического стека управления облачными GPU. Софт оркестровки и балансировки нагрузки для облачных приложений Kubernetes разогнали при помощи GPU же -- https://techcrunch.com/2018/03/27/nvidia-brings-joy-by-bringing-gpu-acceleration-to-kubernetes/

Прав я, или неправ, рассудит время. Каждый раз, когда я начинаю рассказывать о чём-то новом (будь это интернет в 1990 году или нейронные сети в 2012), мне говорят, что я погорячился. Я же считаю, что
-- в мире всё больше будет рулить вычислительная математика, а не "формальная булевская логика" -- со всеми вытекающими отсюда последствиями. Все эти формально-логические онтологии становятся priors, и дальше их вычислять нужно не булевскими пруверами, а вполне себе методами вычислительной математики с плавающими числами.
-- алгоритмика будет самой разной, а не однообразной. Free lunch theorem говорит, что одного алгоритма для всех задач не хватит.
-- современная прагматика (которая синтаксис/семантика/прагматика) показывает, что деятельностная ситуация важна, и нужно будет обрабатывать огромный поток датчиков с оцифровкой аналоговых сигналов, чтобы оставаться в контексте и понимать, происходящее в окружающем мире
-- в мышлении машин нужно иметь более-менее полные модели окружающего мира, а это требует огромных вычислений (NVIDIA Drive Constellation лишь первая ласточка на этом пути, а NVIDIA ISAAC SDK тоже объявленный на GTC'18 вторая ласточка -- https://blogs.nvidia.com/blog/2018/03/27/isaac-robotics-sdk/, в мире же подобного набирается сейчас очень много, и самые качественные реализации так или иначе задействуют GPU от той же NVIDIA).
-- Все модели из предыдущего пункта должны успевать пожить в эволюционных алгоритмах, чтобы показать степень своей выживаемости. Без эволюции ведь никуда, она работает быстрее, чем принято думать, но медленнее, чем это можно терпеть в обычных условиях. Поскольку жизнь медленна, а эволюция всесильна, нужно уметь делать эволюцию за время быстрее реального и запускать на счёт множество миров с пробами. А это требует дикой вычислительной мощности, причём универсальной, а не специализированной: мир универсален, а не специализирован.

Так что я думаю, что у NVIDIA шанс захватить мир есть. Но ненадолго, конечно, и не весь (большой спор про оценку доли вычислений, которая идёт на аппаратуре и софте NVIDIA изо всех вычислений мира в момент максимума "захвата мира", я тут скипну -- холивар, флуд, фрики, скептики, фанаты и прочие тут могут отвязаться с любыми оценками по фейнману, с любыми байесовскими оценками вероятности "захвата"). Вычислительная инфраструктура мира уже и сейчас огромна (только NVIDIA отгрузила 200млн. своих GPU в состав этой инфраструктуры), конкурентов у NVIDIA хоть отбавляй, а будущее всегда несёт что-то новое. Грядут "войны универсальных вычислителей", как были браузерные войны, войны фреймворков нейронных сетей. Но это "войны универсальных вычислителей", а не "войны графических ускорителей", почувствуйте разницу. Геймерам же всех мастей скажем спасибо: они по факту оплатили все эти исследования и разработки. Именно на заработанные их родителями (реже -- ими самими) деньгах выросла фирма NVIDIA, теперь стремительно превращающаяся в поставщика вычислительной инфраструктуры (человечества или небольших рынков -- этот вопрос оставим открытым).
Subscribe
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

  • 5 comments