Intel FPGA programmerbart accelerationskort D5005
Om dette dokument
Dette dokument beskriver den direkte hukommelsesadgang (DMA) Accelerator Functional Unit (AFU) implementering og hvordan man bygger designet til at køre på hardware eller i simulering.
Tilsigtet publikum
Den tilsigtede målgruppe omfatter hardware- eller softwareudviklere, der kræver en Accelerator Function (AF) for at buffere data lokalt i hukommelsen forbundet til Intel FPGA-enheden.
Konventioner
Dokumentkonventioner
Konvention | Beskrivelse |
# | Går forud for en kommando, der angiver, at kommandoen skal indtastes som root. |
$ | Angiver, at en kommando skal indtastes som bruger. |
Denne skrifttype | Filenavne, kommandoer og nøgleord udskrives med denne skrifttype. Lange kommandolinjer udskrives med denne skrifttype. Selvom lange kommandolinjer kan ombrydes til næste linje, er returneringen ikke en del af kommandoen; tryk ikke på enter. |
Angiver, at pladsholderteksten, der vises mellem vinkelparenteserne, skal erstattes med en passende værdi. Indtast ikke vinkelbeslagene. |
Akronymer
Akronymer
Akronymer | Udvidelse | Beskrivelse |
AF | Accelerator funktion | Kompileret Hardware Accelerator-billede implementeret i FPGA-logik, der accelererer en applikation. |
AFU | Accelerator funktionel enhed | Hardwareaccelerator implementeret i FPGA-logik, som aflaster en beregningsoperation for en applikation fra CPU'en for at forbedre ydeevnen. |
API | Applikationsprogrammeringsgrænseflade | Et sæt subrutinedefinitioner, protokoller og værktøjer til opbygning af softwareapplikationer. |
CCI-P | Core Cache Interface | CCI-P er standardgrænsefladen AFU'er bruger til at kommunikere med værten. |
DFH | Enhedsfunktionshoved | Opretter en sammenkædet liste over funktionsoverskrifter for at give en udvidelsesbar måde at tilføje funktioner på. |
fortsatte… |
Intel Corporation. Alle rettigheder forbeholdes. Intel, Intel-logoet og andre Intel-mærker er varemærker tilhørende Intel Corporation eller dets datterselskaber. Intel garanterer ydeevnen af sine FPGA- og halvlederprodukter i henhold til de aktuelle specifikationer i overensstemmelse med Intels standardgaranti, men forbeholder sig retten til at foretage ændringer af produkter og tjenester til enhver tid uden varsel. Intel påtager sig intet ansvar eller erstatningsansvar som følge af applikationen eller brugen af oplysninger, produkter eller tjenester beskrevet heri, undtagen som udtrykkeligt skriftligt aftalt af Intel. Intel-kunder rådes til at indhente den seneste version af enhedsspecifikationerne, før de stoler på nogen offentliggjort information, og før de afgiver ordrer på produkter eller tjenester. *Andre navne og mærker kan hævdes at være andres ejendom.
Akronymer | Udvidelse | Beskrivelse |
FIM | FPGA Interface Manager | FPGA-hardwaren, der indeholder FPGA Interface Unit (FIU) og eksterne grænseflader til hukommelse, netværk osv.
Acceleratorfunktionen (AF) har grænseflader med FIM'en under kørsel. |
FIU | FPGA Interface enhed | FIU er et platformsgrænsefladelag, der fungerer som en bro mellem platformsgrænseflader som PCIe*, UPI og AFU-sidegrænseflader såsom CCI-P. |
MPF | Hukommelsesegenskaber Fabrik | MPF er en Basic Building Block (BBB), som AFU'er kan bruge til at levere CCI-P trafikformende operationer for transaktioner med FIU'en. |
Accelerationsordliste
Accelerationsstak til Intel® Xeon® CPU med FPGA'er ordliste
Semester | Forkortelse | Beskrivelse |
Intel® Acceleration Stack til Intel Xeon® CPU med FPGA'er | Accelerationsstak | En samling af software, firmware og værktøjer, der giver ydeevneoptimeret forbindelse mellem en Intel FPGA og en Intel Xeon-processor. |
Intel FPGA programmerbart accelerationskort | Intel FPGA PAC | PCIe FPGA acceleratorkort.
Indeholder en FPGA Interface Manager (FIM), der parres med en Intel Xeon-processor over PCIe-bussen. |
- DMA Accelerator Functional Unit Brugervejledning: Intel FPGA Programmerbart Acceleration Card D5005
DMA AFU Beskrivelse
Indledning
Den direkte hukommelsesadgang (DMA) AFU example viser, hvordan man administrerer hukommelsesoverførsler mellem værtsprocessoren og FPGA. Du kan integrere DMA AFU i dit design for at flytte data mellem værtshukommelsen og den lokale FPGA-hukommelse. DMA AFU består af følgende undermoduler:
- Memory Properties Factory (MPF) Basic Building Block (BBB)
- Core Cache Interface (CCI-P) til Avalon® Memory-Mapped (Avalon-MM) Adapter
- DMA Test System, som indeholder DMA BBB
Disse undermoduler er beskrevet mere detaljeret i emnet DMA AFU Hardware Components nedenfor.
Relateret information
- DMA AFU-hardwarekomponenterne på side 6
- Avalon grænsefladespecifikationer
For mere information om Avalon-MM-protokollen, inklusive timingdiagrammer for læse- og skrivetransaktioner.
DMA AFU-softwarepakken
Intel Acceleration Stack til Intel Xeon CPU med FPGA-pakke file (*.tar.gz), inkluderer DMA AFU example. Denne example giver en driver til brugerplads. Værtsapplikationen bruger denne driver, således at DMA flytter data mellem værts- og FPGA-hukommelse. Hardware binære filer, kilder og brugerrumsdriveren er tilgængelige i følgende mappe: $OPAE_PLATFORM_ROOT/hw/samples/dma_afu . Før du eksperimenterer med DMA AFU, skal du installere softwarepakken Open Programmable Acceleration Engine (OPAE). Se Installation af OPAE-softwarepakken i Intel Acceleration Stack Quick Start Guide til Intel FPGA Programmable Acceleration Card D5005 for installationsinstruktioner. Denne Quick Start Guide indeholder også grundlæggende oplysninger om Open Programmable Acceleration Engine (OPAE) og konfiguration af en AFU. Efter installation af OPAE-softwarepakken (Open Programmable Acceleration Engine), somampværtsapplikationen og DMA AFU-brugerpladsdriveren er tilgængelige i følgende mappe: $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw. For at køre sampværtsapplikationen, fpga_dma_test på din Intel FPGA PAC D5005 hardware, se trinene i afsnittet Kørsel af DMA AFU Example. Intel Corporation. Alle rettigheder forbeholdes. Intel, Intel-logoet og andre Intel-mærker er varemærker tilhørende Intel Corporation eller dets datterselskaber. Intel garanterer ydeevnen af sine FPGA- og halvlederprodukter i henhold til de aktuelle specifikationer i overensstemmelse med Intels standardgaranti, men forbeholder sig retten til at foretage ændringer af produkter og tjenester til enhver tid uden varsel. Intel påtager sig intet ansvar eller erstatningsansvar, der opstår som følge af applikationen eller brugen af nogen information, produkt eller service, der er beskrevet heri, undtagen som udtrykkeligt skriftligt aftalt af Intel. Intel-kunder rådes til at få den seneste version af enhedsspecifikationerne, før de stoler på nogen offentliggjort information, og før de afgiver ordrer på produkter eller tjenester. *Andre navne og mærker kan hævdes at være andres ejendom.
Relateret information
- Intel Acceleration Stack Quick Start Guide til Intel FPGA Programmable Acceleration Card D5005
- Installation af OPAE-softwarepakken
DMA AFU hardwarekomponenterne
DMA AFU forbinder med FPGA Interface Unit (FIU) og FPGA-hukommelse. Se FPGA Interface Manager Data Sheet for Intel FPGA Programmable Acceleration Card D5005 for detaljerede specifikationer for FPGA-hukommelsen. Den aktuelt tilgængelige hardware dikterer denne hukommelseskonfiguration. Fremtidig hardware understøtter muligvis forskellige hukommelseskonfigurationer. Du kan bruge DMA AFU til at kopiere data mellem følgende kilde- og destinationsplaceringer:
- FPGA-hukommelse fra vært til enhed
- Enhedens FPGA-hukommelse til værten
Et Platform Designer-system, $OPAE_PLATFORM_ROOT/hw/samples/ dma_afu/hw/rtl/TEST_dma/ /dma_test_system.qsys implementerer det meste af DMA
- AFU. En del af DMA AFU implementeret i Platform Designer-systemet kan findes i det følgende
placering:$OPAE_PLATFORM_ROOT/hw/samples/dma_afu/hw/rtl/TEST_dma/ Du kan finde DMA BBB på følgende sted:
- $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/hw/rtl/dma_bbb
DMA Accelerator Functional Unit Brugervejledning: Intel FPGA Programmerbart Acceleration Card D5005
DMA AFU hardwareblokdiagram
DMA AFU inkluderer følgende interne moduler til interface med FPGA Interface Unit (FIU):
- Memory-Mapped IO (MMIO) Decoder Logic: registrerer MMIO læse- og skrivetransaktioner og adskiller dem fra CCI-P RX-kanal 0, som de ankommer fra. Dette sikrer, at MMIO-trafik aldrig når MPF BBB og betjenes af en uafhængig MMIO-kommandokanal.
- Memory Properties Factory (MPF): Dette modul sikrer, at læser svar fra DMA returnerer i den rækkefølge, de blev udstedt. Avalon-MM-protokollen kræver læsesvar for at returnere i den korrekte rækkefølge.
- CCI-P til Avalon-MM Adapter: Dette modul oversætter mellem CCI-P og Avalon-MM transaktioner som følger:
- CCI-P til Avalon-MMIO-adapter: Denne sti oversætter CCI-P MMIO-transaktioner til Avalon-MM-transaktioner.
- Avalon til CCI-P Host Adapter: Disse stier skaber separate skrivebeskyttede og skrivebeskyttede stier til DMA'en for at få adgang til værtshukommelsen.
- DMA-testsystem: Dette modul fungerer som en indpakning omkring DMA BBB for at udsætte DMA-masterne for resten af logikken i AFU'en. Det giver grænsefladen mellem DMA BBB og CCI-P til Avalon-adapteren. Det giver også grænsefladen mellem DMA BBB og de lokale FPGA SDRAM-banker.
Relateret information
FPGA Interface Manager Datablad til Intel FPGA Programmerbart Acceleration Card D5005
DMA testsystem
DMA-testsystemet forbinder DMA BBB med resten af FPGA-designet inklusive CCI-P-tilpasning og den lokale FPGA-hukommelse.
DMA-testsystemblokdiagram
Dette blokdiagram viser det indre af DMA-testsystemet. DMA-testsystemet er vist som en monolitisk blok i figur 1 på side 7.
DMA-testsystemet inkluderer følgende interne moduler:
- Far Reach Bridge/Pipeline Bridge: En pipeline-bro med justerbar latens inkluderet for at kontrollere topologi og forbedre designet Fmax.
- DMA AFU Device Feature Header (DFH): Dette er en DFH for DMA AFU. Denne DFH peger på den næste DFH placeret ved offset 0x100 (DMA BBB DFH).
- Null DFH: Denne komponent afslutter DFH-linked-listen. Hvis du tilføjer flere DMA BBB'er til designet, skal du sikre dig, at nul-DFH-basisadressen er placeret i slutningen af DFH-linked-listen.
- MA Basic Building Block (BBB): Denne blok flytter data mellem værten og den lokale FPGA-hukommelse. Den får også adgang til værtshukommelse for at få adgang til deskriptorkæder.
DMA BBB
DMA BBB-undersystemet overfører data fra kilde- til destinationsadresser ved hjælp af Avalon-MM-transaktioner. DMA-driveren styrer DMA BBB ved at få adgang til kontrol- og statusregisteret for de forskellige komponenter inde i systemet. DMA-driveren styrer også DMA BBB ved at bruge delt hukommelse til at kommunikere overførselsbeskrivelser. DMA BBB får adgang til data i FPGA-hukommelse ved offset 0x0. DMA BBB får adgang til data og deskriptorer i værtshukommelsen ved offset 0x1_0000_0000_0000.
DMA BBB Platform Designer blokdiagram
Dette blokdiagram udelukker nogle interne Pipeline Bridge IP-kerner.
DMA Accelerator Functional Unit Brugervejledning: Intel FPGA Programmerbart Acceleration Card D5005
DMA AFU Beskrivelse
Komponenterne i DMA BBB Platform Designer implementerer følgende funktioner:
- Fjernbroen/rørledningsbroen: En pipeline-bro med justerbar latens inkluderet for at kontrollere topologi og forbedre designet Fmax.
- MA BBB DFH: Dette er en enhedsfunktionsheader til DMA BBB. Denne DFH peger på den næste DFH placeret ved offset 0x100 (Null DFH).
- Beskrivelse frontend: Ansvarlig for at hente deskriptorer og overføre dem til Dispatcheren. Når en DMA-overførsel er fuldført, modtager frontenden statusdannelse fra dispatcheren og overskriver beskrivelsen i værtshukommelsen.
- Afsender: Denne blok planlægger DMA-overførsler til læse- og skrivemasteren.
- Læs Master: Denne blok er ansvarlig for at læse data fra værts- eller lokal FPGA-hukommelse og sende dem som streamingdata til Write Master.
- Skriv Master: Denne blok er ansvarlig for at modtage streamingdata fra Read Master og skrive indholdet til værts- eller lokal FPGA-hukommelse.
Registrer kort- og adresserum
DMA AFU understøtter to hukommelser views: DMA view og værten view. DMA view understøtter et 49-bit adresserum. Den nederste halvdel af DMA view kort til den lokale FPGA-hukommelse. Den øverste halvdel af DMA view kort til værtshukommelse. Værten view omfatter alle de registre, der er tilgængelige via MMIO-adgange, såsom DFH-tabellerne, og kontrol-/statusregistrene for de forskellige IP-kerner, der bruges inde i DMA AFU. MMIO-registrene i DMA BBB og AFU understøtter 32- og 64-bit adgang. DMA AFU understøtter ikke 512-bit MMIO-adgange. Adgang til Dispatcher-registrene inde i DMA BBB skal være 32 bit (Descriptor frontend implementerer 64-bit registre).
DMA AFU Register Kort
DMA AFU-registerkortet giver de absolutte adresser på alle lokationer i enheden. Disse registre er i værten view fordi det kun er værten, der kan få adgang til dem.
DMA AFU Hukommelseskort
Byte-adresseforskydninger | Navn | Spændvidde i bytes | Beskrivelse |
0x0 | DMA AFU DFH | 0x40 | Enhedsfunktionshoved til DMA AFU. ID_L er sat til 0x9081f88b8f655caa og ID_H er sat til 0x331db30c988541ea. DMA AFU DFH er blevet parametriseret til at pege på offset 0x100 for at finde den næste DFH (DMA BBB DFH). Du må ikke ændre basisadressen på DMA AFU DFH, da den skal være placeret på adressen 0x0 som defineret af CCIP-specifikationen. |
0x100 | DMA BBB | 0x100 | Specificerer DMA BBB-kontrol- og statusregistergrænseflade. Du kan henvise til DMA BBB registerkort for mere information. Inden for DMA BBB ved offset 0 inkluderer DMA BBB sin egen DFH. Denne DFH er blevet indstillet til at finde den næste DFH ved offset 0x100 (NULL DFH). Hvis du tilføjer flere DMA BBB'er, skal du placere dem 0x100 fra hinanden og sikre, at NULL DFH følger den sidste DMA med 0x100. |
0x200 | NULL DFH | 0x40 | Afslutter DFH-linked-listen. ID_L er sat til 0x90fe6aab12a0132f og ID_H er sat til 0xda1182b1b3444e23. NULL DFH er blevet parametriseret til at være den sidste DFH i hardware. Af denne grund er NULL DFH placeret på adressen 0x200. Hvis du tilføjer yderligere DMA BBB'er til systemet, skal du øge NULL DFH-basisadressen tilsvarende, så den forbliver på den højeste adresse. DMA-driveren og testapplikationen bruger ikke denne hardware. |
Intel Corporation. Alle rettigheder forbeholdes. Intel, Intel-logoet og andre Intel-mærker er varemærker tilhørende Intel Corporation eller dets datterselskaber. Intel garanterer ydeevnen af sine FPGA- og halvlederprodukter i henhold til de aktuelle specifikationer i overensstemmelse med Intels standardgaranti, men forbeholder sig retten til at foretage ændringer af produkter og tjenester til enhver tid uden varsel. Intel påtager sig intet ansvar eller erstatningsansvar som følge af applikationen eller brugen af oplysninger, produkter eller tjenester beskrevet heri, undtagen som udtrykkeligt skriftligt aftalt af Intel. Intel-kunder rådes til at indhente den seneste version af enhedsspecifikationerne, før de stoler på nogen offentliggjort information, og før de afgiver ordrer på produkter eller tjenester. *Andre navne og mærker kan hævdes at være andres ejendom.
Registrer kort- og adresserum
DMA BBB Hukommelseskort
Følgende byte-adresser er relative forskydninger fra DMA BBB-basisadressen i DMA AFU-systemet (0x100).
Byte-adresseforskydninger | Navn | Spændvidde i bytes | Beskrivelse |
0x0 | DMA BBB DFH | 0x40 | Enhedsfunktionshoved til DMA AFU. ID_L er sat til 0xa9149a35bace01ea og ID_H er sat til 0xef82def7f6ec40fc . DMA BBB DFH er blevet parametriseret til at pege på 0x100 for den næste DFH offset. Denne næste offset kan være en anden DMA BBB, en anden DFH (ikke inkluderet i dette design) eller NULL DFH. |
0x40 | Afsender | 0x40 | Kontrolport til afsenderen. DMA-driveren bruger denne placering til at kontrollere DMA'en eller forespørge om dens status. |
0x80 | Beskrivelse Frontend | 0x40 | Deskriptor-frontenden er en brugerdefineret komponent, der læser deskriptorer fra værtshukommelsen og overskriver deskriptoren, når DMA-overførslen er fuldført. Driveren instruerer frontenden, hvor den første deskriptor bor i værtshukommelsen, og derefter kommunikerer frontend-hardwaren med driveren primært via deskriptorer, der er gemt i værtshukommelsen. |
DMA AFU adresserum
Værten kan få adgang til registre, der er angivet i tabel 4 på side 12 og tabel 5 på side 13. DMA BBB-undersystemet har adgang til det fulde 49-bit adresserum. Den nederste halvdel af dette adresserum inkluderer de lokale FPGA-hukommelser. Den øverste halvdel af dette adresserum inkluderer 48-bit værtsadressehukommelsen. Følgende figur viser værten og DMA views af hukommelse.
DMA AFU og vært Views af Hukommelse
Enhedsfunktionsoverskrift med linket liste
DMA AFU-designet example indeholder tre enhedsfunktionsoverskrifter (DFH), der danner en sammenkædet liste. Denne linkede liste tillader sampapplikationen til at identificere DMA AFU samt driveren til at identificere DMA BBB. DFH-listen indeholder en NULL DFH i slutningen. Medtagelsen af null DFH i slutningen af den linkede liste giver dig mulighed for at tilføje flere DMA BBB'er til dit design. Du skal blot flytte NULL DFH til en adresse efter de andre BBB'er. Hver DMA BBB forventer, at den næste DFH er placeret 0x100 bytes fra BBB'ens basisadresse. Følgende figur viser den linkede liste for DMA AFU design example.
Registrer kort- og adresserum
DMA AFU Device Feature Header (DFH) Kædning
Software programmeringsmodel
DMA AFU inkluderer en softwaredriver, som du kan bruge i din egen værtsapplikation. fpga_dma.cpp og fpga_dma.h files placeret på følgende placering implementer softwaredriveren:$OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw Denne driver understøtter følgende funktioner:
API | Beskrivelse |
fpgaCountDMAChannels | Scanner enhedens funktionskæde for DMA BBB'er og tæller alle tilgængelige kanaler. |
fpgaDMA Åbn | Åbner et håndtag til DMA-kanalen. |
fpgaDMACluk | Lukker et håndtag til DMA-kanalen. |
fpgaDMATransferInit | Initialiserer et objekt, der repræsenterer DMA-overførslen. |
fpgaDMATransferReset | Nulstiller DMA-overførselsattributobjektet til standardværdier. |
fpgaDMATransferDestroy | Ødelægger DMA-overførselsattributobjektet. |
fpgaDMATransferSetSrc | Indstiller kildeadressen for overførslen. Denne adresse skal være 64 byte justeret. |
fpgaDMATransferSetDst | Indstiller destinationsadressen for overførslen. Denne adresse skal være 64 byte justeret. |
fpgaDMATransferSetLen | Indstiller overførselslængderne i bytes. For ikke-pakkeoverførsler skal du indstille overførselslængden til et multiplum af 64 bytes. For pakkeoverførsler er dette ikke et krav. |
fpgaDMATransferSetTransferType | Indstiller overførselstypen. Juridiske værdier er:
• HOST_MM_TO_FPGA_MM = TX (vært til AFU) • FPGA_MM_TO_HOST_MM = RX (AFU til vært) |
fpgaDMATransferSetTransferCallback | Registrerer tilbagekald for meddelelse om fuldførelse af asynkron overførsel. Hvis du angiver et tilbagekald, vender fpgaDMATransfer tilbage med det samme (asynkron overførsel).
Hvis du ikke angiver et tilbagekald, vender fpgaDMATransfer tilbage efter overførslen er gennemført (synkron/blokerende overførsel). |
fpgaDMATransferSetLast | Angiver den sidste overførsel, så DMA kan begynde at behandle de forudhentede overførsler. Standardværdien er 64 overførsler i pipeline, før DMA begynder at arbejde på overførslerne. |
fpgaDMATransfer | Udfører en DMA-overførsel. |
For mere information om API, input og output-argumenter, se overskriften file lokaliseret $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw/fpga_dma.hIntel Corporation. Alle rettigheder forbeholdes. Intel, Intel-logoet og andre Intel-mærker er varemærker tilhørende Intel Corporation eller dets datterselskaber. Intel garanterer ydeevnen af sine FPGA- og halvlederprodukter i henhold til de aktuelle specifikationer i overensstemmelse med Intels standardgaranti, men forbeholder sig retten til at foretage ændringer af produkter og tjenester til enhver tid uden varsel. Intel påtager sig intet ansvar eller erstatningsansvar, der opstår som følge af applikationen eller brugen af nogen information, produkt eller service, der er beskrevet heri, undtagen som udtrykkeligt skriftligt aftalt af Intel. Intel-kunder rådes til at få den seneste version af enhedsspecifikationerne, før de stoler på nogen offentliggjort information, og før de afgiver ordrer på produkter eller tjenester. Andre navne og mærker kan hævdes som andres ejendom.
Software programmeringsmodel
For at vide mere om softwaredriverbrugsmodellen henvises til README file placeret på $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/README.md
Kører DMA AFU Example
Før du begynder:
- Du burde være bekendt med eksenamples i Intel Acceleration Stack Quick Start Guide til Intel FPGA Programmable Acceleration Card D5005.
- Du skal definere en miljøvariabel. Miljøvariablen er afhængig af den Intel Acceleration Stack-version, du bruger:
- For den aktuelle version skal du indstille miljøvariablen til $OPAE_PLATFORM_ROOT
- Du skal installere Intel Threading Building Blocks-biblioteket (TBB), da DMA-driveren er afhængig af det.
- Du skal også konfigurere to 1 GB enorme sider for at køre sampansøgningen. $ sudo sh -c “echo 2 > /sys/kernel/mm/hugepages/hugepages-1048576kB/ nr_hugepages”
Udfør følgende trin for at downloade DMA Accelerator Function (AF) bitstream, for at bygge applikationen og driveren og for at køre design ex.ampdet:
- Skift til DMA-applikationen og driverbiblioteket: cd $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw
- Byg driveren og applikationen: lav
- Download DMA AFU bitstream: sudo fpgasupdate ../bin/dma_afu_unsigned.gbs
- Udfør værtsapplikationen for at skrive 100 MB i 1 MB portioner fra værtshukommelsen til FPGA-enhedens hukommelse, og læs den tilbage: ./ fpga_dma_test -s 104857600 -p 1048576 -r mtom
Relateret information
Intel Acceleration Stack Quick Start Guide til Intel FPGA Programmerbart Acceleration Card D5005 Intel Corporation. Alle rettigheder forbeholdes. Intel, Intel-logoet og andre Intel-mærker er varemærker tilhørende Intel Corporation eller dets datterselskaber. Intel garanterer ydeevnen af sine FPGA- og halvlederprodukter i henhold til de aktuelle specifikationer i overensstemmelse med Intels standardgaranti, men forbeholder sig retten til at foretage ændringer af produkter og tjenester til enhver tid uden varsel. Intel påtager sig intet ansvar eller erstatningsansvar, der opstår som følge af applikationen eller brugen af nogen information, produkt eller service, der er beskrevet heri, undtagen som udtrykkeligt skriftligt aftalt af Intel. Intel-kunder rådes til at få den seneste version af enhedsspecifikationerne, før de stoler på nogen offentliggjort information, og før de afgiver ordrer på produkter eller tjenester. *Andre navne og mærker kan hævdes at være andres ejendom.
Kompilering af DMA AFU Example
For at generere et syntesebyggemiljø til at kompilere en AF, skal du bruge kommandoen afu_synth_setup som følger:
- Skift til DMA AFU'erneampmappen: $OPAE_PLATFORM_ROOT/hw/samples/dma_afu
- Generer design build-mappen: afu_synth_setup –source hw/rtl/filelist.txt build_synth
- Indtast følgende kommandoer fra et terminalvindue fra synthesis build-mappen genereret af afu_synth_setup for at generere en AF for målhardwareplatformen: cd build_synth run.sh Run.sh AF-genereringsscriptet opretter AF-billedet med den samme base filenavn som AFU's platformkonfiguration file (.json) med et .gbs-suffiks på lokationen:$OPAE_PLATFORM_ROOT/hw/samples/build_synth/dma_afu_s10.gbs Intel Corporation. Alle rettigheder forbeholdes. Intel, Intel-logoet og andre Intel-mærker er varemærker tilhørende Intel Corporation eller dets datterselskaber. Intel garanterer ydeevnen af sine FPGA- og halvlederprodukter i henhold til de aktuelle specifikationer i overensstemmelse med Intels standardgaranti, men forbeholder sig retten til at foretage ændringer af produkter og tjenester til enhver tid uden varsel. Intel påtager sig intet ansvar eller erstatningsansvar, der opstår som følge af applikationen eller brugen af nogen information, produkt eller service, der er beskrevet heri, undtagen som udtrykkeligt skriftligt aftalt af Intel. Intel-kunder rådes til at få den seneste version af enhedsspecifikationerne, før de stoler på nogen offentliggjort information, og før de afgiver ordrer på produkter eller tjenester. *Andre navne og mærker kan hævdes at være andres ejendom.
Simulering af AFU Example
Intel anbefaler, at du refererer til Intel Accelerator Functional Unit (AFU) Simulation Environment (ASE) Quick Start Guide for din Intel FPGA PAC for at blive fortrolig med simulering af lignende f.amples og for at opsætte dit miljø. Før du fortsætter gennem de følgende trin, skal du kontrollere, at OPAE_PLATFORM_ROOT miljøvariablen er indstillet til OPAE SDK installationsmappen. Udfør følgende trin for at konfigurere hardwaresimulatoren til DMA AFU:
- Skift til DMA AFU'erneampmappen: cd $OPAE_PLATFORM_ROOT/hw/samples/dma_afu
- Opret et ASE-miljø i et nyt bibliotek og konfigurer det til at simulere en AFU: afu_sim_setup –source hw/rtl/filelist.txt build_ase_dir
- Skift til ASE build-mappen: cd build_ase_dir
- Byg driveren og applikationen: lav
- Lav simulering: lav sim
Sample output fra hardwaresimulatoren:
[SIM] ** BEMÆRK: FØR kørsel af softwareapplikationen ** [SIM] Indstil env(ASE_WORKDIR) i terminalen, hvor applikationen skal køre (copy-and-paste) => [SIM] $SHELL | Kør:[SIM] ———+————————————————— [SIM] bash/zsh | eksporter 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] For enhver anden $SHELL, kontakt din Linux-administrator [SIM] [SIM] Klar til simulering... [SIM] Tryk på CTRL-C for at lukke simulator...Udfør følgende trin for at kompilere og udføre DMA AFU-softwaren i simuleringsmiljøet:
- Åbn et nyt terminalvindue.
- Skift bibliotek til: cd $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw
Intel Corporation. Alle rettigheder forbeholdes. Intel, Intel-logoet og andre Intel-mærker er varemærker tilhørende Intel Corporation eller dets datterselskaber. Intel garanterer ydeevnen af sine FPGA- og halvlederprodukter i henhold til de aktuelle specifikationer i overensstemmelse med Intels standardgaranti, men forbeholder sig retten til at foretage ændringer af produkter og tjenester til enhver tid uden varsel. Intel påtager sig intet ansvar eller erstatningsansvar som følge af applikationen eller brugen af oplysninger, produkter eller tjenester beskrevet heri, undtagen som udtrykkeligt skriftligt aftalt af Intel. Intel-kunder rådes til at indhente den seneste version af enhedsspecifikationerne, før de stoler på nogen offentliggjort information, og før de afgiver ordrer på produkter eller tjenester. *Andre navne og mærker kan hævdes at være andres ejendom.
Simulering af AFU Example
- Kopier miljøopsætningsstrengen (vælg streng passende til din shell) fra trinene ovenfor i hardwaresimuleringen til terminalvinduet. Se følgende linjer i sample output fra hardwaresimulatoren. [SIM] bash/zsh | eksporter 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
- Kompiler softwaren: $ make USE_ASE=1
- Udfør værtsapplikationen for at skrive 4 KB i 1 KB-dele fra værtshukommelsen tilbage til FPGA-enhedens hukommelse i loopback-tilstand: ./ fpga_dma_test -s 4096 -p 1024 -r mtom
Relateret information
Intel Accelerator Functional Unit (AFU) Simulation Environment (ASE) Lynstartbrugervejledning
Optimering for forbedret DMA-ydelse
Implementering af NUMA (non-uniform memory access) optimering i fpga_dma_test.cpp gør det muligt for processoren at få adgang til sin egen lokale hukommelse hurtigere end at få adgang til ikke-lokal hukommelse (hukommelse lokal til en anden processor). En typisk NUMA-konfiguration er vist i diagrammet nedenfor. Den lokale adgang repræsenterer adgang fra en kerne til lokal hukommelse til den samme kerne. Fjernadgangen illustrerer stien, der tages, når en kerne på Node 0 tilgår hukommelse, der ligger i hukommelsen lokalt til Node 1.
Typisk NUMA-konfiguration
Brug følgende kode til at implementere NUMA-optimering i din testapplikation:
// Indstil korrekt affinitet, hvis det anmodes om, hvis (cpu_affinity || memory_affinity) {unsigned dom = 0, bus = 0, dev = 0, func = 0; fpga_properties rekvisitter;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_GOdefyres,out_Proction “GpgaPropertiesGetDevice”); // Find enheden fra topologien hwloc_topology_t topology; hwloc_topology_init(&topologi); hwloc_topology_set_flags(topologi, HWLOC_TOPOLOGY_FLAG_IO_DEVICES);Intel Corporation. Alle rettigheder forbeholdes. Intel, Intel-logoet og andre Intel-mærker er varemærker tilhørende Intel Corporation eller dets datterselskaber. Intel garanterer ydeevnen af sine FPGA- og halvlederprodukter i overensstemmelse med de aktuelle specifikationer i overensstemmelse med Intels standardgaranti, men forbeholder sig retten til at foretage ændringer af alle produkter og tjenester til enhver tid uden varsel. Intel påtager sig intet ansvar eller erstatningsansvar, der opstår som følge af applikationen eller brugen af nogen information, produkt eller service, der er beskrevet heri, undtagen som udtrykkeligt skriftligt aftalt af Intel. Intel-kunder rådes til at få den seneste version af enhedsspecifikationerne, før de stoler på nogen offentliggjort information, og før de afgiver ordrer på produkter eller tjenester. *Andre navne og mærker kan hævdes at være andres ejendom.
Optimering for forbedret DMA-ydelse
hwloc_topology_load(topologi); hwloc_obj_t obj = hwloc_get_pcidev_by_busid(topologi, dom, bus, dev, func); hwloc_obj_t obj2 = hwloc_get_non_io_ancestor_obj(topologi, 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 er %s\n”, str); hwloc_bitmap_taskset_snprintf(str, 4096, obj2->nodeset); printf(“NODESET er %s\n”, str);#endif if (memory_affinity) { #if HWLOC_API_VERSION > 0x00020000 retval = hwloc_set_membind(topologi, obj2->nodeset,HWLOC_MEMBIND_THREAD_MEMBIND_THREAD_HWLOC_MEMBIND_MEMBINDHINDHINDWIND_MEMBINDWINDWIND); #else retval =hwloc_set_membind_nodeset(topologi, 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(topologi, obj2->cpuset, HWLOC_CPUBIND_STRICT); ON_ERR_GOTO(retval, out_destroy_tok, "hwloc_set_cpubind"); } }
DMA Accelerator Functional Unit Brugervejledning Arkiver
Intel Acceleration Stack-version | Brugervejledning (PDF) |
2.0 | DMA Accelerator Functional Unit (AFU) Brugervejledning |
Dokumentrevisionshistorik for brugervejledningen til DMA Accelerator Functional Unit
Dokumentversion |
Intel Acceleration Stack version |
Ændringer |
2020.08.03 |
2.0.1 (understøttet med Intel
Quartus® Prime Pro Edition Edition 19.2) |
Rettede AF-billedet file navn i afsnit Kompilering af DMA AFU Example. |
2020.04.17 |
2.0.1 (understøttet med Intel
Quartus Prime Pro Edition Edition 19.2) |
Rettede en erklæring i Tilsigtet publikum afsnit. |
2020.02.20 |
2.0.1 (understøttet med Intel
Quartus Prime Pro Edition Edition 19.2) |
Rettet tastefejl. |
2019.11.04 |
2.0.1 (understøttet med Intel Quartus Prime Pro Edition Edition 19.2) |
• Udskiftede fpgaconf med fpgasupdate ved konfiguration af FPGA med prebuild AFU i afsnit Kører DMA AFU Example.
• Tilføjet undertekst Intel FPGA programmerbart accelerationskort D5005 til dokumentets titel. • Tilføjet miljøvariabel $OPAE_PLATFORM_ROOT. • Ændret afsnit Software programmeringsmodel for mindre redigeringer. • Tilføjet nyt afsnit Kompilering af DMA AFU Example. • Ændret afsnit Optimering for forbedret DMA-ydelse for mindre redigeringer. |
2019.08.05 |
2.0 (understøttet med Intel
Quartus Prime Pro Edition 18.1.2) |
Første udgivelse. |
Intel Corporation. Alle rettigheder forbeholdes. Intel, Intel-logoet og andre Intel-mærker er varemærker tilhørende Intel Corporation eller dets datterselskaber. Intel garanterer ydeevnen af sine FPGA- og halvlederprodukter i henhold til de aktuelle specifikationer i overensstemmelse med Intels standardgaranti, men forbeholder sig retten til at foretage ændringer af produkter og tjenester til enhver tid uden varsel. Intel påtager sig intet ansvar eller erstatningsansvar, der opstår som følge af applikationen eller brugen af nogen information, produkt eller service, der er beskrevet heri, undtagen som udtrykkeligt skriftligt aftalt af Intel. Intel-kunder rådes til at få den seneste version af enhedsspecifikationerne, før de stoler på nogen offentliggjort information, og før de afgiver ordrer på produkter eller tjenester.
- Andre navne og mærker kan hævdes som andres ejendom.
Dokumenter/ressourcer
![]() |
Intel FPGA programmerbart accelerationskort D5005 [pdfBrugervejledning FPGA-programmerbart accelerationskort, D5005, FPGA-programmerbart accelerationskort D5005, DMA-acceleratorfunktionsenhed |