Descripción general

AMD Vitis™ Solver Library ofrece una colección de descomposición de matriz optimizada para el rendimiento, solucionadores de valores lineales/propios y otras funciones que se pueden utilizar a fin de diseñar algoritmos acelerados para RADAR, LiDAR, visión artificial, finanzas informáticas y otras aplicaciones.

Los kernels de Vitis Solver Library pueden utilizarse como aceleradores independientes a los que puedes llamar en tu código de CPU integrado/host o combinar con otros kernels y primitivas de la biblioteca de Vitis para acelerar la canalización de procesamiento de extremo a extremo.

Algunas de las funciones aceleradas clave disponibles actualmente incluyen SVD (Singular Value Decomposition, descomposición en valores singulares), descomposición QR y LU (inferior-superior), matriz inversa, solucionadores de triángulos, descomposición en valores propios y entre otras.

Funciones

Actualmente, la biblioteca de Vitis Solver incluye las siguientes operaciones para matrices densas:

Descomposición matricial

  • Descomposición de Cholesky para matrices simétricas y definidas positivas
  • Descomposición LU sin pivoteo y con pivoteo parcial
  • Descomposición QR para matrices generales
  • SVD (descomposición en valores singulares) para matrices simétricas y asimétricas (método Jacobi)

Solucionador lineal

  • Solucionador lineal tridiagonal (método de reducción cíclica paralela)
  • Solucionador lineal para matrices triangulares
  • Solucionador lineal para matrices simétricas y asimétricas
  • Matriz inversa para matrices simétricas y asimétricas

Solucionador de valores propios

  • Solucionador de valores propios de Jacobi para matrices simétricas

Lista de funciones de AIE (AI Engine) y lógica programable (PL)

La biblioteca de Vitis Solver está dirigida a los desarrolladores de kernels de Vitis para ayudar a acelerar el desarrollo de sus aplicaciones. La biblioteca proporciona dos capas de API, a saber, L1 y L2. Las funciones de L1 y L2 se enumeran en la tabla siguiente.

En la versión 2022.2 de la biblioteca de Vitis Solver, se agregaron dos nuevas funciones de AI Engine: Descomposición QR y descomposición de Cholesky.

Funciones de Solver Library
L1 Descomposición QR (Quadrature Rotation, rotación en cuadratura)
QR_inversa
SVD (descomposición en valores singulares)
Cholesky_inversa
Descomposición de Cholesky
Descomposición QR para AIE
Descomposición de Cholesky para AIE
 
L2 Descomposición matricial
Solucionador de valores propios
Solucionador lineal
Las funciones de las API de L1 y L2 se describen a continuación
API de L1 Funciones para la descomposición matricial. Diseñadas como componentes HLS con interfaces de memoria (apuntando a BRAM o URAM). Estas API admiten una variedad de tipos de datos, incluidos flotantes, dobles o complejos. Dado que las API de L1 necesitan todos los datos de entrada listos en la memoria, tienen un límite superior para el tamaño total de la matriz de entrada.
API de L2 Kernels que se ejecutan en los dispositivos FPGA. Estas API son compatibles con datos de punto flotante de doble precisión. Leen en DDR/HBM a fin de obtener datos de entrada y escriben en DDR/HBM para enviar resultados. Se pueden llamar desde el extremo del host.

Organización

La biblioteca de Vitis Solver está organizada en carpetas L1 y L2, cada una relacionada con una etapa diferente del desarrollo de aplicaciones.

L1: los archivos Make y las fuentes en L1 facilitan un flujo basado en HLS para comprobaciones rápidas.

L2: los archivos Make y las fuentes en L2 facilitan la creación del archivo XCLBIN a partir de varias fuentes (archivos HDL, HLS o XO) de kernels con el código host escrito en un marco de trabajo de OpenCL™/Vitis Runtime Library orientado a un dispositivo. 

AMD Vitis Solver Library Directories Diagram

Recursos