Logotip d'Intel

Targeta d'acceleració programable Intel FPGA D5005

Producte Intel.-FPGA-Programmable-Acceleration-Card-D5005

Sobre aquest document

Aquest document descriu la implementació de la unitat funcional de l'accelerador (AFU) d'accés directe a la memòria (DMA) i com crear el disseny per executar-se en maquinari o en simulació.

Públic destinat

El públic destinat inclou desenvolupadors de maquinari o programari que requereixen una funció d'acceleració (AF) per emmagatzemar dades localment a la memòria connectada al dispositiu Intel FPGA.

Convencions

Convencions documentals

Convenció Descripció
# Precedeix una ordre que indica que l'ordre s'ha d'introduir com a root.
$ Indica que s'ha d'introduir una ordre com a usuari.
Aquest tipus de lletra Fileels noms, les ordres i les paraules clau s'imprimeixen en aquest tipus de lletra. Les línies d'ordres llargues s'imprimeixen amb aquest tipus de lletra. Tot i que les línies d'ordre llargues poden encaixar a la línia següent, el retorn no forma part de l'ordre; no premeu enter.
Indica que el text del marcador de posició que apareix entre els claudàtors angulars s'ha de substituir per un valor adequat. No introduïu els claudàtors angulars.

Acrònims

Acrònims

Acrònims Expansió Descripció
AF Funció acceleradora Imatge compilada de l'accelerador de maquinari implementada en lògica FPGA que accelera una aplicació.
AFU Unitat Funcional Accelerador Accelerador de maquinari implementat en lògica FPGA que descarrega una operació computacional per a una aplicació de la CPU per millorar el rendiment.
API Interfície de programació d'aplicacions Un conjunt de definicions de subrutines, protocols i eines per crear aplicacions de programari.
CCI-P Interfície de memòria cau bàsica CCI-P és la interfície estàndard que utilitzen les AFU per comunicar-se amb l'amfitrió.
DFH Capçalera de la funció del dispositiu Crea una llista enllaçada de capçaleres de funcions per proporcionar una manera extensible d'afegir funcions.
continuat…

Intel Corporation. Tots els drets reservats. Intel, el logotip d'Intel i altres marques d'Intel són marques comercials d'Intel Corporation o de les seves filials. Intel garanteix el rendiment dels seus productes FPGA i semiconductors amb les especificacions actuals d'acord amb la garantia estàndard d'Intel, però es reserva el dret de fer canvis a qualsevol producte i servei en qualsevol moment sense previ avís. Intel no assumeix cap responsabilitat derivada de l'aplicació o l'ús de qualsevol informació, producte o servei descrit aquí, tret que Intel ho acordi expressament per escrit. Es recomana als clients d'Intel que obtinguin la darrera versió de les especificacions del dispositiu abans de confiar en qualsevol informació publicada i abans de fer comandes de productes o serveis. * Altres noms i marques es poden reclamar com a propietat d'altres.

Acrònims Expansió Descripció
FIM Gestor d'interfícies FPGA El maquinari FPGA que conté la unitat d'interfície FPGA (FIU) i interfícies externes per a memòria, xarxes, etc.

La funció d'accelerador (AF) es connecta amb la FIM en temps d'execució.

FIU Unitat d'interfície FPGA FIU és una capa d'interfície de plataforma que actua com a pont entre interfícies de plataforma com PCIe*, UPI i interfícies laterals AFU com CCI-P.
MPF Fàbrica de propietats de memòria El MPF és un bloc bàsic (BBB) ​​que les AFU poden utilitzar per proporcionar operacions de conformació del trànsit CCI-P per a transaccions amb la FIU.

Glossari d'acceleració

Pila d'acceleració per a CPU Intel® Xeon® amb glossari FPGA

Terme Abreviatura Descripció
Intel® Acceleration Stack per a CPU Intel Xeon® amb FPGA Pila d'acceleració Una col·lecció de programari, microprogramari i eines que ofereix una connectivitat optimitzada per al rendiment entre una FPGA Intel i un processador Intel Xeon.
Targeta d'acceleració programable Intel FPGA Intel FPGA PAC Targeta acceleradora PCIe FPGA.

Conté un gestor d'interfícies FPGA (FIM) que es combina amb un processador Intel Xeon a través del bus PCIe.

  • Guia d'usuari de la unitat funcional de l'accelerador DMA: targeta d'acceleració programable Intel FPGA D5005

Descripció DMA AFU

Introducció

L'AFU d'accés directe a la memòria (DMA) exampLe mostra com gestionar les transferències de memòria entre el processador amfitrió i l'FPGA. Podeu integrar la DMA AFU al vostre disseny per moure dades entre la memòria de l'amfitrió i la memòria local FPGA. La DMA AFU consta dels següents submòduls:

  • Fàbrica de propietats de memòria (MPF) Bloc de construcció bàsic (BBB)
  • Interfície de memòria cau principal (CCI-P) a l'adaptador Avalon® Memory-Mapped (Avalon-MM)
  • Sistema de prova DMA que conté el DMA BBB

