OpenCL™ - BSP - Centro de Suporte

O Intel® FPGA SDK for OpenCL™ permite que os desenvolvedores de software acelerem seus aplicativos mirando plataformas heterogêneas com CPUs Intel e FPGAs. O Intel® FPGA SDK para OpenCL™ pode ser instalado como parte do software Intel® Quartus® Prime ou como um pacote separado. Você pode baixar o Intel FPGA SDK para OpenCL no link abaixo.

Baixe Intel® FPGA SDK para OpenCL™

Bem-vindo à página de suporte do OpenCL™ BSP! Aqui você encontrará informações sobre como planejar, projetar e implementar seu OpenCL™ BSP, bem como aprender algumas dicas e truques para fins de depuração.

Esta página está configurada para orar você do início ao fim do processo de desenvolvimento de um Pacote de Suporte à Placa (BSP) (™ ou projetando/migrando kernel/algoritmos OpenCL). Na seção Modificar um Design de Referência, você encontrará recursos sobre como modificar a plataforma de referência Intel® em sua própria plataforma personalizada, bem como como compilar designs planos sem falha de tempo. A seção Floorplanning and Timing Closure fornece orientações sobre como particionar seu design e alcançar a frequência máxima de operação. Ele também descreve as técnicas para fechar o tempo em seu design e ter um fechamento de tempo garantido durante a construção de um BSP. A seção utilitários MMD e OpenCL fornece medidas para reconstruir o MMD e fornece informações detalhadas sobre utilitários OpenCL. A seção Debug fornece algumas ferramentas e recursos para problemas de depuração que você pode encontrar. Existem documentos e cursos de treinamento listados em todas as seções que são úteis durante o processo de desenvolvimento do BSP.

1. Modifique um design de referência

Começando

Para começar com o desenvolvimento do BSP, certifique-se de executar as seguintes etapas:

  1. Confirme que o software ® Intel® FPGA para OpenCL™ e Intel® Quartus® software está instalado.
  2. Verifique se a versão da ferramenta que corresponde ao BSP de referência ™ OpenCL está disponível.
  3. Confirme o acesso à licença completa de software ® Intel® Quartus.

Selecione um design de referência

Selecione o design de referência que se adequa à sua plataforma personalizada

A Intel suporta os designs BSP de referência ™ OpenCL para as seguintes plataformas. Você também pode visualizar o guia de portabilidade BSP ™ OpenCL para uma plataforma específica:

Modifique um design de referência

Comece a modificar o design de referência para o seu platfrom seguindo as etapas nos guias de portabilidade OpenCL BSP. Recomenda-se que após as alterações de design estejam concluídas, você deve tentar compilar seu primeiro kernel. Geralmente, usamos um kernel chamado Boardtest,que testa diferentes interfaces do BSP. As informações sobre as etapas de construção do Boardtest e genéricas do BSP são mencionadas no seguinte guia:

Intel® FPGA SDK para OpenCL™ Guia do Usuário de Kit de Ferramentas de Plataforma Personalizada (PDF) ›

Etapas recomendadas para construir um BSP:

  1. Compile o Boardtest no fluxo "plano" para gerar um arquivo ".aocx" fechado
  2. Valide o ".aocx" executando o Boardtest e cruze as expectativas de largura de banda da interface do teste
  3. Comece a trabalhar no planejamento de pisos para a construção "base" para criar um BSP OpenCL fechado com tempo garantido

2. Pavimentação e Fechamento de Tempo

Começando

No OpenCL, precisamos trabalhar o tempo para duas revisões diferentes do projeto – o plano e as revisões de base. Uma revisão plana é aquela sem quaisquer partições ou regiões de bloqueio lógico e usa o arquivo hardware/flat.qsf para implementá-lo. Enquanto a revisão base é a que inclui o particionamento e os bloqueios lógicos, e usa o arquivo hardware/base.qsf para implementá-lo. Recomendamos que você obtenha uma revisão plana de limpeza de tempo primeiro como um bom começo e, em seguida, trabalhar no plantão para obter uma revisão de base limpa de tempo do design.

Para obter mais detalhes sobre o fluxo de compilação, consulte a seção De fluxo de compilação do Pacote de compilação OpenCL™ BSP no SDK FPGA ® Intel para OpenCL™ Guia de Otimização do Piso do Pacote de Suporte à Placa.

Partição de piso

Comece com compilação plana para entender onde todos os principais componentes do BSP são colocados naturalmente (especialmente os blocos de propriedade intelectual (IP) com conexões de I/O, como memória PCIe* ou DDR).

Para obter mais orientações sobre isso, consulte as Diretrizes para o OpenCL™ seção BSP Floorplanning na Intel® FPGA SDK para OpenCL™ Guia de Otimização do Piso do Pacote de Suporte à Placa.

Para obter detalhes, você também pode consultar o Guia do Usuário de Reconfiguração Parcial.

Modificar a região de RP

Durante a compilação base, comece com a Região de Bloqueio Lógico no kernel que contém freeze_wrapper_inst|kernel_system_inst. Use o compilador plano e o planejador de chips para identificar o tamanho e a localização do hardware BSP. Tente reservar mais recursos para o kernel_system utilizando a Região de Bloqueio Lógico.

