Молодая компания Rex Computing совместно с Adapteva и Facebook разрабатывают новую архитектуру многоядерного процессора для повышения энергоэффективности серверов и оптимизации параллельных вычислений в целом.

Сегодня на рынке представлено множество типовых решений, но любая эффективная конфигурация разрабатывается под конкретную задачу. Потери от избыточных компонентов тем заметнее, чем масштабнее содержащая их вычислительная система. Ещё в 2011 году компания Facebook всерьёз занялась оптимизацией архитектуры своих дата-центров с целью снижения расходов на их обслуживание. Инициатива породила проект открытых вычислений OCP (Open Compute Project, не путать с Omni Consumer Products), в рамках которого все заинтересованные компании разрабатывают эффективные конфигурации совместными усилиями.

Кластер Rex Computing на базе процессоров Neo собственной архитектуры, разработанный в рамках проекта OCP (изображение: rexcomputing.com).
Кластер Rex Computing на базе процессоров Neo собственной архитектуры, разработанный в рамках проекта OCP (изображение: rexcomputing.com).

В прошлом году Facebook провела ещё один эксперимент, в рамках которого инженеры выявили избыточность существующей конфигурации серверов для нужд компании. В частности, сокращение эффективного объёма кэш-памяти процессоров с 3 МБ до 0,5 МБ не привело к уменьшению скорости обработки данных.

Аналогичные исследования проводила и Google, после чего традиционные архитектуры процессоров тоже были признаны избыточными для большинства задач. Серверы на базе специфических архитектур Power, SPARC, IA-64 стали во многих сценариях практического использования проигрывать по уровню затрат более дешёвым решениям на основе x86-64 систем.

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

Сейчас крупные компании начали миграцию на ARM-серверы ради экономии. Они тратят меньше электроэнергии и обходятся в целом дешевле. Однако технология создания кластеров с чипами архитектуры ARM ещё сырая, и её можно существенно оптимизировать. Именно это и пытаются сделать в Rex Computing, основанной в прошлом году двумя студентами.

Сопроцессоры Epiphany обеспечивают 50 Гфлопс/Вт в самом миниатюрном суперкомьпютере Adaptiva-A1 (фото: Primeur Magazine).
Сопроцессоры Epiphany обеспечивают 50 Гфлопс/Вт в самом миниатюрном суперкомьпютере Adaptiva-A1 (фото: Primeur Magazine).

Сначала в рамках проекта OCP инженеры Rex Computing и Servergy создали прототип сервера, использующий 32 ядра ARM Cortex A9 и сопроцессоры Adapteva Epiphany III, интегрированные на программируемой вентильной матрице Xilinx Zynq. Затем идея получила дальнейшее развитие, и на базе ядра Adapteva Epiphany разработали новую процессорную архитектуру.

Схема процессорного ядра Neo (изображение: rexcomputing.com).
Схема процессорного ядра Neo (изображение: rexcomputing.com).

В конце ноября Rex Computing представила экспериментальный чип Neo, в котором на площади 80 мм2 уместились 256 ядер суммарным потреблением всего три ватта. Каждое ядро состоит из 64-разрядного блока целочисленных операций, блока для выполнения операций с плавающей запятой и 128 КБ памяти SRAM. Коммутация между ядрами выполняется на скорости до 16 ГБ/с, а между чипами – 384 ГБ/с.

“Идея состоит в том, чтобы разработать базовую архитектуру, которая сможет стать основой для будущих эффективных систем”, – поясняет сооснователь Rex Computing Томас Сомерс (Thomas Sohmers).

Каждое суперскалярное ядро RISC-архитектуры, способно выполнять две целочисленных инструкции за такт. Блок FPU выполняет за такт одну инструкцию двойной точности (FP64) или две одинарной (FP32). Соответственно, теоретическая производительность одного чипа Neo составляет до 512 Гигафлопс, а энергоэффективность бьёт все рекорды, достигая 170 Гигафлопс на ватт.

Контроллер GaMMU для интеграции чипов Neo в многопроцессорных системах (изображение: rexcomputing.com).
Контроллер GaMMU для интеграции чипов Neo в многопроцессорных системах (изображение: rexcomputing.com).

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