Desenvolvendo workloads FPGA com o Open FPGA Stack
Sumário
- Introdução
- Entendendo o Open FPG Stack (OFS)
- Benefícios do uso do OFS
- Fluxo de desenvolvimento tradicional de FPGAs
- Redução do tempo de desenvolvimento com o OFS
- Arquitetura do OFS para desenvolvimento de workloads
- Opções de design do OFS (estático vs. PR enabled)
- Recursos e ferramentas oferecidas pelo OFS
- Fluxo de desenvolvimento de workloads com o OFS
- Avaliação do OFS e desenvolvimento de workloads
Introdução
Neste artigo, discutiremos o uso do framework Open FPG Stack (OFS) como ponto de partida para o design de workloads baseados em FPGA da família Agilex. Veremos como o OFS pode reduzir o tempo de desenvolvimento e facilitar a criação de workloads personalizados. Além disso, exploraremos a arquitetura do OFS, suas opções de design e as ferramentas disponíveis para os desenvolvedores. Se você está interessado em acelerar seu processo de desenvolvimento de workloads FPGA, este artigo fornecerá informações valiosas sobre o uso do OFS.
Entendendo o Open FPG Stack (OFS)
Antes de entrarmos em detalhes sobre como o OFS pode acelerar o desenvolvimento de workloads FPGA, é importante entendermos o que é exatamente o OFS. O OFS é uma infraestrutura de software e hardware que facilita o uso de placas de desenvolvimento da Intel para criar plataformas personalizadas ou workloads baseados em FPGA.
OFS oferece designs de referência e scripts de compilação automatizados para a construção de plataformas FPGA. Os drivers Linux Upstream fornecem suporte nativo ao sistema operacional, eliminando a necessidade de patches. Além disso, o OFS inclui ferramentas de espaço do usuário e um kit de desenvolvimento de software que permitem uma personalização ainda maior.
O código-fonte do OFS é modular e usa interfaces padrão do setor, o que torna a criação de soluções específicas para aplicativos muito mais fácil. Todos os designs de hardware, código de software e documentos técnicos são de código aberto e acessíveis por meio do GitHub.
Benefícios do uso do OFS
Ao usar o OFS como base para o desenvolvimento de workloads FPGA, os desenvolvedores e engenheiros podem desfrutar de uma série de benefícios significativos. Vejamos alguns deles:
Redução do tempo de desenvolvimento
O desenvolvimento de FPGAs geralmente envolve aspectos de hardware e software, o que pode consumir muito tempo. Com o OFS, no entanto, um design de referência otimizado em termos de tempo de roteamento e desempenho é fornecido desde o início. Isso ajuda a reduzir o tempo necessário para levar uma solução ao mercado.
Reutilização de design
OFS oferece designs padronizados de shells e regiões, o que permite a reutilização de workloads em várias plataformas OFS. Isso significa que os desenvolvedores podem portar facilmente seus workloads para diferentes designs de shells, economizando tempo e esforço.
Personalização de software
Com o OFS, os desenvolvedores têm acesso a um conjunto completo de ferramentas de software para personalização adicional. O código-fonte modular e as interfaces padrão do setor tornam mais fácil desenvolver drivers personalizados, gerenciar a pilha de software e implementar recursos de virtualização e orquestração.
Em suma, o uso do OFS oferece benefícios significativos tanto para o desenvolvimento de hardware quanto de software. A próxima seção explorará o fluxo de desenvolvimento tradicional de FPGAs e como o OFS pode ajudar a reduzir o tempo necessário para criar workloads personalizados.
Fluxo de desenvolvimento tradicional de FPGAs
Antes de entendermos como o OFS pode acelerar o desenvolvimento de workloads FPGA, é importante revisarmos brevemente o fluxo de desenvolvimento tradicional de FPGAs. Esse entendimento nos ajudará a apreciar melhor as vantagens oferecidas pelo OFS.
O desenvolvimento de FPGAs envolve aspectos de hardware e software. Após definir os requisitos de design, como desempenho, consumo de energia e interfaces, os desenvolvedores passam uma quantidade considerável de tempo no desenvolvimento de hardware e software. Depois de criar o design inicial, é necessário realizar iterações de compilação e verificação para alcançar um roteamento, temporização e desempenho ideais.
No lado do software, pode ser necessário desenvolver novos drivers, corrigir drivers existentes e gerenciar outros aspectos da pilha de software, como virtualização e orquestração. Todo esse processo pode levar de 9 a 12 meses, tornando o desenvolvimento de FPGAs uma tarefa demorada.
Redução do tempo de desenvolvimento com o OFS
É aqui que o OFS entra em jogo. Ao fornecer um design de referência otimizado e um conjunto completo de ferramentas de software, o OFS ajuda a reduzir significativamente o tempo necessário para desenvolver workloads FPGA personalizados.
O design de referência fornecido pelo OFS é projetado levando em consideração a otimização de tempo de roteamento e desempenho, o que significa que os desenvolvedores não precisam começar do zero. Isso economiza um tempo valioso que normalmente seria gasto no desenvolvimento inicial do design.
Além disso, o OFS oferece um conjunto abrangente de ferramentas de software que permitem que os desenvolvedores personalizem ainda mais suas soluções. Os drivers Linux upstream fornecem suporte nativo ao sistema operacional, enquanto as ferramentas de espaço do usuário e o kit de desenvolvimento de software permitem que os desenvolvedores personalizem a pilha de software de acordo com suas necessidades específicas.
No próximo tóPico, exploraremos a arquitetura do OFS em relação ao desenvolvimento de workloads.
Arquitetura do OFS para desenvolvimento de workloads
O OFS possui uma arquitetura bem definida que facilita o desenvolvimento de workloads personalizados. Vamos dar uma olhada no mapa da arquitetura do OFS:
Fam (FPGA Adapter Module) ou Shell Region
A região Fam, também conhecida como shell, oferece uma coleção de interfaces de E/S temporais integradas, como PCIe, Ethernet, Memória, debug e controladores QSFP. Essas interfaces são comumente usadas em aplicações e proporcionam uma base sólida para o desenvolvimento de workloads.
A Veu (Application Workload Interface) Region
A região A Veu é onde os desenvolvedores constroem seus workloads, que podem ser portados para outros designs de shells OFS. Essa flexibilidade permite a reutilização eficiente de workloads em várias plataformas OFS.
Platform Interface Modules (PIMs)
Os módulos de interface de plataforma são usados para converter interfaces de streaming padrão em protocolos mapeados em memória para comunicação com os IPs do workload. Isso garante que a interface padrão seja compatível com o trabalho que está sendo desenvolvido.
A arquitetura do OFS foi projetada de forma flexível, permitindo que os desenvolvedores escolham entre um fluxo de design RTO (Release to Ownership) ou um fluxo baseado em API. Essa flexibilidade atende às necessidades de diferentes projetos e permite que os desenvolvedores escolham o fluxo que melhor se adapta a seus requisitos específicos.
Opções de design do OFS (estático vs. PR enabled)
Ao projetar um workload usando o OFS, os desenvolvedores podem escolher entre duas opções de design: estática ou PR enabled. Vamos explorar essas opções em mais detalhes:
Design estático
Um design estático é geralmente escolhido quando não se espera atualizar ou trocar workloads quando o sistema está em operação. Nesse caso, o design é compilado e carregado no FPGA, permanecendo assim até que uma nova compilação seja feita e o novo design seja carregado.
Design PR enabled
Um design PR enabled (Partial Reconfiguration enabled) oferece a capacidade de trocar workloads quando o sistema está em operação. Isso significa que é possível atualizar uma parte específica do workload sem a necessidade de reconfigurar todo o FPGA. Essa capacidade de reconfiguração parcial pode ser extremamente útil em cenários onde a atualização remota de workloads é necessária.
As opções de design do OFS fornecem maior flexibilidade aos desenvolvedores e permitem que eles se adaptem às necessidades específicas de seus projetos.
Recursos e ferramentas oferecidas pelo OFS
O OFS oferece uma variedade de recursos e ferramentas para facilitar o desenvolvimento de workloads ou AFUs (Application Functions Units). Vamos dar uma olhada em algumas das principais ferramentas disponíveis:
Scripts de compilação automatizados
O OFS fornece scripts de compilação automatizados que simplificam o processo de compilação do seu workload. Esses scripts cuidam de todos os detalhes técnicos e garantem que seu workload seja compilado corretamente.
Exemplos de workloads
OFS também inclui exemplos de workloads, que ajudam os desenvolvedores a entender as diferentes funcionalidades da fam e da pilha de software. Esses exemplos são um ponto de partida útil para aqueles que estão começando a desenvolver workloads com o OFS.
Ferramentas de simulação
OFS oferece suporte a simulação de workloads usando os simulators VCS e Questa da Synopsys. Essas ferramentas ajudam os desenvolvedores a testar e depurar seus workloads em um ambiente controlado.
Kit de desenvolvimento de software OFS
O kit de desenvolvimento de software OFS permite que os desenvolvedores realizem a co-simulação de hardware e software. Essa é uma ferramenta poderosa que simplifica o processo de desenvolvimento de workloads e ajuda a identificar e corrigir problemas mais rapidamente.
Capacidade de sinal remoto
OFS também oferece a capacidade de depuração em chip com a função Remote Signal Tap. Essa ferramenta captura e exibe sinais dentro do FPGA, ajudando os desenvolvedores a entender o comportamento interno do trabalho.
Essas são apenas algumas das ferramentas e recursos oferecidos pelo OFS. Tudo isso permite que os desenvolvedores criem workloads com mais eficiência e agilidade.
Fluxo de desenvolvimento de workloads com o OFS
Agora que entendemos a arquitetura do OFS e as ferramentas disponíveis, vamos explorar o fluxo de desenvolvimento de workloads usando o OFS. O processo de desenvolvimento de workloads com o OFS geralmente segue seis etapas gerais:
-
Configuração inicial: Nesta etapa, você configura seu cartão ou servidor e instala os componentes necessários, como o sistema operacional compatível, o kernel, o Intel® Quartus Prime Pro Software e os repositórios OFS.
-
Construção do design: Agora você pode construir seu design de FPGA ou aproveitar um design preexistente para o desenvolvimento de seu workload. O OFS fornece códigos-fonte e scripts de construção para facilitar esse processo.
-
Verificação básica do workload: Após construir o AFU (Application Function Unit), você pode utilizar o ambiente de simulação para verificar se a funcionalidade básica do workload está funcionando corretamente.
-
Teste de sistema: Caso ocorra algum erro durante a verificação anterior, é possível realizar testes de sistema usando a função Remote Signal Tap para analisar e solucionar problemas.
-
Desenvolvimento de workloads personalizados: Após familiarizar-se com o processo de desenvolvimento de workloads usando o OFS, você pode começar a trabalhar em seu próprio design personalizado. Utilize os recursos e ferramentas disponíveis para desenvolver um workload que atenda às suas necessidades específicas.
-
Avaliação e otimização: Após concluir o desenvolvimento do seu workload, é importante avaliar e otimizar seu desempenho. Isso pode ser feito por meio de testes de benchmark, ajustes de configuração e otimização de código.
Avaliação do OFS e desenvolvimento de workloads
Se você está interessado em explorar o OFS e desenvolver seus próprios workloads FPGA, a Intel oferece um fluxo de avaliação do OFS pronto para uso. Esse fluxo permite que você teste e avalie o software e o hardware fornecidos pelo OFS.
Além disso, a Intel fornece exemplos de workloads e scripts de construção para ajudar você a se familiarizar com o processo de desenvolvimento de workloads usando o OFS. Você pode testar esses exemplos em plataformas de desenvolvimento de aceleração da Intel ou em placas de fornecedores de terceiros.
Para mais informações sobre o fluxo de avaliação do OFS e o desenvolvimento de workloads com OFS, sugerimos que você consulte os módulos subsequentes que complementam esta apresentação. Esses módulos fornecerão informações mais detalhadas que podem ajudar você em seu processo de desenvolvimento.
Conclusão
Neste artigo, discutimos o uso do Open FPG Stack (OFS) como uma maneira de acelerar o desenvolvimento de workloads FPGA. Vimos como o OFS oferece vantagens significativas, como a redução do tempo de desenvolvimento e a reutilização de designs. Exploramos a arquitetura do OFS, as opções de design disponíveis e as ferramentas oferecidas pelo OFS. Também discutimos o fluxo de desenvolvimento de workloads com OFS e a importância de avaliar o OFS antes de iniciar seu próprio desenvolvimento de workloads.
Se você está interessado em desenvolver workloads FPGA com mais eficiência, o OFS é uma ótima opção a ser considerada. Com seu conjunto completo de recursos e ferramentas, o OFS ajudará você a acelerar seu processo de desenvolvimento e economizar tempo e esforço. Comece a explorar o OFS hoje mesmo e aproveite todos os benefícios que ele tem a oferecer.
Recursos: