Intel FPGA programmerbart akselerasjonskort D5005
Om dette dokumentet
Dette dokumentet beskriver implementeringen av direkte minnetilgang (DMA) Accelerator Functional Unit (AFU) og hvordan du bygger designet for å kjøre på maskinvare eller i simulering.
Tiltenkt publikum
Den tiltenkte målgruppen omfatter maskinvare- eller programvareutviklere som krever en akseleratorfunksjon (AF) for å bufre data lokalt i minnet koblet til Intel FPGA-enheten.
Konvensjoner
Dokumentkonvensjoner
Konvensjon | Beskrivelse |
# | Går foran en kommando som indikerer at kommandoen skal legges inn som root. |
$ | Indikerer at en kommando skal legges inn som bruker. |
Denne fonten | Filenavn, kommandoer og nøkkelord skrives ut med denne fonten. Lange kommandolinjer skrives ut med denne fonten. Selv om lange kommandolinjer kan gå til neste linje, er ikke returen en del av kommandoen; ikke trykk enter. |
Indikerer at plassholderteksten som vises mellom vinkelparentesene må erstattes med en passende verdi. Ikke gå inn i vinkelbrakettene. |
Akronymer
Akronymer
Akronymer | Ekspansjon | Beskrivelse |
AF | Akseleratorfunksjon | Kompilert maskinvareakseleratorbilde implementert i FPGA-logikk som akselererer en applikasjon. |
AFU | Akselerator funksjonell enhet | Maskinvareakselerator implementert i FPGA-logikk som avlaster en beregningsoperasjon for en applikasjon fra CPUen for å forbedre ytelsen. |
API | Applikasjonsprogrammeringsgrensesnitt | Et sett med subrutinedefinisjoner, protokoller og verktøy for å bygge programvareapplikasjoner. |
CCI-P | Core Cache Interface | CCI-P er standardgrensesnittet AFUer bruker for å kommunisere med verten. |
DFH | Overskrift for enhetsfunksjoner | Oppretter en koblet liste over funksjonsoverskrifter for å gi en utvidbar måte å legge til funksjoner på. |
fortsatte... |
Intel Corporation. Alle rettigheter forbeholdt. Intel, Intel-logoen og andre Intel-merker er varemerker for Intel Corporation eller dets datterselskaper. Intel garanterer ytelsen til sine FPGA- og halvlederprodukter i henhold til gjeldende spesifikasjoner i henhold til Intels standardgaranti, men forbeholder seg retten til å gjøre endringer i produkter og tjenester når som helst uten varsel. Intel påtar seg intet ansvar eller ansvar som oppstår som følge av applikasjonen eller bruken av informasjon, produkter eller tjenester som er beskrevet her, med mindre det er uttrykkelig skriftlig avtalt med Intel. Intel-kunder anbefales å få tak i den nyeste versjonen av enhetsspesifikasjonene før de stoler på publisert informasjon og før de bestiller produkter eller tjenester. *Andre navn og merker kan gjøres krav på som andres eiendom.
Akronymer | Ekspansjon | Beskrivelse |
FIM | FPGA Interface Manager | FPGA-maskinvaren som inneholder FPGA Interface Unit (FIU) og eksterne grensesnitt for minne, nettverk osv.
Akseleratorfunksjonen (AF) har grensesnitt med FIM under kjøretid. |
FIU | FPGA-grensesnittenhet | FIU er et plattformgrensesnittlag som fungerer som en bro mellom plattformgrensesnitt som PCIe*, UPI og AFU-sidegrensesnitt som CCI-P. |
MPF | Minneegenskaper fabrikk | MPF er en grunnleggende byggestein (BBB) som AFUer kan bruke for å gi CCI-P trafikkformingsoperasjoner for transaksjoner med FIU. |
Akselerasjonsordliste
Acceleration Stack for Intel® Xeon® CPU med FPGA-ordliste
Periode | Forkortelse | Beskrivelse |
Intel® Acceleration Stack for Intel Xeon® CPU med FPGAer | Akselerasjonsstabel | En samling av programvare, fastvare og verktøy som gir ytelsesoptimalisert tilkobling mellom en Intel FPGA og en Intel Xeon-prosessor. |
Intel FPGA programmerbart akselerasjonskort | Intel FPGA PAC | PCIe FPGA-akseleratorkort.
Inneholder en FPGA Interface Manager (FIM) som pares med en Intel Xeon-prosessor over PCIe-bussen. |
- Brukerveiledning for DMA Accelerator Functional Unit: Intel FPGA Programmerbart Acceleration Card D5005
DMA AFU Beskrivelse
Introduksjon
Direkte minnetilgang (DMA) AFU example viser hvordan du administrerer minneoverføringer mellom vertsprosessoren og FPGA. Du kan integrere DMA AFU i designet for å flytte data mellom vertsminnet og det lokale FPGA-minnet. DMA AFU består av følgende undermoduler:
- Memory Properties Factory (MPF) Basic Building Block (BBB)
- Core Cache Interface (CCI-P) til Avalon® Memory-Mapped (Avalon-MM) Adapter
- DMA testsystem som inneholder DMA BBB
Disse undermodulene er beskrevet mer detaljert i emnet DMA AFU Hardware Components nedenfor.
Relatert informasjon
- DMA AFU-maskinvarekomponentene på side 6
- Avalon grensesnittspesifikasjoner
For mer informasjon om Avalon-MM-protokollen, inkludert tidsdiagrammer for lese- og skrivetransaksjoner.
DMA AFU-programvarepakken
Intel Acceleration Stack for Intel Xeon CPU med FPGA-pakke file (*.tar.gz), inkluderer DMA AFU example. Denne eksample gir en driver for brukerplass. Vertsapplikasjonen bruker denne driveren slik at DMA flytter data mellom verts- og FPGA-minne. Maskinvarebinærene, kildene og brukerplassdriveren er tilgjengelig i følgende katalog: $OPAE_PLATFORM_ROOT/hw/samples/dma_afu . Før du eksperimenterer med DMA AFU, må du installere programvarepakken Open Programmable Acceleration Engine (OPAE). Se Installere OPAE-programvarepakken i Intel Acceleration Stack Quick Start Guide for Intel FPGA Programmable Acceleration Card D5005 for installasjonsinstruksjoner. Denne hurtigstartveiledningen inneholder også grunnleggende informasjon om Open Programmable Acceleration Engine (OPAE) og konfigurering av en AFU. Etter å ha installert programvarepakken Open Programmable Acceleration Engine (OPAE), somampvertsapplikasjonen og DMA AFU-brukerplassdriveren er tilgjengelig i følgende katalog: $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw. For å kjøre sampvertsapplikasjonen, fpga_dma_test på din Intel FPGA PAC D5005 maskinvare, se trinnene i avsnittet Kjøre DMA AFU Example. Intel Corporation. Alle rettigheter forbeholdt. Intel, Intel-logoen og andre Intel-merker er varemerker for Intel Corporation eller dets datterselskaper. Intel garanterer ytelsen til sine FPGA- og halvlederprodukter i henhold til gjeldende spesifikasjoner i henhold til Intels standardgaranti, men forbeholder seg retten til å gjøre endringer i produkter og tjenester når som helst uten varsel. Intel påtar seg intet ansvar eller ansvar som oppstår som følge av applikasjonen eller bruken av informasjon, produkter eller tjenester som er beskrevet her, med mindre det er uttrykkelig skriftlig avtalt med Intel. Intel-kunder anbefales å få tak i den nyeste versjonen av enhetsspesifikasjonene før de stoler på publisert informasjon og før de bestiller produkter eller tjenester. *Andre navn og merker kan gjøres krav på som andres eiendom.
Relatert informasjon
- Intel Acceleration Stack Hurtigstartguide for Intel FPGA Programmerbart Acceleration Card D5005
- Installere OPAE-programvarepakken
DMA AFU maskinvarekomponenter
DMA AFU har grensesnitt med FPGA Interface Unit (FIU) og FPGA-minne. Se FPGA Interface Manager Data Sheet for Intel FPGA Programmable Acceleration Card D5005 for detaljerte spesifikasjoner for FPGA-minnet. Den tilgjengelige maskinvaren dikterer denne minnekonfigurasjonen. Fremtidig maskinvare kan støtte forskjellige minnekonfigurasjoner. Du kan bruke DMA AFU til å kopiere data mellom følgende kilde- og destinasjonssteder:
- FPGA-minne fra vert til enhet
- Enhets FPGA-minne til verten
Et plattformdesignersystem, $OPAE_PLATFORM_ROOT/hw/samples/ dma_afu/hw/rtl/TEST_dma/ /dma_test_system.qsys implementerer det meste av DMA
- AFU. En del av DMA AFU implementert i Platform Designer-systemet finner du i det følgende
plassering:$OPAE_PLATFORM_ROOT/hw/samples/dma_afu/hw/rtl/TEST_dma/ Du finner DMA BBB på følgende sted:
- $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/hw/rtl/dma_bbb
Brukerveiledning for DMA Accelerator Functional Unit: Intel FPGA Programmerbart Acceleration Card D5005
DMA AFU maskinvareblokkdiagram
DMA AFU inkluderer følgende interne moduler for grensesnitt med FPGA Interface Unit (FIU):
- Memory-Mapped IO (MMIO) dekoderlogikk: oppdager MMIO lese- og skrivetransaksjoner og skiller dem fra CCI-P RX-kanalen 0 som de kommer fra. Dette sikrer at MMIO-trafikk aldri når MPF BBB og betjenes av en uavhengig MMIO-kommandokanal.
- Memory Properties Factory (MPF): Denne modulen sikrer at svarene fra DMA-en blir lest i den rekkefølgen de ble utstedt. Avalon-MM-protokollen krever at lesesvar returneres i riktig rekkefølge.
- CCI-P til Avalon-MM-adapter: Denne modulen oversetter mellom CCI-P og Avalon-MM-transaksjoner, som følger:
- CCI-P til Avalon-MMIO-adapter: Denne banen oversetter CCI-P MMIO-transaksjoner til Avalon-MM-transaksjoner.
- Avalon til CCI-P vertsadapter: Disse banene oppretter separate skrivebeskyttede og skrivebeskyttede stier for DMA for å få tilgang til vertsminne.
- DMA-testsystem: Denne modulen fungerer som en innpakning rundt DMA BBB for å eksponere DMA-masterne for resten av logikken i AFU. Den gir grensesnittet mellom DMA BBB og CCI-P til Avalon-adapteren. Det gir også grensesnittet mellom DMA BBB og de lokale FPGA SDRAM-bankene.
Relatert informasjon
Datablad for FPGA Interface Manager for Intel FPGA programmerbart akselerasjonskort D5005
DMA testsystem
DMA-testsystemet kobler DMA BBB til resten av FPGA-designet, inkludert CCI-P-tilpasning og det lokale FPGA-minnet.
DMA-testsystemblokkdiagram
Dette blokkdiagrammet viser innsiden av DMA-testsystemet. DMA-testsystemet er vist som en monolittisk blokk i figur 1 på side 7.
DMA-testsystemet inkluderer følgende interne moduler:
- Far Reach Bridge/Pipeline Bridge: En rørledningsbro med justerbar latens inkludert for å kontrollere topologi og forbedre design Fmax.
- DMA AFU Device Feature Header (DFH): Dette er en DFH for DMA AFU. Denne DFH peker til neste DFH plassert ved offset 0x100 (DMA BBB DFH).
- Null DFH: Denne komponenten avslutter DFH-lenkelisten. Hvis du legger til flere DMA BBB-er til designet, sørg for at null DFH-baseadressen er plassert på slutten av DFH-lenkelisten.
- MA Basic Building Block (BBB): Denne blokken flytter data mellom verten og det lokale FPGA-minnet. Den får også tilgang til vertsminne for å få tilgang til deskriptorkjeder.
DMA BBB
DMA BBB-undersystemet overfører data fra kilde- til destinasjonsadresser ved å bruke Avalon-MM-transaksjoner. DMA-driveren kontrollerer DMA BBB ved å få tilgang til kontroll- og statusregisteret til de ulike komponentene inne i systemet. DMA-driveren kontrollerer også DMA BBB ved å bruke delt minne for å kommunisere overføringsbeskrivelser. DMA BBB får tilgang til data i FPGA-minne ved offset 0x0. DMA BBB får tilgang til data og beskrivelser i vertsminnet ved offset 0x1_0000_0000_0000.
DMA BBB Platform Designer blokkdiagram
Dette blokkskjemaet ekskluderer noen interne IP-kjerner for Pipeline Bridge.
Brukerveiledning for DMA Accelerator Functional Unit: Intel FPGA Programmerbart Acceleration Card D5005
DMA AFU Beskrivelse
Komponentene i DMA BBB Platform Designer implementerer følgende funksjoner:
- Farreach Bridge/Pipeline Bridge: En rørledningsbro med justerbar latens inkludert for å kontrollere topologi og forbedre design Fmax.
- MA BBB DFH: Dette er en enhetsfunksjonsoverskrift for DMA BBB. Denne DFH peker til neste DFH plassert ved offset 0x100 (Null DFH).
- Descriptor Frontend: Ansvarlig for å hente deskriptorer og overføre dem til ekspeditøren. Når en DMA-overføring fullføres, mottar frontend statusformasjon fra dispatcheren og overskriver beskrivelsen i vertsminnet.
- Sender: Denne blokken planlegger DMA-overføringsforespørsler til lese- og skrivemasteren.
- Les Master: Denne blokken er ansvarlig for å lese data fra verts- eller lokalt FPGA-minne og sende det som strømmedata til Write Master.
- Skriv Master: Denne blokken er ansvarlig for å motta strømmedata fra Read Master og skrive innholdet til verts- eller lokalt FPGA-minne.
Registrer kart- og adresserom
DMA AFU støtter to minne views: DMA view og verten view. DMA view støtter et 49-bits adresseområde. Den nedre halvdelen av DMA view kart til det lokale FPGA-minnet. Den øvre halvdelen av DMA view kart til vertsminne. Verten view inkluderer alle registre som er tilgjengelige gjennom MMIO-tilganger som DFH-tabellene, og kontroll-/statusregistrene til de forskjellige IP-kjernene som brukes inne i DMA AFU. MMIO-registrene i DMA BBB og AFU støtter 32- og 64-biters tilgang. DMA AFU støtter ikke 512-bit MMIO-tilgang. Tilgang til Dispatcher-registrene inne i DMA BBB må være 32 biter (Descriptor frontend implementerer 64-bits registre).
DMA AFU Registerkart
DMA AFU-registerkartet gir de absolutte adressene til alle lokasjonene i enheten. Disse registrene er i verten view fordi det bare er verten som har tilgang til dem.
DMA AFU Minnekart
Byteadresseforskyvninger | Navn | Spenn i byte | Beskrivelse |
0x0 | DMA AFU DFH | 0x40 | Enhetsfunksjonsoverskrift for DMA AFU. ID_L er satt til 0x9081f88b8f655caa og ID_H er satt til 0x331db30c988541ea. DMA AFU DFH har blitt parameterisert til å peke på offset 0x100 for å finne neste DFH (DMA BBB DFH). Du må ikke endre basisadressen til DMA AFU DFH siden den må være plassert på adressen 0x0 som definert av CCIP-spesifikasjonen. |
0x100 | DMA BBB | 0x100 | Spesifiserer DMA BBB-kontroll og statusregistergrensesnitt. Du kan se DMA BBB-registerkartet for mer informasjon. Innenfor DMA BBB ved offset 0 inkluderer DMA BBB sin egen DFH. Denne DFH er satt til å finne neste DFH ved offset 0x100 (NULL DFH). Hvis du legger til flere DMA BBB-er, må du plassere dem 0x100 fra hverandre og sikre at NULL DFH følger den siste DMA med 0x100. |
0x200 | NULL DFH | 0x40 | Avslutter DFH-lenkelisten. ID_L er satt til 0x90fe6aab12a0132f og ID_H er satt til 0xda1182b1b3444e23. NULL DFH har blitt parameterisert til å være den siste DFH i maskinvare. Av denne grunn er NULL DFH plassert på adressen 0x200. Hvis du legger til flere DMA BBB-er til systemet, må du øke NULL DFH-basisadressen tilsvarende slik at den forblir på den høyeste adressen. DMA-driveren og testapplikasjonen bruker ikke denne maskinvaren. |
Intel Corporation. Alle rettigheter forbeholdt. Intel, Intel-logoen og andre Intel-merker er varemerker for Intel Corporation eller dets datterselskaper. Intel garanterer ytelsen til sine FPGA- og halvlederprodukter i henhold til gjeldende spesifikasjoner i henhold til Intels standardgaranti, men forbeholder seg retten til å gjøre endringer i produkter og tjenester når som helst uten varsel. Intel påtar seg intet ansvar eller ansvar som oppstår som følge av applikasjonen eller bruken av informasjon, produkter eller tjenester som er beskrevet her, med mindre det er uttrykkelig skriftlig avtalt med Intel. Intel-kunder anbefales å få tak i den nyeste versjonen av enhetsspesifikasjonene før de stoler på publisert informasjon og før de bestiller produkter eller tjenester. *Andre navn og merker kan gjøres krav på som andres eiendom.
Registrer kart- og adresserom
DMA BBB minnekart
Følgende byteadresser er relative forskyvninger fra DMA BBB-basisadressen i DMA AFU-systemet (0x100).
Byteadresseforskyvninger | Navn | Spenn i byte | Beskrivelse |
0x0 | DMA BBB DFH | 0x40 | Enhetsfunksjonsoverskrift for DMA AFU. ID_L er satt til 0xa9149a35bace01ea og ID_H er satt til 0xef82def7f6ec40fc . DMA BBB DFH har blitt parameterisert til å peke til 0x100 for neste DFH-offset. Denne neste forskyvningen kan være en annen DMA BBB, en annen DFH (ikke inkludert i dette designet), eller NULL DFH. |
0x40 | Utsendte | 0x40 | Kontrollport for avsenderen. DMA-driveren bruker denne plasseringen til å kontrollere DMA eller spørre om statusen. |
0x80 | Beskrivelse Frontend | 0x40 | Deskriptorgrensesnittet er en tilpasset komponent som leser deskriptorer fra vertsminnet og overskriver beskrivelsen når DMA-overføringen er fullført. Driveren instruerer frontend hvor den første deskriptoren bor i vertsminnet, og deretter kommuniserer frontend-maskinvaren med driveren primært gjennom beskrivelser som er lagret i vertsminnet. |
DMA AFU adresserom
Verten kan få tilgang til registre som er oppført i tabell 4 på side 12 og tabell 5 på side 13. DMA BBB-delsystemet har tilgang til hele 49-biters adresserom. Den nedre halvdelen av denne adresseplassen inkluderer de lokale FPGA-minnene. Den øvre halvdelen av denne adresseplassen inkluderer 48-biters vertsadresseminne. Følgende figur viser verten og DMA views minne.
DMA AFU og vert Views av minne
Enhetsfunksjon Header Linked- List
DMA AFU-design example inneholder tre enhetsfunksjonsoverskrifter (DFH) som danner en koblet liste. Denne koblede listen tillater sampapplikasjonen for å identifisere DMA AFU samt driveren for å identifisere DMA BBB. DFH-listen inkluderer en NULL DFH på slutten. Inkluderingen av null DFH på slutten av den koblede listen lar deg legge til flere DMA BBB-er til designet ditt. Du trenger bare å flytte NULL DFH til en adresse etter de andre BBB-ene. Hver DMA BBB forventer at neste DFH skal være plassert 0x100 byte fra baseadressen til BBB. Følgende figur viser den lenkede listen for DMA AFU-designet, eksample.
Registrer kart- og adresserom
DMA AFU Device Feature Header (DFH) kjetting
Programvareprogrammeringsmodell
DMA AFU inkluderer en programvaredriver som du kan bruke i din egen vertsapplikasjon. fpga_dma.cpp og fpga_dma.h files plassert på følgende sted implementer programvaredriveren:$OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw Denne driveren støtter følgende funksjoner:
API | Beskrivelse |
fpgaCountDMAChannels | Skanner enhetens funksjonskjede for DMA BBB-er og teller alle tilgjengelige kanaler. |
fpgaDMAOpen | Åpner et håndtak til DMA-kanalen. |
fpgaDMAClukk | Lukker et håndtak til DMA-kanalen. |
fpgaDMATransferInit | Initialiserer et objekt som representerer DMA-overføringen. |
fpgaDMATransferReset | Tilbakestiller DMA-overføringsattributtobjektet til standardverdier. |
fpgaDMATransferDestroy | Ødelegger DMA-overføringsattributtobjektet. |
fpgaDMATransferSetSrc | Angir kildeadressen til overføringen. Denne adressen må være 64 byte justert. |
fpgaDMATransferSetDst | Angir destinasjonsadressen for overføringen. Denne adressen må være 64 byte justert. |
fpgaDMATransferSetLen | Angir overføringslengdene i byte. For ikke-pakkeoverføringer må du angi overføringslengden til et multiplum av 64 byte. For pakkeoverføringer er dette ikke et krav. |
fpgaDMATransferSetTransferType | Angir overføringstype. Juridiske verdier er:
• HOST_MM_TO_FPGA_MM = TX (vert til AFU) • FPGA_MM_TO_HOST_MM = RX (AFU til vert) |
fpgaDMATransferSetTransferCallback | Registrerer tilbakeringing for varsling om fullført asynkron overføring. Hvis du spesifiserer en tilbakeringing, returnerer fpgaDMATransfer umiddelbart (asynkron overføring).
Hvis du ikke spesifiserer tilbakeringing, returnerer fpgaDMATransfer etter at overføringen er fullført (synkron/blokkerende overføring). |
fpgaDMATransferSetLast | Indikerer den siste overføringen slik at DMA kan begynne å behandle de forhåndshentede overføringene. Standardverdien er 64 overføringer i pipeline før DMA begynner å jobbe med overføringene. |
fpgaDMATransfer | Utfører en DMA-overføring. |
For mer informasjon om API, input og output argumenter, se overskriften file lokalisert $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw/fpga_dma.hIntel Corporation. Alle rettigheter forbeholdt. Intel, Intel-logoen og andre Intel-merker er varemerker for Intel Corporation eller dets datterselskaper. Intel garanterer ytelsen til sine FPGA- og halvlederprodukter i henhold til gjeldende spesifikasjoner i henhold til Intels standardgaranti, men forbeholder seg retten til å gjøre endringer i produkter og tjenester når som helst uten varsel. Intel påtar seg intet ansvar eller ansvar som oppstår som følge av applikasjonen eller bruken av informasjon, produkter eller tjenester som er beskrevet her, med mindre det er uttrykkelig skriftlig avtalt med Intel. Intel-kunder anbefales å få tak i den nyeste versjonen av enhetsspesifikasjonene før de stoler på publisert informasjon og før de bestiller produkter eller tjenester. Andre navn og merker kan gjøres krav på som andres eiendom.
Programvareprogrammeringsmodell
For å vite mer om bruksmodellen for programvaredrivere, se README file ligger på $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/README.md
Kjører DMA AFU Example
Før du begynner:
- Du bør være kjent med eksenamples i Intel Acceleration Stack Quick Start Guide for Intel FPGA Programmable Acceleration Card D5005.
- Du må definere en miljøvariabel. Miljøvariabelen er avhengig av Intel Acceleration Stack-versjonen du bruker:
- For gjeldende versjon, sett miljøvariabelen til $OPAE_PLATFORM_ROOT
- Du må installere Intel Threading Building Blocks (TBB)-biblioteket siden DMA-driveren er avhengig av det.
- Du må også sette opp to 1 GB enorme sider for å kjøre sample søknaden. $ sudo sh -c “echo 2 > /sys/kernel/mm/hugepages/hugepages-1048576kB/ nr_hugepages”
Utfør følgende trinn for å laste ned DMA Accelerator Function (AF) bitstrøm, for å bygge applikasjonen og driveren, og for å kjøre designeks.ampde:
- Bytt til DMA-applikasjonen og driverkatalogen: cd $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw
- Bygg driveren og applikasjonen: lag
- Last ned DMA AFU-bitstrømmen: sudo fpgasupdate ../bin/dma_afu_unsigned.gbs
- Kjør vertsapplikasjonen for å skrive 100 MB i 1 MB deler fra vertsminnet til FPGA-enhetsminnet og les det tilbake: ./ fpga_dma_test -s 104857600 -p 1048576 -r mtom
Relatert informasjon
Intel Acceleration Stack Hurtigstartveiledning for Intel FPGA Programmerbart Acceleration Card D5005 Intel Corporation. Alle rettigheter forbeholdt. Intel, Intel-logoen og andre Intel-merker er varemerker for Intel Corporation eller dets datterselskaper. Intel garanterer ytelsen til sine FPGA- og halvlederprodukter i henhold til gjeldende spesifikasjoner i henhold til Intels standardgaranti, men forbeholder seg retten til å gjøre endringer i produkter og tjenester når som helst uten varsel. Intel påtar seg intet ansvar eller ansvar som oppstår som følge av applikasjonen eller bruken av informasjon, produkter eller tjenester som er beskrevet her, med mindre det er uttrykkelig skriftlig avtalt med Intel. Intel-kunder anbefales å få tak i den nyeste versjonen av enhetsspesifikasjonene før de stoler på publisert informasjon og før de bestiller produkter eller tjenester. *Andre navn og merker kan gjøres krav på som andres eiendom.
Kompilere DMA AFU Example
For å generere et syntesebyggemiljø for å kompilere en AF, bruk afu_synth_setup-kommandoen som følger:
- Bytt til DMA AFU-eneampkatalogen: $OPAE_PLATFORM_ROOT/hw/samples/dma_afu
- Generer design build-katalogen: afu_synth_setup –source hw/rtl/filelist.txt build_synth
- Fra synthesis build-katalogen generert av afu_synth_setup, skriv inn følgende kommandoer fra et terminalvindu for å generere en AF for målmaskinvareplattformen: cd build_synth run.sh Run.sh AF-genereringsskriptet lager AF-bildet med samme base filenavn som AFUs plattformkonfigurasjon file (.json) med et .gbs-suffiks på stedet:$OPAE_PLATFORM_ROOT/hw/samples/build_synth/dma_afu_s10.gbs Intel Corporation. Alle rettigheter forbeholdt. Intel, Intel-logoen og andre Intel-merker er varemerker for Intel Corporation eller dets datterselskaper. Intel garanterer ytelsen til sine FPGA- og halvlederprodukter i henhold til gjeldende spesifikasjoner i henhold til Intels standardgaranti, men forbeholder seg retten til å gjøre endringer i produkter og tjenester når som helst uten varsel. Intel påtar seg intet ansvar eller ansvar som oppstår som følge av applikasjonen eller bruken av informasjon, produkter eller tjenester som er beskrevet her, med mindre det er uttrykkelig skriftlig avtalt med Intel. Intel-kunder anbefales å få tak i den nyeste versjonen av enhetsspesifikasjonene før de stoler på publisert informasjon og før de bestiller produkter eller tjenester. *Andre navn og merker kan gjøres krav på som andres eiendom.
Simulering av AFU Example
Intel anbefaler at du refererer til Intel Accelerator Functional Unit (AFU) Simulation Environment (ASE) hurtigstartveiledning for din Intel FPGA PAC for å bli kjent med simulering av lignende eks.amples og for å sette opp miljøet ditt. Før du fortsetter gjennom de følgende trinnene, kontroller at miljøvariabelen OPAE_PLATFORM_ROOT er satt til OPAE SDK-installasjonskatalogen. Fullfør følgende trinn for å konfigurere maskinvaresimulatoren for DMA AFU:
- Bytt til DMA AFU-eneampkatalogen: cd $OPAE_PLATFORM_ROOT/hw/samples/dma_afu
- Opprett et ASE-miljø i en ny katalog og konfigurer det for å simulere en AFU: afu_sim_setup –source hw/rtl/filelist.txt build_ase_dir
- Bytt til ASE build-katalogen: cd build_ase_dir
- Bygg driveren og applikasjonen: lag
- Lag simulering: lag sim
Sample utgang fra maskinvaresimulatoren:
[SIM] ** OBS: FØR du kjører programvareapplikasjonen ** [SIM] Sett env(ASE_WORKDIR) i terminalen der applikasjonen skal kjøres (kopier og lim inn) => [SIM] $SHELL | Kjø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 andre $SHELL, kontakt din Linux-administrator [SIM] [SIM] Klar for simulering... [SIM] Trykk CTRL-C for å lukke simulatoren...Fullfør følgende trinn for å kompilere og kjøre DMA AFU-programvaren i simuleringsmiljøet:
- Åpne et nytt terminalvindu.
- Endre katalog til: cd $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw
Intel Corporation. Alle rettigheter forbeholdt. Intel, Intel-logoen og andre Intel-merker er varemerker for Intel Corporation eller dets datterselskaper. Intel garanterer ytelsen til sine FPGA- og halvlederprodukter i henhold til gjeldende spesifikasjoner i henhold til Intels standardgaranti, men forbeholder seg retten til å gjøre endringer i produkter og tjenester når som helst uten varsel. Intel påtar seg intet ansvar eller ansvar som oppstår som følge av applikasjonen eller bruken av informasjon, produkter eller tjenester som er beskrevet her, med mindre det er uttrykkelig skriftlig avtalt med Intel. Intel-kunder anbefales å få tak i den nyeste versjonen av enhetsspesifikasjonene før de stoler på publisert informasjon og før de bestiller produkter eller tjenester. *Andre navn og merker kan gjøres krav på som andres eiendom.
Simulering av AFU Example
- Kopier miljøoppsettstrengen (velg streng som passer for skallet ditt) fra trinnene ovenfor i maskinvaresimuleringen til terminalvinduet. Se følgende linjer i sample utgang fra maskinvaresimulatoren. [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 programvaren: $ make USE_ASE=1
- Kjør vertsapplikasjonen for å skrive 4 KB i 1 KB-deler fra vertsminnet tilbake til FPGA-enhetsminnet i loopback-modus: ./ fpga_dma_test -s 4096 -p 1024 -r mtom
Relatert informasjon
Intel Accelerator Functional Unit (AFU) Simulation Environment (ASE) Hurtigstartbrukerveiledning
Optimalisering for forbedret DMA-ytelse
Implementering av NUMA (ikke-uniform minnetilgang)-optimalisering i fpga_dma_test.cpp lar prosessoren få tilgang til sitt eget lokale minne raskere enn å få tilgang til ikke-lokalt minne (minne lokalt til en annen prosessor). En typisk NUMA-konfigurasjon er vist i diagrammet nedenfor. Den lokale tilgangen representerer tilgang fra en kjerne til minne lokalt til samme kjerne. Fjerntilgangen illustrerer banen som tas når en kjerne på node 0 får tilgang til minne som ligger i minne lokalt til node 1.
Typisk NUMA-konfigurasjon
Bruk følgende kode for å implementere NUMA-optimalisering i testapplikasjonen din:
// Sett opp riktig affinitet hvis du blir bedt om det hvis (cpu_affinity || memory_affinity) {usigned 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(rekvisitter, (uint8_t *) & dev);ON_ERR_GOTO(res, out_destroy_tok, “fpgaPropertiesGetDevice”) res = fpgaPropertiesGetFunction(rekvisitter, (uint8_t *) & func);ON_ERR_GO de // Finn enheten fra topologien hwloc_topology_t topology; hwloc_topology_init(&topologi); hwloc_topology_set_flags(topologi, HWLOC_TOPOLOGY_FLAG_IO_DEVICES); Intel Corporation. Alle rettigheter forbeholdt. Intel, Intel-logoen og andre Intel-merker er varemerker for Intel Corporation eller dets datterselskaper. Intel garanterer ytelsen til sine FPGA- og halvlederprodukter i henhold til gjeldende spesifikasjoner i henhold til Intels standardgaranti, men forbeholder seg retten til å gjøre endringer i alle produkter og tjenester når som helst uten varsel. Intel påtar seg intet ansvar eller ansvar som oppstår som følge av applikasjonen eller bruken av informasjon, produkter eller tjenester som er beskrevet her, med unntak av det som er uttrykkelig skriftlig avtalt av Intel. Intel-kunder anbefales å få tak i den nyeste versjonen av enhetsspesifikasjonene før de stoler på publisert informasjon og før de bestiller produkter eller tjenester. *Andre navn og merker kan gjøres krav på som andres eiendom.
Optimalisering for forbedret DMA-ytelse
hwloc_topology_load(topologi); hwloc_obj_t obj = hwloc_get_pcidev_by_busid(topologi, dom, buss, 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->nodesett); printf(“NODESETT 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_MEMBIND_MEMBINDHIND_WLOC_MEMBINDHINDWINDWIND); #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"); } }
Brukerveiledning for DMA Accelerator Functional Unit Arkiv
Intel Acceleration Stack-versjon | Brukerveiledning (PDF) |
2.0 | Brukerveiledning for DMA Accelerator Functional Unit (AFU). |
Dokumentrevisjonshistorikk for DMA Accelerator Functional Unit brukerveiledning
Dokumentversjon |
Intel Acceleration Stackversjon |
Endringer |
2020.08.03 |
2.0.1 (støttes med Intel
Quartus® Prime Pro Edition Edition 19.2) |
Korrigerte AF-bildet file navn i avsnitt Kompilere DMA AFU Example. |
2020.04.17 |
2.0.1 (støttes med Intel
Quartus Prime Pro Edition Edition 19.2) |
Rettet en uttalelse i Tiltenkt publikum del. |
2020.02.20 |
2.0.1 (støttes med Intel
Quartus Prime Pro Edition Edition 19.2) |
Rettet skrivefeil. |
2019.11.04 |
2.0.1 (støttes med Intel Quartus Prime Pro Edition Edition 19.2) |
• Byttet ut fpgaconf med fpgasupdate når du konfigurerte FPGA med prebuild AFU i seksjon Kjører DMA AFU Example.
• Lagt til undertekst Intel FPGA programmerbart akselerasjonskort D5005 til dokumenttittelen. • Lagt til miljøvariabel $OPAE_PLATFORM_ROOT. • Modifisert seksjon Programvareprogrammeringsmodell for mindre endringer. • Lagt til ny seksjon Kompilere DMA AFU Example. • Modifisert seksjon Optimalisering for forbedret DMA-ytelse for mindre endringer. |
2019.08.05 |
2.0 (støttes med Intel
Quartus Prime Pro Edition 18.1.2) |
Første utgivelse. |
Intel Corporation. Alle rettigheter forbeholdt. Intel, Intel-logoen og andre Intel-merker er varemerker for Intel Corporation eller dets datterselskaper. Intel garanterer ytelsen til sine FPGA- og halvlederprodukter i henhold til gjeldende spesifikasjoner i henhold til Intels standardgaranti, men forbeholder seg retten til å gjøre endringer i produkter og tjenester når som helst uten varsel. Intel påtar seg intet ansvar eller ansvar som oppstår som følge av applikasjonen eller bruken av informasjon, produkter eller tjenester som er beskrevet her, med mindre det er uttrykkelig skriftlig avtalt med Intel. Intel-kunder anbefales å få tak i den nyeste versjonen av enhetsspesifikasjonene før de stoler på publisert informasjon og før de bestiller produkter eller tjenester.
- Andre navn og merker kan gjøres krav på som andres eiendom.
Dokumenter / Ressurser
![]() |
Intel FPGA programmerbart akselerasjonskort D5005 [pdfBrukerhåndbok FPGA programmerbart akselerasjonskort, D5005, FPGA programmerbart akselerasjonskort D5005, funksjonell DMA-akselerator |