Proceedings of the 28th International Conference on Compiler Construction 2019
DOI: 10.1145/3302516.3307357
|View full text |Cite
|
Sign up to set email alerts
|

Revec: program rejuvenation through revectorization

Abstract: Modern microprocessors are equipped with Single Instruction Multiple Data (SIMD) or vector instructions which expose data level parallelism at a fine granularity. Programmers exploit this parallelism by using low-level vector intrinsics in their code. However, once programs are written using vector intrinsics of a specific instruction set, the code becomes non-portable. Modern compilers are unable to analyze and retarget the code to newer vector instruction sets. Hence, programmers have to manually rewrite the… Show more

Help me understand this report
View preprint versions

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
7
0

Year Published

2020
2020
2024
2024

Publication Types

Select...
5
3
1

Relationship

0
9

Authors

Journals

citations
Cited by 13 publications
(7 citation statements)
references
References 29 publications
(34 reference statements)
0
7
0
Order By: Relevance
“…The scheme examines the program control-flow graph (CFG) to detect and avoid SIMT deadlocks, where the execution of threads in a SIMT architecture becomes stalled or blocked, waiting for each other to release resources and preventing forward progress. Revec [164] is a transparent compiler optimization pass happening at the compiler IR level to rewrite old vectorized code using new vector instructions. It enables the performance portability of hand-vectorized code and execution portability across newer SIMD extension generations.…”
Section: ) Static Compile-time Approachmentioning
confidence: 99%
“…The scheme examines the program control-flow graph (CFG) to detect and avoid SIMT deadlocks, where the execution of threads in a SIMT architecture becomes stalled or blocked, waiting for each other to release resources and preventing forward progress. Revec [164] is a transparent compiler optimization pass happening at the compiler IR level to rewrite old vectorized code using new vector instructions. It enables the performance portability of hand-vectorized code and execution portability across newer SIMD extension generations.…”
Section: ) Static Compile-time Approachmentioning
confidence: 99%
“…Additionally, authors have employed reinforcement learning (RL) in various works. Mendis et al [32] investigate transforming the integer linear programming solver into a graph neural network-based policy for auto-generating vectorization schemes. Also, domain-specific compilers such as COMET [33], JAX [34], and NWChem [35] are under active research for optimizing program execution.…”
Section: Machine Learning-based Autotunersmentioning
confidence: 99%
“…Vectorization methods for loops include SLP-oriented loop unrolling optimization [33][34][35], selection optimization of vector methods based on program parallelism features [36], and vector recognition optimization based on directed graph reachability [37]. In addition, SLP methods have also been applied in the fields of dynamic code conversion [38] and optimization of vector code in inline assembly form [39], etc.…”
Section: Wireless Communications and Mobile Computingmentioning
confidence: 99%