2025/11/28 11:31:10

Ускорители вычислений: у графических процессоров появилась серьезная альтернатива

Используемая для ускорения вычислений связка CPU Intel Xeon с GPU от Nvidia в начале XXI века стала рассматриваться как стандарт «де-факто». Но время идет и одним из нескольких признаков изменяющейся ситуации стало появление программируемых пользователем вентильных матриц FPGA (Field-Programmable Gate Frray) в качестве альтернативы GPU.

Содержание

FPGA намного старше GPU, этот сегмент образовался в конце восьмидесятых годов XX века и был практически монополизирован четырьмя производителями. Среди них два признанных лидера - компания Altera, основанная в 1983 году и в 2015 году купленная Intel, и Xilinx, основанная на два года позже. По состоянию на 2017 год им принадлежит 31% и 36% рынка FPGA соответственно. Есть еще два крупных вендора - Microsemi и купленная ей в 2010 году Actel.

Росс Фриман, изобретатель FPGA (справа на снимке) - автор идей программирования готовых изделий и полупроводниковой компании, не имеющей собственного производства (fabless)


Исторически появлению FPGA предшествовали программируемые логические массивы PLA (Programmable Logic Arrays) и устройства на сложных программируемых массивах CPLD (Complex Programmable Logic Devices). Отличие FPGA от PLA и CPLD как количественное, так и качественное - они не обладали достаточной гибкостью.

Традиционные массивы FPGA состоят из множества связанных между собой достаточно простых блоков, способных выполнять те или иные логические операции (скажем, AND и XOR), и маршрутизирующих каналов, которые осуществляют связь между блоками. Маршрутизация каналов и сами блоки являются программируемыми, программирование в данном контексте сводится к созданию таблиц истинности LUT для блоков и маршрутов, по которым блоки обмениваются данными.

В каноническом варианте FPGA состоят из миллионов одинаковых блоков, состояние которых отражается в таблицах LUT (Lookup Table). LUT размещается в небольшом программируемом фрагменте памяти, куда записывается логическая функция блока. Контролер связывает блоки и маршрутизацию в единую систему.

Рис. 1 Блоки FPGA и LUT с тремя входами


По мере развития FPGA архитектура блоков усложняется, увеличивается количество входов до 8 и более, что позволяет запрограммировать более сложную логику. В самых новых FPGA блоки бывают еще сложнее, они реализуют не простую логику, а какие-то специализированные функции. Такие сложные блоки называют sliсе, то есть ломтик или срез. Блоки этого типа работают быстрее, чем сборка их простейших боков. В качестве примеров специализированных блоков можно назвать мультипликаторы или сигнальные процессоры DSP. Если умножение 32-битовых чисел, реализованное на простых блоках, потребует выполнения примерно 2000 операций, то специализированному блоку для этого потребуется всего одна операция. Номенклатура специализированных срезов постоянно расширяется.


Рис. 2 Специализированные блоки FPGA


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

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

Объективное сравнение GPU и FPGA по производительности еще затруднено тем, что они отличаются по природе и для них используются разные тесты, а результаты выражаются в случае GPU в хорошо известных флопсах в то время как для FPGA в менее известных максах (MACS, Multiply-Accumulate Operations per Second). Более широкая, комплексная оценка по девяти параметрам (рис. 4) дает счет 5:4 в пользу GPU, но этот счет можно интерпретировать по-разному.

Рис. 3 Сравнение эффективности GPU и FPGA по удельной производительности вычисления на ватт и вычисления на евро


Рис. 4 Сравнение эффективности GPU и FPGA по 9-ти параметрам


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

Достоинством GPU служит большая гибкость, лучшая приспособленность к выполнению операций с плавающей точкой, поддержка старых версий ПО.

Однако, несмотря на отсутствие строгой аргументации, Microsoft и Intel отдают предпочтения FPGA. Не исключено, что перевес на чаше FPGA вызван наблюдаемым в последнее время существенным снижением стоимости этих устройств. FPGA становятся доступными для установки в серийные изделия. Раньше по причине высокой стоимости FPGA использовались только при разработке новых систем, на этапе макетирования, после чего реализованные в них алгоритмы переносили на специализированные интегральные схемы ASIC (Application Specific Integrated Circuit). В серийных изделиях уже устанавливали ASIC, но при этом они теряли возможность перепрограммирования «в поле». Так было раньше, но по состоянию на 2017 год нет причин, чтобы не комплектовать и серийные устройства модулями FPGA. Нетрудно представить, что последует из возможности сохранения перепрограммирования, например, в компьютерах, ориентированных на машинное обучение и других аналогичных приложениях.

Осознавая значение FPGA, корпорация Intel в 2015 году купила компанию Altera, после чего ее видение процессоров стало выглядеть примерно так, как показано на рис. 5. Хотя в 2017 году появилось новое семейство процессоров Xeon Scalable и платформа Purley, а шину QPI заменила новая версия UPI. К тому же появилась новая память, но суть осталась неизменной – есть CPU и есть FPGA, служащие в качестве ускорителей.


