Vitis™ BLAS 庫提供:
Vitis BLAS 庫包含以下矩陣及向量運算函數:
矩陣運算函數:
矢量運算函數:
矩陣-矢量運算函數:
Vitis BLAS 庫提供三種類型的函數實現方案:L1 原語函數、L2 內核函數和 L3 軟件 API 函數。FPGA 硬件開發人員可利用 L1 原語函數。L2 內核函數通過集成 L1 原語函數和數據移動器構建,這些數據移動器可通過支持 XRT 運行時庫的主機代碼調用。L3 軟件 API 函數提供 C、C++ 和 Python 函數接口,允許純軟件開發人員將 BLAS 運算交由 AMD 平台完成,無需其它與硬件相關的配置。下表列出了一部分這三種類型的函數。請注意,Vitis BLAS 庫目前不提供任何在 Versal AI 引擎上運行的函數。
Vitis BLAS 庫特性 | L1 原語函數 |
---|---|
amax、amin: 搜索向量元素位置 | |
asum:累加向量元素的大小 | |
dot:計算兩個向量的點積 | |
axpy:計算向量標量乘積,並與向量相加 | |
nrm2:計算一個向量的歐氏範數 | |
swap、scal、copy:交換、縮放或複製向量 | |
symv:對稱矩陣向量乘法 | |
trmv:三角矩陣向量乘法 | |
L2 內核函數 | |
Gemm class:一般矩陣乘法 | |
Gemv class:一般矩陣向量乘法 | |
L3 軟件 API 函數 | |
xfblasCreate:初始化庫並創建句柄 | |
xfblasFree:釋放 FPGA 器件內存 | |
xfblasGetMatrix:將FPGA 器件內存中的矩陣複製至主機 | |
xfblasExecute:啟動內核並等待完成 | |
注意:完整的 L3 軟件 API 函數列表及介紹可在這裏找到。 |
如欲詳細區分 L1 原語與 L2 內核函數,請參見下表。
L1 原語函數 |
|
L2 內核功能 |
|
L3 軟件 API 函數 |
|
Vitis BLAS 庫提供三種類型的函數實現方案:L1 原語函數、L2 內核函數和 L3 軟件 API 函數。FPGA 硬件開發人員可利用 L1 原語函數。L2 內核函數通過集成 L1 原語函數和數據移動器構建,這些數據移動器可通過支持 XRT 運行時庫的主機代碼調用。L3 軟件 API 函數提供 C、C++ 和 Python 函數接口,允許純軟件開發人員將 BLAS 運算交由 AMD 平台完成,無需其它與硬件相關的配置。下表列出了一部分這三種類型的函數。請注意,Vitis BLAS 庫目前不提供任何在 Versal AI 引擎上運行的函數。
對於 L1 子目錄:
對於 L2 子目錄:
對於 L3 子目錄:
Vitis GitHub 存儲庫中提供的庫可通過上麵介紹的、針對 L2 和 L3 函數提供的生成文件或 Vitis IDE 來編譯。要在 IDE 中使用該庫,首先得按庫模板下載,然後必須使用該模板創建一個新的 Vitis 項目。如欲進一步了解如何在 Vitis GUI 中使用庫模板創建 L2 或 L3 應用,請參見這裏。