OpenCL™ - BSP - Centro de asistencia
Aviso sobre la descontinuación de producto
Intel está descontinuando Intel® FPGA SDK para OpenCL,™ puede encontrar más información en la notificación de descontinuación del producto (PDN2219).
La página de soporte de OpenCL BSP proporciona información sobre cómo planificar, diseñar e implementar su OpenCL™™ BSP, así como aprender algunos consejos y trucos para fines de depuración.
1. Modificar un diseño de referencia
Empezar
Para comenzar con el desarrollo de BSP, asegúrese de realizar los pasos siguientes:
- Confirme que el SDK de Intel® FPGA para OpenCL™ y Intel® Quartus® software esté instalado.
- Compruebe que esté disponible la versión de la herramienta que coincida con el BSP de referencia de OpenCL™.
- Confirme el acceso a la licencia completa del software Intel® Quartus®.
Seleccione un diseño de referencia
Seleccione el diseño de referencia que se adapte a su plataforma personalizada
Intel admite los diseños de referencia de BSP de OpenCL™ para las siguientes plataformas. También puede ver la guía de portabilidad de OpenCL™ BSP para una plataforma específica:
- Kit de desarrollo PCIe* de Stratix® V: vea la guía de portabilidad de la plataforma de referencia de red de Intel® FPGA SDK for OpenCL™ Stratix® V
- Kit de desarrollo PCIe Intel® Arria® 10 - Vea la guía de portabilidad de la plataforma de referencia del kit de desarrollo de FPGA Intel® FPGA para OpenCL™ Intel® Arria® 10 GX
- Kit de desarrollo de SoC Intel® Arria® 10 - Vea la guía de portabilidad de la plataforma de referencia del kit de desarrollo de SoC Intel® FPGA para OpenCL™ Intel® Arria® 10
- Kit de desarrollo PCIe* Intel® Stratix® 10 - Vea la guía de portabilidad de la plataforma de referencia del kit de desarrollo de FPGA de Intel® FPGA para OpenCL™ Intel® Stratix® 10 GX
Modificar un diseño de referencia
Comience a modificar el diseño de referencia a su plataforma siguiendo los pasos en las guías de portabilidad de OpenCL BSP. Se recomienda que después de que se completen los cambios de diseño, intente compilar su primer kernel. Generalmente, usamos un kernel llamado Boardtest, que prueba diferentes interfaces del BSP. En la siguiente guía se menciona información sobre Boardtest y los pasos genéricos de construcción de BSP:
Guía del usuario de Intel® FPGA SDK for OpenCL™ Custom Platform Toolkit (PDF)
Pasos recomendados para crear un BSP:
- Compile Boardtest en un flujo "plano" para generar un archivo ".aocx" de sincronización cerrada
- Validar el ".aocx" ejecutando la prueba de placa y comprobar las expectativas de ancho de banda de la interfaz de la prueba
- Comience a trabajar en la planificación de pisos para la construcción "base" para crear un OpenCL BSP de tiempo cerrado garantizado
2. Floorplanning y cierre de plazos
Empezar
En OpenCL, necesitamos trabajar en el tiempo para dos revisiones diferentes del proyecto: las revisiones planas y las básicas. Una revisión plana es aquella sin particiones o regiones de bloqueo lógico y utiliza el archivo hardware/flat.qsf para implementarla. Mientras que la revisión de base es la que incluye la partición y los bloqueos lógicos, y utiliza el archivo hardware/base.qsf para implementarla. Le recomendamos que obtenga primero una revisión plana de sincronización limpia como un buen comienzo y luego trabaje en la planificación del piso para obtener una revisión base de sincronización limpia del diseño.
Para obtener más detalles sobre el flujo de compilación, consulte la sección Flujo de compilación de OpenCL BSP en la Guía de optimización de planos de planta del paquete de soporte de placa Intel® FPGA para OpenCL™ ™.
Partición de plano de planta
Comience con una compilación plana para comprender dónde se colocan de forma natural todos los componentes principales del BSP (especialmente los bloques de propiedad intelectual (IP) con conexiones de E/S, como PCIe* o memoria DDR).
Para obtener más directrices al respecto, consulte la sección Directrices para la planificación de pisos de OpenCL BSP en la Guía de optimización de planos de planta del paquete de soporte de placa Intel® FPGA para OpenCL™ ™.
Para obtener más información, también puede consultar la Guía del usuario de reconfiguración parcial.
Modificar región PR
Durante la compilación base, comience con la región de bloqueo lógico en el kernel que contiene freeze_wrapper_inst|kernel_system_inst. Utilice la compilación plana y el planificador de chips para identificar el tamaño y la ubicación del hardware de BSP. Intente reservar más recursos para el kernel_system mediante la región de bloqueo lógico.
Para obtener más directrices al respecto, consulte la sección Directrices para la planificación de pisos de OpenCL BSP en la Guía de optimización de planos de planta del paquete de soporte de placa Intel® FPGA para OpenCL™ ™.
Reparación de violaciones de sincronización
Para corregir las infracciones de temporización en el diseño, es posible que tenga que agregar etapas de canalización entre núcleos IP.
Para obtener más directrices, consulte los siguientes enlaces:
Restricciones de configuración/retención
.failing_paths.rpt y .failing_clocks.rpt del directorio de salida enumeran los principales errores en el diseño. Si hay un error consistente en algunas de las rutas , es posible que desee establecer una restricción de retraso mínimo o máximo para esa ruta crítica dentro del archivo /hardware/top.sdc.
Para problemas relacionados, puede consultar el siguiente método de solución alternativa en la página Base de datos de conocimiento: ¿Cómo cerrar la temporización en infracciones de retención y configuración competidoras en la Arria 10?
3. Utilidades MMD y OpenCL™
Desarrollo o modificación de la fuente de MMD
La biblioteca de software MMD implementa entrada/salida (E/S) básica entre el host y la placa de aceleración y proporciona interfaces como abrir, leer y escribir. El controlador de la biblioteca MMD se almacena en formatos Windows* 64 o Linux* 64 y el código fuente se almacena en la carpeta de código fuente.
Para obtener más información, consulte la sección Creación de la biblioteca MMD en la Guía del usuario de Intel® FPGA SDK for OpenCL™ Custom Platform Toolkit.
Asistencia de utilidades
Las utilidades de OpenCL le permiten realizar el acceso a la placa mediante Intel® FPGA SDK para OpenCL™.™ Esto incluye la instalación de aocl, la desinstalación de aocl, el diagnóstico de aocl, el programa aocl y la memoria flash de aocl.
Para obtener más información, consulte la sección Providing Intel® FPGA SDK for OpenCL Utilities Support en la Guía del usuario de Intel® FPGA SDK for OpenCL™ ™ Custom Platform Toolkit.
Después de crear las utilidades de software y la capa MMD, se debe probar el diseño de hardware. La forma estándar es generar el kernel de prueba de placa y ejecutarlo en la placa.
Para obtener más información, consulte la sección Probar el diseño de hardware en la Guía del usuario de Intel® FPGA SDK for OpenCL™ Custom Platform Toolkit.
4. Depuración
Arranque de la Junta
Esta sección le ayuda a solucionar problemas al tiempo que menciona Intel® FPGA kits de desarrollo o sus propias placas personalizadas.
Para averiguar algunos de los problemas conocidos que podría enfrentar al abrir sus placas, consulte las siguientes secciones en AN 807: Configuración del kit de desarrollo de FPGA Intel® Arria® 10 GX para el SDK de Intel® FPGA para la aplicación OpenCL™ Nota:
Plano de planta y plazos
Para obtener consejos y trucos sobre cómo usar un área mínima para la lógica estática y dejar más espacio para su kernel OpenCL, puede consultar la Guía de optimización de planos de planta del paquete AN 824: Intel® FPGA SDK for OpenCL™™ Board Support.
Depuración de tiempo de ejecución
Hay ciertas variables de entorno que se pueden configurar para obtener más información de depuración mientras se ejecuta la aplicación host. Estas son Intel® FPGA SDK para variables de entorno específicas de OpenCL™, que pueden ayudar a diagnosticar problemas con diseños de plataforma personalizados.
En la tabla siguiente se enumeran todas estas variables de entorno y se describen en detalle.
Variable de entorno |
Descripción |
ACL_HAL_DEBUG |
Establezca esta variable en un valor de 1 a 5 para aumentar la salida de depuración de la capa de abstracción de hardware (HAL), que interactúa directamente con la capa MMD. |
ACL_PCIE_DEBUG |
Establezca esta variable en un valor de 1 a 10000 para aumentar la salida de depuración del MMD. Esta configuración de variable es útil para confirmar que el registro de ID de versión se leyó correctamente y que los núcleos IP de UniPHY están calibrados. |
ACL_PCIE_JTAG_CABLE |
Establezca esta variable para reemplazar el argumento de quartus_pgm predeterminado que especifica el número de cable. El valor predeterminado es cable 1. Si hay varios Intel® FPGA Download Cable, puede especificar un cable en particular configurando esta variable. |
ACL_PCIE_JTAG_DEVICE_INDEX |
Establezca esta variable para reemplazar el argumento de quartus_pgm predeterminado que especifica el índice de dispositivo FPGA. De forma predeterminada, esta variable tiene un valor de 1. Si el FPGA no es el primer dispositivo de la cadena JTAG, puede personalizar el valor. |
ACL_PCIE_USE_JTAG_PROGRAMMING |
Establezca esta variable para forzar al MMD a reprogramar la FPGA utilizando el cable JTAG en lugar de Reconfiguración parcial. |
ACL_PCIE_DMA_USE_MSI |
Establezca esta variable si desea utilizar MSI para transferencias de acceso directo a memoria (DMA) en Windows*. |
Depuración de llave de señal
Debido a que los diseños de OpenCL™ no admiten la característica de simulación, utilizar el analizador de lógica de tomas de señal es la mejor manera de depurar estos diseños.
Para depurar cualquier diseño en el que haya un bloqueo del kernel o un problema relacionado con la interfaz de memoria o un error de diagnóstico aocl, se recomienda utilizar el analizador de lógica SignalTap.
Para obtener más información sobre el analizador lógico Signal Tap, consulte la sección Depuración de diseño con el analizador lógico Signal Tap en la Guía del usuario de herramientas de depuración.
Realice los pasos siguientes para agregar el archivo Signal Tap al diseño BSP
1. Abra la GUI de Signal Tap y agregue todas las señales a analizar.
2. Guarde el archivo STP en el mismo directorio que el archivo de proyecto de software Intel® Quartus®.
3. Agregue las siguientes líneas de comando en su archivo flat.qsf:
- set_global_assignment -name ENABLE_SIGNALTAP ACTIVADO
- set_global_assignment -name USE_SIGNALTAP_FILE <file_name>.stp
- set_global_assignment -name SIGNALTAP_FILE <file_name>.stp
4. Vuelva a compilar el kernel desde la línea de comandos AOCL.
Solución de base de datos de conocimiento
Intel® Arria® 10 dispositivos
Intel® Stratix® 10 dispositivos
Problemas conocidos
Recursos adicionales
Diseñar la depuración mediante la sección Sondeos y fuentes en el sistema de la Guía del usuario de herramientas de depuración
AN 799: depuración de diseño de Quick Intel® Arria® 10 mediante Signal Probe y Rapid Recompile
5. Lectura y entrenamiento recomendados
Cursos de entrenamiento de OpenCL™
- Introducción a la computación en paralelo con OpenCL™ en Intel® FPGAs
- Ejecución de OpenCL™ en Intel® FPGAs
- Creación de plataformas personalizadas para Intel® FPGA SDK para OpenCL:™ Contenido del paquete de soporte de placa (BSP)
- Desarrollo de un paquete de soporte de placa OpenCL™ (BSP) personalizado
- Cursos de entrenamiento del paquete de soporte de placa OpenCL™ (BSP)
- Otros cursos de entrenamiento de OpenCL™
Videos de OpenCL™
Título |
Descripción |
---|---|
Este video describe el procedimiento listo para usar para ejecutar dos aplicaciones, OpenCL HelloWorld y OpenCL™™ fast Fourier transform (FFT) en el SoC Cyclone® V utilizando una máquina Windows*. |
|
Este video describe el procedimiento listo para usar para ejecutar dos aplicaciones, OpenCL HelloWorld y OpenCL™™ FFT en el SoC Cyclone® V utilizando un equipo Windows*. |
|
Este video describe el procedimiento listo para usar para ejecutar dos aplicaciones, OpenCL HelloWorld y OpenCL™™ FFT en el SoC Cyclone® V utilizando un equipo Windows*. |
|
Este video describe el procedimiento listo para usar para ejecutar dos aplicaciones, OpenCL HelloWorld y OpenCL™™ FFT en el SoC Cyclone® V utilizando un equipo Windows*. |
|
Este video describe el procedimiento listo para usar para ejecutar dos aplicaciones, OpenCL HelloWorld y OpenCL™™ FFT en el SoC Cyclone® V utilizando un equipo Windows*. |
|
Cómo empaquetar módulos/diseños personalizados de Verilog como bibliotecas OpenCL™ |
El video discute por qué los clientes podrían usar esta característica para tener sus bloques de procesamiento personalizados (RTL) en el código del kernel OpenCL™. El video explica el ejemplo de diseño, como los archivos make, config files, y explica el flujo de compilación. El video también muestra una demostración del ejemplo de diseño. |
OpenCL™ en Intel FPGA SoC FPGA (Linux Host) – Parte 1 – Descarga y configuración de herramientas |
Este video le muestra cómo descargar, instalar y configurar las herramientas necesarias para desarrollar kernels OpenCL™ y códigos de host dirigidos Intel FPGA FPGAs de SoC. |
Este video muestra cómo descargar y compilar una aplicación OpenCL de ejemplo dirigida al emulador que está integrado en el Intel FPGA OpenCL™.™ |
|
Este video le muestra cómo compilar el kernel de OpenCL™ y el código de host dirigido al FPGA y al procesador del FPGA de sistema integrado en chip Cyclone® V. |
|
Este video muestra cómo configurar la placa de sistema integrado en chip Cyclone® V para ejecutar el ejemplo de OpenCL™ y ejecutar el código de host y el kernel en la placa. |
6. Obtener ayuda
Proveedores de servicios certificados por OpenCL
Intel recomienda los siguientes proveedores de servicio certificados que pueden ayudar con el desarrollo de un paquete de asistencia de placa OpenCL™ para placas Intel® FPGA. Estos proveedores tienen una amplia experiencia en el desarrollo de paquetes de soporte de placas OpenCL de alta calidad, controladores y migración de diseño para placas Intel FPGA:
Terasic Inc
OpenCL y el logotipo de OpenCL son marcas comerciales de Apple Inc. y se utilizan con permiso de Khronos.
El contenido de esta página es una combinación de la traducción humana y automática del contenido original en inglés. Este contenido se ofrece únicamente para su comodidad como información general y no debe considerarse completa o precisa. Si hay alguna contradicción entre la versión en inglés de esta página y la traducción, prevalecerá la versión en inglés. Consulte la versión en inglés de esta página.