Para obter mais orientações sobre isso, consulte as Diretrizes para o OpenCL™ seção BSP Floorplanning na Intel® FPGA SDK para OpenCL™ Guia de Otimização do Piso do Pacote de Suporte à Placa.

Corrigindo violações de tempo

Para corrigir violações de tempo no design, você pode precisar adicionar estágios de pipeline entre núcleos IP.

Para obter mais orientações, consulte os seguintes links:

Restrições de configuração/remundo

O .failing_paths.rpt e .failing_clocks.rpt no diretório de saída listam as principais falhas no design. Se houver uma falha consistente em alguns dos caminhos, você pode querer definir uma restrição de atraso mínimo ou máxima para esse caminho crítico dentro do arquivo /hardware/top.sdc.

Para questões relacionadas, você pode consultar o seguinte método de solução na página do Banco de Dados de Conhecimento:Como fechar o tempo sobre violações de espera e configuração concorrentes no Arria 10?

3. Utilitários MMD e OpenCL™

Desenvolvimento ou Modificação de Fontes MMD

A biblioteca de software MMD implementa entrada/saída básica (I/O) entre o host e a placa de aceleração e fornece interfaces, como abrir, ler e escrever. O driver da biblioteca MMD é armazenado como formatos Windows* 64 ou Linux* 64, e o código-fonte é armazenado na pasta-fonte.

Para obter mais informações, consulte a seção Criando a Biblioteca MMD na seção Intel® FPGA SDK para OpenCL™ Custom Platform Toolkit User Guide.

Suporte ao utilitário

Os utilitários OpenCL™ permitem que você execute o acesso à placa usando o SDK FPGA ® Intel para o OpenCL™. Isso inclui a instalação aocl, desinstalação aocl, diagnóstico aocl, programa aocl e flash aocl.

Para obter mais informações, consulte a seção de suporte de utilidades da Intel® ® FpGA para OpenCL™ na seção de suporte a utilitários intel® FPGA para OpenCL™ Guia de Usuário de Ferramentas de Plataforma Personalizada.

Depois de criar os utilitários de software e a camada MMD, o design de hardware precisa ser testado. A maneira padrão é gerar o kernel de teste de placa e executar no tabuleiro.

Para obter mais informações, consulte a seção Testando a seção Hardware Design na seção Intel® FPGA SDK for OpenCL™ Custom Platform Toolkit User Guide.

4. Depuração

Trazer-se de placa

Esta seção ajuda você a solucionar problemas enquanto traz à tona kits de desenvolvimento FPGA ® Intel ou suas próprias placas personalizadas.

Para descobrir alguns problemas conhecidos que você pode enfrentar ao trazer suas placas, consulte as seguintes seções em AN 807: Configurando o Intel® Arria® 10 GX FPGA Development Kit para o Intel® FPGA SDK para OpenCL™ Application Nota:

Piso e Tempo

Para obter dicas e truques sobre o uso de área mínima para a lógica estática e deixar mais espaço para o seu kernel OpenCL™, você pode consultar o AN 824: Intel® FPGA SDK para OpenCL™ Guia de Otimização do Piso do Pacote de Suporteà Placa .

Depuração de tempo de execução

Existem certas variáveis de ambiente que podem ser definidas para obter mais informações de depuração durante a execução do aplicativo host. Estes são Intel® FPGA SDK para OpenCL™ variáveis específicas de ambiente, que podem ajudar a diagnosticar problemas com designs personalizados de plataforma.

A tabela a seguir lista todas essas variáveis de ambiente, bem como as descreve detalhadamente.

Variável de ambiente

Descrição

ACL_HAL_DEBUG

Defina essa variável a um valor de 1 a 5 para aumentar a saída de depuração da Camada de Abstração de Hardware (HAL), que interage diretamente com a camada MMD.

ACL_PCIE_DEBUG

Defina esta variável para um valor de 1 a 10000 para aumentar a saída de depuração do MMD. Esta configuração variável é útil para confirmar que o registro de ID da versão foi lido corretamente e os núcleos IP uniphy estão calibrados.

ACL_PCIE_JTAG_CABLE

Defina essa variável para substituir o argumento quartus_pgm padrão que especifica o número do cabo. O padrão é cabo 1. Se houver vários cabos de download Intel® FPGA, você pode especificar um cabo específico definindo esta variável.

ACL_PCIE_JTAG_DEVICE_INDEX

Defina essa variável para substituir o argumento quartus_pgm padrão que especifica o índice do dispositivo FPGA. Por padrão, essa variável tem um valor de 1. Se o FPGA não for o primeiro dispositivo da cadeia JTAG, você pode personalizar o valor.

ACL_PCIE_USE_JTAG_PROGRAMMING

Defina esta variável para forçar o MMD a reprogramar o FPGA usando o cabo JTAG em vez de reconfiguração parcial.

ACL_PCIE_DMA_USE_MSI

Defina esta variável se você quiser usar o MSI para transferências de acesso direto à memória (DMA) no Windows*.

