Intelov logotip

Programirljiva pospeševalna kartica Intel FPGA D5005

Intel.-FPGA-programabilna-pospeševalna-kartica-D5005-izdelek

O tem dokumentu

Ta dokument opisuje izvedbo funkcijske enote pospeševalnika (AFU) z neposrednim dostopom do pomnilnika (DMA) in kako zgraditi načrt za delovanje na strojni opremi ali v simulaciji.

Predvideno občinstvo

Predvideno občinstvo vključuje razvijalce strojne ali programske opreme, ki potrebujejo funkcijo pospeševalnika (AF) za lokalno medpomnilnik podatkov v pomnilniku, povezanem z napravo Intel FPGA.

konvencije

Konvencije dokumentov

konvencije Opis
# Pred ukazom, ki označuje, da je treba ukaz vnesti kot root.
$ Označuje ukaz, ki ga je treba vnesti kot uporabnik.
Ta pisava Fileimena, ukazi in ključne besede so natisnjeni v tej pisavi. S to pisavo so natisnjene dolge ukazne vrstice. Čeprav se dolge ukazne vrstice lahko previjejo v naslednjo vrstico, vrnitev ni del ukaza; ne pritisnite enter.
Označuje, da je treba besedilo nadomestnega mesta, ki se pojavi med kotnimi oklepaji, zamenjati z ustrezno vrednostjo. Ne vnašajte oglatih oklepajev.

Kratice

Kratice

Kratice Razširitev Opis
AF Funkcija pospeševalnika Prevedena slika strojnega pospeševalnika, implementirana v logiko FPGA, ki pospeši aplikacijo.
AFU Funkcionalna enota pospeševalnika Hardware Accelerator, implementiran v logiko FPGA, ki razbremeni računsko operacijo za aplikacijo iz CPE-ja, da izboljša zmogljivost.
API Programski vmesnik aplikacij Niz definicij podprogramov, protokolov in orodij za izdelavo programskih aplikacij.
CCI-P Core Cache vmesnik CCI-P je standardni vmesnik AFU, ki ga uporabljajo za komunikacijo z gostiteljem.
DFH Glava funkcije naprave Ustvari povezan seznam glav funkcij, da zagotovi razširljiv način dodajanja funkcij.
nadaljevanje ...

Intel Corporation. Vse pravice pridržane. Intel, logotip Intel in druge znamke Intel so blagovne znamke družbe Intel Corporation ali njenih podružnic. Intel jamči za delovanje svojih izdelkov FPGA in polprevodnikov v skladu s trenutnimi specifikacijami v skladu z Intelovo standardno garancijo, vendar si pridržuje pravico do sprememb katerega koli izdelka in storitve kadar koli brez predhodnega obvestila. Intel ne prevzema nobene odgovornosti ali obveznosti, ki izhaja iz uporabe ali uporabe katere koli informacije, izdelka ali storitve, opisanih tukaj, razen če je Intel izrecno pisno privolil v to. Intelovim strankam svetujemo, da pridobijo najnovejšo različico specifikacij naprave, preden se zanesejo na kakršne koli objavljene informacije in preden oddajo naročila za izdelke ali storitve. *Druga imena in blagovne znamke so lahko last drugih.

Kratice Razširitev Opis
FIM Upravljalnik vmesnika FPGA Strojna oprema FPGA, ki vsebuje vmesniško enoto FPGA (FIU) in zunanje vmesnike za pomnilnik, mreženje itd.

Funkcija pospeševalnika (AF) je med izvajanjem povezana s FIM.

FIU Vmesniška enota FPGA FIU je plast vmesnika platforme, ki deluje kot most med vmesniki platforme, kot so PCIe*, UPI in vmesniki na strani AFU, kot je CCI-P.
MPF Tovarna lastnosti pomnilnika MPF je osnovni gradnik (BBB), ki ga AFU-ji lahko uporabljajo za zagotavljanje operacij oblikovanja prometa CCI-P za transakcije s FIU.

Glosar za pospeševanje

Pospeševalni sklad za CPE Intel® Xeon® s FPGA Glosar

Izraz Okrajšava Opis
Intel® Acceleration Stack za procesor Intel Xeon® s FPGA Pospeševalni sklad Zbirka programske opreme, vdelane programske opreme in orodij, ki zagotavlja povezljivost z optimizirano zmogljivostjo med procesorjem Intel FPGA in procesorjem Intel Xeon.
Programirljiva pospeševalna kartica Intel FPGA Intel FPGA PAC PCIe FPGA pospeševalna kartica.

Vsebuje FPGA Interface Manager (FIM), ki se poveže s procesorjem Intel Xeon prek vodila PCIe.

  • Uporabniški priročnik za funkcionalno enoto pospeševalnika DMA: programabilna pospeševalna kartica Intel FPGA D5005

Opis DMA AFU

Uvod

