Intel FPGA Programmable Acceleration Card D5005
Про цей документ
У цьому документі описано реалізацію функціонального блоку прискорювача (AFU) прямого доступу до пам’яті (DMA) і те, як побудувати проект для роботи на апаратному забезпеченні або в симуляції.
Цільова аудиторія
Цільова аудиторія включає розробників обладнання та програмного забезпечення, яким потрібна функція прискорення (AF) для локальної буферизації даних у пам’яті, підключеній до пристрою Intel FPGA.
Конвенції
Умовні позначення документів
Конвенція | опис |
# | Передує команді, яка вказує, що команду потрібно ввести як root. |
$ | Вказує, що команду потрібно ввести як користувач. |
Цей шрифт | Fileімена, команди та ключові слова друкуються цим шрифтом. Довгі командні рядки друкуються цим шрифтом. Хоча довгі командні рядки можуть переходити до наступного рядка, повернення не є частиною команди; не натискайте enter. |
Вказує, що текст покажчика місця заповнення, що з’являється між кутовими дужками, потрібно замінити відповідним значенням. Не вводьте кутові дужки. |
Акроніми
Акроніми
Акроніми | Розширення | опис |
AF | Функція прискорювача | Зібраний образ апаратного прискорювача, реалізований у логіці FPGA, який прискорює програму. |
ЗСУ | Функціональний блок прискорювача | Апаратний прискорювач, реалізований у логіці FPGA, який знімає обчислювальну операцію для програми з ЦП для підвищення продуктивності. |
API | Інтерфейс прикладного програмування | Набір визначень підпрограм, протоколів та інструментів для створення програмних додатків. |
CCI-P | Основний інтерфейс кешу | CCI-P — це стандартний інтерфейс AFU, який використовується для зв’язку з хостом. |
DFH | Заголовок функції пристрою | Створює пов’язаний список заголовків функцій, щоб забезпечити розширюваний спосіб додавання функцій. |
продовження... |
Корпорація Intel. Всі права захищені. Intel, логотип Intel та інші знаки Intel є товарними знаками корпорації Intel або її дочірніх компаній. Intel гарантує роботу своїх FPGA та напівпровідникових продуктів відповідно до поточних специфікацій відповідно до стандартної гарантії Intel, але залишає за собою право вносити зміни в будь-які продукти та послуги в будь-який час без попередження. Корпорація Intel не бере на себе жодної відповідальності чи зобов’язань, що виникають у зв’язку із застосуванням або використанням будь-якої інформації, продукту чи послуги, описаних у цьому документі, за винятком випадків, чітко наданих корпорацією Intel у письмовій формі. Клієнтам Intel рекомендується отримати останню версію специфікацій пристрою, перш ніж покладатися на будь-яку опубліковану інформацію та перед тим, як розміщувати замовлення на продукти чи послуги. *Інші назви та бренди можуть бути власністю інших осіб.
Акроніми | Розширення | опис |
FIM | Менеджер інтерфейсу FPGA | Апаратне забезпечення FPGA, що містить блок інтерфейсу FPGA (FIU) і зовнішні інтерфейси для пам’яті, мережі тощо.
Функція прискорювача (AF) взаємодіє з FIM під час виконання. |
ПФР | Блок інтерфейсу FPGA | FIU — це рівень інтерфейсу платформи, який діє як міст між інтерфейсами платформи, такими як PCIe*, UPI, і інтерфейсами на стороні AFU, такими як CCI-P. |
MPF | Фабрика властивостей пам'яті | MPF — це базовий будівельний блок (BBB), який AFU можуть використовувати для забезпечення операцій формування трафіку CCI-P для транзакцій із FIU. |
Глосарій прискорення
Глосарій стека прискорення для процесора Intel® Xeon® із FPGA
термін | Абревіатура | опис |
Intel® Acceleration Stack для процесора Intel Xeon® із FPGA | Стек прискорення | Набір програмного забезпечення, вбудованого програмного забезпечення та інструментів, які забезпечують оптимізоване з’єднання між FPGA Intel і процесором Intel Xeon. |
Програмована карта прискорення Intel FPGA | Intel FPGA PAC | Карта прискорювача PCIe FPGA.
Містить менеджер інтерфейсу FPGA (FIM), який з’єднується з процесором Intel Xeon через шину PCIe. |
- Посібник користувача функціонального блоку прискорювача DMA: Програмована карта прискорення Intel FPGA D5005
DMA AFU Опис
вступ
Прямий доступ до пам’яті (DMA) AFU напрampLe показує, як керувати передачею пам'яті між головним процесором і FPGA. Ви можете інтегрувати DMA AFU у свій проект для переміщення даних між головною пам’яттю та локальною пам’яттю FPGA. DMA AFU містить такі підмодулі:
- Memory Properties Factory (MPF) Basic Building Block (BBB)
- Інтерфейс ядра кешу (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 example. Цей колишнійample забезпечує драйвер простору користувача. Хост-програма використовує цей драйвер таким чином, що DMA переміщує дані між хостом і пам’яттю FPGA. Апаратні двійкові файли, джерела та драйвер простору користувача доступні в такому каталозі: $OPAE_PLATFORM_ROOT/hw/samples/dma_afu . Перш ніж експериментувати з DMA AFU, ви повинні встановити пакет програмного забезпечення Open Programmable Acceleration Engine (OPAE). Інструкції зі встановлення див. у розділі «Встановлення пакета програмного забезпечення OPAE» у Короткому посібнику користувача Intel Acceleration Stack для програмованої плати Intel FPGA D5005. Цей короткий посібник також містить основну інформацію про Open Programmable Acceleration Engine (OPAE) і налаштування AFU. Після встановлення пакета програмного забезпечення Open Programmable Acceleration Engine (OPAE), якampхост-програма та драйвер простору користувача DMA AFU доступні в такому каталозі: $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw. Щоб запустити sampу програмі хосту, fpga_dma_test на апаратному забезпеченні Intel FPGA PAC D5005, зверніться до кроків у розділі Запуск DMA AFU Example. Корпорація Intel. Всі права захищені. Intel, логотип Intel та інші знаки Intel є товарними знаками корпорації Intel або її дочірніх компаній. Intel гарантує роботу своїх FPGA та напівпровідникових продуктів відповідно до поточних специфікацій відповідно до стандартної гарантії Intel, але залишає за собою право вносити зміни в будь-які продукти та послуги в будь-який час без попередження. Корпорація Intel не бере на себе жодної відповідальності чи зобов’язань, що виникають у зв’язку із застосуванням або використанням будь-якої інформації, продукту чи послуги, описаних у цьому документі, за винятком випадків, чітко наданих корпорацією Intel у письмовій формі. Клієнтам Intel рекомендується отримати останню версію специфікацій пристрою, перш ніж покладатися на будь-яку опубліковану інформацію та перед тим, як розміщувати замовлення на продукти чи послуги. *Інші назви та бренди можуть бути власністю інших осіб.
Пов'язана інформація
- Короткий посібник зі стеку Intel Acceleration Stack для програмованої плати Intel FPGA D5005
- Встановлення пакета програмного забезпечення OPAE
Апаратні компоненти DMA AFU
DMA AFU взаємодіє з модулем інтерфейсу FPGA (FIU) і пам’яттю FPGA. Зверніться до аркуша даних диспетчера інтерфейсу FPGA для програмованої плати Intel FPGA Acceleration Card D5005, щоб отримати докладні характеристики пам’яті FPGA. Ця конфігурація пам'яті залежить від доступного обладнання. Майбутнє обладнання може підтримувати різні конфігурації пам'яті. Ви можете використовувати DMA AFU для копіювання даних між такими розташуваннями джерела та призначення:
- Пам'ять FPGA хост-пристрою
- Пам'ять пристрою FPGA до хоста
Система Designer платформи, $OPAE_PLATFORM_ROOT/hw/samples/ dma_afu/hw/rtl/TEST_dma/ /dma_test_system.qsys реалізує більшу частину DMA
- ЗСУ. Частину DMA AFU, реалізовану в системі Platform Designer, можна знайти в наступному
розташування: $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/hw/rtl/TEST_dma/ Ви можете знайти DMA BBB у такому місці:
- $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/hw/rtl/dma_bbb
Посібник користувача функціонального блоку прискорювача DMA: Програмована карта прискорення Intel FPGA D5005
Блок-схема обладнання DMA AFU
DMA AFU включає такі внутрішні модулі для взаємодії з модулем інтерфейсу FPGA (FIU):
- Логіка декодера Memory-Mapped IO (MMIO): виявляє транзакції читання та запису MMIO та відокремлює їх від каналу CCI-P RX 0, з якого вони надходять. Це гарантує, що трафік MMIO ніколи не досягне MPF BBB і обслуговується незалежним командним каналом 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 до Avalon. Він також забезпечує інтерфейс між DMA BBB і локальними банками FPGA SDRAM.
Пов'язана інформація
Технічні дані диспетчера інтерфейсу FPGA для програмованої плати Intel FPGA D5005
Система тестування DMA
Система тестування DMA з’єднує DMA BBB з рештою конструкції FPGA, включаючи адаптацію CCI-P і локальну пам’ять FPGA.
Блок-схема тестової системи DMA
Ця блок-схема показує внутрішню частину тестової системи DMA. Тестова система DMA показана як монолітний блок на малюнку 1 на сторінці 7.
Тестова система DMA включає такі внутрішні модулі:
- Міст Far Reach/Трубопровідний міст: конвеєрний міст із регульованою затримкою, включеною для контролю топології та покращення конструкції Fmax.
- Заголовок функції пристрою DMA AFU (DFH): це DFH для DMA AFU. Цей DFH вказує на наступний DFH, розташований на зміщенні 0x100 (DMA BBB DFH).
- Нульовий DFH: цей компонент завершує пов’язаний список DFH. Якщо ви додаєте до проекту більше DMA BBB, переконайтеся, що нульова базова адреса DFH розташована в кінці пов’язаного списку DFH.
- MA Basic Building Block (BBB): Цей блок переміщує дані між хостом і локальною пам’яттю FPGA. Він також звертається до пам'яті хоста для доступу до ланцюжків дескрипторів.
DMA BBB
Підсистема 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: Програмована карта прискорення Intel FPGA D5005
DMA AFU Опис
Компоненти DMA BBB Platform Designer реалізують такі функції:
- Далекий міст/трубопровідний міст: Конвеєрний міст із регульованою затримкою включений для контролю топології та покращення конструкції Fmax.
- MA BBB DFH: Це заголовок функції пристрою для DMA BBB. Цей DFH вказує на наступний DFH, розташований на зміщенні 0x100 (нульовий DFH).
- Дескриптор Frontend: Відповідає за вибірку дескрипторів і передачу їх диспетчеру. Коли передача DMA завершується, інтерфейс отримує формування статусу від диспетчера та перезаписує дескриптор у пам’яті хоста.
- Диспетчер: Цей блок планує запити передачі DMA до головного пристрою читання та запису.
- Читайте майстер: Цей блок відповідає за зчитування даних із головної чи локальної пам’яті FPGA та надсилання їх як потокових даних до Write Master.
- Написати майстер: Цей блок відповідає за отримання потокових даних від Read Master і запис вмісту в хост або локальну пам'ять FPGA.
Зареєструвати карту та адресний простір
DMA AFU підтримує дві пам'яті views: DMA view і господар view. DMA view підтримує 49-бітний адресний простір. Нижня половина DMA view відображається в локальній пам'яті FPGA. Верхня половина DMA view карти в пам'ять хоста. Господар view включає всі регістри, доступні через доступ MMIO, такі як таблиці DFH, і регістри керування/статусу різних ядер IP, що використовуються всередині DMA AFU. Регістри MMIO в DMA BBB і AFU підтримують 32- і 64-бітовий доступ. DMA AFU не підтримує 512-бітний доступ MMIO. Доступ до регістрів диспетчера всередині DMA BBB має бути 32 біта (інтерфейс дескриптора реалізує 64-бітні регістри).
Карта реєстрації DMA AFU
Карта реєстру DMA AFU надає абсолютні адреси всіх місць у межах підрозділу. Ці регістри знаходяться в хості view тому що тільки хост може отримати до них доступ.
Карта пам'яті DMA AFU
Зміщення байтової адреси | Ім'я | Діапазон у байтах | опис |
0x0 | DMA AFU DFH | 0x40 | Заголовок функції пристрою для DMA AFU. ID_L має значення 0x9081f88b8f655caa, а ID_H — 0x331db30c988541ea. DMA AFU DFH було параметризовано, щоб вказувати на зсув 0x100 для пошуку наступного DFH (DMA BBB DFH). Не можна змінювати базову адресу DMA AFU DFH, оскільки вона має бути розташована за адресою 0x0, як визначено специфікацією CCIP. |
0x100 | DMA BBB | 0x100 | Визначає керування DMA BBB та інтерфейс регістру стану. Ви можете звернутися до карти реєстру DMA BBB для отримання додаткової інформації. У межах DMA BBB зі зміщенням 0 DMA BBB включає власний DFH. Цей DFH налаштовано на пошук наступного DFH зі зміщенням 0x100 (NULL DFH). Якщо ви додаєте більше DMA BBB, розташуйте їх на відстані 0x100 і переконайтеся, що NULL DFH слідує за останнім DMA на 0x100. |
0x200 | NULL DFH | 0x40 | Завершує зв'язаний список DFH. ID_L має значення 0x90fe6aab12a0132f, а ID_H — 0xda1182b1b3444e23. NULL DFH було параметризовано як останній DFH в апаратному забезпеченні. З цієї причини NULL DFH знаходиться за адресою 0x200. Якщо ви додаєте додаткові BBB DMA до системи, вам потрібно відповідно збільшити базову адресу NULL DFH, щоб вона залишалася на найвищій адресі. Драйвер DMA та тестова програма не використовують це обладнання. |
Корпорація Intel. Всі права захищені. Intel, логотип Intel та інші знаки Intel є товарними знаками корпорації Intel або її дочірніх компаній. Intel гарантує роботу своїх FPGA та напівпровідникових продуктів відповідно до поточних специфікацій відповідно до стандартної гарантії Intel, але залишає за собою право вносити зміни в будь-які продукти та послуги в будь-який час без попередження. Корпорація Intel не бере на себе жодної відповідальності чи зобов’язань, що виникають у зв’язку із застосуванням або використанням будь-якої інформації, продукту чи послуги, описаних у цьому документі, за винятком випадків, чітко наданих корпорацією Intel у письмовій формі. Клієнтам Intel рекомендується отримати останню версію специфікацій пристрою, перш ніж покладатися на будь-яку опубліковану інформацію та перед тим, як розміщувати замовлення на продукти чи послуги. *Інші назви та бренди можуть бути власністю інших осіб.
Зареєструвати карту та адресний простір
Карта пам'яті DMA BBB
Наступні адреси байтів є відносними зміщеннями від базової адреси DMA BBB у системі DMA AFU (0x100).
Зміщення байтової адреси | Ім'я | Діапазон у байтах | опис |
0x0 | DMA BBB DFH | 0x40 | Заголовок функції пристрою для DMA AFU. ID_L має значення 0xa9149a35bace01ea, а ID_H — 0xef82def7f6ec40fc. DMA BBB DFH було параметризовано, щоб вказувати на 0x100 для наступного зміщення DFH. Наступним зміщенням може бути інший DMA BBB, інший DFH (не включений у цей проект) або NULL DFH. |
0x40 | Диспетчер | 0x40 | Порт управління для диспетчера. Драйвер DMA використовує це розташування для керування DMA або запиту про його стан. |
0x80 | Дескриптор Frontend | 0x40 | Інтерфейс дескриптора — це спеціальний компонент, який зчитує дескриптори з пам’яті хоста та перезаписує дескриптор після завершення передачі DMA. Драйвер повідомляє інтерфейсу, де знаходиться перший дескриптор у пам’яті хоста, а потім апаратне забезпечення інтерфейсу зв’язується з драйвером переважно через дескриптори, що зберігаються в пам’яті хоста. |
Адресний простір DMA AFU
Хост може отримати доступ до регістрів, перелічених у Таблиці 4 на сторінці 12 і Таблиці 5 на сторінці 13. Підсистема DMA BBB має доступ до повного 49-бітного адресного простору. Нижня половина цього адресного простору включає локальну пам’ять FPGA. Верхня половина цього адресного простору містить 48-розрядну пам'ять адрес хоста. На наступному малюнку показано хост і DMA views пам'яті.
DMA ЗСУ та Хост Views пам'яті
Заголовок функцій пристрою Linked-List
Дизайн DMA AFU exampмістить три заголовки функцій пристрою (DFH), які утворюють пов’язаний список. Цей пов’язаний список дозволяє sampпрограма для ідентифікації DMA AFU, а також драйвер для ідентифікації DMA BBB. Список DFH містить NULL DFH у кінці. Включення нульового DFH у кінець пов’язаного списку дозволяє вам додати більше BBB DMA до вашого проекту. Вам просто потрібно перемістити NULL DFH на адресу після інших BBB. Кожен DMA BBB очікує, що наступний DFH буде розташований на відстані 0x100 байт від базової адреси BBB. На наступному малюнку зображено пов’язаний список для дизайну DMA AFU напрample.
Зареєструвати карту та адресний простір
DMA AFU Device Feature Header (DFH) Chaining
Модель програмування програмного забезпечення
DMA AFU містить програмний драйвер, який можна використовувати у власній хост-програмі. Файли fpga_dma.cpp і fpga_dma.h files, розташовані в такому місці, реалізують програмний драйвер: $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw Цей драйвер підтримує такі функції:
API | опис |
fpgaCountDMAChannels | Сканує ланцюжок функцій пристрою на наявність DMA BBB і підраховує всі доступні канали. |
fpgaDMAOpen | Відкриває дескриптор каналу DMA. |
fpgaDMAClose | Закриває маркер каналу 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 почне працювати над передачами. |
fpgaDMATransfer | Виконує передачу DMA. |
Додаткову інформацію про API, вхідні та вихідні аргументи див. у заголовку file знаходиться $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw/fpga_dma.hIntel Corporation. Всі права захищені. 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 Acceleration Stack для програмованої плати Intel FPGA D5005.
- Ви повинні визначити змінну середовища. Змінна середовища залежить від версії Intel Acceleration Stack, яку ви використовуєте:
- Для поточної версії встановіть змінну середовища на $OPAE_PLATFORM_ROOT
- Ви повинні інсталювати бібліотеку Intel Threading Building Blocks (TBB), оскільки драйвер DMA покладається на неї.
- Для запуску sample додаток. $ sudo sh -c “echo 2 > /sys/kernel/mm/hugepages/hugepages-1048576kB/ nr_hugepages”
Виконайте наступні кроки, щоб завантажити бітовий потік функції DMA Accelerator (AF), створити програму та драйвер, а також запустити програму розробкиampле:
- Перейдіть до каталогу програми DMA та драйвера: cd $OPAE_PLATFORM_ROOT/hw/samples/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 Acceleration Stack для програмованої плати Intel FPGA D5005 Корпорація Intel. Всі права захищені. Intel, логотип Intel та інші знаки Intel є товарними знаками корпорації Intel або її дочірніх компаній. Intel гарантує роботу своїх FPGA та напівпровідникових продуктів відповідно до поточних специфікацій відповідно до стандартної гарантії Intel, але залишає за собою право вносити зміни в будь-які продукти та послуги в будь-який час без попередження. Корпорація Intel не бере на себе жодної відповідальності чи зобов’язань, що виникають у зв’язку із застосуванням або використанням будь-якої інформації, продукту чи послуги, описаних у цьому документі, за винятком випадків, чітко наданих корпорацією Intel у письмовій формі. Клієнтам Intel рекомендується отримати останню версію специфікацій пристрою, перш ніж покладатися на будь-яку опубліковану інформацію та перед тим, як розміщувати замовлення на продукти чи послуги. *Інші назви та бренди можуть бути власністю інших осіб.
Складання ДМА АФУ Прample
Щоб створити середовище побудови синтезу для компіляції AF, скористайтеся командою afu_synth_setup наступним чином:
- Зміна до DMA AFU sampкаталог файлів: $OPAE_PLATFORM_ROOT/hw/samples/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назва як конфігурація платформи ЗСУ 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 рекомендується отримати останню версію специфікацій пристрою, перш ніж покладатися на будь-яку опубліковану інформацію та перед тим, як розміщувати замовлення на продукти чи послуги. *Інші назви та бренди можуть бути власністю інших осіб.
Симуляція ЗСУ Example
Intel рекомендує вам ознайомитись із Коротким посібником із запуску середовища симуляції (ASE) функціонального блоку Intel Accelerator Functional Unit (AFU) для вашого Intel FPGA PAC, щоб ознайомитись із моделюванням подібнихampфайли та налаштувати ваше середовище. Перш ніж виконувати наступні кроки, переконайтеся, що для змінної середовища OPAE_PLATFORM_ROOT встановлено каталог інсталяції OPAE SDK. Виконайте наступні кроки, щоб налаштувати симулятор апаратного забезпечення для DMA AFU:
- Зміна до DMA AFU sampкаталог файлів: cd $OPAE_PLATFORM_ROOT/hw/samples/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/hw/samples/dma_afu/ase_mkdir/work [SIM] tcsh/csh | setenv ASE_WORKDIR $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/ase_mkdir/work [SIM] Для будь-якої іншої $SHELL зверніться до адміністратора Linux [SIM] [SIM] Готова до симуляції… [SIM] Натисніть CTRL-C, щоб закрити симулятор…Виконайте наступні кроки, щоб скомпілювати та запустити програмне забезпечення DMA AFU в середовищі моделювання:
- Відкрийте нове вікно терміналу.
- Змініть каталог на: cd $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw
Корпорація Intel. Всі права захищені. Intel, логотип Intel та інші знаки Intel є товарними знаками корпорації Intel або її дочірніх компаній. Intel гарантує роботу своїх FPGA та напівпровідникових продуктів відповідно до поточних специфікацій відповідно до стандартної гарантії Intel, але залишає за собою право вносити зміни в будь-які продукти та послуги в будь-який час без попередження. Корпорація Intel не бере на себе жодної відповідальності чи зобов’язань, що виникають у зв’язку із застосуванням або використанням будь-якої інформації, продукту чи послуги, описаних у цьому документі, за винятком випадків, чітко наданих корпорацією Intel у письмовій формі. Клієнтам Intel рекомендується отримати останню версію специфікацій пристрою, перш ніж покладатися на будь-яку опубліковану інформацію та перед тим, як розміщувати замовлення на продукти чи послуги. *Інші назви та бренди можуть бути власністю інших осіб.
Симуляція ЗСУ Example
- Скопіюйте рядок налаштування середовища (виберіть рядок, який відповідає вашій оболонці) з наведених вище кроків симуляції апаратного забезпечення у вікно терміналу. Див. наступні рядки в пample вихід із симулятора обладнання. [SIM] bash/zsh | експорт ASE_WORKDIR=$OPAE_PLATFORM_ROOT/hw/samples/dma_afu/build_ase_dir/work [SIM] tcsh/csh | setenv ASE_WORKDIR $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/build_ase_dir/work
- Скомпілюйте програмне забезпечення: $ make USE_ASE=1
- Виконайте головну програму, щоб записати 4 КБ частинами по 1 КБ із пам’яті хоста назад до пам’яті пристрою FPGA у режимі петлі: ./ fpga_dma_test -s 4096 -p 1024 -r mtom
Пов'язана інформація
Короткий посібник користувача функціонального блоку Intel Accelerator (AFU) Simulation Environment (ASE).
Оптимізація для покращення продуктивності DMA
Реалізація оптимізації 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 props;int retval; #if(FPGA_DMA_DEBUG)char str[4096]; #endifres = fpgaGetProperties(afc_token, &props); ON_ERR_GOTO(res, out_destroy_tok, “fpgaGetProperties”); res = fpgaPropertiesGetBus(props, (uint8_t *) & bus);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 Corporation. Всі права захищені. Intel, логотип Intel та інші знаки Intel є товарними знаками корпорації Intel або її дочірніх компаній. Intel гарантує роботу своїх FPGA та напівпровідникових продуктів відповідно до поточних специфікацій відповідно до стандартної гарантії Intel, але залишає за собою право вносити зміни в будь-які продукти та послуги в будь-який час без попередження. Корпорація Intel не бере на себе жодної відповідальності чи зобов’язань, що виникають у зв’язку із застосуванням або використанням будь-якої інформації, продукту чи послуги, описаних у цьому документі, за винятком випадків, чітко наданих корпорацією Intel у письмовій формі. Клієнтам Intel рекомендується отримати останню версію специфікацій пристрою, перш ніж покладатися на будь-яку опубліковану інформацію та перед тим, як розміщувати замовлення на продукти чи послуги. *Інші назви та бренди можуть бути власністю інших осіб.
Оптимізація для покращення продуктивності DMA
hwloc_topology_load(топологія); hwloc_obj_t obj = hwloc_get_pcidev_by_busid(топологія, dom, шина, dev, func); 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(“CPUSET – %s\n”, str); hwloc_bitmap_taskset_snprintf(str, 4096, obj2->nodeset); printf(“NODESET – це %s\n”, str);#endif if (memory_affinity) { #if HWLOC_API_VERSION > 0x00020000 retval = hwloc_set_membind(топологія, 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 Acceleration Stack | Керівництво користувача (PDF) |
2.0 | Посібник користувача функціонального блоку прискорювача DMA (AFU). |
Історія переглядів документів для посібника користувача функціонального блоку DMA Accelerator
Версія документа |
Прискорення Intel Стекова версія |
Зміни |
2020.08.03 |
2.0.1 (підтримується Intel
Quartus® Prime Pro Edition Edition 19.2) |
Виправлено зображення АФ file назва в розділі Складання ДМА АФУ Прample. |
2020.04.17 |
2.0.1 (підтримується Intel
Quartus Prime Pro Edition Edition 19.2) |
Виправлено заяву в Цільова аудиторія розділ. |
2020.02.20 |
2.0.1 (підтримується Intel
Quartus Prime Pro Edition Edition 19.2) |
Виправлена друкарська помилка. |
2019.11.04 |
2.0.1 (підтримується Intel Quartus Prime Pro Edition Edition 19.2) |
• Замінено fpgaconf на fpgasupdate під час налаштування FPGA за допомогою попередньої збірки AFU в розділі Запуск DMA AFU Example.
• Додано субтитри Intel FPGA Programmable Acceleration Card D5005 до назви документа. • Додано змінну середовища $OPAE_PLATFORM_ROOT. • Змінений розділ Модель програмування програмного забезпечення для дрібних правок. • Додано новий розділ Складання ДМА АФУ Прample. • Змінений розділ Оптимізація для покращення продуктивності DMA для дрібних правок. |
2019.08.05 |
2.0 (підтримується Intel
Quartus Prime Pro Edition 18.1.2) |
Початковий випуск. |
Корпорація Intel. Всі права захищені. Intel, логотип Intel та інші знаки Intel є товарними знаками корпорації Intel або її дочірніх компаній. Intel гарантує роботу своїх FPGA та напівпровідникових продуктів відповідно до поточних специфікацій відповідно до стандартної гарантії Intel, але залишає за собою право вносити зміни в будь-які продукти та послуги в будь-який час без попередження. Корпорація Intel не бере на себе жодної відповідальності чи зобов’язань, що виникають у зв’язку із застосуванням або використанням будь-якої інформації, продукту чи послуги, описаних у цьому документі, за винятком випадків, чітко наданих корпорацією Intel у письмовій формі. Клієнтам Intel рекомендується отримати останню версію специфікацій пристрою, перш ніж покладатися на будь-яку опубліковану інформацію та перед тим, як розміщувати замовлення на продукти чи послуги.
- Інші назви та бренди можуть бути визнані власністю інших осіб.
Документи / Ресурси
![]() |
Intel FPGA Programmable Acceleration Card D5005 [pdfПосібник користувача Програмована плата прискорення FPGA, D5005, плата програмованого прискорення FPGA D5005, функціональний блок прискорювача DMA |