- 概观
- 开始体验
概观
AMD Vitis™ 求解器库提供一系列性能优化的矩阵分解、线性/特征值求解器以及其他函数,这些函数可用于设计 RADAR、LiDAR、计算机视觉、计算金融等各种应用中的加速算法。
Vitis 求解器库内核可用作独立加速器,您可在嵌入式/主机 CPU 代码中调用这些加速器,也可以将其与其他 Vitis 库内核和原语结合使用,以加速端到端处理流水线。
当前可用的主要加速功能包括奇异值分解 (SVD)、QR 和 LU (lower-upper) 分解、矩阵求逆、三角求解器和特征值分解等。
功能
目前,Vitis 求解器库包含对密集矩阵进行以下运算:
矩阵分解
- 对称正定矩阵的 Cholesky 分解
- 无轴转及有部分轴转的 LU 分解
- 一般矩阵的 QR 分解
- 对称矩阵及非对称矩阵的奇异值分解 (SVD)(Jacobi 法)
线性求解器
- 三对角线线性求解器(平行循环约化法)
- 三角矩阵的线性求解器
- 对称及非对称矩阵的线性求解器
- 对称及非对称矩阵的逆矩阵
特征值求解器
- 对称矩阵的 Jacobi 特征值求解器
可编程逻辑 (PL) 和 AI 引擎 (AIE) 阵列函数列表
Vitis 求解器库主要面向 Vitis 内核开发者,可帮助他们加速应用开发。该库提供两层 API,即 L1 和 L2。L1 和 L2 函数均已列入下表。
Vitis 求解器 库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 求解器库分为 L1 及 L2 文件夹,每个文件夹都与应用开发的不同阶段有关。
L1:L1 中的 Makefile 和源代码有助于快速检查基于 HLS 的流程。
L2:L2 中的 Makefile 和源代码有助于使用在针对器件的 OpenCL™/Vitis 运行时库框架中写入的主机代码,从内核的各种来源(HDL、HLS 或 XO 文件)构建 XCLBIN 文件。
