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...
Main Author: | |
---|---|
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 |