Benchmark

Datasets

The data is coming from https://sparse.tamu.edu/, our commonly used datasets are listed in table 1.

Table 1 Datasets for benchmark
Datasets Vertex Edges Degree
as-Skitter 1694616 11094209 6.546739202
coPapersDBLP 540486 15245729 28.20744478
coPapersCiteseer 434102 16036720 36.94228545
cit-Patents 3774768 16518948 4.37614921
europe_osm 50912018 54054660 1.061726919
hollywood 1139905 57515616 50.45649945
soc-LiveJournal1 4847571 68993773 14.23264827
ljournal-2008 5363260 79023142 14.73416206
patients 1250000 200

Performance

For representing the resource utilization in each benchmark, we separate the overall utilization into 2 parts, where P stands for the resource usage in platform, that is those instantiated in static region of the FPGA card, as well as K represents those used in kernels (dynamic region). The input is directed or undirected graph in compressed sparse row (CSR) format, and the target device is set to Alveo U50/U250.

Table 2 Performance for processing sparse graph on FPGA
Architecture Dataset Latency(s) Timing LUT(P/K) BRAM(P/K) URAM(P/K) DSP(P/K)
Single Source Shortest Path (Directed, U250) soc-LiveJournal1 25.94 300MHz 108.1K/21.1K 178/127 0/20 4/2
Connected Component (Directed/Undirected, U250) coPapersCiteseer 1.811 280MHz 101.7K/101.5K 165/387 0/112 4/3
Strongly Connected Component (Directed/Undirected, U250) ljournal-2008 3.484 275MHz 101.7K/160.5K 165/523.5 0/110 4/6
Triangle Counting (Undirected, U250) europe_osm 1.08 300MHz 150.9K/20.5K 338/62 0/16 7/0
Label Propagation (Directed, U250) hollywood 107.39 292MHz 158.2K/71.0K 375/100 0/0 7/0
PageRank (Directed, U250, Cache 1) europe_osm 47.376 300MHz 154.6K/252.9K 357/546 0/0 7/52
PageRank (Directed, U250, Cache 32K) europe_osm 51.919 225MHz 156.4K/100.4K 357/189 0/224 7/52
PageRank MultiChannels (Directed, U50) europe_osm 34.26 229MHz 118.8K/132.0K 178/303 0/224 4/84
General Similarity Cosine (Undirected, U50) as-Skitter 0.0213 295MHz 121.1K/164.6K 180/230.5 0/80 4/645
Sparse Similarity Cosine (Directed/Undirected, U50) coPaperDBLP 0.0137 295MHz 132.8K/120.1K 180/310.5 0/128 4/127
Dense Similarity Cosine (Directed/Undirected, U50) patients 0.0112 260MHz 119.1K/266.1K 180/618 0/48 4/2364
Two Hop Path Count (Directed, u50) soc-LiveJournal1 38.90 300MHz 145.9K/34.1K 180/210 0/0 4/0
Louvain modularity fast (Undirected, u50) europe_osm 111.092 188.3MHz 123.4K/127.6K 180/461 0/208 4/115
Renumber (Undirected, u50) europe.txt 5.22 240.3MHz 103.7K/21.6K 178/27 0/256 4/0

These are details for benchmark result and usage steps.

Test Overview

Here are benchmarks of the Vitis Graph Library using the Vitis environment and comparing with Spark(v3.0.0) and Tigergraph(v2.4.0).

Spark

  • Spark 3.0.0 installed and configured.
  • Spark running on platform with Intel(R) Xeon(R) CPU E5-2690 v4 @2.600GHz, 56 Threads (2 Sockets, 14 Core(s) per socket, 2 Thread(s) per core).

Tigergraph

Vitis Graph Library

  • Download code

These graph benchmarks can be downloaded from vitis libraries master branch.

git clone https://github.com/Xilinx/Vitis_Libraries.git
cd Vitis_Libraries
git checkout master
cd graph
  • Setup environment

Specifying the corresponding Vitis, XRT, and path to the platform repository by running following commands.

source <intstall_path>/installs/lin64/Vitis/2022.1/settings64.sh
source /opt/xilinx/xrt/setup.sh
export PLATFORM_REPO_PATHS=/opt/xilinx/platforms