Рис 5. Процессоры Intel c укорителями на FPGA


Особую привязанность к FPGA демонстрирует Microsoft, где с 2010 года разрабатывается проект с амбициозным названием Catapult. Целью этого метательного снаряда является создании конфигурируемого облака (Configurable Cloud), а средством для достижения этой цели служит гипермасштабируемая ускоряющая структура (hyperscale acceleration fabric). Fabric, в данном случае, переводится именно как структура, а не фабрика.

FPGA в Configurable Cloud используются в двух качествах. Первое – в качестве канальных ускорителей, того, что называют bump-in-the-wire, размещенных между сетевыми интерфейсными картами NIC коммутаторами в стойке (top-of-rack switch, ToR). Во втором качестве FPGA служат ускорителями в серверах, предназначенных для определенного класса задач, таких как биоинформатика, ранжирование в поиске, глубинное обучение или тяжелые вычисления. Для них используются одинаковые серверы, но с различными программами (прошивками) в FPGA.

Рис. 6 Configurable Cloud от Microsoft


В отличие от Altera, слившейся с Intel, компания Xilinx занимает самостоятельную позицию, она поставляет крупным гиперскейлерам (Huawei, Baidu) стек продуктов (FPGA-powered Xilinx Reconfigurable Acceleration Stack), поддерживающий сервисы, получившие название FPGA-as-a-Service.

Рис. 7 Место Xilinx Reconfigurable Acceleration Stack в квадранте с осями «Application breadh» (разнообразие приложений) и «Accelerator utilization» (использование ускорителя)

Сервисы включают библиотеки, конструкции для интеграции (framework integrations), инструменты для разработчиков (developer boards) и поддержку OpenStack.

Оценки рынка

2024: Объем мирового рынка чипов FPGA достиг $12,72 млрд

В 2024 году объем глобального рынка программируемых пользователем вентильных матриц (FPGA) достиг $12,72 млрд. Почти половина от общемировых продаж таких изделий в денежном выражении пришлась на Азиатско-Тихоокеанский регион. Соответствующие данные приводятся в исследовании Fortune Business Insights, результаты которого опубликованы 27 ноября 2025 года.

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

Одним из ключевых драйверов рынка аналитики называют стремительное внедрение искусственного интеллекта, которое сопровождается ростом нагрузки на центры обработки данных. Для удовлетворения потребностей в вычислительных ресурсах гиперскейлеры и облачные провайдеры вынуждены активно расширять инфраструктуру, закупая ускорители разных типов, в том числе на базе FPGA. Такие решения обеспечивают возможность параллельной обработки данных, что позволяет применять их для сложных вычислений, включая машинное обучение. Благодаря своей реконфигурируемости FPGA являются гибкой альтернативой специализированным интегральным схемам (ASIC), которые производятся для одной конкретной задачи и не могут быть изменены после производства. Кроме того, FPGA способны обрабатывать данные на аппаратном уровне, снижая задержку по сравнению с обычными процессорами.

Еще одним стимулирующим фактором названо продолжающееся развитие сетей 5G и подготовка к будущим сервисам 6G. Возможность перепрограммирования позволяет быстро адаптировать FPGA к новым телекоммуникационным стандартам и протоколам, в том числе к архитектурам открытых сетей радиодоступа (Open RAN).

Развивается также направление встраиваемых FPGA, или eFPGA. Такие модули интегрируются непосредственно в «системы на чипе» (SoC) для повышения гибкости. eFPGA используется в системах, которым требуются высокая производительность и энергоэффективность: это могут быть устройства интернета вещей (IoT), средства промышленной автоматизации, автомобильная электроника и пр.

По сфере применения FPGA рынок сегментирован на телекоммуникации и сетевые продукты, дата-центры и платформы высокопроизводительных вычислений, потребительские товары и IoT, автомобильную отрасль, промышленность, аэрокосмическую сферу, оборонный сектор, здравоохранение и пр. В 2024 году наибольшую долю выручки обеспечило первое из перечисленных направлений — $4,04 млрд, или 31,9%. С географической точки зрения доминирует Азиатско-Тихоокеанский регион с $6,21 млрд, что соответствует 48,8% от общемировых расходов. В глобальном масштабе в список крупных игроков входят:

В 2025 году объем рынка FPGA, как ожидается, достигнет $13,92 млрд. При этом на Северную Америку придется $3,37 млрд, на Европу — $2,3 млрд. Аналитики Fortune Business Insights полагают, что в дальнейшем среднегодовой темп роста в сложных процентах (CAGR) составит 10,2%. Таким образом, к 2032 году затраты могут увеличиться до $27,51 млрд.[1]

Примечания