AN 824 FPGA SDK para OpenCL Board
Planta baixa do pacote de suporte
Guia do usuário
Intel® FPGA SDK para OpenCL ™ Board Support Package Guia de otimização da planta baixa
O Intel/® FPGA SDK para OpenCL™ Board Support Package (BSP) Floorplan Optimization Guide fornece diretrizes de planejamento de piso para OpenCL) BSP. Ele também fornece orientação sobre como você pode adquirir a semente base com a melhor frequência operacional máxima média e avaliar a eficiência de utilização de recursos do BSP.
Este documento pressupõe que você esteja familiarizado com os conceitos do OpenCL(2) conforme descrito na especificação OpenCL versão 1.0 do Khronos Group.
Fluxo de Compilação OpenCL BSP
O OpenCL BSP suporta os seguintes tipos de fluxos de compilação:
- Compilação plana [–bsp-flow flat]: executa uma compilação plana de todo o design (BSP junto com o hardware gerado pelo kernel).
- Compilação de base [–bsp-flow base]: executa uma compilação de base usando restrições de LogicLock de base.qsf file. O alvo do relógio do kernel é relaxado para que o hardware BSP tenha mais liberdade para atender ao tempo. Um banco de dados base.qar é criado para preservar o hardware BSP, que é a região estática.
- Importar compilação [ ]: Restaura a região estática fechada de temporização do banco de dados base.qar e compila apenas o hardware gerado pelo kernel. Ele também aumenta o alvo do clock do kernel para obter a melhor frequência operacional máxima do kernel (fmax).
Partição de planta baixa OpenCL BSP
A planta baixa do OpenCL BSP é dividida principalmente nas duas regiões a seguir:
- Região estática: representa a região com hardware relacionado ao BSP que permanece estático. O tempo é fechado para esta região durante a compilação base. Em geral, o objetivo é minimizar os recursos de chip usados por essa região para fechar o tempo.
- Região do Kernel: Representa a região de reconfiguração parcial (PR) que está reservada para o módulo freeze_wrapper_inst|kernel_system_inst, que contém o kernel. Em geral, o objetivo é reservar recursos de chip ao máximo para esta região.
- O Intel FPGA SDK para OpenCL é baseado em uma Especificação Khronos publicada e passou no Processo de Teste de Conformidade Khronos. O status de conformidade atual pode ser encontrado em www.khronos.org/conformance.
- OpenCL e o logotipo OpenCL são marcas registradas da Apple Inc. e usadas com permissão do Khronos Group™.
Corporação Intel. Todos os direitos reservados. Intel, o logotipo da Intel e outras marcas da Intel são marcas comerciais da Intel Corporation ou de suas subsidiárias. A Intel garante o desempenho de seus produtos FPGA e semicondutores de acordo com as especificações atuais de acordo com a garantia padrão da Intel, mas reserva-se o direito de fazer alterações em quaisquer produtos e serviços a qualquer momento sem aviso prévio. A Intel não assume nenhuma responsabilidade decorrente do aplicativo ou uso de qualquer informação, produto ou serviço aqui descrito, exceto conforme expressamente acordado por escrito pela Intel. Os clientes da Intel são aconselhados a obter a versão mais recente das especificações do dispositivo antes de confiar em qualquer informação publicada e antes de fazer pedidos de produtos ou serviços.
*Outros nomes e marcas podem ser reivindicados como propriedade de terceiros.
Diretrizes para OpenCL BSP Floorplanning
- Comece com a compilação plana para entender onde todos os componentes principais do BSP são colocados naturalmente (especialmente os blocos IP com conexões de E/S, como PCIe ou DDR). Ao projetar o BSP, você pode ter que considerar o estabelecimento de pipelinestages entre os IPs para fechar o tempo. Você deve primeiro executar uma varredura de semente de compilação plana para identificar os caminhos com falha recorrente e, em seguida, tentar corrigi-los.
Dica: — Uma boa taxa de fechamento de tempo sobre varreduras de semente de compilação plana terá maiores chances de fechar o tempo de compilação base.
— Se você observar falhas consistentes em mm_interconnect* (componente adicionado pelo Qsys), abra o Sistema com Qsys Interconnect viewe observe a complexidade da falha na interconexão. Você pode adicionar flip-flops de pipelining no viewer para melhorar o tempo. Se você ainda não conseguir resolver o problema, talvez seja necessário quebrar o caminho crítico mm_interconnect* adicionando pontes de pipeline Avalon. - Durante a compilação base, inicie com LogicLock na região do kernel que contém freeze_wrapper_inst|kernel_system_inst. Sem outras restrições, o Intel Quartus Prime pode colocar o hardware BSP livremente na região estática restante do chip. Use a compilação plana e o planejador de chip para identificar o tamanho e a localização do hardware BSP, como PCIe e DDR. Em seguida, reserve a região do kernel usando o LogicLock, evitando as principais áreas agrupadas do hardware BSP.
Dica: Se a família de chips usada for a mesma da plataforma de referência e se os componentes BSP forem semelhantes, pode ser mais rápido iniciar com as regiões LogicLock para freeze_wrapper_inst|kernel_system_inst que é fornecido com o BSP de referência OpenCL e trabalhar com as falhas. - Você pode adicionar os seguintes componentes adicionais ao seu BSP:
— Bancos de memória: Se você adicionar mais bancos de memória, deverá identificar o local do banco de E/S, pois pode ser necessário adicionar pontes de pipeline para atender ao tempo.
— Canais de E/S: você pode adicionar canais de E/S como vídeo, Ethernet ou interface serial. Se você adicionar canais de E/S, deverá identificar o local do banco de E/S, pois pode ser necessário aplicar novas regiões LogicLock para pipelining se o tempo de fechamento for difícil.
Dica: Se você precisar adicionar pontes de pipeline (por exemploample, devido a grandes atrasos de roteamento que causam falhas de temporização), considere a distância de roteamento da lógica de origem para destino no chip e libere algum espaço reservado para a região do kernel. - Siga estas diretrizes gerais ao reservar regiões LogicLock para o kernel:
— Tente colocar todas as colunas DSP no kernel_system, a menos que exigido pelo BSP.
— Tentativa de reservar mais recursos para o kernel_system.
— Tente manter o número de entalhes na região do kernel no mínimo.
A figura a seguir ilustra um entalhe que foi adicionado para colocar uma ponte de pipeline entre o PCIe e o banco DDR.
Figura 1. Planta baixa do OpenCL BSP para Intel Arria® 10 GX na versão 17.0
Diretrizes para Frequência Operacional Máxima
A frequência operacional máxima (fmax) alcançada pelos kernels depende muito da velocidade do FPGA, pois a maioria dos IPs já deve estar otimizada. No entanto, pode haver alguma perda de fmax dependendo da planta BSP. por example, geralmente o número de cortes na região do kernel do BSP afeta o fmax do kernel.
Conforme ilustrado na figura a seguir, para adquirir a melhor semente base que produz a melhor fmax média:
- Execute uma varredura de semente na compilação base em vez de selecionar a primeira semente base que atenda ao tempo.
- Execute a compilação de importação (usando alguns kernels do example designs) em todas as sementes de base que passam.
- Calcule o fmax médio para todas as sementes de base.
- Selecione a semente base que produz o fmax médio mais alto.
A semente base com o melhor fmax médio é um bom candidato para lançamento com BSP. Se você decidir seguir uma abordagem diferente das etapas recomendadas, poderá observar uma variação de 5 a 10% no fmax do processo de compilação de importação do kernel.
Figura 2. Identificando a Melhor Semente Base
- Para entender o quão rápido o kernel pode rodar sem restrições de planta baixa:
1. Execute uma compilação plana do kernel e observe o fmax.
2. Execute uma compilação de importação no mesmo kernel e observe o fmax.
3. Compare os resultados de fmax.
Devido às restrições da planta baixa, a compilação de importação fmax é sempre menor que a compilação plana fmax. Para evitar ruído de semente, compile o kernel com mais sementes de base e considere um fmax médio ao comparar os resultados de fmax. - Nunca compare fmax do kernel de uma compilação base com uma compilação simples ou de importação. Os alvos do relógio do kernel são relaxados durante a compilação base e, portanto, você nunca obterá bons resultados.
- Observe o caminho crítico do relógio do kernel na compilação base ou de importação. Se o caminho crítico estiver cruzando do kernel para a região estática na planta baixa, altere a planta baixa ou execute mais algumas sementes de base para evitar esse caminho crítico.
Diretrizes para avaliar a eficiência de utilização de recursos BSP
Quanto maior a porcentagem de utilização de recursostage, melhor será o aproveitamento da área na área estática do seu BSP. Uma alta porcentagem de utilização de recursostage também implica que mais recursos estão disponíveis para a região do kernel.
Siga as etapas abaixo para calcular a porcentagem de utilização de recursostage do seu BSP:
- Obtenha valores para todos os recursos no FPGA de top.fit.rpt ou base.fit.rpt disponíveis na seção Partition Statistics do relatório Fitter.
- Deduza o valor para “freeze_wrapper_inst|kernel_system_inst” (região do kernel).
Dica:
Concentre-se mais nos valores do módulo de lógica adaptativa (ALM) do que nos valores de outros recursos. Certifique-se de que a porcentagem de utilização de recursostage para ALM está mais próximo da referência OpenCL BSP. Uma porcentagem muito altatage para ALM pode levar a congestionamento, o que pode aumentar o tempo de compilação e introduzir congestionamentos de roteamento em kernels complexos. No entanto, você sempre pode aumentar ou diminuir a área da região estática e observar o tempo de compilação e o fmax.
A tabela a seguir reflete a utilização de recursos OpenCL BSP dos dispositivos Arria ® 10 GX na versão 17.0.
Tabela 1.
Utilização de recursos OpenCL BSP de dispositivos IntelArria 10 GX na versão 17.0
Total disponível | Reservado para Kernel | Disponível para BSP | Usado por BSP | 0/0 | |
ALM | 427200 | 393800 | 33400 | 23818. | 71% |
Registros | 1708800 | 1575200 | 133600 | 38913 | 29% |
M2 OK | 2713 | 2534 | 179 | 134 | 75% |
DSP | 1518 | 1518 | 0 | 0 | N / D |
Observe que a planta baixa é executada de forma que a região estática não possua nenhum bloco DSP.
Histórico de revisão do documento
Tabela 2.
Histórico de revisão do documento do Intel FPGA SDK para OpenCL Board Support Package Guia de otimização da planta baixa
Data | Versão | Mudanças |
Agosto-17 | Lançamento inicial. |
Versão online
Enviar feedback
Identificação: 683312
AN-824
Versão: 2017.08.08
AN 824: Intel® FPGA SDK para placa OpenCL™
Guia de otimização da planta baixa do pacote de suporte
Documentos / Recursos
![]() |
Intel AN 824 FPGA SDK para OpenCL Board Support Package Planta baixa [pdf] Guia do Usuário AN 824 FPGA SDK para OpenCL Board Support Package Floorplan, AN 824, FPGA SDK for OpenCL Board Support Package Floorplan, OpenCL Board Support Package Floorplan, Board Support Package Floorplan, Support Package Floorplan, Package Floorplan, Floorplan |