Vitis Graph Library

Vitis Graph Library is an open-sourced Vitis library written in C++ for accelerating graph applications in a variety of use cases. It now covers a level of acceleration: the pre-defined kernel level (L2), and will evolve to offer the module level (L1) and the software API level (L3).

Currently, this includes the following algorithm implementation:

  • Similarity analysis: Cosine Similarity, Jaccard Similarity, k-nearest Neighbor.
  • Centrality analysis: PageRank.
  • Pathfinding: Single Source Shortest Path (SSSP), Multi-Source Shortest Path (MSSP), Minimum Spanning Tree and Estimated Diameter.
  • Connectivity analysis: Weakly Connected Components and Strongly Connected Components.
  • Community Detection: Louvain Modularity (From 22.1, Louvain API can support large-scale graphs), Label Propagation and Triangle Count.
  • Search: Breadth First Search and 2-Hop Search.
  • Graph Format: Renumber, Calculate Degree and Format Convertion between CSR and CSC.

Shell Environment

Setup the build environment using the Vitis and XRT scripts.

source <install path>/Vitis/2022.1/settings64.sh
source /opt/xilinx/xrt/setup.sh
export PLATFORM_REPO_PATHS=/opt/xilinx/platforms

Setting PLATFORM_REPO_PATHS to the installation folder of platform files can enable makefiles in this library to use DEVICE variable as a pattern. Otherwise, full path to .xpfm file needs to be provided via DEVICE variable.

TigerGraph Plugin

Benchmark

Indices and tables