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 条
  • [11] Evaluating Graph Coloring on GPUs
    Grosset, A. V. Pascal
    Zhu, Peihong
    Liu, Shusen
    Venkatasubramanian, Suresh
    Hall, Mary
    ACM SIGPLAN NOTICES, 2011, 46 (08) : 297 - 298
  • [12] A survey on dynamic graph processing on GPUs: concepts, terminologies and systems
    Gao, Hongru
    Liao, Xiaofei
    Shao, Zhiyuan
    Li, Kexin
    Chen, Jiajie
    Jin, Hai
    FRONTIERS OF COMPUTER SCIENCE, 2024, 18 (04)
  • [13] Batched Graph Community Detection on GPUs
    Chou, Han-Yi
    Ghosh, Sayan
    PROCEEDINGS OF THE 2022 31ST INTERNATIONAL CONFERENCE ON PARALLEL ARCHITECTURES AND COMPILATION TECHNIQUES, PACT 2022, 2022, : 172 - 184
  • [14] A survey on dynamic graph processing on GPUs: concepts, terminologies and systems
    Hongru Gao
    Xiaofei Liao
    Zhiyuan Shao
    Kexin Li
    Jiajie Chen
    Hai Jin
    Frontiers of Computer Science, 2024, 18
  • [15] Self-adaptive Graph Traversal on GPUs
    Sha, Mo
    Li, Yuchen
    Tan, Kian-Lee
    SIGMOD '21: PROCEEDINGS OF THE 2021 INTERNATIONAL CONFERENCE ON MANAGEMENT OF DATA, 2021, : 1558 - 1570
  • [16] A Compiler for Throughput Optimization of Graph Algorithms on GPUs
    Pai, Sreepathi
    Pingali, Keshav
    ACM SIGPLAN NOTICES, 2016, 51 (10) : 1 - 19
  • [17] An Efficient Data Structure for Dynamic Graph on GPUs
    Zou, Lei
    Zhang, Fan
    Lin, Yinnian
    Yu, Yanpeng
    IEEE TRANSACTIONS ON KNOWLEDGE AND DATA ENGINEERING, 2023, 35 (11) : 11051 - 11066
  • [18] Parallel graph component labelling with GPUs and CUDA
    Hawick, K. A.
    Leist, A.
    Playne, D. P.
    PARALLEL COMPUTING, 2010, 36 (12) : 655 - 678
  • [19] Compiling Mappings to Bridge Applications and Databases
    Melnik, Sergey
    Adya, Atul
    Bernstein, Philip A.
    ACM TRANSACTIONS ON DATABASE SYSTEMS, 2008, 33 (04):
  • [20] GTS: A Fast and Scalable Graph Processing Method based on Streaming Topology to GPUs
    Kim, Min-Soo
    An, Kyuhyeon
    Park, Himchan
    Seo, Hyunseok
    Kim, Jinwook
    SIGMOD'16: PROCEEDINGS OF THE 2016 INTERNATIONAL CONFERENCE ON MANAGEMENT OF DATA, 2016, : 447 - 461