goSLP: globally optimized superword level parallelism framework
<jats:p>Modern microprocessors are equipped with single instruction multiple data (SIMD) or vector instruction sets which allow compilers to exploit superword level parallelism (SLP), a type of fine-grained parallelism. Current SLP auto-vectorization techniques use heuristics to discover vecto...
Main Authors: | , |
---|---|
Other Authors: | |
Format: | Article |
Language: | English |
Published: |
Association for Computing Machinery (ACM)
2021
|
Online Access: | https://hdl.handle.net/1721.1/135078 |
_version_ | 1826197740692963328 |
---|---|
author | Mendis, Charith Amarasinghe, Saman |
author2 | Sloan School of Management |
author_facet | Sloan School of Management Mendis, Charith Amarasinghe, Saman |
author_sort | Mendis, Charith |
collection | MIT |
description | <jats:p>Modern microprocessors are equipped with single instruction multiple data (SIMD) or vector instruction sets which allow compilers to exploit superword level parallelism (SLP), a type of fine-grained parallelism. Current SLP auto-vectorization techniques use heuristics to discover vectorization opportunities in high-level language code. These heuristics are fragile, local and typically only present one vectorization strategy that is either accepted or rejected by a cost model. We present goSLP, a novel SLP auto-vectorization framework which solves the statement packing problem in a pairwise optimal manner. Using an integer linear programming (ILP) solver, goSLP searches the entire space of statement packing opportunities for a whole function at a time, while limiting total compilation time to a few minutes. Furthermore, goSLP optimally solves the vector permutation selection problem using dynamic programming. We implemented goSLP in the LLVM compiler infrastructure, achieving a geometric mean speedup of 7.58% on SPEC2017fp, 2.42% on SPEC2006fp and 4.07% on NAS benchmarks compared to LLVM’s existing SLP auto-vectorizer.</jats:p> |
first_indexed | 2024-09-23T10:52:25Z |
format | Article |
id | mit-1721.1/135078 |
institution | Massachusetts Institute of Technology |
language | English |
last_indexed | 2024-09-23T10:52:25Z |
publishDate | 2021 |
publisher | Association for Computing Machinery (ACM) |
record_format | dspace |
spelling | mit-1721.1/1350782024-01-02T19:17:53Z goSLP: globally optimized superword level parallelism framework Mendis, Charith Amarasinghe, Saman Sloan School of Management <jats:p>Modern microprocessors are equipped with single instruction multiple data (SIMD) or vector instruction sets which allow compilers to exploit superword level parallelism (SLP), a type of fine-grained parallelism. Current SLP auto-vectorization techniques use heuristics to discover vectorization opportunities in high-level language code. These heuristics are fragile, local and typically only present one vectorization strategy that is either accepted or rejected by a cost model. We present goSLP, a novel SLP auto-vectorization framework which solves the statement packing problem in a pairwise optimal manner. Using an integer linear programming (ILP) solver, goSLP searches the entire space of statement packing opportunities for a whole function at a time, while limiting total compilation time to a few minutes. Furthermore, goSLP optimally solves the vector permutation selection problem using dynamic programming. We implemented goSLP in the LLVM compiler infrastructure, achieving a geometric mean speedup of 7.58% on SPEC2017fp, 2.42% on SPEC2006fp and 4.07% on NAS benchmarks compared to LLVM’s existing SLP auto-vectorizer.</jats:p> 2021-10-27T20:10:37Z 2021-10-27T20:10:37Z 2018 2019-05-03T18:23:30Z Article http://purl.org/eprint/type/ConferencePaper https://hdl.handle.net/1721.1/135078 en 10.1145/3276480 Proceedings of the ACM on Programming Languages Creative Commons Attribution 4.0 International license https://creativecommons.org/licenses/by/4.0/ application/pdf Association for Computing Machinery (ACM) ACM |
spellingShingle | Mendis, Charith Amarasinghe, Saman goSLP: globally optimized superword level parallelism framework |
title | goSLP: globally optimized superword level parallelism framework |
title_full | goSLP: globally optimized superword level parallelism framework |
title_fullStr | goSLP: globally optimized superword level parallelism framework |
title_full_unstemmed | goSLP: globally optimized superword level parallelism framework |
title_short | goSLP: globally optimized superword level parallelism framework |
title_sort | goslp globally optimized superword level parallelism framework |
url | https://hdl.handle.net/1721.1/135078 |
work_keys_str_mv | AT mendischarith goslpgloballyoptimizedsuperwordlevelparallelismframework AT amarasinghesaman goslpgloballyoptimizedsuperwordlevelparallelismframework |