AN 824 FPGA SDK para placa OpenCL
Paquete de soporte Floorplan
Guía de usuario
SDK Intel® FPGA para Guía de optimización de planos do paquete de soporte da placa OpenCL™
O Intel/® FPGA SDK para OpenCL™ Board Support Package (BSP) Floorplan Optimization Guide proporciona pautas de planificación de planta para OpenCL) BSP. Tamén ofrece orientación sobre como pode adquirir a semente base coa mellor frecuencia de funcionamento máxima media e avaliar a eficiencia de utilización dos recursos BSP.
Este documento asume que está familiarizado cos conceptos OpenCL(2) descritos na Especificación OpenCL versión 1.0 do Grupo Khronos.
Fluxo de compilación OpenCL BSP
OpenCL BSP admite os seguintes tipos de fluxos de compilación:
- Compilación plana [–bsp-flow flat]: realiza unha compilación plana de todo o deseño (BSP xunto co hardware xerado polo núcleo).
- Compilación base [–bsp-flow base]: realiza unha compilación base usando restricións LogicLock de base.qsf file. O obxectivo do reloxo do núcleo está relaxado para que o hardware BSP teña máis liberdade para cumprir o tempo. Créase unha base de datos base.qar para preservar o hardware BSP, que é a rexión estática.
- Importar compilación [ ]: restaura a rexión estática pechada por tempo da base de datos base.qar e compila só o hardware xerado polo núcleo. Tamén aumenta o obxectivo do reloxo do núcleo para obter a mellor frecuencia de funcionamento máxima do núcleo (fmax).
Partición de plano de planta OpenCL BSP
O plano de planta OpenCL BSP divídese principalmente nas dúas rexións seguintes:
- Rexión estática: representa a rexión que ten hardware relacionado con BSP que permanece estático. O tempo está pechado para esta rexión durante a compilación da base. En xeral, o obxectivo é minimizar os recursos de chip utilizados por esta rexión para pechar o tempo.
- Rexión do núcleo: representa a rexión de reconfiguración parcial (PR) que está reservada para o módulo freeze_wrapper_inst|kernel_system_inst, que contén o núcleo. En xeral, o obxectivo é reservar os recursos de chip ao máximo para esta rexión.
- O SDK Intel FPGA para OpenCL baséase nunha especificación de Khronos publicada e pasou o proceso de proba de conformidade de Khronos. O estado de conformidade actual pódese consultar en www.khronos.org/conformance.
- OpenCL e o logotipo de OpenCL son marcas comerciais de Apple Inc. e úsanse con permiso de Khronos Group™.
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.
Directrices para a planificación de pisos OpenCL BSP
- Comeza coa compilación plana para comprender onde se colocan de forma natural todos os compoñentes principais do BSP (especialmente os bloques IP con conexións de E/S como PCIe ou DDR). Ao deseñar o BSP, quizais teñas que considerar o establecemento de canalizaciónstagestá entre as IP para pechar o tempo. Primeiro debes executar un varrido de sementes de compilación plana para identificar os camiños recorrentes que fallan e despois tentar solucionalos.
Consello: — Unha boa taxa de peche de tempo sobre os varridos de sementes de compilación plana terá máis posibilidades de pechar o tempo de compilación base.
— Se observa fallos consistentes en mm_interconnect* (compoñente engadido por Qsys), abra o Sistema con Qsys Interconnect viewer e observe a complexidade da interconexión que falla. Podes engadir chanclas de canalización no ficheiro viewer para mellorar o tempo. Se aínda non pode resolver o problema, é posible que teña que romper o camiño crítico mm_interconnect* engadindo pontes de canalización de Avalon. - Durante a compilación base, comeza con LogicLock na rexión do núcleo que contén freeze_wrapper_inst|kernel_system_inst. Sen outras restricións, Intel Quartus Prime pode colocar o hardware BSP libremente na rexión estática restante do chip. Use a compilación plana e o planificador de chips para identificar o tamaño e a localización do hardware BSP, como PCIe e DDR. A continuación, reserve a rexión do núcleo usando LogicLock evitando as principais áreas agrupadas do hardware BSP.
Consello: Se a familia de chips utilizada é a mesma que a plataforma de referencia e se os compoñentes do BSP son similares, pode ser máis rápido comezar coas rexións LogicLock para freeze_wrapper_inst|kernel_system_inst que se envía co BSP de referencia OpenCL e superar os fallos. - Podes engadir os seguintes compoñentes adicionais ao teu BSP:
— Bancos de memoria: se engades máis bancos de memoria, debes identificar a localización do banco de E/S, xa que é posible que teñas que engadir pontes de canalización para cumprir o tempo.
— Canles de E/S: pode engadir canles de E/S como vídeo, Ethernet ou interface serie. Se engades canles de E/S, debes identificar a localización do banco de E/S, xa que quizais necesites aplicar novas rexións LogicLock para a canalización se o momento de peche é difícil.
Consello: se precisa engadir pontes de canalizacións (por exemploample, debido a grandes atrasos de enrutamento que causan fallos de tempo), considere a distancia de enrutamento desde a lóxica de orixe ata o destino no chip e libere un espazo reservado para a rexión do núcleo. - Siga estas pautas xerais ao reservar rexións de LogicLock para o núcleo:
— Intente colocar todas as columnas DSP no kernel_system a non ser que o BSP o requira.
— Intente reservar máis recursos para o sistema_kernel.
— Intente manter o número de muescas na rexión do núcleo ao mínimo.
A seguinte figura ilustra unha muesca que se engadiu para colocar unha ponte de canalización entre o PCIe e o banco DDR.
Figura 1. Plano de planta OpenCL BSP para Intel Arria® 10 GX na versión 17.0
Directrices para a frecuencia máxima de funcionamento
A frecuencia de funcionamento máxima (fmax) alcanzada polos núcleos depende en gran medida da velocidade da FPGA xa que a maioría das IP xa deberían estar optimizadas. Non obstante, pode haber algunhas perdas de fmax dependendo do plano do BSP. Por example, normalmente o número de recortes na rexión do núcleo de BSP afecta ao fmax do núcleo.
Como se ilustra na seguinte figura, para adquirir a mellor semente base que dea a mellor fmax media:
- Realice un varrido de sementes na compilación base en lugar de seleccionar a primeira semente base que cumpra o tempo.
- Realiza a compilación de importación (utilizando algúns núcleos do example designs) en todas as sementes de base que pasan.
- Calcule o fmax medio para todas as sementes de base.
- Seleccione a semente base que produza o fmax medio máis alto.
A semente base co mellor fmax medio é un bo candidato para o lanzamento con BSP. Se decides seguir un enfoque diferente dos pasos recomendados, podes observar unha variación do 5-10 % no fmax do proceso de compilación de importación do núcleo.
Figura 2. Identificación da mellor semente base
- Para comprender o rápido que pode executarse o núcleo sen restricións de planta:
1. Realiza unha compilación plana do núcleo e observa o fmax.
2. Realice unha compilación de importación no mesmo núcleo e observe o fmax.
3. Compara os resultados fmax.
Debido ás restricións do plano de planta, a compilación de importación fmax sempre é menor que a compilación plana fmax. Para evitar o ruído das sementes, compile o núcleo con máis sementes de base e considere un fmax medio mentres compara os resultados de fmax. - Nunca compare o kernel fmax dunha compilación base cun flat ou unha compilación de importación. Os obxectivos do reloxo do núcleo son relaxados durante a compilación base e, polo tanto, nunca obterás bos resultados.
- Observe a ruta crítica do reloxo do núcleo na compilación base ou importación. Se o camiño crítico está cruzando desde o núcleo á rexión estática do plano, cambie o plano ou execute algunhas sementes de base máis para evitar este camiño crítico.
Directrices para avaliar a eficiencia da utilización dos recursos do BSP
Canto maior sexa o porcentaxe de utilización dos recursostage, mellor será a utilización da área na área estática do seu BSP. Un alto porcentaxe de utilización de recursostage tamén implica que hai máis recursos dispoñibles para a rexión do núcleo.
Siga os pasos seguintes para calcular o porcentaxe de utilización dos recursostage do teu BSP:
- Obtén valores para todos os recursos da FPGA a partir de top.fit.rpt ou base.fit.rpt dispoñibles na sección Estadísticas de partición do informe Fitter.
- Deducir o valor de "freeze_wrapper_inst|kernel_system_inst" (rexión do núcleo).
Consello:
Centrarse máis nos valores do módulo de lóxica adaptativa (ALM) que nos valores doutros recursos. Asegúrese de que o porcentaxe de utilización dos recursostage para ALM está máis preto da referencia OpenCL BSP. Unha porcentaxe moi altatage para ALM pode levar a conxestión, o que pode aumentar o tempo de compilación e introducir conxestións de enrutamento en núcleos complexos. Non obstante, sempre pode aumentar ou diminuír a área da rexión estática e observar o tempo de compilación e fmax.
A seguinte táboa reflicte a utilización dos recursos de OpenCL BSP dos dispositivos Arria ® 10 GX na versión 17.0.
Táboa 1.
Uso de recursos OpenCL BSP dos dispositivos IntelArria 10 GX na versión 17.0
Total Dispoñible | Reservado para Kernel | Dispoñible para BSP | Usado por BSP | 0/0 | |
ALM | 427200 | 393800 | 33400 | 23818. | 71% |
Rexistros | 1708800 | 1575200 | 133600 | 38913 | 29% |
M2OK | 2713 | 2534 | 179 | 134 | 75% |
DSP | 1518 | 1518 | 0 | 0 | N/A |
Observe que o planeamento se executa de tal xeito que a rexión estática non terá ningún bloque DSP.
Historial de revisión de documentos
Táboa 2.
Historial de revisión de documentos do SDK Intel FPGA para OpenCL Board Support Package Floorplan Optimization Guide
Data | Versión | Cambios |
Agosto-17 | Lanzamento inicial. |
Versión en liña
Enviar comentarios
Código: 683312
AN-824
Versión: 2017.08.08
AN 824: SDK Intel® FPGA para placa OpenCL™
Guía de optimización de planos do paquete de soporte
Documentos/Recursos
![]() |
Intel AN 824 FPGA SDK para OpenCL Board Support Package Floorplan [pdfGuía do 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 |