Scheda di accelerazione programmabile Intel FPGA D5005
À propositu di stu Documentu
Stu documentu descrive l'implementazione di l'Unità Funzionale di Acceleratore (AFU) d'accessu direttu à a memoria (DMA) è cumu custruisce u disignu per eseguisce in hardware o in simulazione.
Audience destinata
L'audienza destinata comprende sviluppatori di hardware o software chì necessitanu una Funzione Accelerator (AF) per buffer data localmente in memoria cunnessa à u dispositivu Intel FPGA.
Cunvenzioni
Cunvenzioni di documentu
Cunvenzione | Descrizzione |
# | Precede un cumandamentu chì indica chì u cumandamentu deve esse inseritu cum'è root. |
$ | Indica chì un cumandamentu deve esse inseritu cum'è utilizatore. |
Stu font | Filenomi, cumandamenti è parole chjave sò stampati in questu font. E linee di cumanda longu sò stampate in questu font. Ancu s'è e linee di cumandamenti longu ponu chjappà à a linea dopu, u ritornu ùn hè micca parte di u cumandamentu; ùn appughjà micca enter. |
Indica chì u testu di piazzamentu chì appare trà i parentesi angulari deve esse rimpiazzatu cù un valore adattatu. Ùn entre in i parentesi angulari. |
Acronimi
Acronimi
Acronimi | Espansione | Descrizzione |
AF | Funzione acceleratore | L'imagine di l'acceleratore di hardware compilatu implementata in a logica FPGA chì accelera una applicazione. |
AFU | Unità Funzionale Accelerator | Acceleratore hardware implementatu in logica FPGA chì scarica una operazione computazionale per una applicazione da u CPU per migliurà u rendiment. |
API | Interfaccia di prugrammazione di l'applicazione | Un inseme di definizioni di subrutine, protokolli è arnesi per custruisce applicazioni software. |
CCI-P | Interfaccia Core Cache | CCI-P hè l'interfaccia standard chì l'AFU utilizanu per cumunicà cù l'ospite. |
DFH | Header di funziunalità di u dispusitivu | Crea una lista ligata di intestazioni di funzioni per furnisce un modu estensibile di aghjunghje funzioni. |
cuntinuò… |
Intel Corporation. Tutti i diritti riservati. Intel, u logu Intel è altri marchi Intel sò marchi di Intel Corporation o di e so filiali. Intel garantisce a prestazione di i so prudutti FPGA è semiconduttori à e specificazioni attuali in cunfurmità cù a garanzia standard di Intel, ma si riserva u dirittu di fà cambiamenti à qualsiasi prudutti è servizii in ogni mumentu senza avvisu. Intel ùn assume alcuna rispunsabilità o responsabilità derivante da l'applicazione o l'usu di qualsiasi informazione, pruduttu o serviziu descritti quì, salvu cum'è espressamente accunsentutu in scrittura da Intel. I clienti di Intel sò cunsigliati per ottene l'ultima versione di e specificazioni di u dispositivu prima di confià nantu à qualsiasi infurmazione publicata è prima di fà ordini per prudutti o servizii. * Altri nomi è marche ponu esse rivendicate cum'è a pruprietà di l'altri.
Acronimi | Espansione | Descrizzione |
FIM | Manager d'interfaccia FPGA | L'hardware FPGA chì cuntene l'unità d'interfaccia FPGA (FIU) è l'interfacce esterne per a memoria, a rete, etc.
A Funzione Accelerator (AF) interfaccia cù a FIM à u tempu di esecuzione. |
FIU | Unità d'interfaccia FPGA | FIU hè una strata di interfaccia di piattaforma chì agisce cum'è un ponte trà interfacce di piattaforma cum'è PCIe *, UPI è interfacce laterali AFU cum'è CCI-P. |
MPF | Pruprietà di memoria Factory | U MPF hè un Basic Building Block (BBB) chì l'AFU ponu aduprà per furnisce l'operazioni di furmazione di trafficu CCI-P per transazzione cù a FIU. |
Glossariu di Acceleration
Acceleration Stack for Intel® Xeon® CPU with FPGA Glossary
Terminu | Abbreviazione | Descrizzione |
Intel® Acceleration Stack per CPU Intel Xeon® cù FPGA | Stack di accelerazione | Una cullizzioni di software, firmware è arnesi chì furnisce una connettività ottimizzata per u rendiment trà un Intel FPGA è un processore Intel Xeon. |
Scheda di accelerazione programmabile Intel FPGA | Intel FPGA PAC | Scheda acceleratore PCIe FPGA.
Contene un FPGA Interface Manager (FIM) chì si accoppia cù un processore Intel Xeon sopra u bus PCIe. |
- Guida per l'usu di l'unità funzionale di l'acceleratore DMA: Intel FPGA Programmable Acceleration Card D5005
Descrizzione DMA AFU
Introduzione
L'AFU Direct Memory Access (DMA) example mostra cumu gestisce i trasferimenti di memoria trà u processatore host è u FPGA. Pudete integrà a DMA AFU in u vostru disignu per trasfurmà e dati trà a memoria di l'ospite è a memoria locale FPGA. L'AFU DMA comprende i seguenti submoduli:
- Fabbrica di Proprietà di Memoria (MPF) Block Building Basic (BBB)
- Core Cache Interface (CCI-P) à l'adattatore Avalon® Memory-Mapped (Avalon-MM)
- DMA Test System chì cuntene u DMA BBB
Questi sottumoduli sò descritti in più detail in u tema di Componenti Hardware DMA AFU quì sottu.
Information Related
- Componenti hardware DMA AFU a pagina 6
- Specifiche di l'interfaccia Avalon
Per più infurmazione nantu à u protokollu Avalon-MM, cumprese i diagrammi di timing per e transazzione di lettura è scrittura.
U pacchettu di software DMA AFU
L'Intel Acceleration Stack per CPU Intel Xeon cù pacchettu FPGA file (*.tar.gz), include u DMA AFU example. Questu example furnisce un driver di spaziu d'utilizatore. L'applicazione di l'ospite usa stu driver in modu chì a DMA move dati trà l'ospite è a memoria FPGA. I binari di hardware, fonti, è u driver di u spaziu di l'utilizatori sò dispunibuli in u repertoriu seguente: $OPAE_PLATFORM_ROOT/hw/samples/dma_afu . Prima di sperimentà cù a DMA AFU, duvete installà u pacchettu di software Open Programmable Acceleration Engine (OPAE). Consultate l'installazione di u pacchettu di software OPAE in l'Intel Acceleration Stack Quick Start Guide per Intel FPGA Programmable Acceleration Card D5005 per l'istruzzioni di installazione. Questa Guida Quick Start include ancu infurmazioni basi nantu à u Open Programmable Acceleration Engine (OPAE) è a cunfigurazione di una AFU. Dopu avè installatu u pacchettu di software Open Programmable Acceleration Engine (OPAE), cum'èampL'applicazione host è u driver di spaziu d'utilizatore DMA AFU sò dispunibuli in u cartulare seguente: $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw. Per curriri u sampl'applicazione host, fpga_dma_test nantu à u vostru hardware Intel FPGA PAC D5005, riferite à i passi in a sezione Esecuzione di DMA AFU Example. Intel Corporation. Tutti i diritti riservati. Intel, u logu Intel è altri marchi Intel sò marchi di Intel Corporation o di e so filiali. Intel garantisce a prestazione di i so prudutti FPGA è semiconduttori à e specificazioni attuali in cunfurmità cù a garanzia standard di Intel, ma si riserva u dirittu di fà cambiamenti à qualsiasi prudutti è servizii in ogni mumentu senza avvisu. Intel ùn assume alcuna rispunsabilità o responsabilità derivante da l'applicazione o l'usu di qualsiasi informazione, pruduttu o serviziu descritta quì, salvu cum'è espressamente accunsentutu in scrittura da Intel. I clienti Intel sò cunsigliati per ottene l'ultima versione di e specificazioni di u dispositivu prima di cunfidendu qualsiasi infurmazione publicata è prima di fà ordini per prudutti o servizii. * Altri nomi è marche ponu esse rivendicate cum'è a pruprietà di l'altri.
Information Related
- Intel Acceleration Stack Quick Start Guide for Intel FPGA Programmable Acceleration Card D5005
- Installazione di u pacchettu di software OPAE
I cumpunenti hardware DMA AFU
L'AFU DMA si interfaccia cù l'unità d'interfaccia FPGA (FIU) è a memoria FPGA. Fate riferimentu à a Scheda di Dati di l'Interface Manager FPGA per Intel FPGA Programmable Acceleration Card D5005 per specificazioni dettagliate di a memoria FPGA. L'hardware attualmente dispunibule detta sta cunfigurazione di memoria. U hardware futuru pò sustene diverse cunfigurazioni di memoria. Pudete aduprà a DMA AFU per copià e dati trà i seguenti lochi fonte è destinazione:
- Memoria FPGA di l'ospite à u dispositivu
- Memoria FPGA di u dispositivu à l'ospite
Un sistema Platform Designer, $OPAE_PLATFORM_ROOT/hw/samples/ dma_afu/hw/rtl/TEST_dma/ /dma_test_system.qsys implementa a maiò parte di u DMA
- AFU. A parte di u DMA AFU implementatu in u sistema Platform Designer pò esse truvata in i seguenti
locu: $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/hw/rtl/TEST_dma/ Pudete truvà u DMA BBB in u locu seguente:
- $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/hw/rtl/dma_bbb
Guida per l'usu di l'unità funzionale di l'acceleratore DMA: Intel FPGA Programmable Acceleration Card D5005
Schema di blocchi di hardware DMA AFU
L'AFU DMA include i seguenti moduli interni per interfaccia cù l'Unità d'interfaccia FPGA (FIU):
- Logica di decodificatore IO-Mappata in Memoria (MMIO): rileva e transazzioni di lettura è scrittura MMIO è li separa da u canali RX CCI-P 0 da chì venenu. Questu assicura chì u trafficu MMIO ùn ghjunghje mai à u MPF BBB è hè servitu da un canale di cummandu MMIO indipendente.
- Memory Properties Factory (MPF): Stu modulu assicura chì e risposte di lettura da u DMA tornanu in l'ordine chì sò stati emessi. U protocolu Avalon-MM richiede risposte di leghje per vultà in l'ordine currettu.
- Adattatore CCI-P à Avalon-MM: Stu modulu traduce trà e transazzioni CCI-P è Avalon-MM, cum'è seguente:
- CCI-P à Avalon-MMIO Adapter: Questa strada traduce transazzione CCI-P MMIO in transazzione Avalon-MM.
- Adattatore Avalon à CCI-P Host: Questi percorsi creanu percorsi separati di sola lettura è di scrittura per a DMA per accede à a memoria di l'ospite.
- Sistema di Test DMA: Stu modulu serve cum'è wrapper intornu à u DMA BBB per espose i maestri DMA à u restu di a logica in l'AFU. Fornisce l'interfaccia trà u DMA BBB è l'adattatore CCI-P à Avalon. Fornisce ancu l'interfaccia trà u DMA BBB è i banche FPGA SDRAM lucali.
Information Related
Scheda di dati di gestione di l'interfaccia FPGA per a carta d'accelerazione programmabile Intel FPGA D5005
Sistema di prova DMA
U sistema di teste DMA cunnetta u DMA BBB à u restu di u disignu FPGA, cumprese l'adattazione CCI-P è a memoria FPGA locale.
Diagramma di bloccu di u sistema di prova DMA
Stu schema di bloccu mostra l'internu di u sistema di prova DMA. U sistema di prova DMA hè mostratu cum'è un bloccu monoliticu in Figura 1 à a pagina 7.
U sistema di prova DMA include i seguenti moduli interni:
- Far Reach Bridge / Pipeline Bridge: Un ponte di pipeline cù latenza regulabile inclusa per cuntrullà a topologia è migliurà u disignu Fmax.
- DMA AFU Device Feature Header (DFH): Questu hè un DFH per a DMA AFU. Questu DFH punta à u prossimu DFH situatu à l'offset 0x100 (DMA BBB DFH).
- Null DFH: Stu cumpunente termina a lista ligata DFH. Se aghjunghje più DMA BBBs à u disignu, assicuratevi chì l'indirizzu di basa DFH nulu hè situatu à a fine di a lista ligata DFH.
- MA Basic Building Block (BBB): Stu bloccu move dati trà l'ospite è a memoria FPGA lucale. Accede ancu à a memoria di l'ospite per accede à e catene di descrittori.
DMA BBB
U subsistema DMA BBB trasferisce dati da l'indirizzi di a fonte à l'indirizzi di destinazione utilizendu transazzioni Avalon-MM. U driver DMA cuntrola u DMA BBB accede à u registru di cuntrollu è di statutu di i diversi cumpunenti in u sistema. U driver DMA cuntrola ancu u DMA BBB utilizendu memoria spartuta per cumunicà descriptori di trasferimentu. U DMA BBB accede à e dati in a memoria FPGA à l'offset 0x0. U DMA BBB accede à i dati è i descrittori in a memoria di l'ospite à l'offset 0x1_0000_0000_0000.
DMA BBB Platform Designer Block Diagram
Stu schema di bloccu esclude alcuni core IP di Pipeline Bridge internu.
Guida per l'usu di l'unità funzionale di l'acceleratore DMA: Intel FPGA Programmable Acceleration Card D5005
Descrizzione DMA AFU
I cumpunenti in u DMA BBB Platform Designer implementanu e seguenti funzioni:
- Ponte Far Reach/Pipeline Bridge: Un ponte di pipeline cù latenza regulabile inclusa per cuntrullà a topologia è migliurà u disignu Fmax.
- MA BBB DFH: Questu hè un header di funziunalità di u dispositivu per u DMA BBB. Questu DFH punta à u prossimu DFH situatu à l'offset 0x100 (DFH Null).
- Descripteur Frontend: Responsabile di ricuperà i descrittori è di trasfiriri à u Dispatcher. Quandu un trasferimentu DMA cumpleta, u frontend riceve a furmazione di statutu da u Dispatcher è soprascrive u descrittore in a memoria di l'ospite.
- Dispatcher: Stu bloccu pianifica e dumande di trasferimentu DMA à u Master Read and Write.
- Leghjite u Maestru: Stu bloccu hè rispunsevuli di leghje e dati da a memoria di l'ospite o FPGA locale è di mandà cum'è dati in streaming à Write Master.
- Scrivite u maestru: Stu bloccu hè rispunsevule per riceve dati in streaming da u Read Master è scrive u cuntenutu à l'ospiti o a memoria FPGA locale.
Registrate Spazi Mappa è Indirizzu
U DMA AFU supporta duie memorie views: U DMA view è l'ospite view. U DMA view supporta un spaziu di indirizzu 49-bit. A mità inferiore di u DMA view mappe à a memoria FPGA locale. A mità superiore di u DMA view mappe per ospitare memoria. L'ospite view include tutti i registri accessibili attraversu l'accessi MMIO, cum'è e tavule DFH, è i registri di cuntrollu / statutu di i vari core IP utilizati in u DMA AFU. I registri MMIO in u DMA BBB è AFU supportanu l'accessu à 32 è 64 bit. U DMA AFU ùn sustene micca l'accessi MMIO 512-bit. L'accessi à i registri Dispatcher in u DMA BBB deve esse 32 bits (Descriptor frontend implementa registri 64-bit).
DMA AFU Register Map
A mappa di u registru DMA AFU furnisce l'indirizzi assoluti di tutti i posti in l'unità. Questi registri sò in l'ospite view perchè hè solu l'ospite chì pò accede à elli.
Mappa di memoria DMA AFU
Offset di l'indirizzu di byte | Nome | Span in Bytes | Descrizzione |
0x0 | DMA AFU DFH | 0x40 | L'intestazione di a funzione di u dispositivu per a DMA AFU. L'ID_L hè stabilitu à 0x9081f88b8f655caa è ID_H hè stabilitu à 0x331db30c988541ea. U DMA AFU DFH hè statu parametrizzatu per puntà à offset 0x100 per truvà u prossimu DFH (DMA BBB DFH). Ùn deve micca mudificà l'indirizzu di basa di u DMA AFU DFH postu chì deve esse situatu à l'indirizzu 0x0 definitu da a specificazione CCIP. |
0x100 | DMA BBB | 0x100 | Specifica u cuntrollu DMA BBB è l'interfaccia di registru di statutu. Pudete riferite à a mappa di registru DMA BBB per più infurmazione. Dentru u DMA BBB à l'offset 0, u DMA BBB include u so propiu DFH. Questu DFH hè statu stabilitu per truvà u prossimu DFH à l'offset 0x100 (NULL DFH). Se aghjunghje più DMA BBB, spaziate 0x100 è assicuratevi chì u NULL DFH seguita l'ultimu DMA da 0x100. |
0x200 | DFH NULL | 0x40 | Termina a lista ligata DFH. L'ID_L hè stabilitu à 0x90fe6aab12a0132f è ID_H hè stabilitu à 0xda1182b1b3444e23. U NULL DFH hè statu parametrizzatu per esse l'ultimu DFH in hardware. Per quessa, u NULL DFH hè situatu à l'indirizzu 0x200. Se aghjunghje DMA BBB supplementari à u sistema, avete bisognu di aumentà l'indirizzu di basa NULL DFH in modu cusì chì ferma à l'indirizzu più altu. U driver DMA è l'applicazione di prova ùn utilizanu micca stu hardware. |
Intel Corporation. Tutti i diritti riservati. Intel, u logu Intel è altri marchi Intel sò marchi di Intel Corporation o di e so filiali. Intel garantisce a prestazione di i so prudutti FPGA è semiconduttori à e specificazioni attuali in cunfurmità cù a garanzia standard di Intel, ma si riserva u dirittu di fà cambiamenti à qualsiasi prudutti è servizii in ogni mumentu senza avvisu. Intel ùn assume alcuna rispunsabilità o responsabilità derivante da l'applicazione o l'usu di qualsiasi informazione, pruduttu o serviziu descritti quì, salvu cum'è espressamente accunsentutu in scrittura da Intel. I clienti di Intel sò cunsigliati per ottene l'ultima versione di e specificazioni di u dispositivu prima di confià nantu à qualsiasi infurmazione publicata è prima di fà ordini per prudutti o servizii. * Altri nomi è marche ponu esse rivendicate cum'è a pruprietà di l'altri.
Registrate Spazi Mappa è Indirizzu
Mappa di memoria DMA BBB
I seguenti indirizzi di byte sò offsets relative da l'indirizzu di basa DMA BBB in u sistema DMA AFU (0x100).
Offset di l'indirizzu di byte | Nome | Span in Bytes | Descrizzione |
0x0 | DMA BBB DFH | 0x40 | L'intestazione di a funzione di u dispositivu per a DMA AFU. L'ID_L hè stabilitu à 0xa9149a35bace01ea è ID_H hè stabilitu à 0xef82def7f6ec40fc. U DMA BBB DFH hè statu parametrizzatu per puntà à 0x100 per u prossimu offset DFH. Stu prossimu offset pò esse un altru DMA BBB, un altru DFH (micca inclusu in stu disignu), o u NULL DFH. |
0x40 | Dispatcher | 0x40 | Portu di cuntrollu per u dispatcher. U driver DMA usa stu locu per cuntrullà u DMA o dumandà u so statutu. |
0x80 | Descripteur Frontend | 0x40 | U frontend di descriptore hè un cumpunente persunalizatu chì leghje descriptori da a memoria di l'ospite è soprascrive u descriptore quandu u trasferimentu DMA finisci. U cunduttore urdineghja u frontend induve u primu descrittore vive in a memoria di l'ospite è dopu u hardware di u frontend comunica cù u cunduttore principalmente per i descrittori almacenati in a memoria di l'ospite. |
Spaziu d'indirizzu DMA AFU
L'ospite pò accede à i registri listati in a Tabella 4 in a pagina 12 è in a Tabella 5 in a pagina 13. U subsistema DMA BBB hà accessu à u spaziu d'indirizzu sanu di 49-bit. A mità più bassa di stu spaziu di indirizzu include i ricordi FPGA lucali. A mità superiore di stu spaziu d'indirizzu include a memoria di l'indirizzu host di 48-bit. A figura seguente mostra l'ospite è DMA views di memoria.
U DMA AFU è Host Views di Memoria
Dispositivu Feature Header Linked-List
U disignu DMA AFU example cuntene trè intestazioni di funziunalità di u dispositivu (DFH) chì formanu una lista ligata. Sta lista ligata permette à u sampl'applicazione per identificà u DMA AFU è u driver per identificà u DMA BBB. A lista DFH include un DFH NULL à a fine. L'inclusione di u nulu DFH à a fine di a lista ligata permette di aghjunghje più DMA BBB à u vostru disignu. Avete bisognu di trasfurmà u NULL DFH à un indirizzu dopu à l'altri BBB. Ogni DMA BBB aspetta chì u prossimu DFH sia situatu 0x100 bytes da l'indirizzu di basa di u BBB. A figura seguente mostra a lista ligata per u disignu DMA AFU example.
Registrate Spazi Mappa è Indirizzu
DMA AFU Device Feature Header (DFH) Chaining
Modellu di prugrammazione di software
U DMA AFU include un driver software chì pudete aduprà in a vostra propria applicazione host. U fpga_dma.cpp è fpga_dma.h files situati in u locu seguente implementanu u driver di u software: $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw Stu driver supporta e seguenti funzioni:
API | Descrizzione |
fpgaCountDMACchannels | Scanseghja a catena di funzioni di u dispositivu per i DMA BBB è cunta tutti i canali dispunibili. |
fpgaDMAOpen | Apre un manicu à u canali DMA. |
fpgaDMAClose | Chiude un manicu à u canali DMA. |
fpgaDMATransferInit | Inizializza un oggettu chì rapprisenta u trasferimentu DMA. |
fpgaDMATransferReset | Resetta l'ughjettu di l'attributu di trasferimentu DMA à i valori predeterminati. |
fpgaDMATransferDestroy | Distrughje l'ughjettu di l'attributu di trasferimentu DMA. |
fpgaDMATransferSetSrc | Stabilisce l'indirizzu fonte di u trasferimentu. Questu indirizzu deve esse allinatu à 64 byte. |
fpgaDMATransferSetDst | Stabilisce l'indirizzu di destinazione di u trasferimentu. Questu indirizzu deve esse allinatu à 64 byte. |
fpgaDMATransferSetLen | Stabilisce e lunghezze di trasferimentu in byte. Per i trasferimenti senza pacchettu, deve stabilisce a durata di trasferimentu à un multiplu di 64 bytes. Per i trasferimenti di pacchetti, questu ùn hè micca un requisitu. |
fpgaDMATransferSetTransferType | Stabilisce u tipu di trasferimentu. I valori legali sò:
• HOST_MM_TO_FPGA_MM = TX (Host à AFU) • FPGA_MM_TO_HOST_MM = RX (AFU à l'ospiti) |
fpgaDMATransferSetTransferCallback | Registra una callback per a notificazione nantu à a fine di u trasferimentu asincronu. Se specificate un callback, fpgaDMATransfer torna immediatamente (trasferimentu asincronu).
Se ùn specificate micca una callback, fpgaDMATransfer torna dopu chì u trasferimentu hè cumpletu (trasferimentu sincronu / bloccu). |
fpgaDMATransferSetLast | Indica l'ultimu trasferimentu in modu chì a DMA pò inizià a trasfurmazioni di i trasferimenti prefetched. U valore predeterminatu hè 64 trasferimenti in u pipeline prima chì a DMA cumencia à travaglià nantu à i trasferimenti. |
fpgaDMA Transfer | Esegue un trasferimentu DMA. |
Per più infurmazione nantu à l'API, l'argumenti di input è output, riferite à l'intestazione file situatu $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw/fpga_dma.hIntel Corporation. Tutti i diritti riservati. Intel, u logu Intel è altri marchi Intel sò marchi di Intel Corporation o di e so filiali. Intel garantisce a prestazione di i so prudutti FPGA è semiconduttori à e specificazioni attuali in cunfurmità cù a garanzia standard di Intel, ma si riserva u dirittu di fà cambiamenti à qualsiasi prudutti è servizii in ogni mumentu senza avvisu. Intel ùn assume alcuna rispunsabilità o responsabilità derivante da l'applicazione o l'usu di qualsiasi informazione, pruduttu o serviziu descritta quì, salvu cum'è espressamente accunsentutu in scrittura da Intel. I clienti Intel sò cunsigliati per ottene l'ultima versione di e specificazioni di u dispositivu prima di cunfidendu qualsiasi infurmazione publicata è prima di fà ordini per prudutti o servizii. Altri nomi è marche ponu esse rivendicate cum'è a pruprietà di l'altri.
Modellu di prugrammazione di software
Per sapè di più nantu à u mudellu d'usu di u driver di software, riferite à README file situatu à $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/README.md
Esecuzione di DMA AFU Example
Prima di principià:
- Duvete esse familiarizatu cù l'examples in l'Intel Acceleration Stack Quick Start Guide for Intel FPGA Programmable Acceleration Card D5005.
- Avete bisognu di definisce una variabile d'ambiente. A variabile di l'ambiente dipende da a versione Intel Acceleration Stack chì stai aduprate:
- Per a versione attuale, stabilisce a variabile d'ambiente à $OPAE_PLATFORM_ROOT
- Duvete installà a libreria Intel Threading Building Blocks (TBB) postu chì u driver DMA si basa in questu.
- Avete ancu cunfigurà duie pagine enormi di 1 GB per eseguisce u sampl'applicazione. $ sudo sh -c "echo 2 > /sys/kernel/mm/hugepages/hugepages-1048576kB/ nr_hugepages"
Eseguite i seguenti passi per scaricà u bitstream DMA Accelerator Function (AF), per custruisce l'applicazione è u driver, è per eseguisce u disignu ex.ampLe:
- Cambia à l'applicazione DMA è u cartulare di u driver: cd $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw
- Custruite u driver è l'applicazione: fate
- Scaricate u bitstream DMA AFU: sudo fpgasupdate ../bin/dma_afu_unsigned.gbs
- Eseguite l'applicazione host per scrive 100 MB in porzioni di 1 MB da a memoria host à a memoria di u dispositivu FPGA è leghje torna: ./ fpga_dma_test -s 104857600 -p 1048576 -r mtom
Information Related
Intel Acceleration Stack Quick Start Guide for Intel FPGA Programmable Acceleration Card D5005 Intel Corporation. Tutti i diritti riservati. Intel, u logu Intel è altri marchi Intel sò marchi di Intel Corporation o di e so filiali. Intel garantisce a prestazione di i so prudutti FPGA è semiconduttori à e specificazioni attuali in cunfurmità cù a garanzia standard di Intel, ma si riserva u dirittu di fà cambiamenti à qualsiasi prudutti è servizii in ogni mumentu senza avvisu. Intel ùn assume alcuna rispunsabilità o responsabilità derivante da l'applicazione o l'usu di qualsiasi informazione, pruduttu o serviziu descritta quì, salvu cum'è espressamente accunsentutu in scrittura da Intel. I clienti Intel sò cunsigliati per ottene l'ultima versione di e specificazioni di u dispositivu prima di cunfidendu qualsiasi infurmazione publicata è prima di fà ordini per prudutti o servizii. * Altri nomi è marche ponu esse rivendicate cum'è a pruprietà di l'altri.
Cumpilazione di u DMA AFU Example
Per generà un ambiente di creazione di sintesi per compilà un AF, utilizate l'ordine afu_synth_setup cum'è seguente:
- Cambia à i DMA AFU sampu cartulare: $OPAE_PLATFORM_ROOT/hw/samples/dma_afu
- Generate u cartulare di creazione di design: afu_synth_setup -source hw/rtl/filelist.txt build_synth
- Da u cartulare di sintesi generatu da afu_synth_setup, inserite i seguenti cumandamenti da una finestra di terminal per generà un AF per a piattaforma hardware di destinazione: cd build_synth run.sh U script di generazione run.sh AF crea l'immagine AF cù a stessa basa. filenome cum'è a cunfigurazione di a piattaforma di l'AFU file (.json) cù un suffissu .gbs à u locu: $OPAE_PLATFORM_ROOT/hw/samples/build_synth/dma_afu_s10.gbs Intel Corporation. Tutti i diritti riservati. Intel, u logu Intel è altri marchi Intel sò marchi di Intel Corporation o di e so filiali. Intel garantisce a prestazione di i so prudutti FPGA è semiconduttori à e specificazioni attuali in cunfurmità cù a garanzia standard di Intel, ma si riserva u dirittu di fà cambiamenti à qualsiasi prudutti è servizii in ogni mumentu senza avvisu. Intel ùn assume alcuna rispunsabilità o responsabilità derivante da l'applicazione o l'usu di qualsiasi informazione, pruduttu o serviziu descritta quì, salvu cum'è espressamente accunsentutu in scrittura da Intel. I clienti Intel sò cunsigliati per ottene l'ultima versione di e specificazioni di u dispositivu prima di cunfidendu qualsiasi infurmazione publicata è prima di fà ordini per prudutti o servizii. * Altri nomi è marche ponu esse rivendicate cum'è a pruprietà di l'altri.
Simulazione di l'AFU Example
Intel consiglia di riferite à l'Intel Accelerator Functional Unit (AFU) Simulation Environment (ASE) Quick Start Guide per u vostru Intel FPGA PAC per esse familiarizatu cù simulazione simili.amples è à stallà u vostru ambiente. Prima di passà per i seguenti passi, verificate chì a variabile d'ambiente OPAE_PLATFORM_ROOT hè stallata in u cartulare di installazione OPAE SDK. Cumplete i seguenti passi per cunfigurà u simulatore di hardware per a DMA AFU:
- Cambia à i DMA AFU sampu cartulare: cd $OPAE_PLATFORM_ROOT/hw/samples/dma_afu
- Crea un ambiente ASE in un novu repertoriu è cunfigurallu per a simulazione di una AFU: afu_sim_setup -source hw/rtl/filelist.txt build_ase_dir
- Cambia à u cartulare di build ASE: cd build_ase_dir
- Custruite u driver è l'applicazione: fate
- Fate simulazione: fate sim
Sample output da u simulatore di hardware:
[SIM] ** ATTENZIONE : PRIMA di eseguisce l'applicazione software ** [SIM] Set env(ASE_WORKDIR) in u terminal induve l'applicazione correrà (copia è incolla) => [SIM] $SHELL | Run:[SIM] ———+————————————————— [SIM] bash/zsh | Esporta 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] Per qualsiasi altru $SHELL, cunsultate u vostru amministratore Linux [SIM] [SIM] Pronta per a simulazione ... [SIM] Press CTRL-C per chjude u simulatore ...Cumplete i seguenti passi per cumpilà è eseguisce u software DMA AFU in l'ambiente di simulazione:
- Apertura una nova finestra di terminal.
- Cambia u cartulare à: cd $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw
Intel Corporation. Tutti i diritti riservati. Intel, u logu Intel è altri marchi Intel sò marchi di Intel Corporation o di e so filiali. Intel garantisce a prestazione di i so prudutti FPGA è semiconduttori à e specificazioni attuali in cunfurmità cù a garanzia standard di Intel, ma si riserva u dirittu di fà cambiamenti à qualsiasi prudutti è servizii in ogni mumentu senza avvisu. Intel ùn assume alcuna rispunsabilità o responsabilità derivante da l'applicazione o l'usu di qualsiasi informazione, pruduttu o serviziu descritti quì, salvu cum'è espressamente accunsentutu in scrittura da Intel. I clienti di Intel sò cunsigliati per ottene l'ultima versione di e specificazioni di u dispositivu prima di confià nantu à qualsiasi infurmazione publicata è prima di fà ordini per prudutti o servizii. * Altri nomi è marche ponu esse rivendicate cum'è a pruprietà di l'altri.
Simulazione di l'AFU Example
- Copia a stringa di configurazione di l'ambiente (sceglite a stringa adattata per a vostra cunchiglia) da i passi sopra in a simulazione di hardware à a finestra di terminal. Vede e seguenti righe in u sample output da u simulatore di hardware. [SIM] bash/zsh | Esporta 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
- Cumpilà u software: $ make USE_ASE=1
- Eseguite l'applicazione host per scrive 4 KB in porzioni 1 KB da a memoria di l'ospite torna à a memoria di u dispositivu FPGA in u modu di loopback: ./ fpga_dma_test -s 4096 -p 1024 -r mtom
Information Related
Guida per l'utente di l'ambiente di simulazione (ASE) di l'unità funzionale di l'acceleratore Intel (AFU).
Ottimisazione per un rendimentu DMA miglioratu
L'implementazione di l'ottimisazione NUMA (accessu à a memoria non uniforme) in fpga_dma_test.cpp permette à u processatore accede à a so propria memoria locale più veloce di accede à a memoria non-lucale (memoria locale à un altru processore). Una cunfigurazione tipica NUMA hè mostrata in u diagramma sottu. L'accessu lucale rapprisenta l'accessu da un core à a memoria locale à u stessu core. L'accessu remoto illustra u percorsu pigliatu quandu un core in u Node 0 accede à a memoria chì reside in a memoria locale à u Node 1.
Cunfigurazione tipica NUMA
Aduprate u codice seguente per implementà l'ottimisazione NUMA in a vostra applicazione di prova:
// Stabilisci l'affinità propria si dumanda se (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, "fpgaPropertiesGetDevice"; // Truvate u dispusitivu da a topologia hwloc_topology_t topology; hwloc_topology_init(&topologia); hwloc_topology_set_flags (topologia, HWLOC_TOPOLOGY_FLAG_IO_DEVICES); Intel Corporation. Tutti i diritti riservati. Intel, u logu Intel è altri marchi Intel sò marchi di Intel Corporation o di e so filiali. Intel garantisce a prestazione di i so prudutti FPGA è semiconduttori à e specificazioni attuali in cunfurmità cù a garanzia standard di Intel, ma si riserva u dirittu di fà cambiamenti à qualsiasi prudutti è servizii in ogni mumentu senza avvisu. Intel ùn assume alcuna rispunsabilità o responsabilità derivante da l'applicazione o l'usu di qualsiasi informazione, pruduttu o serviziu descritta quì, salvu cum'è espressamente accunsentutu in scrittura da Intel. I clienti Intel sò cunsigliati per ottene l'ultima versione di e specificazioni di u dispositivu prima di cunfidendu qualsiasi infurmazione publicata è prima di fà ordini per prudutti o servizii. * Altri nomi è marche ponu esse rivendicate cum'è a pruprietà di l'altri.
Ottimisazione per un rendimentu DMA miglioratu
hwloc_topology_load (topologia); hwloc_obj_t obj = hwloc_get_pcidev_by_busid (topologia, dom, bus, dev, func); hwloc_obj_t obj2 = hwloc_get_non_io_ancestor_obj (topologia, 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 hè %s\n", str); hwloc_bitmap_taskset_snprintf (str, 4096, obj2->nodeset); printf("NODESET hè %s\n", str);#endif if (memory_affinity) { #if HWLOC_API_VERSION> 0x00020000 retval = hwloc_set_membind (topology, obj2->nodeset, HWLOC_MEMBIND_THREAD, HWLOC_MEMBIND_THREAD, HWLOC_MEMBINDBY_NOGRATE | #else retval =hwloc_set_membind_nodeset (topologia, 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 (topulugia, obj2->cpuset, HWLOC_CPUBIND_STRICT); ON_ERR_GOTO(retval, out_destroy_tok, "hwloc_set_cpubind"); } }
DMA Accelerator Functional Unit User Guide Archives
Versione Intel Acceleration Stack | Guida d'usu (PDF) |
2.0 | Guida per l'utente di l'unità funzionale di l'acceleratore DMA (AFU). |
Storia di Revisione di Documenti per a Guida di l'Usuariu di l'Unità Funzionale di Accelerator DMA
Versione di documentu |
Accelerazione Intel Stack Version |
Cambiamenti |
2020.08.03 |
2.0.1 (supportatu cù Intel
Quartus® Prime Pro Edition Edition 19.2) |
Corretta l'immagine AF file nome in a sezione Cumpilazione di u DMA AFU Example. |
2020.04.17 |
2.0.1 (supportatu cù Intel
Quartus Prime Pro Edition Edition 19.2) |
Currettu una dichjarazione in Audience destinata sezione. |
2020.02.20 |
2.0.1 (supportatu cù Intel
Quartus Prime Pro Edition Edition 19.2) |
Correttu typo. |
2019.11.04 |
2.0.1 (supportatu cù Intel Quartus Prime Pro Edition Edition 19.2) |
• Sustituitu u fpgaconf cù fpgasupdate quandu cunfigurà u FPGA cù l'AFU prebuild in a sezione Esecuzione di u DMA AFU Example.
• Subtitulu aghjuntu Scheda di accelerazione programmabile Intel FPGA D5005 à u titulu di u documentu. • Aggiunta variabile ambientale $OPAE_PLATFORM_ROOT. • Sizzioni mudificatu Modellu di prugrammazione di software per e modifiche minori. • Aggiunta nova rùbbrica Cumpilazione di u DMA AFU Example. • Sizzioni mudificatu Ottimisazione per un rendimentu DMA miglioratu per e modifiche minori. |
2019.08.05 |
2.0 (supportatu cù Intel
Quartus Prime Pro Edition 18.1.2) |
Liberazione iniziale. |
Intel Corporation. Tutti i diritti riservati. Intel, u logu Intel è altri marchi Intel sò marchi di Intel Corporation o di e so filiali. Intel garantisce a prestazione di i so prudutti FPGA è semiconduttori à e specificazioni attuali in cunfurmità cù a garanzia standard di Intel, ma si riserva u dirittu di fà cambiamenti à qualsiasi prudutti è servizii in ogni mumentu senza avvisu. Intel ùn assume alcuna rispunsabilità o responsabilità derivante da l'applicazione o l'usu di qualsiasi informazione, pruduttu o serviziu descritta quì, salvu cum'è espressamente accunsentutu in scrittura da Intel. I clienti di Intel sò cunsigliati per ottene l'ultima versione di e specificazioni di u dispositivu prima di confià nantu à qualsiasi infurmazione publicata è prima di fà ordini per prudutti o servizii.
- Altri nomi è marche ponu esse rivendicate cum'è a pruprietà di l'altri.
Documenti / Risorse
![]() |
Scheda di accelerazione programmabile Intel FPGA D5005 [pdfGuida di l'utente Scheda di accelerazione programmabile FPGA, D5005, Scheda di accelerazione programmabile FPGA D5005, Unità funzionale di acceleratore DMA |