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

A tecnologia Versal AI Engine possibilita requisitos de 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.

Esse requisito pode reduzir significativamente a capacidade de computação 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.

Saiba mais sobre os Versal AI Engines

Acelere as cargas de trabalho de DSP com os Versal AI Engines

A chave para melhorar o desempenho total do sistema

Colocar as cargas de trabalho onde elas são executadas com eficiência, na lógica programável ou nos Versal AI Engines, pode fazer toda a diferença na eficiência de energia e no desempenho geral. Veja por que os Versal AI Engines são excelentes para aplicativos de DSP de alto desempenho. 

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.

Ampliar imagem
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.  

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.

Licenciando as 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".

Tutoriais e exemplos de projeto do Vitis GitHub

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.

Os recursos mais populares do GitHub para começar com o desenvolvimento do mecanismo de IA são:

Também estão disponíveis tutoriais de projeto e recursos específicos de hardware AIE ou AIE-ML no GitHub.

Destaque: Projeto de canalizador polifásico para mecanismos de IA

O canalizador polifásico converte simultaneamente um conjunto de multiplexação por divisão de frequência (FDM) transportado em um único fluxo de dados usando uma abordagem eficiente baseada no processamento de sinal digital. O uso do canalizador é onipresente em muitos sistemas de comunicação sem fio, radar, aeroespacial/defesa e imagens médicas. Neste tutorial, implementamos dois projetos de canalizador diferentes usando uma combinação de recursos de mecanismo de IA e lógica programável (PL) em dispositivos SoC adaptativo AMD Versal™. 

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.

Recursos

Fluxo de projeto do AMD Versal AI Engine

Webinars