22:12 25.12.2016   |   3999 |  Леонид Черняк |



В приложении к машинному обучению GPU, ASCI и FPGA называют "stopgap measures", то есть средствами, обеспечивающими временное решение, Что предлагается в качестве альтернативы?

Одно из основных положений не слишком популярной инженерной дисциплины — теории измерений, гласит: «Точность результата не может быть выше, чем точность исходных данных». Если вы измеряете в метрах, то стремиться к результату с миллиметровой точностью бессмысленно. Компьютерные специалисты теорию измерений не изучают, а потому при обработке данных это положение постоянно игнорируется и, как следствие, компьютеры считают «слишком точно» вопреки требованиям огромного числа приложений со всем вытекающими из этого издержками.

Практика же показывает, что во многих случаях требуются не точность, а качественные суждения. Не случайно в 1980-е годы, когда компьютеры вторглись в такие «неточные» сферы, как науки о Земле, медицина и т.д., исследователи с большой надеждой обратили свои взгляды к нечетким, или размытым множествам (fuzzy sets -— понятие, введенное американским математиком азербайджанского происхождения Лотфи Заде). Было издано множество книг, в том числе на русском языке, но, как показала жизнь, заметных практических результатов из этого увлечения не последовало. Основная причина оказалась в «косности» существующих компьютерных архитектур, которые изначально создавались для расчетов, а не для работы с данными, о чем, собственно говоря, свидетельствует само название — «компьютер», то есть вычислитель.

Преимущество программируемых компьютеров, построенных по схеме фон Неймана, в их универсальности, поэтому их можно приспособить и к работе с большими объемами неточных (подчеркнем!) и неструктурированных данных, которые и составляют подавляющую часть нынешних Больших Данных. Опираясь на эти данные, необходимо делать пусть не точные, но вполне достоверные умозаключения. Так вот, для них точность компьютеров избыточна, отсюда неэффективное использование аппаратных ресурсов и энергии.

В последние годы количество таких «нетребовательных» к точности счета задач (распознавание, обработка естественного языка и др.) постоянно возрастает; практика показывает, что для их решения удачно подходят методы машинного обучения (Machine Learning, ML). За неимением иного системы ML за редким исключением реализуется на классических процессорах общего назначения (CPU). На недавней конференции Intel было показано, что задачами, так или иначе связанными с ML, занято примерно 7% мировой компьютерной мощности (возможно, это даже слишком оптимистическая оценка — Л.Ч.), причем 97% из этого меньшинства являются традиционными CPU, только примерно 2% приходится на графические ускорители (GPU) и менее 1% на все остальное.

GPU, а точнее, GPU общего назначения (GPGPU) пока еще не очень широко распространения, однако именно с ними совершенно справедливо связывают большие надежды для целей искусственного интеллекта и ML. Дело в том, что в известной мере они могут компенсировать несоответствие CPU этим целям. Но, тем не менее, необходимо иметь в виду, что GPU — это в конечном итоге векторный процессор, как и CPU, построенный по той же фон-неймановской схемы, с теми же врожденными свойствами избыточно точного счета, а любой избыток приводит к понижению КПД и росту стоимости. На сегодняшний день доступного конкурента GPU нет, но альтернативные решения находятся в процессе разработки.

Одной из первых на путь поиска альтернативы GPU вступила корпорация Intel, которая, врочем, не собирается делать GPU. Это стало особенно очевидно сейчас, после покупки производителя программируемых логических матриц Altera и крошечной компании Nervana с технологией Nervana Engine; в Intel выработали собственную программу.

