Pohl, AngelaCosenza, BiagioÁlvarez-Mesa, MauricioChi, Chi ChingJuurlink, Ben2018-06-082018-06-082016978-1-4503-4060-1https://depositonce.tu-berlin.de/handle/11303/7930http://dx.doi.org/10.14279/depositonce-7091SIMD 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.en004 Datenverarbeitung; InformatikSIMDvectorizationC++parallel programmingprogramming modelAn evaluation of current SIMD programming models for C++Conference Object