FPGA-ускорители уходят в облака

в 8:21, , рубрики: fpga, FPGA Altera, fpga дизайн, fpga/asic, Блог компании Селектел, высокая производительность, высокопроизводительные вычисления, Облачные вычисления

FPGA-ускорители уходят в облака, статья от Selectel

Появление на рынке FPGA-ускорителей, которые можно перепрограммировать сколь угодное число раз, причем на языке высокого уровня типа "С", стало настоящим прорывом в нише высокопроизводительных вычислений. Но не меньшим прорывом стала возможность использовать технологию FPGA, не покупая эти весьма дорогостоящие адаптеры (цена в России от 250 тыс.руб.), — а просто арендуя выделенный сервер с ускорителем в облаке провайдера.

Введение или о чипах FPGA в 3-х абзацах

Микросхема FPGA (англ. field-programmable gate array), она же программируемая пользователем вентильная матрица (ПЛИС), — это тип микропроцессорного чипа, который можно относительно легко перепрограммировать и перепрофилировать под любые сложные вычислительные задачи, требующие специализированных процессоров. Потребность в специализированных процессорах существовала в индустрии IT практически всегда, — от управления космическими аппаратами и до расчетов по финансовым моделям. Однако до появления FPGA слабым местом специализированных процессоров была жесткая функциональность, заложенная в микросхему, а также высокая сложность и стоимость на этапе производства. Если алгоритм требовалось потом хоть чуть-чуть изменить, то нужно было создавать почти что новый чип.

FPGA-ускоритель с чипом Intel Altera Arria 10 для шины PCI Express

FPGA-ускоритель с чипом Intel Altera Arria 10 и портами 10GE

Появление на рынке FPGA-ускорителей, которые можно перепрограммировать сколь угодное число раз, причем на языке высокого уровня типа С, стало настоящим прорывом в нише высокопроизводительных вычислений. Это позволило ускорить время разработки, время выхода продуктов на рынок. Появились совершенно новые возможности для разработчиков аппаратных средств, в т.ч. работающих над программированием специализированных интегральных схем (ASIC, application-specific integrated circuit).

FPGA-процессоры прошли уже 2 этапа с точки зрения доступности этой технологии и сегодня активно входят в третий этап. Первые FPGA появились в 1985 году, но их программирование по-прежнему требовало знания языка низкого уровня типа ассемблера. На втором этапе, который начался примерно в 2013 году, и благодаря усилиям компании Altera, появилась возможность программирования на С-подобном языке высокого уровня. Это кардинально расширило применимость FPGA, но высокая стоимость чипов по-прежнему сдерживала расширение круга клиентов, которые могли бы себе позволить эту технологию.

И, наконец, где-то с 2016 года можно говорить о третьем этапе, который ознаменовался доступностью для широкого круга клиентов полностью готовых серверов (физических и виртуальных) с FPGA-процессорами в облаках крупнейших дата-центров — Amazon Web Services (AWS), Cloud Alibaba и Huawei Cloud. В России впервые выделенные серверы с FPGA-процессорами стали доступны в дата-центре Selectel с 2017 года.

Зачем нужны FPGA-ускорители? Потоки данных растут с гигантской скоростью, средства управления и моделирования данными становятся кардинально сложнее. Добавление платы FPGA-ускорителя в обычный сервер делает его гетерогенной вычислительной системой, где наряду с универсальным процессором имеется спецпроцессор с гигантской производительностью, но только для определенной задачи. Все остальные задачи этот сервер будет решать как обычный компьютер.

Базовые отличия FPGA от CPU, GPU

У каждого типа процессора, —универсального (CPU), графического (GPU) или FPGA, — есть свои преимущества, иначе бы их просто не стали производить. CPU обеспечивают хорошую производительность при высшей степени универсальности и применимости. Порядка 99% всех существующих программ написаны для исполнения под CPU. У графических процессоров GPU большее число ядер и векторная архитектура, высокая скорость обмена с памятью и ввода-вывода. FPGA обладают самой большой производительностью на Ватт потребляемой мощности за счет свойств аппаратуры, но требуют очень тщательного и трудоемкого программирования.

