- Descripción general
- Introducción
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.
