Logotipo de Intel

Tarjeta de aceleración programable Intel FPGA D5005

Intel.-FPGA-Tarjeta-de-aceleración-programable-D5005-producto

Acerca de este documento

Este documento describe la implementación de la Unidad funcional del acelerador (AFU) de acceso directo a memoria (DMA) y cómo construir el diseño para ejecutarlo en hardware o en simulación.

Público al que va dirigido

El público objetivo comprende desarrolladores de hardware o software que requieren una función de acelerador (AF) para almacenar datos localmente en la memoria conectada al dispositivo Intel FPGA.

Convenciones

Convenciones de documentos

Convención Descripción
# Precede a un comando que indica que el comando debe ingresarse como root.
$ Indica que se debe ingresar un comando como usuario.
esta fuente FileLos nombres, comandos y palabras clave se imprimen en esta fuente. Las líneas de comando largas están impresas en esta fuente. Aunque las líneas de comando largas pueden pasar a la siguiente línea, el retorno no es parte del comando; no presione enter.
Indica que el texto del marcador de posición que aparece entre los corchetes angulares debe reemplazarse con un valor apropiado. No introduzca los corchetes angulares.

Acrónimos

Acrónimos

Acrónimos Expansión Descripción
AF Función de acelerador Imagen compilada de acelerador de hardware implementada en lógica FPGA que acelera una aplicación.
AFU Unidad Funcional Acelerador Acelerador de hardware implementado en lógica FPGA que descarga una operación computacional para una aplicación desde la CPU para mejorar el rendimiento.
API Interfaz de programación de aplicaciones Un conjunto de definiciones de subrutinas, protocolos y herramientas para crear aplicaciones de software.
CCI-P Interfaz de caché central CCI-P es la interfaz estándar que utilizan las AFU para comunicarse con el host.
DFH Encabezado de función del dispositivo Crea una lista vinculada de encabezados de funciones para proporcionar una forma extensible de agregar funciones.
continuado…

Corporación Intel. Reservados todos los derechos. Intel, el logotipo de Intel y otras marcas de Intel son marcas comerciales de Intel Corporation o sus subsidiarias. Intel garantiza el rendimiento de sus productos semiconductores y FPGA según las especificaciones actuales de acuerdo con la garantía estándar de Intel, pero se reserva el derecho de realizar cambios en cualquier producto y servicio en cualquier momento sin previo aviso. Intel no asume ninguna responsabilidad que surja de la aplicación o el uso de cualquier información, producto o servicio descrito en este documento, excepto que Intel lo acuerde expresamente por escrito. Se recomienda a los clientes de Intel que obtengan la última versión de las especificaciones del dispositivo antes de confiar en cualquier información publicada y antes de realizar pedidos de productos o servicios. *Otros nombres y marcas pueden reclamarse como propiedad de otros.

Acrónimos Expansión Descripción
FIM Administrador de interfaz FPGA El hardware FPGA que contiene la Unidad de interfaz FPGA (FIU) e interfaces externas para memoria, redes, etc.

La función de acelerador (AF) interactúa con el FIM en tiempo de ejecución.

UIF Unidad de interfaz FPGA FIU es una capa de interfaz de plataforma que actúa como puente entre interfaces de plataforma como PCIe*, UPI e interfaces del lado AFU como CCI-P.
MPF Fábrica de propiedades de memoria El MPF es un bloque de construcción básico (BBB) ​​que las AFU pueden utilizar para proporcionar operaciones de configuración de tráfico CCI-P para transacciones con la UIF.

Glosario de aceleración

Pila de aceleración para CPU Intel® Xeon® con FPGA Glosario

Término Abreviatura Descripción
Pila de aceleración Intel® para CPU Intel Xeon® con FPGA Pila de aceleración Una colección de software, firmware y herramientas que proporciona conectividad con rendimiento optimizado entre una FPGA Intel y un procesador Intel Xeon.
Tarjeta de aceleración programable Intel FPGA Intel FPGAPAC Tarjeta aceleradora PCIe FPGA.

Contiene un administrador de interfaz FPGA (FIM) que se empareja con un procesador Intel Xeon a través del bus PCIe.

  • Guía del usuario de la unidad funcional del acelerador DMA: Tarjeta de aceleración programable Intel FPGA D5005

Descripción de DMA AFU

Introducción

La AFU ex de acceso directo a memoria (DMA)ampEl archivo muestra cómo gestionar las transferencias de memoria entre el procesador host y la FPGA. Puede integrar DMA AFU en su diseño para mover datos entre la memoria del host y la memoria local FPGA. La DMA AFU consta de los siguientes submódulos:

  • Fábrica de propiedades de memoria (MPF) Bloque de construcción básico (BBB)
  • Interfaz de caché central (CCI-P) al adaptador Avalon® con asignación de memoria (Avalon-MM)
  • Sistema de prueba DMA que contiene DMA BBB

