Microsoft Catapult Fabric превращает программное обеспечение в оборудование


Microsoft пытается радикально ускорить работу своих серверов Bing, используя оборудование, которое можно перенастроить для реализации алгоритмов ранжирования. Это может быть путь к повышению производительности в целом ряде ситуаций.

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

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

Проблема в том, что одна ПЛИС мало что дает, поэтому оснащение серверной фермы одной ПЛИС на каждый сервер не очень помогает. Использование нескольких FPGA на сервере было бы слишком дорого и довольно расточительно.

Здесь на сцену выходит проект Catapult, который пытается создать «Реконфигурируемую структуру». Команда Microsoft Research придумала способ создания серверов, дополненных ПЛИС, которые могут выполнять эту работу вдвое быстрее.

Текущая система состоит из 48 серверов, каждый с небольшой платой FPGA, содержащей FPGA среднего размера и некоторое количество DRAM. FPGS подключены друг к другу, чтобы создать сетку 6×8, охватывающую края. Это позволяет выделять группы ПЛИС для реализации конвейера обработки.

Сервер половинной ширины 1U Catapult

Когда сервер хочет ранжировать документ, он преобразует его в форму, подходящую для FPGA, и отправляет его на свою локальную FPGA, которая затем направляет его по внутренней сети FPGA в начало конвейера ранжирования восьми FPGA. По завершении результат возвращается обратно на FPGA запрашивающего сервера.

Плата FPGA — по одной на каждый сервер, подключенный к сети.

Система полностью реконфигурируема и спроектирована так, чтобы быть отказоустойчивой за счет переназначения ПЛИС в случае какого-либо сбоя. Система была протестирована с 34 банками из 48 кластеров серверов, укомплектованных сетями FPGA. Эксперимент доказал, что вы можете почти удвоить (улучшение на 95%) общую скорость ранжирования, то есть новая архитектура фактически удваивает тактовую частоту сервера. ПЛИС на самом деле выполняли задачу ранжирования в 40 раз быстрее, чем процессоры, но центральному процессору еще предстояло проделать некоторую работу.

Вы можете узнать некоторые подробности из следующего видео Microsoft:

Вы можете спросить, почему бы просто не создать какое-нибудь нестандартное оборудование?

Ответ заключается в том, что FPGA дешевле и, будучи реконфигурируемой, могут использоваться для реализации настроек или даже совершенно других алгоритмов. Это примерно настолько близко к программному обеспечению, которое реализовано на оборудовании.

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


Добавить комментарий