Intel-logo

Intel FPGA programmeerbare versnellingskaart D5005

Intel.-FPGA-programmeerbare acceleratiekaart-D5005-product

Over dit document

Dit document beschrijft de implementatie van de Direct Memory Access (DMA) Accelerator Functional Unit (AFU) en hoe het ontwerp kan worden gebouwd om op hardware of in simulatie te draaien.

Beoogd publiek

De beoogde doelgroep bestaat uit hardware- of softwareontwikkelaars die een Accelerator-functie (AF) nodig hebben om gegevens lokaal te bufferen in het geheugen dat is aangesloten op het Intel FPGA-apparaat.

Conventies

Documentconventies

Conventie Beschrijving
# Gaat vooraf aan een opdracht die aangeeft dat de opdracht als root moet worden ingevoerd.
$ Geeft aan dat een opdracht als gebruiker moet worden ingevoerd.
Dit lettertype Filenamen, opdrachten en trefwoorden worden in dit lettertype afgedrukt. In dit lettertype worden lange opdrachtregels afgedrukt. Hoewel lange opdrachtregels naar de volgende regel kunnen doorlopen, maakt de return geen deel uit van de opdracht; druk niet op enter.
Geeft aan dat de tijdelijke tekst die tussen de punthaken verschijnt, moet worden vervangen door een geschikte waarde. Voer de hoekbeugels niet in.

Acroniemen

Acroniemen

Acroniemen Uitbreiding Beschrijving
AF Acceleratiefunctie Gecompileerde Hardware Accelerator-image geïmplementeerd in FPGA-logica die een applicatie versnelt.
AFU Versneller Functionele Eenheid Hardware Accelerator geïmplementeerd in FPGA-logica die een rekenbewerking voor een applicatie van de CPU ontlast om de prestaties te verbeteren.
API Toepassingsprogrammeerinterface Een set subroutinedefinities, protocollen en hulpmiddelen voor het bouwen van softwareapplicaties.
CCI-P Kerncache-interface CCI-P is de standaardinterface die AFU's gebruiken om met de host te communiceren.
DFH Koptekst apparaatfunctie Creëert een gekoppelde lijst met featureheaders om een ​​uitbreidbare manier te bieden om features toe te voegen.
voortgezet…

Intel Corporation. Alle rechten voorbehouden. Intel, het Intel-logo en andere Intel-merken zijn handelsmerken van Intel Corporation of haar dochterondernemingen. Intel garandeert de prestaties van zijn FPGA- en halfgeleiderproducten volgens de huidige specificaties in overeenstemming met de standaardgarantie van Intel, maar behoudt zich het recht voor om op elk moment zonder voorafgaande kennisgeving wijzigingen aan te brengen in producten en diensten. Intel aanvaardt geen verantwoordelijkheid of aansprakelijkheid die voortvloeit uit de toepassing of het gebruik van informatie, producten of diensten die hierin worden beschreven, behalve zoals uitdrukkelijk schriftelijk overeengekomen door Intel. Intel-klanten wordt geadviseerd om de nieuwste versie van apparaatspecificaties te verkrijgen voordat ze vertrouwen op gepubliceerde informatie en voordat ze producten of diensten bestellen. *Andere namen en merken kunnen worden geclaimd als eigendom van anderen.

Acroniemen Uitbreiding Beschrijving
FIM FPGA-interfacebeheer De FPGA-hardware met de FPGA Interface Unit (FIU) en externe interfaces voor geheugen, netwerken, enz.

De Accelerator-functie (AF) communiceert tijdens runtime met de FIM.

FIU FPGA-interface-eenheid FIU is een platforminterfacelaag die fungeert als brug tussen platforminterfaces zoals PCIe*, UPI en AFU-zijde-interfaces zoals CCI-P.
MPF Geheugeneigenschappen Fabriek De MPF is een Basic Building Block (BBB) ​​die AFU's kunnen gebruiken om CCI-P-verkeersvormende operaties te bieden voor transacties met de FIU.

Acceleratie verklarende woordenlijst

Acceleration Stack voor Intel® Xeon® CPU met FPGA's Woordenlijst

Termijn Afkorting Beschrijving
Intel® Acceleration Stack voor Intel Xeon® CPU met FPGA's Versnellingsstapel Een verzameling software, firmware en tools die prestatie-geoptimaliseerde connectiviteit biedt tussen een Intel FPGA en een Intel Xeon-processor.
Intel FPGA programmeerbare acceleratiekaart Intel FPGA-PAC PCIe FPGA-acceleratorkaart.

Bevat een FPGA Interface Manager (FIM) die via de PCIe-bus wordt gekoppeld aan een Intel Xeon-processor.

  • DMA Accelerator Functional Unit Gebruikershandleiding: Intel FPGA programmeerbare acceleratiekaart D5005

DMA AFU-beschrijving

Invoering

De Direct Memory Access (DMA) AFU example laat zien hoe u geheugenoverdrachten tussen de hostprocessor en de FPGA beheert. U kunt de DMA AFU in uw ontwerp integreren om gegevens te verplaatsen tussen het hostgeheugen en het lokale FPGA-geheugen. De DMA AFU bestaat uit de volgende submodules:

  • Geheugeneigenschappen Fabriek (MPF) Basisbouwsteen (BBB)
  • Core Cache Interface (CCI-P) naar de Avalon® Memory Mapped (Avalon-MM) adapter
  • DMA-testsysteem dat de DMA BBB bevat

