Automatic CPU/GPU Generation of Multi-versioned OpenCL Kernels for C plus plus Scientific Applications

被引:2
|
作者
Sotomayor, Rafael [1 ]
Miguel Sanchez, Luis [1 ]
Garcia Blas, Javier [1 ]
Fernandez, Javier [1 ]
Daniel Garcia, J. [1 ]
机构
[1] Univ Carlos III Madrid, Av Univ 30, Madrid 28911, Spain
关键词
OpenCL; C plus; Multi-versioning; Code generation;
D O I
10.1007/s10766-016-0425-6
中图分类号
TP301 [理论、方法];
学科分类号
081202 ;
摘要
Parallelism has become one of the most extended paradigms used to improve performance. However, it forces software developers to adapt applications and coding mechanisms to exploit the available computing devices. Legacy source code needs to be re-written to take advantage of multi- core and many-core computing devices. Writing parallel applications in a traditional way is hard, expensive, and time consuming. Furthermore, there is often more than one possible transformation or optimization that can be applied to a single piece of legacy code. Therefore many parallel versions of the same original sequential code need to be considered. In this paper, we describe an automatic parallel source code generation workflow (REWORK) for parallel heterogeneous platforms. REWORK automatically identifies promising kernels on legacy C++ source code and generates multiple specific versions of kernels for improving C++ applications, selecting the most adequate version based on both static source code and target platform characteristics.
引用
收藏
页码:262 / 282
页数:21
相关论文
共 25 条
  • [1] Automatic CPU/GPU Generation of Multi-versioned OpenCL Kernels for C++ Scientific Applications
    Rafael Sotomayor
    Luis Miguel Sanchez
    Javier Garcia Blas
    Javier Fernandez
    J. Daniel Garcia
    International Journal of Parallel Programming, 2017, 45 : 262 - 282
  • [2] Automatic Data Layout Generation and Kernel Mapping for CPU plus GPU Architectures
    Majeti, Deepak
    Meel, Kuldeep S.
    Barik, Rajkishore
    Sarkar, Vivek
    PROCEEDINGS OF THE 25TH INTERNATIONAL CONFERENCE ON COMPILER CONSTRUCTION (CC 2016), 2016, : 240 - 250
  • [3] Merge or Separate? Multi-job Scheduling for OpenCL Kernels on CPU/GPU Platforms
    Wen, Yuan
    O'Boyle, Michael F. P.
    PROCEEDINGS OF THE GENERAL PURPOSE GPUS (GPGPU-10), 2017, : 22 - 31
  • [4] Compilation of MATLAB computations to CPU/GPU via C/OpenCL generation
    Reis, Luis
    Bispo, Joao
    Cardoso, Joao M. P.
    CONCURRENCY AND COMPUTATION-PRACTICE & EXPERIENCE, 2020, 32 (22):
  • [5] Hierarchical Partitioning Algorithm for Scientific Computing on Highly Heterogeneous CPU plus GPU Clusters
    Clarke, David
    Ilic, Aleksandar
    Lastovetsky, Alexey
    Sousa, Leonel
    EURO-PAR 2012 PARALLEL PROCESSING, 2012, 7484 : 489 - 501
  • [6] Concurrent CPU-GPU Task Programming using Modern C plus
    Huang, Tsung-Wei
    Lin, Yibo
    2022 IEEE 36TH INTERNATIONAL PARALLEL AND DISTRIBUTED PROCESSING SYMPOSIUM WORKSHOPS (IPDPSW 2022), 2022, : 588 - 597
  • [7] Automatic Test Generation for C and C plus plus Programs, Using Symbolic Execution
    Yoshida, Hiroaki
    Li, Guodong
    Kamiya, Takuki
    Ghosh, Indradeep
    Rajan, Sreeranga
    Tokumoto, Susumu
    Munakata, Kazuki
    Uehara, Tadahiro
    IEEE SOFTWARE, 2017, 34 (05) : 30 - 37
  • [8] Porting MATLAB Applications to High-Performance C plus plus Codes: CPU/GPU-Accelerated Spherical Deconvolution of Diffusion MRI Data
    Garcia Blas, Javier
    Dolz, Manuel F.
    Daniel Garcia, J.
    Carretero, Jesus
    Daducci, Alessandro
    Aleman, Yasser
    Jorge Canales-Rodriguez, Erick
    ALGORITHMS AND ARCHITECTURES FOR PARALLEL PROCESSING, ICA3PP 2016, 2016, 10048 : 630 - 643
  • [9] Exploring data flow design and vectorization with oneAPI for streaming applications on CPU plus GPU
    Campos, Cristian
    Asenjo, Rafael
    Navarro, Angeles
    JOURNAL OF SUPERCOMPUTING, 2025, 81 (02):
  • [10] Partition Strategies for C Source Programs to Support CPU plus GPU Coordination Computing
    Yao, Ding
    Zeng, Guosun
    Ding, Chunling
    2013 INTERNATIONAL CONFERENCE ON INFORMATION SCIENCE AND CLOUD COMPUTING (ISCC), 2014, : 39 - 48