Neposredni dostop do pomnilnika (DMA) AFU nprample prikazuje, kako upravljati prenose pomnilnika med gostiteljskim procesorjem in FPGA. DMA AFU lahko integrirate v svojo zasnovo za premikanje podatkov med pomnilnikom gostitelja in lokalnim pomnilnikom FPGA. DMA AFU sestavljajo naslednji podmoduli:

  • Memory Properties Factory (MPF) Basic Building Block (BBB)
  • Vmesnik jedrnega predpomnilnika (CCI-P) za adapter Avalon® Memory-Mapped (Avalon-MM)
  • Testni sistem DMA, ki vsebuje DMA BBB

Ti podmoduli so podrobneje opisani v spodnji temi o komponentah strojne opreme DMA AFU.

Povezane informacije

  • Komponente strojne opreme DMA AFU na strani 6
  • Specifikacije vmesnika Avalon

Za več informacij o protokolu Avalon-MM, vključno s časovnimi diagrami za transakcije branja in pisanja.

Programski paket DMA AFU

Intel Acceleration Stack za procesor Intel Xeon s paketom FPGA file (*.tar.gz), vključuje DMA AFU example. Ta bivšiample zagotavlja gonilnik uporabniškega prostora. Gostiteljska aplikacija uporablja ta gonilnik tako, da DMA premika podatke med gostiteljem in pomnilnikom FPGA. Binarne datoteke strojne opreme, viri in gonilnik uporabniškega prostora so na voljo v naslednjem imeniku: $OPAE_PLATFORM_ROOT/hw/samples/dma_afu . Pred eksperimentiranjem z DMA AFU morate namestiti programski paket Open Programmable Acceleration Engine (OPAE). Za navodila za namestitev glejte Namestitev paketa programske opreme OPAE v vodniku za hiter začetek Intel Acceleration Stack za Intel FPGA Programmable Acceleration Card D5005. Ta vodnik za hiter začetek vključuje tudi osnovne informacije o Open Programmable Acceleration Engine (OPAE) in konfiguraciji AFU. Po namestitvi programskega paketa Open Programmable Acceleration Engine (OPAE), asampgostiteljska aplikacija in gonilnik uporabniškega prostora DMA AFU sta na voljo v naslednjem imeniku: $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw. Za vodenje sample gostiteljsko aplikacijo, fpga_dma_test na strojni opremi Intel FPGA PAC D5005, glejte korake v razdelku Zagon DMA AFU Example. Intel Corporation. Vse pravice pridržane. Intel, logotip Intel in druge znamke Intel so blagovne znamke družbe Intel Corporation ali njenih podružnic. Intel jamči za delovanje svojih izdelkov FPGA in polprevodnikov v skladu s trenutnimi specifikacijami v skladu z Intelovo standardno garancijo, vendar si pridržuje pravico do sprememb katerega koli izdelka in storitve kadar koli brez predhodnega obvestila. Intel ne prevzema nobene odgovornosti ali obveznosti, ki izhaja iz uporabe ali uporabe katere koli informacije, izdelka ali storitve, opisanih tukaj, razen če je Intel izrecno pisno privolil v to. Intelovim strankam svetujemo, da pridobijo najnovejšo različico specifikacij naprave, preden se zanesejo na kakršne koli objavljene informacije in preden oddajo naročila za izdelke ali storitve. *Druga imena in blagovne znamke so lahko last drugih.

Povezane informacije

  • Priročnik za hiter začetek Intel Acceleration Stack za Intel FPGA programljivo pospeševalno kartico D5005
  • Namestitev programskega paketa OPAE

Komponente strojne opreme DMA AFU

DMA AFU je povezan z vmesniško enoto FPGA (FIU) in pomnilnikom FPGA. Za podrobne specifikacije pomnilnika FPGA glejte podatkovni list upravljalnika vmesnika FPGA za programljivo pospeševalno kartico Intel FPGA D5005. Trenutno razpoložljiva strojna oprema narekuje to konfiguracijo pomnilnika. Prihodnja strojna oprema bo morda podpirala različne konfiguracije pomnilnika. DMA AFU lahko uporabite za kopiranje podatkov med naslednjimi izvornimi in ciljnimi lokacijami:

  • Pomnilnik FPGA od gostitelja do naprave
  • Pomnilnik naprave FPGA do gostitelja

Sistem Platform Designer, $OPAE_PLATFORM_ROOT/hw/samples/ dma_afu/hw/rtl/TEST_dma/ /dma_test_system.qsys implementira večino DMA

  • AFU. Del DMA AFU, ki je implementiran v sistemu Platform Designer, je na voljo v nadaljevanju

lokacija: $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/hw/rtl/TEST_dma/ DMA BBB najdete na naslednji lokaciji:

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

Uporabniški priročnik za funkcionalno enoto pospeševalnika DMA: programabilna pospeševalna kartica Intel FPGA D5005