Грядущая конвергенция Intel+Nervana — далеко не единственное альтернативное по отношению GPU решение. В этом отношении наибольшую известность приобрела инициатива Google, нацеленная на создание первого собственного процессора Tensor Processing Unit (TPU), ориентированного, как нетрудно догадаться по названию, на поддержку собственной библиотеки TensorFlow. Еще несколько стартапов разрабатывают собственные подходы к созданию процессоров, адаптированных к требованиям ML; среди них наиболее известны компании Knupath, Cornami, Graphcore и Wave Computing. Их решения еще далеки от масштабного выхода на рынок, но они интересны не с практической, а с «идеологической» точки зрения. Предлагаемые решения носят разные названия (кроме TPU есть еще DPU и IPU), но при этом почти все они попадают в категорию «ускорителей искусственного интеллекта» (AI Accelerator), то есть так или иначе являются дополнением к CPU.

Google

Google — не новичок в области аппаратных разработок, обычно они изрядно засекречены и не ориентированы на рынок: компания достаточно велика, чтобы самой их и потреблять. Первым опытом компании были специализированные поисковые серверы Google Search Appliance, работавшие под управлением CentOS (разновидность Linux) для своих ЦОДов. После этого ходили слухи о разработке собственных CPU на базе ARM V8 или IBM OpenPOWER, но оказалось, что компания решила отдавать предпочтение специализированным процессорам, в частности, для ускорения ML, и следствием стали процессоры TPU. Вот и в данном случае технической информации явно не хватает. Пока о новинке можно судить по отдельным высказываниям. Урс Холцле, отвечающий за создание глобальной сети дата-центров Google, охарактеризовал TPU так: «Это специализированное устройство, универсальные GPU слишком универсальны для задач машинного обучения. Они были созданы не для этой цели».

TPU получили широкую известность в связи с победой программы AlphaGo над человеком в матче Google DeepMind Challenge Match — аналогом матчей Гарри Каспарова и IBM Deep Blue. Программа, играющая в го, использовала TPU, хотя по замыслу она аппаратно-независима. Для потребителей ресурсы TPU будут доступны в Google Cloud Platform; помимо TensorFlow будет обеспечена поддержка библиотек Theano, Caffe и Torch.

Процессор TPU выполнен как большая специализированная интегрированная схема ASIC (схема действительно велика, размер конструктива примерно равен жесткому диску). Тот же Холцле поведал, что в качестве минимального ядра в TPU используется 8-битный целочисленный процессор (это невольно вызывает в памяти процессор Intel 8086/88, использовавшийся в первых компьютерах IBM PC XT, он тоже был 8-битным и целочисленным, опцией к нему был FPU 8087). Количество ядер, системная архитектура, тип межсоединения и другие характеристики не разглашаются.

Тот факт, что TPU выполнен как ASIC, накладывает заметное ограничение. Дело в том, что ASIC программируется один раз в процессе изготовления и программа записывается в схему навсегда. И в этом заключено противоречие, ведь ML — развивающаяся область, улучшения и изменения здесь происходят чрезвычайно быстро. Такой подход, возможно, соответствует требованиям Googlе, но не может быть универсальным. Более универсальны подходы на основе программируемых логических матриц; по этому пути идут Microsoft и Amazon, они могут перепрограммироваться и используют хорошо известные технологии, в этом их преимущество, но FPGA обычно не обеспечивают высокую производительность и стоят дорого.

В литературе использование GPU, ASCI и FPGA иногда называют stopgap measures, то есть средствами, обеспечивающими временное решение, «перекрывающими разрыв». Вот поэтому оказались востребованы принципиально новые решения. Более радикальные решения предлагают наравне с Nervana еще несколько стартапов, созданных специалистами с очень болим практическим и научным опытом, что отличает их от доткомов времен интернет-бума.

Graphcore

