Libere a computação de DSP com os Versal™ AI Engines da AMD

A tecnologia Versal AI Engine possibilita processamento de sinal digital (DSP) de alto desempenho. 

Os clientes que trabalham em aplicativos de DSP de última geração exigem uma enorme capacidade dos recursos de computação que não é implementada de forma eficiente em arquiteturas FPGA tradicionais. Aplicativos de DSP com uso intensivo de computação (como FIR, FFT e General Matrix Multiply) podem usar quantidades significativas de blocos de DSP e recursos lógicos programáveis.

Essa complexidade do algoritmo pode reduzir significativamente a capacidade computacional geral disponível em dispositivos lógicos programáveis tradicionais. Apenas aumentar os blocos de DSP e a lógica programável disponível não é uma solução dimensionável para cargas de trabalho intensivas de DSP, que têm orçamentos de energia rigorosos. Os Versal AI Engines foram projetados para fornecer uma solução de computação mais eficiente nesses casos. 

Nossa biblioteca de tutoriais em vídeo oferece informações técnicas essenciais para começar.

Processo de projeto AI Engine para DSP

O projeto de funções de DSP de alto desempenho que visam os AMD Versal™ AI Engines pode ser feito usando as ferramentas de desenvolvimento AMD Vitis™ ou o fluxo do Vitis Model Composer, aproveitando a simulação e os recursos gráficos da ferramenta MathWorks Simulink®. 

De qualquer forma, o mapeamento do aplicativo de DSP em funções para implementação na FPGA ou mecanismos de IA ou uma combinação de lógica de FPGA e mecanismos de IA é essencial. Isso requer uma compreensão das capacidades do dispositivo, bem como do sistema geral. 

Normalmente, as funções com uso intenso de computação são mais adequadas para a implementação do mecanismo de IA, enquanto as funções que exigem movimentação/reorganização de dados são mais adequadas para uma implementação da FPGA. 

No exemplo mostrado abaixo, a filtragem complexa e as transformações de Fourier geralmente são mais adequadas dentro da matriz do mecanismo de IA.

AMD Vitis AI Engine array chart

Depois que as funções forem claramente identificadas como mecanismo de IA apropriado, elas poderão ser implementadas no mecanismo de IA usando qualquer uma das opções abaixo.

Nota: uma abordagem híbrida usando várias opções da lista abaixo também é possível. 

Ambientes de programação

A plataforma Vitis oferece dois ambientes de programação, aproveitando bibliotecas de DSP, APIs e intrínsecos 

Desenvolva em C/C++

A plataforma Vitis tem blocos de construção de código aberto para algoritmos de DSP comuns, funções e gráficos de dispositivos. Use-os como estão para testes rápidos ou personalize-os de acordo com suas necessidades.

Fluxo de C/C++

Para começar com mecanismos de IA para DSP, é altamente recomendável começar com as funções da biblioteca Vitis DSP (baseadas em C). Embora a codificação manual possa resultar em uma implementação mais otimizada, o uso dos métodos abaixo é a maneira mais rápida de começar a usar os mecanismos de IA para DSP e, ao mesmo tempo, oferecer um desempenho forte. (Uma abordagem híbrida usando várias opções da lista abaixo também é possível)

Opção 1
Chamada de função da biblioteca de DSP do Vitis


dsplib::fft::dit1ch::fft_ifft_dit_1ch
 

  • Mais fácil de usar
  • Parametrizável
  • Desenvolvimento mais rápido
Opção 2
Programação vetorizada com APIs do mecanismo de IA

aie::vector<int8_t, sizeTileA> A0 

aie::vector<int8_t, sizeTileA> A1
 

  • Personalizável
  • Desenvolvimento mais acelerado
Opção 3
Programação vetorizada com intrínsecos

Acc0 = mac16(acc0, Bbuff, 0, 0x00000000, 8, 0x3120, Abuff0, 0, 0xCC884400, 2, 0x3210);​

