Серверная плата ускорения AMD Alveo V80: полное руководство по разработке
Предисловие: AMD Alveo V80 построена на адаптивной SoC-архитектуре Versal HBM XCV80 — это высокоуровневая серверная плата ускорения для высокополосных, высокопроизводительных, крупномасштабных параллельных вычислений в дата-центрах, широко применяемая в HPC, количественных финансах, анализе больших данных и сетевом ускорении. V80 использует новейшую архитектуру Versal HBM со строго версионно-зафиксированными средами разработки. Стандартизированное развёртывание предшествующих драйверов, инструментальных цепочек и базовых фреймворков является ключевой предпосылкой стабильной инженерной компиляции, отладки на плате и аппаратной разработки в дальнейшем.
В данной статье рассматривается низкоуровневая предшествующая разработка FPGA для V80, полностью охватывающая проверку аппаратной адаптации, настройку системной среды, развёртывание низкоуровневых драйверов, установку инструмента Vivado и развёртывание основного фреймворка разработки AVED — практическое руководство по предпосылкам для адаптации низкоуровневой аппаратной разработки V80.
I. Обзор ключевых предпосылок разработки
1.1 Ключевые особенности развёртывания среды
Архитектура Alveo V80 Versal HBM имеет строгие требования к совместимости: она совместима только с инструментальной цепочкой Vivado 2023.1 или новее и соответствующими версиями фреймворков. Старые инструментальные цепочки вызывают ошибки распознавания устройства, ошибки адаптации IP, ошибки компиляции проекта и проблемы отладки на плате. Среда разработки должна строго соблюдать правила соответствия версий.
1.2 Требуемые компоненты разработки
Низкоуровневая среда разработки FPGA V80 состоит из трёх частей — базовых компонентов, необходимых для настройки проекта, низкоуровневой отладки и аппаратной адаптации:
- Базовые системные зависимости: обеспечивают работу инструментов, компиляцию кода, загрузку фреймворков и вызов прав
- Инструментальная цепочка Vivado: основной инструмент разработки/компиляции, поставляемый с библиотеками поддержки устройств Versal HBM
- Фреймворк разработки AVED: специализированный низкоуровневый проектный фреймворк V80, прединтегрирующий полный набор низкоуровневых IP — PCIe, DMA, тактирование/сброс, управление платой и аппаратную самопроверку
1.3 Основные аппаратные параметры для разработки (ориентир адаптации среды)
- Шинный интерфейс: PCIe Gen5 x16 (требует поддержки как материнской платы, так и BIOS)
- Мощность: TDP 190 Вт; слот PCIe должен обеспечивать полную нагрузку 200 Вт и более
- Тип охлаждения: пассивное охлаждение, опирающееся на воздушный поток корпуса сервера, без независимого активного вентилятора
- Ядро архитектуры: Versal HBM XCV80, адаптирован под новую инструментальную цепочку и фреймворк AVED
- Бортовые модули: встроенный нативный контроллер PCIe, высокоскоростной DMA-движок, модуль управления AMI и модуль самопроверки XBTEST
1.4 Основные цели предпосылочного развёртывания
- Завершить физическую установку и распознавание оборудования, обеспечив нормальную инициализацию устройства V80 сервером;
- Развернуть чистую адаптированную системную среду со всеми базовыми зависимостями;
- Развернуть полную инструментальную цепочку Vivado и пакет поддержки устройств Versal HBM;
- Установить соответствующий фреймворк AVED, чтобы проекты низкого уровня V80 можно было напрямую создавать и компилировать;
- Завершить аппаратную самопроверку и проверку связи, чтобы избежать рисков аппаратной совместимости и прошивки.
II. Адаптация аппаратной среды и спецификация физической установки
2.1 Требования к аппаратной адаптации сервера
- Требование к слоту: стандартный физический слот PCIe Gen5 x16; слот Gen4 вызывает снижение полосы, ошибки согласования протоколов и двукратное падение производительности;
- Требование к питанию: мощность слота при полной нагрузке ≥200 Вт; недостаток питания вызывает отвал карты, сбросы или троттлинг при высокой нагрузке;
- Требование к охлаждению: беспрепятственный воздушный поток корпуса сервера, соответствующий условиям пассивного охлаждения;
- Требование к системе: Ubuntu 20.04/22.04 или RHEL 8/9 64-битные серверные системы; настольные и устаревшие серверные системы не поддерживаются.
2.2 Физическая установка и конфигурация BIOS
- Полностью обесточить сервер, снять электростатический заряд, вставить карту V80 в двухслотовый слот PCIe и закрепить скобу;
- Загрузиться в BIOS материнской платы, включить полноскоростной режим PCIe Gen5, отключить энергосбережение PCIe, троттлинг и политики автоматической приостановки;
- Отключить режим совместимости PCIe и включить высокопроизводительный режим;
- Сохранить конфигурацию BIOS и перезагрузить сервер для применения настроек.
2.3 Базовая проверка распознавания оборудования
После перезагрузки сервера выполните следующие команды для проверки состояния установки оборудования и подтверждения нормального распознавания устройства:
| `lspci | grep -i alveo` |
| `lspci | grep -i versal` |
Нормальный вывод информации об устройстве AMD Versal XCV80 в терминале означает, что оборудование установлено правильно и слот работает; отсутствие вывода означает необходимость повторной проверки установки карты, состояния слота и конфигурации BIOS.
III. Полная процедура установки драйверов и фреймворков разработки
3.1 Обязательная спецификация версий ПО
Версии низкоуровневой разработки V80 строго связаны; все версии компонентов должны соответствовать друг другу, как указано ниже:
- Инструментальная цепочка Vivado: 2023.1 или новее, с полным пакетом поддержки устройств Versal HBM XCV80
- Основной фреймворк разработки: AVED (Alveo Versal Example Design) 1.x, соответствующий версии Vivado
- Вспомогательные инструменты управления: инструмент управления устройствами AMI, инструмент аппаратной самопроверки XBTEST
3.2 Установка базовых системных зависимостей
Перед развёртыванием драйверов и фреймворков установите базовые системные зависимости для обеспечения нормальной работы инструментов, компиляции кода и загрузки исходников:
| `sudo apt update && sudo apt upgrade -y` |
| `sudo apt install -y git make gcc g++ libssl-dev libudev-dev` |
3.3 Установка инструментальной цепочки Vivado и конфигурация среды
Vivado — основной инструмент компиляции для низкоуровневой разработки V80, поставляемый с драйверами аппаратной адаптации и библиотеками устройств — основа для распознавания оборудования, компиляции проектов и генерации битстрима:
- Установите Vivado 2023.1 или новее; при установке необходимо выбрать пакет поддержки устройств Versal HBM XCV80 — без библиотеки устройств чип не может быть распознан или низкоуровневый IP адаптирован;
- После установки настройте глобальные переменные среды, чтобы инструменты были доступны из любого терминала и аппаратные устройства корректно разрешались:
| `echo "source /tools/Xilinx/Vivado/2023.1/settings64.sh" >> ~/.bashrc` |
| `source ~/.bashrc` |
3.4 Установка официального фреймворка разработки AVED
AVED — специализированный низкоуровневый проектный фреймворк V80, интегрирующий полный набор официально адаптированных низкоуровневых драйверных IP — PCIe Gen5, высокоскоростной DMA, тактирование/сброс, аппаратный мониторинг и самопроверку — так что разработчикам не нужно вручную адаптировать низкоуровневые протоколы. Это инженерная основа для всей вторичной разработки:
| `# Загрузить официальный низкоуровневый фреймворк AMD Alveo Versal` |
| `git clone https://github.com/Xilinx/alveo-versal-examples.git` |
| `# Перейти в корень проекта` |
| `cd alveo-versal-examples` |
| `# Соответствовать версии Vivado, переключиться на стабильную ветку v2023.1` |
| `git checkout v2023.1` |
После установки фреймворка специализированные проекты V80 можно создавать напрямую из встроенных шаблонов, быстро завершая низкоуровневую разработку аппаратной адаптации.
IV. Проверка целостности среды и аппаратная самопроверка
После развёртывания всех драйверов, инструментов и фреймворков проверьте целостность среды официальным инструментом самопроверки, убедившись в отсутствии проблем аппаратной адаптации или конфликтов версий.
4.1 Базовая самопроверка функций оборудования
| `xbtest -basic` |
100%-й прохождение всех тестов без ошибок означает, что адаптация аппаратного драйвера и среда фреймворка работают нормально.
4.2 Полная проверка состояния устройства
| `# Просмотр версии прошивки устройства, аппаратной ревизии и статуса адаптации` |
| `alveo-ami status` |
| `# Просмотр реальной мощности, температуры и условий работы` |
| `alveo-ami telemetry` |
V. Распространённые неисправности среды и быстрое устранение
5.1 Ошибка распознавания устройства
Симптом: lspci не может перечислить устройство V80.
Устранение: проверьте питание слота PCIe, контакт установки карты, конфигурацию BIOS Gen5, затем перезагрузите сервер и повторно проверьте распознавание.
5.2 Ошибка распознавания при инициализации проекта
Симптом: Vivado сообщает об ошибках при открытии проекта AVED и не может распознать устройство XCV80.
Устранение: установите пакет поддержки устройств Versal HBM и убедитесь, что версия Vivado полностью соответствует версии фреймворка AVED.
5.3 Аномальная цепочка аппаратной самопроверки
Симптом: самопроверка xbtest завершается с ошибкой, линия PCIe понижена.
Устранение: проверьте производственную ревизию оборудования и нативную прошивку, зафиксируйте полную скорость PCIe Gen5 в BIOS и проверьте стабильность питания слота.
5.4 Ошибки зависимостей среды компиляции
Симптом: компиляция проекта AVED сообщает о отсутствии зависимостей или ошибках выполнения команд.
Устранение: переустановите базовые системные зависимости, обновите переменные среды и убедитесь, что инструментальная цепочка Vivado действует глобально.
VI. Итоги предпосылочного развёртывания среды
Ядро предпосылочного развёртывания низкоуровневой разработки AMD Alveo V80 — завершение стандартизированной, версно-согласованной установки системных зависимостей, инструментальной цепочки Vivado и драйверов, а также низкоуровневого фреймворка AVED. Полная среда обеспечивает полную низкоуровневую поддержку распознавания оборудования V80, адаптации низкоуровневых IP, компиляции проектов и отладки на плате.
В процессе разработки достаточно строго следовать спецификации версионного соответствия, полностью установить библиотеки поддержки устройств и заранее избегать неофициальных рисков аппаратной адаптации, чтобы настроить стабильную чистую низкоуровневую среду разработки V80, заложив основу для последующей разработки логики FPGA и аппаратной отладки.