Deze submodules worden hieronder in meer detail beschreven in het onderwerp DMA AFU Hardware Components.

Gerelateerde informatie

  • De DMA AFU-hardwarecomponenten op pagina 6
  • Specificaties Avalon-interface

Voor meer informatie over het Avalon-MM-protocol, inclusief timingdiagrammen voor lees- en schrijftransacties.

Het DMA AFU-softwarepakket

De Intel Acceleration Stack voor Intel Xeon CPU met FPGA's-pakket file (*.tar.gz), inclusief de DMA AFU example. deze example biedt een stuurprogramma voor de gebruikersruimte. De hosttoepassing gebruikt dit stuurprogramma zodat de DMA gegevens verplaatst tussen host- en FPGA-geheugen. De binaire hardwarebestanden, bronnen en het stuurprogramma voor de gebruikersruimte zijn beschikbaar in de volgende map: $OPAE_PLATFORM_ROOT/hw/samples/dma_afu . Voordat u met de DMA AFU gaat experimenteren, moet u het softwarepakket Open Programmable Acceleration Engine (OPAE) installeren. Raadpleeg Het OPAE-softwarepakket installeren in de Intel Acceleration Stack snelstartgids voor Intel FPGA Programmable Acceleration Card D5005 voor installatie-instructies. Deze snelstartgids bevat ook basisinformatie over de Open Programmable Acceleration Engine (OPAE) en het configureren van een AFU. Na installatie van het Open Programmable Acceleration Engine (OPAE)-softwarepakket, zoalsample host-applicatie en het DMA AFU-stuurprogramma voor de gebruikersruimte zijn beschikbaar in de volgende map: $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw. Om de s uit te voerenample host-applicatie, fpga_dma_test op uw Intel FPGA PAC D5005-hardware, raadpleeg de stappen in sectie De DMA AFU Ex uitvoerenample. Intel Corporation. Alle rechten voorbehouden. Intel, het Intel-logo en andere Intel-merken zijn handelsmerken van Intel Corporation of haar dochterondernemingen. Intel garandeert de prestaties van zijn FPGA- en halfgeleiderproducten volgens de huidige specificaties in overeenstemming met de standaardgarantie van Intel, maar behoudt zich het recht voor om op elk moment zonder voorafgaande kennisgeving wijzigingen aan te brengen in producten en diensten. Intel aanvaardt geen verantwoordelijkheid of aansprakelijkheid die voortvloeit uit de toepassing of het gebruik van enige informatie, product of dienst die hierin wordt beschreven, behalve zoals uitdrukkelijk schriftelijk overeengekomen door Intel. Intel-klanten wordt geadviseerd de nieuwste versie van de apparaatspecificaties te verkrijgen voordat ze vertrouwen op gepubliceerde informatie en voordat ze producten of diensten bestellen. *Andere namen en merken kunnen worden geclaimd als eigendom van anderen.

Gerelateerde informatie

  • Intel Acceleration Stack snelstartgids voor Intel FPGA programmeerbare acceleratiekaart D5005
  • Het OPAE-softwarepakket installeren

De DMA AFU-hardwarecomponenten

De DMA AFU werkt samen met de FPGA Interface Unit (FIU) en FPGA-geheugen. Raadpleeg het FPGA Interface Manager-gegevensblad voor Intel FPGA Programmable Acceleration Card D5005 voor gedetailleerde specificaties van het FPGA-geheugen. De momenteel beschikbare hardware dicteert deze geheugenconfiguratie. Toekomstige hardware ondersteunt mogelijk verschillende geheugenconfiguraties. U kunt de DMA AFU gebruiken om gegevens te kopiëren tussen de volgende bron- en bestemmingslocaties:

  • Het host-naar-apparaat-FPGA-geheugen
  • Apparaat FPGA-geheugen naar de host

Een Platform Designer-systeem, $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/hw/rtl/TEST_dma/ /dma_test_system.qsys implementeert het grootste deel van de DMA

  • AFU. Een deel van de DMA AFU die in het Platform Designer-systeem is geïmplementeerd, kunt u hieronder vinden

locatie:$OPAE_PLATFORM_ROOT/hw/samples/dma_afu/hw/rtl/TEST_dma/ U vindt de DMA BBB op de volgende locatie:

  • $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/hw/rtl/dma_bbb

DMA Accelerator Functional Unit Gebruikershandleiding: Intel FPGA programmeerbare acceleratiekaart D5005

DMA AFU hardwareblokdiagram

Intel.-FPGA-programmeerbare acceleratiekaart-D5005-fig-1

