Intel-лого

Intel FPGA програмируема карта за ускоряване D5005

Intel.-FPGA-програмируема-ускорителна-карта-D5005-продукт

Относно този документ

Този документ описва изпълнението на функционалния ускорител (AFU) за директен достъп до паметта (DMA) и как да се изгради дизайн, който да работи на хардуер или в симулация.

Предназначена публика

Предвидената аудитория включва разработчици на хардуер или софтуер, които изискват функция за ускоряване (AF) за буфериране на данни локално в паметта, свързана към устройството Intel FPGA.

Конвенции

Конвенции на документа

конвенция Описание
# Предхожда команда, която показва, че командата трябва да бъде въведена като root.
$ Показва команда, която трябва да бъде въведена като потребител.
Този шрифт Fileимената, командите и ключовите думи са отпечатани с този шрифт. Дългите командни редове се отпечатват с този шрифт. Въпреки че дългите командни редове могат да преминават към следващия ред, връщането не е част от командата; не натискайте enter.
Указва, че текстът на контейнера, който се появява между ъгловите скоби, трябва да бъде заменен с подходяща стойност. Не въвеждайте ъглови скоби.

Съкращения

Съкращения

Съкращения Разширяване Описание
AF Функция ускорител Компилиран образ на хардуерен ускорител, внедрен в FPGA логика, която ускорява приложение.
AFU Функционална единица на ускорителя Хардуерен ускорител, внедрен в FPGA логика, която разтоварва изчислителна операция за приложение от процесора, за да подобри производителността.
API Интерфейс за програмиране на приложения Набор от дефиниции на подпрограми, протоколи и инструменти за изграждане на софтуерни приложения.
CCI-P Основен кеш интерфейс CCI-P е стандартният интерфейс, използван от AFU за комуникация с хоста.
DFH Заглавка на функцията на устройството Създава свързан списък със заглавки на функции, за да осигури разширяем начин за добавяне на функции.
продължи…

Корпорация Intel. Всички права запазени. Intel, логото на Intel и други марки на Intel са търговски марки на Intel Corporation или нейните филиали. Intel гарантира производителността на своите FPGA и полупроводникови продукти според настоящите спецификации в съответствие със стандартната гаранция на Intel, но си запазва правото да прави промени на продукти и услуги по всяко време без предизвестие. Intel не поема никаква отговорност или задължения, произтичащи от приложението или използването на каквато и да е информация, продукт или услуга, описани тук, освен в случаите, когато Intel е изрично договорено в писмен вид. Клиентите на Intel се съветват да получат най-новата версия на спецификациите на устройството, преди да разчитат на публикувана информация и преди да направят поръчки за продукти или услуги. *Други имена и марки могат да бъдат заявени като собственост на други.

Съкращения Разширяване Описание
FIM FPGA интерфейсен мениджър Хардуерът на FPGA, съдържащ FPGA интерфейсен модул (FIU) и външни интерфейси за памет, работа в мрежа и др.

Функцията Accelerator (AF) взаимодейства с FIM по време на изпълнение.

ЗФР FPGA интерфейсен модул FIU е интерфейсен слой на платформа, който действа като мост между интерфейси на платформа като PCIe*, UPI и интерфейси от страна на AFU като CCI-P.
MPF Фабрика за свойства на паметта MPF е основен градивен блок (BBB), който AFU могат да използват, за да предоставят CCI-P операции за оформяне на трафик за транзакции с FIU.

Речник на ускорението

Стек за ускоряване за процесор Intel® Xeon® с FPGA Речник

Срок Съкращение Описание
Intel® Acceleration Stack за Intel Xeon® CPU с FPGA Стек за ускорение Колекция от софтуер, фърмуер и инструменти, които осигуряват оптимизирана за производителност свързаност между Intel FPGA и Intel Xeon процесор.
Intel FPGA програмируема карта за ускоряване Intel FPGA PAC PCIe FPGA ускорителна карта.

