AN 824 FPGA SDK para placa OpenCL
Plano de planta del paquete de soporte
Guía del usuario
SDK de Intel® FPGA para OpenCL ™ Board Support Package Guía de optimización del plano de planta
La Guía de optimización del plano de planta del Intel/® FPGA SDK for OpenCL™ Board Support Package (BSP) proporciona pautas de planificación de piso para OpenCL) BSP. También brinda orientación sobre cómo puede adquirir la semilla base con la mejor frecuencia operativa máxima promedio y evaluar la eficiencia de utilización de recursos de BSP.
Este documento asume que está familiarizado con los conceptos de OpenCL(2) como se describe en la versión 1.0 de la Especificación OpenCL del Grupo Khronos.
Flujo de compilación OpenCL BSP
OpenCL BSP admite los siguientes tipos de flujos de compilación:
- Compilación plana [–bsp-flow flat]: realiza una compilación plana de todo el diseño (BSP junto con el hardware generado por el kernel).
- Base compile [–bsp-flow base]: realiza una compilación base mediante el uso de restricciones LogicLock de base.qsf file. El objetivo del reloj del kernel se relaja para que el hardware BSP tenga más libertad para cumplir con el tiempo. Se crea una base de datos base.qar para preservar el hardware BSP, que es la región estática.
- Importar compilación [ ]: restaura la región estática cerrada de temporización de la base de datos base.qar y compila solo el hardware generado por el kernel. También aumenta el objetivo del reloj del núcleo para obtener la mejor frecuencia operativa máxima del núcleo (fmax).
Partición de plano de planta OpenCL BSP
El plano de planta de OpenCL BSP se divide principalmente en las siguientes dos regiones:
- Región estática: representa la región que tiene hardware relacionado con BSP que permanece estático. El tiempo está cerrado para esta región durante la compilación base. En general, el objetivo es minimizar los recursos de chip utilizados por esta región para cerrar el tiempo.
- Región del kernel: representa la región de reconfiguración parcial (PR) que está reservada para el módulo freeze_wrapper_inst|kernel_system_inst, que contiene el kernel. En general, el objetivo es reservar los recursos de chips al máximo para esta región.
- El SDK de Intel FPGA para OpenCL se basa en una especificación de Khronos publicada y ha superado el proceso de prueba de conformidad de Khronos. El estado de conformidad actual se puede encontrar en www.khronos.org/conformidad.
- OpenCL y el logotipo de OpenCL son marcas comerciales de Apple Inc. y se usan con permiso de Khronos Group™.
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 u obligación 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 versión más reciente 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.
Directrices para la planificación de planta de OpenCL BSP
- Comience con una compilación plana para comprender dónde se colocan naturalmente todos los componentes principales del BSP (especialmente los bloques de IP con conexiones de E/S como PCIe o DDR). Al diseñar el BSP, es posible que deba considerar establecer tuberíastages entre las direcciones IP para cerrar el tiempo. Primero debe ejecutar un barrido de semilla de compilación plana para identificar las rutas de acceso fallidas recurrentes y luego intentar corregirlas.
Sugerencia: — Una buena tasa de cierre de sincronización sobre barridos de semilla de compilación plana tendrá mayores posibilidades de cerrar la sincronización de compilación base.
— Si observa fallas constantes en mm_interconnect* (componente agregado por Qsys), abra el Sistema con Qsys Interconnect viewer y observe la complejidad de la interconexión fallida. Puede agregar flip-flops de canalización en el viewer para mejorar el tiempo. Si aún no puede abordar el problema, es posible que deba desglosar la ruta crítica mm_interconnect* agregando puentes de canalización de Avalon. - Durante la compilación base, comience con LogicLock en la región del kernel que contiene freeze_wrapper_inst|kernel_system_inst. Sin otras restricciones, Intel Quartus Prime puede colocar el hardware BSP libremente en la región estática restante del chip. Utilice el planificador de chips y compilación plana para identificar el tamaño y la ubicación del hardware BSP, como PCIe y DDR. Luego, reserve la región del kernel usando LogicLock mientras evita las principales áreas agrupadas del hardware BSP.
Sugerencia: si la familia de chips utilizada es la misma que la plataforma de referencia y si los componentes de BSP son similares, podría ser más rápido comenzar con las regiones de LogicLock para freeze_wrapper_inst|kernel_system_inst que se envía con el BSP de referencia de OpenCL y solucionar los errores. - Puede agregar los siguientes componentes adicionales a su BSP:
— Bancos de memoria: si agrega más bancos de memoria, debe identificar la ubicación del banco de E/S, ya que es posible que deba agregar puentes de canalización para cumplir con los tiempos.
— Canales de E/S: puede agregar canales de E/S como video, Ethernet o interfaz serial. Si agrega canales de E/S, debe identificar la ubicación del banco de E/S, ya que es posible que deba aplicar nuevas regiones de LogicLock para la canalización si el tiempo de cierre es difícil.
Sugerencia: si necesita agregar puentes de tuberías (por ej.ample, debido a los grandes retrasos de enrutamiento que causan fallas de tiempo), luego considere la distancia de enrutamiento desde la lógica de origen a la de destino en el chip y libere algo de espacio reservado para la región del kernel. - Siga estas pautas generales al reservar regiones de LogicLock para el kernel:
— Intente colocar todas las columnas DSP en kernel_system a menos que lo requiera el BSP.
— Intente reservar más recursos para kernel_system.
— Intente mantener al mínimo el número de muescas en la región del kernel.
La siguiente figura ilustra una muesca que se agregó para colocar un puente de canalización entre PCIe y el banco DDR.
Figura 1. Plano de planta de OpenCL BSP para Intel Arria® 10 GX en la versión 17.0
Directrices para la frecuencia operativa máxima
La frecuencia operativa máxima (fmax) alcanzada por los núcleos depende en gran medida de la velocidad de la FPGA, ya que la mayoría de las IP ya deberían estar optimizadas. Sin embargo, puede haber algunas pérdidas de fmax dependiendo del plano de BSP. por ejemploample, por lo general, el número de cortes en la región del kernel de BSP afecta el fmax del kernel.
Como se ilustra en la siguiente figura, para adquirir la mejor semilla base que produzca el mejor fmax promedio:
- Realice un barrido de semillas en la compilación base en lugar de seleccionar la primera semilla base que cumpla con el tiempo.
- Realice la compilación de importación (mediante el uso de algunos núcleos del example diseños) en todas las semillas base que pasan.
- Calcule el fmax promedio para todas las semillas base.
- Seleccione la semilla base que produzca el fmax promedio más alto.
La semilla base con el mejor fmax promedio es una buena candidata para el lanzamiento con BSP. Si decide seguir un enfoque diferente a los pasos recomendados, puede observar una variación del 5 al 10 % en el fmax del proceso de compilación de importación del kernel.
Figura 2. Identificación de la mejor semilla base
- Para comprender qué tan rápido puede ejecutarse el núcleo sin restricciones de plano:
1. Realice una compilación plana del kernel y observe el fmax.
2. Realice una compilación de importación en el mismo kernel y observe el fmax.
3. Compare los resultados de fmax.
Debido a las restricciones del plano de planta, la compilación de importación fmax siempre es más baja que la compilación plana fmax. Para evitar el ruido de semillas, compile el kernel con más semillas base y considere un fmax promedio al comparar los resultados de fmax. - Nunca compare kernel fmax de una compilación base con una compilación plana o de importación. Los objetivos del reloj del kernel se relajan durante la compilación base y, por lo tanto, nunca obtendrá buenos resultados.
- Observe la ruta crítica del reloj del núcleo en la compilación base o de importación. Si la ruta crítica cruza desde el kernel a la región estática en el plano de planta, cambie el plano de planta o ejecute algunas semillas base más para evitar esta ruta crítica.
Directrices para evaluar la eficiencia en la utilización de los recursos del BSP
Cuanto mayor sea el porcentaje de utilización de recursostage, mejor será la utilización del área en el área estática de su BSP. Un alto porcentaje de utilización de recursostage también implica que hay más recursos disponibles para la región del kernel.
Siga los pasos a continuación para calcular el porcentaje de utilización de recursostage de su BSP:
- Obtenga valores para todos los recursos en el FPGA desde top.fit.rpt o base.fit.rpt disponibles en la sección Partition Statistics del informe Fitter.
- Deduzca el valor de “freeze_wrapper_inst|kernel_system_inst” (región del kernel).
Consejo:
Concéntrese más en los valores del módulo de lógica adaptativa (ALM) que en los valores de otros recursos. Asegúrese de que el porcentaje de utilización de recursostage para ALM está más cerca del BSP de referencia de OpenCL. Un porcentaje muy altotage para ALM puede generar congestión, lo que puede aumentar el tiempo de compilación e introducir congestiones de enrutamiento en núcleos complejos. Sin embargo, siempre puede aumentar o disminuir el área de la región estática y observar el tiempo de compilación y el fmax.
La siguiente tabla refleja la utilización de recursos de OpenCL BSP de los dispositivos Arria ® 10 GX en la versión 17.0.
Tabla 1.
Utilización de recursos de OpenCL BSP de dispositivos IntelArria 10 GX en la versión 17.0
Total disponible | Reservado para Kernel | Disponible para BSP | Utilizado por BSP | 0/0 | |
ALM | 427200 | 393800 | 33400 | 23818. | 71% |
Registros | 1708800 | 1575200 | 133600 | 38913 | 29% |
M2OK | 2713 | 2534 | 179 | 134 | 75% |
Procesador de señal digital (DSP) | 1518 | 1518 | 0 | 0 | N / A |
Observe que la planificación del piso se ejecuta de tal manera que la región estática no tendrá ningún bloque DSP.
Historial de revisión del documento
Tabla 2.
Historial de revisiones de documentos del Intel FPGA SDK para OpenCL Board Support Package Floorplan Optimization Guide
Fecha | Versión | Cambios |
17 de agosto | Lanzamiento inicial. |
Versión en línea
Enviar comentarios
Identificación: 683312
AN-824
Versión: 2017.08.08
AN 824: Intel® FPGA SDK para placa OpenCL™
Paquete de soporte Guía de optimización del plano de planta
Documentos / Recursos
![]() |
Intel AN 824 FPGA SDK para OpenCL Board Support Package Floorplan [pdf] Guía del usuario AN 824 FPGA SDK para OpenCL Board Support Package Floorplan, AN 824, FPGA SDK para OpenCL Board Support Package Floorplan, OpenCL Board Support Package Floorplan, Board Support Package Floorplan, Support Package Floorplan, Package Floorplan, Floorplan |