概述
tools_and_services_tile_graphic

Vitis™ 求解器庫具有性能優化的矩陣分解、線性/特征值求解器等。 它們可用於設計 RADAR、LiDAR、計算機視覺和數學金融等各種應用中的加速算法。

Vitis 求解器庫內核可用作獨立加速器,可由嵌入式/主機 CPU 代碼調用。 它還可以與其他 Vitis 庫內核和原語結合使用,以加速端到端處理流水線。

當前可用的主要加速功能包括 SVD(奇異值分解)、QR & LU (lower-upper) 分解、矩陣求逆、三角求解器和特征值分解。


Vitis 求解器庫 – 特性

Vitis Solver 庫目前包含對密集矩陣的以下操作:

矩陣分解

  • 對稱正定矩陣的 Cholesky 分解
  • 無軸轉及有部分軸轉的 LU 分解
  • 一般矩陣的 QR 分解
  • 對稱矩陣及非對稱矩陣的奇異值分解 (SVD)(Jacobi 法)

線性求解器

  • 三對角線矩陣線性求解器(平行循環約化法)
  • 三角矩陣的線性求解器
  • 對稱及非對稱矩陣的線性求解器
  • 對稱及非對稱矩陣的逆矩陣

特征值求解器

  • 對稱矩陣的 Jacobi 特征值求解器

可編程邏輯 (PL) 和 AI 引擎 (AIE) 陣列的函數表

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

vitis-solver-library-org
入門