Intel FPGA programmerbart accelerationskort D5005
Om detta dokument
Det här dokumentet beskriver implementeringen av direkt minnesåtkomst (DMA) Accelerator Functional Unit (AFU) och hur man bygger designen för att köras på hårdvara eller i simulering.
Avsedd publik
Den avsedda målgruppen består av hårdvaru- eller mjukvaruutvecklare som kräver en Accelerator Function (AF) för att buffra data lokalt i minnet anslutet till Intel FPGA-enheten.
Konventioner
Dokumentkonventioner
Konvent | Beskrivning |
# | Föregår ett kommando som anger att kommandot ska anges som root. |
$ | Indikerar att ett kommando ska anges som en användare. |
Detta typsnitt | Filenamn, kommandon och nyckelord skrivs ut med detta teckensnitt. Långa kommandorader skrivs ut i detta teckensnitt. Även om långa kommandorader kan gå till nästa rad, är returen inte en del av kommandot; tryck inte på enter. |
Indikerar att platshållartexten som visas mellan vinkelparenteserna måste ersättas med ett lämpligt värde. Gå inte in i vinkelfästena. |
Akronymer
Akronymer
Akronymer | Expansion | Beskrivning |
AF | Acceleratorfunktion | Kompilerad hårdvaruacceleratorbild implementerad i FPGA-logik som accelererar en applikation. |
AFU | Accelerator funktionsenhet | Hårdvaruaccelerator implementerad i FPGA-logik som avlastar en beräkningsoperation för en applikation från CPU:n för att förbättra prestandan. |
API | Applikationsprogrammeringsgränssnitt | En uppsättning subrutindefinitioner, protokoll och verktyg för att bygga mjukvaruapplikationer. |
CCI-P | Core Cache Interface | CCI-P är standardgränssnittet som AFU använder för att kommunicera med värden. |
DFH | Enhetsfunktionshuvud | Skapar en länkad lista med funktionsrubriker för att tillhandahålla ett utökningsbart sätt att lägga till funktioner. |
fortsatt… |
Intel Corporation. Alla rättigheter förbehållna. Intel, Intels logotyp och andra Intel-märken är varumärken som tillhör Intel Corporation eller dess dotterbolag. Intel garanterar prestanda för sina FPGA- och halvledarprodukter enligt gällande specifikationer i enlighet med Intels standardgaranti, men förbehåller sig rätten att göra ändringar i alla produkter och tjänster när som helst utan föregående meddelande. Intel tar inget ansvar eller ansvar som uppstår till följd av applikationen eller användningen av någon information, produkt eller tjänst som beskrivs här, förutom vad som uttryckligen har godkänts skriftligen av Intel. Intel-kunder rekommenderas att skaffa den senaste versionen av enhetsspecifikationerna innan de förlitar sig på någon publicerad information och innan de beställer produkter eller tjänster. *Andra namn och varumärken kan göras anspråk på att vara andras egendom.
Akronymer | Expansion | Beskrivning |
FIM | FPGA Interface Manager | FPGA-hårdvaran som innehåller FPGA Interface Unit (FIU) och externa gränssnitt för minne, nätverk, etc.
Acceleratorfunktionen (AF) samverkar med FIM vid körning. |
FIU | FPGA-gränssnittsenhet | FIU är ett plattformsgränssnittsskikt som fungerar som en brygga mellan plattformsgränssnitt som PCIe*, UPI och gränssnitt på AFU-sidan som CCI-P. |
MPF | Minnesegenskaper Fabrik | MPF är en Basic Building Block (BBB) som AFU:er kan använda för att tillhandahålla CCI-P trafikformningsoperationer för transaktioner med FIU. |
Accelerationsordlista
Accelerationsstack för Intel® Xeon®-processor med FPGA-ordlista
Kalla | Förkortning | Beskrivning |
Intel® Acceleration Stack för Intel Xeon® CPU med FPGA | Accelerationsstapel | En samling programvara, firmware och verktyg som ger prestandaoptimerad anslutning mellan en Intel FPGA och en Intel Xeon-processor. |
Intel FPGA programmerbart accelerationskort | Intel FPGA PAC | PCIe FPGA acceleratorkort.
Innehåller en FPGA Interface Manager (FIM) som paras ihop med en Intel Xeon-processor över PCIe-bussen. |
- DMA Accelerator Functional Unit Användarhandbok: Intel FPGA Programmerbart Acceleration Card D5005
DMA AFU Beskrivning
Introduktion
Direkt minnesåtkomst (DMA) AFU example visar hur man hanterar minnesöverföringar mellan värdprocessorn och FPGA. Du kan integrera DMA AFU i din design för att flytta data mellan värdminnet och det lokala FPGA-minnet. DMA AFU består av följande undermoduler:
- Memory Properties Factory (MPF) Basic Building Block (BBB)
- Core Cache Interface (CCI-P) till Avalon® Memory-Mapped (Avalon-MM) Adapter
- DMA testsystem som innehåller DMA BBB
Dessa undermoduler beskrivs mer i detalj i ämnet DMA AFU Hardware Components nedan.
Relaterad information
- DMA AFU-hårdvarukomponenterna på sidan 6
- Avalon gränssnittsspecifikationer
För mer information om Avalon-MM-protokollet, inklusive tidsdiagram för läs- och skrivtransaktioner.
DMA AFU-programvarupaketet
Intel Acceleration Stack för Intel Xeon CPU med FPGA-paket file (*.tar.gz), inkluderar DMA AFU example. Detta example tillhandahåller en drivrutin för användarutrymme. Värdapplikationen använder denna drivrutin så att DMA flyttar data mellan värd- och FPGA-minne. Hårdvarubinärfilerna, källorna och drivrutinen för användarutrymme är tillgängliga i följande katalog: $OPAE_PLATFORM_ROOT/hw/samples/dma_afu . Innan du experimenterar med DMA AFU måste du installera mjukvarupaketet Open Programmable Acceleration Engine (OPAE). Se Installera OPAE-programvarupaketet i Intel Acceleration Stack Snabbstartguide för Intel FPGA Programmerbart Acceleration Card D5005 för installationsinstruktioner. Denna snabbstartsguide innehåller också grundläggande information om Open Programmable Acceleration Engine (OPAE) och konfigurering av en AFU. Efter att ha installerat mjukvarupaketet Open Programmable Acceleration Engine (OPAE), somampvärdapplikationen och DMA AFU-användarutrymmesdrivrutinen är tillgängliga i följande katalog: $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw. För att köra sampvärdapplikationen, fpga_dma_test på din Intel FPGA PAC D5005 hårdvara, se stegen i avsnittet Köra DMA AFU Example. Intel Corporation. Alla rättigheter förbehållna. Intel, Intels logotyp och andra Intel-märken är varumärken som tillhör Intel Corporation eller dess dotterbolag. Intel garanterar prestanda för sina FPGA- och halvledarprodukter enligt gällande specifikationer i enlighet med Intels standardgaranti, men förbehåller sig rätten att göra ändringar i alla produkter och tjänster när som helst utan föregående meddelande. Intel tar inget ansvar eller ansvar som uppstår till följd av applikationen eller användningen av någon information, produkt eller tjänst som beskrivs här, förutom vad som uttryckligen har godkänts skriftligen av Intel. Intel-kunder rekommenderas att skaffa den senaste versionen av enhetsspecifikationerna innan de förlitar sig på någon publicerad information och innan de beställer produkter eller tjänster. *Andra namn och varumärken kan göras anspråk på att vara andras egendom.
Relaterad information
- Intel Acceleration Stack Snabbstartguide för Intel FPGA Programmerbart Acceleration Card D5005
- Installera OPAE Software Package
DMA AFU-hårdvarukomponenterna
DMA AFU gränssnitt med FPGA Interface Unit (FIU) och FPGA-minne. Se databladet för FPGA Interface Manager för Intel FPGA Programmable Acceleration Card D5005 för detaljerade specifikationer för FPGA-minnet. Den för närvarande tillgängliga hårdvaran dikterar denna minneskonfiguration. Framtida hårdvara kan stödja olika minneskonfigurationer. Du kan använda DMA AFU för att kopiera data mellan följande käll- och destinationsplatser:
- Värd till enhet FPGA-minne
- Enhetens FPGA-minne till värden
Ett plattformsdesignersystem, $OPAE_PLATFORM_ROOT/hw/samples/ dma_afu/hw/rtl/TEST_dma/ /dma_test_system.qsys implementerar det mesta av DMA
- AFU. En del av DMA AFU implementerad i Platform Designer-systemet finns i följande
plats:$OPAE_PLATFORM_ROOT/hw/samples/dma_afu/hw/rtl/TEST_dma/ Du kan hitta DMA BBB på följande plats:
- $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/hw/rtl/dma_bbb
DMA Accelerator Functional Unit Användarhandbok: Intel FPGA Programmerbart Acceleration Card D5005
DMA AFU hårdvarublockdiagram
DMA AFU innehåller följande interna moduler för gränssnitt med FPGA Interface Unit (FIU):
- Memory-Mapped IO (MMIO) Decoder Logic: upptäcker MMIO-läs- och skrivtransaktioner och separerar dem från CCI-P RX-kanal 0 som de kommer från. Detta säkerställer att MMIO-trafik aldrig når MPF BBB och betjänas av en oberoende MMIO-kommandokanal.
- Memory Properties Factory (MPF): Denna modul säkerställer att lässvaren från DMA returnerar i den ordning som de utfärdades. Avalon-MM-protokollet kräver att lässvar återkommer i rätt ordning.
- CCI-P till Avalon-MM-adapter: Denna modul översätter mellan CCI-P och Avalon-MM-transaktioner enligt följande:
- CCI-P till Avalon-MMIO-adapter: Denna sökväg översätter CCI-P MMIO-transaktioner till Avalon-MM-transaktioner.
- Avalon till CCI-P värdadapter: Dessa vägar skapar separata skrivskyddade och skrivskyddade sökvägar för DMA:n för att komma åt värdminnet.
- DMA-testsystem: Denna modul fungerar som ett omslag runt DMA BBB för att exponera DMA-masterna för resten av logiken i AFU. Den tillhandahåller gränssnittet mellan DMA BBB och CCI-P till Avalon-adaptern. Den tillhandahåller också gränssnittet mellan DMA BBB och de lokala FPGA SDRAM-bankerna.
Relaterad information
FPGA Interface Manager Datablad för Intel FPGA Programmerbart Acceleration Card D5005
DMA testsystem
DMA-testsystemet ansluter DMA BBB med resten av FPGA-designen inklusive CCI-P-anpassning och det lokala FPGA-minnet.
DMA-testsystemblockdiagram
Detta blockschema visar DMA-testsystemets inre delar. DMA-testsystemet visas som ett monolitiskt block i figur 1 på sidan 7.
DMA-testsystemet innehåller följande interna moduler:
- Far Reach Bridge/Pipeline Bridge: En pipeline-brygga med justerbar latens inkluderad för att kontrollera topologi och förbättra designen Fmax.
- DMA AFU Device Feature Header (DFH): Detta är en DFH för DMA AFU. Denna DFH pekar på nästa DFH belägen vid offset 0x100 (DMA BBB DFH).
- Null DFH: Denna komponent avslutar den länkade DFH-listan. Om du lägger till fler DMA BBBs till designen, se till att noll DFH-basadressen finns i slutet av DFH-länklistan.
- MA Basic Building Block (BBB): Detta block flyttar data mellan värden och det lokala FPGA-minnet. Den får också åtkomst till värdminne för att komma åt deskriptorkedjor.
DMA BBB
DMA BBB-delsystemet överför data från käll- till destinationsadresser med hjälp av Avalon-MM-transaktioner. DMA-drivrutinen styr DMA BBB genom att komma åt kontroll- och statusregistret för de olika komponenterna inuti systemet. DMA-drivrutinen styr också DMA BBB genom att använda delat minne för att kommunicera överföringsbeskrivningar. DMA BBB kommer åt data i FPGA-minnet med offset 0x0. DMA BBB får åtkomst till data och deskriptorer i värdminnet med offset 0x1_0000_0000_0000.
DMA BBB Platform Designer Block Diagram
Detta blockschema exkluderar vissa interna Pipeline Bridge IP-kärnor.
DMA Accelerator Functional Unit Användarhandbok: Intel FPGA Programmerbart Acceleration Card D5005
DMA AFU Beskrivning
Komponenterna i DMA BBB Platform Designer implementerar följande funktioner:
- Far Reach Bridge/Pipeline Bridge: En pipeline-brygga med justerbar latens ingår för att styra topologi och förbättra designen Fmax.
- MA BBB DFH: Detta är en enhetsfunktionshuvud för DMA BBB. Denna DFH pekar på nästa DFH placerad vid offset 0x100 (Null DFH).
- Beskrivningsgränssnitt: Ansvarig för att hämta deskriptorer och överföra dem till Dispatcher. När en DMA-överföring har slutförts får gränssnittet statusinformation från Dispatchern och skriver över deskriptorn i värdminnet.
- Avsändare: Detta block schemalägger DMA-överföringsförfrågningar till Read and Write Master.
- Läs Master: Detta block ansvarar för att läsa data från värd eller lokalt FPGA-minne och skicka det som strömmande data till Write Master.
- Skriv Master: Detta block ansvarar för att ta emot strömmande data från Read Master och skriva innehållet till värd eller lokalt FPGA-minne.
Registrera kart- och adressutrymmen
DMA AFU stöder två minne views: DMA view och värden view. DMA view stöder ett 49-bitars adressutrymme. Den nedre halvan av DMA view mappar till det lokala FPGA-minnet. Den övre halvan av DMA view kartor till värdminnet. Värden view inkluderar alla register som är tillgängliga via MMIO-åtkomster såsom DFH-tabellerna och kontroll-/statusregistren för de olika IP-kärnorna som används inuti DMA AFU. MMIO-registren i DMA BBB och AFU stöder 32- och 64-bitars åtkomst. DMA AFU stöder inte 512-bitars MMIO-åtkomster. Åtkomst till Dispatcher-registren inuti DMA BBB måste vara 32 bitar (Descriptor frontend implementerar 64-bitars register).
DMA AFU Registerkarta
DMA AFU-registerkartan ger de absoluta adresserna till alla platser inom enheten. Dessa register finns i värden view eftersom det bara är värden som kan komma åt dem.
DMA AFU Minneskarta
Byteadressförskjutningar | Namn | Spännvidd i byte | Beskrivning |
0x0 | DMA AFU DFH | 0x40 | Enhetsfunktionshuvud för DMA AFU. ID_L är satt till 0x9081f88b8f655caa och ID_H är satt till 0x331db30c988541ea. DMA AFU DFH har parametriserats för att peka på offset 0x100 för att hitta nästa DFH (DMA BBB DFH). Du får inte ändra basadressen för DMA AFU DFH eftersom den måste finnas på adressen 0x0 enligt definitionen i CCIP-specifikationen. |
0x100 | DMA BBB | 0x100 | Specificerar DMA BBB-kontroll och statusregistergränssnitt. Du kan hänvisa till DMA BBB-registerkartan för mer information. Inom DMA BBB vid offset 0 inkluderar DMA BBB sin egen DFH. Denna DFH har ställts in för att hitta nästa DFH vid offset 0x100 (NULL DFH). Om du lägger till fler DMA BBBs, placera dem 0x100 isär och se till att NULL DFH följer den sista DMA med 0x100. |
0x200 | NULL DFH | 0x40 | Avslutar den länkade DFH-listan. ID_L är satt till 0x90fe6aab12a0132f och ID_H är satt till 0xda1182b1b3444e23. NULL DFH har parametrerats för att vara den sista DFH i hårdvara. Av denna anledning finns NULL DFH på adressen 0x200. Om du lägger till ytterligare DMA BBBs till systemet måste du öka NULL DFH-basadressen i enlighet därmed så att den förblir på den högsta adressen. DMA-drivrutinen och testapplikationen använder inte denna hårdvara. |
Intel Corporation. Alla rättigheter förbehållna. Intel, Intels logotyp och andra Intel-märken är varumärken som tillhör Intel Corporation eller dess dotterbolag. Intel garanterar prestanda för sina FPGA- och halvledarprodukter enligt gällande specifikationer i enlighet med Intels standardgaranti, men förbehåller sig rätten att göra ändringar i alla produkter och tjänster när som helst utan föregående meddelande. Intel tar inget ansvar eller ansvar som uppstår till följd av applikationen eller användningen av någon information, produkt eller tjänst som beskrivs här, förutom vad som uttryckligen har godkänts skriftligen av Intel. Intel-kunder rekommenderas att skaffa den senaste versionen av enhetsspecifikationerna innan de förlitar sig på någon publicerad information och innan de beställer produkter eller tjänster. *Andra namn och varumärken kan göras anspråk på att vara andras egendom.
Registrera kart- och adressutrymmen
DMA BBB Minneskarta
Följande byteadresser är relativa förskjutningar från DMA BBB-basadressen i DMA AFU-systemet (0x100).
Byteadressförskjutningar | Namn | Spännvidd i byte | Beskrivning |
0x0 | DMA BBB DFH | 0x40 | Enhetsfunktionshuvud för DMA AFU. ID_L är satt till 0xa9149a35bace01ea och ID_H är satt till 0xef82def7f6ec40fc. DMA BBB DFH har parametriserats för att peka på 0x100 för nästa DFH-offset. Denna nästa offset kan vara en annan DMA BBB, en annan DFH (ingår inte i denna design) eller NULL DFH. |
0x40 | Avsändare | 0x40 | Kontrollport för avsändaren. DMA-drivrutinen använder den här platsen för att kontrollera DMA:n eller fråga om dess status. |
0x80 | Beskrivning Frontend | 0x40 | Deskriptorgränssnittet är en anpassad komponent som läser deskriptorer från värdminnet och skriver över deskriptorn när DMA-överföringen är klar. Drivrutinen instruerar frontend var den första deskriptorn finns i värdminnet och sedan kommunicerar frontend-hårdvaran med drivrutinen främst genom deskriptorer lagrade i värdminnet. |
DMA AFU adressutrymme
Värden kan komma åt register listade i Tabell 4 på sidan 12 och Tabell 5 på sidan 13. DMA BBB-delsystemet har tillgång till hela 49-bitars adressutrymmet. Den nedre halvan av detta adressutrymme inkluderar de lokala FPGA-minnena. Den övre hälften av detta adressutrymme inkluderar 48-bitars värdadressminnet. Följande bild visar värden och DMA views av minne.
DMA AFU och värd Views av minne
Enhetsfunktionshuvud länkad lista
DMA AFU design example innehåller tre enhetsfunktionsrubriker (DFH) som bildar en länkad lista. Denna länkade lista tillåter sampapplikationen för att identifiera DMA AFU samt drivrutinen för att identifiera DMA BBB. DFH-listan innehåller en NULL DFH i slutet. Inkluderingen av noll DFH i slutet av den länkade listan gör att du kan lägga till fler DMA BBBs till din design. Du behöver helt enkelt flytta NULL DFH till en adress efter de andra BBBs. Varje DMA BBB förväntar sig att nästa DFH ska vara placerad 0x100 byte från basadressen för BBB. Följande figur visar den länkade listan för DMA AFU-design example.
Registrera kart- och adressutrymmen
DMA AFU Device Feature Header (DFH) Chaining
Programvaruprogrammeringsmodell
DMA AFU inkluderar en mjukvarudrivrutin som du kan använda i din egen värdapplikation. fpga_dma.cpp och fpga_dma.h files som finns på följande plats implementera programvarans drivrutin:$OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw Den här drivrutinen stöder följande funktioner:
API | Beskrivning |
fpgaCountDMAChannels | Söker igenom enhetens funktionskedja efter DMA BBBs och räknar alla tillgängliga kanaler. |
fpgaDMAOpen | Öppnar ett handtag till DMA-kanalen. |
fpgaDMAClose | Stänger ett handtag till DMA-kanalen. |
fpgaDMATransferInit | Initierar ett objekt som representerar DMA-överföringen. |
fpgaDMATransferReset | Återställer DMA-överföringsattributobjektet till standardvärden. |
fpgaDMATransferDestroy | Förstör DMA-överföringsattributobjektet. |
fpgaDMATransferSetSrc | Ställer in källadressen för överföringen. Denna adress måste vara 64 byte justerad. |
fpgaDMATransferSetDst | Ställer in destinationsadressen för överföringen. Denna adress måste vara 64 byte justerad. |
fpgaDMATransferSetLen | Ställer in överföringslängderna i byte. För icke-paketöverföringar måste du ställa in överföringslängden till en multipel av 64 byte. För paketöverföringar är detta inget krav. |
fpgaDMATransferSetTransferType | Ställer in överföringstypen. Juridiska värden är:
• HOST_MM_TO_FPGA_MM = TX (värd till AFU) • FPGA_MM_TO_HOST_MM = RX (AFU till värd) |
fpgaDMATransferSetTransferCallback | Registrerar återuppringning för avisering om avslutad asynkron överföring. Om du anger en återuppringning återkommer fpgaDMATransfer omedelbart (asynkron överföring).
Om du inte anger en återuppringning, återkommer fpgaDMATransfer efter att överföringen är klar (synkron/blockerande överföring). |
fpgaDMATransferSetLast | Indikerar den senaste överföringen så att DMA kan börja bearbeta de förhämtade överföringarna. Standardvärdet är 64 överföringar i pipeline innan DMA börjar arbeta med överföringarna. |
fpgaDMATransfer | Utför en DMA-överföring. |
För mer information om API, input och output argument, se rubriken file finns $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw/fpga_dma.hIntel Corporation. Alla rättigheter förbehållna. Intel, Intels logotyp och andra Intel-märken är varumärken som tillhör Intel Corporation eller dess dotterbolag. Intel garanterar prestanda för sina FPGA- och halvledarprodukter enligt gällande specifikationer i enlighet med Intels standardgaranti, men förbehåller sig rätten att göra ändringar i alla produkter och tjänster när som helst utan föregående meddelande. Intel tar inget ansvar eller ansvar som uppstår till följd av applikationen eller användningen av någon information, produkt eller tjänst som beskrivs här, förutom vad som uttryckligen har godkänts skriftligen av Intel. Intel-kunder rekommenderas att skaffa den senaste versionen av enhetsspecifikationerna innan de förlitar sig på någon publicerad information och innan de beställer produkter eller tjänster. Andra namn och varumärken kan göras anspråk på att vara andras egendom.
Programvaruprogrammeringsmodell
För att veta mer om användningsmodellen för mjukvarudrivrutiner, se README file finns på $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/README.md
Kör DMA AFU Example
Innan du börjar:
- Du bör vara bekant med exetampfiler i Intel Acceleration Stack Snabbstartguide för Intel FPGA Programmerbart Acceleration Card D5005.
- Du måste definiera en miljövariabel. Miljövariabeln är beroende av den Intel Acceleration Stack-version du använder:
- För aktuell version, ställ in miljövariabeln till $OPAE_PLATFORM_ROOT
- Du måste installera Intel Threading Building Blocks (TBB)-biblioteket eftersom DMA-drivrutinen är beroende av det.
- Du måste också ställa in två 1 GB enorma sidor för att köra sample ansökan. $ sudo sh -c “echo 2 > /sys/kernel/mm/hugepages/hugepages-1048576kB/ nr_hugepages”
Utför följande steg för att ladda ner DMA Accelerator Function (AF) bitström, för att bygga applikationen och drivrutinen och för att köra design exampde:
- Byt till DMA-applikationen och drivrutinskatalogen: cd $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw
- Bygg drivrutinen och applikationen: gör
- Ladda ner DMA AFU-bitströmmen: sudo fpgasupdate ../bin/dma_afu_unsigned.gbs
- Kör värdapplikationen för att skriva 100 MB i 1 MB delar från värdminnet till FPGA-enhetens minne och läs tillbaka det: ./ fpga_dma_test -s 104857600 -p 1048576 -r mtom
Relaterad information
Intel Acceleration Stack Snabbstartguide för Intel FPGA Programmerbart Acceleration Card D5005 Intel Corporation. Alla rättigheter förbehållna. Intel, Intels logotyp och andra Intel-märken är varumärken som tillhör Intel Corporation eller dess dotterbolag. Intel garanterar prestanda för sina FPGA- och halvledarprodukter enligt gällande specifikationer i enlighet med Intels standardgaranti, men förbehåller sig rätten att göra ändringar i alla produkter och tjänster när som helst utan föregående meddelande. Intel tar inget ansvar eller ansvar som uppstår till följd av applikationen eller användningen av någon information, produkt eller tjänst som beskrivs här, förutom vad som uttryckligen har godkänts skriftligen av Intel. Intel-kunder rekommenderas att skaffa den senaste versionen av enhetsspecifikationerna innan de förlitar sig på någon publicerad information och innan de beställer produkter eller tjänster. *Andra namn och varumärken kan göras anspråk på att vara andras egendom.
Sammanställning av DMA AFU Example
För att generera en syntesbyggmiljö för att kompilera en AF, använd kommandot afu_synth_setup enligt följande:
- Ändra till DMA AFU sampkatalogen: $OPAE_PLATFORM_ROOT/hw/samples/dma_afu
- Generera design build-katalogen: afu_synth_setup –source hw/rtl/filelist.txt build_synth
- Från syntesbyggkatalogen som genereras av afu_synth_setup, ange följande kommandon från ett terminalfönster för att generera en AF för målhårdvaruplattformen: cd build_synth run.sh Skriptet för generering av run.sh AF skapar AF-bilden med samma bas filenamn som AFU:s plattformskonfiguration file (.json) med ett .gbs-suffix på platsen:$OPAE_PLATFORM_ROOT/hw/samples/build_synth/dma_afu_s10.gbs Intel Corporation. Alla rättigheter förbehållna. Intel, Intels logotyp och andra Intel-märken är varumärken som tillhör Intel Corporation eller dess dotterbolag. Intel garanterar prestanda för sina FPGA- och halvledarprodukter enligt gällande specifikationer i enlighet med Intels standardgaranti, men förbehåller sig rätten att göra ändringar i alla produkter och tjänster när som helst utan föregående meddelande. Intel tar inget ansvar eller ansvar som uppstår till följd av applikationen eller användningen av någon information, produkt eller tjänst som beskrivs här, förutom vad som uttryckligen har godkänts skriftligen av Intel. Intel-kunder rekommenderas att skaffa den senaste versionen av enhetsspecifikationerna innan de förlitar sig på någon publicerad information och innan de beställer produkter eller tjänster. *Andra namn och varumärken kan göras anspråk på att vara andras egendom.
Simulering av AFU Example
Intel rekommenderar att du hänvisar till Intel Accelerator Functional Unit (AFU) Simulation Environment (ASE) snabbstartsguide för din Intel FPGA PAC för att vara bekant med att simulera liknande ex.amples och för att ställa in din miljö. Innan du går vidare genom följande steg, kontrollera att miljövariabeln OPAE_PLATFORM_ROOT är inställd på installationskatalogen OPAE SDK. Utför följande steg för att ställa in hårdvarusimulatorn för DMA AFU:
- Ändra till DMA AFU sampkatalogen: cd $OPAE_PLATFORM_ROOT/hw/samples/dma_afu
- Skapa en ASE-miljö i en ny katalog och konfigurera den för att simulera en AFU: afu_sim_setup –source hw/rtl/filelist.txt build_ase_dir
- Byt till ASE-byggkatalogen: cd build_ase_dir
- Bygg drivrutinen och applikationen: gör
- Gör simulering: gör sim
Samputdata från hårdvarusimulatorn:
[SIM] ** OBSERVERA: INNAN du kör programvaran ** [SIM] Ställ in env(ASE_WORKDIR) i terminalen där programmet kommer att köras (kopiera-och-klistra in) => [SIM] $SHELL | Kör:[SIM] ———+————————————————— [SIM] bash/zsh | exportera 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] För alla andra $SHELL, kontakta din Linux-administratör [SIM] [SIM] Klar för simulering... [SIM] Tryck CTRL-C för att stänga simulatorn...Utför följande steg för att kompilera och köra DMA AFU-programvaran i simuleringsmiljön:
- Öppna ett nytt terminalfönster.
- Ändra katalog till: cd $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw
Intel Corporation. Alla rättigheter förbehållna. Intel, Intels logotyp och andra Intel-märken är varumärken som tillhör Intel Corporation eller dess dotterbolag. Intel garanterar prestanda för sina FPGA- och halvledarprodukter enligt gällande specifikationer i enlighet med Intels standardgaranti, men förbehåller sig rätten att göra ändringar i alla produkter och tjänster när som helst utan föregående meddelande. Intel tar inget ansvar eller ansvar som uppstår till följd av applikationen eller användningen av någon information, produkt eller tjänst som beskrivs här, förutom vad som uttryckligen har godkänts skriftligen av Intel. Intel-kunder rekommenderas att skaffa den senaste versionen av enhetsspecifikationerna innan de förlitar sig på någon publicerad information och innan de beställer produkter eller tjänster. *Andra namn och varumärken kan göras anspråk på att vara andras egendom.
Simulering av AFU Example
- Kopiera miljöinställningssträngen (välj sträng som är lämplig för ditt skal) från stegen ovan i hårdvarusimuleringen till terminalfönstret. Se följande rader i sample utdata från hårdvarusimulatorn. [SIM] bash/zsh | exportera 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
- Kompilera programvaran: $ make USE_ASE=1
- Kör värdapplikationen för att skriva 4 KB i 1 KB-delar från värdminnet tillbaka till FPGA-enhetens minne i loopback-läget: ./ fpga_dma_test -s 4096 -p 1024 -r mtom
Relaterad information
Intel Accelerator Functional Unit (AFU) Simulation Environment (ASE) Användarhandbok för snabbstart
Optimering för förbättrad DMA-prestanda
Implementering av NUMA-optimering (icke-uniform minnesåtkomst) i fpga_dma_test.cpp tillåter processorn att komma åt sitt eget lokala minne snabbare än att komma åt icke-lokalt minne (minne lokalt till en annan processor). En typisk NUMA-konfiguration visas i diagrammet nedan. Den lokala åtkomsten representerar åtkomst från en kärna till minne lokalt till samma kärna. Fjärråtkomsten illustrerar vägen som tas när en kärna på Nod 0 kommer åt minne som finns i minnet lokalt för Nod 1.
Typisk NUMA-konfiguration
Använd följande kod för att implementera NUMA-optimering i din testapplikation:
// Ställ in korrekt affinitet om så begärs if (cpu_affinity || memory_affinity) {unsigned dom = 0, bus = 0, dev = 0, func = 0; fpga_properties rekvisita;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(rekvisita, (uint8_t *) & func);ON_ERR_GO de // Hitta enheten från topologin hwloc_topology_t topology; hwloc_topology_init(&topology); hwloc_topology_set_flags(topologi, HWLOC_TOPOLOGY_FLAG_IO_DEVICES);Intel Corporation. Alla rättigheter förbehållna. Intel, Intels logotyp och andra Intel-märken är varumärken som tillhör Intel Corporation eller dess dotterbolag. Intel garanterar prestanda för sina FPGA- och halvledarprodukter enligt gällande specifikationer i enlighet med Intels standardgaranti, men förbehåller sig rätten att göra ändringar av alla produkter och tjänster när som helst utan föregående meddelande. Intel tar inget ansvar eller ansvar som uppstår till följd av applikationen eller användningen av någon information, produkt eller tjänst som beskrivs här, förutom vad som uttryckligen har godkänts skriftligen av Intel. Intel-kunder rekommenderas att skaffa den senaste versionen av enhetsspecifikationerna innan de förlitar sig på någon publicerad information och innan de beställer produkter eller tjänster. *Andra namn och varumärken kan göras anspråk på att vara andras egendom.
Optimering för förbättrad DMA-prestanda
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 är %s\n”, str); hwloc_bitmap_taskset_snprintf(str, 4096, obj2->nodeset); printf(“NODESET är %s\n”, str);#endif if (memory_affinity) { #if HWLOC_API_VERSION > 0x00020000 retval = hwloc_set_membind(topologi, obj2->nodeset,HWLOC_MEMBIND_THREAD, HWLOC_MEMBIND_THREAD_HWLOC_MEMBIND_MEMBIND_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”); } }
DMA Accelerator Funktionsenhet Användarhandbok Arkiv
Intel Acceleration Stack-version | Användarhandbok (PDF) |
2.0 | Användarhandbok för DMA Accelerator Functional Unit (AFU). |
Dokumentversionshistorik för användarhandboken för DMA Accelerator Functional Unit
Dokumentversion |
Intel Acceleration Stackversion |
Ändringar |
2020.08.03 |
2.0.1 (stöds med Intel
Quartus® Prime Pro Edition Edition 19.2) |
Korrigerade AF-bilden file namn i avsnitt Sammanställning av DMA AFU Example. |
2020.04.17 |
2.0.1 (stöds med Intel
Quartus Prime Pro Edition Edition 19.2) |
Rättade ett uttalande i Avsedd publik avsnitt. |
2020.02.20 |
2.0.1 (stöds med Intel
Quartus Prime Pro Edition Edition 19.2) |
Fixat stavfel. |
2019.11.04 |
2.0.1 (stöds med Intel Quartus Prime Pro Edition Edition 19.2) |
• Ersatte fpgaconf med fpgasupdate när du konfigurerade FPGA med prebuild AFU i avsnitt Kör DMA AFU Example.
• Tillagd undertext Intel FPGA programmerbart accelerationskort D5005 till dokumentets titel. • Tillagd miljövariabel $OPAE_PLATFORM_ROOT. • Ändrad sektion Programvaruprogrammeringsmodell för mindre redigeringar. • Lagt till nytt avsnitt Sammanställning av DMA AFU Example. • Ändrad sektion Optimering för förbättrad DMA-prestanda för mindre redigeringar. |
2019.08.05 |
2.0 (stöds med Intel
Quartus Prime Pro Edition 18.1.2) |
Initial release. |
Intel Corporation. Alla rättigheter förbehållna. Intel, Intels logotyp och andra Intel-märken är varumärken som tillhör Intel Corporation eller dess dotterbolag. Intel garanterar prestanda för sina FPGA- och halvledarprodukter enligt gällande specifikationer i enlighet med Intels standardgaranti, men förbehåller sig rätten att göra ändringar i alla produkter och tjänster när som helst utan föregående meddelande. Intel tar inget ansvar eller ansvar som uppstår till följd av applikationen eller användningen av någon information, produkt eller tjänst som beskrivs här, förutom vad som uttryckligen har godkänts skriftligen av Intel. Intel-kunder rekommenderas att skaffa den senaste versionen av enhetsspecifikationerna innan de förlitar sig på någon publicerad information och innan de beställer produkter eller tjänster.
- Andra namn och varumärken kan göras anspråk på att vara andras egendom.
Dokument/resurser
![]() |
Intel FPGA programmerbart accelerationskort D5005 [pdf] Användarhandbok FPGA-programmerbart accelerationskort, D5005, FPGA-programmerbart accelerationskort D5005, DMA-acceleratorfunktionsenhet |