Съдържа FPGA Interface Manager (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 exampле. Този бившample предоставя драйвер за потребителско пространство. Хост приложението използва този драйвер, така че DMA премества данни между хост и FPGA памет. Хардуерните двоични файлове, източниците и драйверът за потребителско пространство са налични в следната директория: $OPAE_PLATFORM_ROOT/hw/samples/dma_afu . Преди да експериментирате с DMA AFU, трябва да инсталирате софтуерния пакет Open Programmable Acceleration Engine (OPAE). Обърнете се към Инсталиране на софтуерния пакет OPAE в ръководството за бърз старт на Intel Acceleration Stack за Intel FPGA Programmable Acceleration Card D5005 за инструкции за инсталиране. Това Ръководство за бърз старт включва също основна информация за Open Programmable Acceleration Engine (OPAE) и конфигуриране на AFU. След инсталиране на софтуерния пакет Open Programmable Acceleration Engine (OPAE), катоampхост приложението и драйверът за потребителско пространство на DMA AFU са налични в следната директория: $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw. За да стартирате sample хост приложение, fpga_dma_test на вашия хардуер Intel FPGA PAC D5005, вижте стъпките в раздел Изпълнение на DMA AFU Exampле. Intel Corporation. Всички права запазени. Intel, логото на Intel и други марки на Intel са търговски марки на Intel Corporation или нейните филиали. Intel гарантира производителността на своите FPGA и полупроводникови продукти според настоящите спецификации в съответствие със стандартната гаранция на Intel, но си запазва правото да прави промени на продукти и услуги по всяко време без предизвестие. Intel не поема никаква отговорност или задължения, произтичащи от приложението или използването на каквато и да е информация, продукт или услуга, описани тук, освен в случаите, когато Intel е изрично договорено в писмен вид. Клиентите на Intel се съветват да получат най-новата версия на спецификациите на устройството, преди да разчитат на публикувана информация и преди да направят поръчки за продукти или услуги. *Други имена и марки могат да бъдат заявени като собственост на други.

Свързана информация

  • Ръководство за бърз старт на Intel Acceleration Stack за Intel FPGA Programmable Acceleration Card D5005
  • Инсталиране на софтуерния пакет OPAE

Хардуерните компоненти на DMA AFU

DMA AFU взаимодейства с FPGA интерфейсен модул (FIU) и FPGA памет. Обърнете се към информационния лист на FPGA Interface Manager за Intel FPGA Programmable Acceleration Card D5005 за подробни спецификации на FPGA паметта. Наличният в момента хардуер диктува тази конфигурация на паметта. Бъдещият хардуер може да поддържа различни конфигурации на паметта. Можете да използвате DMA AFU, за да копирате данни между следните местоположения източник и местоназначение:

  • FPGA памет от хост към устройство
  • FPGA памет на устройството към хоста

Система за дизайнер на платформа, $OPAE_PLATFORM_ROOT/hw/samples/ dma_afu/hw/rtl/TEST_dma/ /dma_test_system.qsys прилага повечето от DMA

  • AFU. Част от 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 Хардуерна блокова схема

Intel.-FPGA-програмируема-ускорителна-карта-D5005-фиг.1

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 Interface Manager Data Sheet за Intel FPGA Programmable Acceleration Card D5005

DMA тестова система

DMA тестовата система свързва DMA BBB с останалата част от дизайна на FPGA, включително CCI-P адаптация и локалната FPGA памет.

Блокова схема на DMA тестова система
Тази блокова диаграма показва вътрешността на DMA тестовата система. DMA тестовата система е показана като монолитен блок на фигура 1 на страница 7.Intel.-FPGA-програмируема-ускорителна-карта-D5005-фиг.2

DMA тестовата система включва следните вътрешни модули:

  • Мост Far Reach/Тръбопроводен мост: Тръбопроводен мост с включена регулируема латентност за контрол на топологията и подобряване на дизайна Fmax.
  • Заглавка на функцията на DMA AFU устройство (DFH): Това е DFH за DMA AFU. Този DFH сочи към следващия DFH, разположен на отместване 0x100 (DMA BBB DFH).
  • Null 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 Platform Designer
Тази блокова диаграма изключва някои вътрешни IP ядра на Pipeline Bridge.Intel.-FPGA-програмируема-ускорителна-карта-D5005-фиг.6

Ръководство за потребителя на функционален модул на DMA ускорител: Intel FPGA програмируема карта за ускоряване D5005

DMA AFU Описание

Компонентите в DMA BBB Platform Designer изпълняват следните функции:

  • Далечен мост/тръбопроводен мост: Тръбопроводен мост с включена регулируема латентност за контрол на топологията и подобряване на дизайна Fmax.
  • MA BBB DFH: Това е заглавна част на функцията на устройството за DMA BBB. Този DFH сочи към следващия DFH, разположен на отместване 0x100 (нулев DFH).
  • Дескриптор Frontend: Отговаря за извличането на дескриптори и прехвърлянето им към диспечера. Когато прехвърлянето на DMA завърши, интерфейсът получава формиране на статус от диспечера и презаписва дескриптора в паметта на хоста.
  • Диспечер: Този блок планира заявките за прехвърляне на DMA към Master за четене и запис.
  • Прочетете Учителя: Този блок отговаря за четенето на данни от хост или локална 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. Ако добавите допълнителни DMA BBB към системата, трябва съответно да увеличите базовия адрес NULL DFH, така че да остане на най-високия адрес. DMA драйверът и тестовото приложение не използват този хардуер.

Корпорация Intel. Всички права запазени. Intel, логото на Intel и други марки на Intel са търговски марки на Intel Corporation или нейните филиали. 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 AFU и домакин Views на паметта

Intel.-FPGA-програмируема-ускорителна-карта-D5005-фиг.3

Свързан списък с заглавката на функцията на устройството

Дизайнът на DMA AFU exampсъдържа три заглавки на характеристиките на устройството (DFH), които образуват свързан списък. Този свързан списък позволява на sample приложение за идентифициране на DMA AFU, както и драйвер за идентифициране на DMA BBB. Списъкът DFH включва NULL DFH в края. Включването на нулевия DFH в края на свързания списък ви позволява да добавите повече DMA BBB към вашия дизайн. Просто трябва да преместите NULL DFH на адрес след другите BBB. Всеки DMA BBB очаква следващият DFH да бъде разположен на 0x100 байта от базовия адрес на BBB. Следващата фигура изобразява свързания списък за дизайна на DMA AFU напрampле.

Регистрирайте карта и адресни пространства

DMA AFU Верижно заглавие на функцията на устройството (DFH).

Intel.-FPGA-програмируема-ускорителна-карта-D5005-фиг.4

Модел на софтуерно програмиране

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 Corporation или нейните филиали. 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 Programmable Acceleration Card D5005.
  • Трябва да дефинирате променлива на средата. Променливата на средата зависи от версията на Intel Acceleration Stack, която използвате:
    • За текущата версия задайте променливата на средата на $OPAE_PLATFORM_ROOT
  • Трябва да инсталирате библиотеката Intel Threading Building Blocks (TBB), тъй като DMA драйверът разчита на нея.
  • Трябва също да настроите две огромни страници от 1 GB, за да стартирате sample приложение. $ sudo sh -c “echo 2 > /sys/kernel/mm/hugepages/hugepages-1048576kB/ nr_hugepages”

Изпълнете следните стъпки, за да изтеглите битовия поток на DMA Accelerator Function (AF), да изградите приложението и драйвера и да изпълните дизайна exampле:

  1. Промяна в директорията на приложението и драйвера на DMA: cd $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw
  2. Създайте драйвера и приложението: make
  3. Изтеглете DMA AFU bitstream: sudo fpgasupdate ../bin/dma_afu_unsigned.gbs
  4. Изпълнете хост приложението, за да запишете 100 MB на части от 1 MB от паметта на хоста в паметта на FPGA устройството и да го прочетете обратно: ./ fpga_dma_test -s 104857600 -p 1048576 -r mtom

Свързана информация
Ръководство за бърз старт на Intel Acceleration Stack за Intel FPGA Programmable Acceleration Card D5005 Intel Corporation. Всички права запазени. Intel, логото на Intel и други марки на Intel са търговски марки на Intel Corporation или нейни филиали. Intel гарантира производителността на своите FPGA и полупроводникови продукти според настоящите спецификации в съответствие със стандартната гаранция на Intel, но си запазва правото да прави промени на продукти и услуги по всяко време без предизвестие. Intel не поема никаква отговорност или задължения, произтичащи от приложението или използването на каквато и да е информация, продукт или услуга, описани тук, освен в случаите, когато Intel е изрично договорено в писмен вид. Клиентите на Intel се съветват да получат най-новата версия на спецификациите на устройството, преди да разчитат на публикувана информация и преди да направят поръчки за продукти или услуги. *Други имена и марки могат да бъдат заявени като собственост на други.

Съставяне на DMA AFU Example

За да генерирате среда за изграждане на синтез за компилиране на AF, използвайте командата afu_synth_setup, както следва:

  1. Промяна на DMA AFU sampфайлова директория: $OPAE_PLATFORM_ROOT/hw/samples/dma_afu
  2. Генерирайте директорията за изграждане на дизайн: afu_synth_setup –source hw/rtl/filelist.txt build_synth
  3. От директорията за изграждане на синтез, генерирана от 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 Corporation. Всички права запазени. Intel, логото на Intel и други марки на Intel са търговски марки на Intel Corporation или нейните филиали. Intel гарантира производителността на своите FPGA и полупроводникови продукти според настоящите спецификации в съответствие със стандартната гаранция на Intel, но си запазва правото да прави промени на продукти и услуги по всяко време без предизвестие. Intel не поема никаква отговорност или задължения, произтичащи от приложението или използването на каквато и да е информация, продукт или услуга, описани тук, освен в случаите, когато Intel е изрично договорено в писмен вид. Клиентите на Intel се съветват да получат най-новата версия на спецификациите на устройството, преди да разчитат на публикувана информация и преди да направят поръчки за продукти или услуги. *Други имена и марки могат да бъдат заявени като собственост на други.

Симулиране на AFU Example

Intel препоръчва да се обърнете към ръководството за бърз старт на симулационната среда на Intel Accelerator Functional Unit (AFU) (ASE) за вашия Intel FPGA PAC, за да се запознаете със симулирането на подобни изпр.ampи за настройка на вашата среда. Преди да продължите през следващите стъпки, проверете дали променливата на средата OPAE_PLATFORM_ROOT е зададена на инсталационната директория на OPAE SDK. Изпълнете следните стъпки, за да настроите хардуерния симулатор за DMA AFU:

  1. Промяна на DMA AFU sampфайлова директория: cd $OPAE_PLATFORM_ROOT/hw/samples/dma_afu
  2. Създайте ASE среда в нова директория и я конфигурирайте за симулиране на AFU: afu_sim_setup –source hw/rtl/filelist.txt build_ase_dir
  3. Променете към директорията за компилация на ASE: cd build_ase_dir
  4. Създайте драйвера и приложението: make
  5. Направете симулация: направете SIM

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 в симулационната среда:

  1. Отворете нов прозорец на терминала.
  2. Променете директорията на: cd $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw

Корпорация Intel. Всички права запазени. Intel, логото на Intel и други марки на Intel са търговски марки на Intel Corporation или нейните филиали. Intel гарантира производителността на своите FPGA и полупроводникови продукти според настоящите спецификации в съответствие със стандартната гаранция на Intel, но си запазва правото да прави промени на продукти и услуги по всяко време без предизвестие. Intel не поема никаква отговорност или задължения, произтичащи от приложението или използването на каквато и да е информация, продукт или услуга, описани тук, освен в случаите, когато Intel е изрично договорено в писмен вид. Клиентите на Intel се съветват да получат най-новата версия на спецификациите на устройството, преди да разчитат на публикувана информация и преди да направят поръчки за продукти или услуги. *Други имена и марки могат да бъдат заявени като собственост на други.

Симулиране на AFU Example

  1. Копирайте низа за настройка на средата (изберете низ, подходящ за вашата обвивка) от стъпките по-горе в хардуерната симулация в прозореца на терминала. Вижте следващите редове в sample изход от хардуерния симулатор. [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
  2. Компилирайте софтуера: $ make USE_ASE=1
  3. Изпълнете хост приложението, за да запишете 4 KB на части от 1 KB от паметта на хоста обратно в паметта на FPGA устройство в режим на обратна връзка: ./ fpga_dma_test -s 4096 -p 1024 -r mtom

Свързана информация
Ръководство за потребителя за бърз старт на симулационната среда (ASE) на функционалния модул на Intel Accelerator (AFU).

Оптимизация за подобрена DMA производителност

Внедряването на NUMA (неравномерен достъп до паметта) оптимизация в fpga_dma_test.cpp позволява на процесора да осъществява достъп до собствената си локална памет по-бързо, отколкото да осъществява достъп до нелокална памет (локална памет за друг процесор). Типична конфигурация на NUMA е показана на диаграмата по-долу. Локалният достъп представлява достъп от ядро ​​до памет, локална за същото ядро. Отдалеченият достъп илюстрира пътя, поет, когато ядро ​​на възел 0 има достъп до памет, която се намира в паметта, локална за възел 1.

Типична NUMA конфигурация

Intel.-FPGA-програмируема-ускорителна-карта-D5005-фиг.5

Използвайте следния код, за да приложите 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 Corporation или нейните филиали. Intel гарантира производителността на своите FPGA и полупроводникови продукти според настоящите спецификации в съответствие със стандартната гаранция на Intel, но си запазва правото да прави промени на продукти и услуги по всяко време без предизвестие. Intel не поема никаква отговорност или задължения, произтичащи от приложението или използването на каквато и да е информация, продукт или услуга, описани тук, освен в случаите, когато Intel е изрично договорено в писмен вид. Клиентите на Intel се съветват да получат най-новата версия на спецификациите на устройството, преди да разчитат на публикувана информация и преди да направят поръчки за продукти или услуги. *Други имена и марки могат да бъдат заявени като собственост на други.

Оптимизация за подобрена DMA производителност

hwloc_topology_load(топология); hwloc_obj_t obj = hwloc_get_pcidev_by_busid(топология, dom, bus, 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->нодесет); 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(топология, obj2->cpuset, HWLOC_CPUBIND_STRICT); ON_ERR_GOTO(retval, out_destroy_tok, “hwloc_set_cpubind”); }}