Blokovni diagram strojne opreme DMA AFU

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

DMA AFU vključuje naslednje notranje module za vmesnik z vmesniško enoto FPGA (FIU):

  • Logika dekoderja Memory-Mapped IO (MMIO): zazna transakcije branja in pisanja MMIO in jih loči od kanala CCI-P RX 0, iz katerega prihajajo. To zagotavlja, da promet MMIO nikoli ne doseže MPF BBB in ga servisira neodvisen ukazni kanal MMIO.
  • Tovarna lastnosti pomnilnika (MPF): Ta modul zagotavlja, da se branje odzivov iz DMA vrne v vrstnem redu, v katerem so bili izdani. Protokol Avalon-MM zahteva, da se odgovori branja vrnejo v pravilnem vrstnem redu.
  • Adapter CCI-P v Avalon-MM: Ta modul prevaja med transakcijami CCI-P in Avalon-MM, kot sledi:
  • Adapter CCI-P v Avalon-MMIO: Ta pot prevede transakcije CCI-P MMIO v transakcije Avalon-MM.
  • Avalon v gostiteljski adapter CCI-P: Te poti ustvarijo ločeni poti samo za branje in samo za pisanje za DMA za dostop do pomnilnika gostitelja.
  • Testni sistem DMA: Ta modul služi kot ovoj okoli DMA BBB, da izpostavi glavne enote DMA preostali logiki v AFU. Zagotavlja vmesnik med DMA BBB in adapterjem CCI-P za Avalon. Zagotavlja tudi vmesnik med DMA BBB in lokalnimi bankami FPGA SDRAM.

Povezane informacije
Podatkovni list upravljalnika vmesnika FPGA za programljivo pospeševalno kartico Intel FPGA D5005

Testni sistem DMA

Testni sistem DMA povezuje DMA BBB s preostalim delom zasnove FPGA, vključno s prilagoditvijo CCI-P in lokalnim pomnilnikom FPGA.

Blokovni diagram testnega sistema DMA
Ta blokovni diagram prikazuje notranjost testnega sistema DMA. Preskusni sistem DMA je prikazan kot monoliten blok na sliki 1 na strani 7.Intel.-FPGA-Programmable-Acceleration-Card-D5005-fig-2

Testni sistem DMA vključuje naslednje notranje module:

  • Most Far Reach/Pipeline Bridge: Cevovodni most z vključeno nastavljivo zakasnitvijo za nadzor topologije in izboljšanje zasnove Fmax.
  • DMA AFU Device Feature Header (DFH): To je DFH za DMA AFU. Ta DFH kaže na naslednji DFH, ki se nahaja na odmiku 0x100 (DMA BBB DFH).
  • Null DFH: Ta komponenta konča povezani seznam DFH. Če v zasnovo dodate več DMA BBB-jev, zagotovite, da se ničelni osnovni naslov DFH nahaja na koncu povezanega seznama DFH.
  • MA Basic Building Block (BBB): ta blok premika podatke med gostiteljem in lokalnim pomnilnikom FPGA. Prav tako dostopa do pomnilnika gostitelja za dostop do verig deskriptorjev.

DMA BBB

Podsistem DMA BBB prenaša podatke od izvornih do ciljnih naslovov z uporabo transakcij Avalon-MM. Gonilnik DMA nadzoruje DMA BBB z dostopom do nadzornega in statusnega registra različnih komponent znotraj sistema. Gonilnik DMA nadzoruje tudi DMA BBB z uporabo skupnega pomnilnika za sporočanje deskriptorjev prenosa. DMA BBB dostopa do podatkov v pomnilniku FPGA pri odmiku 0x0. DMA BBB dostopa do podatkov in deskriptorjev v pomnilniku gostitelja pri odmiku 0x1_0000_0000_0000.

Blokovni diagram oblikovalca platforme DMA BBB
Ta blokovni diagram izključuje nekatera notranja IP jedra cevovodnega mostu.Intel.-FPGA-Programmable-Acceleration-Card-D5005-fig-6

Uporabniški priročnik za funkcionalno enoto pospeševalnika DMA: programabilna pospeševalna kartica Intel FPGA D5005

Opis DMA AFU

Komponente v DMA BBB Platform Designer izvajajo naslednje funkcije:

  • Daljni most/most cevovoda: Cevovodni most z nastavljivo zakasnitvijo je vključen za nadzor topologije in izboljšanje zasnove Fmax.
  • MA BBB DFH: To je glava funkcije naprave za DMA BBB. Ta DFH kaže na naslednji DFH, ki se nahaja na odmiku 0x100 (Null DFH).
  • Frontend deskriptorja: Odgovoren za pridobivanje deskriptorjev in njihov prenos dispečerju. Ko se prenos DMA zaključi, sprednji del prejme oblikovanje statusa od dispečerja in prepiše deskriptor v pomnilniku gostitelja.
  • Dispečer: Ta blok razporeja zahteve za prenose DMA na glavno enoto za branje in pisanje.
  • Preberi Mojstra: Ta blok je odgovoren za branje podatkov iz gostiteljskega ali lokalnega pomnilnika FPGA in pošiljanje kot pretočne podatke v Write Master.
  • Napišite mojstra: Ta blok je odgovoren za sprejemanje pretočnih podatkov iz Read Master in zapisovanje vsebine v gostiteljski ali lokalni pomnilnik FPGA.