Estos submódulos se describen con más detalle en el tema Componentes de hardware DMA AFU a continuación.

Información relacionada

  • Componentes de hardware DMA AFU en la página 6
  • Especificaciones de la interfaz Avalon

Para obtener más información sobre el protocolo Avalon-MM, incluidos los diagramas de tiempo para transacciones de lectura y escritura.

El paquete de software DMA AFU

Paquete Intel Acceleration Stack para CPU Intel Xeon con FPGA file (*.tar.gz), incluye el DMA AFU example. este example proporciona un controlador de espacio de usuario. La aplicación host utiliza este controlador de manera que el DMA mueve datos entre el host y la memoria FPGA. Los binarios de hardware, las fuentes y el controlador de espacio de usuario están disponibles en el siguiente directorio: $OPAE_PLATFORM_ROOT/hw/samples/dma_afu. Antes de experimentar con DMA AFU, debe instalar el paquete de software Open Programmable Acceleration Engine (OPAE). Consulte Instalación del paquete de software OPAE en la Guía de inicio rápido de Intel Acceleration Stack para la tarjeta de aceleración programable Intel FPGA D5005 para obtener instrucciones de instalación. Esta Guía de inicio rápido también incluye información básica sobre el motor de aceleración programable abierto (OPAE) y la configuración de una AFU. Después de instalar el paquete de software Open Programmable Acceleration Engine (OPAE), comoampLa aplicación host y el controlador de espacio de usuario DMA AFU están disponibles en el siguiente directorio: $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw. Para ejecutar el sample aplicación host, fpga_dma_test en su hardware Intel FPGA PAC D5005, consulte los pasos en la sección Ejecución de DMA AFU Example. Corporación Intel. Reservados todos los derechos. Intel, el logotipo de Intel y otras marcas de Intel son marcas comerciales de Intel Corporation o sus subsidiarias. Intel garantiza el rendimiento de sus productos FPGA y semiconductores según las especificaciones actuales de acuerdo con la garantía estándar de Intel, pero se reserva el derecho de realizar cambios en cualquier producto y servicio en cualquier momento sin previo aviso. Intel no asume ninguna responsabilidad que surja de la aplicación o el uso de cualquier información, producto o servicio descrito en este documento, excepto que Intel lo acuerde expresamente por escrito. Se recomienda a los clientes de Intel que obtengan la última versión de las especificaciones del dispositivo antes de confiar en cualquier información publicada y antes de realizar pedidos de productos o servicios. *Otros nombres y marcas pueden ser reclamados como propiedad de otros.

Información relacionada

  • Guía de inicio rápido de Intel Acceleration Stack para la tarjeta de aceleración programable Intel FPGA D5005
  • Instalación del paquete de software OPAE

Los componentes de hardware DMA AFU

La DMA AFU interactúa con la unidad de interfaz FPGA (FIU) y la memoria FPGA. Consulte la hoja de datos del Administrador de interfaz FPGA para la tarjeta de aceleración programable Intel FPGA D5005 para obtener especificaciones detalladas de la memoria FPGA. El hardware disponible actualmente dicta esta configuración de memoria. El hardware futuro puede admitir diferentes configuraciones de memoria. Puede utilizar DMA AFU para copiar datos entre las siguientes ubicaciones de origen y destino:

  • El host al dispositivo de memoria FPGA
  • Memoria FPGA del dispositivo al host

Un sistema Platform Designer, $OPAE_PLATFORM_ROOT/hw/samparchivos/ dma_afu/hw/rtl/TEST_dma/ /dma_test_system.qsys implementa la mayor parte del DMA

  • AFU. Parte del DMA AFU implementado en el sistema Platform Designer se puede encontrar en el siguiente

ubicación:$OPAE_PLATFORM_ROOT/hw/samparchivos/dma_afu/hw/rtl/TEST_dma/ Puede encontrar el DMA BBB en la siguiente ubicación:

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

Guía del usuario de la unidad funcional del acelerador DMA: Tarjeta de aceleración programable Intel FPGA D5005

Diagrama de bloques de hardware DMA AFU

Intel.-FPGA-Tarjeta-de-aceleración-programable-D5005-fig-1

