- 概述
- 現在開始
庫藏內容
AMD Vitis™ 圖形程式庫提供下列優勢:
- 在各種使用案例中,快速實作 FPGA 加速圖形分析
- 以 C/C++ 語言編寫的高階軟體介面,使用上更容易,不用另外配置硬體
- 以 HLS 編寫的低階硬體介面,提供更高的靈活度和控制能力

功能
目前,Vitis 圖形程式庫內含下列用於實作圖形演算法的函數:
- 相似度分析函數
- 餘弦相似度、Jaccard 相似度、K 近鄰演算法
- 中心性分析函數
- PageRank
- 路徑搜尋函數
- 單源最短路徑、多源最短路徑、最小生成樹及估計直徑
- 連通性分析函數
- 弱連通元件和強連通元件。
- 社群偵測函數
- Louvain 模組化(從 22.1 起,Louvain API 可支援大型圖)、標籤傳播和三角形數量計算。
- 搜尋函數
- 廣度優先搜尋和 2-Hop 搜尋。
- 圖形格式函數
- 重新編號、度數計算,以及 CSR 和 CSC 之間格式轉換。
函數實作類型
Vitis 圖形程式庫提供三種類型的函數實作,即 L1 基元函數、L2 內核函數,以及 L3 軟體 API 函數。L1 基元函數可供 FPGA 硬體開發人員上手活用。L2 內核函數是以 L1 基元函數和資料移動器整合構成,可由主機程式碼透過 Vitis 執行階段程式庫叫出。L3 軟體 API 函數提供 C++ 函數介面,以便純軟體開發人員將圖形運算工作卸載到 AMD 平台,不用另外進行硬體相關配置。下表列出了屬於這三種類型的一些函式。請注意,Vitis 圖形程式庫目前不提供在 Versal AI Engine 上執行的任何函數。
Vitis 圖形程式庫函數 | L1 基元函數 |
---|---|
denseSimilarity:適用於稠密圖的相似度函數 | |
generalSimilarity:一併支援稠密圖與稀疏圖的相似度函數 | |
sortTopK:針對輸入資料進行 Top-K 排序的函數 | |
sparseSimilarity:適用於稀疏圖的相似度函數 | |
L2 內核函數 | |
bfsImpl:廣度優先搜尋演算法 | |
calcuDegree:度數計算演算法 | |
connectedComponentImpl:連通元件計算演算法 | |
convertCsrCsc:在 Csr 和 Csc 之間轉換圖形格式 | |
labelPropagation:標籤傳播演算法 | |
pageRankTop:Pagerank 演算法 | |
附註:您可以在此處找到完整的 L2 內核函數清單和簡介 | |
L3 軟體 API 函數 | |
opBFS class:廣度優先搜尋演算法 | |
opSCC class:強連通元件計算 | |
opTriangleCount class:計算三角形的數量 | |
附註:您可以在此處找到 L3 軟體 API 的完整函數清單和簡介。 |
L1 基元函數和 L2 內核函數的詳細差異,請參閱下表。
L1 基元函數 |
|
L2 內核函數 |
|
L3 軟體 API 函數 |
|
結構
這三種類型的實作各自整理於對應的 Github L1、L2 和 L3 目錄中。下圖顯示的是 Vitis 圖形程式庫的主要結構,各自關聯至應用開發的不同階段。
L1 子目錄:
- include/hw:基元函數的標頭檔
- tests/hw/kernel:含資料移動器和基元函數的頂層模組
- tests/hw/host:用於呼叫基元函數的測試平台與基礎架構支援
- tests/hw/Makefile:用於建構和執行基元函數
適用於 L2 子目錄:
- include/hw:內核函式標題檔案
- tests/hw/kernel:每個內核函數的包裝函數
- tests/hw/host:呼叫已編譯內核函數的主機模組
- tests/hw/Makefile:用於建構和執行內核函數
適用於 L3 子目錄:
- include/sw:軟體 API 函數的標頭檔
- tests/Makefile:用於建構和執行軟體 API 函數

在 Vitis GUI 中執行
這些程式庫可在 Vitis GitHub 儲存庫中取得,且可運用程式庫提供的前述 L2 和 L3 函數 Makefile,或是在 Vitis IDE 中進行編譯。若要在 IDE 中使用程式庫,首先必須將其下載為程式庫範本,然後務必使用該範本建立新的 Vitis 專案。如需在 Vitis GUI 中使用程式庫範本建立 L2 或 L3 應用的更多相關資訊,請參閱此處。