De DMA AFU bevat de volgende interne modules voor interface met de FPGA Interface Unit (FIU):

  • Memory-Mapped IO (MMIO) Decoder Logic: detecteert MMIO-lees- en schrijftransacties en scheidt deze van het CCI-P RX-kanaal 0 waar ze vandaan komen. Dit zorgt ervoor dat MMIO-verkeer nooit de MPF BBB bereikt en wordt afgehandeld door een onafhankelijk MMIO-opdrachtkanaal.
  • Memory Properties Factory (MPF): Deze module zorgt ervoor dat leesreacties van de DMA terugkeren in de volgorde waarin ze zijn uitgegeven. Het Avalon-MM-protocol vereist dat leesreacties in de juiste volgorde terugkeren.
  • CCI-P naar Avalon-MM-adapter: Deze module vertaalt als volgt tussen CCI-P- en Avalon-MM-transacties:
  • CCI-P naar Avalon-MMIO-adapter: dit pad vertaalt CCI-P MMIO-transacties naar Avalon-MM-transacties.
  • Avalon naar CCI-P hostadapter: deze paden creëren afzonderlijke alleen-lezen- en alleen-schrijven-paden voor de DMA om toegang te krijgen tot het hostgeheugen.
  • DMA-testsysteem: Deze module dient als omhulsel rond de DMA BBB om de DMA-masters bloot te stellen aan de rest van de logica in de AFU. Het biedt de interface tussen de DMA BBB en de CCI-P naar Avalon-adapter. Het biedt ook de interface tussen de DMA BBB en de lokale FPGA SDRAM-banken.

Gerelateerde informatie
FPGA Interface Manager-gegevensblad voor Intel FPGA programmeerbare acceleratiekaart D5005

DMA-testsysteem

Het DMA-testsysteem verbindt de DMA BBB met de rest van het FPGA-ontwerp, inclusief CCI-P-aanpassing en het lokale FPGA-geheugen.

DMA-testsysteemblokdiagram
Dit blokdiagram toont de interne werking van het DMA-testsysteem. Het DMA-testsysteem wordt weergegeven als een monolithisch blok in Figuur 1 op pagina 7.Intel.-FPGA-programmeerbare acceleratiekaart-D5005-fig-2

Het DMA-testsysteem omvat de volgende interne modules:

  • Far Reach Bridge/Pipeline Bridge: Een pijpleidingbrug met instelbare latentie om de topologie te controleren en het ontwerp Fmax te verbeteren.
  • DMA AFU Device Feature Header (DFH): Dit is een DFH voor de DMA AFU. Deze DFH wijst naar de volgende DFH die zich op offset 0x100 bevindt (DMA BBB DFH).
  • Null DFH: deze component beëindigt de gekoppelde DFH-lijst. Als u meer DMA BBB's aan het ontwerp toevoegt, zorg er dan voor dat het nul-DFH-basisadres zich aan het einde van de gekoppelde DFH-lijst bevindt.
  • MA Basic Building Block (BBB): Dit blok verplaatst gegevens tussen de host en het lokale FPGA-geheugen. Het heeft ook toegang tot het hostgeheugen om toegang te krijgen tot descriptorketens.

DMA BBB

Het DMA BBB-subsysteem draagt ​​gegevens over van bron- naar bestemmingsadressen met behulp van Avalon-MM-transacties. Het DMA-stuurprogramma bestuurt de DMA BBB door toegang te krijgen tot het besturings- en statusregister van de verschillende componenten in het systeem. Het DMA-stuurprogramma bestuurt ook de DMA BBB door gedeeld geheugen te gebruiken om overdrachtsdescriptors te communiceren. De DMA BBB heeft toegang tot gegevens in het FPGA-geheugen met een offset van 0x0. De DMA BBB heeft toegang tot gegevens en descriptors in het hostgeheugen op offset 0x1_0000_0000_0000.

DMA BBB Platform Designer-blokdiagram
Dit blokdiagram sluit enkele interne Pipeline Bridge IP-kernen uit.Intel.-FPGA-programmeerbare acceleratiekaart-D5005-fig-6

DMA Accelerator Functional Unit Gebruikershandleiding: Intel FPGA programmeerbare acceleratiekaart D5005

DMA AFU-beschrijving

De componenten in de DMA BBB Platform Designer implementeren de volgende functies:

  • Far Reach-brug / pijpleidingbrug: Een pijpleidingbrug met instelbare latentie is inbegrepen om de topologie te controleren en het ontwerp Fmax te verbeteren.
  • MA BBB DFH: Dit is een apparaatfunctieheader voor de DMA BBB. Deze DFH wijst naar de volgende DFH die zich op offset 0x100 bevindt (null DFH).
  • Beschrijving frontend: Verantwoordelijk voor het ophalen van descriptoren en het doorgeven ervan aan de Dispatcher. Wanneer een DMA-overdracht is voltooid, ontvangt de frontend statusformatie van de Dispatcher en overschrijft de descriptor in het hostgeheugen.
  • Verzender: Dit blok plant DMA-overdrachtsverzoeken naar de Read and Write Master.
  • Lees meester: Dit blok is verantwoordelijk voor het lezen van gegevens uit het host- of lokale FPGA-geheugen en het verzenden ervan als streaminggegevens naar Write Master.
  • Schrijf meester: Dit blok is verantwoordelijk voor het ontvangen van streaminggegevens van de Read Master en het schrijven van de inhoud naar het host- of lokale FPGA-geheugen.

Registreer kaart- en adresruimten

De DMA AFU ondersteunt twee geheugens views: De DMA view en de gastheer view. De DMA view ondersteunt een 49-bits adresruimte. De onderste helft van de DMA view wordt toegewezen aan het lokale FPGA-geheugen. De bovenste helft van de DMA view kaarten naar het hostgeheugen. De gastheer view omvat alle registers die toegankelijk zijn via MMIO-toegangen, zoals de DFH-tabellen, en de controle-/statusregisters van de verschillende IP-kernen die in de DMA AFU worden gebruikt. De MMIO-registers in de DMA BBB en AFU ondersteunen 32- en 64-bit-toegang. De DMA AFU ondersteunt geen 512-bit MMIO-toegang. Toegang tot de Dispatcher-registers binnen de DMA BBB moet 32 ​​bits zijn (Descriptor frontend implementeert 64-bits registers).

