Streamlining Whole Function Vectorization in C Using Higher Order Vector Semantics

Gil Rapaport, Ayal Zaks, Yosi Ben-Asher

Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

Abstract

Taking full advantage of SIMD instructions in C programs still requires tedious and non-portable programming using intrinsics, despite considerable efforts spent developing auto-vectorization capabilities in recent decades. Whole Function Vectorization (WFV) is a recent technique for extending the use of SIMD across entire functions. WFV has so far only been used in data-parallel languages such as OpenCL and ISPC. We propose a vector-oriented programming framework that facilitates WFV directly in C. We show that our framework achieves competitive performance to Open CL and ISPC while maintaining C's original syntax and semantics. This allows C programmers to gain better performance for their applications by improving SIMD utilization, without stepping out of C.

Original languageEnglish
Title of host publicationProceedings - 2015 IEEE 29th International Parallel and Distributed Processing Symposium Workshops, IPDPSW 2015
PublisherInstitute of Electrical and Electronics Engineers Inc.
Pages718-727
Number of pages10
ISBN (Electronic)0769555101, 9780769555102
DOIs
StatePublished - 29 Sep 2015
Event29th IEEE International Parallel and Distributed Processing Symposium Workshops, IPDPSW 2015 - Hyderabad, India
Duration: 25 May 201529 May 2015

Publication series

NameProceedings - 2015 IEEE 29th International Parallel and Distributed Processing Symposium Workshops, IPDPSW 2015

Conference

Conference29th IEEE International Parallel and Distributed Processing Symposium Workshops, IPDPSW 2015
Country/TerritoryIndia
CityHyderabad
Period25/05/1529/05/15

Bibliographical note

Publisher Copyright:
© 2015 IEEE.

Keywords

  • C
  • SIMD
  • Whole Function Vectorization

ASJC Scopus subject areas

  • Computer Networks and Communications
  • Hardware and Architecture

Fingerprint

Dive into the research topics of 'Streamlining Whole Function Vectorization in C Using Higher Order Vector Semantics'. Together they form a unique fingerprint.

Cite this