ICCAD-Accel-GCN

所属分类:硬件设计
开发工具:Cuda
文件大小:0KB
下载次数:0
上传日期:2023-09-08 02:08:57
上 传 者sh-1993
说明:  “Accel GNN:图形神经网络的高性能GPU加速器设计”的正式实现,
(Official Implementation of "Accel-GNN: High-Performance GPU Accelerator Design for Graph Neural Networks",)

文件列表:
CMakeLists.txt (262, 2023-09-07)
block_level_meta/ (0, 2023-09-07)
block_level_meta/OVCAR-8H.block4 (2519424, 2023-09-07)
block_level_meta/SW-620H.block4 (2518160, 2023-09-07)
block_level_meta/TWITTER-Real-Graph-Partial.block4 (774432, 2023-09-07)
block_level_meta/Yeast.block4 (2281248, 2023-09-07)
block_level_meta/am.block4 (1266848, 2023-09-07)
block_level_meta/amazon0601.block4 (618912, 2023-09-07)
block_level_meta/artist.block4 (119760, 2023-09-07)
block_level_meta/arxiv.block4 (172512, 2023-09-07)
block_level_meta/citation.block4 (4027088, 2023-09-07)
block_level_meta/collab.block4 (347856, 2023-09-07)
block_level_meta/com-amazon.block4 (450928, 2023-09-07)
block_level_meta/ppa.block4 (2469456, 2023-09-07)
block_level_meta/products.block4 (7651712, 2023-09-07)
block_level_meta/pubmed.block4 (27456, 2023-09-07)
block_level_meta/reddit.dgl.block4 (5818112, 2023-09-07)
block_level_meta/wikikg2.block4 (3336208, 2023-09-07)
block_level_meta/yelp.block4 (1336928, 2023-09-07)
block_level_meta/youtube.block4 (1633888, 2023-09-07)
block_level_partition.py (3232, 2023-09-07)
data.h (923, 2023-09-07)
images/ (0, 2023-09-07)
images/18graphs.png (72938, 2023-09-07)
images/block_vs_warp6.png (95742, 2023-09-07)
images/normalized_speed_amit.png (90169, 2023-09-07)
main.cu (6706, 2023-09-07)
spmm_accel.cu (4170, 2023-09-07)
spmm_accel.h (272, 2023-09-07)
spmm_base.h (1477, 2023-09-07)
spmm_cusparse.cu (4505, 2023-09-07)
spmm_cusparse.h (282, 2023-09-07)
spmm_gnna.cu (5762, 2023-09-07)
spmm_gnna.h (331, 2023-09-07)
util.h (328, 2023-09-07)

# ICCAD-Accel-GCN Official Implementation of "Accel-GCN: High-Performance GPU Accelerator Design for Graph Neural Networks" Please cite our paper if you use the code ``` @inproceedings{xi2023AccelGCN, title={Accel-GCN: High-Performance GPU Accelerator Design for Graph Convolution Networks}, author={Xie, Xi and Peng, Hongwu and Hasan, Amit and Huang, Shaoyi and Zhao, Jiahui and Fang, Haowen and Zhang, Wei and Geng, Tong and Khan, Omer and Ding, Caiwen}, booktitle={Proceedings of the 42st IEEE/ACM International Conference on Computer-Aided Design}, year={2023} } ``` ## Abstract This code contains a lightweight framework for benchmarking SPMM kernel designs. The following SPMM kernels are benchmarked here: `spmm_accel.cu` The implementation of our Accel-GCN's SPMM kernel design. `spmm_gnna.cu` The SPMM kernel of [GNNAdvisor](https://github.com/YukeWang96/GNNAdvisor_OSDI21). `spmm_cusparse.cu` The [cuSPARSE](https://docs.nvidia.com/cuda/cusparse/index.html) SPMM functionality. ## Get started ### Prerequisites Nvidia GPU with compute capability greater than or equal to 8.6 CUDA toolkit 12.0 cmake version 3.5 For the python scripts, numpy and scipy are required ### Download dataset Our benchmark dataset contains 18 graphs: ![benchmark graphs](images/18graphs.png) It can be downloaded from https://drive.google.com/file/d/1_sE65oveGpzRdCcExBmUaNG982lUB-Cx/view?usp=drive_link , or you can use the following command: ``` wget --load-cookies /tmp/cookies.txt "https://docs.google.com/uc?export=download&confirm=$(wget --quiet --save-cookies /tmp/cookies.txt --keep-session-cookies --no-check-certificate 'https://docs.google.com/uc?export=download&id=1_sE65oveGpzRdCcExBmUaNG982lUB-Cx' -O- | sed -rn 's/.*confirm=([0-9A-Za-z_]+).*/\1\n/p')&id=1_sE65oveGpzRdCcExBmUaNG982lUB-Cx" -O 18graphs.tar.gz && rm -rf /tmp/cookies.txt ``` Place the downloaded file in the project directory, then unzip it (and rename it). ``` tar xzvf 18graphs.tar.gz mv 18graphs graphs ``` Generate block-level partitioning meta-data. ``` mkdir block_level_meta python block_level_partition.py ``` ### Compilation ``` mkdir build cd build cmake .. make -j10 ``` After compilation, an executable file named `spmm_test` is generated. ## Benchmarking Benchmark SPMM kernels on a specified graph and a specified right-hand matrix column dimension: ``` ./spmm_test artist 60 ``` If no parameters are attached, it will execute a traversal-style benchmark for all graphs and all right-multiply matrix column dimensions (controlled by `dim_min`, `dim_max`, and `interval` in `main.cu`): ``` ./spmm_test ``` You can use a pipe to save the results: ``` ./spmm_test > result.txt ``` ## Kernel design of Accel-GCN The SPMM kernel of Accel-GCN incorporates block-level partitioning and a combined warp strategy for traversing the right-hand matrix column dimension. This approach exploits multi-level memory efficiency, memory coalescing, and alignment, which further optimizes execution efficiency. ![architecture](images/block_vs_warp6.png) ### Speedups over other SPMM kernels On average, evaluation of Accel-GCN across 18 benchmark graphs demonstrates that Accel-GCN surpasses cuSPARSE, GNNAdvisor, and graph-BLAST by 17.3%, 86.3%, and 193.5% respectively. ![speedup](images/normalized_speed_amit.png)

近期下载者

相关文件


收藏者