DMA AFU-registerkaart

De DMA AFU-registerkaart biedt de absolute adressen van alle locaties binnen de eenheid. Deze registers bevinden zich in de host view omdat alleen de host er toegang toe heeft.

DMA AFU-geheugenkaart

Byte-adres-offsets Naam Omvang in bytes Beschrijving
0x0 DMA AFU DFH 0x40 Apparaatfunctieheader voor de DMA AFU. De ID_L is ingesteld op 0x9081f88b8f655caa en ID_H is ingesteld op 0x331db30c988541ea. De DMA AFU DFH is zo geparametriseerd dat deze naar een offset van 0x100 wijst om de volgende DFH (DMA BBB DFH) te vinden. U mag het basisadres van de DMA AFU DFH niet wijzigen, aangezien dit zich op adres 0x0 moet bevinden, zoals gedefinieerd door de CCIP-specificatie.
0x100 DMA BBB 0x100 Specificeert DMA BBB-besturing en statusregisterinterface. Voor meer informatie kunt u de DMA BBB-registerkaart raadplegen. Binnen de DMA BBB bij offset 0 bevat de DMA BBB zijn eigen DFH. Deze DFH is ingesteld om de volgende DFH te vinden met een offset van 0x100 (NULL DFH). Als u meer DMA BBB's toevoegt, plaats ze dan 0x100 uit elkaar en zorg ervoor dat de NULL DFH de laatste DMA volgt met 0x100.
0x200 NULL DFH 0x40 Beëindigt de gekoppelde DFH-lijst. De ID_L is ingesteld op 0x90fe6aab12a0132f en ID_H is ingesteld op 0xda1182b1b3444e23. De NULL DFH is geparametriseerd als de laatste DFH in hardware. Om deze reden bevindt de NULL DFH zich op adres 0x200. Als u extra DMA BBB's aan het systeem toevoegt, moet u het NULL DFH-basisadres dienovereenkomstig verhogen, zodat dit op het hoogste adres blijft. Het DMA-stuurprogramma en de testapplicatie maken geen gebruik van deze hardware.

Intel Corporation. Alle rechten voorbehouden. Intel, het Intel-logo en andere Intel-merken zijn handelsmerken van Intel Corporation of haar dochterondernemingen. Intel garandeert de prestaties van zijn FPGA- en halfgeleiderproducten volgens de huidige specificaties in overeenstemming met de standaardgarantie van Intel, maar behoudt zich het recht voor om op elk moment zonder voorafgaande kennisgeving wijzigingen aan te brengen in producten en diensten. Intel aanvaardt geen verantwoordelijkheid of aansprakelijkheid die voortvloeit uit de toepassing of het gebruik van informatie, producten of diensten die hierin worden beschreven, behalve zoals uitdrukkelijk schriftelijk overeengekomen door Intel. Intel-klanten wordt geadviseerd om de nieuwste versie van apparaatspecificaties te verkrijgen voordat ze vertrouwen op gepubliceerde informatie en voordat ze producten of diensten bestellen. *Andere namen en merken kunnen worden geclaimd als eigendom van anderen.

Registreer kaart- en adresruimten

DMA BBB-geheugenkaart
De volgende byteadressen zijn relatieve offsets ten opzichte van het DMA BBB-basisadres in het DMA AFU-systeem (0x100).

Byte-adres-offsets Naam Omvang in bytes Beschrijving
0x0 DMA BBB DFH 0x40 Apparaatfunctieheader voor de DMA AFU. De ID_L is ingesteld op 0xa9149a35bace01ea en ID_H is ingesteld op 0xef82def7f6ec40fc . De DMA BBB DFH is zo ingesteld dat deze naar 0x100 wijst voor de volgende DFH-offset. Deze volgende offset kan een andere DMA BBB, een andere DFH (niet inbegrepen in dit ontwerp) of de NULL DFH zijn.
0x40 Verzender 0x40 Controlepoort voor de coördinator. Het DMA-stuurprogramma gebruikt deze locatie om de DMA te besturen of de status ervan op te vragen.
0x80 Beschrijving frontend 0x40 De descriptor-frontend is een aangepaste component die descriptors uit het hostgeheugen leest en de descriptor overschrijft wanneer de DMA-overdracht is voltooid. De driver instrueert de frontend waar de eerste descriptor zich in het hostgeheugen bevindt en vervolgens communiceert de frontendhardware met de driver, voornamelijk via descriptors die in het hostgeheugen zijn opgeslagen.

DMA AFU-adresruimte

De host heeft toegang tot de registers vermeld in Tabel 4 op pagina 12 en Tabel 5 op pagina 13. Het DMA BBB-subsysteem heeft toegang tot de volledige 49-bits adresruimte. De onderste helft van deze adresruimte omvat de lokale FPGA-geheugens. De bovenste helft van deze adresruimte omvat het 48-bits hostadresgeheugen. De volgende afbeelding toont de host en DMA views geheugen.

