Материалы по тегу: сопроцессоры

01.09.2017 [12:00], Алексей Степин

Первые сведения о процессоре машинного обучения Baidu

Мы продолжаем рассказывать нашим читателям о тенденциях в области аппаратного обеспечения для систем машинного обучения. Все уже знают, что такой гигант, как Google, вложил немалые средства в разработку так называемого «тензорного сопроцессора», о котором не так давно говорилось в одной из наших заметок. Но у Google есть конкурент, а точнее, параллельно работающий с ним гигант — компания Baidu, охватывающая огромный рынок КНР. Неудивительно, что она тоже ведёт исследования в аналогичных областях. Китай — не самая открытая страна, да и коммерческая тайна продолжает оставаться коммерческой тайной, но, тем не менее, кое-что про процессор Baidu под названием XPU стало известно.

Пока китайские разработчики отстают от своих американских коллег: в их распоряжении есть рабочее устройство, но собрано оно на основе больших микросхем программируемой логики (ПЛИС) производства Xilinx. Как показывает практика, это не самое энергоэффективное решение, хотя и более экономичное, нежели использование графических чипов или процессоров x86 общего назначения. По словам главы команды разработчиков, целью является создание универсального процессора, способного справляться с различными задачами и сценариями машинного обучения, и при этом не менее гибкого, нежели обычные ЦП. Пока приходится использовать ПЛИС, а их программирование — сложнейшая задача. Процессор XPU должен будет содержать массив блоков для специализированных вычислений — перемножения матриц, свёртки тензоров и прочих задач.

Этому массиву потребуется широкая шина памяти с высокой пропускной способностью и низкими задержками. Планируется использовать внешнюю DDR4 в связке с многослойной HBM, которая отлично показывает себя в ускорителях NVIDIA. В чипе будет также некоторое количество сверхбыстрой памяти SRAM. Число ядер должно достигнуть 256, а в целом архитектура XPU будет напоминать MIPS. Небольшие ядра обойдутся без кеша, а эффективность будет достигнута за счёт их специализации и параллельного использования. Частота работы всех 256 ядер составит 600 МГц. С системой синхронизации данных масштабируемость устройства будет выше, нежели без таковой.

К сожалению, хотя проект уже и существует в форме ПЛИС, компилятора к новому процессору Baidu пока нет. Код приходится писать на ассемблере, как это делалось раньше в мире x86, но задача значительно сложнее, поскольку приходится заниматься и разделением работы между ядрами, а также проверкой работоспособности в Linux. Пока рано говорить о производительности Baidu XPU, но сама идея выглядит неплохо, и к тому же у компании уже накоплен солидный опыт использования ПЛИС в своих центрах обработки данных. Вполне возможно, что уже подрастает достойный соперник Google TPU, причём, более универсальный.

Постоянный URL: http://servernews.ru/957895
31.08.2017 [06:40], Алексей Степин

Популярность машинного обучения влияет на эволюцию архитектуры процессоров

Процесс развития архитектур центральных процессоров подобен эволюционному. Их создают разработчики для соответствия той или иной эволюционной нише, требующей каких-либо специфических вычислений, наборов инструкций и тому подобное. Иногда эволюционные ниши схлопываются —  и вымирают целые семейства процессоров. В качестве примера можно привести Alpha. Сейчас основную нишу удерживают x86-совместимые решения, но о них чуть позже. В 2017 году уже ни у кого нет сомнений, что возникла новая экологическая ниша — специализированные процессоры для нейронных сетей и машинного обучения.

Google TPU

Google TPU

О таких решениях мы писали неоднократно. Здесь и Google Tensor Processing Unit, и разработка Fujitsu под названием DLU (Deep Learning Unit), и процессор Graphcore IPU (Intelligent Processing Unit), и многочисленные разработки и прототипы на базе ПЛИС компаний Altera и Xilinx, которыми интересуется всё больше крупных владельцев ЦОД по всему миру, например, Baidu. Да и графические чипы последних поколений отлично справляются с задачей создания и натаскивания нейросетей благодаря глубокой степени параллелизма, хотя делают они это не столь экономично, как специально созданные для этой цели решения. Смысл в том, что эволюционная ниша сформирована, и теперь в ней наблюдается типичная борьба за выживание: в графических чипах NVIDIA появляются специальные ядра для тензорных вычислений (в Volta V100 таких ядер 640).

