Idiom-driven innermost loop vectorization in the presence of cross-iteration data dependencies in the HotSpot C2 compiler

This thesis presents a technique for automatic vectorization of innermost single statement loops with a cross-iteration data dependence by analyzing data-flow to recognize frequently recurring program idioms. Recognition is carried out by matching the circular SSA data-flow found around the loop bod...

Full description

Bibliographic Details
Main Author: Sjöblom, William
Format: Others
Language:English
Published: Linköpings universitet, Programvara och system 2020
Subjects:
Online Access:http://urn.kb.se/resolve?urn=urn:nbn:se:liu:diva-172789
id ndltd-UPSALLA1-oai-DiVA.org-liu-172789
record_format oai_dc
spelling ndltd-UPSALLA1-oai-DiVA.org-liu-1727892021-01-26T05:34:59ZIdiom-driven innermost loop vectorization in the presence of cross-iteration data dependencies in the HotSpot C2 compilerengIdiomdriven vektorisering av inre loopar med databeroenden i HotSpots C2 kompilatorSjöblom, WilliamLinköpings universitet, Programvara och systemWilliam Sjöblom2020compilervectorizationSIMDJavaHotSpotcode optimizationreductionsprefix sumsparallel programmingdata-level parallelismComputer SciencesDatavetenskap (datalogi)This thesis presents a technique for automatic vectorization of innermost single statement loops with a cross-iteration data dependence by analyzing data-flow to recognize frequently recurring program idioms. Recognition is carried out by matching the circular SSA data-flow found around the loop body’s φ-function against several primitive patterns, forming a tree representation of the relevant data-flow that is then pruned down to a single parameterized node, providing a high-level specification of the data-flow idiom at hand used to guide algorithmic replacement applied to the intermediate representation. The versatility of the technique is shown by presenting an implementation supporting vectorization of both a limited class of linear recurrences as well as prefix sums, where the latter shows how the technique generalizes to intermediate representations with memory state in SSA-form. Finally, a thorough performance evaluation is presented, showing the effectiveness of the vectorization technique. Student thesisinfo:eu-repo/semantics/bachelorThesistexthttp://urn.kb.se/resolve?urn=urn:nbn:se:liu:diva-172789application/pdfinfo:eu-repo/semantics/openAccess
collection NDLTD
language English
format Others
sources NDLTD
topic compiler
vectorization
SIMD
Java
HotSpot
code optimization
reductions
prefix sums
parallel programming
data-level parallelism
Computer Sciences
Datavetenskap (datalogi)
spellingShingle compiler
vectorization
SIMD
Java
HotSpot
code optimization
reductions
prefix sums
parallel programming
data-level parallelism
Computer Sciences
Datavetenskap (datalogi)
Sjöblom, William
Idiom-driven innermost loop vectorization in the presence of cross-iteration data dependencies in the HotSpot C2 compiler
description This thesis presents a technique for automatic vectorization of innermost single statement loops with a cross-iteration data dependence by analyzing data-flow to recognize frequently recurring program idioms. Recognition is carried out by matching the circular SSA data-flow found around the loop body’s φ-function against several primitive patterns, forming a tree representation of the relevant data-flow that is then pruned down to a single parameterized node, providing a high-level specification of the data-flow idiom at hand used to guide algorithmic replacement applied to the intermediate representation. The versatility of the technique is shown by presenting an implementation supporting vectorization of both a limited class of linear recurrences as well as prefix sums, where the latter shows how the technique generalizes to intermediate representations with memory state in SSA-form. Finally, a thorough performance evaluation is presented, showing the effectiveness of the vectorization technique.
author Sjöblom, William
author_facet Sjöblom, William
author_sort Sjöblom, William
title Idiom-driven innermost loop vectorization in the presence of cross-iteration data dependencies in the HotSpot C2 compiler
title_short Idiom-driven innermost loop vectorization in the presence of cross-iteration data dependencies in the HotSpot C2 compiler
title_full Idiom-driven innermost loop vectorization in the presence of cross-iteration data dependencies in the HotSpot C2 compiler
title_fullStr Idiom-driven innermost loop vectorization in the presence of cross-iteration data dependencies in the HotSpot C2 compiler
title_full_unstemmed Idiom-driven innermost loop vectorization in the presence of cross-iteration data dependencies in the HotSpot C2 compiler
title_sort idiom-driven innermost loop vectorization in the presence of cross-iteration data dependencies in the hotspot c2 compiler
publisher Linköpings universitet, Programvara och system
publishDate 2020
url http://urn.kb.se/resolve?urn=urn:nbn:se:liu:diva-172789
work_keys_str_mv AT sjoblomwilliam idiomdriveninnermostloopvectorizationinthepresenceofcrossiterationdatadependenciesinthehotspotc2compiler
AT sjoblomwilliam idiomdrivenvektoriseringavinrelooparmeddataberoendenihotspotsc2kompilator
_version_ 1719374159070363648