De DMA AFU en gastheer Views van geheugen

Intel.-FPGA-programmeerbare acceleratiekaart-D5005-fig-3

Apparaatfunctiekop Gekoppelde lijst

Het DMA AFU-ontwerp example bevat drie device feature headers (DFH) die een gekoppelde lijst vormen. Met deze gekoppelde lijst kunnen de sample-applicatie om de DMA AFU te identificeren, evenals de driver om de DMA BBB te identificeren. De DFH-lijst bevat aan het einde een NULL DFH. Door de nul-DFH aan het einde van de gekoppelde lijst op te nemen, kunt u meer DMA BBB's aan uw ontwerp toevoegen. U hoeft alleen maar de NULL DFH naar een adres na de andere BBB's te verplaatsen. Elke DMA BBB verwacht dat de volgende DFH zich op 0x100 bytes van het basisadres van de BBB bevindt. De volgende afbeelding toont de gekoppelde lijst voor het DMA AFU-ontwerp exampik.

Registreer kaart- en adresruimten

DMA AFU Device Feature Header (DFH)-koppeling

Intel.-FPGA-programmeerbare acceleratiekaart-D5005-fig-4

Softwareprogrammeermodel

De DMA AFU bevat een softwarestuurprogramma dat u in uw eigen hosttoepassing kunt gebruiken. De fpga_dma.cpp en fpga_dma.h files op de volgende locatie implementeert het softwarestuurprogramma:$OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw Dit stuurprogramma ondersteunt de volgende functies:

API Beschrijving
fpgaCountDMA-kanalen Scant de functieketen van het apparaat op DMA BBB's en telt alle beschikbare kanalen.
fpgaDMAOpen Opent een handvat naar het DMA-kanaal.
fpgaDMASluit Sluit een hendel naar het DMA-kanaal.
fpgaDMATransferInit Initialiseert een object dat de DMA-overdracht vertegenwoordigt.
fpgaDMATransferReset Zet het DMA-overdrachtsattribuutobject terug naar de standaardwaarden.
fpgaDMATransferVernietigen Vernietigt het DMA-overdrachtskenmerkobject.
fpgaDMATransferSetSrc Stelt het bronadres van de overdracht in. Dit adres moet 64 bytes uitgelijnd zijn.
fpgaDMATransferSetDst Stelt het bestemmingsadres van de overdracht in. Dit adres moet 64 bytes uitgelijnd zijn.
fpgaDMATransferSetLen Stelt de overdrachtslengte in bytes in. Voor niet-pakketoverdrachten moet u de overdrachtlengte instellen op een veelvoud van 64 bytes. Voor pakketoverdrachten is dit geen vereiste.
fpgaDMATransferSetTransferType Stelt het overdrachtstype in. Juridische waarden zijn:

• HOST_MM_TO_FPGA_MM = TX (host naar AFU)

• FPGA_MM_TO_HOST_MM = RX (AFU naar host)

fpgaDMATransferSetTransferCallback Registreert terugbellen voor melding bij voltooiing van asynchrone overdracht. Als u een terugbelactie opgeeft, keert fpgaDMATransfer onmiddellijk terug (asynchrone overdracht).

Als u geen terugbelactie opgeeft, keert fpgaDMATransfer terug nadat de overdracht is voltooid (synchrone/blokkerende overdracht).

fpgaDMATransferSetLast Geeft de laatste overdracht aan, zodat de DMA kan beginnen met het verwerken van de vooraf opgehaalde overdrachten. De standaardwaarde is 64 overdrachten in de pijplijn voordat de DMA aan de overdrachten begint te werken.
fpgaDMAOverdracht Voert een DMA-overdracht uit.

Raadpleeg de koptekst voor meer informatie over de API-, invoer- en uitvoerargumenten file $OPAE_PLATFORM_ROOT/hw/s gevondenamples/dma_afu/sw/fpga_dma.hIntel Corporation. Alle rechten voorbehouden. Intel, het Intel-logo en andere Intel-merken zijn handelsmerken van Intel Corporation of haar dochterondernemingen. Intel garandeert de prestaties van zijn FPGA- en halfgeleiderproducten volgens de huidige specificaties in overeenstemming met de standaardgarantie van Intel, maar behoudt zich het recht voor om op elk moment en zonder voorafgaande kennisgeving wijzigingen aan te brengen in producten en diensten. Intel aanvaardt geen verantwoordelijkheid of aansprakelijkheid die voortvloeit uit de toepassing of het gebruik van enige informatie, product of dienst die hierin wordt beschreven, behalve zoals uitdrukkelijk schriftelijk overeengekomen door Intel. Intel-klanten wordt geadviseerd de nieuwste versie van de apparaatspecificaties te verkrijgen voordat ze vertrouwen op gepubliceerde informatie en voordat ze producten of diensten bestellen. Andere namen en merken kunnen worden geclaimd als eigendom van anderen.

Softwareprogrammeermodel

Raadpleeg de README voor meer informatie over het gebruiksmodel van softwaredrivers file gelegen op $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/README.md

DMA AFU uitvoeren Example

