Intel-logo

Intel FPGA programmerbart accelerationskort D5005

Intel.-FPGA-Programmerbar-Acceleration-Card-D5005-produkt

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

Intel.-FPGA-Programmerbar-Acceleration-Card-D5005-fig-1

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.Intel.-FPGA-Programmerbar-Acceleration-Card-D5005-fig-2

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.Intel.-FPGA-Programmerbar-Acceleration-Card-D5005-fig-6

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

Intel.-FPGA-Programmerbar-Acceleration-Card-D5005-fig-3

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

Intel.-FPGA-Programmerbar-Acceleration-Card-D5005-fig-4

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:

  1. Skift til DMA-applikationen og driverbiblioteket: cd $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw
  2. Byg driveren og applikationen: lav
  3. Download DMA AFU bitstream: sudo fpgasupdate ../bin/dma_afu_unsigned.gbs
  4. 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:

  1. Skift til DMA AFU'erneampmappen: $OPAE_PLATFORM_ROOT/hw/samples/dma_afu
  2. Generer design build-mappen: afu_synth_setup –source hw/rtl/filelist.txt build_synth
  3. 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:

  1. Skift til DMA AFU'erneampmappen: cd $OPAE_PLATFORM_ROOT/hw/samples/dma_afu
  2. 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
  3. Skift til ASE build-mappen: cd build_ase_dir
  4. Byg driveren og applikationen: lav
  5. 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:

  1. Åbn et nyt terminalvindue.
  2. 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

  1. 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
  2. Kompiler softwaren: $ make USE_ASE=1
  3. 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

Intel.-FPGA-Programmerbar-Acceleration-Card-D5005-fig-5

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

Referencer

Efterlad en kommentar

Din e-mailadresse vil ikke blive offentliggjort. Påkrævede felter er markeret *