Potencia el procesamiento de DSP con los motores AMD Versal™ AI Engine

La tecnología Versal AI Engine permite cumplir con los requisitos del procesamiento de señales digitales (DSP) de alto rendimiento.

Los clientes que trabajan en aplicaciones de DSP (Digital Signal Processing, procesamiento de señales digitales) de última generación requieren enormes capacidades de procesamiento que no se implementan de forma eficiente en las arquitecturas de FPGA (Field-Programmable Gate Arrays, matriz de puertas lógicas programable en campo) tradicionales. Las aplicaciones de DSP con uso intensivo de procesamiento, como FIR (finite impulse response, respuesta finita al impulso), FFT y multiplicación matricial general, pueden utilizar cantidades significativas de bloques de DSP y recursos lógicos programables.

Este requisito puede reducir considerablemente la capacidad de procesamiento general disponible en los dispositivos lógicos programables tradicionales. Simplemente aumentar los bloques de DSP y la lógica programable disponible no es una solución escalable para cargas de trabajo de DSP intensivas, que tienen presupuestos de potencia estrictos.

Los motores Versal AI Engine están diseñados para ofrecer una solución de procesamiento más eficiente en estos casos.

Obtén más información sobre Versal AI Engines

Aumenta el procesamiento y utiliza menos potencia

Revoluciona tus diseños de DSP y maximiza el rendimiento.

¿Sabías que puedes desbloquear la eficiencia y la escalabilidad para satisfacer las crecientes demandas de las aplicaciones de DSP de alto rendimiento y última generación? Descubre cinco formas en las que los motores AMD Versal AI Engine pueden mejorar tus diseños de DSP.

Proceso de diseño de DSP con motores de IA

El diseño de funciones de DSP de alto rendimiento enfocadas en los motores AMD Versal™ AI Engine se puede realizar mediante las herramientas de desarrollo AMD Vitis™ o el flujo de Vitis Model Composer, a fin de aprovechar las capacidades gráficas y de simulación de la herramienta MathWorks Simulink®. 

En cualquier caso, es crucial asignar la aplicación de DSP en funciones para la implementación en los motores de FPGA o IA o una combinación de la lógica de FPGA y los motores de IA. Esto requiere comprender las capacidades del dispositivo, así como del sistema en general. 

Por lo general, las funciones de procesamiento intensivo se adaptan mejor a la implementación en motores de IA, mientras que las funciones que requieren movimiento/reordenamiento de datos se adaptan mejor a la implementación en FPGA. 

En el ejemplo que se muestra a continuación, el filtrado complejo y las transformadas de Fourier suelen ser más adecuadas dentro de la matriz de motor de IA.

Zoom de imagen
AMD Vitis AI Engine array chart

Una vez que las funciones se identifican claramente como apropiadas para el motor de IA, se pueden implementar en él utilizando cualquiera de las siguientes opciones.

Nota: Un enfoque híbrido en el que se utilicen múltiples opciones de la siguiente lista también es posible. 

Entornos de programación

La plataforma Vitis ofrece dos entornos de programación, que utilizan bibliotecas DSP, API e intrínsecos 

Desarrollar en C/C++

La plataforma Vitis tiene bases de código abierto para algoritmos DSP comunes, funciones y gráficos de dispositivos. Empléalas tal como están para pruebas rápidas o personalízalas según tus necesidades.

Flujo C/C++

Al comenzar con AI Engines para DSP, es muy recomendable iniciar con las funciones de Vitis DSP Library (basadas en C). Si bien la codificación manual puede producir una implementación más optimizada, el uso de los siguientes métodos es la forma más rápida de comenzar con AI Engines para DSP, ya que también ofrece un rendimiento confiable. (Un enfoque híbrido en el que se utilicen múltiples opciones de la siguiente lista también es posible)

Opción 1
Llamada de función de Vitis DSP Library


dsplib::fft::dit1ch::fft_ifft_dit_1ch
 

  • La más fácil de usar de todas
  • Parametrizable
  • Desarrollo más rápido de todos
Opción 2
Programación vectorizada con API de motor de IA

aie::vector<int8_t, sizeTileA> A0 

aie::vector<int8_t, sizeTileA> A1
 

  • Personalizable
  • Desarrollo más rápido
Opción 3
Programación vectorizada con intrínsecas

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); 
 

  • Personalización completa de bajo nivel 
  • Desarrollo más lento

Las diferentes funciones del motor de IA se interconectan utilizando el código gráfico de C, que es el código de C++ que describe una red de múltiples mosaicos de motor de IA.  

Flujo basado en modelos con Vitis Model Composer

El compositor lleva el desarrollo al entorno MATLAB®/Simulink® de MathWorks, en que puedes generar kernels para motores de IA Versal, integrar módulos lógicos programables y simular sistemas.

Flujo de Vitis Model Composer

El uso de Vitis Model Composer permite una interconexión gráfica entre las diferentes funciones del motor de IA. Esta representación gráfica se puede convertir mediante un botón pulsador en el código gráfico de C mediante Vitis Model Composer. La sólida compatibilidad de simulación del entorno de Simulink de MathWorks también se puede aprovechar para verificar el diseño.

Para obtener más información sobre el desarrollo de Versal AI Engine usando Vitis Model Composer, visita la página Desarrollo de Versal AI Engine usando Vitis Model Composer.

Licencias para las herramientas de motor de IA

Compilador y simulador

Si bien el compilador y las herramientas de simulador de AI Engine forman parte del instalador de software de AMD Vitis™, estas herramientas aún requieren una licencia gratuita para su uso. Esta licencia se puede obtener en el sitio de licencias de productos.

Ingresa tus datos y elige la opción “AI Engine Tools License” (Licencia para herramientas de motor de IA).

Ejemplos y tutoriales de diseño de Vitis GitHub

Usa el GitHub de AMD para obtener ejemplos de diseño optimizados, tutoriales y funciones de biblioteca para AI Engines en aplicaciones DSP de alto rendimiento.

Estos son diseños de código abierto que se pueden usar para acelerar los ciclos de diseño.

Los recursos más populares de GitHub para comenzar con el desarrollo de AI Engine son los siguientes:

Estos son algunos de los tutoriales de diseño y funciones más populares:

También están disponibles el diseño específico de AIE o AIE-ML de hardware y tutoriales de funciones en GitHub.

Destacado: Diseño de canalizador polifásico para motores de IA

El canalizador polifásico convierte simultáneamente un conjunto de canales de multiplexación por división de frecuencia (FDM) transportados en un solo stream de datos utilizando un enfoque eficiente basado en el procesamiento de señales digitales. El uso del canalizador es omnipresente en muchos sistemas de comunicación inalámbrica, de radar, aeroespaciales/de defensa y de procesamiento de imágenes médicas. En este tutorial, implementamos dos diseños de canalizadores diferentes utilizando una combinación de recursos de motor de IA y lógica programable (PL) en dispositivos de SoC adaptable de AMD Versal™. 

Accede a las evaluaciones comparativas en las que se contrastan los motores Versal AI Engine con la tecnología de lógica programable anterior

Para ver contrastes directos de evaluaciones comparativas de diseños de solo lógica programable con un diseño de SoC adaptable + motor de IA usando los SoC adaptables AMD Versal, comunícate con ventas o con tu FAE (Field Application Engineer, ingeniero de aplicaciones de campo) para obtener los resultados de las evaluaciones comparativas y los diseños fuente.

Recursos

Flujo de diseño de AMD Versal AI Engine

Webinars