Voordat u begint:

  • Je zou bekend moeten zijn met de exampbestanden in de Intel Acceleration Stack snelstartgids voor Intel FPGA Programmable Acceleration Card D5005.
  • U moet een omgevingsvariabele definiëren. De omgevingsvariabele is afhankelijk van de Intel Acceleration Stack-versie die u gebruikt:
    • Voor de huidige versie stelt u de omgevingsvariabele in op $OPAE_PLATFORM_ROOT
  • U moet de Intel Threading Building Blocks (TBB)-bibliotheek installeren, omdat het DMA-stuurprogramma hiervan afhankelijk is.
  • U moet ook twee enorme pagina's van 1 GB instellen om de s uit te voerenample toepassing. $ sudo sh -c “echo 2 > /sys/kernel/mm/hugepages/hugepages-1048576kB/ nr_hugepages”

Voer de volgende stappen uit om de DMA Accelerator Function (AF)-bitstream te downloaden, de applicatie en het stuurprogramma te bouwen en het ontwerp uit te voerenampon:

  1. Ga naar de DMA-applicatie en driverdirectory: cd $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw
  2. Bouw de driver en applicatie: make
  3. Download de DMA AFU-bitstream: sudo fpgasupdate ../bin/dma_afu_unsigned.gbs
  4. Voer de hosttoepassing uit om 100 MB in porties van 1 MB van het hostgeheugen naar het FPGA-apparaatgeheugen te schrijven en deze terug te lezen: ./ fpga_dma_test -s 104857600 -p 1048576 -r mtom

Gerelateerde informatie
Intel Acceleration Stack snelstartgids voor Intel FPGA programmeerbare acceleratiekaart D5005 Intel Corporation. Alle rechten voorbehouden. Intel, het Intel-logo en andere Intel-merken zijn handelsmerken van Intel Corporation of haar dochterondernemingen. Intel garandeert de prestaties van zijn FPGA- en halfgeleiderproducten volgens de huidige specificaties in overeenstemming met de standaardgarantie van Intel, maar behoudt zich het recht voor om op elk moment en zonder voorafgaande kennisgeving wijzigingen aan te brengen in producten en services. Intel aanvaardt geen verantwoordelijkheid of aansprakelijkheid die voortvloeit uit de toepassing of het gebruik van enige informatie, product of dienst die hierin wordt beschreven, behalve zoals uitdrukkelijk schriftelijk overeengekomen door Intel. Intel-klanten wordt geadviseerd de nieuwste versie van de apparaatspecificaties te verkrijgen voordat ze vertrouwen op gepubliceerde informatie en voordat ze producten of diensten bestellen. *Andere namen en merken kunnen worden geclaimd als eigendom van anderen.

Het samenstellen van de DMA AFU Example

Om een ​​synthesebouwomgeving te genereren om een ​​AF te compileren, gebruikt u de opdracht afu_synth_setup als volgt:

  1. Wijziging in de DMA AFU'sampbestandsmap: $OPAE_PLATFORM_ROOT/hw/samples/dma_afu
  2. Genereer de ontwerpbuildmap: afu_synth_setup –source hw/rtl/filelijst.txt build_synth
  3. Voer vanuit de synthese-build-directory gegenereerd door afu_synth_setup de volgende opdrachten in vanuit een terminalvenster om een ​​AF te genereren voor het doelhardwareplatform: cd build_synth run.sh Het run.sh AF-generatiescript maakt de AF-image met dezelfde basis filenaam als de platformconfiguratie van de AFU file (.json) met een .gbs-achtervoegsel op de locatie:$OPAE_PLATFORM_ROOT/hw/samples/build_synth/dma_afu_s10.gbs Intel Corporation. Alle rechten voorbehouden. Intel, het Intel-logo en andere Intel-merken zijn handelsmerken van Intel Corporation of haar dochterondernemingen. Intel garandeert de prestaties van zijn FPGA- en halfgeleiderproducten volgens de huidige specificaties in overeenstemming met de standaardgarantie van Intel, maar behoudt zich het recht voor om op elk moment zonder voorafgaande kennisgeving wijzigingen aan te brengen in producten en diensten. Intel aanvaardt geen verantwoordelijkheid of aansprakelijkheid die voortvloeit uit de toepassing of het gebruik van enige informatie, product of dienst die hierin wordt beschreven, behalve zoals uitdrukkelijk schriftelijk overeengekomen door Intel. Intel-klanten wordt geadviseerd de nieuwste versie van de apparaatspecificaties te verkrijgen voordat ze vertrouwen op gepubliceerde informatie en voordat ze producten of diensten bestellen. *Andere namen en merken kunnen worden geclaimd als eigendom van anderen.

Simulatie van de AFU Example

Intel raadt u aan de Intel Accelerator Functional Unit (AFU) Simulation Environment (ASE) snelstartgids voor uw Intel FPGA PAC te raadplegen, zodat u bekend raakt met het simuleren van soortgelijke exampbestanden en om uw omgeving in te stellen. Voordat u doorgaat met de volgende stappen, controleert u of de omgevingsvariabele OPAE_PLATFORM_ROOT is ingesteld op de OPAE SDK-installatiemap. Voer de volgende stappen uit om de hardwaresimulator voor de DMA AFU in te stellen:

  1. Wijziging in de DMA AFU'sampbestandsmap: cd $OPAE_PLATFORM_ROOT/hw/samples/dma_afu
  2. Maak een ASE-omgeving in een nieuwe map en configureer deze voor het simuleren van een AFU: afu_sim_setup –source hw/rtl/filelist.txt build_ase_dir
  3. Ga naar de ASE-buildmap: cd build_ase_dir
  4. Bouw de driver en applicatie: make
  5. Simulatie maken: sim maken