Aquests submòduls es descriuen amb més detall al tema Components de maquinari DMA AFU a continuació.

Informació relacionada

  • Components de maquinari DMA AFU a la pàgina 6
  • Especificacions de la interfície Avalon

Per obtenir més informació sobre el protocol Avalon-MM, inclosos els diagrames de temps per a transaccions de lectura i escriptura.

El paquet de programari DMA AFU

La pila d'acceleració Intel per a CPU Intel Xeon amb paquet FPGA file (*.tar.gz), inclou el DMA AFU example. Aquest exampli proporciona un controlador d'espai d'usuari. L'aplicació amfitrió utilitza aquest controlador de manera que el DMA mou les dades entre la memòria amfitrió i FPGA. Els binaris de maquinari, les fonts i el controlador d'espai d'usuari estan disponibles al directori següent: $OPAE_PLATFORM_ROOT/hw/samples/dma_afu . Abans d'experimentar amb el DMA AFU, heu d'instal·lar el paquet de programari Open Programable Acceleration Engine (OPAE). Consulteu Instal·lació del paquet de programari OPAE a la Guia d'inici ràpid d'Intel Acceleration Stack per a la targeta d'acceleració programable Intel FPGA D5005 per obtenir instruccions d'instal·lació. Aquesta Guia d'inici ràpid també inclou informació bàsica sobre el motor d'acceleració programable obert (OPAE) i la configuració d'una AFU. Després d'instal·lar el paquet de programari Open Programmable Acceleration Engine (OPAE), comampL'aplicació amfitrió i el controlador d'espai d'usuari DMA AFU estan disponibles al directori següent: $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw. Per córrer el sampl'aplicació amfitriona, fpga_dma_test al vostre maquinari Intel FPGA PAC D5005, consulteu els passos de la secció Execució del DMA AFU Example. Intel Corporation. Tots els drets reservats. Intel, el logotip d'Intel i altres marques d'Intel són marques comercials d'Intel Corporation o de les seves filials. Intel garanteix el rendiment dels seus productes FPGA i semiconductors amb les especificacions actuals d'acord amb la garantia estàndard d'Intel, però es reserva el dret de fer canvis a qualsevol producte i servei en qualsevol moment sense previ avís. Intel no assumeix cap responsabilitat derivada de l'aplicació o l'ús de qualsevol informació, producte o servei descrit aquí, tret que Intel ho acordi expressament per escrit. Es recomana als clients d'Intel que obtinguin la darrera versió de les especificacions del dispositiu abans de confiar en qualsevol informació publicada i abans de fer comandes de productes o serveis. * Altres noms i marques es poden reclamar com a propietat d'altres.

Informació relacionada

  • Guia d'inici ràpid d'Intel Acceleration Stack per a la targeta d'acceleració programable Intel FPGA D5005
  • Instal·lació del paquet de programari OPAE

Components de maquinari DMA AFU

La DMA AFU s'interconecta amb la unitat d'interfície FPGA (FIU) i la memòria FPGA. Consulteu el full de dades del gestor d'interfícies FPGA per a la targeta d'acceleració programable Intel FPGA D5005 per obtenir especificacions detallades de la memòria FPGA. El maquinari disponible actualment dicta aquesta configuració de memòria. El futur maquinari pot suportar diferents configuracions de memòria. Podeu utilitzar la DMA AFU per copiar dades entre les ubicacions d'origen i de destinació següents:

  • Memòria FPGA de l'amfitrió al dispositiu
  • Memòria FPGA del dispositiu a l'amfitrió

Un sistema de dissenyador de plataforma, $OPAE_PLATFORM_ROOT/hw/samples/ dma_afu/hw/rtl/TEST_dma/ /dma_test_system.qsys implementa la major part del DMA

  • AFU. A continuació es pot trobar una part de la DMA AFU implementada al sistema Platform Designer

ubicació:$OPAE_PLATFORM_ROOT/hw/samples/dma_afu/hw/rtl/TEST_dma/ Podeu trobar el DMA BBB a la següent ubicació:

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

Guia d'usuari de la unitat funcional de l'accelerador DMA: targeta d'acceleració programable Intel FPGA D5005

Diagrama de blocs de maquinari DMA AFU

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

