An Evaluation of Current SIMD Programming Models for C plus

被引:8
|
作者
Pohl, Angela [1 ]
Cosenza, Biagio [1 ]
Mesa, Mauricio Alvarez [1 ]
Chi, Chi Ching [1 ]
Juurlink, Ben [1 ]
机构
[1] TU Berlin, Berlin, Germany
关键词
SIMD; vectorization; C plus; parallel programming; programming model;
D O I
10.1145/2870650.2870653
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
SIMD extensions were added to microprocessors in the mid '90s to speed-up data-parallel code by vectorization. Unfortunately, the SIMD programming model has barely evolved and the most efficient utilization is still obtained with elaborate intrinsics coding. As a consequence, several approaches to write efficient and portable SIMD code have been proposed. In this work, we evaluate current programming models for the C++ language, which claim to simplify SIMD programming while maintaining high performance. The proposals were assessed by implementing two kernels: one standard floating-point benchmark and one real-world integer-based application, both highly data parallel. Results show that the proposed solutions perform well for the floating point kernel, achieving close to the maximum possible speed-up. For the real-world application, the programming models exhibit significant performance gaps due to data type issues, missing template support and other problems discussed in this paper.
引用
收藏
页数:8
相关论文
共 50 条
  • [41] A Modern C plus plus Point of View of Programming in Image Processing
    Roynard, Michael
    Carlinet, Edwin
    Geraud, Thierry
    PROCEEDINGS OF THE 21ST ACM SIGPLAN INTERNATIONAL CONFERENCE ON GENERATIVE PROGRAMMING: CONCEPTS AND EXPERIENCES, GPCE 2022, 2022, : 164 - 171
  • [42] Discussions on References and Returning References in C plus plus Programming Language
    Mu Jingqin
    Li Xiaohui
    Jiang Haiyang
    Zhang Jun
    Du Ruiqing
    PROCEEDINGS OF THE 2014 INTERNATIONAL CONFERENCE ON MECHATRONICS, ELECTRONIC, INDUSTRIAL AND CONTROL ENGINEERING, 2014, 5 : 87 - 91
  • [43] Efficient NAS Benchmark Kernels with C plus plus Parallel Programming
    Griebler, Dalvan
    Loff, Junior
    Fernandes, Luiz G.
    Mencagli, Gabriele
    Danelutto, Marco
    2018 26TH EUROMICRO INTERNATIONAL CONFERENCE ON PARALLEL, DISTRIBUTED, AND NETWORK-BASED PROCESSING (PDP 2018), 2018, : 733 - 740
  • [44] A hybrid programming with C plus plus and Fortran for geostatistical modeling in reservoirs
    Liao Yuanhui
    ENERGY AND POWER TECHNOLOGY, PTS 1 AND 2, 2013, 805-806 : 1925 - 1928
  • [45] Leveraging C plus plus Meta-programming Capabilities to Simplify the Message Passing Programming Model
    Pellegrini, Simone
    Prodan, Radu
    Fahringer, Thomas
    RECENT ADVANCES IN THE MESSAGE PASSING INTERFACE, 2011, 6960 : 302 - 311
  • [46] SYCL: Single-source C plus plus accelerator programming
    Reyes, Ruyman
    Lomueller, Victor
    PARALLEL COMPUTING: ON THE ROAD TO EXASCALE, 2016, 27 : 673 - 682
  • [47] C plus plus PROGRAMMING FOR CARTOGRAPHERS AND GEODESIST: TEACHING THE PROGRAMMING LANGUAGE BY GEODESIC EXERCISES AND TOPOGRAPHIC TASKS
    Zablotskiy, Vladimir
    7TH INTERNATIONAL CONFERENCE ON CARTOGRAPHY AND GIS, VOLS 1 AND 2, 2018, : 190 - 194
  • [48] DESIGN AND PROGRAMMING OF LOGIC PROCESSORS FOR SIMD ARRAYS
    DVORAK, V
    COMPUTERS AND ARTIFICIAL INTELLIGENCE, 1987, 6 (02): : 181 - 190
  • [49] Automated translation of C/C plus plus models into a synchronous formalism
    Kalla, Hamoudi
    Talpin, Jean-Pierre
    Berner, David
    Besnard, Loic
    13TH ANNUAL IEEE INTERNATIONAL SYMPOSIUM AND WORKSHOP ON ENGINEERING OF COMPUTER BASED SYSTEMS, PROCEEDINGS: MASTERING THE COMPLEXITY OF COMPUTER-BASED SYSTEMS, 2006, : 426 - +
  • [50] SIMD programming using Intel vector extensions
    Amiri, Hossein
    Shahbahrami, Asadollah
    JOURNAL OF PARALLEL AND DISTRIBUTED COMPUTING, 2020, 135 (135) : 83 - 100