Одно из принципиально новых решений предлагает британская компания Graphcore, она называет его Intelligence Processing Unit (IPU). В отличие от CPU, являющихся скалярными процессорами, и GPU, векторными процессорами, IPU проектируются как процессоры графовые. Отсюда и название Graphcore, отражающее основную идею, заложенную в IPU, а именно графовую модель архитектуры. К тому же этот процессор назван «умным» (Intelligence) — и вот почему. По мнению ученых из Graphcore, ум живого человека и создаваемой ими машины обладает двумя важными схожими способностями. Первая — «приблизительные вычисления» (approximate computing), то есть такие вычисления, которые позволяют получить удовлетворительный, пусть и не точный результат даже при нехватке достоверных данных или энергии; у человека мы это называем способностью выносить суждения. Вторая способность — обучение; она может быть сведена к вероятностной модели, построенной а результате обработки накопленных данных. Граф может быть использован для реализации такой модели. Вершины представляют сущности с из данными и вероятностями, а ребра — связи и корреляции между ними. Такая модель позволяет создать процессор с естественным массовым параллелизмом, где множество вершин и множество ребер функционируют одновременно. При этом точность отдельного компонента может быть и невелика, но совместно он позволяют получить приемлемое решение.

Предполагается, что IPU будет выполняться в виде карты-ускорителя, подключаемого по шине PCIe и поддерживаться библиотекой-фреймворком Poplar, созданной той же компанией Graphcore. Использование ускорителя может повысить скорость ML-вычислений на несколько порядков.

Knupath

Компания Knupath в основном реализует идеи своего основателя Дэна Голдина, в прошлом многолетнего руководителя аэрокосмического агентства НАСА и чрезвычайно разностороннего ученого. В результате сотрудничества с нобелевским лауреатом биофизиком Джеральдом Эдельманом он увлекся идеей создания нейроморфного процессора, с архитектурой, использующей в качестве основы разреженные матрицы, состоящие из сигнальных процессоров (DSP). За десять лет работы в 2015 году удалось создать первый работающий образец, он используется в военных целях для фильтрации аудиоинформации, поступающей в процессе боевых операций. В конце 2017 года планируется появление чипа Hermosa и коммутационной системы Lambda, объединяющей эти чипы. Каждый из чипов состоит из 256 ядер DSP и одного ядра на базе процессора архитектуры ARM. В максимальной комплектации система может состоять из 512 тыс. чипов Hermosa. Как и IPU, продукты Knupath могут использоваться в качестве ускорителя, подключаемого по шине PCIe.

Wave Computing

Компания Wave Computing строит свои архитектурные решения на основе потоков данных и процессоров DPU (Data Proccessing Unit). То, что делает Wave Computing можно назвать расширением известной таксономии Флинна. В дополнение в SISD, MISD, SIMD и MIMD предлагается архитектура NIMD; данную аббревиатуру можно расшифровывать как Neural Instruction Multiple Data, либо No Instruction streams Multiple Data streams, что друг другу не противоречит. Идея общая: обрабатывается множество данных без потока команд, свойственного фон-неймановской архитектуре.

В отличие от других команд Wave Computing намеревается делать законченные системы, а не ускорители. Как утверждают представители компании, эти системы способны поддерживать не только TensorFlow, но и Hadoop, Yarn, Spark и Kafka. Первые производственные образцы должны появиться в середине 2017 года, они выполняются по технологии 28 нм; один чип включает в себя 16 тыс. простых процессоров. Планируется переход на технологию FinFET (16 нм), тогда количество процессоров возрастет до 64 тыс. Такие машины будут предоставлять свои ресурсы в виде облачных сервисов.

Cornami

Компания Cornami не создает своих собственных процессоров, но ей, как утверждается, удалось реализовать довольно старую идею «море процессоров» (sea-of-processors) или, как ее стали называть позже, «море ядер» (sea-of-cores). Ее программный продукт TruStream позволяет выполнять приложения на голом металле, без какого-либо программного стека — без операционной системы, без виртуальных машин, без кэширования, без диспетчеризации. Она предложила инструмент для разработки (SDK), который позволяет писать программы на Cи и C++. Утверждается, что в таких условиях скорость выполнения приложения на сервере 1U в режиме sea-of-cores равно производительности целой стойки, состоящей из 40 таких серверов. При всей его привлекательности такого решения оно изрядно напоминает разрекламированные приспособления, позволяющие легко и просто экономить бензин или электроэнергию.


Теги: Авторские колонки