La DMA AFU incluye los siguientes módulos internos para interactuar con la Unidad de interfaz FPGA (FIU):

  • Lógica decodificadora de IO asignada en memoria (MMIO): detecta transacciones de lectura y escritura de MMIO y las separa del canal 0 de CCI-P RX del que llegan. Esto garantiza que el tráfico MMIO nunca llegue al MPF BBB y sea atendido por un canal de comando MMIO independiente.
  • Fábrica de propiedades de memoria (MPF): este módulo garantiza que las respuestas de lectura del DMA regresen en el orden en que fueron emitidas. El protocolo Avalon-MM requiere que las respuestas de lectura regresen en el orden correcto.
  • Adaptador CCI-P a Avalon-MM: este módulo traduce entre transacciones CCI-P y Avalon-MM, de la siguiente manera:
  • Adaptador CCI-P a Avalon-MMIO: esta ruta traduce transacciones CCI-P MMIO en transacciones Avalon-MM.
  • Adaptador de host Avalon a CCI-P: estas rutas crean rutas separadas de solo lectura y solo escritura para que DMA acceda a la memoria del host.
  • Sistema de prueba DMA: este módulo sirve como envoltura alrededor del DMA BBB para exponer los maestros DMA al resto de la lógica en la AFU. Proporciona la interfaz entre DMA BBB y el adaptador CCI-P a Avalon. También proporciona la interfaz entre DMA BBB y los bancos FPGA SDRAM locales.

Información relacionada
Hoja de datos del Administrador de interfaz FPGA para la tarjeta de aceleración programable Intel FPGA D5005

Sistema de prueba DMA

El sistema de prueba DMA conecta el DMA BBB al resto del diseño FPGA, incluida la adaptación CCI-P y la memoria FPGA local.

Diagrama de bloques del sistema de prueba DMA
Este diagrama de bloques muestra los componentes internos del sistema de prueba DMA. El sistema de prueba DMA se muestra como un bloque monolítico en la Figura 1 en la página 7.Intel.-FPGA-Tarjeta-de-aceleración-programable-D5005-fig-2

El sistema de prueba DMA incluye los siguientes módulos internos:

  • Puente de largo alcance/Puente de tubería: Un puente de tubería con latencia ajustable incluido para controlar la topología y mejorar el diseño Fmax.
  • Encabezado de función del dispositivo (DFH) de DMA AFU: este es un DFH para DMA AFU. Este DFH apunta al siguiente DFH ubicado en el desplazamiento 0x100 (DMA BBB DFH).
  • DFH nulo: este componente finaliza la lista vinculada de DFH. Si agrega más DMA BBB al diseño, asegúrese de que la dirección base nula de DFH esté ubicada al final de la lista vinculada de DFH.
  • Bloque de construcción básico MA (BBB): este bloque mueve datos entre el host y la memoria FPGA local. También accede a la memoria del host para acceder a cadenas de descriptores.

DMA BBB

El subsistema DMA BBB transfiere datos desde las direcciones de origen a las de destino mediante transacciones Avalon-MM. El controlador DMA controla el DMA BBB accediendo al registro de control y estado de los distintos componentes dentro del sistema. El controlador DMA también controla DMA BBB mediante el uso de memoria compartida para comunicar descriptores de transferencia. El DMA BBB accede a los datos en la memoria FPGA en un desplazamiento 0x0. El DMA BBB accede a datos y descriptores en la memoria del host en el desplazamiento 0x1_0000_0000_0000.

Diagrama de bloques del diseñador de plataforma DMA BBB
Este diagrama de bloques excluye algunos núcleos IP internos de Pipeline Bridge.Intel.-FPGA-Tarjeta-de-aceleración-programable-D5005-fig-6

Guía del usuario de la unidad funcional del acelerador DMA: Tarjeta de aceleración programable Intel FPGA D5005

Descripción de DMA AFU

Los componentes de DMA BBB Platform Designer implementan las siguientes funciones:

  • Puente de largo alcance/Puente del oleoducto: Se incluye un puente de tubería con latencia ajustable para controlar la topología y mejorar el diseño Fmax.
  • MA BBB DFH: Este es un encabezado de función de dispositivo para DMA BBB. Este DFH apunta al siguiente DFH ubicado en el desplazamiento 0x100 (DFH nulo).
  • Descriptor de interfaz: Responsable de buscar descriptores y transferirlos al Dispatcher. Cuando se completa una transferencia DMA, la interfaz recibe la información del estado del Dispatcher y sobrescribe el descriptor en la memoria del host.
  • Transportista: Este bloque programa las solicitudes de transferencias de DMA al maestro de lectura y escritura.
  • Leer Maestro: Este bloque es responsable de leer datos del host o de la memoria FPGA local y enviarlos como datos de transmisión a Write Master.
  • Maestro de escritura: Este bloque es responsable de recibir datos de transmisión desde el Read Master y escribir el contenido en la memoria FPGA local o del host.

Registrar mapas y espacios de direcciones