Архив на ръководството за потребителя на функционалния модул на DMA ускорителя

Версия на Intel Acceleration Stack Ръководство за потребителя (PDF)
2.0 Ръководство за потребителя на функционалния модул на DMA ускорителя (AFU).

Хронология на ревизиите на документа за ръководството за потребителя на функционалния модул на DMA ускорителя

 

Версия на документа

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 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 програмируема карта за ускоряване D5005 към заглавието на документа.

• Добавена променлива на средата $OPAE_PLATFORM_ROOT.

• Променен раздел Модел на софтуерно програмиране за дребни редакции.

• Добавена е нова секция Съставяне на DMA AFU Example.

• Променен раздел Оптимизация за подобрена DMA производителност за дребни редакции.

 

 

2019.08.05

2.0 (поддържа се от Intel

Quartus Prime Pro Edition 18.1.2)

 

 

Първоначално издание.

Корпорация Intel. Всички права запазени. Intel, логото на Intel и други марки на Intel са търговски марки на Intel Corporation или нейните филиали. Intel гарантира производителността на своите FPGA и полупроводникови продукти според настоящите спецификации в съответствие със стандартната гаранция на Intel, но си запазва правото да прави промени на продукти и услуги по всяко време без предизвестие. Intel не поема никаква отговорност или задължения, произтичащи от приложението или използването на каквато и да е информация, продукт или услуга, описани тук, освен в случаите, когато Intel е изрично договорено в писмен вид. Клиентите на Intel се съветват да получат най-новата версия на спецификациите на устройството, преди да разчитат на публикувана информация и преди да направят поръчки за продукти или услуги.

  • Други имена и марки могат да бъдат заявени като собственост на други.

 

Документи / Ресурси

Intel FPGA програмируема карта за ускоряване D5005 [pdf] Ръководство за потребителя
FPGA програмируема карта за ускоряване, D5005, FPGA програмируема карта за ускоряване D5005, функционална единица на DMA ускорител

Референции

Оставете коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са маркирани *