El DMA AFU inclou els següents mòduls interns per connectar amb la unitat d'interfície FPGA (FIU):

  • Lògica del descodificador d'IO mapejada amb memòria (MMIO): detecta transaccions de lectura i escriptura MMIO i les separa del canal 0 CCI-P RX del qual arriben. Això garanteix que el trànsit MMIO no arribi mai a l'MPF BBB i sigui atès per un canal d'ordres MMIO independent.
  • Fàbrica de propietats de memòria (MPF): aquest mòdul garanteix que les respostes de lectura del DMA tornin en l'ordre en què es van emetre. El protocol Avalon-MM requereix que les respostes de lectura tornin en l'ordre correcte.
  • Adaptador CCI-P a Avalon-MM: aquest mòdul es tradueix entre transaccions CCI-P i Avalon-MM de la següent manera:
  • Adaptador CCI-P a Avalon-MMIO: aquest camí tradueix les transaccions CCI-P MMIO en transaccions Avalon-MM.
  • Adaptador d'amfitrió d'Avalon a CCI-P: aquests camins creen camins separats de només lectura i d'escriptura perquè el DMA accedeixi a la memòria de l'amfitrió.
  • Sistema de prova DMA: aquest mòdul serveix com a embolcall al voltant del DMA BBB per exposar els mestres DMA a la resta de la lògica de l'AFU. Proporciona la interfície entre el DMA BBB i l'adaptador CCI-P a Avalon. També proporciona la interfície entre el DMA BBB i els bancs locals FPGA SDRAM.

Informació relacionada
Full de dades del gestor d'interfícies FPGA per a la targeta d'acceleració programable Intel FPGA D5005

Sistema de prova DMA

El sistema de prova DMA connecta el DMA BBB a la resta del disseny FPGA, inclosa l'adaptació CCI-P i la memòria FPGA local.

Diagrama de blocs del sistema de prova DMA
Aquest diagrama de blocs mostra els elements interns del sistema de prova DMA. El sistema de prova DMA es mostra com un bloc monolític a la figura 1 a la pàgina 7.Intel.-FPGA-Programmable-Acceleration-Card-D5005-fig-2

El sistema de prova DMA inclou els següents mòduls interns:

  • Pont Far Reach/Pipeline Bridge: un pont de canonades amb latència ajustable inclosa per controlar la topologia i millorar el disseny Fmax.
  • Capçalera de característiques del dispositiu DMA AFU (DFH): aquest és un DFH per a la DMA AFU. Aquest DFH apunta al següent DFH situat a l'offset 0x100 (DMA BBB DFH).
  • DFH nul: aquest component finalitza la llista enllaçada DFH. Si afegiu més DMA BBB al disseny, assegureu-vos que l'adreça base DFH nul·la es troba al final de la llista enllaçada DFH.
  • MA Basic Building Block (BBB): aquest bloc mou dades entre l'amfitrió i la memòria FPGA local. També accedeix a la memòria de l'amfitrió per accedir a les cadenes de descriptors.

DMA BBB

El subsistema DMA BBB transfereix dades de les adreces d'origen a les de destinació mitjançant transaccions Avalon-MM. El controlador DMA controla el DMA BBB accedint al registre de control i estat dels diferents components del sistema. El controlador DMA també controla el DMA BBB utilitzant memòria compartida per comunicar els descriptors de transferència. El DMA BBB accedeix a les dades de la memòria FPGA a l'offset 0x0. El DMA BBB accedeix a les dades i als descriptors de la memòria de l'amfitrió amb el desplaçament 0x1_0000_0000_0000.

Diagrama de blocs del dissenyador de la plataforma DMA BBB
Aquest diagrama de blocs exclou alguns nuclis IP interns de Pipeline Bridge.Intel.-FPGA-Programmable-Acceleration-Card-D5005-fig-6

Guia d'usuari de la unitat funcional de l'accelerador DMA: targeta d'acceleració programable Intel FPGA D5005

Descripció DMA AFU

Els components del DMA BBB Platform Designer implementen les funcions següents:

  • Pont de gran abast/pont de canonades: Un pont de canonades amb latència ajustable inclòs per controlar la topologia i millorar el disseny Fmax.
  • MA BBB DFH: Aquesta és una capçalera de característiques del dispositiu per al DMA BBB. Aquest DFH apunta al següent DFH situat al desplaçament 0x100 (DFH nul).
  • Descriptor Frontend: Responsable d'obtenir els descriptors i transferir-los al Dispatcher. Quan es completa una transferència de DMA, la interfície rep la formació d'estat del Dispatcher i sobreescriu el descriptor a la memòria de l'amfitrió.
  • Distribuïdor: Aquest bloc programa les sol·licituds de transferències DMA al mestre de lectura i escriptura.
  • Llegir mestre: Aquest bloc s'encarrega de llegir les dades de la memòria FPGA de l'amfitrió o local i enviar-les com a dades de transmissió a Write Master.
  • Mestre d'escriptura: Aquest bloc és l'encarregat de rebre dades de streaming del Read Master i escriure el contingut a la memòria FPGA de l'amfitrió o local.

Registre d'espais de mapes i adreces

