SkePU: A Multi-Backend Skeleton Programming Library for Multi-GPU Systems

被引:0
|
作者
Enmyren, Johan [1 ]
Kessler, Christoph W. [1 ]
机构
[1] Linkoping Univ, Dept Comp & Informat Sci, PELAB, S-58183 Linkoping, Sweden
关键词
Skeleton Programming; GPU; CUDA; OpenCL; Data Parallelism;
D O I
暂无
中图分类号
TP3 [计算技术、计算机技术];
学科分类号
0812 ;
摘要
We present SkePU, a C++ template library which provides a simple and unified interface for specifying data-parallel computations with the help of skeletons on GPUs using CUDA and OpenCL. The interface is also general enough to support other architectures, and SkePU implements both a sequential CPU and a parallel OpenMP backend. It also supports multi-GPU systems. Copying data between the host and the GPU device memory can be a performance bottleneck. A key technique in SkePU is the implementation of lazy memory copying in the container type used to represent skeleton operands, which allows to avoid unnecessary memory transfers. We evaluate SkePU with small benchmarks and a larger application, a Runge-Kutta ODE solver. The results show that a skeleton approach to GPU programming is viable, especially when the computation burden is large compared to memory I/O (the lazy memory copying can help to achieve this). It also shows that utilizing several GPUs have a potential for performance gains. We see that SkePU offers good performance with a more complex and realistic task such as ODE solving, with up to 10 times faster run times when using SkePU with a GPU backend compared to a sequential solver running on a fast CPU.
引用
收藏
页码:5 / 14
页数:10
相关论文
共 50 条
  • [1] Introducing and Implementing the Allpairs Skeleton for Programming Multi-GPU Systems
    Michel Steuwer
    Malte Friese
    Sebastian Albers
    Sergei Gorlatch
    [J]. International Journal of Parallel Programming, 2014, 42 : 601 - 618
  • [2] Introducing and Implementing the Allpairs Skeleton for Programming Multi-GPU Systems
    Steuwer, Michel
    Friese, Malte
    Albers, Sebastian
    Gorlatch, Sergei
    [J]. INTERNATIONAL JOURNAL OF PARALLEL PROGRAMMING, 2014, 42 (04) : 601 - 618
  • [3] GammaGL: A Multi-Backend Library for Graph Neural Networks
    Liu, Yaoqi
    Yang, Cheng
    Zhao, Tianyu
    Han, Hui
    Zhang, Siyuan
    Wu, Jing
    Zhou, Guangyu
    Huang, Hai
    Wang, Hui
    Shi, Chuan
    [J]. PROCEEDINGS OF THE 46TH INTERNATIONAL ACM SIGIR CONFERENCE ON RESEARCH AND DEVELOPMENT IN INFORMATION RETRIEVAL, SIGIR 2023, 2023, : 2861 - 2870
  • [4] HPSM: A Programming Framework for Multi-CPU and Multi-GPU Systems
    Lima, Joao V. F.
    Di Domenico, Daniel
    [J]. 2017 INTERNATIONAL SYMPOSIUM ON COMPUTER ARCHITECTURE AND HIGH PERFORMANCE COMPUTING WORKSHOPS (SBAC-PADW), 2017, : 31 - 36
  • [5] Towards High-Level Programming of Multi-GPU Systems Using the SkelCL Library
    Steuwer, Michel
    Kegel, Philipp
    Gorlatch, Sergei
    [J]. 2012 IEEE 26TH INTERNATIONAL PARALLEL AND DISTRIBUTED PROCESSING SYMPOSIUM WORKSHOPS & PHD FORUM (IPDPSW), 2012, : 1858 - 1865
  • [6] Benchmarking multi-GPU applications on modern multi-GPU integrated systems
    Bernaschi, Massimo
    Agostini, Elena
    Rossetti, Davide
    [J]. CONCURRENCY AND COMPUTATION-PRACTICE & EXPERIENCE, 2021, 33 (14):
  • [7] An introduction to multi-GPU programming for physicists
    Bernaschi, M.
    Bisson, M.
    Fatica, M.
    Phillips, E.
    [J]. EUROPEAN PHYSICAL JOURNAL-SPECIAL TOPICS, 2012, 210 (01): : 17 - 31
  • [8] An introduction to multi-GPU programming for physicists
    M. Bernaschi
    M. Bisson
    M. Fatica
    E. Phillips
    [J]. The European Physical Journal Special Topics, 2012, 210 : 17 - 31
  • [9] High-Level Programming of Stencil Computations on Multi-GPU Systems Using the SkelCL Library
    Steuwer, Michel
    Haidl, Michael
    Breuer, Stefan
    Gorlatch, Sergei
    [J]. PARALLEL PROCESSING LETTERS, 2014, 24 (03)
  • [10] High-Level Programming for Medical Imaging on Multi-GPU Systems using the SkelCL Library
    Steuwer, Michel
    Gorlatch, Sergei
    [J]. 2013 INTERNATIONAL CONFERENCE ON COMPUTATIONAL SCIENCE, 2013, 18 : 749 - 758