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
来源
PROCEEDINGS OF THE 2016 3RD WORKSHOP ON PROGRAMMING MODELS FOR SIMD/VECTOR PROCESSING (WPMVP 2016) | 2016年
关键词
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] Extending a C-like Language for Portable SIMD Programming
    Leissa, Roland
    Hack, Sebastian
    Wald, Ingo
    ACM SIGPLAN NOTICES, 2012, 47 (08) : 65 - 74
  • [2] 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
  • [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] 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
  • [5] SIMD programming using Intel vector extensions
    Amiri, Hossein
    Shahbahrami, Asadollah
    JOURNAL OF PARALLEL AND DISTRIBUTED COMPUTING, 2020, 135 (135) : 83 - 100
  • [6] 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
  • [7] Performance Portable C plus plus Programming with RAJA
    Beckingsale, David
    Hornung, Richard
    Scogland, Tom
    Vargas, Arturo
    PROCEEDINGS OF THE 24TH SYMPOSIUM ON PRINCIPLES AND PRACTICE OF PARALLEL PROGRAMMING (PPOPP '19), 2019, : 455 - 456
  • [8] Parallel SIMD - A Policy Based Solution for Free Speed-Up using C plus plus Data-Parallel Types
    Yadav, Srinivas
    Gupta, Nikunj
    Reverdell, Auriane
    Kaiser, Hartmut
    PROCEEDINGS OF SIXTH INTERNATIONAL IEEE WORKSHOP ON EXTREME SCALE PROGRAMMING MODELS AND MIDDLEWARE (ESPM2 2021), 2021, : 20 - 29
  • [9] A Modern C plus plus Parallel Task Programming Library
    Lin, Chun-Xun
    Huang, Tsung-Wei
    Guo, Guannan
    Wong, Martin D. F.
    PROCEEDINGS OF THE 27TH ACM INTERNATIONAL CONFERENCE ON MULTIMEDIA (MM'19), 2019, : 2284 - 2287
  • [10] 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