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 文件。