El DMA AFU admet dues memòries views: El DMA view i l'amfitrió view. El DMA view Admet un espai d'adreces de 49 bits. La meitat inferior de la DMA view mapeja a la memòria FPGA local. La meitat superior de la DMA view mapes a la memòria amfitriona. L'amfitrió view inclou tots els registres accessibles mitjançant accessos MMIO, com ara les taules DFH, i els registres de control/estat dels diferents nuclis IP utilitzats dins de la DMA AFU. Els registres MMIO al DMA BBB i AFU admeten accés de 32 i 64 bits. El DMA AFU no admet accessos MMIO de 512 bits. Els accessos als registres del Dispatcher dins del DMA BBB han de ser de 32 bits (la interfície de Descriptor implementa registres de 64 bits).

Mapa de registre DMA AFU

El mapa de registre DMA AFU proporciona les adreces absolutes de totes les ubicacions dins de la unitat. Aquests registres es troben a l'amfitrió view perquè només l'amfitrió pot accedir-hi.

Mapa de memòria DMA AFU

Desplaçaments d'adreces de bytes Nom Interval en bytes Descripció
0 x 0 DMA AFU DFH 0 x 40 Capçalera de la funció del dispositiu per a la DMA AFU. L'ID_L s'estableix en 0x9081f88b8f655caa i l'ID_H s'estableix en 0x331db30c988541ea. El DMA AFU DFH s'ha parametritzat per apuntar a compensar 0x100 per trobar el següent DFH (DMA BBB DFH). No heu de modificar l'adreça base del DMA AFU DFH ja que s'ha d'ubicar a l'adreça 0x0 tal com es defineix a l'especificació CCIP.
0 x 100 DMA BBB 0 x 100 Especifica el control DMA BBB i la interfície de registre d'estat. Podeu consultar el mapa del registre DMA BBB per obtenir més informació. Dins del DMA BBB a l'offset 0, el DMA BBB inclou el seu propi DFH. Aquest DFH s'ha configurat per trobar el següent DFH al desplaçament 0x100 (DFH NULL). Si afegiu més DMA BBB, espaieu-los 0x100 i assegureu-vos que el DFH NULL segueix l'últim DMA en 0x100.
0 x 200 DFH NULL 0 x 40 Finalitza la llista enllaçada DFH. L'ID_L s'estableix en 0x90fe6aab12a0132f i l'ID_H s'estableix en 0xda1182b1b3444e23. El DFH NULL s'ha parametritzat per ser l'últim DFH del maquinari. Per aquest motiu, el DFH NULL es troba a l'adreça 0x200. Si afegiu BBB DMA addicionals al sistema, haureu d'augmentar l'adreça base DFH NULL en conseqüència perquè es mantingui a l'adreça més alta. El controlador DMA i l'aplicació de prova no utilitzen aquest maquinari.

Intel Corporation. Tots els drets reservats. Intel, el logotip d'Intel i altres marques d'Intel són marques comercials d'Intel Corporation o de les seves filials. Intel garanteix el rendiment dels seus productes FPGA i semiconductors amb les especificacions actuals d'acord amb la garantia estàndard d'Intel, però es reserva el dret de fer canvis a qualsevol producte i servei en qualsevol moment sense previ avís. Intel no assumeix cap responsabilitat derivada de l'aplicació o l'ús de qualsevol informació, producte o servei descrit aquí, tret que Intel ho acordi expressament per escrit. Es recomana als clients d'Intel que obtinguin la darrera versió de les especificacions del dispositiu abans de confiar en qualsevol informació publicada i abans de fer comandes de productes o serveis. * Altres noms i marques es poden reclamar com a propietat d'altres.

Registre d'espais de mapes i adreces

Mapa de memòria DMA BBB
Les següents adreces de bytes són desplaçaments relatius de l'adreça base DMA BBB al sistema DMA AFU (0x100).

Desplaçaments d'adreces de bytes Nom Interval en bytes Descripció
0 x 0 DMA BBB DFH 0 x 40 Capçalera de la funció del dispositiu per a la DMA AFU. L'ID_L s'estableix en 0xa9149a35bace01ea i l'ID_H s'estableix en 0xef82def7f6ec40fc. El DMA BBB DFH s'ha parametritzat per apuntar a 0x100 per al següent desplaçament DFH. Aquest següent desplaçament pot ser un altre DMA BBB, un altre DFH (no inclòs en aquest disseny) o el DFH NULL.
0 x 40 Despatx 0 x 40 Port de control per al despatxador. El controlador DMA utilitza aquesta ubicació per controlar el DMA o consultar-ne l'estat.
0 x 80 Descriptor Frontend 0 x 40 La interfície del descriptor és un component personalitzat que llegeix descriptors de la memòria de l'amfitrió i sobreescriu el descriptor quan es completa la transferència de DMA. El controlador indica a la interfície on viu el primer descriptor a la memòria de l'amfitrió i després el maquinari de la interfície es comunica amb el controlador principalment mitjançant descriptors emmagatzemats a la memòria de l'amfitrió.

