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

1. Пейзаж

На одном конце спектра, показанного ниже, центральные процессоры (ЦП) общего назначения обеспечивают высокий уровень гибкости при разработке программных приложений. С другой стороны, специализированные интегральные схемы (ASIC) реализуют функции в аппаратном обеспечении, а их архитектура может быть адаптирована для обработки рабочих нагрузок на порядки быстрее, чем процессоры. Графические процессоры (ГП) и программируемые вентильные массивы (ПЛИС) представляют собой промежуточные альтернативы, которые могут обрабатывать рабочие нагрузки быстрее, чем ЦП, и более гибкие, чем ASIC.

2. ЦП и ГП: архитектура с гибким набором команд.

Первые архитектуры ЦП относятся к 1940-м годам (Гарвард: 1939, Фон Нейман: 1945), когда количество транзисторов на одном кристалле было ограничено несколькими сотнями, а скорость транзистора была намного ниже, чем скорость транзистора. объем памяти.

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

  • загрузить инструкцию в арифметико-логический блок (ALU)
  • загрузить данные в регистры - выполнить ALU
  • хранить данные в памяти

Простая аналогия: ЦП - это квалифицированный мастер, работающий на верстаке, с помощниками, приносящими инструменты (инструкции) и материалы (данные).

Современные процессоры содержат несколько процессоров на одном кристалле и могут обрабатывать несколько инструкций параллельно. Тем не менее, ЦП или набор ЦП вряд ли могут эффективно обрабатывать большие объемы данных, например изображения.

Графические процессоры были изобретены в 1970-х годах после повышения скорости транзисторов и увеличения их количества на одном кристалле, чтобы справиться с ограничениями ЦП за счет параллельной обработки различных блоков изображения.

Архитектура графического процессора основана на архитектуре центрального процессора путем репликации ALU (несколько сотен раз в наши дни), как показано справа на приведенном выше рисунке. Все ALU параллельно выполняют одну и ту же последовательность инструкций на разных срезах данных:

  • загрузить общую инструкцию в ALU
  • загружать срезы данных в регистры
  • выполнить ALU
  • хранить фрагменты данных в памяти

Аналогия: графический процессор - это команда мастеров с одинаковой квалификацией, которые выполняют одни и те же задачи с одинаковыми предметами.

Графические процессоры более эффективны, чем процессоры общего назначения, для обработки узкого набора рабочих нагрузок, которые демонстрируют как параллелизм, так и локальность данных. Это ограничение можно устранить с помощью специализированных аппаратных компонентов, таких как ASIC и FPGA.

3. ASIC и FPGA: нестандартная аппаратная архитектура.

В 1980-х годах ASIC и FPGA возникли из-за необходимости обрабатывать любые задачи с помощью миллионов настраиваемых инструкций, миллионов регистров и тысяч локальных запоминающих устройств в одном кристалле. В этих архитектурах данные передаются от одной инструкции к другой, не возвращаясь туда и обратно в центральную память, в отличие от центральных и графических процессоров. Это приводит к массово-параллельным архитектурам.

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

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

Аналогия: ПЛИС - это электронная реализация заводских цехов с множеством сборочных линий, каждая со множеством станций, выполняющих специализированные задачи. Весь производственный цех можно перестроить менее чем за секунду! (но на подготовку одной конфигурации заводского цеха могут уйти месяцы)

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

4. Является ли FPGA лучшим устройством программирования для обработки вашей рабочей нагрузки?

Количество транзисторов в микросхеме увеличилось в 100000000 раз, с 200 в 1955 году до 20 миллиардов в 2018 году. В отличие от 1980-х годов, скорость транзистора сейчас выше скорости памяти. Однако скорость транзистора стабилизировалась в ~ 2004 г. из-за ограничений плотности физической энергии. Эти ограничения затрудняют соблюдение производителями закона Мура, который в 60-х годах заключался в том, что количество транзисторов в интегральной схеме удваивается примерно каждые два года. Вычислительная архитектура ЦП, которой более 70 лет, достигла своих пределов. Можно добавить больше ядер / ALU к CPU / GPU, но они не работают быстрее.

Есть ли один победитель между ЦП, ГП и ПЛИС? Точно нет! Вы должны использовать все устройства обработки, в зависимости от ваших рабочих нагрузок.

Несмотря на то, что ЦП очень неэффективен, он остается наиболее универсальным устройством обработки и самым простым в программировании. Если ЦП достаточно эффективен для данной рабочей нагрузки, это лучшая цель. Если ЦП недостаточно эффективен для некоторых рабочих нагрузок, сначала следует изучить графические процессоры. Если эти рабочие нагрузки попадают в узкий прикладной сегмент задач, который демонстрирует как параллелизм данных, так и локальность данных, то GPU является наиболее эффективным вычислительным устройством. Наконец, для рабочих нагрузок, которые недостаточно быстры ни на CPU, ни на GPU, FPGA - правильный выбор. Хотя FPGA являются наиболее эффективными программируемыми устройствами, их очень сложно программировать .

5. Новый мир возможностей

Промышленность использовала ПЛИС для вычислений общего назначения. Microsoft Azure запустила свою FPGA в 2011 году и начала масштабное развертывание с 2015 года. Intel приобрела Altera за 16 миллиардов долларов в 2016 году. Ведущие поставщики облачных услуг, такие как AWS, OVH, Alibaba, Baidu, Tencent и Huawei, развертывали FPGA в 2017 и 2018 годах. , и это еще не все. Dell, EMC и Fujitsu также развернули серверы на базе FPGA в 2018 году.

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

Готовые к использованию ускорители FPGA доступны в AccelStore, чтобы вы могли развивать свои собственные приложения в инфраструктуре общедоступного облака или локально. Вы можете легко интегрировать и управлять / управлять работой этих ускорителей благодаря библиотеке с открытым исходным кодом. Эту библиотеку и ускорители можно протестировать за несколько минут через AccelStore. Пожалуйста, свяжитесь с Accelize для получения более подробной информации.

Первоначально опубликовано на странице https://accelstore.accelize.com/blog/what-fpga-and-why-it-good-you.