La DMA AFU admite dos memorias. views: La DMA view y el anfitrión view. La DMA view admite un espacio de direcciones de 49 bits. La mitad inferior de la DMA view se asigna a la memoria FPGA local. La mitad superior de la DMA view mapas para alojar la memoria. El anfitrión view Incluye todos los registros accesibles a través de accesos MMIO, como las tablas DFH, y los registros de control/estado de los distintos núcleos IP utilizados dentro de DMA AFU. Los registros MMIO en DMA BBB y AFU admiten acceso de 32 y 64 bits. La DMA AFU no admite accesos MMIO de 512 bits. Los accesos a los registros del Dispatcher dentro del DMA BBB deben ser de 32 bits (la interfaz del Descriptor implementa registros de 64 bits).

Mapa de Registro DMA AFU

El mapa de registro DMA AFU proporciona las direcciones absolutas de todas las ubicaciones dentro de la unidad. Estos registros están en el host. view porque es sólo el host el que puede acceder a ellos.

Mapa de memoria DMA AFU

Desplazamientos de direcciones de bytes Nombre Intervalo en bytes Descripción
0x0 DMA AFU DFH 0x40 Encabezado de función del dispositivo para DMA AFU. ID_L está configurado en 0x9081f88b8f655caa y ID_H está configurado en 0x331db30c988541ea. El DMA AFU DFH se ha parametrizado para que apunte al desplazamiento 0x100 para encontrar el siguiente DFH (DMA BBB DFH). No debe modificar la dirección base del DMA AFU DFH ya que debe estar ubicada en la dirección 0x0 según lo define la especificación CCIP.
0x100 DMA BBB 0x100 Especifica la interfaz de registro de estado y control DMA BBB. Puede consultar el mapa de registro DMA BBB para obtener más información. Dentro del DMA BBB en compensación 0, el DMA BBB incluye su propio DFH. Este DFH se ha configurado para encontrar el siguiente DFH en el desplazamiento 0x100 (NULL DFH). Si agrega más DMA BBB, sepárelos 0x100 y asegúrese de que NULL DFH siga al último DMA en 0x100.
0x200 NULO DFH 0x40 Termina la lista enlazada de DFH. ID_L está configurado en 0x90fe6aab12a0132f y ID_H está configurado en 0xda1182b1b3444e23. El DFH NULL se ha parametrizado para que sea el último DFH en el hardware. Por este motivo el NULL DFH se encuentra en la dirección 0x200. Si agrega DMA BBB adicionales al sistema, debe aumentar la dirección base NULL DFH en consecuencia para que permanezca en la dirección más alta. El controlador DMA y la aplicación de prueba no utilizan este hardware.

Corporación Intel. Reservados todos los derechos. Intel, el logotipo de Intel y otras marcas de Intel son marcas comerciales de Intel Corporation o sus subsidiarias. Intel garantiza el rendimiento de sus productos semiconductores y FPGA según las especificaciones actuales de acuerdo con la garantía estándar de Intel, pero se reserva el derecho de realizar cambios en cualquier producto y servicio en cualquier momento sin previo aviso. Intel no asume ninguna responsabilidad que surja de la aplicación o el uso de cualquier información, producto o servicio descrito en este documento, excepto que Intel lo acuerde expresamente por escrito. Se recomienda a los clientes de Intel que obtengan la última versión de las especificaciones del dispositivo antes de confiar en cualquier información publicada y antes de realizar pedidos de productos o servicios. *Otros nombres y marcas pueden reclamarse como propiedad de otros.

Registrar mapas y espacios de direcciones

Mapa de memoria DMA BBB
Las siguientes direcciones de bytes son desplazamientos relativos de la dirección base DMA BBB en el sistema DMA AFU (0x100).

Desplazamientos de direcciones de bytes Nombre Intervalo en bytes Descripción
0x0 DMA BBB DFH 0x40 Encabezado de función del dispositivo para DMA AFU. ID_L está configurado en 0xa9149a35bace01ea y ID_H está configurado en 0xef82def7f6ec40fc. El DMA BBB DFH se ha parametrizado para que apunte a 0x100 para el siguiente desplazamiento de DFH. Este próximo desplazamiento puede ser otro DMA BBB, otro DFH (no incluido en este diseño) o el NULL DFH.
0x40 Transportista 0x40 Puerto de control para el despachador. El controlador DMA utiliza esta ubicación para controlar el DMA o consultar su estado.
0x80 Interfaz descriptiva 0x40 La interfaz del descriptor es un componente personalizado que lee descriptores de la memoria del host y sobrescribe el descriptor cuando se completa la transferencia DMA. El controlador indica al frontend dónde reside el primer descriptor en la memoria del host y luego el hardware del frontend se comunica con el controlador principalmente a través de descriptores almacenados en la memoria del host.

