Compiling Graph Applications for GPUs with GraphIt

被引:11
作者
Brahmakshatriya, Ajay [1 ]
Zhang, Yunming [1 ]
Hong, Changwan [1 ]
Kamil, Shoaib [2 ]
Shun, Julian [1 ]
Amarasinghe, Saman [1 ]
机构
[1] MIT, CSAIL, Cambridge, MA 02139 USA
[2] Adobe Res, San Jose, CA USA
来源
CGO '21: PROCEEDINGS OF THE 2021 IEEE/ACM INTERNATIONAL SYMPOSIUM ON CODE GENERATION AND OPTIMIZATION (CGO) | 2021年
关键词
Compiler Optimizations; Graph Processing; GPUs; Domain-Specific Languages; ALGORITHMS; ANALYTICS;
D O I
10.1109/CGO51591.2021.9370321
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
The performance of graph programs depends highly on the algorithm, the size and structure of the input graphs, as well as the features of the underlying hardware. No single set of optimizations or one hardware platform works well across all settings. To achieve high performance, the programmer must carefully select which set of optimizations and hardware platforms to use. The GraphIt programming language makes it easy for the programmer to write the algorithm once and optimize it for different inputs using a scheduling language. However, GraphIt currently has no support for generating high-performance code for GPUs. Programmers must resort to re-implementing the entire algorithm from scratch in a low-level language with an entirely different set of abstractions and optimizations in order to achieve high performance on GPUs. We propose G2, an extension to the GraphIt compiler framework, that achieves high performance on both CPUs and GPUs using the same algorithm specification. G2 significantly expands the optimization space of GPU graph processing frameworks with a novel GPU scheduling language and compiler that enables combining load balancing, edge traversal direction, active vertexset creation, active vertexset processing ordering, and kernel fusion optimizations. G2 also introduces two performance optimizations, Edge-based Thread Warps CTAs load balancing (ETWC) and EdgeBlocking, to expand the optimization space for GPUs. ETWC improves load balancing by dynamically partitioning the edges of each vertex into blocks that are assigned to threads, warps, and CTAs for execution. EdgeBlocking improves the locality of the program by reordering the edges and restricting random memory accesses to fit within the L2 cache. We evaluate G2 on 5 algorithms and 9 input graphs on both Pascal and Volta generation NVIDIA GPUs, and show that it achieves up to 5.11x speedup over state-of-the-art GPU graph processing frameworks, and is the fastest on 66 out of the 90 experiments.
引用
收藏
页码:248 / 261
页数:14
相关论文
共 50 条
  • [21] A Pattern Based Algorithmic Autotuner for Graph Processing on GPUs
    Meng, Ke
    Li, Jiajia
    Tan, Guangming
    Sun, Ninghui
    PROCEEDINGS OF THE 24TH SYMPOSIUM ON PRINCIPLES AND PRACTICE OF PARALLEL PROGRAMMING (PPOPP '19), 2019, : 201 - 213
  • [22] Puffin: Graph Processing System on Multi-GPUs
    Zhao, Peng
    Luo, Xuan
    Xiao, Jiang
    Shi, Xuanhua
    Jin, Hai
    2017 IEEE 10TH CONFERENCE ON SERVICE-ORIENTED COMPUTING AND APPLICATIONS (SOCA), 2017, : 50 - 57
  • [23] FSGraph: fast and scalable implementation of graph traversal on GPUs
    Zhang, Yuan
    Cao, Huawei
    Liang, Yan
    Zhang, Jie
    Huang, Junying
    Ye, Xiaochun
    An, Xuejun
    CCF TRANSACTIONS ON HIGH PERFORMANCE COMPUTING, 2023, 5 (03) : 277 - 291
  • [24] AsynGraph: Maximizing Data Parallelism for Efficient Iterative Graph Processing on GPUs
    Zhang, Yu
    Liao, Xiaofei
    Gu, Lin
    Jin, Hai
    Hu, Kan
    Liu, Haikun
    He, Bingsheng
    ACM TRANSACTIONS ON ARCHITECTURE AND CODE OPTIMIZATION, 2020, 17 (04)
  • [25] A Study of Graph Analytics for Massive Datasets on Distributed Multi-GPUs
    Jatala, Vishwesh
    Dathathri, Roshan
    Gill, Gurbinder
    Hoang, Loc
    Nandivada, V. Krishna
    Pingali, Keshav
    2020 IEEE 34TH INTERNATIONAL PARALLEL AND DISTRIBUTED PROCESSING SYMPOSIUM IPDPS 2020, 2020, : 84 - 94
  • [26] GNNMark: A Benchmark Suite to Characterize Graph Neural Network Training on GPUs
    Baruah, Trinayan
    Shivdikar, Kaustubh
    Dong, Shi
    Sun, Yifan
    Mojumder, Saiful A.
    Jung, Kihoon
    Abellan, Jose L.
    Ukidave, Yash
    Joshi, Ajay
    Kim, John
    Kaeli, David
    2021 IEEE INTERNATIONAL SYMPOSIUM ON PERFORMANCE ANALYSIS OF SYSTEMS AND SOFTWARE (ISPASS 2021), 2021, : 13 - 23
  • [27] Highly Parallel Linear Forest Extraction from a Weighted Graph on GPUs
    Klein, Christoph
    Strzodka, Robert
    51ST INTERNATIONAL CONFERENCE ON PARALLEL PROCESSING, ICPP 2022, 2022,
  • [28] Specialization or Generalization: A Study on Breadth-First Graph Traversal on GPUs
    Zhong, Wenyong
    Cao, Yanxin
    Li, Jiawen
    Sun, Jianhua
    Chen, Hao
    PROCEEDINGS OF 2017 IEEE INTERNATIONAL CONFERENCE ON PROGRESS IN INFORMATICS AND COMPUTING (PIC 2017), 2017, : 294 - 301
  • [29] GStream: A Graph Streaming Processing Method for Large-Scale Graphs on GPUs
    Seo, Hyunseok
    Kim, Jinwook
    Kim, Min-Soo
    ACM SIGPLAN NOTICES, 2015, 50 (08) : 253 - 254
  • [30] A Tradeoff Analysis of FPGAs, GPUs, and Multicores for Sliding-Window Applications
    Cooke, Patrick
    Fowers, Jeremy
    Brown, Greg
    Stitt, Greg
    ACM TRANSACTIONS ON RECONFIGURABLE TECHNOLOGY AND SYSTEMS, 2015, 8 (01)