Vitis™ グラフ ライブラリの特長は次のとおりです。
現在、Vitis グラフ ライブラリには、グラフ アルゴリズムを実装する次の関数があります。
Vitis グラフ ライブラリは、L1 プリミティブ関数、 L2 カーネル関数、L3 ソフトウェア API 関数という 3 つの実装タイプがあります。L1 プリミティブ関数は、主に FPGA ハードウェア開発者向けです。L2 カーネル関数は、L1 プリミティブ関数とデータ ムーバーを統合したもので、XRT ランタイム ライブラリを使用してホストコードから呼び出すことができます。L3 ソフトウェア API 関数では、C++ 関数インターフェイスを利用できるため、ソフトウェア開発者はハードウェア関連の複雑な設定を行う必要がなく、簡単にグラフ操作を AMD プラットフォームにオフロードできます。3 つのタイプの関数を下記の表にまとめています。現在、Vitis グラフ ライブラリでは、Versal AI エンジンで実行する関数を提供しておりません。
Vitis グラフ ライブラリ関数 | L1 プリミティブ関数 |
---|---|
denseSimilarity: 密グラフの類似度関数 | |
generalSimilarity: 密と疎の両方に対応できる類似度関数 | |
sortTopK: 入力データの上位 K 個のソート関数 | |
sparseSimilarity: 疎グラフの類似度関数 | |
L2 カーネル関数 | |
bfsImpl: 幅優先探索アルゴリズム | |
calcuDegree: 次数計算アルゴリズム | |
connectedComponentImpl: 連結成分計算アルゴリズム | |
convertCsrCsc: Csr と Csc 間のグラフ形式変換 | |
labelPropagation: ラベル伝搬アルゴリズム | |
pageRankTop: ページランク アルゴリズム | |
注記: L2 カーネル関数の一覧表および説明は、こちらで確認できます。 | |
L3 ソフトウェア API 関数 | |
opBFS class: 幅優先探索アルゴリズム | |
opSCC class: 強く接続されたコンポーネントの計算 | |
opTriangleCount class: 三角形のカウント | |
注記: L3 ソフトウェア API 関数の一覧表および説明は、こちらで確認できます。 |
L1 プリミティブ関数と L2 カーネル関数の詳細な違いについては、次の表を参照してください。
L1 プリミティブ関数 |
|
L2 カーネル関数 |
|
L3 ソフトウェア API 関数 |
|
3 つの実装タイプは、GitHub 上の対応するディレクトリ (L1、L2、L3) にそれぞれ配置されています。次の図は、Vitis グラフ ライブラリの主な構成を示しており、それぞれがアプリケーション開発の異なる段階に関連しています。
L1 サブディレクトリ:
L2 サブディレクトリ:
L3 サブディレクトリ:
Vitis GitHub リポジトリで公開しているライブラリは、上記で紹介した L2、L3 関数用に提供されている Makefile を使用するか、Vitis IDE を使用してコンパイルできます。IDE でライブラリを使用するには、まずライブラリ テンプレートとしてダウンロードし、そのテンプレートを使用して新しい Vitis プロジェクトを作成してください。Vitis GUI でライブラリ テンプレートを使用する L2 または L3 アプリケーションの作成手順については、こちらを参照してください。