Registrirajte zemljevid in naslovne prostore

DMA AFU podpira dva pomnilnika views: DMA view in gostitelj view. DMA view podpira 49-bitni naslovni prostor. Spodnja polovica DMA view preslika v lokalni pomnilnik FPGA. Zgornja polovica DMA view preslikave v pomnilnik gostitelja. Gostitelj view vključuje vse registre, dostopne prek dostopov MMIO, kot so tabele DFH, in registre nadzora/statusa različnih jeder IP, ki se uporabljajo znotraj DMA AFU. Registri MMIO v DMA BBB in AFU podpirajo 32- in 64-bitni dostop. DMA AFU ne podpira 512-bitnih dostopov MMIO. Dostopi do dispečerskih registrov znotraj DMA BBB morajo biti 32-bitni (vmesnik deskriptorja izvaja 64-bitne registre).

Zemljevid registra DMA AFU

Zemljevid registra DMA AFU zagotavlja absolutne naslove vseh lokacij znotraj enote. Ti registri so v gostitelju view ker do njih lahko dostopa samo gostitelj.

Zemljevid pomnilnika DMA AFU

Odmiki bajtnega naslova Ime Razpon v bajtih Opis
0x0 DMA AFU DFH 0x40 Glava funkcije naprave za DMA AFU. ID_L je nastavljen na 0x9081f88b8f655caa, ID_H pa na 0x331db30c988541ea. DMA AFU DFH je bil parametriran tako, da kaže na odmik 0x100 za iskanje naslednjega DFH (DMA BBB DFH). Osnovnega naslova DMA AFU DFH ne smete spreminjati, ker se mora nahajati na naslovu 0x0, kot je opredeljeno v specifikaciji CCIP.
0x100 DMA BBB 0x100 Podaja nadzor DMA BBB in vmesnik statusnega registra. Za več informacij si lahko ogledate zemljevid registra DMA BBB. Znotraj DMA BBB pri odmiku 0 vključuje DMA BBB svoj lastni DFH. Ta DFH je bil nastavljen za iskanje naslednjega DFH pri odmiku 0x100 (NULL DFH). Če dodate več DMA BBB, jih razmaknite 0x100 narazen in zagotovite, da NULL DFH sledi zadnjemu DMA za 0x100.
0x200 NIČ DFH 0x40 Zaključi povezani seznam DFH. ID_L je nastavljen na 0x90fe6aab12a0132f, ID_H pa na 0xda1182b1b3444e23. NULL DFH je bil parametriran kot zadnji DFH v strojni opremi. Iz tega razloga se NULL DFH nahaja na naslovu 0x200. Če sistemu dodate dodatne BBB-je DMA, morate ustrezno povečati osnovni naslov NULL DFH, tako da ostane na najvišjem naslovu. Gonilnik DMA in preskusna aplikacija ne uporabljata te strojne opreme.

Intel Corporation. Vse pravice pridržane. Intel, logotip Intel in druge znamke Intel so blagovne znamke družbe Intel Corporation ali njenih podružnic. Intel jamči za delovanje svojih izdelkov FPGA in polprevodnikov v skladu s trenutnimi specifikacijami v skladu z Intelovo standardno garancijo, vendar si pridržuje pravico do sprememb katerega koli izdelka in storitve kadar koli brez predhodnega obvestila. Intel ne prevzema nobene odgovornosti ali obveznosti, ki izhaja iz uporabe ali uporabe katere koli informacije, izdelka ali storitve, opisanih tukaj, razen če je Intel izrecno pisno privolil v to. Intelovim strankam svetujemo, da pridobijo najnovejšo različico specifikacij naprave, preden se zanesejo na kakršne koli objavljene informacije in preden oddajo naročila za izdelke ali storitve. *Druga imena in blagovne znamke so lahko last drugih.

Registrirajte zemljevid in naslovne prostore

Zemljevid pomnilnika DMA BBB
Naslednji bajtni naslovi so relativni odmiki od osnovnega naslova DMA BBB v sistemu DMA AFU (0x100).

