Introducing and Implementing the Allpairs Skeleton for Programming Multi-GPU Systems

被引:0
|
作者
Michel Steuwer
Malte Friese
Sebastian Albers
Sergei Gorlatch
机构
[1] University of Muenster,Department of Mathematics and Computer Science
关键词
High-level programming models; Algorithmic skeletons ; GPU computing; Allpairs computation; SkelCL;
D O I
暂无
中图分类号
学科分类号
摘要
Algorithmic skeletons simplify software development: they abstract typical patterns of parallelism and provide their efficient implementations, allowing the application developer to focus on the structure of algorithms, rather than on implementation details. This becomes especially important for modern parallel systems with multiple graphics processing units (GPUs) whose programming is complex and error-prone, because state-of-the-art programming approaches like CUDA and OpenCL lack high-level abstractions. We define a new algorithmic skeleton for allpairs computations which occur in real-world applications, ranging from bioinformatics to physics. We develop the skeleton’s generic parallel implementation for multi-GPU Systems in OpenCL. To enable the automatic use of the fast GPU memory, we identify and implement an optimized version of the allpairs skeleton with a customizing function that follows a certain memory access pattern. We use matrix multiplication as an application study for the allpairs skeleton and its two implementations and demonstrate that the skeleton greatly simplifies programming, saving up to 90 % of lines of code as compared to OpenCL. The performance of our optimized implementation is up to 6.8 times higher as compared with the generic implementation and is competitive to the performance of a manually written optimized OpenCL code.
引用
收藏
页码:601 / 618
页数:17
相关论文
共 50 条
  • [1] 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
  • [2] SkePU: A Multi-Backend Skeleton Programming Library for Multi-GPU Systems
    Enmyren, Johan
    Kessler, Christoph W.
    [J]. HLPP 2010: PROCEEDINGS OF THE FOURTH INTERNATIONAL WORKSHOP ON HIGH-LEVEL PARALLEL PROGRAMMING AND APPLICATIONS, 2010, : 5 - 14
  • [3] 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
  • [4] 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
  • [5] 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):
  • [6] 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
  • [7] Modelling Multi-GPU Systems
    Spampinato, Daniele G.
    Elster, Anne C.
    Natvig, Thorvald
    [J]. PARALLEL COMPUTING: FROM MULTICORES AND GPU'S TO PETASCALE, 2010, 19 : 562 - 569
  • [8] GPU-Chariot: A Programming Framework for Stream Applications Running on Multi-GPU Systems
    Ino, Fumihiko
    Nakagawa, Shinta
    Hagihara, Kenichi
    [J]. IEICE TRANSACTIONS ON INFORMATION AND SYSTEMS, 2013, E96D (12): : 2604 - 2616
  • [9] An adaptive methodology for multi-GPU programming in OpenCL
    Cavalcanti Bueno, Andre Luis
    Rodriguez, Noemi de La Rocque
    Sotelino, Elisa Dominguez
    [J]. ENGINEERING COMPUTATIONS, 2017, 34 (04) : 1277 - 1292
  • [10] HPSM: a programming framework to exploit multi-CPU and multi-GPU systems simultaneously
    Ferreira Lima, Joao Vicente
    Di Domenico, Daniel
    [J]. INTERNATIONAL JOURNAL OF GRID AND UTILITY COMPUTING, 2019, 10 (03) : 201 - 211