Vitis™ 求解器库具有性能优化的矩阵分解、线性/特征值求解器等。 它们可用于设计 RADAR、LiDAR、计算机视觉和数学金融等各种应用中的加速算法。
Vitis 求解器库内核可用作独立加速器,可由嵌入式/主机 CPU 代码调用。 它还可以与其他 Vitis 库内核和原语结合使用,以加速端到端处理流水线。
当前可用的主要加速功能包括 SVD(奇异值分解)、QR & LU (lower-upper) 分解、矩阵求逆、三角求解器和特征值分解。
Vitis Solver 库目前包含对密集矩阵的以下操作:
矩阵分解
线性求解器
特征值求解器
Vitis Solver 库主要面向 Vitis 内核开发人员,可帮助他们加速应用开发。该库提供两层 API,即 L1 和 L2。L1 和 L2 函数均已列入下表。
Vitis Solver 库 2022.2 版增加了两个新的 AI 引擎功能:QR 分解和 Cholesky 分解。
求解器库函数 | |
---|---|
L1 | 正交旋转 (QR) 分解 |
QR_Inverse | |
奇异值分解 (SVD) | |
Cholesky_Inverse | |
Cholesky 分解 | |
AIE 的 QR 分解 | |
AIE 的 Cholesky 分解 | |
L2 | 矩阵分解 |
特征值求解器 | |
线性求解器 |
L1 和 L2 API 的特性如下文所述。
L1 API | 矩阵分解函数。设计为支持内存接口(指向 BRAM 或 URAM)的 HLS 组件。这些 API 支持各种数据类型,包括 float、double 或 complex。由于 L1 API 需要在内存中准备好所有输入数据,因此它们确实有输入矩阵总量的上限。 |
---|---|
L2 API | 在 FPGA 器件上运行的内核。这些 API 支持双精度浮点类型。它们不仅可通过读取 DDR/HBM 获得输入,而且还可通过写入 DDR/HBM 输出结果。它们可从主机端调用。 |
Vitis Solver 库可组织成 L1 及 L2 文件夹,每个文件夹都与应用开发的不同阶段有关。
L1:L1 中的 Makefiles 和源代码有助于快速检查基于 HLS 的流程。
L2:L2 中的 Makefiles 和源代码有助于使用在 OpenCL™/XRT 框架(针对一个器件)中写入的主机代码,从内核的各种来源(HDL、HLS 或 XO 文件)构建 XCLBIN 文件。