Плата программируемого ускорения Intel FPGA D5005
Об этом документе
В этом документе описывается реализация функционального блока ускорителя (AFU) с прямым доступом к памяти (DMA) и то, как построить проект для работы на оборудовании или в моделировании.
Целевая аудитория
Предполагаемая аудитория включает разработчиков оборудования или программного обеспечения, которым требуется функция ускорения (AF) для локальной буферизации данных в памяти, подключенной к устройству Intel FPGA.
Конвенции
Соглашения о документах
Соглашение | Описание |
# | Предшествует команде, которая указывает, что команда должна быть введена как root. |
$ | Указывает, что команда должна быть введена пользователем. |
Этот шрифт | Fileимена, команды и ключевые слова печатаются этим шрифтом. Этим шрифтом печатаются длинные командные строки. Хотя длинные командные строки могут переноситься на следующую строку, возврат не является частью команды; не нажимайте ввод. |
Указывает, что текст-заполнитель, который появляется между угловыми скобками, должен быть заменен соответствующим значением. Не вводите угловые скобки. |
Сокращения
Сокращения
Сокращения | Расширение | Описание |
AF | Ускоряющая функция | Скомпилированный образ аппаратного ускорителя, реализованный в логике FPGA, который ускоряет приложение. |
ВСУ | Функциональный блок ускорителя | Аппаратный ускоритель, реализованный в логике FPGA, который разгружает вычислительную операцию для приложения с ЦП для повышения производительности. |
API | Интерфейс прикладного программирования | Набор определений подпрограмм, протоколов и инструментов для создания программных приложений. |
ТПП-П | Интерфейс основного кэша | CCI-P — это стандартный интерфейс, который AFU используют для связи с хостом. |
ДФХ | Заголовок функции устройства | Создает связанный список заголовков функций, чтобы обеспечить расширяемый способ добавления функций. |
продолжение… |
Корпорация Интел. Все права защищены. Intel, логотип Intel и другие товарные знаки Intel являются товарными знаками корпорации Intel или ее дочерних компаний. Корпорация Intel гарантирует производительность своих FPGA и полупроводниковых продуктов в соответствии с текущими спецификациями в соответствии со стандартной гарантией Intel, но оставляет за собой право вносить изменения в любые продукты и услуги в любое время без предварительного уведомления. Intel не принимает на себя никакой ответственности или обязательств, возникающих в связи с применением или использованием какой-либо информации, продуктов или услуг, описанных в настоящем документе, за исключением случаев, когда это прямо согласовано с корпорацией Intel в письменной форме. Клиентам Intel рекомендуется получить последнюю версию спецификаций устройств, прежде чем полагаться на какую-либо опубликованную информацию и размещать заказы на продукты или услуги. *Другие названия и торговые марки могут быть заявлены как собственность других лиц.
Сокращения | Расширение | Описание |
ФИМ | Менеджер интерфейсов ПЛИС | Аппаратное обеспечение FPGA, содержащее блок интерфейса FPGA (FIU) и внешние интерфейсы для памяти, сети и т. д.
Функция ускорителя (AF) взаимодействует с FIM во время выполнения. |
ПФР | Блок интерфейса ПЛИС | FIU — это уровень интерфейса платформы, который действует как мост между интерфейсами платформы, такими как PCIe*, UPI, и интерфейсами на стороне AFU, такими как CCI-P. |
МПФ | Фабрика свойств памяти | MPF — это базовый структурный блок (BBB), который AFU могут использовать для обеспечения операций формирования трафика CCI-P для транзакций с FIU. |
Глоссарий по ускорению
Стек ускорения для ЦП Intel® Xeon® с ПЛИС Глоссарий
Срок | Аббревиатура | Описание |
Intel® Acceleration Stack для процессоров Intel Xeon® с FPGA | Стек ускорения | Набор программного обеспечения, встроенного ПО и инструментов, обеспечивающих оптимизированную по производительности связь между Intel FPGA и процессором Intel Xeon. |
Плата программируемого ускорения Intel FPGA | ПЛИС Intel PAC | Плата ускорителя PCIe FPGA.
Содержит диспетчер интерфейса FPGA (FIM), который подключается к процессору Intel Xeon через шину PCIe. |
- Руководство пользователя функционального блока DMA Accelerator: Плата программируемого ускорения Intel FPGA D5005
Описание ВСУ прямого доступа к памяти
Введение
Прямой доступ к памяти (DMA) AFU exampВ этом файле показано, как управлять передачей памяти между хост-процессором и FPGA. Вы можете интегрировать AFU DMA в свой проект для перемещения данных между памятью хоста и локальной памятью FPGA. AFU DMA состоит из следующих подмодулей:
- Фабрика свойств памяти (MPF) Базовый строительный блок (BBB)
- Интерфейс Core Cache (CCI-P) для адаптера Avalon® Memory-Mapped (Avalon-MM)
- Система тестирования DMA, которая содержит DMA BBB
Эти подмодули более подробно описаны в разделе «Аппаратные компоненты DMA AFU» ниже.
Сопутствующая информация
- Аппаратные компоненты DMA AFU на стр. 6
- Технические характеристики интерфейса Avalon
Дополнительные сведения о протоколе Avalon-MM, включая временные диаграммы для транзакций чтения и записи, см.
Программный пакет DMA AFU
Стек Intel Acceleration Stack для процессоров Intel Xeon с пакетом FPGA file (*.tar.gz), включает в себя DMA AFU exampле. Этот бывшийample предоставляет драйвер пользовательского пространства. Хост-приложение использует этот драйвер, чтобы DMA перемещал данные между хостом и памятью FPGA. Двоичные файлы оборудования, исходные коды и драйвер пользовательского пространства доступны в следующем каталоге: $OPAE_PLATFORM_ROOT/hw/sampлес/dma_afu . Прежде чем экспериментировать с DMA AFU, необходимо установить программный пакет Open Programmable Acceleration Engine (OPAE). Инструкции по установке см. в разделе Установка программного пакета OPAE в кратком руководстве по стеку ускорения Intel для платы Intel FPGA Programmable Acceleration Card D5005. Это краткое руководство также содержит базовую информацию об Open Programmable Acceleration Engine (OPAE) и настройке AFU. После установки программного пакета Open Programmable Acceleration Engine (OPAE), какampХост-приложение и драйвер пользовательского пространства DMA AFU доступны в следующем каталоге: $OPAE_PLATFORM_ROOT/hw/sampЛес/dma_afu/sw. Чтобы запустить сampУстановите хост-приложение fpga_dma_test на аппаратное обеспечение Intel FPGA PAC D5005, см. инструкции в разделе Запуск DMA AFU Ex.ampле. Корпорация Интел. Все права защищены. Intel, логотип Intel и другие товарные знаки Intel являются товарными знаками корпорации Intel или ее дочерних компаний. Корпорация Intel гарантирует производительность своих FPGA и полупроводниковых продуктов в соответствии с текущими спецификациями в соответствии со стандартной гарантией Intel, но оставляет за собой право вносить изменения в любые продукты и услуги в любое время без предварительного уведомления. Intel не принимает на себя никакой ответственности или обязательств, возникающих в связи с применением или использованием какой-либо информации, продуктов или услуг, описанных в настоящем документе, за исключением случаев, когда это прямо согласовано с корпорацией Intel в письменной форме. Клиентам Intel рекомендуется получить последнюю версию спецификаций устройств, прежде чем полагаться на какую-либо опубликованную информацию и размещать заказы на продукты или услуги. *Другие названия и торговые марки могут быть заявлены как собственность других лиц.
Сопутствующая информация
- Краткое руководство по стеку ускорения Intel для программируемой платы ускорения Intel FPGA D5005
- Установка программного пакета OPAE
Аппаратные компоненты DMA AFU
Интерфейсы DMA AFU с блоком интерфейса FPGA (FIU) и памятью FPGA. Подробные характеристики памяти FPGA см. в листе данных диспетчера интерфейсов FPGA для платы Intel FPGA Programmable Acceleration Card D5005. Доступное в настоящее время оборудование диктует эту конфигурацию памяти. Будущее оборудование может поддерживать другие конфигурации памяти. Вы можете использовать DMA AFU для копирования данных между следующими исходными и целевыми местоположениями:
- Хост-устройство памяти FPGA
- Память устройства FPGA на хост
Система Platform Designer, $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/hw/rtl/TEST_dma/ /dma_test_system.qsys реализует большую часть DMA
- ВСУ. Часть DMA AFU, реализованного в системе Platform Designer, можно найти в следующем
местоположение: $OPAE_PLATFORM_ROOT/ч/сampЛес/dma_afu/hw/rtl/TEST_dma/ Вы можете найти DMA BBB в следующем месте:
- $OPAE_PLATFORM_ROOT/ч/сampЛес/dma_afu/hw/rtl/dma_bbb
Руководство пользователя функционального блока DMA Accelerator: Плата программируемого ускорения Intel FPGA D5005
Блок-схема аппаратного обеспечения DMA AFU
AFU DMA включает в себя следующие внутренние модули для взаимодействия с блоком интерфейса FPGA (FIU):
- Логика декодера ввода-вывода с отображением памяти (MMIO): обнаруживает транзакции чтения и записи MMIO и отделяет их от канала 0 RX CCI-P, из которого они поступают. Это гарантирует, что трафик MMIO никогда не достигнет BBB MPF и будет обслуживаться независимым каналом команд MMIO.
- Фабрика свойств памяти (MPF): этот модуль гарантирует, что ответы на чтение из DMA возвращаются в том порядке, в котором они были выданы. Протокол Avalon-MM требует, чтобы ответы на чтение возвращались в правильном порядке.
- Адаптер CCI-P для Avalon-MM: этот модуль выполняет перевод между транзакциями CCI-P и Avalon-MM следующим образом:
- Адаптер CCI-P к Avalon-MMIO: этот путь преобразует транзакции CCI-P MMIO в транзакции Avalon-MM.
- Хост-адаптер Avalon к CCI-P: эти пути создают отдельные пути только для чтения и только для записи для DMA для доступа к памяти хоста.
- Система тестирования DMA: этот модуль служит оболочкой для DMA BBB, чтобы предоставить мастерам DMA доступ к остальной логике в AFU. Он обеспечивает интерфейс между DMA BBB и адаптером CCI-P to Avalon. Он также обеспечивает интерфейс между DMA BBB и локальными банками FPGA SDRAM.
Сопутствующая информация
Лист данных диспетчера интерфейсов FPGA для программируемой платы ускорения Intel FPGA D5005
Система тестирования прямого доступа к памяти
Тестовая система DMA соединяет DMA BBB с остальной частью конструкции FPGA, включая адаптацию CCI-P и локальную память FPGA.
Блок-схема системы тестирования прямого доступа к памяти
Эта блок-схема показывает внутреннее устройство тестовой системы прямого доступа к памяти. Тестовая система прямого доступа к памяти показана в виде монолитного блока на рис. 1 на стр. 7.
Система тестирования DMA включает в себя следующие внутренние модули:
- Мост Far Reach/конвейерный мост: Конвейерный мост с регулируемой задержкой включен для управления топологией и улучшения конструкции Fmax.
- Заголовок функции устройства DMA AFU (DFH): это DFH для DMA AFU. Этот DFH указывает на следующий DFH, расположенный по смещению 0x100 (DMA BBB DFH).
- Null DFH: этот компонент завершает связанный список DFH. Если вы добавите в проект дополнительные DMA BBB, убедитесь, что нулевой базовый адрес DFH расположен в конце связанного списка DFH.
- Базовый строительный блок MA (BBB): этот блок перемещает данные между хостом и локальной памятью FPGA. Он также обращается к памяти хоста для доступа к цепочкам дескрипторов.
ДМА ВВВ
Подсистема DMA BBB передает данные от источника к адресу назначения с помощью транзакций Avalon-MM. Драйвер DMA управляет DMA BBB, обращаясь к регистрам управления и состояния различных компонентов внутри системы. Драйвер DMA также управляет DMA BBB, используя общую память для передачи дескрипторов передачи. DMA BBB обращается к данным в памяти FPGA по смещению 0x0. DMA BBB обращается к данным и дескрипторам в памяти хоста по смещению 0x1_0000_0000_0000.
Блок-схема конструктора платформы DMA BBB
Эта блок-схема не включает некоторые внутренние IP-ядра Pipeline Bridge.
Руководство пользователя функционального блока DMA Accelerator: Плата программируемого ускорения Intel FPGA D5005
Описание ВСУ прямого доступа к памяти
Компоненты DMA BBB Platform Designer реализуют следующие функции:
- Дальний мост/трубопроводный мост: Конвейерный мост с регулируемой задержкой включен для управления топологией и улучшения конструкции Fmax.
- МА БББ ДФХ: Это заголовок функции устройства для DMA BBB. Этот DFH указывает на следующий DFH, расположенный по смещению 0x100 (нулевой DFH).
- Интерфейс дескриптора: Отвечает за получение дескрипторов и их передачу диспетчеру. Когда передача DMA завершается, внешний интерфейс получает от Dispatcher формирование статуса и перезаписывает дескриптор в памяти хоста.
- Диспетчер: Этот блок планирует запросы на передачу DMA мастеру чтения и записи.
- Читать мастер: Этот блок отвечает за чтение данных из памяти хоста или локальной FPGA и отправку их в виде потоковых данных на мастер записи.
- Пишите мастеру: Этот блок отвечает за получение потоковых данных от Мастера чтения и запись содержимого в хост или локальную память ПЛИС.
Регистрация карт и адресных пространств
DMA AFU поддерживает две памяти viewс: Прямой доступ к памяти view и хозяин view. Прямой доступ к памяти view поддерживает 49-битное адресное пространство. Нижняя половина прямого доступа к памяти view сопоставляется с локальной памятью FPGA. Верхняя половина прямого доступа к памяти view сопоставляется с памятью хоста. Гостья view включает все регистры, доступные через доступ MMIO, такие как таблицы DFH, и регистры управления/статуса различных IP-ядер, используемых внутри DMA AFU. Регистры MMIO в DMA BBB и AFU поддерживают 32- и 64-битный доступ. DMA AFU не поддерживает 512-битный доступ MMIO. Доступ к регистрам Dispatcher внутри DMA BBB должен быть 32-битным (интерфейс дескриптора реализует 64-битные регистры).
Карта регистров DMA AFU
Карта регистров DMA AFU предоставляет абсолютные адреса всех местоположений в устройстве. Эти регистры находятся в хосте view потому что только хост может получить к ним доступ.
Карта памяти DMA AFU
Смещение байтового адреса | Имя | Диапазон в байтах | Описание |
0x0 | ДМА ВСУ ДФХ | 0x40 | Заголовок функции устройства для DMA AFU. Для ID_L установлено значение 0x9081f88b8f655caa, а для ID_H установлено значение 0x331db30c988541ea. Параметр DMA AFU DFH указывает на смещение 0x100 для поиска следующего DFH (DMA BBB DFH). Вы не должны изменять базовый адрес DMA AFU DFH, поскольку он должен располагаться по адресу 0x0, как определено спецификацией CCIP. |
0x100 | ДМА ВВВ | 0x100 | Определяет интерфейс управления DMA BBB и регистра состояния. Вы можете обратиться к карте регистров DMA BBB для получения дополнительной информации. Внутри DMA BBB со смещением 0 DMA BBB включает в себя собственный DFH. Этот DFH настроен на поиск следующего DFH по смещению 0x100 (NULL DFH). Если вы добавите больше DMA BBB, разместите их на расстоянии 0x100 и убедитесь, что NULL DFH следует за последним DMA на 0x100. |
0x200 | НУЛЕВОЙ ДФХ | 0x40 | Завершает связанный список DFH. Для ID_L установлено значение 0x90fe6aab12a0132f, а для ID_H установлено значение 0xda1182b1b3444e23. NULL DFH был параметризован как последний аппаратный DFH. По этой причине NULL DFH располагается по адресу 0x200. Если вы добавляете в систему дополнительные DMA BBB, вам необходимо соответственно увеличить базовый адрес NULL DFH, чтобы он оставался на самом высоком адресе. Драйвер DMA и тестовое приложение не используют это оборудование. |
Корпорация Интел. Все права защищены. Intel, логотип Intel и другие товарные знаки Intel являются товарными знаками корпорации Intel или ее дочерних компаний. Корпорация Intel гарантирует производительность своих FPGA и полупроводниковых продуктов в соответствии с текущими спецификациями в соответствии со стандартной гарантией Intel, но оставляет за собой право вносить изменения в любые продукты и услуги в любое время без предварительного уведомления. Intel не принимает на себя никакой ответственности или обязательств, возникающих в связи с применением или использованием какой-либо информации, продуктов или услуг, описанных в настоящем документе, за исключением случаев, когда это прямо согласовано с корпорацией Intel в письменной форме. Клиентам Intel рекомендуется получить последнюю версию спецификаций устройств, прежде чем полагаться на какую-либо опубликованную информацию и размещать заказы на продукты или услуги. *Другие названия и торговые марки могут быть заявлены как собственность других лиц.
Регистрация карт и адресных пространств
Карта памяти DMA BBB
Следующие адреса байтов являются относительными смещениями от базового адреса DMA BBB в системе DMA AFU (0x100).
Смещение байтового адреса | Имя | Диапазон в байтах | Описание |
0x0 | ДМА BBB DFH | 0x40 | Заголовок функции устройства для DMA AFU. Для ID_L установлено значение 0xa9149a35bace01ea, а для ID_H установлено значение 0xef82def7f6ec40fc. DMA BBB DFH был параметризован так, чтобы указывать на 0x100 для следующего смещения DFH. Это следующее смещение может быть другим DMA BBB, другим DFH (не включенным в эту схему) или NULL DFH. |
0x40 | Диспетчер | 0x40 | Порт управления для диспетчера. Драйвер прямого доступа к памяти использует это расположение для управления прямым доступом к памяти или запроса его состояния. |
0x80 | Интерфейс дескриптора | 0x40 | Внешний интерфейс дескриптора — это настраиваемый компонент, который считывает дескрипторы из памяти хоста и перезаписывает дескриптор после завершения передачи DMA. Драйвер указывает внешнему интерфейсу, где находится первый дескриптор в памяти хоста, а затем оборудование внешнего интерфейса взаимодействует с драйвером в основном через дескрипторы, хранящиеся в памяти хоста. |
Адресное пространство DMA AFU
Хост может получить доступ к регистрам, перечисленным в Таблице 4 на стр. 12 и Таблице 5 на стр. 13. Подсистема DMA BBB имеет доступ ко всему 49-битному адресному пространству. Нижняя половина этого адресного пространства включает в себя локальную память ПЛИС. Верхняя половина этого адресного пространства включает 48-битную адресную память хоста. На следующем рисунке показаны хост и DMA. viewс памяти.
DMA AFU и хост Viewс памяти
Связанный список заголовка функции устройства
Конструкция DMA AFU exampФайл содержит три заголовка характеристик устройства (DFH), которые образуют связанный список. Этот связанный список позволяетampПриложение для идентификации AFU DMA, а также драйвер для идентификации BBB DMA. Список DFH включает NULL DFH в конце. Включение нулевого DFH в конец связанного списка позволяет добавить в проект больше DMA BBB. Вам просто нужно переместить NULL DFH на адрес после других BBB. Каждый DMA BBB ожидает, что следующий DFH будет расположен в 0x100 байтах от базового адреса BBB. На следующем рисунке показан связанный список для проекта DMA AFU exampле.
Регистрация карт и адресных пространств
DMA AFU Device Feature Header (DFH) Цепочка
Программная модель программного обеспечения
DMA AFU включает программный драйвер, который вы можете использовать в своем собственном хост-приложении. Файлы fpga_dma.cpp и fpga_dma.h files, расположенные в следующем месте, реализуют программный драйвер: $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw Этот драйвер поддерживает следующие функции:
API | Описание |
fpgaCountDMAКаналы | Сканирует цепочку функций устройства на наличие BBB DMA и подсчитывает все доступные каналы. |
fpgaDMAОткрыть | Открывает дескриптор канала DMA. |
fpgaDMAЗакрыть | Закрывает дескриптор канала DMA. |
fpgaDMATransferInit | Инициализирует объект, представляющий передачу DMA. |
fpgaDMATransferReset | Сбрасывает объект атрибута передачи DMA к значениям по умолчанию. |
fpgaDMATransferDestroy | Уничтожает объект атрибута передачи DMA. |
fpgaDMATransferSetSrc | Устанавливает исходный адрес перевода. Этот адрес должен быть выровнен по 64 байтам. |
fpgaDMATransferSetDst | Устанавливает адрес назначения перевода. Этот адрес должен быть выровнен по 64 байтам. |
fpgaDMATransferSetLen | Устанавливает длину передачи в байтах. Для непакетной передачи необходимо установить длину передачи кратной 64 байтам. Для передачи пакетов это не является обязательным требованием. |
fpgaDMATransferSetTransferType | Устанавливает тип передачи. Правовые значения:
• HOST_MM_TO_FPGA_MM = TX (от хоста к AFU) • FPGA_MM_TO_HOST_MM = RX (AFU к хосту) |
fpgaDMATransferSetTransferCallback | Регистрирует обратный вызов для уведомления о завершении асинхронной передачи. Если вы укажете обратный вызов, fpgaDMATransfer немедленно вернется (асинхронная передача).
Если вы не укажете обратный вызов, fpgaDMATransfer вернется после завершения передачи (синхронная/блокирующая передача). |
fpgaDMATransferSetLast | Указывает последнюю передачу, чтобы DMA мог начать обработку предварительно выбранных передач. Значение по умолчанию — 64 передачи в конвейере, прежде чем DMA начнет работать с передачей. |
fpgaDMAПеренос | Выполняет передачу DMA. |
Дополнительные сведения об API, входных и выходных аргументах см. в заголовке file расположен $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw/fpga_dma.hКорпорация Intel. Все права защищены. Intel, логотип Intel и другие товарные знаки Intel являются товарными знаками корпорации Intel или ее дочерних компаний. Корпорация Intel гарантирует производительность своих FPGA и полупроводниковых продуктов в соответствии с текущими спецификациями в соответствии со стандартной гарантией Intel, но оставляет за собой право вносить изменения в любые продукты и услуги в любое время без предварительного уведомления. Intel не принимает на себя никакой ответственности или обязательств, возникающих в связи с применением или использованием какой-либо информации, продуктов или услуг, описанных в настоящем документе, за исключением случаев, когда это прямо согласовано с корпорацией Intel в письменной форме. Клиентам Intel рекомендуется получить последнюю версию спецификаций устройств, прежде чем полагаться на какую-либо опубликованную информацию и размещать заказы на продукты или услуги. Другие имена и торговые марки могут быть заявлены как собственность других лиц.
Программная модель программного обеспечения
Чтобы узнать больше о модели использования программного драйвера, обратитесь к README file находится по адресу $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/README.md
Запуск DMA AFU Example
Прежде чем начать:
- Вы должны быть знакомы с бывшимampфайлы в кратком руководстве по стеку ускорения Intel для платы Intel FPGA Programmable Acceleration Card D5005.
- Вы должны определить переменную среды. Переменная среды зависит от используемой вами версии Intel Acceleration Stack:
- Для текущей версии установите для переменной среды значение $OPAE_PLATFORM_ROOT.
- Вы должны установить библиотеку Intel Threading Building Blocks (TBB), так как драйвер DMA использует ее.
- Вы также должны настроить две огромные страницы по 1 ГБ для запуска sampле приложение. $ sudo sh -c "echo 2 > /sys/kernel/mm/hugepages/hugepages-1048576kB/ nr_hugepages"
Выполните следующие шаги, чтобы загрузить битовый поток функции акселератора DMA (AF), создать приложение и драйвер, а также запустить пример проекта.ampль:
- Перейдите в каталог приложений и драйверов DMA: cd $OPAE_PLATFORM_ROOT/hw/sampЛес/dma_afu/sw
- Сборка драйвера и приложения: make
- Загрузите битовый поток DMA AFU: sudo fpgasupdate ../bin/dma_afu_unsigned.gbs
- Запустите хост-приложение, чтобы записать 100 МБ порциями по 1 МБ из памяти хоста в память устройства FPGA и прочитать их обратно: ./ fpga_dma_test -s 104857600 -p 1048576 -r mtom
Сопутствующая информация
Краткое руководство по стеку ускорения Intel для программируемой платы ускорения Intel FPGA D5005 Корпорация Intel. Все права защищены. Intel, логотип Intel и другие товарные знаки Intel являются товарными знаками корпорации Intel или ее дочерних компаний. Корпорация Intel гарантирует производительность своих FPGA и полупроводниковых продуктов в соответствии с текущими спецификациями в соответствии со стандартной гарантией Intel, но оставляет за собой право вносить изменения в любые продукты и услуги в любое время без предварительного уведомления. Intel не принимает на себя никакой ответственности или обязательств, возникающих в связи с применением или использованием какой-либо информации, продуктов или услуг, описанных в настоящем документе, за исключением случаев, когда это прямо согласовано с корпорацией Intel в письменной форме. Клиентам Intel рекомендуется получить последнюю версию спецификаций устройств, прежде чем полагаться на какую-либо опубликованную информацию и размещать заказы на продукты или услуги. *Другие названия и торговые марки могут быть заявлены как собственность других лиц.
Компиляция DMA AFU Example
Чтобы создать среду сборки синтеза для компиляции AF, используйте команду afu_synth_setup следующим образом:
- Переход на DMA AFU sampкаталог файлов: $OPAE_PLATFORM_ROOT/hw/sampлес/dma_afu
- Создайте каталог сборки дизайна: afu_synth_setup –source hw/rtl/filelist.txt build_synth
- Из каталога сборки синтеза, сгенерированного afu_synth_setup, введите следующие команды из окна терминала, чтобы сгенерировать AF для целевой аппаратной платформы: cd build_synth run.sh Сценарий создания AF run.sh создает образ AF с той же базой. fileимя в качестве конфигурации платформы AFU file (.json) с суффиксом .gbs по адресу: $OPAE_PLATFORM_ROOT/hw/samples/build_synth/dma_afu_s10.gbs Корпорация Intel. Все права защищены. Intel, логотип Intel и другие товарные знаки Intel являются товарными знаками корпорации Intel или ее дочерних компаний. Корпорация Intel гарантирует производительность своих FPGA и полупроводниковых продуктов в соответствии с текущими спецификациями в соответствии со стандартной гарантией Intel, но оставляет за собой право вносить изменения в любые продукты и услуги в любое время без предварительного уведомления. Intel не принимает на себя никакой ответственности или обязательств, возникающих в связи с применением или использованием какой-либо информации, продуктов или услуг, описанных в настоящем документе, за исключением случаев, когда это прямо согласовано с корпорацией Intel в письменной форме. Клиентам Intel рекомендуется получить последнюю версию спецификаций устройств, прежде чем полагаться на какую-либо опубликованную информацию и размещать заказы на продукты или услуги. *Другие названия и торговые марки могут быть заявлены как собственность других лиц.
Моделирование AFU Example
Корпорация Intel рекомендует обратиться к краткому руководству Intel Accelerator Functional Unit (AFU) Simulation Environment (ASE) для вашего Intel FPGA PAC, чтобы быть знакомым с моделированием аналогичных examples и настроить вашу среду. Перед выполнением следующих шагов убедитесь, что для переменной среды OPAE_PLATFORM_ROOT задан каталог установки OPAE SDK. Выполните следующие шаги, чтобы настроить аппаратный симулятор для DMA AFU:
- Переход на DMA AFU sampкаталог файлов: cd $OPAE_PLATFORM_ROOT/hw/sampлес/dma_afu
- Создайте среду ASE в новом каталоге и настройте ее для имитации AFU: afu_sim_setup –source hw/rtl/filelist.txt build_ase_dir
- Перейдите в каталог сборки ASE: cd build_ase_dir
- Сборка драйвера и приложения: make
- Сделать симуляцию: сделать сим
SampВыходной файл аппаратного симулятора:
[SIM] ** ВНИМАНИЕ: ПЕРЕД запуском программного приложения ** [SIM] Установите env(ASE_WORKDIR) в терминале, где будет запускаться приложение (копирование и вставка) => [SIM] $SHELL | Выполнить: [SIM] ———+————————————————— [SIM] bash/zsh | экспорт ASE_WORKDIR=$OPAE_PLATFORM_ROOT/час/сamples/dma_afu/ase_mkdir/work [SIM] tcsh/csh | setenv ASE_WORKDIR $OPAE_PLATFORM_ROOT/час/сamples/dma_afu/ase_mkdir/work [SIM] По поводу любой другой $SHELL обратитесь к администратору Linux [SIM] [SIM] Готово к моделированию… [SIM] Нажмите CTRL-C, чтобы закрыть симулятор…Выполните следующие шаги, чтобы скомпилировать и выполнить программное обеспечение DMA AFU в среде моделирования:
- Откройте новое окно терминала.
- Сменить каталог на: cd $OPAE_PLATFORM_ROOT/hw/sampЛес/dma_afu/sw
Корпорация Интел. Все права защищены. Intel, логотип Intel и другие товарные знаки Intel являются товарными знаками корпорации Intel или ее дочерних компаний. Корпорация Intel гарантирует производительность своих FPGA и полупроводниковых продуктов в соответствии с текущими спецификациями в соответствии со стандартной гарантией Intel, но оставляет за собой право вносить изменения в любые продукты и услуги в любое время без предварительного уведомления. Intel не принимает на себя никакой ответственности или обязательств, возникающих в связи с применением или использованием какой-либо информации, продуктов или услуг, описанных в настоящем документе, за исключением случаев, когда это прямо согласовано с корпорацией Intel в письменной форме. Клиентам Intel рекомендуется получить последнюю версию спецификаций устройств, прежде чем полагаться на какую-либо опубликованную информацию и размещать заказы на продукты или услуги. *Другие названия и торговые марки могут быть заявлены как собственность других лиц.
Моделирование AFU Example
- Скопируйте строку настройки среды (выберите строку, соответствующую вашей оболочке) из шагов, описанных выше в моделировании оборудования, в окно терминала. См. следующие строки в sampвыходной файл аппаратного симулятора. [SIM] bash/zsh | экспорт ASE_WORKDIR=$OPAE_PLATFORM_ROOT/час/сamples/dma_afu/build_ase_dir/work [SIM] tcsh/csh | setenv ASE_WORKDIR $OPAE_PLATFORM_ROOT/час/сamples/dma_afu/build_ase_dir/work
- Скомпилируйте программу: $ make USE_ASE=1
- Выполните хост-приложение для записи 4 КБ частями по 1 КБ из памяти хоста обратно в память устройства FPGA в режиме обратной связи: ./ fpga_dma_test -s 4096 -p 1024 -r mtom
Сопутствующая информация
Intel Accelerator Functional Unit (AFU) Simulation Environment (ASE) Краткое руководство пользователя
Оптимизация для повышения производительности прямого доступа к памяти
Реализация оптимизации NUMA (неоднородный доступ к памяти) в fpga_dma_test.cpp позволяет процессору обращаться к собственной локальной памяти быстрее, чем к нелокальной памяти (памяти, локальной для другого процессора). Типичная конфигурация NUMA показана на схеме ниже. Локальный доступ представляет собой доступ из ядра к локальной памяти того же ядра. Удаленный доступ иллюстрирует путь, по которому ядро на узле 0 обращается к памяти, которая находится в памяти, локальной для узла 1.
Типичная конфигурация NUMA
Используйте следующий код для реализации оптимизации NUMA в тестовом приложении:
// Установить правильное сходство, если требуется if (cpu_affinity || memory_affinity) {unsigned dom = 0, bus = 0, dev = 0, func = 0; реквизиты fpga_properties;целое значение; #if(FPGA_DMA_DEBUG)char str[4096]; #endifres = fpgaGetProperties(afc_token, &props); ON_ERR_GOTO(res, out_destroy_tok, «fpgaGetProperties»); res = fpgaPropertiesGetBus (реквизиты, (uint8_t *) и шина); ON_ERR_GOTO (res, out_destroy_tok, «fpgaPropertiesGetBus»); res = fpgaPropertiesGetDevice(props, (uint8_t *) & dev); ON_ERR_GOTO(res, out_destroy_tok, «fpgaPropertiesGetDevice») res = fpgaPropertiesGetFunction(props, (uint8_t *) & func); ON_ERR_GOTO(res, out_destroy_tok, «fpgaPropertiesGetFunction»); // Находим устройство в топологии hwloc_topology_t topology; hwloc_topology_init(&топология); hwloc_topology_set_flags(топология, HWLOC_TOPOLOGY_FLAG_IO_DEVICES);Корпорация Intel. Все права защищены. Intel, логотип Intel и другие товарные знаки Intel являются товарными знаками корпорации Intel или ее дочерних компаний. Корпорация Intel гарантирует производительность своих FPGA и полупроводниковых продуктов в соответствии с текущими спецификациями в соответствии со стандартной гарантией Intel, но оставляет за собой право вносить изменения в любые продукты и услуги в любое время без предварительного уведомления. Intel не принимает на себя никакой ответственности или обязательств, возникающих в связи с применением или использованием какой-либо информации, продуктов или услуг, описанных в настоящем документе, за исключением случаев, когда это прямо согласовано с корпорацией Intel в письменной форме. Клиентам Intel рекомендуется получить последнюю версию спецификаций устройств, прежде чем полагаться на какую-либо опубликованную информацию и размещать заказы на продукты или услуги. *Другие названия и торговые марки могут быть заявлены как собственность других лиц.
Оптимизация для повышения производительности прямого доступа к памяти
hwloc_topology_load (топология); hwloc_obj_t obj = hwloc_get_pcidev_by_busid(топология, дом, шина, разработка, функция); hwloc_obj_t obj2 = hwloc_get_non_io_ancestor_obj(топология, obj); #if (FPGA_DMA_DEBUG) hwloc_obj_type_snprintf(str, 4096, obj2, 1); printf("%s\n", str);hwloc_obj_attr_snprintf(str, 4096, obj2, " :: ", 1); printf("%s\n", str); hwloc_bitmap_taskset_snprintf(str, 4096, obj2->cpuset); printf("ЦП: %s\n", str); hwloc_bitmap_taskset_snprintf(str, 4096, obj2->nodeset); printf("NODESET is %s\n", str);#endif if (memory_affinity) { #if HWLOC_API_VERSION > 0x00020000 retval = hwloc_set_membind(topology, obj2->nodeset,HWLOC_MEMBIND_THREAD, HWLOC_MEMBIND_MIGRATE |HWLOC_MEMBIND_BYNODESET); #else retval =hwloc_set_membind_nodeset(топология, obj2->nodeset, HWLOC_MEMBIND_THREAD,HWLOC_MEMBIND_MIGRATE); #endifON_ERR_GOTO(retval, out_destroy_tok, «hwloc_set_membind»); } if (cpu_affinity) { retval = hwloc_set_cpubind(topology, obj2->cpuset, HWLOC_CPUBIND_STRICT); ON_ERR_GOTO(retval, out_destroy_tok, «hwloc_set_cpubind»); } }
Архив руководства пользователя функционального блока DMA Accelerator
Версия стека ускорения Intel | Руководство пользователя (PDF) |
2.0 | Руководство пользователя функционального блока ускорителя прямого доступа к памяти (AFU) |
История изменений документа для функционального блока DMA Accelerator. Руководство пользователя.
Версия документа |
Intel Acceleration Версия стека |
Изменения |
2020.08.03 |
2.0.1 (поддерживается Intel
Quartus® Prime Pro Edition Edition 19.2) |
Исправлено изображение AF file имя в разделе Компиляция DMA AFU Example. |
2020.04.17 |
2.0.1 (поддерживается Intel
Quartus Prime Pro Edition 19.2) |
Исправил заявление в Целевая аудитория раздел. |
2020.02.20 |
2.0.1 (поддерживается Intel
Quartus Prime Pro Edition 19.2) |
Исправлена опечатка. |
2019.11.04 |
2.0.1 (поддерживается Intel Quartus Prime Pro Edition 19.2) |
• Заменил fpgaconf на fpgasupdate при настройке FPGA с предварительной сборкой AFU в разделе Запуск DMA AFU Example.
• Добавлены субтитры Плата программируемого ускорения Intel FPGA D5005 к названию документа. • Добавлена переменная окружения $OPAE_PLATFORM_ROOT. • Измененный раздел Программная модель программного обеспечения для мелких правок. • Добавлен новый раздел Компиляция DMA AFU Example. • Измененный раздел Оптимизация для повышения производительности прямого доступа к памяти для мелких правок. |
2019.08.05 |
2.0 (поддерживается Intel
Квартус Прайм Про Редакция 18.1.2) |
Первоначальный выпуск. |
Корпорация Интел. Все права защищены. Intel, логотип Intel и другие товарные знаки Intel являются товарными знаками корпорации Intel или ее дочерних компаний. Корпорация Intel гарантирует производительность своих FPGA и полупроводниковых продуктов в соответствии с текущими спецификациями в соответствии со стандартной гарантией Intel, но оставляет за собой право вносить изменения в любые продукты и услуги в любое время без предварительного уведомления. Intel не принимает на себя никакой ответственности или обязательств, возникающих в связи с применением или использованием какой-либо информации, продуктов или услуг, описанных в настоящем документе, за исключением случаев, когда это прямо согласовано с корпорацией Intel в письменной форме. Клиентам Intel рекомендуется получить последнюю версию спецификаций устройств, прежде чем полагаться на какую-либо опубликованную информацию и размещать заказы на продукты или услуги.
- Другие названия и бренды могут быть заявлены как собственность других лиц.
Документы/Ресурсы
![]() |
Плата программируемого ускорения Intel FPGA D5005 [pdf] Руководство пользователя Плата программируемого ускорения FPGA, D5005, Плата программируемого ускорения FPGA D5005, функциональный блок ускорителя прямого доступа к памяти |