Odmiki bajtnega naslova Ime Razpon v bajtih Opis
0x0 DMA BBB DFH 0x40 Glava funkcije naprave za DMA AFU. ID_L je nastavljen na 0xa9149a35bace01ea in ID_H je nastavljen na 0xef82def7f6ec40fc. DMA BBB DFH je bil parametriran tako, da kaže na 0x100 za naslednji odmik DFH. Ta naslednji odmik je lahko drug DMA BBB, drug DFH (ni vključen v to zasnovo) ali NULL DFH.
0x40 Dispečer 0x40 Nadzorna vrata za dispečerja. Gonilnik DMA uporablja to lokacijo za nadzor DMA ali poizvedovanje o njegovem stanju.
0x80 Deskriptor Frontend 0x40 Frontend deskriptorja je komponenta po meri, ki bere deskriptorje iz pomnilnika gostitelja in prepiše deskriptor, ko je prenos DMA končan. Gonilnik ukaže sprednjemu delu, kje v pomnilniku gostitelja živi prvi deskriptor, nato pa strojna oprema sprednjega dela komunicira z gonilnikom predvsem prek deskriptorjev, shranjenih v pomnilniku gostitelja.

Naslovni prostor DMA AFU

Gostitelj lahko dostopa do registrov, navedenih v tabeli 4 na strani 12 in tabeli 5 na strani 13. Podsistem DMA BBB ima dostop do celotnega 49-bitnega naslovnega prostora. Spodnja polovica tega naslovnega prostora vključuje lokalne pomnilnike FPGA. Zgornja polovica tega naslovnega prostora vključuje 48-bitni naslovni pomnilnik gostitelja. Naslednja slika prikazuje gostitelja in DMA views spomina.

DMA AFU in Host Views spomina

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

Povezani seznam glave funkcij naprave

Dizajn DMA AFU exampvsebuje tri glave funkcij naprave (DFH), ki tvorijo povezan seznam. Ta povezani seznam omogoča sample aplikacija za identifikacijo DMA AFU kot tudi gonilnik za identifikacijo DMA BBB. Seznam DFH na koncu vključuje NULL DFH. Vključitev ničelnega DFH na koncu povezanega seznama vam omogoča, da svojemu dizajnu dodate več DMA BBB. Preprosto morate premakniti NULL DFH na naslov za drugimi BBB-ji. Vsak DMA BBB pričakuje, da bo naslednji DFH lociran 0x100 bajtov od osnovnega naslova BBB. Naslednja slika prikazuje povezani seznam za načrt DMA AFU example.

Registrirajte zemljevid in naslovne prostore

Veriženje glave funkcij naprave DMA AFU (DFH).

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

Model programiranja programske opreme

DMA AFU vključuje programski gonilnik, ki ga lahko uporabite v svoji gostiteljski aplikaciji. Fpga_dma.cpp in fpga_dma.h files, ki se nahaja na naslednjem mestu, izvaja programski gonilnik: $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw Ta gonilnik podpira naslednje funkcije:

API Opis
fpgaCountDMAChannels Preišče verigo funkcij naprave za DMA BBB in prešteje vse razpoložljive kanale.
fpgaDMAOpen Odpre ročico za kanal DMA.
fpgaDMAClose Zapre ročico za kanal DMA.
fpgaDMATransferInit Inicializira objekt, ki predstavlja prenos DMA.
fpgaDMATransferReset Ponastavi objekt atributa prenosa DMA na privzete vrednosti.
fpgaDMATransferDestroy Uniči objekt atributa prenosa DMA.
fpgaDMATransferSetSrc Nastavi izvorni naslov prenosa. Ta naslov mora biti poravnan s 64 bajti.
fpgaDMATransferSetDst Nastavi ciljni naslov prenosa. Ta naslov mora biti poravnan s 64 bajti.
fpgaDMATransferSetLen Nastavi dolžine prenosa v bajtih. Za prenose brez paketov morate nastaviti dolžino prenosa na večkratnik 64 bajtov. Za paketne prenose to ni pogoj.
fpgaDMATransferSetTransferType Nastavi vrsto prenosa. Pravne vrednosti so:

• HOST_MM_TO_FPGA_MM = TX (gostitelj v AFU)

• FPGA_MM_TO_HOST_MM = RX (AFU do gostitelja)

fpgaDMATransferSetTransferCallback Registrira povratni klic za obvestilo o zaključku asinhronega prenosa. Če določite povratni klic, se fpgaDMATransfer takoj vrne (asinhroni prenos).

Če ne določite povratnega klica, se fpgaDMATransfer vrne po končanem prenosu (sinhroni/blokirni prenos).

fpgaDMATransferSetLast Označuje zadnji prenos, tako da DMA lahko začne obdelovati vnaprej pridobljene prenose. Privzeta vrednost je 64 prenosov v cevovodu, preden DMA začne delati na prenosih.
fpgaDMATransfer Izvaja prenos DMA.

