Intel FPGA Programmierbare Acceleration Card D5005
Oer dit dokumint
Dit dokumint beskriuwt de ymplemintaasje fan 'e direkte ûnthâld tagong (DMA) Accelerator Functional Unit (AFU) en hoe't jo it ûntwerp bouwe om te rinnen op hardware as yn simulaasje.
Bedoeld publyk
It bedoelde publyk omfettet hardware- as software-ûntwikkelders dy't in Accelerator Function (AF) nedich binne om gegevens lokaal te bufferjen yn it ûnthâld ferbûn mei it Intel FPGA-apparaat.
Konvinsjes
Dokumint Konvinsjes
Konvinsje | Beskriuwing |
# | Foarôfgeand oan in kommando dat oanjout dat it kommando as root ynfierd wurde moat. |
$ | Jout oan dat in kommando as brûker ynfierd wurde moat. |
Dit lettertype | Filenammen, opdrachten en trefwurden wurde yn dit lettertype printe. Lange kommandorigels wurde yn dit lettertype printe. Hoewol't lange kommando rigels meie wrap nei de folgjende rigel, it weromkommen is gjin diel fan it kommando; druk net op enter. |
Jout oan dat de plakhâlder tekst dy't ferskynt tusken de hoek heakjes moat wurde ferfongen troch in passende wearde. Net ynfiere de hoek heakjes. |
Acronyms
Acronyms
Acronyms | Utwreiding | Beskriuwing |
AF | Accelerator Funksje | Kompilearre Hardware Accelerator-ôfbylding ymplementearre yn FPGA-logika dy't in applikaasje fersnelt. |
AFU | Accelerator funksjonele ienheid | Hardware Accelerator ymplementearre yn FPGA logika dy't offloads in computational operaasje foar in applikaasje fan de CPU te ferbetterjen prestaasjes. |
API | Applikaasje programmearring ynterface | In set fan subroutine-definysjes, protokollen en ark foar it bouwen fan softwareapplikaasjes. |
CCI-P | Core Cache Interface | CCI-P is de standert ynterface AFU's brûke om te kommunisearjen mei de host. |
DFH | Apparaat Feature Header | Makket in keppele list mei funksje-koppen oan om in útwreide manier te jaan om funksjes ta te foegjen. |
fierder… |
Intel Corporation. Alle rjochten foarbehâlden. Intel, it Intel-logo en oare Intel-merken binne hannelsmerken fan Intel Corporation of har dochterûndernimmingen. Intel garandearret prestaasjes fan har FPGA- en semiconductor-produkten oan hjoeddeistige spesifikaasjes yn oerienstimming mei Intel's standert garânsje, mar behâldt it rjocht foar om op elk momint feroarings te meitsjen oan produkten en tsjinsten sûnder notice. Intel nimt gjin ferantwurdlikens of oanspraaklikens oan dy't fuortkomme út 'e applikaasje of gebrûk fan ynformaasje, produkt of tsjinst beskreaun hjiryn, útsein as útdruklik skriftlik ôfpraat troch Intel. Intel-klanten wurde advisearre om de lêste ferzje fan apparaatspesifikaasjes te krijen foardat se fertrouwe op alle publisearre ynformaasje en foardat se oarders pleatse foar produkten of tsjinsten. * Oare nammen en merken kinne wurde opeaske as eigendom fan oaren.
Acronyms | Utwreiding | Beskriuwing |
FIM | FPGA Interface Manager | De FPGA-hardware mei de FPGA Interface Unit (FIU) en eksterne ynterfaces foar ûnthâld, netwurken, ensfh.
De Accelerator Function (AF) ynterfaces mei de FIM by run tiid. |
FIU | FPGA Interface Unit | FIU is in platfoarm ynterface laach dy't fungearret as in brêge tusken platfoarm ynterfaces lykas PCIe *, UPI en AFU-side ynterfaces lykas CCI-P. |
MPF | Unthâld Eigenskippen Factory | De MPF is in Basic Building Block (BBB) dat AFU's kinne brûke om CCI-P-ferkearfoarmjende operaasjes te leverjen foar transaksjes mei de FIU. |
Acceleration Glossary
Acceleration Stack foar Intel® Xeon® CPU mei FPGAs Glossary
Term | Ôfkoarting | Beskriuwing |
Intel® Acceleration Stack foar Intel Xeon® CPU mei FPGAs | Acceleration Stack | In samling software, firmware en ark dy't prestaasjesoptimalisearre ferbining leveret tusken in Intel FPGA en in Intel Xeon-prosessor. |
Intel FPGA Programmierbare Acceleration Card | Intel FPGA PAC | PCIe FPGA accelerator card.
Befettet in FPGA Interface Manager (FIM) dy't pearen mei in Intel Xeon prosessor oer de PCIe bus. |
- DMA Accelerator Funksjonele Unit User Guide: Intel FPGA Programmierbare Acceleration Card D5005
DMA AFU Beskriuwing
Ynlieding
De Direct Memory Access (DMA) AFU example lit sjen hoe't te beheare ûnthâld oerstappen tusken de host prosessor en de FPGA. Jo kinne de DMA AFU yn jo ûntwerp yntegrearje om gegevens te ferpleatsen tusken it hostûnthâld en it lokale FPGA-ûnthâld. De DMA AFU bestiet út de folgjende submodules:
- Memory Properties Factory (MPF) Basic Building Block (BBB)
- Core Cache Interface (CCI-P) nei de Avalon® Memory-Mapped (Avalon-MM) Adapter
- DMA Test System dat befettet de DMA BBB
Dizze submodules wurde yn mear detail beskreaun yn it ûnderwerp DMA AFU Hardware Components hjirûnder.
Related Information
- De DMA AFU Hardware Components op side 6
- Avalon Interface Spesifikaasjes
Foar mear ynformaasje oer it Avalon-MM-protokol, ynklusyf timingdiagrammen foar lês- en skriuwtransaksjes.
It DMA AFU-softwarepakket
De Intel Acceleration Stack foar Intel Xeon CPU mei FPGAs-pakket file (*.tar.gz), befettet de DMA AFU example. Dizze eksample jout in bestjoerder foar brûkersromte. De hostapplikaasje brûkt dizze stjoerprogramma sadat de DMA gegevens ferpleatst tusken host- en FPGA-ûnthâld. De hardware binaries, boarnen, en de brûker romte stjoerprogramma binne beskikber yn de folgjende map: $OPAE_PLATFORM_ROOT/hw/samples/dma_afu . Foardat jo eksperimintearje mei de DMA AFU, moatte jo it softwarepakket Open Programmable Acceleration Engine (OPAE) ynstallearje. Ferwize nei Ynstallaasje fan it OPAE-softwarepakket yn 'e Intel Acceleration Stack Quick Start Guide foar Intel FPGA Programmierbare Acceleration Card D5005 foar ynstallaasje ynstruksjes. Dizze Quick Start Guide befettet ek basisynformaasje oer de Open Programmable Acceleration Engine (OPAE) en it konfigurearjen fan in AFU. Nei it ynstallearjen fan it softwarepakket Open Programmable Acceleration Engine (OPAE), asample hostapplikaasje en de DMA AFU brûkersromte-bestjoerder binne beskikber yn de folgjende map: $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw. Om rinne de sample hostapplikaasje, fpga_dma_test op jo Intel FPGA PAC D5005-hardware, ferwize nei de stappen yn seksje De DMA AFU Ex útfiereample. Intel Corporation. Alle rjochten foarbehâlden. Intel, it Intel-logo en oare Intel-merken binne hannelsmerken fan Intel Corporation of har dochterûndernimmingen. Intel garandearret prestaasjes fan har FPGA- en semiconductor-produkten oan hjoeddeistige spesifikaasjes yn oerienstimming mei Intel's standert garânsje, mar behâldt it rjocht foar om op elk momint feroarings te meitsjen oan produkten en tsjinsten sûnder notice. Intel nimt gjin ferantwurdlikens of oanspraaklikens oan dy't fuortkomme út 'e applikaasje of gebrûk fan ynformaasje, produkt of tsjinst beskreaun hjiryn, útsein as útdruklik skriftlik ôfpraat troch Intel. Intel-klanten wurde advisearre om de lêste ferzje fan apparaatspesifikaasjes te krijen foardat se fertrouwe op alle publisearre ynformaasje en foardat se oarders pleatse foar produkten of tsjinsten. * Oare nammen en merken kinne wurde opeaske as eigendom fan oaren.
Related Information
- Intel Acceleration Stack Quick Start Guide foar Intel FPGA Programmierbare Acceleration Card D5005
- Ynstallaasje fan it OPAE-softwarepakket
De DMA AFU Hardware Components
De DMA AFU ynterfaces mei de FPGA Interface Unit (FIU) en FPGA-ûnthâld. Ferwize nei de FPGA Interface Manager Data Sheet foar Intel FPGA Programmierbare Acceleration Card D5005 foar detaillearre spesifikaasjes fan de FPGA ûnthâld. De op it stuit beskikbere hardware diktearret dizze ûnthâldkonfiguraasje. Takomstige hardware kin ferskate ûnthâldkonfiguraasjes stypje. Jo kinne de DMA AFU brûke om gegevens te kopiearjen tusken de folgjende boarne- en bestimmingslokaasjes:
- De host nei apparaat FPGA ûnthâld
- Apparaat FPGA ûnthâld oan de host
In platfoarmûntwerpersysteem, $OPAE_PLATFORM_ROOT/hw/samples/ dma_afu/hw/rtl/TEST_dma/ /dma_test_system.qsys ymplemintearret it grutste part fan 'e DMA
- AFU. In diel fan 'e DMA AFU ymplementearre yn it Platform Designer-systeem is te finen yn' e folgjende
lokaasje:$OPAE_PLATFORM_ROOT/hw/samples/dma_afu/hw/rtl/TEST_dma/ Jo kinne de DMA BBB fine op 'e folgjende lokaasje:
- $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/hw/rtl/dma_bbb
DMA Accelerator Funksjonele Unit User Guide: Intel FPGA Programmierbare Acceleration Card D5005
DMA AFU Hardware Block Diagram
De DMA AFU omfettet de folgjende ynterne modules foar ynterface mei de FPGA Interface Unit (FIU):
- Memory-Mapped IO (MMIO) Decoder Logic: detektearret MMIO lês- en skriuwtransaksjes en skiedt se fan it CCI-P RX-kanaal 0 dat se komme út. Dit soarget derfoar dat MMIO ferkear nea berikt de MPF BBB en wurdt betsjinne troch in ûnôfhinklik MMIO kommando kanaal.
- Memory Properties Factory (MPF): Dizze module soarget derfoar dat lêzen antwurden út de DMA werom yn 'e folchoarder dat se waarden útjûn. It Avalon-MM-protokol fereasket lêzen antwurden om werom te kommen yn 'e juste folchoarder.
- CCI-P nei Avalon-MM Adapter: Dizze module fertaalt tusken CCI-P en Avalon-MM transaksjes, as folget:
- CCI-P to Avalon-MMIO Adapter: Dit paad fertaalt CCI-P MMIO transaksjes yn Avalon-MM transaksjes.
- Avalon nei CCI-P Host Adapter: Dizze paden meitsje aparte read-allinnich- en skriuwpaden foar de DMA om tagong te krijen ta hostûnthâld.
- DMA Test System: Dizze module tsjinnet as in wrapper om de DMA BBB om de DMA masters bleat te lizzen oan 'e rest fan' e logika yn 'e AFU. It soarget foar de ynterface tusken de DMA BBB en de CCI-P nei Avalon Adapter. It jout ek de ynterface tusken de DMA BBB en de lokale FPGA SDRAM banken.
Related Information
FPGA Interface Manager Data Sheet foar Intel FPGA Programmierbare Acceleration Card D5005
DMA Test System
It DMA-testsysteem ferbynt de DMA BBB mei de rest fan it FPGA-ûntwerp ynklusyf CCI-P-oanpassing en it lokale FPGA-ûnthâld.
DMA Test System Block Diagram
Dit blokdiagram toant de ynterne fan it DMA-testsysteem. It DMA-testsysteem wurdt werjûn as in monolitysk blok yn figuer 1 op side 7.
It DMA-testsysteem omfettet de folgjende ynterne modules:
- Far Reach Bridge / Pipeline Bridge: In pipelinebrêge mei ferstelbere latency opnommen om topology te kontrolearjen en it ûntwerp Fmax te ferbetterjen.
- DMA AFU Device Feature Header (DFH): Dit is in DFH foar de DMA AFU. Dit DFH wiist nei de folgjende DFH leit op offset 0x100 (DMA BBB DFH).
- Null DFH: Dizze komponint beëiniget de DFH-keppele list. As jo mear DMA BBBs tafoegje oan it ûntwerp, soargje derfoar dat it nul DFH-basisadres leit oan 'e ein fan' e DFH-keppele-list.
- MA Basic Building Block (BBB): Dit blok ferpleatst gegevens tusken de host en de lokale FPGA ûnthâld. It hat ek tagong ta hostûnthâld om tagong te krijen ta beskriuwingsketten.
DMA BBB
It DMA BBB-subsysteem ferpleatst gegevens fan boarne nei bestimmingsadressen mei Avalon-MM-transaksjes. De DMA-bestjoerder kontrolearret de DMA BBB troch tagong te krijen ta it kontrôle- en statusregister fan de ferskate komponinten yn it systeem. De DMA-bestjoerder kontroleart ek de DMA BBB troch dielde ûnthâld te brûken om oerdrachtbeskriuwers te kommunisearjen. De DMA BBB tagong ta gegevens yn FPGA-ûnthâld by offset 0x0. De DMA BBB tagong ta gegevens en beskriuwers yn hostûnthâld by offset 0x1_0000_0000_0000.
DMA BBB Platfoarm Designer Block Diagram
Dit blokdiagram slút guon ynterne Pipeline Bridge IP-kearnen út.
DMA Accelerator Funksjonele Unit User Guide: Intel FPGA Programmierbare Acceleration Card D5005
DMA AFU Beskriuwing
De komponinten yn 'e DMA BBB Platform Designer implementearje de folgjende funksjes:
- Far Reach Bridge / Pipeline Bridge: In pipelinebrêge mei ferstelbere latency opnommen om topology te kontrolearjen en it ûntwerp Fmax te ferbetterjen.
- MA BBB DFH: Dit is in koptekst foar apparaatfunksje foar de DMA BBB. Dit DFH wiist nei de folgjende DFH leit op offset 0x100 (Null DFH).
- Beskriuwing Frontend: Ferantwurdlik foar it heljen fan beskriuwers en it oerdragen nei de dispatcher. As in DMA-oerdracht foltôget, ûntfangt de frontend statusfoarming fan 'e Dispatcher en oerskriuwt de deskriptor yn it hostûnthâld.
- Ferstjoerder: Dit blok skema DMA-oerdracht oanfragen nei de Lês- en skriuwmaster.
- Lês Master: Dit blok is ferantwurdlik foar it lêzen fan gegevens fan host- as lokaal FPGA-ûnthâld en it stjoeren as streaminggegevens nei Write Master.
- Skriuw Master: Dit blok is ferantwurdlik foar it ûntfangen fan streamende gegevens fan 'e Read Master en it skriuwen fan de ynhâld nei host as lokaal FPGA-ûnthâld.
Registrearje Kaart- en adresromten
De DMA AFU stipet twa ûnthâld views: DMA view en de gasthear view. De priis fan DMA view stipet in 49-bit adres romte. De legere helte fan de DMA view kaarten oan de lokale FPGA ûnthâld. De boppeste helte fan de DMA view kaarten te host ûnthâld. De gasthear view omfettet alle registers dy't tagonklik binne fia MMIO-tagongen lykas de DFH-tabellen, en de kontrôle- / statusregisters fan 'e ferskate IP-kearnen brûkt yn' e DMA AFU. De MMIO registrearret yn 'e DMA BBB en AFU stipe 32- en 64-bit tagong. De DMA AFU stipet gjin 512-bit MMIO-tagongen. Tagongen ta de Dispatcher-registers binnen de DMA BBB moatte 32 bits wêze (Descriptor frontend ymplementearret 64-bit registers).
DMA AFU Register Map
De DMA AFU-registerkaart jout de absolute adressen fan alle lokaasjes binnen de ienheid. Dizze registers binne yn 'e host view om't it allinnich de host is dy't tagong kin ta harren.
DMA AFU Unthâld Map
Byte-adres offsets | Namme | Span in Bytes | Beskriuwing |
0x0 | DMA AFU DFH | 0x40 | Device feature header foar de DMA AFU. De ID_L is ynsteld op 0x9081f88b8f655caa en ID_H is ynsteld op 0x331db30c988541ea. De DMA AFU DFH is parameterisearre om te wizen op offset 0x100 om de folgjende DFH (DMA BBB DFH) te finen. Jo meie it basisadres fan 'e DMA AFU DFH net wizigje, om't it lizze moat op adres 0x0 lykas definieare troch de CCIP-spesifikaasje. |
0x100 | DMA BBB | 0x100 | Spesifisearret DMA BBB kontrôle en status register ynterface. Jo kinne ferwize nei de DMA BBB register map foar mear ynformaasje. Binnen de DMA BBB op offset 0 omfettet de DMA BBB syn eigen DFH. Dizze DFH is ynsteld om de folgjende DFH te finen op offset 0x100 (NULL DFH). As jo mear DMA BBBs tafoegje, romte se dan 0x100 útinoar en soargje derfoar dat de NULL DFH de lêste DMA folget mei 0x100. |
0x200 | NULL DFH | 0x40 | Beëiniget de DFH-keppele-list. De ID_L is ynsteld op 0x90fe6aab12a0132f en ID_H is ynsteld op 0xda1182b1b3444e23. De NULL DFH is parameterisearre om de lêste DFH yn hardware te wêzen. Om dizze reden leit de NULL DFH op adres 0x200. As jo tafoegje oanfoljende DMA BBBs oan it systeem, Jo moatte fergrutsje de NULL DFH basis adres dêrmei sadat it bliuwt op it heechste adres. De DMA-bestjoerder en testapplikaasje brûke dizze hardware net. |
Intel Corporation. Alle rjochten foarbehâlden. Intel, it Intel-logo en oare Intel-merken binne hannelsmerken fan Intel Corporation of har dochterûndernimmingen. Intel garandearret prestaasjes fan har FPGA- en semiconductor-produkten oan hjoeddeistige spesifikaasjes yn oerienstimming mei Intel's standert garânsje, mar behâldt it rjocht foar om op elk momint feroarings te meitsjen oan produkten en tsjinsten sûnder notice. Intel nimt gjin ferantwurdlikens of oanspraaklikens oan dy't fuortkomme út 'e applikaasje of gebrûk fan ynformaasje, produkt of tsjinst beskreaun hjiryn, útsein as útdruklik skriftlik ôfpraat troch Intel. Intel-klanten wurde advisearre om de lêste ferzje fan apparaatspesifikaasjes te krijen foardat se fertrouwe op alle publisearre ynformaasje en foardat se oarders pleatse foar produkten of tsjinsten. * Oare nammen en merken kinne wurde opeaske as eigendom fan oaren.
Registrearje Kaart- en adresromten
DMA BBB Unthâld Map
De folgjende byteadressen binne relative offsets fan it DMA BBB-basisadres yn it DMA AFU-systeem (0x100).
Byte-adres offsets | Namme | Span in Bytes | Beskriuwing |
0x0 | DMA BBB DFH | 0x40 | Device feature header foar de DMA AFU. De ID_L is ynsteld op 0xa9149a35bace01ea en ID_H is ynsteld op 0xef82def7f6ec40fc. De DMA BBB DFH is parameterisearre om te wizen op 0x100 foar de folgjende DFH-offset. Dizze folgjende offset kin in oare DMA BBB, in oare DFH (net opnommen yn dit ûntwerp), of de NULL DFH wêze. |
0x40 | Dispatcher | 0x40 | Kontrôle haven foar de dispatcher. De DMA-bestjoerder brûkt dizze lokaasje om de DMA te kontrolearjen of syn status te freegjen. |
0x80 | Beskriuwing Frontend | 0x40 | De descriptor frontend is in oanpaste komponint dy't lêst descriptors út host ûnthâld en oerskriuwt de descriptor as de DMA oerdracht foltôging. De bestjoerder ynstruearret de frontend wêr't de earste descriptor yn hostûnthâld libbet en dan kommunisearret de frontend-hardware primêr mei de bestjoerder alhoewol't descriptors binne opslein yn hostûnthâld. |
DMA AFU Adres Space
De host kin tagong krije ta registers neamd yn 'e tabel 4 op side 12 en de tabel 5 op side 13. It DMA BBB-subsysteem hat tagong ta de folsleine 49-bit adresromte. De legere helte fan dizze adresromte omfettet de lokale FPGA oantinkens. De boppeste helte fan dizze adresromte omfettet it 48-bit hostadresûnthâld. De folgjende figuer toant de host en DMA views fan ûnthâld.
De DMA AFU en Host Views fan Memory
Device Feature Header Keppele List
It DMA AFU-ûntwerp example befettet trije apparaatfunksjekoppen (DFH) dy't in keppele list foarmje. Dizze keppele list lit de sample applikaasje om de DMA AFU te identifisearjen en ek de bestjoerder om de DMA BBB te identifisearjen. De DFH-list befettet in NULL DFH oan 'e ein. It opnimmen fan 'e nul DFH oan' e ein fan 'e keppele list kinne jo mear DMA BBBs tafoegje oan jo ûntwerp. Jo moatte gewoan de NULL DFH ferpleatse nei in adres nei de oare BBB's. Elke DMA BBB ferwachtet dat de folgjende DFH 0x100 bytes leit fan it basisadres fan 'e BBB. De folgjende figuer toant de keppele list foar it DMA AFU-ûntwerp example.
Registrearje Kaart- en adresromten
DMA AFU Device Feature Header (DFH) Chaining
Software Programming Model
De DMA AFU omfettet in softwarebestjoerder dy't jo kinne brûke yn jo eigen hostapplikaasje. De fpga_dma.cpp en fpga_dma.h files leit op de folgjende lokaasje implementearje de software driver: $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw Dit stjoerprogramma stipet de folgjende funksjes:
API | Beskriuwing |
fpgaCountDMAChannels | Scant de apparaatfunksjeketen foar DMA BBB's en telt alle beskikbere kanalen. |
fpgaDMAOpen | Iepenet in handgreep nei it DMA-kanaal. |
fpgaDMAClose | Slút in handgreep nei it DMA-kanaal. |
fpgaDMATransferInit | Inisjalisearret in objekt dat de DMA-oerdracht fertsjintwurdiget. |
fpgaDMATransferReset | Stelt it DMA-oerdracht attribút foarwerp werom nei standertwearden. |
fpgaDMATransferDestroy | Fernielet it DMA-oerdracht attribút foarwerp. |
fpgaDMATransferSetSrc | Stelt it boarne adres fan de oerdracht. Dit adres moat 64 byte ôfstimd wêze. |
fpgaDMATransferSetDst | Stelt it bestimmingsadres fan de oerdracht yn. Dit adres moat 64 byte ôfstimd wêze. |
fpgaDMATransferSetLen | Stelt de oerdracht lingtes yn bytes. Foar net-pakket oerstappen moatte jo de oerdrachtlingte ynstelle op in mearfâld fan 64 bytes. Foar pakketferfier is dit gjin eask. |
fpgaDMATransferSetTransferType | Stelt it type oerdracht yn. Juridyske wearden binne:
• HOST_MM_TO_FPGA_MM = TX (Host to AFU) • FPGA_MM_TO_HOST_MM = RX (AFU nei host) |
fpgaDMATransferSetTransferCallback | Registrearret werombel foar notifikaasje oer foltôging fan asynchrone oerdracht. As jo oantsjutte in callback, jout fpgaDMATransfer fuortendaliks (asynchronous oerdracht).
As jo net oantsjutte in callback, fpgaDMATransfer werom neidat de oerdracht is foltôge (syngroane / blokkearjende oerdracht). |
fpgaDMATransferSetLast | Jout de lêste oerdracht oan sadat de DMA kin begjinne mei it ferwurkjen fan de foarôf ophelle oerstappen. De standertwearde is 64 oerstappen yn 'e pipeline foardat de DMA begjint te wurkjen oan' e oerstappen. |
fpgaDMATransfer | Fiert in DMA oerdracht. |
Foar mear ynformaasje oer de API, input, en output arguminten, ferwize nei de kop file leit $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw/fpga_dma.hIntel Corporation. Alle rjochten foarbehâlden. Intel, it Intel-logo en oare Intel-merken binne hannelsmerken fan Intel Corporation of har dochterûndernimmingen. Intel garandearret prestaasjes fan har FPGA- en semiconductor-produkten oan hjoeddeistige spesifikaasjes yn oerienstimming mei Intel's standert garânsje, mar behâldt it rjocht foar om op elk momint feroarings te meitsjen oan produkten en tsjinsten sûnder notice. Intel nimt gjin ferantwurdlikens of oanspraaklikens oan dy't fuortkomme út 'e applikaasje of gebrûk fan ynformaasje, produkt of tsjinst beskreaun hjiryn, útsein as útdruklik skriftlik ôfpraat troch Intel. Intel-klanten wurde advisearre om de lêste ferzje fan apparaatspesifikaasjes te krijen foardat se fertrouwe op alle publisearre ynformaasje en foardat se oarders pleatse foar produkten of tsjinsten. Oare nammen en merken kinne wurde opeaske as eigendom fan oaren.
Software Programming Model
Om mear te witten oer it model foar gebrûk fan softwaresjauffeurs, ferwize nei de README file leit op $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/README.md
Running DMA AFU Example
Foardat jo begjinne:
- Jo moatte wêze bekend mei de eksamples yn de Intel Acceleration Stack Quick Start Guide foar Intel FPGA Programmierbare Acceleration Card D5005.
- Jo moatte in omjouwingsfariabele definiearje. De omjouwingsfariabele is ôfhinklik fan de Intel Acceleration Stack-ferzje dy't jo brûke:
- Foar aktuele ferzje, set de omjouwingsfariabele op $OPAE_PLATFORM_ROOT
- Jo moatte de biblioteek fan Intel Threading Building Blocks (TBB) ynstallearje, om't de DMA-bestjoerder derop fertrout.
- Jo moatte ek twa 1 GB enoarme siden ynstelle om de s út te fierenample applikaasje. $ sudo sh -c “echo 2 > /sys/kernel/mm/hugepages/hugepages-1048576kB/ nr_hugepages”
Fier de folgjende stappen út om de DMA Accelerator Function (AF) bitstream te downloaden, de applikaasje en stjoerprogramma te bouwen, en it ûntwerp ex út te fierenample:
- Feroarje nei de DMA-applikaasje en stjoerprogrammamap: cd $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw
- Bou de bestjoerder en applikaasje: meitsje
- Download de DMA AFU bitstream: sudo fpgasupdate ../bin/dma_afu_unsigned.gbs
- Fier de hostapplikaasje út om 100 MB yn 1 MB dielen fan hostûnthâld nei FPGA-apparaatûnthâld te skriuwen en lês it werom: ./ fpga_dma_test -s 104857600 -p 1048576 -r mtom
Related Information
Intel Acceleration Stack Quick Start Guide foar Intel FPGA Programmierbare Acceleration Card D5005 Intel Corporation. Alle rjochten foarbehâlden. Intel, it Intel-logo en oare Intel-merken binne hannelsmerken fan Intel Corporation of har dochterûndernimmingen. Intel garandearret prestaasjes fan har FPGA- en semiconductor-produkten oan hjoeddeistige spesifikaasjes yn oerienstimming mei Intel's standert garânsje, mar behâldt it rjocht foar om op elk momint feroarings te meitsjen oan produkten en tsjinsten sûnder notice. Intel nimt gjin ferantwurdlikens of oanspraaklikens oan dy't fuortkomme út 'e applikaasje of gebrûk fan ynformaasje, produkt of tsjinst beskreaun hjiryn, útsein as útdruklik skriftlik ôfpraat troch Intel. Intel-klanten wurde advisearre om de lêste ferzje fan apparaatspesifikaasjes te krijen foardat se fertrouwe op alle publisearre ynformaasje en foardat se oarders pleatse foar produkten of tsjinsten. * Oare nammen en merken kinne wurde opeaske as eigendom fan oaren.
It kompilearjen fan de DMA AFU Example
Om in synthese build-omjouwing te generearjen om in AF te kompilearjen, brûk it kommando afu_synth_setup as folgjend:
- Feroarje nei de DMA AFU sample map: $OPAE_PLATFORM_ROOT/hw/samples/dma_afu
- Generearje de ûntwerpbouwmap: afu_synth_setup –source hw/rtl/filelist.txt build_synth
- Fier de folgjende kommando's yn fanút in terminalfinster út de synthesis build-map generearre troch afu_synth_setup om in AF te generearjen foar it doelhardwareplatfoarm: cd build_synth run.sh It run.sh AF-generaasjeskript makket it AF-ôfbylding mei deselde basis filenamme as de AFU's platfoarmkonfiguraasje file (.json) mei in .gbs efterheaksel op de lokaasje:$OPAE_PLATFORM_ROOT/hw/samples/build_synth/dma_afu_s10.gbs Intel Corporation. Alle rjochten foarbehâlden. Intel, it Intel-logo en oare Intel-merken binne hannelsmerken fan Intel Corporation of har dochterûndernimmingen. Intel garandearret prestaasjes fan har FPGA- en semiconductor-produkten oan hjoeddeistige spesifikaasjes yn oerienstimming mei Intel's standert garânsje, mar behâldt it rjocht foar om op elk momint feroarings te meitsjen oan produkten en tsjinsten sûnder notice. Intel nimt gjin ferantwurdlikens of oanspraaklikens oan dy't fuortkomme út 'e applikaasje of gebrûk fan ynformaasje, produkt of tsjinst beskreaun hjiryn, útsein as útdruklik skriftlik ôfpraat troch Intel. Intel-klanten wurde advisearre om de lêste ferzje fan apparaatspesifikaasjes te krijen foardat se fertrouwe op alle publisearre ynformaasje en foardat se oarders pleatse foar produkten of tsjinsten. * Oare nammen en merken kinne wurde opeaske as eigendom fan oaren.
Simulearje de AFU Example
Intel advisearret jo te ferwizen nei de Intel Accelerator Functional Unit (AFU) Simulation Environment (ASE) Quick Start Guide foar jo Intel FPGA PAC om bekend te wêzen mei it simulearjen fan ferlykbere eks.amples en om jo omjouwing yn te stellen. Foardat jo trochgean troch de folgjende stappen, kontrolearje dat de OPAE_PLATFORM_ROOT omjouwingsfariabele is ynsteld op de OPAE SDK ynstallaasje map. Folje de folgjende stappen yn om de hardwaresimulator foar de DMA AFU yn te stellen:
- Feroarje nei de DMA AFU sample map: cd $OPAE_PLATFORM_ROOT/hw/samples/dma_afu
- Meitsje in ASE-omjouwing yn in nije map en konfigurearje it foar it simulearjen fan in AFU: afu_sim_setup –source hw/rtl/filelist.txt build_ase_dir
- Feroarje nei de ASE build map: cd build_ase_dir
- Bou de bestjoerder en applikaasje: meitsje
- Meitsje simulaasje: meitsje sim
Sample útfier fan 'e hardwaresimulator:
[SIM] ** ATTENTION: FOAR it útfieren fan de softwareapplikaasje ** [SIM] Set env(ASE_WORKDIR) yn terminal wêr't applikaasje sil rinne (kopiearje-en-plakke) => [SIM] $SHELL | Run:[SIM] ———+—————————————————— [SIM] bash/zsh | eksportearje ASE_WORKDIR=$OPAE_PLATFORM_ROOT/hw/samples/dma_afu/ase_mkdir/wurk [SIM] tcsh/csh | setenv ASE_WORKDIR $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/ase_mkdir/work [SIM] Foar elke oare $SHELL, rieplachtsje jo Linux-behearder [SIM] [SIM] Klear foar simulaasje ... [SIM] Druk op CTRL-C om simulator te sluten ...Folje de folgjende stappen yn om de DMA AFU-software te kompilearjen en út te fieren yn 'e simulaasjeomjouwing:
- Iepenje in nij terminalfinster.
- Feroarje map nei: cd $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw
Intel Corporation. Alle rjochten foarbehâlden. Intel, it Intel-logo en oare Intel-merken binne hannelsmerken fan Intel Corporation of har dochterûndernimmingen. Intel garandearret prestaasjes fan har FPGA- en semiconductor-produkten oan hjoeddeistige spesifikaasjes yn oerienstimming mei Intel's standert garânsje, mar behâldt it rjocht foar om op elk momint feroarings te meitsjen oan produkten en tsjinsten sûnder notice. Intel nimt gjin ferantwurdlikens of oanspraaklikens oan dy't fuortkomme út 'e applikaasje of gebrûk fan ynformaasje, produkt of tsjinst beskreaun hjiryn, útsein as útdruklik skriftlik ôfpraat troch Intel. Intel-klanten wurde advisearre om de lêste ferzje fan apparaatspesifikaasjes te krijen foardat se fertrouwe op alle publisearre ynformaasje en foardat se oarders pleatse foar produkten of tsjinsten. * Oare nammen en merken kinne wurde opeaske as eigendom fan oaren.
Simulearje de AFU Example
- Kopiearje de omjouwingsynstellingsstring (kies string passend foar jo shell) fan 'e stappen hjirboppe yn' e hardwaresimulaasje nei it terminalfinster. Sjoch de folgjende rigels yn 'e sample útfier fan de hardware simulator. [SIM] bash/zsh | eksportearje ASE_WORKDIR=$OPAE_PLATFORM_ROOT/hw/samples/dma_afu/build_ase_dir/wurk [SIM] tcsh/csh | setenv ASE_WORKDIR $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/build_ase_dir/work
- Kompilearje de software: $ make USE_ASE=1
- Fier de hostapplikaasje út om 4 KB yn dielen fan 1 KB fan it hostûnthâld werom te skriuwen nei FPGA-apparaatûnthâld yn 'e loopback-modus: ./ fpga_dma_test -s 4096 -p 1024 -r mtom
Related Information
Intel Accelerator Functional Unit (AFU) Simulation Environment (ASE) Quick Start User Guide
Optimalisaasje foar ferbettere DMA-prestaasjes
Utfiering fan NUMA (net-unifoarm ûnthâld tagong) optimalisaasje yn fpga_dma_test.cpp lit de prosessor tagong ta syn eigen lokale ûnthâld flugger as tagong ta net-lokaal ûnthâld (ûnthâld lokaal nei in oare prosessor). In typyske NUMA-konfiguraasje wurdt werjûn yn it diagram hjirûnder. De lokale tagong fertsjintwurdiget tagong fan in kearn nei ûnthâld lokaal ta deselde kearn. De tagong op ôfstân yllustrearret it paad dat is nommen as in kearn op knooppunt 0 tagong krijt ta ûnthâld dat leit yn it ûnthâld lokaal foar knooppunt 1.
Typyske NUMA-konfiguraasje
Brûk de folgjende koade om NUMA-optimalisaasje te ymplementearjen yn jo testapplikaasje:
// Stel goede affiniteit op as frege as (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_TOGpgaPropertiesGetDevice”); // Fyn it apparaat út de topology hwloc_topology_t topology; hwloc_topology_init(&topology); hwloc_topology_set_flags(topology, HWLOC_TOPOLOGY_FLAG_IO_DEVICES); Intel Corporation. Alle rjochten foarbehâlden. Intel, it Intel-logo en oare Intel-merken binne hannelsmerken fan Intel Corporation of har dochterûndernimmingen. Intel garandearret prestaasjes fan har FPGA- en semiconductor-produkten oan aktuele spesifikaasjes yn oerienstimming mei Intel's standert garânsje, mar behâldt it rjocht foar om op elk momint feroarings te meitsjen oan alle produkten en tsjinsten sûnder notice. Intel nimt gjin ferantwurdlikens of oanspraaklikens oan dy't fuortkomme út 'e applikaasje of gebrûk fan ynformaasje, produkt of tsjinst beskreaun hjiryn, útsein as útdruklik skriftlik ôfpraat troch Intel. Intel-klanten wurde advisearre om de lêste ferzje fan apparaatspesifikaasjes te krijen foardat se fertrouwe op alle publisearre ynformaasje en foardat se oarders pleatse foar produkten of tsjinsten. * Oare nammen en merken kinne wurde opeaske as eigendom fan oaren.
Optimalisaasje foar ferbettere DMA-prestaasjes
hwloc_topology_load(topology); hwloc_obj_t obj = hwloc_get_pcidev_by_busid(topology, dom, bus, dev, func); hwloc_obj_t obj2 = hwloc_get_non_io_ancestor_obj(topology, 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 is %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_THREAD_MEMBIND_MEMBINDHINDWINDHINDWINDWIND); #else retval =hwloc_set_membind_nodeset(topology, 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 Funksjonele Unit User Guide Archives
Intel Acceleration Stack Ferzje | Brûkersgids (PDF) |
2.0 | DMA Accelerator Funksjonele Unit (AFU) User Guide |
Dokumintferzjeskiednis foar de DMA Accelerator Functional Unit User Guide
Dokumint Ferzje |
Intel Acceleration Stack Ferzje |
Feroarings |
2020.08.03 |
2.0.1 (stipe mei Intel
Quartus® Prime Pro Edition Edition 19.2) |
De AF-ôfbylding korrizjearre file namme yn seksje It kompilearjen fan de DMA AFU Example. |
2020.04.17 |
2.0.1 (stipe mei Intel
Quartus Prime Pro Edition Edition 19.2) |
Korrigearre in ferklearring yn Bedoeld publyk ôfdieling. |
2020.02.20 |
2.0.1 (stipe mei Intel
Quartus Prime Pro Edition Edition 19.2) |
Typflater reparearre. |
2019.11.04 |
2.0.1 (stipe mei Intel Quartus Prime Pro Edition Edition 19.2) |
• Ferfongen de fpgaconf mei fpgasupdate by it konfigurearjen fan de FPGA mei de prebuild AFU yn seksje It útfieren fan de DMA AFU Example.
• Added ûndertitel Intel FPGA Programmierbare Acceleration Card D5005 nei de titel fan it dokumint. • Added omjouwingsfariabele $OPAE_PLATFORM_ROOT. • Wizige seksje Software Programming Model foar lytse bewurkings. • Nije seksje tafoege It kompilearjen fan de DMA AFU Example. • Wizige seksje Optimalisaasje foar ferbettere DMA-prestaasjes foar lytse bewurkings. |
2019.08.05 |
2.0 (stipe mei Intel
Quartus Prime Pro Edition 18.1.2) |
Inisjele release. |
Intel Corporation. Alle rjochten foarbehâlden. Intel, it Intel-logo en oare Intel-merken binne hannelsmerken fan Intel Corporation of har dochterûndernimmingen. Intel garandearret prestaasjes fan har FPGA- en semiconductor-produkten oan hjoeddeistige spesifikaasjes yn oerienstimming mei Intel's standert garânsje, mar behâldt it rjocht foar om op elk momint feroarings te meitsjen oan produkten en tsjinsten sûnder notice. Intel nimt gjin ferantwurdlikens of oanspraaklikens oan dy't fuortkomme út 'e applikaasje of gebrûk fan ynformaasje, produkt of tsjinst beskreaun hjiryn, útsein as útdruklik skriftlik ôfpraat troch Intel. Intel-klanten wurde advisearre om de lêste ferzje fan apparaatspesifikaasjes te krijen foardat se fertrouwe op alle publisearre ynformaasje en foardat se oarders pleatse foar produkten of tsjinsten.
- Oare nammen en merken kinne wurde opeaske as eigendom fan oaren.
Dokuminten / Resources
![]() |
Intel FPGA Programmierbare Acceleration Card D5005 [pdf] Brûkersgids FPGA Programmierbare Acceleration Card, D5005, FPGA Programmable Acceleration Card D5005, DMA Accelerator Funksjonele Unit |