Sampbestanduitvoer van de hardwaresimulator:

[SIM] ** LET OP: VOORDAT u de softwareapplicatie draait ** [SIM] Stel env(ASE_WORKDIR) in de terminal in waar de applicatie zal draaien (kopiëren en plakken) => [SIM] $SHELL | Uitvoeren:[SIM] ———+————————————————— [SIM] bash/zsh | exporteer 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] Voor andere $SHELL, raadpleeg uw Linux-beheerder [SIM] [SIM] Klaar voor simulatie… [SIM] Druk op CTRL-C om de simulator te sluiten…

Voer de volgende stappen uit om de DMA AFU-software te compileren en uit te voeren in de simulatieomgeving:

  1. Open een nieuw terminalvenster.
  2. Wijzig de map naar: cd $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw

Intel Corporation. Alle rechten voorbehouden. Intel, het Intel-logo en andere Intel-merken zijn handelsmerken van Intel Corporation of haar dochterondernemingen. Intel garandeert de prestaties van zijn FPGA- en halfgeleiderproducten volgens de huidige specificaties in overeenstemming met de standaardgarantie van Intel, maar behoudt zich het recht voor om op elk moment zonder voorafgaande kennisgeving wijzigingen aan te brengen in producten en diensten. Intel aanvaardt geen verantwoordelijkheid of aansprakelijkheid die voortvloeit uit de toepassing of het gebruik van informatie, producten of diensten die hierin worden beschreven, behalve zoals uitdrukkelijk schriftelijk overeengekomen door Intel. Intel-klanten wordt geadviseerd om de nieuwste versie van apparaatspecificaties te verkrijgen voordat ze vertrouwen op gepubliceerde informatie en voordat ze producten of diensten bestellen. *Andere namen en merken kunnen worden geclaimd als eigendom van anderen.

Simulatie van de AFU Example

  1. Kopieer de omgevingssetupstring (kies de string die geschikt is voor uw shell) van de bovenstaande stappen in de hardwaresimulatie naar het terminalvenster. Zie de volgende regels in de sampbestanduitvoer van de hardwaresimulator. [SIM] bash/zsh | exporteer 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. Compileer de software: $ make USE_ASE=1
  3. Voer de hosttoepassing uit om 4 KB in porties van 1 KB uit het hostgeheugen terug te schrijven naar het FPGA-apparaatgeheugen in de loopback-modus: ./ fpga_dma_test -s 4096 -p 1024 -r mtom

Gerelateerde informatie
Intel Accelerator Functional Unit (AFU) Simulation Environment (ASE) Snelstartgids

Optimalisatie voor verbeterde DMA-prestaties

Implementatie van NUMA-optimalisatie (niet-uniforme geheugentoegang) in fpga_dma_test.cpp zorgt ervoor dat de processor sneller toegang krijgt tot zijn eigen lokale geheugen dan tot niet-lokaal geheugen (geheugen lokaal voor een andere processor). Een typische NUMA-configuratie wordt weergegeven in het onderstaande diagram. De lokale toegang vertegenwoordigt toegang van een kern tot geheugen lokaal tot dezelfde kern. De externe toegang illustreert het pad dat wordt afgelegd wanneer een kern op knooppunt 0 toegang krijgt tot geheugen dat zich in het lokale geheugen van knooppunt 1 bevindt.

Typische NUMA-configuratie

Intel.-FPGA-programmeerbare acceleratiekaart-D5005-fig-5

Gebruik de volgende code om NUMA-optimalisatie in uw testtoepassing te implementeren:

// Stel de juiste affiniteit in indien daarom wordt gevraagd if (cpu_affinity || memory_affinity) {unsigned dom = 0, bus = 0, dev = 0, func = 0; fpga_properties rekwisieten;int retval; #if(FPGA_DMA_DEBUG)char str[4096]; #endifres = fpgaGetProperties(afc_token, &props); ON_ERR_GOTO(res, out_destroy_tok, “fpgaGetProperties”); res = fpgaPropertiesGetBus(props, (uint8_t *) & bus);ON_ERR_GOTO(res, out_destroy_tok, “fpgaPropertiesGetBus”); res = fpgaPropertiesGetDevice(props, (uint8_t *) & dev);ON_ERR_GOTO(res, out_destroy_tok, “fpgaPropertiesGetDevice”) res = fpgaPropertiesGetFunction(props, (uint8_t *) & func);ON_ERR_GOTO(res, out_destroy_tok, “fpgaPropertiesGetFunction”); // Zoek het apparaat uit de topologie hwloc_topology_t topologie; hwloc_topology_init(&topologie); hwloc_topology_set_flags(topologie, HWLOC_TOPOLOGY_FLAG_IO_DEVICES);Intel Corporation. Alle rechten voorbehouden. Intel, het Intel-logo en andere Intel-merken zijn handelsmerken van Intel Corporation of haar dochterondernemingen. Intel garandeert de prestaties van zijn FPGA- en halfgeleiderproducten volgens de huidige specificaties in overeenstemming met de standaardgarantie van Intel, maar behoudt zich het recht voor om op elk moment en zonder voorafgaande kennisgeving wijzigingen aan te brengen in producten en services. Intel aanvaardt geen verantwoordelijkheid of aansprakelijkheid die voortvloeit uit de toepassing of het gebruik van enige informatie, product of dienst die hierin wordt beschreven, behalve zoals uitdrukkelijk schriftelijk overeengekomen door Intel. Intel-klanten wordt geadviseerd om de nieuwste versie van de apparaatspecificaties te verkrijgen voordat ze vertrouwen op gepubliceerde informatie en voordat ze producten of diensten bestellen. *Andere namen en merken kunnen worden geclaimd als eigendom van anderen.