Za več informacij o API-ju, vhodnih in izhodnih argumentih glejte glavo file nahaja $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw/fpga_dma.hIntel Corporation. Vse pravice pridržane. Intel, logotip Intel in druge znamke Intel so blagovne znamke družbe Intel Corporation ali njenih podružnic. Intel jamči za delovanje svojih izdelkov FPGA in polprevodnikov v skladu s trenutnimi specifikacijami v skladu z Intelovo standardno garancijo, vendar si pridržuje pravico do sprememb katerega koli izdelka in storitve kadar koli brez predhodnega obvestila. Intel ne prevzema nobene odgovornosti ali obveznosti, ki izhaja iz uporabe ali uporabe katere koli informacije, izdelka ali storitve, opisanih tukaj, razen če je Intel izrecno pisno privolil v to. Intelovim strankam svetujemo, da pridobijo najnovejšo različico specifikacij naprave, preden se zanesejo na kakršne koli objavljene informacije in preden oddajo naročila za izdelke ali storitve. Druga imena in blagovne znamke se lahko zahtevajo kot last drugih.

Model programiranja programske opreme

Če želite izvedeti več o modelu uporabe gonilnika programske opreme, glejte README file ki se nahaja na $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/README.md

Teče DMA AFU Example

Preden začnete:

  • Bivšega bi morali poznatiampv vodniku za hitri začetek Intel Acceleration Stack za Intel FPGA Programmable Acceleration Card D5005.
  • Določiti morate spremenljivko okolja. Spremenljivka okolja je odvisna od različice Intel Acceleration Stack, ki jo uporabljate:
    • Za trenutno različico nastavite spremenljivko okolja na $OPAE_PLATFORM_ROOT
  • Namestiti morate knjižnico Intel Threading Building Blocks (TBB), ker se gonilnik DMA opira nanjo.
  • Za zagon sample aplikacija. $ sudo sh -c “echo 2 > /sys/kernel/mm/hugepages/hugepages-1048576kB/ nr_hugepages”

Opravite naslednje korake, da prenesete bitni tok DMA Accelerator Function (AF), zgradite aplikacijo in gonilnik ter zaženete načrtovanje example:

  1. Spremenite v imenik aplikacije in gonilnika DMA: cd $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw
  2. Zgradite gonilnik in aplikacijo: make
  3. Prenesite bitni tok DMA AFU: sudo fpgasupdate ../bin/dma_afu_unsigned.gbs
  4. Izvedite gostiteljsko aplikacijo, da zapiše 100 MB v 1 MB delih iz pomnilnika gostitelja v pomnilnik naprave FPGA in jo prebere nazaj: ./ fpga_dma_test -s 104857600 -p 1048576 -r mtom

Povezane informacije
Priročnik za hiter začetek Intel Acceleration Stack za programljivo pospeševalno kartico Intel FPGA D5005 Intel Corporation. Vse pravice pridržane. Intel, logotip Intel in druge znamke Intel so blagovne znamke družbe Intel Corporation ali njenih podružnic. Intel jamči za delovanje svojih izdelkov FPGA in polprevodnikov v skladu s trenutnimi specifikacijami v skladu z Intelovo standardno garancijo, vendar si pridržuje pravico do sprememb katerega koli izdelka in storitve kadar koli brez predhodnega obvestila. Intel ne prevzema nobene odgovornosti ali obveznosti, ki izhaja iz uporabe ali uporabe katere koli informacije, izdelka ali storitve, opisanih tukaj, razen če je Intel izrecno pisno privolil v to. Intelovim strankam svetujemo, da pridobijo najnovejšo različico specifikacij naprave, preden se zanesejo na kakršne koli objavljene informacije in preden oddajo naročila za izdelke ali storitve. *Druga imena in blagovne znamke so lahko last drugih.

Sestavljanje DMA AFU Example

Če želite ustvariti okolje gradnje sinteze za prevajanje AF, uporabite ukaz afu_synth_setup kot sledi:

  1. Sprememba v DMA AFU sampdatotečni imenik: $OPAE_PLATFORM_ROOT/hw/samples/dma_afu
  2. Ustvarite imenik gradnje načrta: afu_synth_setup –source hw/rtl/filelist.txt build_synth
  3. Iz imenika sintezne gradnje, ki ga ustvari afu_synth_setup, vnesite naslednje ukaze iz okna terminala, da ustvarite AF za ciljno platformo strojne opreme: cd build_synth run.sh Skript za generiranje AF run.sh ustvari sliko AF z isto osnovo fileime kot konfiguracija platforme AFU file (.json) s pripono .gbs na lokaciji: $OPAE_PLATFORM_ROOT/hw/samples/build_synth/dma_afu_s10.gbs Korporacija Intel. Vse pravice pridržane. Intel, logotip Intel in druge znamke Intel so blagovne znamke družbe Intel Corporation ali njenih podružnic. Intel jamči za delovanje svojih izdelkov FPGA in polprevodnikov v skladu s trenutnimi specifikacijami v skladu z Intelovo standardno garancijo, vendar si pridržuje pravico do sprememb katerega koli izdelka in storitve kadar koli brez predhodnega obvestila. Intel ne prevzema nobene odgovornosti ali obveznosti, ki izhaja iz uporabe ali uporabe katere koli informacije, izdelka ali storitve, opisanih tukaj, razen če je Intel izrecno pisno privolil v to. Intelovim strankam svetujemo, da pridobijo najnovejšo različico specifikacij naprave, preden se zanesejo na kakršne koli objavljene informacije in preden oddajo naročila za izdelke ali storitve. *Druga imena in blagovne znamke so lahko last drugih.