Espai d'adreces DMA AFU

L'amfitrió pot accedir als registres enumerats a la Taula 4 a la pàgina 12 i a la Taula 5 a la pàgina 13. El subsistema DMA BBB té accés a l'espai d'adreces complet de 49 bits. La meitat inferior d'aquest espai d'adreces inclou les memòries FPGA locals. La meitat superior d'aquest espai d'adreces inclou la memòria d'adreces de l'amfitrió de 48 bits. La figura següent mostra l'amfitrió i el DMA views de memòria.

El DMA AFU i l'amfitrió Views de Memòria

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

Llista enllaçada de la capçalera de funcions del dispositiu

El disseny DMA AFU exampEl fitxer conté tres capçaleres de característiques del dispositiu (DFH) que formen una llista enllaçada. Aquesta llista enllaçada permet el sampl'aplicació per identificar el DMA AFU, així com el controlador per identificar el DMA BBB. La llista DFH inclou un DFH NULL al final. La inclusió del DFH nul al final de la llista enllaçada us permet afegir més BBB DMA al vostre disseny. Només heu de moure el DFH NULL a una adreça després dels altres BBB. Cada DMA BBB espera que el següent DFH estigui situat a 0x100 bytes de l'adreça base del BBB. La figura següent mostra la llista enllaçada per al disseny DMA AFU, per exempleample.

Registre d'espais de mapes i adreces

Encadenament de la capçalera de característiques del dispositiu DMA AFU (DFH).

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

Model de programació de programari

El DMA AFU inclou un controlador de programari que podeu utilitzar a la vostra pròpia aplicació d'amfitrió. Els fitxers fpga_dma.cpp i fpga_dma.h fileEls ubicats a la següent ubicació implementen el controlador de programari:$OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw Aquest controlador admet les funcions següents:

API Descripció
fpgaCountDMAChannels Escaneja la cadena de funcions del dispositiu a la recerca de DMA BBB i compta tots els canals disponibles.
fpgaDMAOpen Obre un mànec al canal DMA.
fpgaDMACtancar Tanca un mànec al canal DMA.
fpgaDMATransferInit Inicialitza un objecte que representa la transferència de DMA.
fpgaDMATransferReset Restableix l'objecte d'atribut de transferència DMA als valors predeterminats.
fpgaDMATransferDestroy Destrueix l'objecte d'atribut de transferència DMA.
fpgaDMATransferSetSrc Estableix l'adreça d'origen de la transferència. Aquesta adreça ha d'estar alineada de 64 bytes.
fpgaDMATransferSetDst Estableix l'adreça de destinació de la transferència. Aquesta adreça ha d'estar alineada de 64 bytes.
fpgaDMATransferSetLen Estableix les longituds de transferència en bytes. Per a les transferències sense paquets, heu d'establir la longitud de la transferència en un múltiple de 64 bytes. Per a les transferències de paquets, això no és un requisit.
fpgaDMATransferSetTransferType Estableix el tipus de transferència. Els valors legals són:

• HOST_MM_TO_FPGA_MM = TX (amfitrió a AFU)