Espacio de direcciones DMA AFU

El host puede acceder a los registros enumerados en la Tabla 4 en la página 12 y la Tabla 5 en la página 13. El subsistema DMA BBB tiene acceso al espacio de direcciones completo de 49 bits. La mitad inferior de este espacio de direcciones incluye las memorias FPGA locales. La mitad superior de este espacio de direcciones incluye la memoria de direcciones del host de 48 bits. La siguiente figura muestra el host y DMA. views de memoria.

La DMA AFU y el anfitrión Views de la memoria

Intel.-FPGA-Tarjeta-de-aceleración-programable-D5005-fig-3

Lista vinculada de encabezado de función del dispositivo

El diseño DMA AFU exampEl archivo contiene tres encabezados de características del dispositivo (DFH) que forman una lista vinculada. Esta lista enlazada permite a los sample aplicación para identificar el DMA AFU así como el controlador para identificar el DMA BBB. La lista DFH incluye un DFH NULL al final. La inclusión del DFH nulo al final de la lista vinculada le permite agregar más DMA BBB a su diseño. Simplemente necesita mover el DFH NULL a una dirección después de los otros BBB. Cada DMA BBB espera que el siguiente DFH esté ubicado a 0x100 bytes de la dirección base del BBB. La siguiente figura muestra la lista vinculada para el diseño DMA AFU exampel.

Registrar mapas y espacios de direcciones

Encadenamiento de encabezado de función de dispositivo (DFH) de DMA AFU

Intel.-FPGA-Tarjeta-de-aceleración-programable-D5005-fig-4

Modelo de programación de software

El DMA AFU incluye un controlador de software que puede utilizar en su propia aplicación host. El fpga_dma.cpp y fpga_dma.h files ubicado en la siguiente ubicación implemente el controlador de software:$OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw Este controlador admite las siguientes funciones:

API Descripción
fpgaCountDMACanales Escanea la cadena de funciones del dispositivo en busca de DMA BBB y cuenta todos los canales disponibles.
fpgaDMAabierto Abre un identificador para el canal DMA.
fpgaDMACerrar Cierra un identificador del canal DMA.
fpgaDMATransferInit Inicializa un objeto que representa la transferencia DMA.
fpgaDMATransferReset Restablece el objeto de atributo de transferencia DMA a los valores predeterminados.
fpgaDMATransferirDestruir Destruye el objeto de atributo de transferencia DMA.
fpgaDMATransferSetSrc Establece la dirección de origen de la transferencia. Esta dirección debe estar alineada con 64 bytes.
fpgaDMATransferSetDst Establece la dirección de destino de la transferencia. Esta dirección debe estar alineada con 64 bytes.
fpgaDMATransferSetLen Establece las longitudes de transferencia en bytes. Para transferencias que no sean de paquetes, debe establecer la longitud de la transferencia en un múltiplo de 64 bytes. Para transferencias de paquetes, esto no es un requisito.
fpgaDMATransferSetTransferType Establece el tipo de transferencia. Los valores legales son:

• HOST_MM_TO_FPGA_MM = TX (Anfitrión a AFU)

• FPGA_MM_TO_HOST_MM = RX (AFU al host)

fpgaDMATransferSetTransferCallback Registra la devolución de llamada para recibir notificación sobre la finalización de la transferencia asincrónica. Si especifica una devolución de llamada, fpgaDMATransfer regresa inmediatamente (transferencia asíncrona).

Si no especifica una devolución de llamada, fpgaDMATransfer regresa después de que se completa la transferencia (transferencia síncrona/bloqueante).

fpgaDMATransferSetLast Indica la última transferencia para que DMA pueda comenzar a procesar las transferencias precargadas. El valor predeterminado es 64 transferencias en proceso antes de que DMA comience a trabajar en las transferencias.
fpgaDMATransferencia Realiza una transferencia DMA.

Para obtener más información sobre la API, los argumentos de entrada y salida, consulte el encabezado file ubicado $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw/fpga_dma.hIntel Corporation. Reservados todos los derechos. Intel, el logotipo de Intel y otras marcas de Intel son marcas comerciales de Intel Corporation o sus subsidiarias. Intel garantiza el rendimiento de sus productos FPGA y semiconductores según las especificaciones actuales de acuerdo con la garantía estándar de Intel, pero se reserva el derecho de realizar cambios en cualquier producto y servicio en cualquier momento sin previo aviso. Intel no asume ninguna responsabilidad que surja de la aplicación o el uso de cualquier información, producto o servicio descrito en este documento, excepto que Intel lo acuerde expresamente por escrito. Se recomienda a los clientes de Intel que obtengan la última versión de las especificaciones del dispositivo antes de confiar en cualquier información publicada y antes de realizar pedidos de productos o servicios. Se pueden reclamar otros nombres y marcas como propiedad de otros.