Ниже об этих отличиях чуть подробнее:

  • Универсальные процессоры CPU — это по сути, рабочие лошадки IT-индустрии. Их можно использовать для самых разнообразных задач, но ввиду своей архитектуры CPU не столь эффективны для параллельных вычислений. В последние годы эта проблема частично решается за счет имплементации в чипе процессора множества ядер. Однако даже у самых производительных CPU число ядер пока измеряется немногими десятками.
  • Графические процессоры (GPU) долгие годы работали только в нише отображения информации на экране. И лишь относительно недавно GPU стали применяться для задач высокопроизводительных вычислений, в том числе майнинга криптовалют. Работа с графикой как векторными задачами привела к такому развитию архитектуры GPU, которая стала приспособленной для целей параллельных вычислений. Как результат, современной архитектура графического процессора позволяет ускорить прогон векторизованных данных через свои конвейеры, которые в противном случае пришлось бы запускать через многие другие логические блоки в CPU с соответствующей потерей в производительности. Современные GPU содержат в чипе несколько тысяч процессорных ядер.
  • FPGA, в отличие от универсального и графического процессоров, можно перепрограммировать в соответствии с особенностями решаемой на них вычислительной задачи. Получается синтез специализированного процессора под конкретную задачу. Другими важными отличиями FPGA является пониженное энергопотребление в расчете на единицу вычислительной мощности, а также архитектура с параллельным исполнением множества векторных операций одновременно — так называемая массивно-параллельная мелкозернистая архитектура. Число ядер в чипе FPGA может достигать одного миллиона и более.

FPGA-ускоритель представляет собой адаптер, который кроме чипа FPGA содержит на плате локальную оперативную память типа HBM (память DRAM с высокой пропускной способностью) и высокоскоростные интерфейсы ввода-выводы, такие 10/40 GE и PCI Express. FPGA-ускорители также выпускаются в форм-факторе SOM (как одномодульные системы).
image
FPGA-ускоритель в форм-факторе SOM

Каждый чип FPGA содержит в себе более миллиона ячеек, перепрограммируемых под разные функции — кэш-память, сигнальные процессоры, блоки цифровой обработки, блоки интерфейсов.

Почему FPGA выигрывает в производительности у ASIC? Ответ очень простой — благодаря более совершенным техпроцессам создания кристаллов. Для FPGA применяются техпроцессы уровня 20 нм и даже 14 нм. В то время как для создания кристаллов ASIC используются более «древние» техпроцессы уровня 60 нм. Соответственно, на той же площади кристалла у FPGA можно расположить в разы большее число логических ячеек, чем у ASIC, что и обеспечивает выигрыш в производительности.

Области применения FPGA

С момента своего изобретения и вплоть до сегодняшних дней одним из базовых направлений применения FPGA было и остается прототипирование микросхем для мелко- и среднесерийных изделий, когда изготовление микросхем ASIC экономически нецелесообразно.

На начало 2018 года, по сведениям российской компании Алмаз-СП, сферы применения FPGA –ускорителей выглядели следующим образом:

  • 50% — спецприменения в военной и промышленной электронике,
  • 10% — прототипирование,
  • 20% — телекоммуникации (оборудование базовых станций GSM и др.),
  • 10% — обработка видеопотоков (видеостудии, видеоаналитика),
  • 10% — научное применение, в том числе в биотехнологиях.

Однако, несмотря на преимущественно военное применение в прошлом, сфера гражданского использования FPGA –ускорителей растет сейчас гораздо быстрее. В 2015 году Intel приобрела одного из крупнейших производителей FPGA — компанию Altera. Разработки Altera теперь воплощаются в кремний уже под брендом Intel. И новая линейка FPGA-чипов, известная как Intel Cyclone 10 не заставила себя ждать. Модели чипа Cyclone 10 GX показывают очень высокую производительность (до 134 GFLOP) и имеют расширенные возможности ввода-вывода. Подключение к другим устройствам выполняется через сетевой порт 10GE или по шине PCI Express x4. Эти FPGA-чипы предназначены для систем машинного зрения, наблюдения, видео трансляций, а также робототехники. Младшая модель чипа Cyclone 10 LP реализована как вычислительное ядро для инженерных систем — управления комплексами датчиков, контроллерами двигателей и так далее.

Кроме линейки Cyclone, в производственной программе Intel присутствуют и другие серии FPGA-чипов, унаследованные от Altera: MAX, Arria и Startix. Последние две серии — самые мощные чипы FPGA из существующих на рынке, в 2018 году ожидается их обновление до уровня Arria 10 и Startix 10. Startix 10 будет построена на гиперфлекс-архитектуре и обладать производительностью 10 терафлопс (т.е. почти на 3 порядка мощнее Cyclone 10).

Серии Cyclone, MAX, Arria и Startix частично перекрывают друг-друга по производительности, но Intel позиционирует каждую серию отдельно. Для Arria это сигнальные процессоры для приборостроения, для Startix — высокопроизводительные вычисления в дата-центрах, телекоммуникациях. Про области применения для серии Cyclone, которая единственная получила обновления в 2017 году, мы уже говорили. Но еще одну такую область применения для Cyclone стоит упомянуть обязательно — это «Интернет вещей», IoT.

