Появление на рынке FPGA-ускорителей, которые можно перепрограммировать сколь угодное число раз, причем на языке высокого уровня типа "С", стало настоящим прорывом в нише высокопроизводительных вычислений. Но не меньшим прорывом стала возможность использовать технологию FPGA, не покупая эти весьма дорогостоящие адаптеры (цена в России от 250 тыс.руб.), — а просто арендуя
- Введение в 3-х абзацах
- Базовые отличия FPGA от CPU, GPU
- Области применения FPGA
- Понятие образа конфигурации (IP ядра, имиджа)
- Трудности доступа к технологии для клиентов
- Облачные вычисления на FPGA
- Концепция магазина образов конфигурации FPGA
Введение или о чипах FPGA в 3-х абзацах
Микросхема FPGA (англ. field-programmable gate array), она же программируемая пользователем вентильная матрица (ПЛИС), — это тип микропроцессорного чипа, который можно относительно легко перепрограммировать и перепрофилировать под любые сложные вычислительные задачи, требующие специализированных процессоров. Потребность в специализированных процессорах существовала в индустрии IT практически всегда, — от управления космическими аппаратами и до расчетов по финансовым моделям. Однако до появления FPGA слабым местом специализированных процессоров была жесткая функциональность, заложенная в микросхему, а также высокая сложность и стоимость на этапе производства. Если алгоритм требовалось потом хоть чуть-чуть изменить, то нужно было создавать почти что новый чип.
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 (как одномодульные системы).
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
Демо-зона аппаратных новинок на 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-технология становится более привлекательной для клиентов, так как им уже не нужно приобретать непосредственно «железо», а капитальные расходы заменяются на операционные. Соответственно, значительно расширяется круг компаний, которые могут позволить себе использование расчетов на FPGA-ускорителях для своих проектов.
Облачная модель использования серверов с FPGA-ускорителями дает доступ к этой технологии для множества новых клиентов, которые хотели бы попробовать "как это работает" на своих конкретных проектах и вычислительных задачах.
Концепция магазина образов FPGA
Создание эффективно работающего FPGA-образа для определенной прикладной задачи — достаточно трудоемкая и длительная по времени задача. У хорошо слаженной команды на программирование образа может уйти до пары месяцев, а менее опытные клиенты потратят гораздо больше времени, а то и не справятся с этой задачей вообще.
Поэтому сама собой напрашивается концепция магазина образов, — по аналогии с существующими магазинами приложений для таких платформ как MacOS, Windows или Android. Разработчики могли бы передавать туда работоспособные образы, созданные ими для различных задач, а клиенты — приобретать их для загрузки на свои серверы с FPGA-ускорителями, если эти образы соответствует вычислительным задачам в их проектах.
В компании Selectel в 2018 году начата работа над созданием подобного магазина образов FPGA, которые можно было использовать на арендованных серверах Selectel с этой технологией. Тем самым, для клиентов значительно ускорился бы цикл разработки для новых проектов, а сами программисты (авторские коллективы) получили бы определенный доход от ранее проделанной работы, плюс были бы защищены от пиратского распространения образов по рынку без их согласия.
Полезная ссылка:
Бесплатное тестирование выделенного сервера с адаптером FPGA в Selectel Labs
Автор: sergbe