Системы управления и автоматизация
Проектирование Fpga-систем для крупных дата-центров
Table of Contents
Введение: Рост ускорения FPGA в гипермасштабных центрах обработки данных
Гипермасштабные центры обработки данных сталкиваются с неустанным спросом на вычислительную производительность, которая превосходит возможности традиционных процессоров. Рабочие нагрузки, такие как вывод машинного обучения, видеотранскодирование в реальном времени, высокочастотная торговля и программно-определяемые сети, требуют не только сырой пропускной способности, но и детерминированной низкой задержки и энергоэффективности, которые процессоры общего назначения борются за доставку. Полевые программируемые воротные массивы появились в качестве критического уровня ускорения, заполняя разрыв между процессорами и ASIC с фиксированной функцией. Их уникальное сочетание реконфигурируемости после развертывания, массивного параллелизма и энергоэффективности делает их незаменимыми для современного проектирования центров обработки данных. Проектирование систем FPGA для крупномасштабного развертывания является многодисциплинарной задачей, охватывающей аппаратную архитектуру, управление тепловыми потоками, высокоскоростные сети, программные цепочки инструментов и оперативную валидацию. В этой статье рассматриваются критические соображения, лучшие практики и новые тенденции, которые формируют ускоренные системы на основе FPGA в центре обработки данных.
Архитектура FPGA и ее стратегическая роль
FPGA состоят из огромных массивов программируемых логических блоков, таблиц поиска, шлепанцев, срезов цифровой обработки сигналов, блочной ОЗУ и высокоскоростных приемопередатчиков. В отличие от процессоров, которые выполняют фиксированный набор инструкций на нескольких ядрах, центр обработки данных среднего уровня FPGA предлагает сотни тысяч независимых логических ячеек, способных реализовывать пользовательские пути передачи данных, систолические массивы или глубоко трубопроводные машины состояния. Эта гибкость позволяет операторам отображать различные функции ускорителя на одном устройстве. Современные устройства, такие как серия Intel Agilex и Xilinx Versal ACAP, интегрируют подсистемы жестких процессоров (например, ядра ARM), высокоширотную память (HBM2e) и закаленные контроллеры протокола для PCIe Gen5, CXL и 400 GbE вместе с программируемой тканью. Эта конвергенция позволяет дизайнерам сосредоточиться на дифференцированных вычислительных ядрах при разгрузке общих функций ввода-вывода на проверенные кремниевые блоки.
Перенастройка является ключевым преимуществом: операторы могут обновлять аппаратный уровень ускорения долго после развертывания, критический при развитии сетевых протоколов, обновлении алгоритмов шифрования или появлении новых архитектур нейронных сетей. Для подробного обзора архитектуры FPGA и приложений центров обработки данных страница продукта Intel FPGA предоставляет обширную техническую документацию.
Основные аспекты проектирования для гипермасштабных систем FPGA
Создание платформы ускорения FPGA для тысяч серверов требует тщательного планирования в нескольких измерениях.В следующих разделах рассматриваются наиболее важные факторы, влияющие на производительность, стоимость и работоспособность в масштабе.
Масштабируемость и модульная архитектура
Единая плата FPGA не может удовлетворить вычислительные требования всей службы ЦОД. Масштабируемость должна быть спроектирована с нуля. Успешные проекты принимают модульный подход, при котором несколько карт ускорителя FPGA соединены между собой через сети с высокой пропускной способностью и организованы как единая структура ускорения. Это часто включает в себя разделение больших графов вычислений на стадии трубопровода, отображаемые на разные узлы FPGA, или разделение модели на карты с использованием связи в стиле «все уменьшать». Частичное перенастройка позволяет ускорять мультиарендатор путем динамического переключения логических областей без остановки всего устройства. Например, карта обработки сети может быть частично перенастроена с ускорителя правил брандмауэра на движок Deep Packet Inspection на лету, адаптируясь к смещению требований трафика без прерывания активных потоков.
Модульное масштабирование влияет на физическую упаковку: стандартизированные форм-факторы, такие как карты добавления PCIe, мезонинные модули или сани, которые подключаются к совместимому с Open Compute Project (OCP) серверному шасси, упрощают закупки и техническое обслуживание. Используя композитную модель инфраструктуры, операторы могут распределять ресурсы FPGA для рабочих нагрузок через программно-определяемый тканевый менеджер, рассматривая пул карт FPGA как дезагрегированный ресурс ускорителя. В проекте Open Compute Project размещены спецификации для базовых плат ускорителя, которые облегчают такое модульное развертывание.
Эффективность электроэнергии и общая стоимость владения
Потребление электроэнергии напрямую влияет на общую стоимость владения (TCO) в центрах обработки данных, где охлаждение и электричество часто составляют наибольшие эксплуатационные расходы. FPGA, как правило, более энергоэффективны, чем GPU для определенных рабочих нагрузок при эквивалентной пропускной способности, но устройства высокого класса могут рассеивать 75-150 Вт или более, требуя тщательной конструкции оболочки мощности.
Динамическая оптимизация мощности начинается на стадии синтеза RTL или высокого уровня. Такие методы, как стреловидность часов, изоляция операнда и использование тонкозернистых спящих режимов FPGA, снижают активность динамического переключения. Масштабирование напряжения - использование программируемых регуляторов напряжения для снижения напряжения ядра во время некритических операций - может дать двузначную процентную экономию энергии. Эффективное управление пересечением часовой области и минимизация ненужного переключения на широких шинах одинаково важны. На системном уровне дизайнеры должны учитывать карты акселератора с крутящим моментом, мониторинг потребляемой мощности в режиме реального времени с использованием датчиков на чипе и интеграцию с системами управления питанием центра обработки данных, такими как Node Manager Intel.
Помимо логической оптимизации, выбор правильного семейства устройств играет роль. Маломощных FPGA, таких как платформа Lattice Nexus, может быть достаточно для легкой сжатия или шифрования, в то время как энергоемкие экстремальные вычислительные задачи могут выполняться на устройствах верхнего уровня с большой емкостью HBM. Руководство пользователя Xilinx Versal Power Management предлагает конкретные стратегии для бюджетирования мощности и управления мощностью теплового дизайна на ускоренных платформах.
Задержка и обработка в реальном времени
Услуги центров обработки данных работают в соответствии со строгими соглашениями об уровне обслуживания, определяющими задержки хвоста в микросекундном диапазоне. FPGA здесь преуспевают, потому что они реализуют глубоко трубопроводные архитектуры, которые обрабатывают данные с детерминированными задержками с низким уровнем джиттера. Проектирование для предсказуемой производительности требует тщательного управления глубиной трубопровода, шаблонами доступа к памяти и взаимодействия с внешней DRAM. Например, SmartNIC, которые загружают обработку сетевого стека из процессора, могут сократить задержку, выполняя проверку контрольной суммы TCP, отслеживание соединений и классификацию пакетов полностью в структуре FPGA, прежде чем центральный процессор когда-либо увидит пакет.
Достижение сверхнизкой задержки требует, чтобы подсистемы ввода/вывода FPGA шли в ногу. Прямое присоединение каналов памяти с высокой пропускной способностью или использование кэш-когерентных соединений, таких как CXL.mem и CXL.cache, устраняет многие копии и переключатели контекста. Для приложений финансовой торговли в реальном времени пользовательская логика FPGA может анализировать форматы проводов, пересчитывать цены опционов и генерировать заказы в течение десятков наносекунд — подвиг, невозможный для программных стеков.
Высокоскоростные соединения и сетевая интеграция
Центр обработки данных принципиально сетевой, и ускорители FPGA должны подключаться к высокоскоростной последовательной сетке. PCI Express остается доминирующим межсоединением хоста-атташа, с Gen4 (16 GT/s) и Gen5 (32 GT/s), обеспечивающим пропускную способность до 64 ГБ/с на линию x16. Появляющиеся когерентные межсоединения, такие как Compute Express Link (CXL) , расширяют физический слой PCIe с помощью семантики когерентности кэша, позволяя FPGA беспрепятственно обмениваться памятью с процессором хоста и другими ускорителями. Это игровой механизм для композитного ускорения, резко сокращая перемещение данных над головой.
Для ускорения прямой сети карты FPGA часто включают интегрированные 100G/400G Ethernet MAC и логику коробки передач. Ткань FPGA может реализовывать пользовательские конвейеры обработки пакетов на высокоуровневом языке, таком как P4, скомпилированная непосредственно на аппаратном обеспечении. Проект Microsoft Catapult впервые использовал SmartNIC с поддержкой FPGA в своем парке Azure, демонстрируя крупномасштабные сетевые ускорители FPGA, которые обрабатывают программно-определяемые сетевые нагрузки и выгрузки памяти с линейной скоростью. Языковое сообщество P4 предоставляет инструменты с открытым исходным кодом для определения поведения программируемой плоскости данных на FPGA и других целях.
Разработчики также должны учитывать топологии с несколькими FPGA. Протоколы, такие как Aurora (от AMD) или проприетарные последовательные интерфейсы, позволяют напрямую подключаться к чипу, создавая сетку FPGA, которые ведут себя как больший логический массив. В сочетании с RDMA по Converged Ethernet v2 такие кластеры могут достигать связи с низкой задержкой и высокой пропускной способностью без участия центрального процессора.
Рабочий процесс развития и синтез высокого уровня
Традиционная разработка FPGA с VHDL или Verilog требует специальных навыков и длительного времени компиляции, которые противоречат быстрым циклам итерации программных команд центров обработки данных. Синтез высокого уровня стал краеугольным камнем продуктивного проектирования FPGA центра обработки данных, позволяя алгоритмам выражаться в C, C++ или OpenCL и автоматически переводиться в эффективный RTL. Такие инструменты, как Intel oneAPI HLS и AMD Vitis HLS, поддерживают исследование пространства проектирования, где разработчики могут быстро отменять использование ресурсов по сравнению с пропускной способностью, настраивая прагмы для разворачивания петли, трубопроводирования и разделения массивов.
Предварительно проверенные IP-блоки для общих функций — контроллеры DDR4/5, PCIe DMA, криптографические движки, 100G Ethernet MAC — резко сокращают усилия по интеграции. Рабочий процесс центра обработки данных обычно следует за конвейером: определение архитектуры в инструменте моделирования на системном уровне, уточнение алгоритма в HLS, генерация RTL, функциональное моделирование с использованием циклоточных моделей, синтез и место-и-маршрут, закрытие времени и генерация битового потока. Системы непрерывной интеграции могут автоматизировать тесты синтеза и регрессии моделирования с каждым кодом, гарантируя, что изменения оборудования не вводят функциональные или временные регрессии.
Для программных команд модель программирования часто абстрагируется за API среды выполнения. Библиотеки, такие как Open Programmable Acceleration Engine (OPAE) для Intel FPGA или Xilinx Runtime (XRT), обеспечивают унифицированный интерфейс для загрузки битовых потоков, управления буферами и отправки работы на ускоритель. Это разделение позволяет облачным провайдерам предлагать экземпляры FPGA, которые разработчики могут программировать с использованием знакомых языков высокого уровня, как видно в экземплярах EC2 F1 Amazon.
Проверка производительности и стресс-тестирование
Перед тем, как ускоритель FPGA будет запущен в производство, он должен пройти исчерпывающее тестирование, чтобы гарантировать надежность в реальных вариациях рабочей нагрузки. Функциональная валидация начинается с обширного моделирования, но никакое моделирование не полностью фиксирует физическое поведение кремния, работающего на сотнях мегагерц с шумными источниками питания. Тестирование оборудования в цикле, где плата FPGA интегрирована с фактическими генераторами сетевого трафика или живыми серверными приложениями, имеет важное значение.
Стресс-тестирование должно охватывать угловые случаи: максимальная пропускная способность с минимальными размерами пакетов, взрывные шаблоны трафика, одновременная борьба за чтение / запись в общих воспоминаниях и тесты теплового замачивания, которые подталкивают FPGA к его тепловой мощности проектирования в течение длительных периодов времени. Мониторы производительности, встроенные в ткань FPGA, такие как счетчики транзакций, гистограммы задержки и мониторы пропускной способности, должны быть выставлены через интерфейсы отладки, чтобы подтвердить, что дизайн соответствует его целям задержки и пропускной способности под нагрузкой. Для масштаба центра обработки данных инструменты проверки уровня парка могут организовать развертывание нового изображения ускорителя в небольшой канарейочный кластер, постепенно увеличивая трафик при мониторинге KPI уровня приложений, прежде чем развернуть в масштабе флота.
Хорошие методы проверки включают тестирование на месте отказа: как ведет себя система, когда перегрев платы FPGA или деградирует полоса приемопередатчика? Грациозные схемы деградации, такие как автоматическое перенаправление трафика на избыточный ускоритель, имеют решающее значение для поддержания доступности SLA.
Тематические исследования: развертывание гипермасштабных FPGA в производстве
Реальные развертывания иллюстрируют, как системы FPGA обеспечивают ценность в гипермасштабных средах. Microsoft Project Catapult интегрировала FPGA Altera (теперь Intel) в каждый сервер своего флота Azure, первоначально для глубокого вывода нейронных сетей, а затем для программно-определяемой сетевой и запоминающей разгрузки. Программа продемонстрировала, что согласованная структура FPGA на десятках тысяч серверов может ускорить различные рабочие нагрузки без изменений аппаратного обеспечения. FPGA каждого сервера Azure подключена как к хосту через PCIe, так и к сети через 40GbE, что позволяет использовать низкозадержанный, дезагрегированный пул ускорителей, управляемый операционной системой хоста.
Amazon Web Services предлагает экземпляры EC2 F1, построенные на Xilinx Ultrascale+ FPGA, в качестве платформы ускорения, доступной для разработчиков. Пользователи проектируют ускорители с использованием AWS Hardware Developer Kit или через более высокоуровневые фреймворки, такие как SDAccel. Эта модель была принята для анализа геномики, видеотранскодирования и финансового моделирования Монте-Карло. Предоставляя облачный конвейер разработки и развертывания, AWS позволяет программистам использовать производительность FPGA без управления физическим оборудованием.
Использование Baidu FPGA для вывода о распознавании речи показывает, как преимущества загруженности ИИ, критически важных для латентности. Компания применила чистый подход FPGA для оценки глубинного обучения, достижения субмиллисекундной задержки на высказывание и снижения энергопотребления на 40% по сравнению с базовыми линиями GPU. В реализациях FPGA использовались арифметические и пользовательские структуры памяти с фиксированной точкой для максимизации пропускной способности.
Модели программирования и абстракционные слои
Пробел в программируемости остается одним из самых больших барьеров для внедрения FPGA в центрах обработки данных. В ответ на это отрасль разработала несколько уровней абстракции, чтобы инженеры-программисты могли нацеливаться на FPGA без глубокого аппаратного опыта.
- OpenCL/SYCL: Intel oneAPI и AMD Vitis поддерживают OpenCL и SYCL, позволяя программировать в стиле ядра через процессоры, графические процессоры и FPGA. SYCL, в частности, предоставляет одноисточник C++ с FPGA-специфическими расширениями для конвейерной обработки и банкинга памяти.
- Высокоуровневые библиотеки синтеза: Оба вендора предлагают библиотеки для конкретных областей зрения, линейной алгебры и обработки сигналов. Эти библиотеки предварительно оптимизированы для целевой FPGA и могут быть составлены в более крупные ускорители.
- API-интерфейсы времени выполнения: Открытый программируемый ускоритель (OPAE) и XRT абстрактная загрузка битового потока, управление буфером и синхронизация. Они выставляют низкоуровневый API C, который может быть обернут более высокоуровневыми фреймворками, такими как Apache Arrow или TensorFlow.
- P4 для сетей: Язык P4 определяет конвейеры обработки пакетов, которые компилируются непосредственно в логику FPGA, используемые для программируемых коммутаторов, смарт-NIC и систем обнаружения вторжений.
Эти уровни абстракции снижают барьер, но все еще требуют понимания задержки, пропускной способности и ресурсного спора.Самые успешные развертывания инвестируют в средний уровень компиляторов для конкретных доменов и инструментов автоматической настройки, которые автоматически отображают алгоритмы на ресурсы FPGA.
Оперативные вызовы: мониторинг, техническое обслуживание и безопасность
Работа тысяч ускорителей FPGA в производстве создает проблемы, не наблюдаемые в ЦПУ-центрах обработки данных. Управление Bitstream становится сложным, особенно когда используется частичная реконфигурация. Операторам нужен безопасный репозиторий изображений, подписанные битовые потоки и механизм отката. Сама ткань FPGA может быть проблемой безопасности: поскольку конфигурация хранится в SRAM, она уязвима для одномерных расстройств от космических лучей. Современные FPGA используют ECC на памяти конфигурации и блокируют RAM для обнаружения и исправления ошибок, но дизайнеры все равно должны рассмотреть возможность очистки - периодически считывая конфигурацию и исправляя любые перевернутые биты.
Для термомониторинга требуются специальные датчики на карту, интегрированные с системой управления питанием центра обработки данных. В конструкции часто используются несколько температурных зон (логика, приемопередатчики, DRAM), а также тепловое дросселирование, чтобы предотвратить повреждение без потери состояния. Большинство производственных систем используют контроллер управления боковой полосой, который может приводить в действие или сбрасывать отдельные карты ускорителя, если они становятся невосприимчивыми.
Безопасность распространяется и на время выполнения. Боковые атаки, такие как анализ мощности или электромагнитные излучения, возможны, если FPGA обрабатывает конфиденциальные данные. Такие методы, как логика постоянного времени, кодирование с двумя рельсами и физическая защита, смягчают эти риски. На уровне парка применяются принципы сетей с нулевым доверием: ускорители FPGA должны аутентифицироваться перед принятием обновлений конфигурации, и вся межкарточная связь должна быть зашифрована при прохождении общих тканей.
Будущие направления: FPGA в дата-центрах следующего поколения
Траектория технологии FPGA указывает на еще более тесную интеграцию с остальной инфраструктурой центра обработки данных. Вывод ИИ на краю и в облаке выталкивает FPGA за рамки традиционных ролей ускорения. Наложения на конкретные ИИ-процессоры - мягкие процессорные массивы, предназначенные для выполнения квантованных нейронных сетей с чрезвычайной эффективностью - теперь поставляются в качестве IP от поставщиков FPGA. Такие устройства, как серия Xilinx Versal AI Edge, встраивают закаленные двигатели ИИ, которые обеспечивают до 100 ТОПОП производительности INT8 наряду с программируемой логикой, что делает их убедительной альтернативой графическим процессорам для систем рекомендаций с задержкой и обработки естественного языка.
Еще одна важная тенденция - принятие архитектур на основе чиплетов. Дезагрегируя монолитную FPGA в чиплеты, подключенные через межсоединения с высокой пропускной способностью (например, UCIe, EMIB Intel), производители могут смешивать и сопоставлять вычислительные, запоминающие и I / O плитки на одном пакете. Эта модульность позволяет операторам центров обработки данных настраивать конфигурацию ускорителя - больше HBM для рабочей нагрузки геномики, больше Ethernet MAC для сетевого брандмауэра - без перепроектирования всей платы.
Программируемость программного обеспечения будет продолжать улучшаться. Стек Open FPGA от Intel и унифицированная программная платформа Vitis от AMD нацелены на то, чтобы обеспечить подлинное программно-определяемое аппаратное обеспечение, где обновления могут быть перенесены по сети, а ткань FPGA перенастраивается в миллисекундах. По мере того, как CXL 3.0 и PCIe 6.0 станут мейнстримом, пулы совместно используемой памяти будут охватывать несколько FPGA, графических процессоров и процессоров, еще больше размывая линии между вычислительными уровнями.
Энергоэффективность стимулирует инновации. Работа с напряжением почти порогового значения и адаптивные методы смещения тела обещают сократить статическую мощность, в то время как частичная реконфигурация во время выполнения позволяет динамически снижать мощность неиспользуемых логических областей. Эти достижения помогут FPGA достичь целей устойчивости гипермасштабных центров обработки данных при одновременном обеспечении все возрастающей пропускной способности на ватт.
В целом, проектирование систем FPGA для крупномасштабных центров обработки данных является упражнением в целостной инженерии, которая уравновешивает архитектуру, мощность, связь и оперативную гибкость. Охватывая модульные конструкции, высокоуровневый синтез, когерентные межсоединения и тщательную проверку, инфраструктурные команды могут развертывать ускорительные ткани, которые адаптируются к завтрашней рабочей нагрузке, сохраняя при этом контроль над TCO. По мере созревания аппаратных и программных экосистем вокруг FPGA они станут еще более распространенным слоем в вычислительной иерархии центра обработки данных, обеспечивая индивидуальное ускорение везде, где только программное обеспечение не хватает.