Modelo de programación de software

Para saber más sobre el modelo de uso del controlador de software, consulte el archivo README file ubicado en $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/README.md

Ejecución de DMA AFU Example

Antes de comenzar:

  • Deberías estar familiarizado con el ex.ampen la Guía de inicio rápido de Intel Acceleration Stack para la tarjeta de aceleración programable Intel FPGA D5005.
  • Debe definir una variable de entorno. La variable de entorno depende de la versión de Intel Acceleration Stack que esté utilizando:
    • Para la versión actual, establezca la variable de entorno en $OPAE_PLATFORM_ROOT
  • Debe instalar la biblioteca Intel Threading Building Blocks (TBB), ya que el controlador DMA depende de ella.
  • También debe configurar dos páginas enormes de 1 GB para ejecutar el s.ampla aplicación. $ sudo sh -c “echo 2 > /sys/kernel/mm/hugepages/hugepages-1048576kB/ nr_hugepages”

Realice los siguientes pasos para descargar el flujo de bits de la función de acelerador DMA (AF), crear la aplicación y el controlador y ejecutar el diseño ex.ampen:

  1. Cambie al directorio de controladores y aplicaciones DMA: cd $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw
  2. Construya el controlador y la aplicación: haga
  3. Descargue el flujo de bits DMA AFU: sudo fpgasupdate ../bin/dma_afu_unsigned.gbs
  4. Ejecute la aplicación host para escribir 100 MB en porciones de 1 MB desde la memoria del host a la memoria del dispositivo FPGA y vuelva a leerla: ./ fpga_dma_test -s 104857600 -p 1048576 -r mtom

Información relacionada
Guía de inicio rápido de Intel Acceleration Stack para la tarjeta de aceleración programable Intel FPGA D5005 Intel Corporation. Reservados todos los derechos. Intel, el logotipo de Intel y otras marcas de Intel son marcas comerciales de Intel Corporation o sus subsidiarias. Intel garantiza el rendimiento de sus productos FPGA y semiconductores según las especificaciones actuales de acuerdo con la garantía estándar de Intel, pero se reserva el derecho de realizar cambios en cualquier producto y servicio en cualquier momento sin previo aviso. Intel no asume ninguna responsabilidad que surja de la aplicación o el uso de cualquier información, producto o servicio descrito en este documento, excepto que Intel lo acuerde expresamente por escrito. Se recomienda a los clientes de Intel que obtengan la última versión de las especificaciones del dispositivo antes de confiar en cualquier información publicada y antes de realizar pedidos de productos o servicios. *Otros nombres y marcas pueden ser reclamados como propiedad de otros.

Compilando el DMA AFU Example

Para generar un entorno de compilación de síntesis para compilar un AF, use el comando afu_synth_setup de la siguiente manera:

  1. Cambiar a las AFU de DMAampdirectorio de archivos: $OPAE_PLATFORM_ROOT/hw/samples/dma_afu
  2. Genere el directorio de compilación del diseño: afu_synth_setup –source hw/rtl/filelista.txt build_synth
  3. Desde el directorio de compilación de síntesis generado por afu_synth_setup, ingrese los siguientes comandos desde una ventana de terminal para generar un AF para la plataforma de hardware de destino: cd build_synth run.sh El script de generación de AF run.sh crea la imagen de AF con la misma base filenombre como configuración de plataforma de la AFU file (.json) con un sufijo .gbs en la ubicación:$OPAE_PLATFORM_ROOT/hw/samples/build_synth/dma_afu_s10.gbs Intel Corporation. Reservados todos los derechos. Intel, el logotipo de Intel y otras marcas de Intel son marcas comerciales de Intel Corporation o sus subsidiarias. Intel garantiza el rendimiento de sus productos FPGA y semiconductores según las especificaciones actuales de acuerdo con la garantía estándar de Intel, pero se reserva el derecho de realizar cambios en cualquier producto y servicio en cualquier momento sin previo aviso. Intel no asume ninguna responsabilidad que surja de la aplicación o el uso de cualquier información, producto o servicio descrito en este documento, excepto que Intel lo acuerde expresamente por escrito. Se recomienda a los clientes de Intel que obtengan la última versión de las especificaciones del dispositivo antes de confiar en cualquier información publicada y antes de realizar pedidos de productos o servicios. *Otros nombres y marcas pueden ser reclamados como propiedad de otros.

Simulando el AFU Example