Intel Knights Mill

Intel Knights Mill

Обычно эти ядра оперируют математикой с упрощённой точностью (32 и 16 бит с плавающей запятой, а иногда и целочисленными форматами вплоть до 8 битных). У AMD есть аналогичный продукт — ускорители серии Radeon Instinct. Но что самое интересное, эволюционная «мутация» закрепляется и в обычных, казалось бы, x86-совместимых процессорах — совсем недавно мы описывали читателям чипы Intel Knights Mill, в которых часть общей производительности принесена в угоду производительности на специализированных задачах машинного обучения. Кто победит в эволюционной гонке? Пока сказать трудно. Такие решения, как NVIDIA Volta и Radeon Instinct может ждать судьба динозавров — по соотношению энергопотребления к производительности в специальных задачах они проигрывают тому же Google TPU.

Fujitsu Deep Learning Unit

Fujitsu Deep Learning Unit

Роль протомлекопитающих в этом процессе, судя по всему, играют решения на базе ПЛИС, а королями нейронных сетей станут специализированные мощные процессоры, такие, как Google TPU. Но эволюция — процесс нелинейный, и ряд ниш вполне может найтись для решений, способных не только работать с системами машинного обучения. К тому же, сами системы обучения могут быть очень разными и требовать гибкости, к которой чипы типа ASIC не способны по определению. Может потребоваться и параллельное выполнение задач иного порядка, так что чипам вроде Intel Knights Mill тоже найдётся место на ветвистом дереве эволюции процессоров. Пока ясно одно —  «ген» машинного обучения поселился в современных процессорах надолго.

Постоянный URL: http://servernews.ru/957816
25.08.2017 [12:18], Алексей Степин

Подробности о тензорном сопроцессоре Google TPU

Не столь давно мы рассказывали о том, что в гонке решений, призванных ускорить работу нейросетей и оптимизировать процесс машинного обучения, компания Google принимает самое непосредственное участие с чипом собственной разработки с незамысловатым названием TPU (Tensor Processor Unit). Генеральный директор компании Сундар Пичаи (Sundar Pichai) тогда заявил, что эти процессоры на порядок эффективнее менее специализированных решений, таких, как FPGA или GPU.

Архитектура и особенности Google TPU хранились в строжайшем секрете, но теперь мы, наконец, можем узнать об этих ускорителях много нового. Сама плата ускорителя выполнена в нестандартном форм-факторе, она имеет разъём, похожий на M.2, но на самом деле диаграммы указывают на использование интерфейса PCI Express 3.0 x16. В каждом сервере Google, рассчитанном на установку TPU, может устанавливаться четыре таких ускорителя, выполняющих операции с плавающей запятой.

Сам процессор имеет двухканальный контроллер памяти DDR3-2133 МГц и на его плате установлено 18 чипов DDR3 общим объёмом 8 Гбайт. Судя по количеству чипов, используется коррекция ошибок. Главной частью процессора является матрица, выполняющая операции умножения-сложения (multiply-accumulate). Размер этой матрицы составляет 256 × 256, работает она с 8-битными данными на частоте 700 МГц. Пиковая производительность при этом достигает почти 92 триллионов операций в секунду. Ничего удивительного, блоков MAC у TPU в 25 раз больше, нежели у современных GPU.

Имеется 4 Мбайт выделенной регистровой (accumulator) памяти и 24 Мбайт унифицированного буфера, это больше, чем у большинства графических процессоров; Google говорит о превосходстве в 3,5 раза. С внутренней пропускной способностью проблем нет. Пул результатов имеет доступ к буферу на скорости 167 Гбайт/с, тот связан с общим интерфейсом шиной 10 Гбайт/с. Производительность подсистемы памяти достигает 30 Гбайт/с, а с внешним миром сопроцессор общается на скорости, доступной интерфейсу PCIe 3.0 (8 гигатрансфер/с в каждом направлении).

C точки зрения программиста TPU очень прост и имеет всего 11 инструкций из которых 5 основных: read_host_memory, write_host_memory, read_weights, matrix_multiple/convolve и activate. Каждая инструкция выполняется не более, чем за 10 тактов, имеется четырёхстадийный параллельный конвейер, каждая стадия которого может выполнять независимо одну из инструкций. Пока блок матричного перемножения занят, процессор умеет выполнять другие инструкции. Ветвления отсутствуют, внеочередного исполнения нет, управление буферами и синхронизацией конвейера полностью прозрачно для программиста. Проблема с промежуточными обращениями в SRAM была решена методом «систолического исполнения».

