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 条
  • [1] Compiling C/C plus plus SIMD Extensions for Function and Loop Vectorizaion on Multicore-SIMD Processors
    Tian, Xinmin
    Saito, Hideki
    Girkar, Milind
    Preis, Serguei V.
    Kozhukhov, Sergey S.
    Cherkasov, Aleksei G.
    Nelson, Clark
    Panchenko, Nikolay
    Geva, Robert
    2012 IEEE 26TH INTERNATIONAL PARALLEL AND DISTRIBUTED PROCESSING SYMPOSIUM WORKSHOPS & PHD FORUM (IPDPSW), 2012, : 2349 - 2358
  • [2] COMPUTER ADAPTIVE TESTS IN EVALUATION OF KNOWLEDGE OF C plus plus PROGRAMMING LANGUAGE
    Cisar, Sanja Maravic
    Cisar, Petar
    Vasic, Dragana
    Obradovic, Borislav
    Vasiljevic, Petar
    METALURGIA INTERNATIONAL, 2012, 17 (04): : 39 - 46
  • [3] Performance Study of SIMD Programming Models on Intel Multicore Processors
    Kristof, Peter
    Yu, Hongtao
    Li, Zhiyuan
    Tian, Xinmin
    2012 IEEE 26TH INTERNATIONAL PARALLEL AND DISTRIBUTED PROCESSING SYMPOSIUM WORKSHOPS & PHD FORUM (IPDPSW), 2012, : 2423 - 2432
  • [4] Programming with C plus plus concepts
    Jaervi, Jaakko
    Marcus, Mat
    Smith, Jacob N.
    SCIENCE OF COMPUTER PROGRAMMING, 2010, 75 (07) : 596 - 614
  • [5] Revisiting SIMD programming
    Lokhmotov, Anton
    Gaster, Benedict R.
    Mycroft, Alan
    Hickey, Neil
    Stuttard, David
    LANGUAGES AND COMPILERS FOR PARALLEL COMPUTING, 2008, 5234 : 32 - +
  • [6] Neat SIMD Elegant Vectorization in C plus plus by using Specialized Templates
    Gross, Matthias
    2016 INTERNATIONAL CONFERENCE ON HIGH PERFORMANCE COMPUTING & SIMULATION (HPCS 2016), 2016, : 848 - 857
  • [7] Extending a C-like Language for Portable SIMD Programming
    Leissa, Roland
    Hack, Sebastian
    Wald, Ingo
    ACM SIGPLAN NOTICES, 2012, 47 (08) : 65 - 74
  • [8] COMP 115-Programming generalized Born models for a SIMD architecture
    Lagerstedt, Ingvar C.
    ABSTRACTS OF PAPERS OF THE AMERICAN CHEMICAL SOCIETY, 2008, 235
  • [9] A comparative analysis of Kokkos and SYCL as heterogeneous, parallel programming models for C plus plus applications
    Hammond, Jeff R.
    Kinsner, Michael
    Brodman, James
    PROCEEDINGS OF THE INTERNATIONAL WORKSHOP ON OPENCL (IWOCL'19), 2019,
  • [10] C-for-Metal: High Performance SIMD Programming on Intel GPUs
    Lueh, Guei-Yuan
    Chen, Kaiyu
    Chen, Gang
    Fuentes, Joel
    Chen, Wei-Yu
    Fu, Fangwen
    Jiang, Hong
    Li, Hongzheng
    Rhee, Daniel
    CGO '21: PROCEEDINGS OF THE 2021 IEEE/ACM INTERNATIONAL SYMPOSIUM ON CODE GENERATION AND OPTIMIZATION (CGO), 2021, : 289 - 300