Intel recomienda que consulte la Guía de inicio rápido del entorno de simulación (ASE) de la unidad funcional del acelerador Intel (AFU) para que su FPGA PAC Intel se familiarice con la simulación de ex similares.amparchivos y configurar su entorno. Antes de continuar con los siguientes pasos, verifique que la variable de entorno OPAE_PLATFORM_ROOT esté configurada en el directorio de instalación del SDK de OPAE. Complete los siguientes pasos para configurar el simulador de hardware para DMA AFU:

  1. Cambiar a las AFU de DMAampdirectorio de archivos: cd $OPAE_PLATFORM_ROOT/hw/samples/dma_afu
  2. Cree un entorno ASE en un nuevo directorio y configúrelo para simular una AFU: afu_sim_setup –source hw/rtl/filelista.txt build_ase_dir
  3. Cambie al directorio de compilación de ASE: cd build_ase_dir
  4. Construya el controlador y la aplicación: haga
  5. Hacer simulación: hacer sim

SampSalida del archivo del simulador de hardware:

[SIM] ** ATENCIÓN: ANTES de ejecutar la aplicación de software ** [SIM] Configure env(ASE_WORKDIR) en la terminal donde se ejecutará la aplicación (copiar y pegar) => [SIM] $SHELL | Ejecutar:[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 cualquier otro $SHELL, consulte a su administrador de Linux [SIM] [SIM] Listo para la simulación… [SIM] Presione CTRL-C para cerrar el simulador…

Complete los siguientes pasos para compilar y ejecutar el software DMA AFU en el entorno de simulación:

  1. Abra una nueva ventana de terminal.
  2. Cambie el directorio a: cd $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw

Corporación Intel. Reservados todos los derechos. Intel, el logotipo de Intel y otras marcas de Intel son marcas comerciales de Intel Corporation o sus subsidiarias. Intel garantiza el rendimiento de sus productos semiconductores y FPGA según las especificaciones actuales de acuerdo con la garantía estándar de Intel, pero se reserva el derecho de realizar cambios en cualquier producto y servicio en cualquier momento sin previo aviso. Intel no asume ninguna responsabilidad que surja de la aplicación o el uso de cualquier información, producto o servicio descrito en este documento, excepto que Intel lo acuerde expresamente por escrito. Se recomienda a los clientes de Intel que obtengan la última versión de las especificaciones del dispositivo antes de confiar en cualquier información publicada y antes de realizar pedidos de productos o servicios. *Otros nombres y marcas pueden reclamarse como propiedad de otros.

Simulando el AFU Example

  1. Copie la cadena de configuración del entorno (elija la cadena apropiada para su shell) de los pasos anteriores en la simulación de hardware a la ventana del terminal. Vea las siguientes líneas en el samparchivo de salida del 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/samparchivos/dma_afu/build_ase_dir/work
  2. Compile el software: $ make USE_ASE=1
  3. Ejecute la aplicación host para escribir 4 KB en porciones de 1 KB desde la memoria del host a la memoria del dispositivo FPGA en el modo loopback: ./fpga_dma_test -s 4096 -p 1024 -r mtom

Información relacionada
Intel Accelerator Functional Unit (AFU) Simulation Environment (ASE) Guía de usuario de inicio rápido

Optimización para mejorar el rendimiento de DMA

La implementación de la optimización NUMA (acceso a memoria no uniforme) en fpga_dma_test.cpp permite que el procesador acceda a su propia memoria local más rápido que acceder a la memoria no local (memoria local de otro procesador). En el siguiente diagrama se muestra una configuración NUMA típica. El acceso local representa el acceso desde un núcleo a la memoria local del mismo núcleo. El acceso remoto ilustra la ruta tomada cuando un núcleo en el Nodo 0 accede a la memoria que reside en la memoria local del Nodo 1.

Configuración típica de NUMA

Intel.-FPGA-Tarjeta-de-aceleración-programable-D5005-fig-5

Utilice el siguiente código para implementar la optimización NUMA en su aplicación de prueba:

// Configure la afinidad adecuada si se solicita if (cpu_affinity || Memory_affinity) {unsigned dom = 0, bus = 0, dev = 0, func = 0; accesorios 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 *) & dev);ON_ERR_GOTO(res, out_destroy_tok, “fpgaPropertiesGetDevice”) res = fpgaPropertiesGetFunction(props, (uint8_t *) & func);ON_ERR_GOTO(res, out_destroy_tok, “fpgaPropertiesGetFunction”); // Encuentra el dispositivo en la topología hwloc_topology_t topology; hwloc_topology_init(&topología); hwloc_topology_set_flags(topología, HWLOC_TOPOLOGY_FLAG_IO_DEVICES);Intel Corporation. Reservados todos los derechos. Intel, el logotipo de Intel y otras marcas de Intel son marcas comerciales de Intel Corporation o sus subsidiarias. Intel garantiza el rendimiento de sus productos FPGA y semiconductores según las especificaciones actuales de acuerdo con la garantía estándar de Intel, pero se reserva el derecho de realizar cambios en cualquier producto y servicio en cualquier momento sin previo aviso. Intel no asume ninguna responsabilidad que surja de la aplicación o el uso de cualquier información, producto o servicio descrito en este documento, excepto que Intel lo acuerde expresamente por escrito. Se recomienda a los clientes de Intel que obtengan la última versión de las especificaciones del dispositivo antes de confiar en cualquier información publicada y antes de realizar pedidos de productos o servicios. *Otros nombres y marcas pueden ser reclamados como propiedad de otros.

Optimización para mejorar el rendimiento de DMA

hwloc_topology_load(topología); hwloc_obj_t obj = hwloc_get_pcidev_by_busid(topología, dom, bus, dev, func); hwloc_obj_t obj2 = hwloc_get_non_io_ancestor_obj(topologí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 es %s\n”, cadena); hwloc_bitmap_taskset_snprintf(str, 4096, obj2->nodeset); printf(“NODESET es %s\n”, str);#endif if (memory_affinity) { #if HWLOC_API_VERSION > 0x00020000 retval = hwloc_set_membind(topología, obj2->nodeset,HWLOC_MEMBIND_THREAD, HWLOC_MEMBIND_MIGRATE |HWLOC_MEMBIND_BYNODESET); #else retval =hwloc_set_membind_nodeset(topología, 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(topología, obj2->cpuset, HWLOC_CPUBIND_STRICT); ON_ERR_GOTO(retval, out_destroy_tok, “hwloc_set_cpubind”); } }

Archivos de la guía del usuario de la unidad funcional del acelerador DMA

Versión de pila de aceleración de Intel Guía del usuario (PDF)
2.0 Guía del usuario de la unidad funcional del acelerador DMA (AFU)

Historial de revisión de documentos para la guía del usuario de la unidad funcional del acelerador DMA

 

Versión del documento

Aceleración de Intel Versión de pila  

Cambios

 

 

2020.08.03

2.0.1 (compatible con Intel

Quartus® Prime Pro Edición Edición 19.2)

 

Se corrigió la imagen AF. file nombre en la sección Compilando el DMA AFU Example.

 

 

2020.04.17

2.0.1 (compatible con Intel

Edición Quartus Prime Pro Edición 19.2)

 

 

Se corrigió una declaración en Público al que va dirigido sección.

 

 

2020.02.20

2.0.1 (compatible con Intel

Edición Quartus Prime Pro Edición 19.2)

 

 

Error tipográfico corregido.

 

 

 

 

2019.11.04

 

 

2.0.1 (compatible con Intel

Edición Quartus Prime Pro Edición 19.2)

• Se reemplazó fpgaconf con fpgasupdate al configurar la FPGA con la AFU precompilada en la sección Ejecutando el DMA AFU Example.

• Subtítulo agregado Tarjeta de aceleración programable Intel FPGA D5005 al título del documento.

• Se agregó la variable de entorno $OPAE_PLATFORM_ROOT.

• Sección modificada Modelo de programación de software para ediciones menores.

• Se agregó una nueva sección Compilando el DMA AFU Example.

• Sección modificada Optimización para mejorar el rendimiento de DMA para ediciones menores.

 

 

2019.08.05

2.0 (compatible con Intel

Quartus Prime Pro Edición 18.1.2)

 

 

Lanzamiento inicial.

Corporación Intel. Reservados todos los derechos. Intel, el logotipo de Intel y otras marcas de Intel son marcas comerciales de Intel Corporation o sus subsidiarias. Intel garantiza el rendimiento de sus productos FPGA y semiconductores según las especificaciones actuales de acuerdo con la garantía estándar de Intel, pero se reserva el derecho de realizar cambios en cualquier producto y servicio en cualquier momento sin previo aviso. Intel no asume ninguna responsabilidad que surja de la aplicación o el uso de cualquier información, producto o servicio descrito en este documento, excepto que Intel lo acuerde expresamente por escrito. Se recomienda a los clientes de Intel que obtengan la última versión de las especificaciones del dispositivo antes de confiar en cualquier información publicada y antes de realizar pedidos de productos o servicios.

  • Otros nombres y marcas pueden ser reclamados como propiedad de terceros.

 

Documentos / Recursos

Tarjeta de aceleración programable Intel FPGA D5005 [pdf] Guía del usuario
Tarjeta de aceleración programable FPGA, D5005, Tarjeta de aceleración programable FPGA D5005, Unidad funcional de acelerador DMA

Referencias

Deja un comentario

Su dirección de correo electrónico no será publicada. Los campos obligatorios están marcados *