• FPGA_MM_TO_HOST_MM = RX (AFU a l'amfitrió)

fpgaDMATransferSetTransferCallback Registra la devolució de trucada per a la notificació en finalitzar la transferència asíncrona. Si especifiqueu una devolució de trucada, fpgaDMATransfer retorna immediatament (transferència asíncrona).

Si no especifiqueu una devolució de trucada, fpgaDMATransfer torna un cop finalitzada la transferència (transferència síncrona/de bloqueig).

fpgaDMATransferSetLast Indica l'última transferència perquè el DMA pugui començar a processar les transferències recuperades prèviament. El valor predeterminat és 64 transferències en procés abans que el DMA comenci a treballar en les transferències.
fpgaDMATransfer Realitza una transferència de DMA.

Per obtenir més informació sobre l'API, els arguments d'entrada i de sortida, consulteu la capçalera file localitzat $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw/fpga_dma.hIntel Corporation. Tots els drets reservats. Intel, el logotip d'Intel i altres marques d'Intel són marques comercials d'Intel Corporation o de les seves filials. Intel garanteix el rendiment dels seus productes FPGA i semiconductors amb les especificacions actuals d'acord amb la garantia estàndard d'Intel, però es reserva el dret de fer canvis a qualsevol producte i servei en qualsevol moment sense previ avís. Intel no assumeix cap responsabilitat derivada de l'aplicació o l'ús de qualsevol informació, producte o servei descrit aquí, tret que Intel ho acordi expressament per escrit. Es recomana als clients d'Intel que obtinguin la darrera versió de les especificacions del dispositiu abans de confiar en qualsevol informació publicada i abans de fer comandes de productes o serveis. Altres noms i marques es poden reclamar com a propietat d'altres.

Model de programació de programari

Per obtenir més informació sobre el model d'ús del controlador de programari, consulteu el README file situat a $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/README.md

Execució de DMA AFU Example

Abans de començar:

  • Hauríeu de conèixer l'exampfitxers a la Guia d'inici ràpid de la pila d'acceleració Intel per a la targeta d'acceleració programable Intel FPGA D5005.
  • Heu de definir una variable d'entorn. La variable d'entorn depèn de la versió d'Intel Acceleration Stack que utilitzeu:
    • Per a la versió actual, establiu la variable d'entorn a $OPAE_PLATFORM_ROOT
  • Heu d'instal·lar la biblioteca Intel Threading Building Blocks (TBB) ja que el controlador DMA depèn d'ella.
  • També heu de configurar dues pàgines enormes d'1 GB per executar el sampl'aplicació. $ sudo sh -c "echo 2 > /sys/kernel/mm/hugepages/hugepages-1048576kB/ nr_hugepages"

Seguiu els passos següents per descarregar el flux de bits de la funció d'accelerador DMA (AF), per crear l'aplicació i el controlador i per executar el disseny ex.ampLI:

  1. Canvieu a l'aplicació DMA i al directori del controlador: cd $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw
  2. Construeix el controlador i l'aplicació: make
  3. Baixeu el bitstream DMA AFU: sudo fpgasupdate ../bin/dma_afu_unsigned.gbs
  4. Executeu l'aplicació de l'amfitrió per escriure 100 MB en porcions d'1 MB de la memòria de l'amfitrió a la memòria del dispositiu FPGA i tornar-la a llegir: ./ fpga_dma_test -s 104857600 -p 1048576 -r mtom

Informació relacionada
Guia d'inici ràpid d'Intel Acceleration Stack per a la targeta d'acceleració programable Intel FPGA D5005 Intel Corporation. Tots els drets reservats. Intel, el logotip d'Intel i altres marques d'Intel són marques comercials d'Intel Corporation o de les seves filials. Intel garanteix el rendiment dels seus productes FPGA i semiconductors amb les especificacions actuals d'acord amb la garantia estàndard d'Intel, però es reserva el dret de fer canvis a qualsevol producte i servei en qualsevol moment sense previ avís. Intel no assumeix cap responsabilitat derivada de l'aplicació o l'ús de qualsevol informació, producte o servei descrit aquí, tret que Intel ho acordi expressament per escrit. Es recomana als clients d'Intel que obtinguin la darrera versió de les especificacions del dispositiu abans de confiar en qualsevol informació publicada i abans de fer comandes de productes o serveis. * Altres noms i marques es poden reclamar com a propietat d'altres.

Compilant el DMA AFU Example

Per generar un entorn de construcció de síntesi per compilar un AF, utilitzeu l'ordre afu_synth_setup de la següent manera:

  1. Canvi a les AFU DMAampdirectori de fitxers: $OPAE_PLATFORM_ROOT/hw/samples/dma_afu
  2. Genereu el directori de creació de disseny: afu_synth_setup –source hw/rtl/filelist.txt build_synth
  3. Des del directori de compilació de síntesi generat per afu_synth_setup, introduïu les ordres següents des d'una finestra de terminal per generar un AF per a la plataforma de maquinari objectiu: cd build_synth run.sh L'script de generació d'AF run.sh crea la imatge AF amb la mateixa base filenom com a configuració de la plataforma de l'AFU file (.json) amb un sufix .gbs a la ubicació:$OPAE_PLATFORM_ROOT/hw/samples/build_synth/dma_afu_s10.gbs Intel Corporation. Tots els drets reservats. Intel, el logotip d'Intel i altres marques d'Intel són marques comercials d'Intel Corporation o de les seves filials. Intel garanteix el rendiment dels seus productes FPGA i semiconductors amb les especificacions actuals d'acord amb la garantia estàndard d'Intel, però es reserva el dret de fer canvis a qualsevol producte i servei en qualsevol moment sense previ avís. Intel no assumeix cap responsabilitat derivada de l'aplicació o l'ús de qualsevol informació, producte o servei descrit aquí, tret que Intel ho acordi expressament per escrit. Es recomana als clients d'Intel que obtinguin la darrera versió de les especificacions del dispositiu abans de confiar en qualsevol informació publicada i abans de fer comandes de productes o serveis. * Altres noms i marques es poden reclamar com a propietat d'altres.

Simulant l'AFU Example

Intel recomana que consulteu la Guia d'inici ràpid de l'entorn de simulació (ASE) de la unitat funcional de l'accelerador d'Intel (AFU) per al vostre Intel FPGA PAC per familiaritzar-vos amb la simulació d'ex.ampi per configurar el vostre entorn. Abans de continuar amb els passos següents, verifiqueu que la variable d'entorn OPAE_PLATFORM_ROOT estigui establerta al directori d'instal·lació de l'SDK OPAE. Completeu els passos següents per configurar el simulador de maquinari per a la DMA AFU:

  1. Canvi a les AFU DMAampdirectori de fitxers: cd $OPAE_PLATFORM_ROOT/hw/samples/dma_afu
  2. Creeu un entorn ASE en un directori nou i configureu-lo per simular una AFU: afu_sim_setup –source hw/rtl/filelist.txt build_ase_dir
  3. Canvieu al directori de compilació d'ASE: cd build_ase_dir
  4. Construeix el controlador i l'aplicació: make
  5. Fer simulació: fer sim

Sampsortida del fitxer del simulador de maquinari:

[SIM] ** ATENCIÓ: ABANS d'executar l'aplicació de programari ** [SIM] Establiu env(ASE_WORKDIR) al terminal on s'executarà l'aplicació (copiar i enganxar) => [SIM] $SHELL | Executar:[SIM] ———+———————————————— [SIM] bash/zsh | exportar 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 a qualsevol altre $SHELL, consulteu el vostre administrador de Linux [SIM] [SIM] A punt per a la simulació... [SIM] Premeu CTRL-C per tancar el simulador...

Completeu els passos següents per compilar i executar el programari DMA AFU a l'entorn de simulació:

  1. Obre una nova finestra de terminal.
  2. Canvia el directori a: cd $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw

Intel Corporation. Tots els drets reservats. Intel, el logotip d'Intel i altres marques d'Intel són marques comercials d'Intel Corporation o de les seves filials. Intel garanteix el rendiment dels seus productes FPGA i semiconductors amb les especificacions actuals d'acord amb la garantia estàndard d'Intel, però es reserva el dret de fer canvis a qualsevol producte i servei en qualsevol moment sense previ avís. Intel no assumeix cap responsabilitat derivada de l'aplicació o l'ús de qualsevol informació, producte o servei descrit aquí, tret que Intel ho acordi expressament per escrit. Es recomana als clients d'Intel que obtinguin la darrera versió de les especificacions del dispositiu abans de confiar en qualsevol informació publicada i abans de fer comandes de productes o serveis. * Altres noms i marques es poden reclamar com a propietat d'altres.

Simulant l'AFU Example

  1. Copieu la cadena de configuració de l'entorn (trieu la cadena adequada per al vostre shell) dels passos anteriors de la simulació de maquinari a la finestra del terminal. Vegeu les línies següents al sampsortida del fitxer del simulador de maquinari. [SIM] bash/zsh | exportar ASE_WORKDIR=$OPAE_PLATFORM_ROOT/hw/samples/dma_afu/build_ase_dir/work [SIM] tcsh/csh | setenv ASE_WORKDIR $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/build_ase_dir/work
  2. Compileu el programari: $ make USE_ASE=1
  3. Executeu l'aplicació de l'amfitrió per escriure 4 KB en porcions d'1 KB des de la memòria de l'amfitrió a la memòria del dispositiu FPGA en el mode de bucle: ./ fpga_dma_test -s 4096 -p 1024 -r mtom

Informació relacionada
Guia de l'usuari d'inici ràpid de l'entorn de simulació (ASE) de la unitat funcional de l'accelerador Intel (AFU).

Optimització per a un rendiment DMA millorat

La implementació de l'optimització NUMA (accés a la memòria no uniforme) a fpga_dma_test.cpp permet que el processador accedeixi a la seva pròpia memòria local més ràpidament que accedir a la memòria no local (la memòria local a un altre processador). Al diagrama següent es mostra una configuració típica de NUMA. L'accés local representa l'accés des d'un nucli a la memòria local al mateix nucli. L'accés remot il·lustra el camí que es pren quan un nucli del node 0 accedeix a la memòria que resideix a la memòria local del node 1.

Configuració típica de NUMA

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

Utilitzeu el codi següent per implementar l'optimització NUMA a la vostra aplicació de prova:

// Configureu l'afinitat adequada si se sol·licita si (cpu_affinity || memory_affinity) {dom sense sign = 0, bus = 0, dev = 0, func = 0; props de fpga_properties;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 *) i dev);ON_ERR_GOTO(res, out_destroy_tok, “fpgaPropertiesGetDevice”) res = fpgaPropertiesGetFunction(props, (uint8_t *) & func);ON_ERR_GOTO, “fpgaPropertiesGetDevice”); // Trobeu el dispositiu de la topologia hwloc_topology_t topology; hwloc_topology_init(&topologia); hwloc_topology_set_flags(topologia, HWLOC_TOPOLOGY_FLAG_IO_DEVICES);Intel Corporation. Tots els drets reservats. Intel, el logotip d'Intel i altres marques d'Intel són marques comercials d'Intel Corporation o de les seves filials. Intel garanteix el rendiment dels seus productes FPGA i semiconductors amb les especificacions actuals d'acord amb la garantia estàndard d'Intel, però es reserva el dret de fer canvis a qualsevol producte i servei en qualsevol moment sense previ avís. Intel no assumeix cap responsabilitat derivada de l'aplicació o l'ús de qualsevol informació, producte o servei descrit aquí, tret que Intel ho acordi expressament per escrit. Es recomana als clients d'Intel que obtinguin la darrera versió de les especificacions del dispositiu abans de confiar en qualsevol informació publicada i abans de fer comandes de productes o serveis. * Altres noms i marques es poden reclamar com a propietat d'altres.

Optimització per a un rendiment DMA millorat

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 és %s\n”, str); hwloc_bitmap_taskset_snprintf(str, 4096, obj2->nodeset); printf(“NODESET és %s\n”, str);#endif if (memòria_afinitat) { #if HWLOC_API_VERSION > 0x00020000 retval = hwloc_set_membind(topology, obj2->nodeset,HWLOC_MEMBIND_THREAD, HWLOC_MEMBIND_THREAD, HWLOC_MEMBINDBY_LOC_MIGRAME |HWLOC_MEMBIND_LOC_MIMBIND); #else retval =hwloc_set_membind_nodeset(topology, obj2->nodesset, HWLOC_MEMBIND_THREAD,HWLOC_MEMBIND_MIGRATE); #endifON_ERR_GOTO(retval, out_destroy_tok, “hwloc_set_membind”); } if (cpu_affinity) { retval = hwloc_set_cpubind(topology, obj2->cpuset, HWLOC_CPUBIND_STRICT); ON_ERR_GOTO(retval, out_destroy_tok, “hwloc_set_cpubind”); } }