Optimalisatie voor verbeterde DMA-prestaties

hwloc_topology_load(topologie); hwloc_obj_t obj = hwloc_get_pcidev_by_busid(topologie, dom, bus, dev, func); hwloc_obj_t obj2 = hwloc_get_non_io_ancestor_obj(topologie, obj); #if (FPGA_DMA_DEBUG) hwloc_obj_type_snprintf(str, 4096, obj2, 1); printf(“%s\n”, str);hwloc_obj_attr_snprintf(str, 4096, obj2, ” :: “, 1);printf(“%s\n”, str); hwloc_bitmap_taskset_snprintf(str, 4096, obj2->cpuset); printf(“CPUSET is %s\n”, str); hwloc_bitmap_taskset_snprintf(str, 4096, obj2->knooppuntset); printf(“NODESET is %s\n”, str);#endif if (memory_affinity) { #if HWLOC_API_VERSION > 0x00020000 retval = hwloc_set_membind(topologie, obj2->nodeset, HWLOC_MEMBIND_THREAD, HWLOC_MEMBIND_MIGRATE |HWLOC_MEMBIND_BYNODESET); #else retval =hwloc_set_membind_nodeset(topologie, 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(topologie, obj2->cpuset, HWLOC_CPUBIND_STRICT); ON_ERR_GOTO(retval, out_destroy_tok, “hwloc_set_cpubind”); } }

DMA Accelerator Functionele eenheid Gebruikershandleiding Archief

Intel Acceleration Stack-versie Gebruikershandleiding (PDF)
2.0 DMA Accelerator Functional Unit (AFU) Gebruikershandleiding

Documentrevisiegeschiedenis voor de gebruikershandleiding van de DMA Accelerator Functional Unit

 

Documentversie

Intel Acceleration Stapelversie  

Wijzigingen

 

 

2020.08.03

2.0.1 (ondersteund door Intel

Quartus® Prime Pro Editie Editie 19.2)

 

Het AF-beeld gecorrigeerd file naam in sectie Het samenstellen van de DMA AFU Example.

 

 

2020.04.17

2.0.1 (ondersteund door Intel

Quartus Prime Pro Editie Editie 19.2)

 

 

Een verklaring gecorrigeerd in Beoogd publiek sectie.

 

 

2020.02.20

2.0.1 (ondersteund door Intel

Quartus Prime Pro Editie Editie 19.2)

 

 

Typefout gecorrigeerd.

 

 

 

 

2019.11.04

 

 

2.0.1 (ondersteund door Intel

Quartus Prime Pro Editie Editie 19.2)

• De fpgaconf vervangen door fpgasupdate bij het configureren van de FPGA met de vooraf gebouwde AFU in sectie Het uitvoeren van de DMA AFU Example.

• Ondertiteling toegevoegd Intel FPGA programmeerbare versnellingskaart D5005 naar de documenttitel.

• Omgevingsvariabele $OPAE_PLATFORM_ROOT toegevoegd.

• Gewijzigde sectie Softwareprogrammeermodel voor kleine bewerkingen.

• Nieuwe sectie toegevoegd Het samenstellen van de DMA AFU Example.

• Gewijzigde sectie Optimalisatie voor verbeterde DMA-prestaties voor kleine bewerkingen.

 

 

2019.08.05

2.0 (ondersteund door Intel

Quartus Prime Pro-editie 18.1.2)

 

 

Eerste release.

Intel Corporation. Alle rechten voorbehouden. Intel, het Intel-logo en andere Intel-merken zijn handelsmerken van Intel Corporation of haar dochterondernemingen. Intel garandeert de prestaties van zijn FPGA- en halfgeleiderproducten volgens de huidige specificaties in overeenstemming met de standaardgarantie van Intel, maar behoudt zich het recht voor om op elk moment en zonder voorafgaande kennisgeving wijzigingen aan te brengen in producten en services. Intel aanvaardt geen verantwoordelijkheid of aansprakelijkheid die voortvloeit uit de toepassing of het gebruik van enige informatie, product of dienst die hierin wordt beschreven, behalve zoals uitdrukkelijk schriftelijk overeengekomen door Intel. Intel-klanten wordt geadviseerd de nieuwste versie van de apparaatspecificaties te verkrijgen voordat ze vertrouwen op gepubliceerde informatie en voordat ze producten of diensten bestellen.

  • Andere namen en merken kunnen als eigendom van anderen worden opgeëist.

 

Documenten / Bronnen

Intel FPGA programmeerbare versnellingskaart D5005 [pdf] Gebruikershandleiding
FPGA programmeerbare acceleratiekaart, D5005, FPGA programmeerbare acceleratiekaart D5005, DMA-accelerator functionele eenheid

Referenties

Laat een reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd *