Intelligent-Unrolling: Exploiting Regular Patterns in Irregular Applications
Changxi Liu, Hailong Yang, Xu Liu, Zhongzhi Luan, Depei, Qian

TL;DR
Intelligent-Unroll is a framework that automatically optimizes irregular applications for vectorization by modeling runtime patterns, leading to more efficient code generation compared to existing methods.
Contribution
It introduces a novel approach to optimize irregular applications using code seeds, feature tables, and information-code trees for better vectorization.
Findings
Outperforms state-of-the-art implementations in sparse matrix-vector multiplication.
Effectively optimizes reduction and gather/scatter operations.
Generates highly efficient vectorized code for irregular applications.
Abstract
Modern optimizing compilers are able to exploit memory access or computation patterns to generate vectorization codes. However, such patterns in irregular applications are unknown until runtime due to the input dependence. Thus, either compiler's static optimization or profile-guided optimization based on specific inputs cannot predict the patterns for any common input, which leads to suboptimal code generation. To address this challenge, we develop Intelligent-Unroll, a framework to automatically optimize irregular applications with vectorization. Intelligent-Unroll allows the users to depict the computation task using \textit{code seed} with the memory access and computation patterns represented in \textit{feature table} and \textit{information-code tree}, and generates highly efficient codes. Furthermore, Intelligent-Unroll employs several novel optimization techniques to optimize…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