Arxius de la guia d'usuari de la unitat funcional de l'accelerador DMA

Versió Intel Acceleration Stack Guia de l'usuari (PDF)
2.0 Guia d'usuari de la unitat funcional de l'accelerador DMA (AFU).

Historial de revisions de documents per a la Guia d'usuari de la unitat funcional DMA Accelerator

 

Versió del document

Acceleració Intel Versió de pila  

Canvis

 

 

2020.08.03

2.0.1 (comptat amb Intel

Quartus® Prime Pro Edition Edition 19.2)

 

S'ha corregit la imatge AF file nom a la secció Compilant el DMA AFU Example.

 

 

2020.04.17

2.0.1 (comptat amb Intel

Quartus Prime Pro Edition Edition 19.2)

 

 

S'ha corregit una declaració a Públic destinat secció.

 

 

2020.02.20

2.0.1 (comptat amb Intel

Quartus Prime Pro Edition Edition 19.2)

 

 

S'ha corregit una errada d'ortografia.

 

 

 

 

2019.11.04

 

 

2.0.1 (comptat amb Intel

Quartus Prime Pro Edition Edition 19.2)

• S'ha substituït el fpgaconf per fpgasupdate quan es configura l'FPGA amb l'AFU preconstruït a la secció Execució del DMA AFU Example.

