Tarxeta de aceleración programable Intel FPGA D5005
Sobre este documento
Este documento describe a implementación da Unidade Funcional do Acelerador (AFU) de acceso directo á memoria (DMA) e como crear o deseño para executalo en hardware ou en simulación.
Público destinado
O público destinatario comprende desenvolvedores de hardware ou software que requiren unha función de aceleración (AF) para almacenar datos localmente na memoria conectada ao dispositivo Intel FPGA.
Convencións
Convencións de documentos
Convenio | Descrición |
# | Precede a un comando que indica que o comando debe introducirse como root. |
$ | Indica que se debe introducir un comando como usuario. |
Este tipo de letra | Filenomes, comandos e palabras clave están impresos neste tipo de letra. As liñas de comando longas están impresas neste tipo de letra. Aínda que as liñas de comando longas poden envolverse na seguinte liña, o retorno non forma parte do comando; non prema Intro. |
Indica que o texto do marcador de posición que aparece entre os corchetes angulares debe ser substituído por un valor adecuado. Non introduza os corchetes angulares. |
Acrónimos
Acrónimos
Acrónimos | Expansión | Descrición |
AF | Función Acelerador | Imaxe compilada do acelerador de hardware implementado en lóxica FPGA que acelera unha aplicación. |
AFU | Unidade Funcional Acelerador | Acelerador de hardware implementado en lóxica FPGA que descarga unha operación computacional para unha aplicación da CPU para mellorar o rendemento. |
API | Interfaz de programación de aplicacións | Un conxunto de definicións de subrutinas, protocolos e ferramentas para crear aplicacións de software. |
CCI-P | Interface Core Cache | CCI-P é a interface estándar que usan as AFU para comunicarse co host. |
DFH | Cabeceira da función do dispositivo | Crea unha lista ligada de cabeceiras de funcións para ofrecer unha forma extensible de engadir funcións. |
continuou… |
Intel Corporation. Todos os dereitos reservados. Intel, o logotipo de Intel e outras marcas de Intel son marcas comerciais de Intel Corporation ou das súas subsidiarias. Intel garante o rendemento dos seus produtos FPGA e semicondutores segundo as especificacións actuais de acordo coa garantía estándar de Intel, pero resérvase o dereito de facer cambios en calquera produto e servizo en calquera momento e sen previo aviso. Intel non asume ningunha responsabilidade ou responsabilidade derivada da aplicación ou uso de calquera información, produto ou servizo descrito aquí, salvo que Intel o acorde expresamente por escrito. Recoméndase aos clientes de Intel que obteñan a versión máis recente das especificacións do dispositivo antes de confiar en calquera información publicada e antes de facer pedidos de produtos ou servizos. *Outros nomes e marcas poden ser reclamados como propiedade doutros.
Acrónimos | Expansión | Descrición |
FIM | Xestor de interfaces FPGA | O hardware FPGA que contén a unidade de interface FPGA (FIU) e interfaces externas para memoria, redes, etc.
A función de acelerador (AF) interactúa co FIM no tempo de execución. |
FIU | Unidade de interface FPGA | FIU é unha capa de interface de plataforma que actúa como ponte entre interfaces de plataforma como PCIe*, UPI e interfaces do lado AFU como CCI-P. |
MPF | Fábrica de propiedades da memoria | O MPF é un bloque básico de construción (BBB) que as AFU poden usar para proporcionar operacións de conformación de tráfico CCI-P para transaccións coa FIU. |
Glosario de aceleración
Pila de aceleración para CPU Intel® Xeon® con Glosario de FPGA
Prazo | Abreviatura | Descrición |
Intel® Acceleration Stack para CPU Intel Xeon® con FPGA | Pila de aceleración | Unha colección de software, firmware e ferramentas que proporciona conectividade optimizada para o rendemento entre unha FPGA Intel e un procesador Intel Xeon. |
Tarxeta de aceleración programable Intel FPGA | Intel FPGA PAC | Tarxeta aceleradora PCIe FPGA.
Contén un FPGA Interface Manager (FIM) que se empareja cun procesador Intel Xeon a través do bus PCIe. |
- Guía de usuario da unidade funcional do acelerador DMA: tarxeta de aceleración programable Intel FPGA D5005
Descrición DMA AFU
Introdución
A AFU de acceso directo á memoria (DMA) example mostra como xestionar as transferencias de memoria entre o procesador host e a FPGA. Podes integrar a DMA AFU no teu deseño para mover datos entre a memoria host e a memoria local FPGA. A DMA AFU comprende os seguintes submódulos:
- Fábrica de propiedades de memoria (MPF) Bloque de construción básico (BBB)
- Core Cache Interface (CCI-P) ao adaptador Avalon® Memory-Mapped (Avalon-MM)
- Sistema de proba DMA que contén o DMA BBB
Estes submódulos descríbense con máis detalle no tema Compoñentes de hardware DMA AFU a continuación.
Información relacionada
- Compoñentes de hardware DMA AFU na páxina 6
- Especificacións da interface Avalon
Para obter máis información sobre o protocolo Avalon-MM, incluíndo diagramas de tempo para transaccións de lectura e escritura.
O paquete de software DMA AFU
A pila de aceleración de Intel para CPU Intel Xeon con paquete FPGA file (*.tar.gz), inclúe o DMA AFU example. Este example proporciona un controlador de espazo de usuario. A aplicación host usa este controlador de xeito que o DMA move os datos entre o host e a memoria FPGA. Os binarios de hardware, as fontes e o controlador de espazo de usuario están dispoñibles no seguinte directorio: $OPAE_PLATFORM_ROOT/hw/samples/dma_afu . Antes de probar co DMA AFU, debes instalar o paquete de software Open Programable Acceleration Engine (OPAE). Consulte Instalación do paquete de software OPAE na Guía de inicio rápido de Intel Acceleration Stack para a tarxeta de aceleración programable Intel FPGA D5005 para obter instrucións de instalación. Esta Guía de inicio rápido tamén inclúe información básica sobre o Open Programable Acceleration Engine (OPAE) e a configuración dunha AFU. Despois de instalar o paquete de software Open Programmable Acceleration Engine (OPAE), comoampA aplicación host e o controlador de espazo de usuario DMA AFU están dispoñibles no seguinte directorio: $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw. Para executar o sampaplicación host, fpga_dma_test no seu hardware Intel FPGA PAC D5005, consulte os pasos da sección Execución do DMA AFU Example. Intel Corporation. Todos os dereitos reservados. Intel, o logotipo de Intel e outras marcas de Intel son marcas comerciais de Intel Corporation ou das súas subsidiarias. Intel garante o rendemento dos seus produtos FPGA e semicondutores segundo as especificacións actuais de acordo coa garantía estándar de Intel, pero resérvase o dereito de facer cambios en calquera produto e servizo en calquera momento e sen previo aviso. Intel non asume ningunha responsabilidade ou responsabilidade derivada da aplicación ou uso de calquera información, produto ou servizo descrito aquí, salvo que Intel o acorde expresamente por escrito. Recoméndase aos clientes de Intel que obteñan a versión máis recente das especificacións do dispositivo antes de confiar en calquera información publicada e antes de facer pedidos de produtos ou servizos. *Outros nomes e marcas poden ser reclamados como propiedade doutros.
Información relacionada
- Guía de inicio rápido de Intel Acceleration Stack para tarjeta de aceleración programable Intel FPGA D5005
- Instalación do paquete de software OPAE
Compoñentes de hardware DMA AFU
A DMA AFU interactúa coa unidade de interface FPGA (FIU) e a memoria FPGA. Consulte a folla de datos do xestor de interfaces FPGA para a tarxeta de aceleración programable Intel FPGA D5005 para obter especificacións detalladas da memoria FPGA. O hardware dispoñible actualmente dita esta configuración de memoria. O hardware futuro pode admitir diferentes configuracións de memoria. Podes usar o DMA AFU para copiar datos entre as seguintes localizacións de orixe e destino:
- Memoria FPGA do host ao dispositivo
- Memoria FPGA do dispositivo ao host
Un sistema Platform Designer, $OPAE_PLATFORM_ROOT/hw/samples/ dma_afu/hw/rtl/TEST_dma/ /dma_test_system.qsys implementa a maior parte do DMA
- AFU. Parte do DMA AFU implementado no sistema Platform Designer pódese atopar a continuación
localización:$OPAE_PLATFORM_ROOT/hw/samples/dma_afu/hw/rtl/TEST_dma/ Podes atopar o DMA BBB na seguinte localización:
- $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/hw/rtl/dma_bbb
Guía de usuario da unidade funcional do acelerador DMA: tarxeta de aceleración programable Intel FPGA D5005
Diagrama de bloques de hardware DMA AFU
A AFU DMA inclúe os seguintes módulos internos para interactuar coa Unidade de interface FPGA (FIU):
- Lóxica do decodificador de IO mapeado en memoria (MMIO): detecta transaccións de lectura e escritura MMIO e sepáraas da canle 0 CCI-P RX da que chegan. Isto garante que o tráfico MMIO nunca chegue ao MPF BBB e sexa atendido por unha canle de comando MMIO independente.
- Fábrica de propiedades de memoria (MPF): este módulo garante que as respostas de lectura do DMA volvan na orde en que foron emitidas. O protocolo Avalon-MM require que as respostas de lectura volvan na orde correcta.
- Adaptador CCI-P a Avalon-MM: este módulo tradúcese entre transaccións CCI-P e Avalon-MM do seguinte xeito:
- Adaptador CCI-P a Avalon-MMIO: este camiño traduce as transaccións CCI-P MMIO en transaccións Avalon-MM.
- Adaptador de host de Avalon a CCI-P: estes camiños crean camiños separados de só lectura e de só escritura para que o DMA acceda á memoria do host.
- Sistema de proba DMA: este módulo serve como envoltorio ao redor do BBB DMA para expor os mestres DMA ao resto da lóxica da AFU. Proporciona a interface entre o DMA BBB e o adaptador CCI-P a Avalon. Tamén proporciona a interface entre o DMA BBB e os bancos SDRAM FPGA locais.
Información relacionada
Folla de datos do xestor de interfaces FPGA para a tarxeta de aceleración programable Intel FPGA D5005
Sistema de proba DMA
O sistema de proba DMA conecta o DMA BBB ao resto do deseño FPGA, incluíndo a adaptación CCI-P e a memoria FPGA local.
Diagrama de bloques do sistema de proba DMA
Este diagrama de bloques mostra os elementos internos do sistema de proba DMA. O sistema de proba DMA móstrase como un bloque monolítico na Figura 1 na páxina 7.
O sistema de proba DMA inclúe os seguintes módulos internos:
- Ponte Far Reach/Pipeline Bridge: unha ponte de canalización con latencia axustable incluída para controlar a topoloxía e mellorar o deseño Fmax.
- Encabezado de funcións do dispositivo DMA AFU (DFH): este é un DFH para o DMA AFU. Este DFH apunta ao seguinte DFH situado no offset 0x100 (DMA BBB DFH).
- DFH nulo: este compoñente remata a lista ligada DFH. Se engades máis DMA BBB ao deseño, asegúrate de que o enderezo base DFH nulo estea ao final da lista de ligazóns DFH.
- MA Basic Building Block (BBB): este bloque move datos entre o host e a memoria FPGA local. Tamén accede á memoria do host para acceder ás cadeas de descritores.
DMA BBB
O subsistema DMA BBB transfire datos de enderezos de orixe a destino mediante transaccións Avalon-MM. O controlador DMA controla o DMA BBB accedendo ao rexistro de control e estado dos distintos compoñentes do sistema. O controlador DMA tamén controla o DMA BBB mediante a memoria compartida para comunicar os descritores de transferencia. O DMA BBB accede aos datos na memoria FPGA con offset 0x0. O DMA BBB accede a datos e descritores na memoria do host no offset 0x1_0000_0000_0000.
Diagrama de bloques do deseñador da plataforma DMA BBB
Este diagrama de bloques exclúe algúns núcleos IP internos de Pipeline Bridge.
Guía de usuario da unidade funcional do acelerador DMA: tarxeta de aceleración programable Intel FPGA D5005
Descrición DMA AFU
Os compoñentes do Deseñador de plataformas DMA BBB implementan as seguintes funcións:
- Ponte Far Reach/Ponte Pipeline: Unha ponte de canalización con latencia axustable incluída para controlar a topoloxía e mellorar o deseño Fmax.
- MA BBB DFH: Esta é unha cabeceira da función do dispositivo para o DMA BBB. Este DFH apunta ao seguinte DFH situado no offset 0x100 (DFH nulo).
- Descritor Frontend: Responsable de buscar os descritores e transferilos ao Dispatcher. Cando se completa unha transferencia de DMA, a interface recibe a formación de estado do Dispatcher e sobrescribe o descritor na memoria do host.
- Distribuidor: Este bloque programa solicitudes de transferencias DMA ao mestre de lectura e escritura.
- Ler mestre: Este bloque encárgase de ler os datos do host ou da memoria FPGA local e envialos como datos de transmisión a Write Master.
- Escribir mestre: Este bloque encárgase de recibir datos de streaming do Read Master e escribir os contidos na memoria FPGA local ou host.
Rexistrar espazos de mapas e enderezos
A DMA AFU admite dúas memorias views: O DMA view e o anfitrión view. O DMA view admite un espazo de enderezos de 49 bits. A metade inferior do DMA view mapea á memoria FPGA local. A metade superior do DMA view mapas para aloxar memoria. O anfitrión view inclúe todos os rexistros accesibles a través de accesos MMIO como as táboas DFH e os rexistros de control/estado dos distintos núcleos IP utilizados dentro da AFU DMA. O MMIO rexistra no DMA BBB e AFU admiten acceso de 32 e 64 bits. A DMA AFU non admite accesos MMIO de 512 bits. Os accesos aos rexistros de Dispatcher dentro do DMA BBB deben ser de 32 bits (o interface Descriptor implementa rexistros de 64 bits).
Mapa de rexistro de DMA AFU
O mapa de rexistro DMA AFU proporciona os enderezos absolutos de todas as localizacións dentro da unidade. Estes rexistros están no host view porque só o host pode acceder a eles.
Mapa de memoria DMA AFU
Desprazamentos de enderezos de bytes | Nome | Intervalo en bytes | Descrición |
0x0 | DMA AFU DFH | 0x40 | Cabeceira da función do dispositivo para a DMA AFU. O ID_L establécese en 0x9081f88b8f655caa e ID_H en 0x331db30c988541ea. O DMA AFU DFH foi parametrizado para que apunte a compensación 0x100 para atopar o seguinte DFH (DMA BBB DFH). Non debe modificar o enderezo base do DMA AFU DFH xa que debe estar situado no enderezo 0x0 segundo o definido pola especificación CCIP. |
0x100 | DMA BBB | 0x100 | Especifica o control DMA BBB e a interface de rexistro de estado. Podes consultar o mapa de rexistro DMA BBB para obter máis información. Dentro do DMA BBB no offset 0, o DMA BBB inclúe o seu propio DFH. Esta DFH foi configurada para atopar o seguinte DFH no offset 0x100 (NULL DFH). Se engades máis DMA BBB, espaciaos 0x100 e asegúrate de que o DFH NULL siga ao último DMA en 0x100. |
0x200 | DFH NULLA | 0x40 | Finaliza a lista ligada DFH. O ID_L establécese en 0x90fe6aab12a0132f e ID_H está configurado en 0xda1182b1b3444e23. O DFH NULL foi parametrizado para ser o último DFH do hardware. Por este motivo, o DFH NULL está situado no enderezo 0x200. Se engades DMA BBB adicionais ao sistema, debes aumentar o enderezo base DFH NULL en consecuencia para que permaneza no enderezo máis alto. O controlador DMA e a aplicación de proba non usan este hardware. |
Intel Corporation. Todos os dereitos reservados. Intel, o logotipo de Intel e outras marcas de Intel son marcas comerciais de Intel Corporation ou das súas subsidiarias. Intel garante o rendemento dos seus produtos FPGA e semicondutores segundo as especificacións actuais de acordo coa garantía estándar de Intel, pero resérvase o dereito de facer cambios en calquera produto e servizo en calquera momento e sen previo aviso. Intel non asume ningunha responsabilidade ou responsabilidade derivada da aplicación ou uso de calquera información, produto ou servizo descrito aquí, salvo que Intel o acorde expresamente por escrito. Recoméndase aos clientes de Intel que obteñan a versión máis recente das especificacións do dispositivo antes de confiar en calquera información publicada e antes de facer pedidos de produtos ou servizos. *Outros nomes e marcas poden ser reclamados como propiedade doutros.
Rexistrar espazos de mapas e enderezos
Mapa de memoria DMA BBB
Os seguintes enderezos de bytes son desfases relativos do enderezo base DMA BBB no sistema DMA AFU (0x100).
Desprazamentos de enderezos de bytes | Nome | Intervalo en bytes | Descrición |
0x0 | DMA BBB DFH | 0x40 | Cabeceira da función do dispositivo para a DMA AFU. O ID_L establécese en 0xa9149a35bace01ea e ID_H en 0xef82def7f6ec40fc . O DMA BBB DFH parametrizouse para que apunte a 0x100 para a seguinte compensación DFH. Este seguinte offset pode ser outro DMA BBB, outro DFH (non incluído neste deseño) ou o DFH NULL. |
0x40 | Despachador | 0x40 | Porto de control para o despachador. O controlador DMA usa esta localización para controlar o DMA ou consultar o seu estado. |
0x80 | Descriptor Frontend | 0x40 | A interface do descritor é un compoñente personalizado que le os descritores da memoria do host e sobrescribe o descritor cando se completa a transferencia DMA. O controlador indica ao frontend onde reside o primeiro descritor na memoria do host e despois o hardware do frontend se comunica co controlador principalmente a través dos descritores almacenados na memoria do host. |
Espazo de enderezos DMA AFU
O host pode acceder aos rexistros que aparecen na Táboa 4 na páxina 12 e na Táboa 5 na páxina 13. O subsistema DMA BBB ten acceso ao espazo de enderezos completo de 49 bits. A metade inferior deste espazo de enderezos inclúe as memorias FPGA locais. A metade superior deste espazo de enderezos inclúe a memoria de enderezos de host de 48 bits. A seguinte figura mostra o host e o DMA views da memoria.
O DMA AFU e Host Views da Memoria
Lista vinculada de cabeceira de funcións do dispositivo
O deseño DMA AFU exampO ficheiro contén tres cabeceiras de funcións do dispositivo (DFH) que forman unha lista ligada. Esta lista ligada permite que o sampaplicación para identificar o DMA AFU así como o controlador para identificar o DMA BBB. A lista DFH inclúe un DFH NULL ao final. A inclusión do DFH nulo ao final da lista ligada permítelle engadir máis DMA BBB ao seu deseño. Só ten que mover o DFH NULL a un enderezo despois dos outros BBB. Cada DMA BBB espera que o seguinte DFH estea situado a 0x100 bytes do enderezo base do BBB. A seguinte figura mostra a lista ligada para o deseño da AFU DMA, por exemploample.
Rexistrar espazos de mapas e enderezos
Encadeamento de cabeceira de características do dispositivo DMA AFU (DFH).
Modelo de programación de software
O DMA AFU inclúe un controlador de software que podes usar na túa propia aplicación host. Os ficheiros fpga_dma.cpp e fpga_dma.h fileOs situados na seguinte localización implementan o controlador de software: $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw Este controlador admite as seguintes funcións:
API | Descrición |
fpgaCountDMACchannels | Analiza a cadea de funcións do dispositivo en busca de DMA BBB e conta todas as canles dispoñibles. |
fpgaDMAOpen | Abre un controlador para a canle DMA. |
fpgaDMACerrar | Pecha un controlador da canle DMA. |
fpgaDMATransferInit | Inicializa un obxecto que representa a transferencia DMA. |
fpgaDMATransferReset | Restablece o obxecto do atributo de transferencia DMA aos valores predeterminados. |
fpgaDMATransferDestroy | Destrúe o obxecto do atributo de transferencia DMA. |
fpgaDMATransferSetSrc | Establece o enderezo de orixe da transferencia. Este enderezo debe estar aliñado a 64 bytes. |
fpgaDMATransferSetDst | Establece o enderezo de destino da transferencia. Este enderezo debe estar aliñado a 64 bytes. |
fpgaDMATransferSetLen | Establece as lonxitudes de transferencia en bytes. Para transferencias sen paquetes, debes establecer a lonxitude de transferencia nun múltiplo de 64 bytes. Para as transferencias de paquetes, este non é un requisito. |
fpgaDMATransferSetTransferType | Establece o tipo de transferencia. Os valores legais son:
• HOST_MM_TO_FPGA_MM = TX (Host a AFU) • FPGA_MM_TO_HOST_MM = RX (AFU para host) |
fpgaDMATransferSetTransferCallback | Rexistra a devolución de chamada para a notificación ao completar a transferencia asíncrona. Se especificas unha devolución de chamada, fpgaDMATransfer devolverá inmediatamente (transferencia asíncrona).
Se non especificas unha devolución de chamada, fpgaDMATransfer volve unha vez que se complete a transferencia (transferencia síncrona/bloqueante). |
fpgaDMATransferSetLast | Indica a última transferencia para que o DMA poida comezar a procesar as transferencias precargadas. O valor predeterminado é 64 transferencias en proceso antes de que o DMA comece a traballar nas transferencias. |
Transferencia fpgaDMA | Realiza unha transferencia DMA. |
Para obter máis información sobre a API, os argumentos de entrada e saída, consulte a cabeceira file localizado $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw/fpga_dma.hIntel Corporation. Todos os dereitos reservados. Intel, o logotipo de Intel e outras marcas de Intel son marcas comerciais de Intel Corporation ou das súas subsidiarias. Intel garante o rendemento dos seus produtos FPGA e semicondutores segundo as especificacións actuais de acordo coa garantía estándar de Intel, pero resérvase o dereito de facer cambios en calquera produto e servizo en calquera momento e sen previo aviso. Intel non asume ningunha responsabilidade ou responsabilidade derivada da aplicación ou uso de calquera información, produto ou servizo descrito aquí, salvo que Intel o acorde expresamente por escrito. Recoméndase aos clientes de Intel que obteñan a versión máis recente das especificacións do dispositivo antes de confiar en calquera información publicada e antes de facer pedidos de produtos ou servizos. Outros nomes e marcas pódense reclamar como propiedade doutros.
Modelo de programación de software
Para saber máis sobre o modelo de uso do controlador de software, consulte o README file situado en $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/README.md
Execución de DMA AFU Example
Antes de comezar:
- Deberías estar familiarizado co exampficheiros na Guía de inicio rápido de Intel Acceleration Stack para a tarxeta de aceleración programable Intel FPGA D5005.
- Debe definir unha variable de ambiente. A variable de ambiente depende da versión de Intel Acceleration Stack que estea a usar:
- Para a versión actual, establece a variable de ambiente en $OPAE_PLATFORM_ROOT
- Debe instalar a biblioteca Intel Threading Building Blocks (TBB) xa que o controlador DMA depende dela.
- Tamén debes configurar dúas páxinas enormes de 1 GB para executar o sampa aplicación. $ sudo sh -c “echo 2 > /sys/kernel/mm/hugepages/hugepages-1048576kB/ nr_hugepages”
Siga os seguintes pasos para descargar o fluxo de bits da función de acelerador DMA (AF), para crear a aplicación e o controlador e para executar o deseño ex.ampLe:
- Cambie á aplicación DMA e ao directorio do controlador: cd $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw
- Construír o controlador e a aplicación: make
- Descarga o bitstream DMA AFU: sudo fpgasupdate ../bin/dma_afu_unsigned.gbs
- Executar a aplicación anfitrión para escribir 100 MB en partes de 1 MB desde a memoria do host na memoria do dispositivo FPGA e lela de novo: ./ fpga_dma_test -s 104857600 -p 1048576 -r mtom
Información relacionada
Guía de inicio rápido de Intel Acceleration Stack para tarjeta de aceleración programable Intel FPGA D5005 Intel Corporation. Todos os dereitos reservados. Intel, o logotipo de Intel e outras marcas de Intel son marcas comerciais de Intel Corporation ou das súas subsidiarias. Intel garante o rendemento dos seus produtos FPGA e semicondutores segundo as especificacións actuais de acordo coa garantía estándar de Intel, pero resérvase o dereito de facer cambios en calquera produto e servizo en calquera momento e sen previo aviso. Intel non asume ningunha responsabilidade ou responsabilidade derivada da aplicación ou uso de calquera información, produto ou servizo descrito aquí, salvo que Intel o acorde expresamente por escrito. Recoméndase aos clientes de Intel que obteñan a versión máis recente das especificacións do dispositivo antes de confiar en calquera información publicada e antes de facer pedidos de produtos ou servizos. *Outros nomes e marcas poden ser reclamados como propiedade doutros.
Compilación do DMA AFU Example
Para xerar un ambiente de compilación de síntese para compilar un AF, use o comando afu_synth_setup do seguinte xeito:
- Cambiar ás AFU DMAampdirectorio de ficheiros: $OPAE_PLATFORM_ROOT/hw/samples/dma_afu
- Xera o directorio de construción do deseño: afu_synth_setup –source hw/rtl/filelist.txt build_synth
- Desde o directorio de compilación de síntese xerado por afu_synth_setup, introduza os seguintes comandos desde unha xanela de terminal para xerar un AF para a plataforma de hardware de destino: cd build_synth run.sh O script de xeración de AF run.sh crea a imaxe AF coa mesma base filenome como configuración da plataforma da AFU file (.json) cun sufixo .gbs na localización:$OPAE_PLATFORM_ROOT/hw/samples/build_synth/dma_afu_s10.gbs Intel Corporation. Todos os dereitos reservados. Intel, o logotipo de Intel e outras marcas de Intel son marcas comerciais de Intel Corporation ou das súas subsidiarias. Intel garante o rendemento dos seus produtos FPGA e semicondutores segundo as especificacións actuais de acordo coa garantía estándar de Intel, pero resérvase o dereito de facer cambios en calquera produto e servizo en calquera momento e sen previo aviso. Intel non asume ningunha responsabilidade ou responsabilidade derivada da aplicación ou uso de calquera información, produto ou servizo descrito aquí, salvo que Intel o acorde expresamente por escrito. Recoméndase aos clientes de Intel que obteñan a versión máis recente das especificacións do dispositivo antes de confiar en calquera información publicada e antes de facer pedidos de produtos ou servizos. *Outros nomes e marcas poden ser reclamados como propiedade doutros.
Simulando a AFU Example
Intel recomenda que consulte a Guía de inicio rápido do entorno de simulación (ASE) de Intel Accelerator Functional Unit (AFU) para o seu Intel FPGA PAC para familiarizarse coa simulación de ex.amples e para configurar o seu entorno. Antes de continuar cos seguintes pasos, verifique que a variable de ambiente OPAE_PLATFORM_ROOT estea definida no directorio de instalación de OPAE SDK. Complete os seguintes pasos para configurar o simulador de hardware para o DMA AFU:
- Cambiar ás AFU DMAampdirectorio de ficheiros: cd $OPAE_PLATFORM_ROOT/hw/samples/dma_afu
- Cree un ambiente ASE nun novo directorio e configúreo para simular unha AFU: afu_sim_setup –source hw/rtl/filelist.txt build_ase_dir
- Cambie ao directorio de compilación de ASE: cd build_ase_dir
- Construír o controlador e a aplicación: make
- Facer simulación: facer sim
SampSaída do ficheiro do simulador de hardware:
[SIM] ** ATENCIÓN: ANTES de executar a aplicación de software ** [SIM] Establece env(ASE_WORKDIR) no terminal onde se executará a aplicación (copiar e pegar) => [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] Para calquera outro $SHELL, consulte co seu administrador de Linux [SIM] [SIM] Listo para a simulación... [SIM] Preme CTRL-C para pechar o simulador...Complete os seguintes pasos para compilar e executar o software DMA AFU no contorno de simulación:
- Abre unha nova xanela de terminal.
- Cambia o directorio a: cd $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw
Intel Corporation. Todos os dereitos reservados. Intel, o logotipo de Intel e outras marcas de Intel son marcas comerciais de Intel Corporation ou das súas subsidiarias. Intel garante o rendemento dos seus produtos FPGA e semicondutores segundo as especificacións actuais de acordo coa garantía estándar de Intel, pero resérvase o dereito de facer cambios en calquera produto e servizo en calquera momento e sen previo aviso. Intel non asume ningunha responsabilidade ou responsabilidade derivada da aplicación ou uso de calquera información, produto ou servizo descrito aquí, salvo que Intel o acorde expresamente por escrito. Recoméndase aos clientes de Intel que obteñan a versión máis recente das especificacións do dispositivo antes de confiar en calquera información publicada e antes de facer pedidos de produtos ou servizos. *Outros nomes e marcas poden ser reclamados como propiedade doutros.
Simulando a AFU Example
- Copia a cadea de configuración do entorno (escolla a cadea axeitada para o teu shell) dos pasos anteriores na simulación de hardware na xanela do terminal. Ver as seguintes liñas no sampsaída do le do simulador de hardware. [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
- Compile o software: $ make USE_ASE=1
- Executar a aplicación host para escribir 4 KB en partes de 1 KB desde a memoria do host de volta á memoria do dispositivo FPGA no modo de bucle: ./ fpga_dma_test -s 4096 -p 1024 -r mtom
Información relacionada
Guía do usuario de inicio rápido do entorno de simulación (ASE) da Unidade funcional do acelerador Intel (AFU).
Optimización para mellorar o rendemento DMA
A implementación da optimización NUMA (acceso a memoria non uniforme) en fpga_dma_test.cpp permite que o procesador acceda á súa propia memoria local máis rápido que acceder á memoria non local (memoria local a outro procesador). No diagrama a continuación móstrase unha configuración típica de NUMA. O acceso local representa o acceso desde un núcleo á memoria local ata o mesmo núcleo. O acceso remoto ilustra o camiño seguido cando un núcleo do nodo 0 accede á memoria que reside na memoria local do nodo 1.
Configuración típica de NUMA
Use o seguinte código para implementar a optimización NUMA na súa aplicación de proba:
// Establece a afinidade adecuada se se solicita if (cpu_affinity || memory_affinity) {unsigned dom = 0, bus = 0, dev = 0, func = 0; fpga_properties props;int retval; #if(FPGA_DMA_DEBUG)char str[4096]; #endifres = fpgaGetProperties(afc_token, &props); ON_ERR_GOTO(res, out_destroy_tok, “fpgaGetProperties”); res = fpgaPropertiesGetBus(props, (uint8_t *) & bus);ON_ERR_GOTO(res, out_destroy_tok, “fpgaPropertiesGetBus”); res = fpgaPropertiesGetDevice(props, (uint8_t *) & dev);ON_ERR_GOTO(res, out_destroy_tok, “fpgaPropertiesGetDevice”) res = fpgaPropertiesGetFunction(props, (uint8_t *) & func);ON_ERR_GOTO(res,fpgaPropertiesGetDevice); // Busca o dispositivo na topoloxía hwloc_topology_t; hwloc_topology_init(&topoloxía); hwloc_topology_set_flags(topoloxía, HWLOC_TOPOLOGY_FLAG_IO_DEVICES);Intel Corporation. Todos os dereitos reservados. Intel, o logotipo de Intel e outras marcas de Intel son marcas comerciais de Intel Corporation ou das súas subsidiarias. Intel garante o rendemento dos seus produtos FPGA e semicondutores segundo as especificacións actuais de acordo coa garantía estándar de Intel, pero resérvase o dereito de facer cambios en calquera produto e servizo en calquera momento sen previo aviso. Intel non asume ningunha responsabilidade ou responsabilidade derivada da aplicación ou uso de calquera información, produto ou servizo descrito aquí, salvo que Intel o acorde expresamente por escrito. Recoméndase aos clientes de Intel que obteñan a versión máis recente das especificacións do dispositivo antes de confiar en calquera información publicada e antes de facer pedidos de produtos ou servizos. *Outros nomes e marcas poden ser reclamados como propiedade doutros.
Optimización para mellorar o rendemento DMA
hwloc_topology_load(topoloxía); hwloc_obj_t obj = hwloc_get_pcidev_by_busid (topoloxía, dom, bus, dev, func); hwloc_obj_t obj2 = hwloc_get_non_io_ancestor_obj (topoloxía, 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\n”, str); hwloc_bitmap_taskset_snprintf (str, 4096, obj2->nodeset); printf(“NODESET é %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_NOMIGRAME |HWLOC_MEMBIND_LOC_MIGRAME); #else retval =hwloc_set_membind_nodeset(topoloxía, 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 (topoloxía, obj2->cpuset, HWLOC_CPUBIND_STRICT); ON_ERR_GOTO(retval, out_destroy_tok, “hwloc_set_cpubind”); } }
Arquivos da guía do usuario da unidade funcional do acelerador DMA
Versión Intel Acceleration Stack | Guía de usuario (PDF) |
2.0 | Guía de usuario da Unidade Funcional do Acelerador DMA (AFU). |
Historial de revisións de documentos para a guía de usuario da unidade funcional do acelerador DMA
Versión do documento |
Aceleración Intel Versión Stack |
Cambios |
2020.08.03 |
2.0.1 (compatible con Intel
Quartus® Prime Pro Edition Edition 19.2) |
Corrixiuse a imaxe AF file nome na sección Compilación do DMA AFU Example. |
2020.04.17 |
2.0.1 (compatible con Intel
Quartus Prime Pro Edition Edition 19.2) |
Corrixiu unha declaración en Público destinado sección. |
2020.02.20 |
2.0.1 (compatible con Intel
Quartus Prime Pro Edition Edition 19.2) |
Corrixiuse erro tipográfico. |
2019.11.04 |
2.0.1 (compatible con Intel Quartus Prime Pro Edition Edition 19.2) |
• Substituíuse o fpgaconf por fpgasupdate ao configurar o FPGA coa AFU preconstruída na sección Execución do DMA AFU Example.
• Subtítulo engadido Tarxeta de aceleración programable Intel FPGA D5005 ao título do documento. • Engadiuse a variable de ambiente $OPAE_PLATFORM_ROOT. • Sección modificada Modelo de programación de software para edicións menores. • Engadida nova sección Compilación do DMA AFU Example. • Sección modificada Optimización para mellorar o rendemento DMA para edicións menores. |
2019.08.05 |
2.0 (compatible con Intel
Quartus Prime Pro Edition 18.1.2) |
Lanzamento inicial. |
Intel Corporation. Todos os dereitos reservados. Intel, o logotipo de Intel e outras marcas de Intel son marcas comerciais de Intel Corporation ou das súas subsidiarias. Intel garante o rendemento dos seus produtos FPGA e semicondutores segundo as especificacións actuais de acordo coa garantía estándar de Intel, pero resérvase o dereito de facer cambios en calquera produto e servizo en calquera momento e sen previo aviso. Intel non asume ningunha responsabilidade ou responsabilidade derivada da aplicación ou uso de calquera información, produto ou servizo descrito aquí, salvo que Intel o acorde expresamente por escrito. Recoméndase aos clientes de Intel que obteñan a versión máis recente das especificacións do dispositivo antes de confiar en calquera información publicada e antes de facer pedidos de produtos ou servizos.
- Outros nomes e marcas pódense reclamar como propiedade doutros.
Documentos/Recursos
![]() |
Tarxeta de aceleración programable Intel FPGA D5005 [pdfGuía do usuario Tarxeta de aceleración programable FPGA, D5005, Tarxeta de aceleración programable FPGA D5005, Unidade funcional do acelerador DMA |