Более 50% случаев применения FPGA –ускорителей приходится на военную и промышленную электронику, но сфера гражданских задач и научных расчетов быстро растет.

Понятие образа в технологии FPGA

Выше мы перечислили популярные на сегодня серии чипов FPGA от Intel, — но чтобы их использовать в серверах, потребуется приобрести платы FPGA-ускорителей и осуществить программирование логики чипов на адаптере под конкретную прикладную задачу. Платы адаптеров доступны у Intel, а также у ее партнеров, входящих в сообщество FPGA Design Solutions Network. В частности, в России таким партнером является ООО «Алмаз-СП» (также участвует в Эйлер проджект), поставляющее как оригинальные адаптеры Intel, так и платы собственной разработки с чипами FPGA последних поколений.

Демонстрация сервера с FPGA-ускорителем на конференции SelectelTechDay #2, в центре - Антон Висто, представитель ООО «Алмаз-СП»

Демонстрация сервера с FPGA-ускорителем «Алмаз-СП» на SelectelTechDay #2

Демо-зона аппаратных новинок на SelectelTechDay #2. Первый слева - FPGA-сервер от «Алмаз-СП»

Демо-зона аппаратных новинок на SelectelTechDay #2 (FPGA — первый сервер слева)

Программирование логики FPGA осуществляется с помощью комплекта для разработчиков Intel FPGA SDK for OpenCL. Результатом программирования является микропрограмма, решающая конкретную прикладную задачу (например, расчет матрицы уравнений, преобразование видео-форматов и т.д.). Такая микропрограмма называется FPGA-образом (FPGA Image). Достаточно часто вместо термина «образ» используется термин «IP-ядро», в данном случае они являются синонимами.

FPGA-образ (FPGA Image) — это управляющая микропрограмма для чипа FPGA, разработанная и отлаженная для выполнения специализированной вычислительной задачи.

Трудности доступа к технологии FPGA для клиентов

Несмотря на привлекательную концепцию, — «высочайшая производительность под конкретную вычислительную задачу», — широкому распространению FPGA мешают два объективных фактора. Это высокая стоимость адаптера с чипом FPGA и дефицит разработчиков, имеющих практический опыт программирования и отладки FPGA-ядер.

Потенциальные клиенты активно интересуются этой технологией, но не спешат с приобретением адаптеров. В основном это связано с опасениями, что затраты на адаптер(ы) будут существенными для их ИТ-бюджета, а in-house команда не сможет на должном уровне освоить программирование и отладку FPGA-образов.

Облачные вычисления на FPGA

Облачные сервиса FPGA появились как ответ на высокую стоимость плат ускорителей с чипом FPGA. В этом случае клиентам предлагаются в аренду физические и/или виртуальные серверы с установленными в них FPGA-ускорителями. Как правило, это партнерский продукт от производителя (например, Intel) и дата-центра как провайдера IaaS-услуг.

FPGA-сервер с ускорителем от «Алмаз-СП» можно бесплатно протестировать в дата-центре Selectel

FPGA-сервер с ускорителем от «Алмаз-СП» можно бесплатно протестировать в дата-центре Selectel

В таком виде FPGA-технология становится более привлекательной для клиентов, так как им уже не нужно приобретать непосредственно «железо», а капитальные расходы заменяются на операционные. Соответственно, значительно расширяется круг компаний, которые могут позволить себе использование расчетов на FPGA-ускорителях для своих проектов.

Облачная модель использования серверов с FPGA-ускорителями дает доступ к этой технологии для множества новых клиентов, которые хотели бы попробовать "как это работает" на своих конкретных проектах и вычислительных задачах.

Концепция магазина образов FPGA

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

Поэтому сама собой напрашивается концепция магазина образов, — по аналогии с существующими магазинами приложений для таких платформ как MacOS, Windows или Android. Разработчики могли бы передавать туда работоспособные образы, созданные ими для различных задач, а клиенты — приобретать их для загрузки на свои серверы с FPGA-ускорителями, если эти образы соответствует вычислительным задачам в их проектах.

В компании Selectel в 2018 году начата работа над созданием подобного магазина образов FPGA, которые можно было использовать на арендованных серверах Selectel с этой технологией. Тем самым, для клиентов значительно ускорился бы цикл разработки для новых проектов, а сами программисты (авторские коллективы) получили бы определенный доход от ранее проделанной работы, плюс были бы защищены от пиратского распространения образов по рынку без их согласия.

Полезная ссылка:
Бесплатное тестирование выделенного сервера с адаптером FPGA в Selectel Labs

Автор: sergbe

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js