Simulacija AFU Example

Intel priporoča, da si ogledate vodnik za hiter začetek simulacijskega okolja (ASE) Intel Accelerator Functional Unit (AFU) za vaš Intel FPGA PAC, da se seznanite s simulacijo podobnih exampin nastavite svoje okolje. Preden nadaljujete z naslednjimi koraki, preverite, ali je spremenljivka okolja OPAE_PLATFORM_ROOT nastavljena na namestitveni imenik OPAE SDK. Izvedite naslednje korake za nastavitev simulatorja strojne opreme za DMA AFU:

  1. Sprememba v DMA AFU sampimenik datotek: cd $OPAE_PLATFORM_ROOT/hw/samples/dma_afu
  2. Ustvarite okolje ASE v novem imeniku in ga konfigurirajte za simulacijo AFU: afu_sim_setup –source hw/rtl/filelist.txt build_ase_dir
  3. Spremenite v imenik gradnje ASE: cd build_ase_dir
  4. Zgradite gonilnik in aplikacijo: make
  5. Naredite simulacijo: naredite sim

Sampizhod datoteke iz simulatorja strojne opreme:

[SIM] ** POZOR: PREDEN zaženete programsko aplikacijo ** [SIM] Nastavite env(ASE_WORKDIR) v terminalu, kjer se bo izvajala aplikacija (kopiraj in prilepi) => [SIM] $SHELL | Zaženi: [SIM] ———+———————————————— [SIM] bash/zsh | izvoz 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] Za kateri koli drug $SHELL se posvetujte s skrbnikom Linuxa [SIM] [SIM] Pripravljen za simulacijo… [SIM] Pritisnite CTRL-C, da zaprete simulator…

Izvedite naslednje korake za prevajanje in izvajanje programske opreme DMA AFU v simulacijskem okolju:

  1. Odprite novo terminalsko okno.
  2. Spremenite imenik v: cd $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw

Intel Corporation. Vse pravice pridržane. Intel, logotip Intel in druge znamke Intel so blagovne znamke družbe Intel Corporation ali njenih podružnic. Intel jamči za delovanje svojih izdelkov FPGA in polprevodnikov v skladu s trenutnimi specifikacijami v skladu z Intelovo standardno garancijo, vendar si pridržuje pravico do sprememb katerega koli izdelka in storitve kadar koli brez predhodnega obvestila. Intel ne prevzema nobene odgovornosti ali obveznosti, ki izhaja iz uporabe ali uporabe katere koli informacije, izdelka ali storitve, opisanih tukaj, razen če je Intel izrecno pisno privolil v to. Intelovim strankam svetujemo, da pridobijo najnovejšo različico specifikacij naprave, preden se zanesejo na kakršne koli objavljene informacije in preden oddajo naročila za izdelke ali storitve. *Druga imena in blagovne znamke so lahko last drugih.

Simulacija AFU Example

  1. Kopirajte niz nastavitve okolja (izberite niz, ki ustreza vaši lupini) iz zgornjih korakov v simulaciji strojne opreme v okno terminala. Glej naslednje vrstice v sample izhod iz simulatorja strojne opreme. [SIM] bash/zsh | izvoz 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. Prevedite programsko opremo: $ make USE_ASE=1
  3. Izvedite gostiteljsko aplikacijo za pisanje 4 KB v delih po 1 KB iz pomnilnika gostitelja nazaj v pomnilnik naprave FPGA v načinu povratne zanke: ./ fpga_dma_test -s 4096 -p 1024 -r mtom

Povezane informacije
Hitri uporabniški priročnik za simulacijsko okolje ASE (Intel Accelerator Functional Unit (AFU)).

Optimizacija za izboljšano delovanje DMA

Izvedba optimizacije NUMA (neenoten dostop do pomnilnika) v fpga_dma_test.cpp omogoča procesorju hitrejši dostop do lastnega lokalnega pomnilnika kot dostop do nelokalnega pomnilnika (lokalni pomnilnik drugega procesorja). Tipična konfiguracija NUMA je prikazana na spodnjem diagramu. Lokalni dostop predstavlja dostop od jedra do pomnilnika, lokalnega za isto jedro. Oddaljeni dostop ponazarja pot, po kateri jedro na vozlišču 0 dostopa do pomnilnika, ki se nahaja v pomnilniku, lokalnem za vozlišče 1.

