Intel FPGA Programebla Akcela Karto D5005
Pri ĉi tiu Dokumento
Ĉi tiu dokumento priskribas la efektivigon de la Akcelilo Funkcia Unuo (AFU) de rekta memoraliro (DMA) kaj kiel konstrui la dezajnon por funkcii per aparataro aŭ en simulado.
Intencita Publiko
La celita spektantaro konsistas el aparataro aŭ programaro, kiuj postulas Akcelfunkcion (AF) bufri datumojn loke en memoro ligita al la Intel FPGA-aparato.
Konvencioj
Dokumentaj Konvencioj
Konvencio | Priskribo |
# | Antaŭas ordonon, kiu indikas, ke la komando estas enigota kiel radiko. |
$ | Indikas, ke komando estas enigota kiel uzanto. |
Ĉi tiu tiparo | Filenomoj, komandoj kaj ŝlosilvortoj estas presitaj en ĉi tiu tiparo. Longaj komandlinioj estas presitaj en ĉi tiu tiparo. Kvankam longaj komandlinioj povas envolvi al la sekva linio, la reveno ne estas parto de la komando; ne premu enen. |
Indikas, ke la lokokupilo teksto kiu aperas inter la angulaj krampoj devas esti anstataŭigita per taŭga valoro. Ne enigu la angulajn krampojn. |
Akronimoj
Akronimoj
Akronimoj | Ekspansio | Priskribo |
AF | Akcelila Funkcio | Kompilita Hardware Accelerator-bildo efektivigita en FPGA-logiko kiu akcelas aplikaĵon. |
AFU | Akcelilo Funkcia Unuo | Hardware Accelerator efektivigita en FPGA-logiko kiu malŝarĝas komputilan operacion por aplikiĝo de la CPU por plibonigi efikecon. |
API | Aplika Programado-Interfaco | Aro de subrutinaj difinoj, protokoloj, kaj iloj por konstrui programarojn. |
CCI-P | Kerna Cache-Interfaco | CCI-P estas la norma interfaco kiun AFU uzas por komuniki kun la gastiganto. |
DFH | Aparato Feature Header | Kreas ligitan liston de ĉeftitoloj por provizi etendeblan manieron aldoni funkciojn. |
daŭrigis… |
Intel Corporation. Ĉiuj rajtoj rezervitaj. Intel, la Intel-emblemo kaj aliaj Intel-markoj estas varmarkoj de Intel Corporation aŭ ĝiaj filioj. Intel garantias agadon de siaj FPGA kaj duonkonduktaĵoj laŭ nunaj specifoj konforme al la norma garantio de Intel, sed rezervas la rajton fari ŝanĝojn al ajnaj produktoj kaj servoj iam ajn sen avizo. Intel supozas neniun respondecon aŭ respondecon de la apliko aŭ uzo de ajna informo, produkto aŭ servo priskribita ĉi tie krom kiel eksplicite konsentite skribe de Intel. Intel-klientoj estas konsilitaj akiri la lastan version de aparato-specifoj antaŭ ol fidi je ajnaj publikigitaj informoj kaj antaŭ ol fari mendojn por produktoj aŭ servoj. *Aliaj nomoj kaj markoj povas esti postulataj kiel posedaĵo de aliaj.
Akronimoj | Ekspansio | Priskribo |
FIM | FPGA Interfaco-Manaĝero | La FPGA-hardvaro enhavanta la FPGA Interface Unit (FIU) kaj eksterajn interfacojn por memoro, retoj, ktp.
La Akcelila Funkcio (AF) interfacas kun la FIM ĉe rultempo. |
FIU | FPGA Interfaco-Unuo | FIU estas platforma interfaca tavolo kiu funkcias kiel ponto inter platforminterfacoj kiel PCIe*, UPI kaj AFU-flankaj interfacoj kiel ekzemple CCI-P. |
MPF | Fabriko de Propraĵoj de Memoro | La MPF estas Baza Konstruaĵo (BBB) kiun AFUs povas uzi por disponigi CCI-P trafikformajn operaciojn por transakcioj kun la FIU. |
Glosaro de Akcelado
Akcela Stako por Intel® Xeon® CPU kun FPGA-Glosaro
Termino | Mallongigo | Priskribo |
Intel® Acceleration Stack por Intel Xeon® CPU kun FPGA-oj | Akcela Stako | Kolekto de programaro, firmvaro kaj iloj, kiuj disponigas efikecon optimumigitan konekteblecon inter Intel FPGA kaj Intel Xeon-procesoro. |
Intel FPGA Programebla Akcela Karto | Intel FPGA PAC | PCIe FPGA-akcelilkarto.
Enhavas FPGA Interface Manager (FIM) kiu pariĝas kun Intel Xeon-procesoro super la PCIe-buso. |
- Uzantgvidilo pri Funkcia Unuo de DMA-Akcelo: Intel FPGA Programebla Akcela Karto D5005
DMA AFU Priskribo
Enkonduko
La AFU de Rekta Memora Aliro (DMA) ekzample montras kiel administri memortranslokigojn inter la gastiga procesoro kaj la FPGA. Vi povas integri la DMA AFU en vian dezajnon por movi datumojn inter la gastiga memoro kaj la loka memoro FPGA. La DMA AFU konsistas el la sekvaj submoduloj:
- Fabriko de Memoraj Propraĵoj (MPF) Baza Konstruaĵo (BBB)
- Kerna Cache Interface (CCI-P) al la Avalon® Memor-Mapita (Avalon-MM) Adaptilo
- DMA Test System kiu enhavas la DMA BBB
Ĉi tiuj submoduloj estas priskribitaj pli detale en la temo de DMA AFU-Aparataj Komponentoj sube.
Rilataj Informoj
- La DMA AFU-Aparataj Komponantoj sur paĝo 6
- Specifoj de Avalon-Interfaco
Por pliaj informoj pri la Avalon-MM-protokolo, inkluzive de tempodiagramoj por legi kaj skribi transakciojn.
La DMA AFU Programaro-Pako
La Intel Acceleration Stack por Intel Xeon CPU kun FPGA-pakaĵo file (*.tar.gz), inkluzivas la DMA AFU ekzample. Ĉi tiu ekzample disponigas uzantspacan pelilon. La mastro-aplikaĵo uzas ĉi tiun ŝoforon tia ke la DMA movas datenojn inter gastiganto kaj FPGA-memoro. La aparataj binaroj, fontoj kaj la uzantspaca pelilo estas haveblaj en la sekva dosierujo: $OPAE_PLATFORM_ROOT/hw/samples/dma_afu . Antaŭ ol eksperimenti kun la DMA AFU, vi devas instali la programaron de Open Programable Acceleration Engine (OPAE). Vidu al Instalado de la Programaro de OPAE en la Rapida Komenca Gvidilo pri Intel FPGA Programebla Akcela Karto D5005 por instali instrukciojn. Ĉi tiu Rapida Komenca Gvidilo ankaŭ inkluzivas bazajn informojn pri la Open Programable Acceleration Engine (OPAE) kaj agordo de AFU. Post instalo de la programaro de Open Programable Acceleration Engine (OPAE), kielampla gastiga aplikaĵo kaj la uzantspaca pelilo de DMA AFU estas disponeblaj en la sekva dosierujo: $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw. Por kuri la sample gastiganta aplikaĵo, fpga_dma_test sur via aparataro Intel FPGA PAC D5005, raportu al la paŝoj en sekcio Running the DMA AFU Example. Intel Corporation. Ĉiuj rajtoj rezervitaj. Intel, la Intel-emblemo kaj aliaj Intel-markoj estas varmarkoj de Intel Corporation aŭ ĝiaj filioj. Intel garantias rendimenton de siaj FPGA kaj duonkonduktaĵoproduktoj laŭ nunaj specifoj konforme al la norma garantio de Intel, sed rezervas la rajton fari ŝanĝojn al ajnaj produktoj kaj servoj iam ajn sen avizo. Intel supozas neniun respondecon aŭ respondecon de la apliko aŭ uzo de ajna informo, produkto aŭ servo priskribita ĉi tie krom kiel eksplicite konsentite skribe de Intel. Intel-klientoj estas konsilitaj akiri la lastan version de aparato-specifoj antaŭ ol fidi je ajnaj publikigitaj informoj kaj antaŭ ol fari mendojn por produktoj aŭ servoj. *Aliaj nomoj kaj markoj povas esti postulitaj kiel posedaĵo de aliaj.
Rilataj Informoj
- Intel Acceleration Stack Rapida Komenca Gvidilo por Intel FPGA Programebla Akcelkarto D5005
- Instalante la Programaron de OPAE
La DMA AFU-Aparataj Komponantoj
La DMA AFU interfacas kun la FPGA Interface Unit (FIU) kaj FPGA-memoro. Raportu la Datumfolion pri FPGA-Interfaco-Manaĝero por Intel FPGA Programebla Akcela Karto D5005 por detalaj specifoj de la FPGA-memoro. La nuntempe disponebla aparataro diktas ĉi tiun memoran agordon. Estonta aparataro povas subteni malsamajn memorajn agordojn. Vi povas uzi la DMA AFU por kopii datumojn inter la jenaj fonto- kaj cellokoj:
- La gastiganto al aparato FPGA-memoro
- Aparato FPGA memoro al la gastiganto
Sistemo Platform Designer, $OPAE_PLATFORM_ROOT/hw/samples/ dma_afu/hw/rtl/TEST_dma/ /dma_test_system.qsys efektivigas la plej grandan parton de la DMA
- AFU. Parto de la DMA AFU efektivigita en la Platform Designer-sistemo troveblas en la sekvanta
loko:$OPAE_PLATFORM_ROOT/hw/samples/dma_afu/hw/rtl/TEST_dma/ Vi povas trovi la DMA BBB en la sekva loko:
- $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/hw/rtl/dma_bbb
Uzantgvidilo pri Funkcia Unuo de DMA-Akcelo: Intel FPGA Programebla Akcela Karto D5005
DMA AFU-Aparataro-Blokdiagramo
La DMA AFU inkluzivas la sekvajn internajn modulojn por interfaci kun la FPGA Interface Unit (FIU):
- Memory-Mapped IO (MMIO) Malĉifrilo-Logiko: detektas MMIO-legajn kaj skribajn transakciojn kaj apartigas ilin de la CCI-P RX-kanalo 0 de kiu ili alvenas. Ĉi tio certigas, ke MMIO-trafiko neniam atingas la MPF BBB kaj estas servita de sendependa MMIO-komandkanalo.
- Memory Properties Factory (MPF): Ĉi tiu modulo certigas, ke legitaj respondoj de la DMA revenas en la ordo en kiu ili estis eldonitaj. La Avalon-MM-protokolo postulas legi respondojn reveni en la ĝusta ordo.
- CCI-P al Avalon-MM-Adaptilo: Ĉi tiu modulo tradukiĝas inter CCI-P kaj Avalon-MM-transakcioj jene:
- CCI-P al Avalon-MMIO-Adaptilo: Ĉi tiu vojo tradukas CCI-P MMIO-transakciojn en Avalon-MM-transakciojn.
- Avalon al CCI-P Gastiganto-Adaptilo: Ĉi tiuj vojoj kreas apartajn nurlegeblajn kaj nurskribajn vojojn por la DMA por aliri mastro-memoron.
- DMA Testa Sistemo: Ĉi tiu modulo funkcias kiel envolvaĵo ĉirkaŭ la DMA BBB por eksponi la DMA-mastrojn al la resto de la logiko en la AFU. Ĝi disponigas la interfacon inter la DMA BBB kaj la CCI-P al Avalon-Adaptilo. Ĝi ankaŭ disponigas la interfacon inter la DMA BBB kaj la lokaj FPGA SDRAM-bankoj.
Rilataj Informoj
Datumfolio de FPGA Interface Manager por Intel FPGA Programebla Akcela Karto D5005
DMA Testa Sistemo
La DMA-testsistemo ligas la DMA BBB al la resto de la FPGA-dezajno inkluzive de CCI-P-adaptado kaj la loka FPGA-memoro.
DMA Test System Block Diagram
Ĉi tiu blokdiagramo montras la internaĵojn de la DMA-testsistemo. La DMA-testsistemo estas montrita kiel monolita bloko en Figuro 1 sur paĝo 7.
La DMA-testsistemo inkluzivas la sekvajn internajn modulojn:
- Far Reach Bridge/Pipeline Bridge: Duktoponto kun alĝustigebla latenco inkluzivita por kontroli topologion kaj plibonigi la dezajnon Fmax.
- DMA AFU Device Feature Header (DFH): Ĉi tio estas DFH por la DMA AFU. Ĉi tiu DFH montras al la sekva DFH situanta ĉe ofseto 0x100 (DMA BBB DFH).
- Nula DFH: Ĉi tiu komponanto finas la ligitan liston de DFH. Se vi aldonas pli da DMA BBB-oj al la dezajno, certigu, ke la nula DFH-baza adreso troviĝas ĉe la fino de la DFH-listo-listo.
- MA Basic Building Block (BBB): Ĉi tiu bloko movas datumojn inter la gastiganto kaj la loka FPGA-memoro. Ĝi ankaŭ aliras gastigan memoron por aliri priskribilĉenojn.
DMA BBB
La DMA BBB-subsistemo transdonas datenojn de fonto al cel-adresoj uzante Avalon-MM-transakciojn. La DMA-ŝoforo kontrolas la DMA BBB alirante la kontrolon kaj statusregistron de la diversaj komponentoj ene de la sistemo. La DMA-ŝoforo ankaŭ kontrolas la DMA BBB uzante komunan memoron por komuniki transigajn priskribilojn. La DMA BBB aliras datumojn en FPGA-memoro ĉe ofseto 0x0. La DMA BBB aliras datumojn kaj priskribilojn en gastiga memoro ĉe ofseto 0x1_0000_0000_0000.
DMA BBB Platform Designer Blokdiagramo
Ĉi tiu blokdiagramo ekskludas kelkajn internajn Pipeline Bridge IP-kernojn.
Uzantgvidilo pri Funkcia Unuo de DMA-Akcelo: Intel FPGA Programebla Akcela Karto D5005
DMA AFU Priskribo
La komponentoj en la DMA BBB Platform Designer efektivigas la sekvajn funkciojn:
- Fora Reach Bridge/Pipeline Bridge: Duktoponto kun alĝustigebla latenteco inkluzivita por kontroli topologion kaj plibonigi la dezajnon Fmax.
- MA BBB DFH: Ĉi tio estas aparata ĉefkapo por la DMA BBB. Ĉi tiu DFH montras al la sekva DFH situanta ĉe ofseto 0x100 (Null DFH).
- Priskribo Frontend: Respondeca por preni priskribilojn kaj transdoni ilin al la Sendanto. Kiam DMA-translokigo kompletigas la fasado ricevas statusformadon de la Sendanto kaj anstataŭigas la priskribilon en gastiga memoro.
- Sendanto: Ĉi tiu bloko planas DMA-translokigajn petojn al la Legita kaj Skriba Majstro.
- Legu Majstro: Ĉi tiu bloko respondecas pri legado de datumoj de gastiganto aŭ loka FPGA-memoro kaj sendi ĝin kiel fluajn datumojn al Write Master.
- Skribu Majstro: Ĉi tiu bloko respondecas pri ricevado de fluaj datumoj de la Read Master kaj skribi la enhavon al gastiganto aŭ loka FPGA-memoro.
Registru Mapo kaj Adresspacoj
La DMA AFU subtenas du memorojn views: La DMA view kaj la gastiganto view. La DMA view subtenas 49-bitan adresspacon. La pli malalta duono de la DMA view mapas al la loka FPGA-memoro. La supra duono de la DMA view mapoj por gastigi memoron. La gastiganto view inkluzivas ĉiujn registrojn alireblajn per MMIO-aliroj kiel ekzemple la DFH-tabloj, kaj la kontrolo-/statusaj registroj de la diversaj IP-kernoj uzitaj ene de la DMA AFU. La MMIO registras en la DMA BBB kaj AFU subtenas 32- kaj 64-bitan aliron. La DMA AFU ne subtenas 512-bitajn MMIO-alirojn. Aliroj al la Dispatcher-registroj ene de la DMA BBB devas esti 32 bitoj (Priskribila fasado efektivigas 64-bitajn registrojn).
DMA AFU Registru Mapo
La DMA AFU-registra mapo disponigas la absolutajn adresojn de ĉiuj lokoj ene de la unuo. Ĉi tiuj registroj estas en la gastiganto view ĉar nur la gastiganto povas aliri ilin.
DMA AFU Memormapo
Byte-Adresaj Ofsetoj | Nomo | Interspaco en bajtoj | Priskribo |
0x0 | DMA AFU DFH | 0x40 | Kapoto de la aparato por la DMA AFU. La ID_L estas agordita al 0x9081f88b8f655caa kaj ID_H estas agordita al 0x331db30c988541ea. La DMA AFU DFH estis parametrigita por montri al kompenso 0x100 por trovi la sekvan DFH (DMA BBB DFH). Vi ne devas modifi la bazan adreson de la DMA AFU DFH ĉar ĝi devas troviĝi ĉe adreso 0x0 kiel difinita de la CCIP-specifo. |
0x100 | DMA BBB | 0x100 | Specifas DMA BBB-kontrolon kaj statusregistran interfacon. Vi povas raporti al la mapo de registro de DMA BBB por pliaj informoj. Ene de la DMA BBB ĉe ofseto 0 la DMA BBB inkluzivas sian propran DFH. Ĉi tiu DFH estis agordita por trovi la sekvan DFH ĉe ofseto 0x100 (NULL DFH). Se vi aldonas pliajn DMA-BBB-ojn, disigu ilin 0x100 kaj certigu, ke la NULL DFH sekvas la lastan DMA je 0x100. |
0x200 | NULL DFH | 0x40 | Finigas la ligitan liston de DFH. La ID_L estas agordita al 0x90fe6aab12a0132f kaj ID_H estas agordita al 0xda1182b1b3444e23. La NULL DFH estis parametrigita por esti la lasta DFH en aparataro. Tial la NULL DFH troviĝas ĉe adreso 0x200. Se vi aldonas pliajn DMA BBB-ojn al la sistemo, vi devas pliigi la NULL DFH-bazadreson laŭe, por ke ĝi restu ĉe la plej alta adreso. La DMA-ŝoforo kaj testa aplikaĵo ne uzas ĉi tiun aparataron. |
Intel Corporation. Ĉiuj rajtoj rezervitaj. Intel, la Intel-emblemo kaj aliaj Intel-markoj estas varmarkoj de Intel Corporation aŭ ĝiaj filioj. Intel garantias agadon de siaj FPGA kaj duonkonduktaĵoj laŭ nunaj specifoj konforme al la norma garantio de Intel, sed rezervas la rajton fari ŝanĝojn al ajnaj produktoj kaj servoj iam ajn sen avizo. Intel supozas neniun respondecon aŭ respondecon de la apliko aŭ uzo de ajna informo, produkto aŭ servo priskribita ĉi tie krom kiel eksplicite konsentite skribe de Intel. Intel-klientoj estas konsilitaj akiri la lastan version de aparato-specifoj antaŭ ol fidi je ajnaj publikigitaj informoj kaj antaŭ ol fari mendojn por produktoj aŭ servoj. *Aliaj nomoj kaj markoj povas esti postulataj kiel posedaĵo de aliaj.
Registru Mapo kaj Adresspacoj
DMA BBB Memormapo
La sekvaj bajtaj adresoj estas relativaj ofsetoj de la DMA BBB-bazadreso en la DMA AFU-sistemo (0x100).
Byte-Adresaj Ofsetoj | Nomo | Interspaco en bajtoj | Priskribo |
0x0 | DMA BBB DFH | 0x40 | Kapoto de la aparato por la DMA AFU. La ID_L estas agordita al 0xa9149a35bace01ea kaj ID_H estas agordita al 0xef82def7f6ec40fc. La DMA BBB DFH estis parametrigita por montri al 0x100 por la sekva DFH-offseto. Ĉi tiu sekva ofseto povas esti alia DMA BBB, alia DFH (ne inkluzivita en ĉi tiu dezajno), aŭ la NULL DFH. |
0x40 | Sendanto | 0x40 | Kontrola haveno por la sendanto. La DMA-ŝoforo uzas ĉi tiun lokon por kontroli la DMA aŭ pridemandi ĝian staton. |
0x80 | Priskribo Frontend | 0x40 | La priskribanta fasado estas kutima komponanto, kiu legas priskribilojn el gastiga memoro kaj anstataŭigas la priskribilon kiam la DMA-translokigo finiĝas. La ŝoforo instrukcias la fasadon kie la unua priskribilo vivas en mastro-memoro kaj tiam la fasa aparataro komunikas kun la ŝoforo ĉefe kvankam priskribiloj stokitaj en mastro-memoro. |
DMA AFU Adresspaco
La gastiganto povas aliri registrojn listigitajn en la Tabelo 4 sur paĝo 12 kaj la Tabelo 5 sur paĝo 13. La DMA BBB-subsistemo havas aliron al la plena 49-bita adresspaco. La pli malalta duono de tiu adresspaco inkludas la lokajn FPGA-memorojn. La supra duono de ĉi tiu adresspaco inkluzivas la 48-bitan gastigan adresmemoron. La sekva figuro montras la gastiganton kaj DMA views de memoro.
La DMA AFU kaj Gastiganto Views de Memoro
Aparato Feature Header Linked-Listo
La DMA AFU-dezajno ekzample enhavas tri aparatajn ĉeftitolojn (DFH) kiuj formas ligitan liston. Ĉi tiu ligita listo permesas la sampla aplikaĵo por identigi la DMA AFU same kiel la ŝoforon por identigi la DMA BBB. La DFH-listo inkluzivas NULL DFH ĉe la fino. La inkludo de la nula DFH ĉe la fino de la ligita listo permesas al vi aldoni pli da DMA BBB-oj al via dezajno. Vi simple bezonas movi la NULL DFH al adreso post la aliaj BBB-oj. Ĉiu DMA BBB atendas ke la venonta DFH situos 0x100 bajtojn de la baza adreso de la BBB. La sekva figuro prezentas la ligitan liston por la DMA AFU-dezajno ekzample.
Registru Mapo kaj Adresspacoj
DMA AFU Device Feature Header (DFH) Ĉenado
Programaro-Modelo
La DMA AFU inkluzivas programaran pelilon, kiun vi povas uzi en via propra gastiga aplikaĵo. La fpga_dma.cpp kaj fpga_dma.h files situantaj ĉe la sekva loko efektivigas la programaron pelilon:$OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw Ĉi tiu pelilo subtenas la sekvajn funkciojn:
API | Priskribo |
fpgaCountDMAChannels | Skanas la aparatan ĉefĉenon por DMA BBB-oj kaj nombri ĉiujn disponeblajn kanalojn. |
fpgaDMAOpen | Malfermas tenilon al la DMA-kanalo. |
fpgaDMAClose | Fermas tenilon al la DMA-kanalo. |
fpgaDMATransferInit | Inicializas objekton kiu reprezentas la DMA-translokigon. |
fpgaDMATransferReset | Restarigas la DMA-transigan atributan objekton al defaŭltaj valoroj. |
fpgaDMATransferDestroy | Detruas la DMA-transigan atributan objekton. |
fpgaDMATransferSetSrc | Agordas la fontadreson de la translokigo. Ĉi tiu adreso devas esti vicigita je 64 bajtoj. |
fpgaDMATransferSetDst | Agordas la cel-adreson de la translokigo. Ĉi tiu adreso devas esti vicigita je 64 bajtoj. |
fpgaDMATransferSetLen | Agordas la transigajn longojn en bajtoj. Por ne-pakaj translokigoj, vi devas agordi la transigan longon al oblo de 64 bajtoj. Por pakaj translokigoj, ĉi tio ne estas postulo. |
fpgaDMATransferSetTransferType | Agordas la transigan tipon. Laŭleĝaj valoroj estas:
• HOST_MM_TO_FPGA_MM = TX (Gastiganto al AFU) • FPGA_MM_TO_HOST_MM = RX (AFU al gastiganto) |
fpgaDMATransferSetTransferCallback | Registras revokon por sciigo pri nesinkrona translokigo. Se vi specifas revokon, fpgaDMATransfer tuj revenas (nesinkrona translokigo).
Se vi ne specifas revokon, fpgaDMATransfer revenas post kiam la translokigo estas kompleta (sinkrona/bloka translokigo). |
fpgaDMATransferSetLast | Indikas la lastan translokigon por ke la DMA povu komenci prilabori la antaŭportitajn translokigojn. La defaŭlta valoro estas 64 translokigoj en la dukto antaŭ ol la DMA komencas labori pri la translokigoj. |
fpgaDMATransfer | Elfaras DMA-translokigon. |
Por pliaj informoj pri la argumentoj de API, enigo kaj eligo, raportu al la kaplinio file lokita $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw/fpga_dma.hIntel Corporation. Ĉiuj rajtoj rezervitaj. Intel, la Intel-emblemo kaj aliaj Intel-markoj estas varmarkoj de Intel Corporation aŭ ĝiaj filioj. Intel garantias rendimenton de siaj FPGA kaj duonkonduktaĵoproduktoj laŭ nunaj specifoj konforme al la norma garantio de Intel, sed rezervas la rajton fari ŝanĝojn al ajnaj produktoj kaj servoj iam ajn sen avizo. Intel supozas neniun respondecon aŭ respondecon de la apliko aŭ uzo de ajna informo, produkto aŭ servo priskribita ĉi tie krom kiel eksplicite konsentite skribe de Intel. Intel-klientoj estas konsilitaj akiri la lastan version de aparato-specifoj antaŭ ol fidi je ajnaj publikigitaj informoj kaj antaŭ ol fari mendojn por produktoj aŭ servoj. Aliaj nomoj kaj markoj povas esti postulitaj kiel posedaĵo de aliaj.
Programaro-Modelo
Por scii pli pri la uzmodelo de programaro pelilo, referu al la README file lokita ĉe $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/README.md
Kurante DMA AFU Ekzample
Antaŭ ol vi komencu:
- Vi devus koni la eksamples en la Intel Acceleration Stack Quick Start Guide por Intel FPGA Programebla Akcela Karto D5005.
- Vi devas difini mediovariablon. La mediovariablo dependas de la versio de Intel Acceleration Stack, kiun vi uzas:
- Por nuna versio, agordu la mediovariablon al $OPAE_PLATFORM_ROOT
- Vi devas instali la bibliotekon de Intel Threading Building Blocks (TBB) ĉar la DMA-ŝoforo dependas de ĝi.
- Vi ankaŭ devas agordi du 1 GB-grandajn paĝojn por funkcii la sample aplikaĵo. $ sudo sh -c "echo 2 > /sys/kernel/mm/hugepages/hugepages-1048576kB/ nr_hugepages"
Faru la sekvajn paŝojn por elŝuti la bitfluon de la DMA-Akcelera Funkcio (AF), por konstrui la aplikaĵon kaj pelilon, kaj ruli la dezajnon eksample:
- Ŝanĝu al la DMA-apliko kaj ŝofora dosierujo: cd $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw
- Konstruu la ŝoforon kaj aplikaĵon: faru
- Elŝutu la DMA AFU-bitfluon: sudo fpgasupdate ../bin/dma_afu_unsigned.gbs
- Efektivigu la gastigan aplikaĵon por skribi 100 MB en 1 MB partoj de gastiga memoro al FPGA-aparatmemoro kaj relegu ĝin: ./ fpga_dma_test -s 104857600 -p 1048576 -r mtom
Rilataj Informoj
Intel Acceleration Stack Quick Start Guide for Intel FPGA Programable Acceleration Card D5005 Intel Corporation. Ĉiuj rajtoj rezervitaj. Intel, la Intel-emblemo kaj aliaj Intel-markoj estas varmarkoj de Intel Corporation aŭ ĝiaj filioj. Intel garantias rendimenton de siaj FPGA kaj duonkonduktaĵoproduktoj laŭ nunaj specifoj konforme al la norma garantio de Intel, sed rezervas la rajton fari ŝanĝojn al ajnaj produktoj kaj servoj iam ajn sen avizo. Intel supozas neniun respondecon aŭ respondecon de la apliko aŭ uzo de ajna informo, produkto aŭ servo priskribita ĉi tie krom kiel eksplicite konsentite skribe de Intel. Intel-klientoj estas konsilitaj akiri la lastan version de aparato-specifoj antaŭ ol fidi iun ajn publikigitan informon kaj antaŭ ol fari mendojn por produktoj aŭ servoj. *Aliaj nomoj kaj markoj povas esti postulataj kiel posedaĵo de aliaj.
Kompilante la DMA AFU Ekzample
Por generi sintezan konstruan medion por kompili AF, uzu la komandon afu_synth_setup jene:
- Ŝanĝu al la DMA AFU-ojample dosierujo: $OPAE_PLATFORM_ROOT/hw/samples/dma_afu
- Generu la projekt-konstruan dosierujon: afu_synth_setup –source hw/rtl/filelist.txt build_synth
- El la sinteza konstrua dosierujo generita de afu_synth_setup, enigu la sekvajn komandojn de fina fenestro por generi AF por la cela aparatara platformo: cd build_synth run.sh La run.sh AF-generacia skripto kreas la AF-bildon kun la sama bazo. filenomo kiel la platforma agordo de la AFU file (.json) kun .gbs sufikso ĉe la loko:$OPAE_PLATFORM_ROOT/hw/samples/build_synth/dma_afu_s10.gbs Intel Corporation. Ĉiuj rajtoj rezervitaj. Intel, la Intel-emblemo kaj aliaj Intel-markoj estas varmarkoj de Intel Corporation aŭ ĝiaj filioj. Intel garantias rendimenton de siaj FPGA kaj duonkonduktaĵoproduktoj laŭ nunaj specifoj konforme al la norma garantio de Intel, sed rezervas la rajton fari ŝanĝojn al ajnaj produktoj kaj servoj iam ajn sen avizo. Intel supozas neniun respondecon aŭ respondecon de la apliko aŭ uzo de ajna informo, produkto aŭ servo priskribita ĉi tie krom kiel eksplicite konsentite skribe de Intel. Intel-klientoj estas konsilitaj akiri la lastan version de aparato-specifoj antaŭ ol fidi je ajnaj publikigitaj informoj kaj antaŭ ol fari mendojn por produktoj aŭ servoj. *Aliaj nomoj kaj markoj povas esti postulitaj kiel posedaĵo de aliaj.
Simulante la AFU Ekzample
Intel rekomendas vin raporti al la Rapida Komenca Gvidilo pri Simulada Medio (ASE) de Intel Accelerator Functional Unit (AFU) por via Intel FPGA PAC por koni simuladon de similaj ekz.amples kaj agordi vian medion. Antaŭ ol vi daŭrigi la sekvajn paŝojn, kontrolu, ke la mediovariablo OPAE_PLATFORM_ROOT estas agordita al la instala dosierujo de OPAE SDK. Plenumu la sekvajn paŝojn por agordi la aparatan simulilon por la DMA AFU:
- Ŝanĝu al la DMA AFU-ojample dosierujo: cd $OPAE_PLATFORM_ROOT/hw/samples/dma_afu
- Kreu ASE-medion en nova dosierujo kaj agordu ĝin por simuli AFU: afu_sim_setup –source hw/rtl/filelist.txt build_ase_dir
- Ŝanĝu al la konstrua dosierujo de ASE: cd build_ase_dir
- Konstruu la ŝoforon kaj aplikaĵon: faru
- Faru simuladon: faru sim
Sample eligo de la aparatara simulilo:
[SIM] ** ATENTU : ANTAŬ ruli la programaron ** [SIM] Agordu env(ASE_WORKDIR) en terminalo kie la aplikaĵo ruliĝos (kopi-kaj-glui) => [SIM] $SHELL | Run:[SIM] ———+————————————————— [SIM] bash/zsh | eksporti 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] Por ajna alia $SHELL, konsultu vian Linuksan administranton [SIM] [SIM] Preta por simulado... [SIM] Premu CTRL-C por fermi simulilon...Plenumu la sekvajn paŝojn por kompili kaj ekzekuti la programaron DMA AFU en la simulada medio:
- Malfermu novan terminalan fenestron.
- Ŝanĝu dosierujon al: cd $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw
Intel Corporation. Ĉiuj rajtoj rezervitaj. Intel, la Intel-emblemo kaj aliaj Intel-markoj estas varmarkoj de Intel Corporation aŭ ĝiaj filioj. Intel garantias agadon de siaj FPGA kaj duonkonduktaĵoj laŭ nunaj specifoj konforme al la norma garantio de Intel, sed rezervas la rajton fari ŝanĝojn al ajnaj produktoj kaj servoj iam ajn sen avizo. Intel supozas neniun respondecon aŭ respondecon de la apliko aŭ uzo de ajna informo, produkto aŭ servo priskribita ĉi tie krom kiel eksplicite konsentite skribe de Intel. Intel-klientoj estas konsilitaj akiri la lastan version de aparato-specifoj antaŭ ol fidi je ajnaj publikigitaj informoj kaj antaŭ ol fari mendojn por produktoj aŭ servoj. *Aliaj nomoj kaj markoj povas esti postulataj kiel posedaĵo de aliaj.
Simulante la AFU Ekzample
- Kopiu la medio-agordan ĉenon (elektu ĉenon taŭgan por via ŝelo) de la supraj paŝoj en la aparatara simulado al la fina fenestro. Vidu la sekvajn liniojn en la sample eligo de la aparatara simulilo. [SIM] bash/zsh | eksporti 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
- Kompilu la programaron: $ make USE_ASE=1
- Efektivigu la gastigan aplikaĵon por skribi 4 KB en 1 KB partoj de la gastiga memoro reen al FPGA-aparatmemoro en la loopback-reĝimo: ./ fpga_dma_test -s 4096 -p 1024 -r mtom
Rilataj Informoj
Intel Accelerator Functional Unit (AFU) Simulation Environment (ASE) Quick Start User Guide
Optimumigo por Plibonigita DMA-Efikeco
Efektivigo de NUMA (ne-unuforma memoraliro) optimumigo en fpga_dma_test.cpp permesas al la procesoro aliri sian propran lokan memoron pli rapide ol alirado de ne-loka memoro (memoro loka al alia procesoro). Tipa NUMA-agordo estas montrita en la diagramo malsupre. La loka aliro reprezentas aliron de kerno al memoro loka al la sama kerno. La fora aliro ilustras la vojon prenitan kiam kerno sur Nodo 0 aliras memoron kiu loĝas en memoro loka al Nodo 1.
Tipa NUMA-agordo
Uzu la sekvan kodon por efektivigi NUMA-optimumigon en via testa aplikaĵo:
// Agordu taŭgan afinecon, se oni petas, if (cpu_affinity || memoro_afineco) {sensigna dom = 0, buso = 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 (rekvizitoj, (uint8_t *) & func);ON_ERR_GOTO, “fpgaPropertiesGetDevice” ; // Trovu la aparaton el la topologio hwloc_topology_t topologio; hwloc_topology_init(&topologio); hwloc_topology_set_flags(topology, HWLOC_TOPOLOGY_FLAG_IO_DEVICES);Intel Corporation. Ĉiuj rajtoj rezervitaj. Intel, la Intel-emblemo kaj aliaj Intel-markoj estas varmarkoj de Intel Corporation aŭ ĝiaj filioj. Intel garantias rendimenton de siaj FPGA kaj duonkonduktaĵoproduktoj laŭ aktualaj specifoj konforme al la norma garantio de Intel, sed rezervas la rajton fari ŝanĝojn al ajnaj produktoj kaj servoj iam ajn sen avizo. Intel supozas neniun respondecon aŭ respondecon de la apliko aŭ uzo de ajna informo, produkto aŭ servo priskribita ĉi tie krom kiel eksplicite konsentite skribe de Intel. Intel-klientoj estas konsilitaj akiri la lastan version de aparato-specifoj antaŭ ol fidi je ajnaj publikigitaj informoj kaj antaŭ ol fari mendojn por produktoj aŭ servoj. *Aliaj nomoj kaj markoj povas esti postulitaj kiel posedaĵo de aliaj.
Optimumigo por Plibonigita DMA-Efikeco
hwloc_topology_load(topologio); hwloc_obj_t obj = hwloc_get_pcidev_by_busid (topologio, dom, buso, dev, func); hwloc_obj_t obj2 = hwloc_get_non_io_ancestor_obj(topology, 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 estas %s\n”, str); hwloc_bitmap_taskset_snprintf (str, 4096, obj2->nodeset); printf(“NODESET estas %s\n”, str);#endif if (memory_affinity) { #if HWLOC_API_VERSION > 0x00020000 retval = hwloc_set_membind (topology, obj2->nodeset,HWLOC_MEMBIND_THREAD, HWLOC_MEMBIND_SET_MEMBINDBY_LOC_MIGRATE | #else retval =hwloc_set_membind_nodeset (topologio, obj2->nodeset, HWLOC_MEMBIND_THREAD, HWLOC_MEMBIND_MIGRATE); #endifON_ERR_GOTO(retval, out_destroy_tok, “hwloc_set_membind”); } if (cpu_afineco) { retval = hwloc_set_cpubind (topologio, obj2->cpuset, HWLOC_CPUBIND_STRICT); ON_ERR_GOTO(retval, out_destroy_tok, “hwloc_set_cpubind”); }}
DMA Akcelilo Funkcia Unuo User Guide Arkivoj
Intel Acceleration Stack Version | Uzantgvidilo (PDF) |
2.0 | DMA Akcelilo Funkcia Unuo (AFU) Uzantgvidilo |
Dokumenta Revizia Historio por la Uzantgvidilo pri Funkcia Unuo de DMA
Dokumenta Versio |
Intel Akcelo Stack Version |
Ŝanĝoj |
2020.08.03 |
2.0.1 (subtenata kun Intel
Quartus® Prime Pro Edition Edition 19.2) |
Korektis la AF-bildon file nomo en sekcio Kompilante la DMA AFU Ekzample. |
2020.04.17 |
2.0.1 (subtenata kun Intel
Quartus Prime Pro Edition Edition 19.2) |
Korektis deklaron en Intencita Publiko sekcio. |
2020.02.20 |
2.0.1 (subtenata kun Intel
Quartus Prime Pro Edition Edition 19.2) |
Riparita tajperaro. |
2019.11.04 |
2.0.1 (subtenata kun Intel Quartus Prime Pro Edition Edition 19.2) |
• Anstataŭigis la fpgaconf per fpgasupdate dum agordado de la FPGA kun la antaŭkonstruita AFU en sekcio Kurante la DMA AFU Ekzample.
• Aldonita subtitolo Intel FPGA Programebla Akcela Karto D5005 al la titolo de la dokumento. • Aldonita mediovariablo $OPAE_PLATFORM_ROOT. • Modifita sekcio Programaro-Modelo por etaj redaktoj. • Aldonita nova sekcio Kompilante la DMA AFU Ekzample. • Modifita sekcio Optimumigo por Plibonigita DMA-Efikeco por etaj redaktoj. |
2019.08.05 |
2.0 (subtenata kun Intel
Quartus Prime Pro Edition 18.1.2) |
Komenca eldono. |
Intel Corporation. Ĉiuj rajtoj rezervitaj. Intel, la Intel-emblemo kaj aliaj Intel-markoj estas varmarkoj de Intel Corporation aŭ ĝiaj filioj. Intel garantias rendimenton de siaj FPGA kaj duonkonduktaĵoproduktoj laŭ nunaj specifoj konforme al la norma garantio de Intel, sed rezervas la rajton fari ŝanĝojn al ajnaj produktoj kaj servoj iam ajn sen avizo. Intel supozas neniun respondecon aŭ respondecon de la apliko aŭ uzo de ajna informo, produkto aŭ servo priskribita ĉi tie krom kiel eksplicite konsentite skribe de Intel. Intel-klientoj estas konsilitaj akiri la lastan version de aparato-specifoj antaŭ ol fidi je ajnaj publikigitaj informoj kaj antaŭ ol fari mendojn por produktoj aŭ servoj.
- Aliaj nomoj kaj markoj povas esti postulitaj kiel posedaĵo de aliaj.
Dokumentoj/Rimedoj
![]() |
Intel FPGA Programebla Akcela Karto D5005 [pdf] Uzantogvidilo FPGA Programebla Akcela Karto, D5005, FPGA Programebla Akcela Karto D5005, DMA Akcelilo Funkcia Unuo |