Acelera las cargas de trabajo de DSP con los motores Versal AI Engine
La clave para mejorar el rendimiento total del sistema
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.
La complejidad de este algoritmo 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.
Nuestra biblioteca de videos explicativos ofrece información técnica esencial para empezar.
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.
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.
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)
dsplib::fft::dit1ch::fft_ifft_dit_1ch
aie::vector<int8_t, sizeTileA> A0
aie::vector<int8_t, sizeTileA> A1
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);
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.
| Diseño | Opciones de simulación |
| Solo AI Engine | Simulador x86 (rápido) y simulador AIE (ciclo aproximado) |
| AI Engine + subsistema PL (PL codificado usando Vitis HLS) |
Simulación funcional de Vitis con MATLAB o Python |
| AI Engine + subsistema PL (PL codificado usando lenguaje HDL) |
Simulación funcional con banco de pruebas de lenguaje HDL utilizando Vivado™ XSIM |
| AI Engine + PL + PS | Emulación de hardware en Vitis PS simulado usando QEMU Simulación de PL utilizando XSIM (banco de pruebas de lenguaje HDL) AIE simulado usando un simulador de AIE (System C) |
Para obtener más información sobre los flujos de simulación, consulta: Guía de diseño de SoC adaptable Versal (UG1273)
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.
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).
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.