Лучше всего этот процесс представлен на диаграмме, где потоки двигаются слева вниз, сначала происходят операции сложения, а потом аккумуляции. Архитектура такова, что задержки конвейера процессор может игнорировать. Впервые TPU появились в центрах обработки данных Google ещё в 2015 году, до Haswell и NVIDIA Tesla K80. В обоих случаях размер кристалла и уровень энергопотребления оказались меньше, нежели у конкурирующих решений. Компания признаёт, что основным лимитирующим производительность TPU фактором является пропускная способность памяти, а также считает, что обычные процессоры и GPU более универсальны и сбалансированы, но серьёзно уступают TPU в производительности. В новых версиях TPU память DDR3 уступит место более перспективной HBM, хотя исследования с GDDR5 показали хороший прирост производительности. Ситуация чем-то похожа на добычу биткоинов: сначала использовались универсальные ЦП, потом скорость удалось поднять за счёт параллелизма GPU, но узкоспециализированные ASIC, заточенные под одну задачу, превзошли все иные решения именно из-за своей простоты и экономичности.

Как именно Google использует TPU в машинном обучении, компания пока предпочитает хранить в тайне, что неудивительно — с 92 триллионами операций в секунду её решения просто не имеют достойных в плане производительности конкурентов. По крайней мере, пока. Да, точность вычислений невелика (int8), но для задач машинного обучения и натаскивания нейросетей этого в большинстве случаев вполне достаточно.

Постоянный URL: http://servernews.ru/957543
24.07.2017 [22:55], Алексей Степин

Fujitsu разрабатывает специализированный процессор для систем ИИ

Глубокое машинное обучение и системы искусственного интеллекта в наше время являются очень популярными направлениями. Но современные процессорные архитектуры для задач подобного рода подходят далеко не лучшим образом, поэтому всё больше и больше разработчиков микроэлектроники обращаются к альтернативным и специализированным дизайнам. В гонку за искусственным интеллектом включился и такой японский гигант как Fujitsu — компания объявила о том, что ведёт работы над созданием специализированного процессора. Проект носит кодовое имя DLU (Deep Learning Unit), что в полной мере раскрывает его предназначение. Основной целью проекта является достижение десятикратного преимущества над конкурирующими решениями по соотношению «производительность на ватт». В разработке DLU находится с 2015 года, но лишь в этом году стали известны некоторые подробности об архитектуре нового процессора Fujitsu.

Глава отдела разработок ИИ, Такуми Маруяма (Takumi Maruyama), отметил, что архитектура DLU активно использует вычисления со сравнительно низкой точностью, как это делают и многие другие чипы, предназначенные для глубокого машинного обучения. Это позволяет добиться оптимального соотношения производительности и потребляемой мощности. Чип DLU поддерживает форматы FP32, FP16 INT16 и INT8, и компания продемонстрировала, что даже целочисленные 8 и 16-битные форматы могут эффективно использоваться в ряде задач машинного обучения без серьёзных проблем, вызванных низкой точностью вычислений. Архитектура Fujitsu DLU спроектирована таким образом, чтобы быть полностью управляемой со стороны программного обеспечения. Процессор разбит на блоки DPU (Deep Learning Processing Units), их общее количество может быть разным, но каждый блок DPU состоит из 16 более простых блоков DPE (Deep Learning Processing Elements).

В свою очередь, каждый DPE состоит из восьми блоков исполнения SIMD-инструкций и большого набора регистров. Последний, в отличие от традиционных кешей, полностью управляем программно. В состав чипа также входит некоторый объём памяти HBM2, которая выступает в роли кеша, а также интерфейсы межпроцессорной шины Tofu. Последняя позволяет объединять массив DLU в единую сеть с развитой топологией. Структура этой сети приведена на слайде выше. Как обычно, специализированные процессоры, к числу которых относится и Fujitsu DLU, работают в тандеме с процессорами общего назначения. В данном случае компания планирует использование чипов с архитектурой SPARC, что неудивительно — именно Такуми Маруяма принимал самое активное участие в разработке этой архитектуры начиная с 1993 года. Первый выход DLU на рынок запланирован на 2018 год, именно в виде сопроцессора, но у Fujitsu имеются и планы по интеграции данной архитектуры в ЦП общего назначения с архитектурой SPARC. Соперниками новинки будут чипы Intel Lake Crest, ускорители Radeon Instinct, а также чипы NVIDIA. Последняя имеет неплохую фору в сфере машинного обучения и конкурировать с ней будет непросто.

