Intel FPGA programmeerbare versnellingskaart D5005
Oor hierdie dokument
Hierdie dokument beskryf die implementering van die direkte geheue toegang (DMA) Accelerator Functional Unit (AFU) en hoe om die ontwerp te bou om op hardeware of in simulasie te loop.
Beoogde gehoor
Die beoogde gehoor bestaan uit hardeware- of sagteware-ontwikkelaars wat 'n versnellerfunksie (AF) benodig om data plaaslik in die geheue te buffer wat aan die Intel FPGA-toestel gekoppel is.
Konvensies
Dokumentkonvensies
Konvensie | Beskrywing |
# | Gaan voor 'n opdrag wat aandui dat die opdrag as wortel ingevoer moet word. |
$ | Dui aan dat 'n opdrag as 'n gebruiker ingevoer moet word. |
Hierdie lettertipe | Filename, opdragte en sleutelwoorde word in hierdie lettertipe gedruk. Lang opdraglyne word in hierdie lettertipe gedruk. Alhoewel lang opdragreëls na die volgende reël mag oorgaan, is die terugkeer nie deel van die opdrag nie; moenie enter druk nie. |
Dui aan dat die plekhouerteks wat tussen die hoekhakies verskyn, met 'n toepaslike waarde vervang moet word. Moenie die hoekhakies betree nie. |
Akronieme
Akronieme
Akronieme | Uitbreiding | Beskrywing |
AF | Versneller funksie | Saamgestelde Hardware Accelerator-beeld geïmplementeer in FPGA-logika wat 'n toepassing versnel. |
AFU | Versneller funksionele eenheid | Hardewareversneller geïmplementeer in FPGA-logika wat 'n rekenaarbewerking vir 'n toepassing van die SVE aflaai om werkverrigting te verbeter. |
API | Toepassingsprogrammeringskoppelvlak | 'n Stel subroetine-definisies, protokolle en gereedskap vir die bou van sagtewaretoepassings. |
CCI-P | Kernkas-koppelvlak | CCI-P is die standaard koppelvlak wat AFU's gebruik om met die gasheer te kommunikeer. |
DFH | Toestelkenmerkopskrif | Skep 'n gekoppelde lys kenmerkopskrifte om 'n uitbreidbare manier te bied om kenmerke by te voeg. |
voortgesit … |
Intel Corporation. Alle regte voorbehou. Intel, die Intel-logo en ander Intel-merke is handelsmerke van Intel Corporation of sy filiale. Intel waarborg prestasie van sy FPGA- en halfgeleierprodukte volgens huidige spesifikasies in ooreenstemming met Intel se standaardwaarborg, maar behou die reg voor om enige tyd sonder kennisgewing veranderinge aan enige produkte en dienste aan te bring. Intel aanvaar geen verantwoordelikheid of aanspreeklikheid wat voortspruit uit die toepassing of gebruik van enige inligting, produk of diens wat hierin beskryf word nie, behalwe soos uitdruklik skriftelik deur Intel ooreengekom. Intel-kliënte word aangeraai om die nuutste weergawe van toestelspesifikasies te bekom voordat hulle op enige gepubliseerde inligting staatmaak en voordat bestellings vir produkte of dienste geplaas word. *Ander name en handelsmerke kan as die eiendom van ander geëis word.
Akronieme | Uitbreiding | Beskrywing |
FIM | FPGA-koppelvlakbestuurder | Die FPGA hardeware wat die FPGA Interface Unit (FIU) bevat en eksterne koppelvlakke vir geheue, netwerk, ens.
Die versnellerfunksie (AF) koppel met die FIM tydens looptyd. |
FIU | FPGA-koppelvlak-eenheid | FIU is 'n platform-koppelvlaklaag wat dien as 'n brug tussen platform-koppelvlakke soos PCIe*, UPI en AFU-kant-koppelvlakke soos CCI-P. |
MPF | Geheue-eienskappefabriek | Die MPF is 'n basiese boublok (BBB) wat AFU's kan gebruik om CCI-P verkeersvormingsoperasies vir transaksies met die FIU te verskaf. |
Versnellingswoordelys
Versnellingsstapel vir Intel® Xeon® SVE met FPGA's Woordelys
Termyn | Afkorting | Beskrywing |
Intel® Acceleration Stack vir Intel Xeon® CPU met FPGA's | Versnellingsstapel | 'n Versameling sagteware, firmware en gereedskap wat prestasiegeoptimaliseerde konneksie tussen 'n Intel FPGA en 'n Intel Xeon-verwerker bied. |
Intel FPGA programmeerbare versnellingskaart | Intel FPGA PAC | PCIe FPGA versneller kaart.
Bevat 'n FPGA Interface Manager (FIM) wat saam met 'n Intel Xeon verwerker oor die PCIe bus. |
- DMA Accelerator Funksionele Eenheid Gebruikersgids: Intel FPGA Programmeerbare Acceleration Card D5005
DMA AFU Beskrywing
Inleiding
Die Direct Memory Access (DMA) AFU example wys hoe om geheue-oordragte tussen die gasheerverwerker en die FPGA te bestuur. Jy kan die DMA AFU in jou ontwerp integreer om data tussen die gasheergeheue en die FPGA plaaslike geheue te skuif. Die DMA AFU bestaan uit die volgende submodules:
- Memory Properties Factory (MPF) Basiese Boublok (BBB)
- Core Cache Interface (CCI-P) na die Avalon® Memory-Mapped (Avalon-MM) Adapter
- DMA-toetsstelsel wat die DMA BBB bevat
Hierdie submodules word in meer besonderhede beskryf in die DMA AFU Hardewarekomponente-onderwerp hieronder.
Verwante inligting
- Die DMA AFU-hardewarekomponente op bladsy 6
- Avalon-koppelvlakspesifikasies
Vir meer inligting oor die Avalon-MM-protokol, insluitend tydsberekeningdiagramme vir lees- en skryftransaksies.
Die DMA AFU sagteware pakket
Die Intel Acceleration Stack vir Intel Xeon CPU met FPGAs-pakket file (*.tar.gz), sluit die DMA AFU example. Hierdie example verskaf 'n gebruikerspasiebestuurder. Die gasheertoepassing gebruik hierdie drywer sodanig dat die DMA data tussen gasheer- en FPGA-geheue skuif. Die hardeware binaries, bronne en die gebruikerspasiebestuurder is beskikbaar in die volgende gids: $OPAE_PLATFORM_ROOT/hw/samples/dma_afu . Voordat jy met die DMA AFU eksperimenteer, moet jy die Open Programmable Acceleration Engine (OPAE) sagtewarepakket installeer. Verwys na Installering van die OPAE-sagtewarepakket in die Intel Acceleration Stack Quick Start Guide vir Intel FPGA Programmeerbare Acceleration Card D5005 vir installasie-instruksies. Hierdie vinnige begingids bevat ook basiese inligting oor die oop programmeerbare versnellingsenjin (OPAE) en die opstel van 'n AFU. Na die installering van die Open Programmable Acceleration Engine (OPAE) sagtewarepakket, asampDie gasheertoepassing en die DMA AFU-gebruikerspasiebestuurder is beskikbaar in die volgende gids: $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw. Om die s uit te voerample gasheertoepassing, fpga_dma_test op u Intel FPGA PAC D5005 hardeware, verwys na die stappe in afdeling Die uitvoer van die DMA AFU Example. Intel Corporation. Alle regte voorbehou. Intel, die Intel-logo en ander Intel-merke is handelsmerke van Intel Corporation of sy filiale. Intel waarborg prestasie van sy FPGA- en halfgeleierprodukte volgens huidige spesifikasies in ooreenstemming met Intel se standaardwaarborg, maar behou die reg voor om enige tyd sonder kennisgewing veranderinge aan enige produkte en dienste aan te bring. Intel aanvaar geen verantwoordelikheid of aanspreeklikheid wat voortspruit uit die toepassing of gebruik van enige inligting, produk of diens wat hierin beskryf word nie, behalwe soos uitdruklik skriftelik deur Intel ooreengekom. Intel-kliënte word aangeraai om die nuutste weergawe van toestelspesifikasies te bekom voordat hulle op enige gepubliseerde inligting staatmaak en voordat bestellings vir produkte of dienste geplaas word. *Ander name en handelsmerke kan as die eiendom van ander geëis word.
Verwante inligting
- Intel Acceleration Stack Quick Start Guide vir Intel FPGA Programmeerbare Acceleration Card D5005
- Installeer die OPAE-sagtewarepakket
Die DMA AFU hardeware komponente
Die DMA AFU koppel met die FPGA Interface Unit (FIU) en FPGA geheue. Verwys na die FPGA Interface Manager Data Sheet vir Intel FPGA Programmable Acceleration Card D5005 vir gedetailleerde spesifikasies van die FPGA geheue. Die tans beskikbare hardeware dikteer hierdie geheuekonfigurasie. Toekomstige hardeware kan verskillende geheuekonfigurasies ondersteun. Jy kan die DMA AFU gebruik om data tussen die volgende bron- en bestemmingsliggings te kopieer:
- Die gasheer tot toestel FPGA geheue
- Toestel FPGA geheue aan die gasheer
'n Platformontwerperstelsel, $OPAE_PLATFORM_ROOT/hw/samples/ dma_afu/hw/rtl/TEST_dma/ /dma_test_system.qsys implementeer die meeste van die DMA
- AFU. Deel van die DMA AFU wat in die Platform Designer-stelsel geïmplementeer is, kan in die volgende gevind word
ligging:$OPAE_PLATFORM_ROOT/hw/samples/dma_afu/hw/rtl/TEST_dma/ Jy kan die DMA BBB op die volgende plek vind:
- $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/hw/rtl/dma_bbb
DMA Accelerator Funksionele Eenheid Gebruikersgids: Intel FPGA Programmeerbare Acceleration Card D5005
DMA AFU Hardeware Blokdiagram
Die DMA AFU sluit die volgende interne modules in om met die FPGA Interface Unit (FIU) te koppel:
- Geheue-gekarteerde IO (MMIO)-dekodeerderlogika: bespeur MMIO-lees- en skryftransaksies en skei dit van die CCI-P RX-kanaal 0 waaruit hulle kom. Dit verseker dat MMIO-verkeer nooit die MPF BBB bereik nie en deur 'n onafhanklike MMIO-bevelkanaal bedien word.
- Memory Properties Factory (MPF): Hierdie module verseker dat die antwoorde van die DMA teruggelees word in die volgorde waarin hulle uitgereik is. Die Avalon-MM-protokol vereis dat leesantwoorde in die korrekte volgorde terugkeer.
- CCI-P na Avalon-MM Adapter: Hierdie module vertaal tussen CCI-P en Avalon-MM transaksies, soos volg:
- CCI-P na Avalon-MMIO Adapter: Hierdie pad vertaal CCI-P MMIO-transaksies in Avalon-MM-transaksies.
- Avalon na CCI-P-gasheeradapter: Hierdie paaie skep afsonderlike leesalleen- en slegs-skryfpaaie vir die DMA om toegang tot gasheergeheue te verkry.
- DMA-toetsstelsel: Hierdie module dien as 'n omhulsel om die DMA BBB om die DMA-meesters bloot te stel aan die res van die logika in die AFU. Dit bied die koppelvlak tussen die DMA BBB en die CCI-P na Avalon Adapter. Dit bied ook die koppelvlak tussen die DMA BBB en die plaaslike FPGA SDRAM-banke.
Verwante inligting
FPGA-koppelvlakbestuurder-datablad vir Intel FPGA-programmeerbare versnellingskaart D5005
DMA toetsstelsel
Die DMA-toetsstelsel verbind die DMA BBB met die res van die FPGA-ontwerp, insluitend CCI-P-aanpassing en die plaaslike FPGA-geheue.
DMA Toetsstelsel Blokdiagram
Hierdie blokdiagram toon die internals van die DMA-toetsstelsel. Die DMA-toetsstelsel word as 'n monolitiese blok in Figuur 1 op bladsy 7 getoon.
Die DMA-toetsstelsel sluit die volgende interne modules in:
- Verreikbrug/Pyplynbrug: 'n Pyplynbrug met verstelbare latensie ingesluit om topologie te beheer en die ontwerp Fmax te verbeter.
- DMA AFU Device Feature Header (DFH): Dit is 'n DFH vir die DMA AFU. Hierdie DFH wys na die volgende DFH geleë teen offset 0x100 (DMA BBB DFH).
- Nul DFH: Hierdie komponent beëindig die DFH-gekoppelde lys. As jy meer DMA BBB'e by die ontwerp voeg, maak seker dat die nul DFH-basisadres aan die einde van die DFH-gekoppelde lys geleë is.
- MA Basiese Boublok (BBB): Hierdie blok skuif data tussen die gasheer en die plaaslike FPGA geheue. Dit kry ook toegang tot gasheergeheue om toegang tot beskrywingskettings te verkry.
DMA BBB
Die DMA BBB-substelsel dra data van bron- na bestemmingsadresse oor deur Avalon-MM-transaksies te gebruik. Die DMA-bestuurder beheer die DMA BBB deur toegang te verkry tot die beheer- en statusregister van die verskillende komponente binne die stelsel. Die DMA-bestuurder beheer ook die DMA BBB deur gedeelde geheue te gebruik om oordragbeskrywers te kommunikeer. Die DMA BBB kry toegang tot data in FPGA-geheue teen offset 0x0. Die DMA BBB kry toegang tot data en beskrywings in gasheergeheue teen offset 0x1_0000_0000_0000.
DMA BBB Platform Ontwerper Blokdiagram
Hierdie blokdiagram sluit sommige interne Pipeline Bridge IP-kerne uit.
DMA Accelerator Funksionele Eenheid Gebruikersgids: Intel FPGA Programmeerbare Acceleration Card D5005
DMA AFU Beskrywing
Die komponente in die DMA BBB Platform Designer implementeer die volgende funksies:
- Verreikbrug/Pyplynbrug: 'n Pyplynbrug met verstelbare latensie ingesluit om topologie te beheer en die ontwerp Fmax te verbeter.
- MA BBB DFH: Dit is 'n toestelkenmerkopskrif vir die DMA BBB. Hierdie DFH wys na die volgende DFH geleë teen offset 0x100 (Nul DFH).
- Beskrywing Frontend: Verantwoordelik om beskrywers te gaan haal en na die Versender oor te dra. Wanneer 'n DMA-oordrag voltooi is, ontvang die frontend statusvorming van die Dispatcher en skryf die beskrywer in die gasheergeheue oor.
- Versender: Hierdie blok skeduleer DMA-oordragversoeke na die Lees- en Skryfmeester.
- Lees Meester: Hierdie blok is verantwoordelik vir die lees van data vanaf gasheer- of plaaslike FPGA-geheue en stuur dit as stroomdata na Write Master.
- Skryf Meester: Hierdie blok is verantwoordelik vir die ontvangs van stroomdata vanaf die Leesmeester en die skryf van die inhoud na die gasheer- of plaaslike FPGA-geheue.
Registreer kaart- en adresruimtes
Die DMA AFU ondersteun twee geheue views: Die DMA view en die gasheer view. Die DMA view ondersteun 'n 49-bis adresspasie. Die onderste helfte van die DMA view kaarte na die plaaslike FPGA geheue. Die boonste helfte van die DMA view kaarte om geheue te huisves. Die gasheer view sluit al die registers in wat toeganklik is deur MMIO-toegange soos die DFH-tabelle, en die beheer-/statusregisters van die verskillende IP-kerne wat binne die DMA AFU gebruik word. Die MMIO registreer in die DMA BBB en AFU ondersteun 32- en 64-bis toegang. Die DMA AFU ondersteun nie 512-bis MMIO-toegange nie. Toegange tot die Dispatcher-registers binne die DMA BBB moet 32 biss wees (Descriptor frontend implementeer 64-bis registers).
DMA AFU Registreer Kaart
Die DMA AFU-registerkaart verskaf die absolute adresse van al die liggings binne die eenheid. Hierdie registers is in die gasheer view want dit is net die gasheer wat toegang tot hulle het.
DMA AFU geheue kaart
Byte-adresverskuiwings | Naam | Span in grepe | Beskrywing |
0x0 | DMA AFU DFH | 0x40 | Toestelkenmerkopskrif vir die DMA AFU. Die ID_L is gestel op 0x9081f88b8f655caa en ID_H is gestel op 0x331db30c988541ea. Die DMA AFU DFH is geparameteriseer om te wys na offset 0x100 om die volgende DFH (DMA BBB DFH) te vind. Jy mag nie die basisadres van die DMA AFU DFH verander nie, aangesien dit by adres 0x0 geleë moet wees soos gedefinieer deur die CCIP-spesifikasie. |
0x100 | DMA BBB | 0x100 | Spesifiseer DMA BBB beheer en status register koppelvlak. U kan na die DMA BBB-registerkaart verwys vir meer inligting. Binne die DMA BBB by offset 0 sluit die DMA BBB sy eie DFH in. Hierdie DFH is ingestel om die volgende DFH te vind teen offset 0x100 (NULL DFH). As jy meer DMA BBB's byvoeg, spasieer hulle 0x100 uitmekaar en verseker dat die NULL DFH die laaste DMA met 0x100 volg. |
0x200 | NULL DFH | 0x40 | Beëindig die DFH-gekoppelde lys. Die ID_L is gestel op 0x90fe6aab12a0132f en ID_H is gestel op 0xda1182b1b3444e23. Die NULL DFH is geparameteriseer om die laaste DFH in hardeware te wees. Om hierdie rede is die NULL DFH by adres 0x200 geleë. As jy bykomende DMA BBB's by die stelsel voeg, moet jy die NULL DFH-basisadres dienooreenkomstig verhoog sodat dit by die hoogste adres bly. Die DMA-bestuurder en toetstoepassing gebruik nie hierdie hardeware nie. |
Intel Corporation. Alle regte voorbehou. Intel, die Intel-logo en ander Intel-merke is handelsmerke van Intel Corporation of sy filiale. Intel waarborg prestasie van sy FPGA- en halfgeleierprodukte volgens huidige spesifikasies in ooreenstemming met Intel se standaardwaarborg, maar behou die reg voor om enige tyd sonder kennisgewing veranderinge aan enige produkte en dienste aan te bring. Intel aanvaar geen verantwoordelikheid of aanspreeklikheid wat voortspruit uit die toepassing of gebruik van enige inligting, produk of diens wat hierin beskryf word nie, behalwe soos uitdruklik skriftelik deur Intel ooreengekom. Intel-kliënte word aangeraai om die nuutste weergawe van toestelspesifikasies te bekom voordat hulle op enige gepubliseerde inligting staatmaak en voordat bestellings vir produkte of dienste geplaas word. *Ander name en handelsmerke kan as die eiendom van ander geëis word.
Registreer kaart- en adresruimtes
DMA BBB geheue kaart
Die volgende greepadresse is relatiewe afwykings vanaf die DMA BBB-basisadres in die DMA AFU-stelsel (0x100).
Byte-adresverskuiwings | Naam | Span in grepe | Beskrywing |
0x0 | DMA BBB DFH | 0x40 | Toestelkenmerkopskrif vir die DMA AFU. Die ID_L is ingestel op 0xa9149a35bace01ea en ID_H is ingestel op 0xef82def7f6ec40fc. Die DMA BBB DFH is geparameteriseer om te wys na 0x100 vir die volgende DFH offset. Hierdie volgende offset kan 'n ander DMA BBB, 'n ander DFH (nie ingesluit in hierdie ontwerp) of die NULL DFH wees. |
0x40 | Versender | 0x40 | Beheerpoort vir die versender. Die DMA-bestuurder gebruik hierdie ligging om die DMA te beheer of die status daarvan te bevraagteken. |
0x80 | Beskrywing Frontend | 0x40 | Die beskrywer-frontend is 'n pasgemaakte komponent wat beskrywers uit gasheergeheue lees en die beskrywer oorskryf wanneer die DMA-oordrag voltooi is. Die bestuurder gee die voorkant opdrag waar die eerste beskrywer in gasheergeheue woon en dan kommunikeer die voorkanthardeware met die bestuurder hoofsaaklik deur beskrywings wat in gasheergeheue gestoor is. |
DMA AFU-adresruimte
Die gasheer kan toegang verkry tot registers wat in die Tabel 4 op bladsy 12 en die Tabel 5 op bladsy 13 gelys word. Die DMA BBB-substelsel het toegang tot die volle 49-bis adresspasie. Die onderste helfte van hierdie adresruimte sluit die plaaslike FPGA-geheue in. Die boonste helfte van hierdie adresspasie sluit die 48-bis gasheeradresgeheue in. Die volgende figuur toon die gasheer en DMA views van geheue.
Die DMA AFU en Gasheer Views van geheue
Toestelkenmerkkop-gekoppelde lys
Die DMA AFU-ontwerp example bevat drie toestelkenmerkopskrifte (DFH) wat 'n gekoppelde lys vorm. Hierdie gekoppelde lys laat die sample aansoek om die DMA AFU te identifiseer sowel as die bestuurder om die DMA BBB te identifiseer. Die DFH-lys bevat 'n NULL DFH aan die einde. Die insluiting van die nul-DFH aan die einde van die gekoppelde lys laat jou toe om meer DMA BBB's by jou ontwerp te voeg. Jy moet eenvoudig die NULL DFH na 'n adres na die ander BBB'e skuif. Elke DMA BBB verwag dat die volgende DFH 0x100 grepe vanaf die basisadres van die BBB geleë sal wees. Die volgende figuur beeld die gekoppelde lys uit vir die DMA AFU-ontwerp bvample.
Registreer kaart- en adresruimtes
DMA AFU Device Feature Header (DFH) ketting
Sagteware Programmering Model
Die DMA AFU bevat 'n sagtewarebestuurder wat jy in jou eie gasheertoepassing kan gebruik. Die fpga_dma.cpp en fpga_dma.h files geleë op die volgende plek implementeer die sagteware drywer: $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw Hierdie bestuurder ondersteun die volgende funksies:
API | Beskrywing |
fpgaCountDMAChannels | Skandeer die toestelkenmerkketting vir DMA BBB's en tel alle beskikbare kanale. |
fpgaDMAOop | Maak 'n handvatsel oop vir die DMA-kanaal. |
fpgaDMACsluit | Maak 'n handvatsel toe vir die DMA-kanaal. |
fpgaDMATransferInit | Inisialiseer 'n voorwerp wat die DMA-oordrag verteenwoordig. |
fpgaDMATransferReset | Stel die DMA-oordragkenmerkvoorwerp terug na verstekwaardes. |
fpgaDMATransferDestroy | Vernietig die DMA-oordragkenmerk-objek. |
fpgaDMATransferSetSrc | Stel die bronadres van die oordrag. Hierdie adres moet 64 grepe belyn wees. |
fpgaDMATransferSetDst | Stel die bestemmingsadres van die oordrag. Hierdie adres moet 64 grepe belyn wees. |
fpgaDMATransferSetLen | Stel die oordraglengtes in grepe. Vir nie-pakkie-oordragte moet jy die oordraglengte op 'n veelvoud van 64 grepe stel. Vir pakkieoordragte is dit nie 'n vereiste nie. |
fpgaDMATransferSetTransferType | Stel die oordrag tipe. Wetlike waardes is:
• HOST_MM_TO_FPGA_MM = TX (gasheer vir AFU) • FPGA_MM_TO_HOST_MM = RX (AFU aan gasheer) |
fpgaDMATransferSetTransferCallback | Registreer terugbel vir kennisgewing oor asinchroniese oordrag voltooiing. As jy 'n terugbel spesifiseer, keer fpgaDMATransfer onmiddellik terug (asinchroniese oordrag).
As jy nie 'n terugbel spesifiseer nie, keer fpgaDMATransfer terug nadat die oordrag voltooi is (sinchroniese/blokkerende oordrag). |
fpgaDMATransferSetLast | Dui die laaste oordrag aan sodat die DMA die voorafafgehaalde oordragte kan begin verwerk. Die verstekwaarde is 64 oordragte in die pyplyn voordat die DMA aan die oordragte begin werk. |
fpgaDMATransfer | Voer 'n DMA-oordrag uit. |
Vir meer inligting oor die API, invoer- en uitvoerargumente, verwys na die kopskrif file geleë $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw/fpga_dma.hIntel Corporation. Alle regte voorbehou. Intel, die Intel-logo en ander Intel-merke is handelsmerke van Intel Corporation of sy filiale. Intel waarborg prestasie van sy FPGA- en halfgeleierprodukte volgens huidige spesifikasies in ooreenstemming met Intel se standaardwaarborg, maar behou die reg voor om enige tyd sonder kennisgewing veranderinge aan enige produkte en dienste aan te bring. Intel aanvaar geen verantwoordelikheid of aanspreeklikheid wat voortspruit uit die toepassing of gebruik van enige inligting, produk of diens wat hierin beskryf word nie, behalwe soos uitdruklik skriftelik deur Intel ooreengekom. Intel-kliënte word aangeraai om die nuutste weergawe van toestelspesifikasies te bekom voordat hulle op enige gepubliseerde inligting staatmaak en voordat bestellings vir produkte of dienste geplaas word. Ander name en handelsmerke kan as die eiendom van ander geëis word.
Sagteware Programmering Model
Om meer te wete te kom oor die gebruiksmodel van sagtewarebestuurder, verwys na die README file geleë op $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/README.md
DMA AFU Example
Voordat jy begin:
- Jy moet vertroud wees met die eksamples in die Intel Acceleration Stack Quick Start Guide vir Intel FPGA Programmeerbare Acceleration Card D5005.
- Jy moet 'n omgewingsveranderlike definieer. Die omgewingsveranderlike is afhanklik van die Intel Acceleration Stack-weergawe wat jy gebruik:
- Vir huidige weergawe, stel die omgewingsveranderlike op $OPAE_PLATFORM_ROOT
- Jy moet die Intel Threading Building Blocks (TBB)-biblioteek installeer aangesien die DMA-bestuurder daarop staatmaak.
- Jy moet ook twee 1 GB groot bladsye opstel om die s te laat loopample aansoek. $ sudo sh -c “echo 2 > /sys/kernel/mm/hugepages/hugepages-1048576kB/ nr_hugepages”
Voer die volgende stappe uit om die DMA Accelerator Function (AF) bitstroom af te laai, om die toepassing en drywer te bou, en om die ontwerp example:
- Verander na die DMA-toepassing en bestuurdergids: cd $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw
- Bou die bestuurder en toepassing: maak
- Laai die DMA AFU bitstream af: sudo fpgasupdate ../bin/dma_afu_unsigned.gbs
- Voer die gasheertoepassing uit om 100 MB in 1 MB-gedeeltes van gasheergeheue na FPGA-toestelgeheue te skryf en lees dit terug: ./ fpga_dma_test -s 104857600 -p 1048576 -r mtom
Verwante inligting
Intel Acceleration Stack Quick Start Guide vir Intel FPGA Programmeerbare Acceleration Card D5005 Intel Corporation. Alle regte voorbehou. Intel, die Intel-logo en ander Intel-merke is handelsmerke van Intel Corporation of sy filiale. Intel waarborg prestasie van sy FPGA- en halfgeleierprodukte volgens huidige spesifikasies in ooreenstemming met Intel se standaardwaarborg, maar behou die reg voor om enige tyd sonder kennisgewing veranderinge aan enige produkte en dienste aan te bring. Intel aanvaar geen verantwoordelikheid of aanspreeklikheid wat voortspruit uit die toepassing of gebruik van enige inligting, produk of diens wat hierin beskryf word nie, behalwe soos uitdruklik skriftelik deur Intel ooreengekom. Intel-kliënte word aangeraai om die nuutste weergawe van toestelspesifikasies te bekom voordat hulle op enige gepubliseerde inligting staatmaak en voordat bestellings vir produkte of dienste geplaas word. *Ander name en handelsmerke kan as die eiendom van ander geëis word.
Die samestelling van die DMA AFU Example
Om 'n sintesebou-omgewing te genereer om 'n AF saam te stel, gebruik die afu_synth_setup-opdrag soos volg:
- Verander na die DMA AFU sample gids: $OPAE_PLATFORM_ROOT/hw/samples/dma_afu
- Genereer die ontwerpbougids: afu_synth_setup –source hw/rtl/filelist.txt bou_synth
- Vanuit die sintese-bougids wat deur afu_synth_setup gegenereer is, voer die volgende opdragte vanaf 'n terminale venster in om 'n AF vir die teiken hardeware-platform te genereer: cd build_synth run.sh Die run.sh AF-generasieskrip skep die AF-beeld met dieselfde basis filenaam as die AFU se platformkonfigurasie file (.json) met 'n .gbs-agtervoegsel by die ligging:$OPAE_PLATFORM_ROOT/hw/samples/build_synth/dma_afu_s10.gbs Intel Corporation. Alle regte voorbehou. Intel, die Intel-logo en ander Intel-merke is handelsmerke van Intel Corporation of sy filiale. Intel waarborg prestasie van sy FPGA- en halfgeleierprodukte volgens huidige spesifikasies in ooreenstemming met Intel se standaardwaarborg, maar behou die reg voor om enige tyd sonder kennisgewing veranderinge aan enige produkte en dienste aan te bring. Intel aanvaar geen verantwoordelikheid of aanspreeklikheid wat voortspruit uit die toepassing of gebruik van enige inligting, produk of diens wat hierin beskryf word nie, behalwe soos uitdruklik skriftelik deur Intel ooreengekom. Intel-kliënte word aangeraai om die nuutste weergawe van toestelspesifikasies te bekom voordat hulle op enige gepubliseerde inligting staatmaak en voordat bestellings vir produkte of dienste geplaas word. *Ander name en handelsmerke kan as die eiendom van ander geëis word.
Simuleer die AFU Example
Intel beveel aan dat u na die Intel Accelerator Functional Unit (AFU) Simulasie-omgewing (ASE) vinnige begingids verwys vir u Intel FPGA PAC om vertroud te wees met die simulasie van soortgelyke ex.amples en om jou omgewing op te stel. Voordat jy deur die volgende stappe gaan, verifieer dat die OPAE_PLATFORM_ROOT omgewingsveranderlike ingestel is op die OPAE SDK-installasiegids. Voltooi die volgende stappe om die hardeware-simulator vir die DMA AFU op te stel:
- Verander na die DMA AFU sample gids: cd $OPAE_PLATFORM_ROOT/hw/samples/dma_afu
- Skep 'n ASE-omgewing in 'n nuwe gids en stel dit op om 'n AFU te simuleer: afu_sim_setup –source hw/rtl/filelist.txt bou_ase_dir
- Verander na die ASE-bougids: cd build_ase_dir
- Bou die bestuurder en toepassing: maak
- Maak simulasie: maak sim
Sample uitset vanaf die hardeware-simulator:
[SIM] ** AANDAG: VOORDAT jy die sagteware-toepassing hardloop ** [SIM] Stel env(ASE_WORKDIR) in terminaal waar toepassing sal loop (kopieer-en-plak) => [SIM] $SHELL | Hardloop:[SIM] ———+————————————————— [SIM] bash/zsh | uitvoer ASE_WORKDIR=$OPAE_PLATFORM_ROOT/hw/samples/dma_afu/ase_mkdir/werk [SIM] tcsh/csh | setenv ASE_WORKDIR $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/ase_mkdir/work [SIM] Vir enige ander $SHELL, raadpleeg jou Linux administrateur [SIM] [SIM] Gereed vir simulasie... [SIM] Druk CTRL-C om simulator toe te maak...Voltooi die volgende stappe om die DMA AFU-sagteware in die simulasie-omgewing saam te stel en uit te voer:
- Maak 'n nuwe terminale venster oop.
- Verander gids na: cd $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw
Intel Corporation. Alle regte voorbehou. Intel, die Intel-logo en ander Intel-merke is handelsmerke van Intel Corporation of sy filiale. Intel waarborg prestasie van sy FPGA- en halfgeleierprodukte volgens huidige spesifikasies in ooreenstemming met Intel se standaardwaarborg, maar behou die reg voor om enige tyd sonder kennisgewing veranderinge aan enige produkte en dienste aan te bring. Intel aanvaar geen verantwoordelikheid of aanspreeklikheid wat voortspruit uit die toepassing of gebruik van enige inligting, produk of diens wat hierin beskryf word nie, behalwe soos uitdruklik skriftelik deur Intel ooreengekom. Intel-kliënte word aangeraai om die nuutste weergawe van toestelspesifikasies te bekom voordat hulle op enige gepubliseerde inligting staatmaak en voordat bestellings vir produkte of dienste geplaas word. *Ander name en handelsmerke kan as die eiendom van ander geëis word.
Simuleer die AFU Example
- Kopieer die omgewingsopstelstring (kies string geskik vir jou dop) van die stappe hierbo in die hardeware-simulasie na die terminale venster. Sien die volgende reëls in die aample uitset vanaf die hardeware-simulator. [SIM] bash/zsh | uitvoer ASE_WORKDIR=$OPAE_PLATFORM_ROOT/hw/samples/dma_afu/build_ase_dir/werk [SIM] tcsh/csh | setenv ASE_WORKDIR $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/build_ase_dir/work
- Stel die sagteware saam: $ make USE_ASE=1
- Voer die gasheertoepassing uit om 4 KB in 1 KB-gedeeltes van die gasheergeheue terug te skryf na FPGA-toestelgeheue in die teruglusmodus: ./ fpga_dma_test -s 4096 -p 1024 -r mtom
Verwante inligting
Intel Accelerator Functional Unit (AFU) Simulation Environment (ASE) Quick Start User Guide
Optimalisering vir verbeterde DMA-prestasie
Implementering van NUMA (nie-uniforme geheuetoegang)-optimering in fpga_dma_test.cpp laat die verwerker toe om vinniger toegang tot sy eie plaaslike geheue te kry as om toegang tot nie-plaaslike geheue (geheue plaaslik na 'n ander verwerker) te verkry. 'n Tipiese NUMA-konfigurasie word in die diagram hieronder getoon. Die plaaslike toegang verteenwoordig toegang vanaf 'n kern tot geheue plaaslik tot dieselfde kern. Die afstandtoegang illustreer die pad wat geneem word wanneer 'n kern op Node 0 toegang verkry tot geheue wat in die geheue geleë is, plaaslik tot Node 1.
Tipiese NUMA-konfigurasie
Gebruik die volgende kode om NUMA-optimering in jou toetstoepassing te implementeer:
// Stel behoorlike affiniteit op indien versoek indien (cpu_affinity || memory_affinity) {unsigned dom = 0, bus = 0, dev = 0, func = 0; fpga_properties rekwisiete;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 (rekwisiete, (uint8_t *) & dev); on_err_goto (res, out, out_destroy_tok, “fpgapropertiesgetDevice”) res = fpgapropertiesfunction (rekwisiete, (uint8_t *) & func); On_err_goto (out, out_t_tok ertiesGetFunction ”); // Vind die toestel uit die topologie hwloc_topology_t topologie; hwloc_topology_init(&topologie); hwloc_topology_set_flags(topologie, HWLOC_TOPOLOGY_FLAG_IO_DEVICES); Intel Corporation. Alle regte voorbehou. Intel, die Intel-logo en ander Intel-merke is handelsmerke van Intel Corporation of sy filiale. Intel waarborg prestasie van sy FPGA- en halfgeleierprodukte volgens huidige spesifikasies in ooreenstemming met Intel se standaardwaarborg, maar behou die reg voor om enige tyd sonder kennisgewing veranderinge aan enige produkte en dienste aan te bring. Intel aanvaar geen verantwoordelikheid of aanspreeklikheid wat voortspruit uit die toepassing of gebruik van enige inligting, produk of diens wat hierin beskryf word nie, behalwe soos uitdruklik skriftelik deur Intel ooreengekom. Intel-kliënte word aangeraai om die nuutste weergawe van toestelspesifikasies te bekom voordat hulle op enige gepubliseerde inligting staatmaak en voordat bestellings vir produkte of dienste geplaas word. *Ander name en handelsmerke kan as die eiendom van ander geëis word.
Optimalisering vir verbeterde DMA-prestasie
hwloc_topology_load(topologie); hwloc_obj_t obj = hwloc_get_pcidev_by_busid(topologie, dom, bus, dev, funk); 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->nodeset); 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_THREAD_HWLOC_MEMBIND_MEMBIND_MEMBINDHINDWINDWINDWIND); #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 Funksionele Eenheid Gebruikersgids Argiewe
Intel Acceleration Stack weergawe | Gebruikersgids (PDF) |
2.0 | DMA Accelerator Functional Unit (AFU) Gebruikersgids |
Dokumenthersieningsgeskiedenis vir die DMA Accelerator Functional Unit User Guide
Dokument weergawe |
Intel versnelling Stapel weergawe |
Veranderinge |
2020.08.03 |
2.0.1 (ondersteun met Intel
Quartus® Prime Pro Edition Edition 19.2) |
Het die AF-beeld reggestel file naam in afdeling Die samestelling van die DMA AFU Example. |
2020.04.17 |
2.0.1 (ondersteun met Intel
Quartus Prime Pro Edition Edition 19.2) |
Het 'n stelling in Beoogde gehoor afdeling. |
2020.02.20 |
2.0.1 (ondersteun met Intel
Quartus Prime Pro Edition Edition 19.2) |
Vaste tikfout. |
2019.11.04 |
2.0.1 (ondersteun met Intel Quartus Prime Pro Edition Edition 19.2) |
• Het die fpgaconf vervang met fpgasupdate wanneer die FPGA gekonfigureer is met die voorafgeboude AFU in afdeling Bestuur die DMA AFU Example.
• Bygevoeg subtitel Intel FPGA programmeerbare versnellingskaart D5005 na die dokumenttitel. • Bygevoeg omgewingsveranderlike $OPAE_PLATFORM_ROOT. • Gewysigde afdeling Sagteware Programmering Model vir geringe wysigings. • Nuwe afdeling bygevoeg Die samestelling van die DMA AFU Example. • Gewysigde afdeling Optimalisering vir verbeterde DMA-prestasie vir geringe wysigings. |
2019.08.05 |
2.0 (ondersteun met Intel
Quartus Prime Pro Edition 18.1.2) |
Aanvanklike vrystelling. |
Intel Corporation. Alle regte voorbehou. Intel, die Intel-logo en ander Intel-merke is handelsmerke van Intel Corporation of sy filiale. Intel waarborg prestasie van sy FPGA- en halfgeleierprodukte volgens huidige spesifikasies in ooreenstemming met Intel se standaardwaarborg, maar behou die reg voor om enige tyd sonder kennisgewing veranderinge aan enige produkte en dienste aan te bring. Intel aanvaar geen verantwoordelikheid of aanspreeklikheid wat voortspruit uit die toepassing of gebruik van enige inligting, produk of diens wat hierin beskryf word nie, behalwe soos uitdruklik skriftelik deur Intel ooreengekom. Intel-kliënte word aangeraai om die nuutste weergawe van toestelspesifikasies te bekom voordat hulle op enige gepubliseerde inligting staatmaak en voordat bestellings vir produkte of dienste geplaas word.
- Ander name en handelsmerke kan as die eiendom van ander geëis word.
Dokumente / Hulpbronne
![]() |
Intel FPGA programmeerbare versnellingskaart D5005 [pdf] Gebruikersgids FPGA programmeerbare versnelling kaart, D5005, FPGA programmeerbare versnelling kaart D5005, DMA versneller funksionele eenheid |