Depuração de torneira de sinal

Como os designs ™ OpenCL não suportam recurso de simulação, usar o Signal Tap Logic Analyzer é a melhor maneira de depurar esses designs.

Para depurar qualquer design onde haja um kernel hang ou um problema relacionado à interface de memória ou falha no diagnóstico aocl, recomenda-se o uso do Analisador Lógico de Toque de Sinal.

Para saber mais sobre o Analisador de Lógica de Toque de Sinal, consulte a depuração de design com a seção Analisador lógico de toque de sinal no Guia do Usuário de Ferramentas de Depuração.

Execute as seguintes etapas para adicionar o arquivo Sinal De toque no design BSP

1. Abra a GUI de toque de sinal e adicione todos os sinais a serem analisados.

2. Salve o arquivo STP no mesmo diretório que o arquivo de projeto de software Intel® Quartus®.

3. Adicione as seguintes linhas de comando em seu flat.qsf:

  • set_global_assignment nome ENABLE_SIGNALTAP ON
  • set_global_assignment nome USE_SIGNALTAP_FILE <file_name>.stp
  • set_global_assignment nome SIGNALTAP_FILE <file_name>.stp

4. Recompilar o kernel da linha de comando AOCL.

Problemas conhecidos

5. Leitura e Treinamento Recomendados

Vídeos ™ OpenCL

Título

Descrição

Começando com OpenCL™ parte 1

Este vídeo descreve o procedimento fora da caixa para executar dois aplicativos, OpenCL™ HelloWorld e OpenCL™ transformação fourier rápida (FFT) no SoC V do Ciclone® usando uma máquina Windows*.

Começando com OpenCL™ parte 2

Este vídeo descreve o procedimento out-of-box para executar dois aplicativos, OpenCL™ HelloWorld e OpenCL™ FFT no Cyclone® V SoC usando uma máquina Windows*.

Começando com OpenCL parte 3

Este vídeo descreve o procedimento out-of-box para executar dois aplicativos, OpenCL™ HelloWorld e OpenCL™ FFT no Cyclone® V SoC usando uma máquina Windows*.

Começando com OpenCL Parte 4

Este vídeo descreve o procedimento out-of-box para executar dois aplicativos, OpenCL™ HelloWorld e OpenCL™ FFT no Cyclone® V SoC usando uma máquina Windows*.

Começando com OpenCL parte 5

Este vídeo descreve o procedimento out-of-box para executar dois aplicativos, OpenCL™ HelloWorld e OpenCL™ FFT no Cyclone® V SoC usando uma máquina Windows*.

Como empacotar módulos/projetos de verilog personalizados como bibliotecas ™ OpenCL

O vídeo discute por que os clientes poderiam potencialmente usar esse recurso para ter seus blocos de processamento personalizados (RTL) no código de kernel ™ OpenCL. O vídeo explica o exemplo de design, como os arquivos de make, arquivos de config e explica o fluxo de compilação. O vídeo também mostra uma demonstração do exemplo de design.

OpenCL™ no Intel FPGA SoC FPGA (Linux Host) – Parte 1 – Ferramentas De Download e Configuração

Este vídeo mostra como baixar, instalar e configurar as ferramentas necessárias para desenvolver os núcleos OpenCL™ e o código de host direcionados a FPGAs Intel FPGA SoC.

OpenCL™ no Intel FPGA SoC FPGA (Linux Host) – Parte 2 – Executando o exemplo de adulação vetorial com o Emulador

Este vídeo mostra como baixar e compilar um exemplo de aplicativo OpenCL™ direcionado ao emulador que está incorporado no Intel FPGA OpenCL™.

OpenCL™ no Intel FPGA SoC FPGA (Linux Host) – Parte 3 – Compilação de Código de Kernel e Host para SoC FPGA

Este vídeo mostra como compilar o código de kernel e host ™ OpenCL visando o FPGA e o processador do Cyclone® V SoC FPGA.

OpenCL™ no Intel FPGA SoC FPGA (Linux Host) – Parte 4 – Configuração do Ambiente Runtime

Este vídeo mostra como configurar a placa Cyclone® V SoC para executar o exemplo ™ OpenCL e executar o código do host e o kernel na placa.

6. Obter ajuda

Provedores de serviços certificados opencl

A Intel recomenda os seguintes provedores de serviços certificados que podem ajudar no desenvolvimento de um pacote de suporte de placas ™ OpenCL para placas Intel® FPGA. Esses provedores têm ampla experiência no desenvolvimento de pacotes de suporte à placa OpenCL de alta qualidade, drivers e migração de design para placas Intel FPGA:

Terasic Inc

OpenCL e o logotipo da OpenCL são marcas comerciais da Apple Inc. usadas por permissão da Khronos.

O conteúdo desta página é uma combinação de tradução humana e por computador do conteúdo original em inglês. Este conteúdo é fornecido para sua conveniência e apenas para informação geral, e não deve ser considerado completo ou exato. Se houver alguma contradição entre a versão em inglês desta página e a tradução, a versão em inglês prevalecerá e será a determinante. Exibir a versão em inglês desta página.