Постоянный URL: http://servernews.ru/955927
18.07.2017 [11:39], Алексей Степин

Российские учёные разработали модулярно-логарифмический сопроцессор

Как известно, классические процессорные архитектуры проявляют себя хорошо при решении определённого круга задач, но в ряде особых случаев разработчики вынуждены применять специализированные сопроцессоры, поскольку эффективность обычных ЦП в этих случаях низкая, и они решают задачу, что называется, в лоб — количественным методом, затрачивая на это чудовищное количество системных ресурсов. Сопроцессоры же способны решать такие задачи гораздо быстрее. Простейшим примером могут послужить вычисления с плавающей запятой: сейчас блоки FPU интегрированы в основной кристалл, но когда-то они были отдельными чипами — Intel 8087/80287/80387 или других производителей, таких, как Weitek. В качестве современного примера можно привести векторные процессоры NEC Aurora, о которых мы рассказывали читателям ранее.

Похожего класса разработки имеются и у российских учёных: так, в лабораториях ВНИИЭФ разработан уникальный модулярно-логарифмический сопроцессор, первый научный доклад о котором прозвучал на суперкомпьютерном форуме НСКФ-2016. Глава команды разработчиков, Илья Осинин, заявил, что благодаря использованию нетрадиционной логарифмической системы счисления удалось добиться десятикратного ускорения производительности на операциях умножения и стократного — на операциях деления. И это не только теория: сопроцессор был проверен в работе и аппаратно. Для прототипирования были использованы чипы ПЛИС производства Altera — так поступают практически все разработчики сложных вычислительных устройств, когда им нужно проверить свои теории на практике. Данной разработкой заинтересовались сразу три российских разработчика: АО «МЦСТ», Baikal Electronics и НИСИ РАН.

Внимание со стороны МЦСТ вполне логично: у этой команды уже налажен выпуск восьмиядерных 64-битных процессоров Эльбрус-8С, на основе которых планируется строить не только серверы и рабочие станции, но также и кластерные системы и суперкомпьютеры, в которых сопроцессор Осинина может принести немало пользы. По данным разработчиков, этот чип в 1000 раз быстрее Intel Xeon E5-2697 v3 (Haswell-EP, 14С/28T, 2,6 ГГц, 35 Мбайт L3, 145 ватт) при вычислении логарифмов и в три раза быстрее при обработке сложных полиномов. Интересно, что архитектура у новой разработки гибкая и имеет возможность реконфигурации на лету, что, в числе прочего, позволяет заменять отказавшие вычислительные блоки не прерывая вычислений. Это наверняка оценят как учёные, так и военные. Имеющийся прототип, выполняющий 4 операции за такт, оценивается в 9,2 миллиона транзисторов, что весьма немного по меркам современной индустрии.

При увеличении количества вычислительных блоков до 32 возможности модулярно-логарифмического сопроцессора сравняются с блоком AVX-512, реализованном в процессорах Intel Xeon Phi семейства Knights Landing, но транзисторный бюджет составит всего 73,6 миллиона транзисторов против 86 миллионов у Intel —  налицо 17 % экономия, а значит, и более низкая себестоимость. Помимо этого, группировка ядер в новой архитектуре позволяет выполнять 1024-разрядные операции за один такт, чего не умеет блок расширений AVX-512, ограниченный 512 разрядами за такт. О полной победе над Intel говорить рано, поскольку образец пока работает лишь на частоте 100 МГц — в 26 меньше, чем у решения Intel. Речь идёт о финальной версии с аналогичной частотой 2,6 ГГц, что вполне достижимо в финальной версии с собственным кремнием. Совместим новый сопроцессор не только с решениями МЦСТ, но и практически с любым другим процессором. Из отечественных решений названы чипы Байкал-М и KOMDIV-64.

Постоянный URL: http://servernews.ru/955609
Система Orphus