Acc0 = mac16(acc0, Bbuff, 32, 0x00000000, 8, 0x3120, Abuff0, 0, 0xCC884400, 2, 0x3210); 
 

  • Personalização completo de baixo nível 
  • Desenvolvimento mais longo

Diferentes funções do mecanismo de IA são interconectadas usando o grafo C, que é um código C++ que descreve uma rede de vários blocos do mecanismo de IA.  

Etapas de simulação e verificação

Projeto Opções de simulação
Somente mecanismo de IA Simulador X86 (Rápido) e Simulador AIE (Ciclo aproximado)
Mecanismo de IA + Subsistema de PL
(código PL usando Vitis HLS)
Simulação funcional do Vitis com MATLAB ou Python
Mecanismo de IA + Subsistema de PL
(Código PL usando HDL)
Simulação funcional com testbench HDL usando Vivado XSIM™
Mecanismo de IA + PL + PS Emulação de hardware no Vitis
Simulação de PS usando QEMU
Simulação de PL usando XSIM (test bench HDL)
AIE simulado usando o simulador AIE (Sistema C)

Para obter mais informações sobre Fluxos de simulação, consulte: Guia de projeto SoC adaptativo Versal (UG1273)

Fluxo baseado em modelo com o Vitis Model Composer

O compositor traz o desenvolvimento para o ambiente MathWorks MATLAB®/Simulink®, onde você pode gerar kernels para Versal AI Engines, integrar módulos de lógica programável e simular sistemas.

Fluxo do Vitis Model Composer

O uso do Vitis Model Composer permite uma interconexão gráfica entre as diferentes funções do mecanismo de IA. Essa representação gráfica pode ser convertida em um botão no código em C do grafo pelo Vitis Model Composer. As capacidades robustas de simulação do ambiente MathWorks Simulink também podem ser aproveitadas para verificar o projeto.

Para saber mais sobre o desenvolvimento do Versal AI Engine usando o Vitis Model Composer, visite a página Desenvolvimento do Versal AI Engine usando o Vitis Model Composer.

Tutoriais e exemplos de projeto do Vitis GitHub

Implementação de projeto no AMD Vitis

Aproveite o AMD GitHub para exemplos de projetos otimizados, tutoriais e funções de biblioteca para mecanismos de IA em aplicativos de DSP de alto desempenho. Esses são projetos de código aberto que podem ser aproveitados para acelerar os ciclos de projeto.

Links do GitHub

Recursos

Tutoriais em vídeo

Webinars

Dominando o desenvolvimento de mecanismos de IA em dispositivos AMD Versal: Dos fundamentos aos aplicativos avançados

Transfira a classificação de vários sinais (MUSIC) para os Versal Al Engines

Começar

Licenciamento das ferramentas do AI Engine: Compilador e simulador

Embora as ferramentas compilador e simulador do AI Engine façam parte do instalador de software do AMD Vitis™, essas ferramentas ainda exigem uma licença gratuita para uso. Você pode obter essa licença no Site de licenciamento de produtos.

Insira seus detalhes e escolha a opção "Licença de ferramentas do AI Engine".

Acesse avaliações de desempenho comparando os Versal AI Engines com a tecnologia de lógica programável anterior

Para comparações de avaliações de desempenho ponto a ponto de projetos somente de lógica programável com um projeto de SoC adaptativo com mecanismo de IA usando SoCs adaptativos AMD Versal, entre em contato com a equipe de vendas ou com seu engenheiro de aplicação de campo para obter resultados de referência e projetos de origem.

Notas de rodapé
  1. Baseado em testes de avaliações de desempenho de terceiros encomendados pela AMD em fevereiro de 2024, no SoC adaptativo AMD Versal com Vitis para ferramentas de design de IA versus lógica programável tradicional com software Vivado e ferramenta Vitis Model Composer, versão 2023.1 em uma implementação de FIR de aplicativo de processamento de sinal. Média de resultados com base em três projetos. Os resultados variam, dependendo das especificações do projeto. (VER-034)