Tipična konfiguracija NUMA

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

Za implementacijo optimizacije NUMA v testni aplikaciji uporabite naslednjo kodo:

// Nastavitev ustrezne afinitete, če je zahtevana if (cpu_affinity || memory_affinity) {unsigned dom = 0, bus = 0, dev = 0, func = 0; fpga_properties props;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”); // Najdi napravo iz topologije hwloc_topology_t topology; hwloc_topology_init(&topologija); hwloc_topology_set_flags(topologija, HWLOC_TOPOLOGY_FLAG_IO_DEVICES);Intel Corporation. Vse pravice pridržane. Intel, logotip Intel in druge znamke Intel so blagovne znamke družbe Intel Corporation ali njenih podružnic. Intel jamči za delovanje svojih izdelkov FPGA in polprevodnikov v skladu s trenutnimi specifikacijami v skladu z Intelovo standardno garancijo, vendar si pridržuje pravico do sprememb katerega koli izdelka in storitve kadar koli brez predhodnega obvestila. Intel ne prevzema nobene odgovornosti ali obveznosti, ki izhaja iz uporabe ali uporabe katere koli informacije, izdelka ali storitve, opisanih tukaj, razen če je Intel izrecno pisno privolil v to. Intelovim strankam svetujemo, da pridobijo najnovejšo različico specifikacij naprave, preden se zanesejo na kakršne koli objavljene informacije in preden oddajo naročila za izdelke ali storitve. *Druga imena in blagovne znamke so lahko last drugih.

Optimizacija za izboljšano delovanje DMA

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

Arhiv uporabniškega priročnika za funkcionalno enoto DMA Accelerator

Različica Intel Acceleration Stack Uporabniški priročnik (PDF)
2.0 Uporabniški priročnik za funkcionalno enoto pospeševalnika DMA (AFU).

Zgodovina revizij dokumenta za uporabniški priročnik funkcionalne enote DMA Accelerator

 

Različica dokumenta

Intelov pospešek Različica sklada  

Spremembe

 

 

2020.08.03

2.0.1 (podprto z Intel

Quartus® Prime Pro Edition Edition 19.2)

 

Popravljena slika AF file ime v razdelku Sestavljanje DMA AFU Example.

 

 

2020.04.17

2.0.1 (podprto z Intel

Quartus Prime Pro Edition Edition 19.2)

 

 

Popravil izjavo v Predvideno občinstvo razdelek.

 

 

2020.02.20

2.0.1 (podprto z Intel

Quartus Prime Pro Edition Edition 19.2)

 

 

Popravljena tipkarska napaka.

 

 

 

 

2019.11.04

 

 

2.0.1 (podprto z Intel

Quartus Prime Pro Edition Edition 19.2)

• Fpgaconf je bil zamenjan s fpgasupdate pri konfiguraciji FPGA s predzgrajenim AFU v razdelku Izvajanje DMA AFU Example.

• Dodan podnapis Programirljiva pospeševalna kartica Intel FPGA D5005 na naslov dokumenta.

• Dodana spremenljivka okolja $OPAE_PLATFORM_ROOT.

• Spremenjen razdelek Model programiranja programske opreme za manjše popravke.

• Dodan nov razdelek Sestavljanje DMA AFU Example.

• Spremenjen razdelek Optimizacija za izboljšano delovanje DMA za manjše popravke.

 

 

2019.08.05

2.0 (podprto z Intel

Quartus Prime Pro Edition 18.1.2)

 

 

Začetna izdaja.

Intel Corporation. Vse pravice pridržane. Intel, logotip Intel in druge znamke Intel so blagovne znamke družbe Intel Corporation ali njenih podružnic. Intel jamči za delovanje svojih izdelkov FPGA in polprevodnikov v skladu s trenutnimi specifikacijami v skladu z Intelovo standardno garancijo, vendar si pridržuje pravico do sprememb katerega koli izdelka in storitve kadar koli brez predhodnega obvestila. Intel ne prevzema nobene odgovornosti ali obveznosti, ki izhaja iz uporabe ali uporabe katere koli informacije, izdelka ali storitve, opisanih tukaj, razen če je Intel izrecno pisno privolil v to. Intelovim strankam svetujemo, da pridobijo najnovejšo različico specifikacij naprave, preden se zanesejo na kakršne koli objavljene informacije in preden oddajo naročila za izdelke ali storitve.

  • Druga imena in blagovne znamke se lahko zahtevajo kot last drugih.

 

Dokumenti / Viri

Programirljiva pospeševalna kartica Intel FPGA D5005 [pdf] Uporabniški priročnik
FPGA programabilna pospeševalna kartica, D5005, FPGA programabilna pospeševalna kartica D5005, funkcijska enota pospeševalnika DMA

Reference

Pustite komentar

Vaš elektronski naslov ne bo objavljen. Obvezna polja so označena *