• Subtítols afegits Targeta d'acceleració programable Intel FPGA D5005 al títol del document.

• S'ha afegit la variable d'entorn $OPAE_PLATFORM_ROOT.

• Secció modificada Model de programació de programari per a edicions menors.

• S'ha afegit una nova secció Compilant el DMA AFU Example.

• Secció modificada Optimització per a un rendiment DMA millorat per a edicions menors.

 

 

2019.08.05

2.0 (comptat amb Intel

Quartus Prime Pro Edition 18.1.2)

 

 

Alliberament inicial.

Intel Corporation. Tots els drets reservats. Intel, el logotip d'Intel i altres marques d'Intel són marques comercials d'Intel Corporation o de les seves filials. Intel garanteix el rendiment dels seus productes FPGA i semiconductors amb les especificacions actuals d'acord amb la garantia estàndard d'Intel, però es reserva el dret de fer canvis a qualsevol producte i servei en qualsevol moment sense previ avís. Intel no assumeix cap responsabilitat derivada de l'aplicació o l'ús de qualsevol informació, producte o servei descrit aquí, tret que Intel ho acordi expressament per escrit. Es recomana als clients d'Intel que obtinguin la darrera versió de les especificacions del dispositiu abans de confiar en qualsevol informació publicada i abans de fer comandes de productes o serveis.

  • Altres noms i marques es poden reclamar com a propietat d'altres.

 

Documents/Recursos

Targeta d'acceleració programable Intel FPGA D5005 [pdfGuia de l'usuari
Targeta d'acceleració programable FPGA, D5005, targeta d'acceleració programable FPGA D5005, unitat funcional de l'accelerador DMA

Referències

Deixa un comentari

La teva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats *