OpenCL™ - BSP - Centro de soporte
Intel® SDK fpGA para OpenCL™ permite a los desarrolladores de software acelerar sus aplicaciones dirigiéndose a plataformas heterogéneas con CPU y FPGA Intel. Intel® FPGA SDK para OpenCL™ se puede instalar como parte del software Intel® Quartus® Prime o como un paquete separado. Puede descargar el SDK de Intel FPGA para OpenCL desde el siguiente enlace.
¡Bienvenido a la página de soporte de OpenCL™ BSP! Aquí encontrará 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.
Esta página está configurada para guiarlo de principio a fin por el proceso de desarrollo de un openCL™ Board Support Package (BSP) (o el diseño/migración de kernel/algoritmos openCL). En la sección Modificar un diseño de referencia encontrará recursos sobre cómo modificar la plataforma de referencia Intel® en su propia plataforma personalizada, así como sobre cómo compilar diseños planos sin errores de temporización. La sección Floorplanning and Timing Closure proporciona orientación sobre cómo particionar su diseño y lograr la máxima frecuencia de funcionamiento. También describe las técnicas para cerrar el tiempo en su diseño y tener un cierre de tiempo garantizado mientras construye un BSP. La sección Utilidades de MMD y OpenCL proporciona los pasos para reconstruir mmD y proporciona información detallada sobre las utilidades de OpenCL. La sección Depurar le proporciona algunas herramientas y recursos para los problemas de depuración que pueda encontrar. Hay documentos y cursos de capacitación enumerados en todas las secciones que son útiles durante el proceso de desarrollo de BSP.
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 software Intel® FPGA SDK para OpenCL™ e Intel® Quartus® está instalado.
- Compruebe que la versión de la herramienta que coincide con el BSP de referencia OpenCL™ está disponible.
- Confirme el acceso a la licencia completa del software Intel® Quartus®.
Seleccionar un diseño de referencia
Seleccione el diseño de referencia que se adapte a su plataforma personalizada
Intel es compatible con los diseños BSP de referencia 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: consulte la Guía de migración de la plataforma de referencia de red Intel® FPGA para OpenCL™ Stratix® V ›
- Kit de desarrollo Intel® Arria® 10 PCIe: consulte la Guía de migración de la plataforma de referencia del SDK Intel® FPGA para OpenCL™ Intel® Arria® 10 GX FPGA Development Kit ›
- Kit de desarrollo de SoC Intel® Arria® 10: consulte la Guía de migración de la plataforma de referencia del SDK Intel® FPGA para OpenCL™ Intel® Arria® 10 SoC Development Kit ›
- Kit de desarrollo Intel® Stratix® 10 PCIe*: consulte la Guía de migración de la plataforma de referencia del SDK Intel® FPGA para OpenCL™ Intel® Stratix® 10 GX FPGA Development Kit ›
Modificar un diseño de referencia
Comience a modificar el diseño de referencia de su platfrom siguiendo los pasos de las guías de portabilidad de OpenCL BSP. Se recomienda que una vez que se completen los cambios de diseño, intente compilar su primer núcleo. Generalmente, utilizamos un kernel llamado Boardtest,que prueba diferentes interfaces del BSP. La información sobre boardtest y los pasos genéricos de construcción de BSP se mencionan en la siguiente guía:
Guía del usuario del kit de herramientas intel® FPGA SDK para OpenCL™ (PDF) ›
Pasos recomendados para crear un BSP:
- Compile el Boardtest en flujo "plano" para generar un archivo ".aocx" cerrado de temporización
- Valide el ".aocx" ejecutando Boardtest y verifique las expectativas de ancho de banda de la interfaz de la prueba
- Comience a trabajar en el plano de planta para la construcción "base" para crear un BSP OpenCL garantizado con tiempo cerrado
2. Plano de planta y cierre de tiempo
Empezar
En OpenCL, necesitamos trabajar en el tiempo para dos revisiones diferentes del proyecto: las revisiones planas y las revisiones base. Una revisión plana es la que no tiene particiones o regiones de bloqueo lógico y utiliza el archivo hardware/flat.qsf para implementarla. Mientras que la revisión base es la que incluye el particionamiento y los bloqueos lógicos, y utiliza el archivo hardware/base.qsf para implementarlo. Le recomendamos que primero obtenga una revisión plana limpia en el tiempo como un buen comienzo y luego trabaje en el plano de planta para obtener una revisión de la base 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 del paquete de soporte de placas Intel® FPGA para OpenCL™.
Partición del plano de planta
Comience con la compilación plana para comprender dónde se colocan naturalmente todos los componentes principales del BSP (especialmente los bloques de propiedad intelectual (IP) con conexiones de E/S, como la memoria PCIe* o DDR).
Para obtener más directrices al respecto, consulte la sección Directrices para OpenCL™ BSP Floorplanning en la Guía de optimización del paquete de soporte de placa Intel® FPGA sdk para OpenCL™.
Para obtener más información, también puede consultar la Guía del usuario de reconfiguración parcial.
Modificar región de 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 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 OpenCL™ BSP Floorplanning en la Guía de optimización del paquete de soporte de placa Intel® FPGA sdk para OpenCL™.
Corrección de infracciones de tiempo
Para corregir las infracciones de temporización en el diseño, es posible que deba agregar etapas de canalización entre los núcleos IP.
Para obtener más directrices, consulte los siguientes enlaces:
Restricciones de configuración/retención
Los .failing_paths.rpt y .failing_clocks.rpt en el directorio de salida enumeran los principales errores en el diseño. Si hay un error constante en algunas de las rutas de acceso, es posible que desee establecer una restricción de retardo mínima o máxima 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 el tiempo en las infracciones de retención y configuración de la competencia en Arria 10?
3. Utilidades MMD y OpenCL™
Desarrollo o modificación de fuentes MMD
La biblioteca de software MMD implementa entradas/salidas (E/S) básicas entre el host y la placa de aceleración y proporciona interfaces, como abrir, leer y escribir. El controlador de biblioteca MMD se almacena en formatos Windows* 64 o Linux* 64 y el código fuente se almacena en la carpeta de origen.
Para obtener más información, consulte la sección Creación de la biblioteca MMD en la Guía del usuario del kit de herramientas Intel® FPGA SDK para OpenCL™ Custom Platform Toolkit.
Soporte de utilidades
Las utilidades de OpenCL™ le permiten realizar el acceso a la placa mediante Intel® SDK de FPGA para OpenCL™. Esto incluye la instalación de aocl, la desinstalación de aocl, el diagnóstico de aocl, el programa aocl y aocl flash.
Para obtener más información, consulte la sección Proporcionar compatibilidad con Intel® FPGA SDK para OpenCL™ Utilities en la Guía del usuario del Kit de herramientas intel® FPGA SDK para OpenCL™ Custom Platform Toolkit.
Después de crear las utilidades de software y la capa MMD, es necesario probar el diseño del hardware. La forma estándar es generar el kernel boardtest y ejecutarse 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 del kit de herramientas intel® FPGA SDK para OpenCL™.
4. Depurar
Traición a la Junta Directiva
Esta sección le ayuda a solucionar problemas mientras abre los kits de desarrollo Intel® FPGA o sus propias placas personalizadas.
Para averiguar algunos problemas conocidos a los que puede 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 intel® FPGA para OpenCL™ Nota de aplicación:
- Sección solución de problemas ›
- Posibles errores después de ejecutar la sección Utilidad de diagnóstico ›
Plano de planta y tiempo
Para obtener consejos y trucos sobre el uso de 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 del plano de planta del paquete de soporte de placas AN 824: Intel® FPGA SDK para OpenCL™.
Depuración en 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. Estos son Intel® FPGA SDK para OpenCL™ variables de entorno específicas, que pueden ayudar a diagnosticar problemas con diseños de plataformas personalizadas.
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 invalidar el argumento de quartus_pgm predeterminado que especifica el número de cable. El valor predeterminado es el cable 1. Si hay varios cables de descarga Intel® FPGA, puede especificar un cable en particular configurando esta variable. |
ACL_PCIE_JTAG_DEVICE_INDEX |
Establezca esta variable para invalidar el argumento de quartus_pgm predeterminado que especifica el índice de dispositivo FPGA. De forma predeterminada, esta variable tiene un valor de 1. Si la 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 la reconfiguración parcial. |
ACL_PCIE_DMA_USE_MSI |
Establezca esta variable si desea utilizar MSI para las transferencias de acceso directo a memoria (DMA) en Windows*. |
Depuración de toque de señal
Debido a que los diseños openCL™ no admiten la función de simulación, el uso de Signal Tap Logic Analyzer 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 de aocl, se recomienda utilizar el analizador lógico de Toque de señal.
Para obtener más información sobre Signal Tap Logic Analyzer, consulte la sección Depuración de diseño con Signal Tap Logic Analyzer en la Guía del usuario de Herramientas de depuración.
Realice los siguientes pasos 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 comandos en su flat.qsf:
- set_global_assignment -name ENABLE_SIGNALTAP ON
- set_global_assignment -nombre USE_SIGNALTAP_FILE <file_name>.stp
- set_global_assignment -nombre SIGNALTAP_FILE <file_name>.stp
4. Vuelva a compilar el kernel desde la línea de comandos de AOCL.
Solución de base de datos de conocimiento
Dispositivos Intel® Arria® 10
- Buscar en la base de datos de conocimiento (OpenCL™ BSP) ›
- Buscar en la base de datos de conocimiento (OpenCL™) ›
Dispositivos Intel® Stratix® 10
Problemas conocidos
Recursos adicionales
Sección Diseño de depuración mediante fuentes y sondeos en el sistema de la Guía del usuario herramientas de depuración
5. Lectura y entrenamiento recomendados
OpenCL™ Cursos de formación
- Introducción a la informática paralela con OpenCL™ en FPGA Intel® ›
- Introducción a OpenCL™ para FPGA Intel® ›
- Ejecución de OpenCL™ en FPGA Intel® ›
- Creación de plataformas personalizadas para Intel® SDK de FPGA para OpenCL™: Contenido del paquete de asistencia de la placa (BSP) ›
- Desarrollo de un paquete de soporte de placa OpenCL™ personalizado (BSP) ›
- Cursos de capacitación de OpenCL™ Board Support Package (BSP) ›
- Otros cursos de formación de OpenCL™ ›
OpenCL™ Videos
Título |
Descripción |
|---|---|
Este vídeo describe el procedimiento inmediato para ejecutar dos aplicaciones, OpenCL™ HelloWorld y OpenCL™ transformada rápida de Fourier (FFT) en el SoC Cyclone® V utilizando una máquina Windows*. |
|
Este vídeo describe el procedimiento inmediato para ejecutar dos aplicaciones, OpenCL™ HelloWorld y OpenCL™ FFT en el SoC Cyclone® V mediante una máquina Windows*. |
|
Este vídeo describe el procedimiento inmediato para ejecutar dos aplicaciones, OpenCL™ HelloWorld y OpenCL™ FFT en el SoC Cyclone® V mediante una máquina Windows*. |
|
Este vídeo describe el procedimiento inmediato para ejecutar dos aplicaciones, OpenCL™ HelloWorld y OpenCL™ FFT en el SoC Cyclone® V mediante una máquina Windows*. |
|
Este vídeo describe el procedimiento inmediato para ejecutar dos aplicaciones, OpenCL™ HelloWorld y OpenCL™ FFT en el SoC Cyclone® V mediante una máquina Windows*. |
|
Cómo empaquetar módulos/diseños de Verilog personalizados como bibliotecas OpenCL™ |
El video analiza por qué los clientes podrían usar esta función para tener sus bloques de procesamiento personalizados (RTL) en OpenCL™ código de kernel. El vídeo explica el ejemplo de diseño, como los archivos de marca, los archivos de configuración y 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 vídeo muestra cómo descargar, instalar y configurar las herramientas necesarias para desarrollar OpenCL™ kernels y código de host dirigido a FPGA Intel FPGA SoC FPGA FPGA FPGA. |
Este vídeo muestra cómo descargar y compilar un ejemplo de aplicación OpenCL™ dirigida al emulador que está integrado en la ™ Intel FPGA OpenCL. |
|
Este vídeo muestra cómo compilar el kernel OpenCL™ y el código host dirigido a la FPGA y al procesador de la FPGA Cyclone® V SoC FPGA. |
|
Este vídeo muestra cómo configurar la placa SoC Cyclone® V para ejecutar OpenCL™ ejemplo, y ejecutar el código host y el kernel en la placa. |
6. Obtén ayuda
Proveedores de servicios certificados por OpenCL
Intel recomienda los siguientes proveedores de servicios certificados que pueden ayudar con el desarrollo de un paquete de compatibilidad con placas OpenCL™ para placas Intel® FPGA. Estos proveedores tienen una amplia experiencia en el desarrollo de paquetes de soporte de placa 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. utilizadas con permiso de Khronos.
El contenido de esta página es una combinación de traducción humana e informática del contenido original en inglés. Este contenido se ofrece únicamente para su conveniencia y como información general, y no debe considerarse como completo o preciso. Si existe alguna contradicción entre la versión en inglés de esta página y la traducción, la versión en inglés será la que sirva de referencia. Consulte la versión en inglés de esta página.