Speculative dynamic vectorization to assist static vectorization in a HW/SW co-designed environment

R. Kumar, A. Martinez, A. Gonzalez

Research output: Chapter in Book/Report/Conference proceedingConference contribution

Abstract

Compiler based static vectorization is used widely to extract data level parallelism from computation intensive applications. Static vectorization is very effective in vectorizing traditional array based applications. However, compilers inability to reorder ambiguous memory references severely limits vectorization opportunities, especially in pointer rich applications. HW/SW co-designed processors provide an excellent opportunity to optimize the applications at runtime. The availability of dynamic application behavior at runtime will help in capturing vectorization opportunities generally missed by the compilers. This paper proposes to complement the static vectorization with a speculative dynamic vectorizer in a HW/SW co-design processor. We present a speculative dynamic vectorization algorithm that speculatively reorders ambiguous memory references to uncover vectorization opportunities. The hardware checks for any memory dependence violation due to speculative vectorization and takes corrective action in case of violation. Our experiments show that the combined (static + dynamic) vectorization approach provides 2x performance benefit compared to the static vectorization alone, for SPECFP2006. Moreover, dynamic vectorization scheme is as effective in vectorization of pointer-based applications as for the array-based ones, whereas compilers lose significant vectorization opportunities in pointer-based applications.
Original languageEnglish
Title of host publicationHigh Performance Computing (HiPC), 2013 20th International Conference on
PublisherIEE
Pages79-88
Number of pages10
DOIs
Publication statusPublished - 1 Dec 2013

Keywords

  • hardware-software codesign
  • microprocessor chips
  • optimising compilers
  • HW/SW codesigned processor
  • compiler based static vectorization
  • data level parallelism
  • dynamic application behavior
  • pointer-based application
  • speculative dynamic vectorization
  • Algorithm design and analysis
  • Hardware
  • Heuristic algorithms
  • Optimization
  • Program processors
  • Runtime
  • Software algorithms
  • Dynamic optimizations
  • HW/SW Co-designed processor
  • Speculation
  • Vectorization

Fingerprint

Dive into the research topics of 'Speculative dynamic vectorization to assist static vectorization in a HW/SW co-designed environment'. Together they form a unique fingerprint.

Cite this