Providing Source Code Level Portability Between CPU and GPU with MapCG

被引:0
|
作者
洪春涛 [1 ]
陈德颢 [1 ]
陈羽北 [2 ]
陈文光 [1 ]
郑纬民 [1 ]
林海波 [3 ]
机构
[1] Department of Computer Science and Technology, Tsinghua University
[2] Department of Electronic Engineering, Tsinghua University
[3] IBM China Research
关键词
D O I
暂无
中图分类号
学科分类号
摘要
Graphics processing units (GPU) have taken an important role in the general purpose computing market in recent years. At present, the common approach to programming GPU units is to write GPU specific code with low level GPU APIs such as CUDA. Although this approach can achieve good performance, it creates serious portability issues as programmers are required to write a specific version of the code for each potential target architecture. This results in high development and maintenance costs. We believe it is desirable to have a programming model which provides source code portability between CPUs and GPUs, as well as different GPUs. This would allow programmers to write one version of the code, which can be compiled and executed on either CPUs or GPUs efficiently without modification. In this paper, we propose MapCG, a MapReduce framework to provide source code level portability between CPUs and GPUs. In contrast to other approaches such as OpenCL, our framework, based on MapReduce, provides a high level programming model and makes programming much easier. We describe the design of MapCG, including the MapReduce-style high-level programming framework and the runtime system on the CPU and GPU. A prototype of the MapCG runtime, supporting multi-core CPUs and NVIDIA GPUs, was implemented. Our experimental results show that this implementation can execute the same source code efficiently on multi-core CPU platforms and GPUs, achieving an average speedup of 1.6~2.5x over previous implementations of MapReduce on eight commonly used applications.
引用
收藏
页数:15
相关论文
共 50 条
  • [31] Toward an Analytical Performance Model to Select between GPU and CPU Execution
    Chikin, Artem
    Amaral, Jose Nelson
    Ali, Karim
    Tiotto, Ettore
    [J]. 2019 IEEE INTERNATIONAL PARALLEL AND DISTRIBUTED PROCESSING SYMPOSIUM WORKSHOPS (IPDPSW), 2019, : 353 - 362
  • [32] Comparing LLC-Memory Traffic between CPU and GPU Architectures
    Monil, Mohammad Alaul Haque
    Lee, Seyong
    Vetter, Jeffrey S.
    Malony, Allen D.
    [J]. PROCEEDINGS OF RSDHA 2021: REDEFINING SCALABILITY FOR DIVERSELY HETEROGENEOUS ARCHITECTURES, 2021, : 8 - 16
  • [33] Transfer Time Optimization Between CPU and GPU for Virus Signature Scanning
    Dhake, Apurva Anil
    Walunj, Sandip M.
    [J]. ADVANCED INFORMATICS FOR COMPUTING RESEARCH, ICAICR 2019, PT II, 2019, 1076 : 55 - 63
  • [34] Automatic Dynamic Task Distribution between CPU and GPU for VR Systems
    Qin, Shuxin
    Geng, Xiaobing
    Jiang, Yongshi
    [J]. MECHATRONICS AND APPLIED MECHANICS, PTS 1 AND 2, 2012, 157-158 : 1324 - 1330
  • [35] Partition Strategies for C Source Programs to Support CPU plus GPU Coordination Computing
    Yao, Ding
    Zeng, Guosun
    Ding, Chunling
    [J]. 2013 INTERNATIONAL CONFERENCE ON INFORMATION SCIENCE AND CLOUD COMPUTING (ISCC), 2014, : 39 - 48
  • [36] Energy-Aware GPU Programming at Source-Code Levels
    Changyou Zhang
    [J]. Tsinghua Science and Technology, 2012, 17 (03) : 278 - 286
  • [37] Energy-aware GPU programming at source-code levels
    Zhang, Changyou
    Huang, Kun
    Cui, Xiang
    Chen, Yifeng
    [J]. Tsinghua Science and Technology, 2012, 17 (03) : 278 - 286
  • [38] Flexible CTU-level Parallel Motion Estimation by CPU and GPU Pipeline for HEVC
    Ma, Juncheng
    Luo, Falei
    Wang, Shanshe
    Ma, Siwei
    [J]. 2014 IEEE VISUAL COMMUNICATIONS AND IMAGE PROCESSING CONFERENCE, 2014, : 282 - 285
  • [39] Programming heterogeneous CPU-GPU systems by high-level dataflow synthesis
    Bloch, Aurelien
    Bezati, Endri
    Mattavelli, Marco
    [J]. 2020 IEEE WORKSHOP ON SIGNAL PROCESSING SYSTEMS (SIPS), 2020, : 59 - 64
  • [40] Shape-constrained level set segmentation for hybrid CPU-GPU computers
    Balla-Arabe, Souleymane
    Gao, Xinbo
    Ginhac, Dominique
    Yang, Fan
    [J]. NEUROCOMPUTING, 2016, 177 : 40 - 48