LLM-Vectorizer: LLM-Based Verified Loop Vectorizer
Vectorization is a powerful optimization technique that significantly boosts the performance of high performance computing applications operating on large data arrays. Despite decades of research on auto-vectorization, compilers frequently miss opportunities to vectorize code. On the other hand, writing vectorized code manually using compiler intrinsics is still a complex, error-prone task that demands deep knowledge of specific architecture and compilers. In this paper, we evaluate the potential of large-language models (LLMs) to generate vectorized (Single Instruction Multiple Data) code from scalar programs that process individual array elements. We propose a novel finite-state-machine multi-agents based approach that harnesses LLMs and test-based feedback to generate vectorized code. Our findings indicate that LLMs are capable of producing high-performance vectorized code with run-time speedup ranging from 1.1x to 9.4x as compared to the state-of-the-art compilers such as Intel Compiler, GCC, and Clang. To verify the correctness of vectorized code, we use Alive2, a leading bounded translation validation tool for LLVM IR. We describe a few domain-specific techniques to improve the scalability of Alive2 on our benchmark dataset. Overall, our approach is able to verify 38.2% of vectorizations as correct on the TSVC benchmark dataset.
Authors
- Madanlal Musuvathi (ORCID: https://orcid.org/0000-0002-2482-7892)
- Shuvendu K. Lahiri (ORCID: https://orcid.org/0000-0002-4446-4777)
- Avery Laird (ORCID: https://orcid.org/0000-0001-9063-6018)
- Jubi Taneja
- Cong Yan (ORCID: https://orcid.org/0009-0001-3596-4083)
Institutions
- Microsoft (United States) (US)
- University of Toronto (CA)
Publication Details
- Published
- 2025-02-22
- DOI
- https://doi.org/10.1145/3696443.3708929
- Citations
- 8
- Primary Topic
- Software Testing and Debugging Techniques
- Type
- article
- Field-Weighted Citation Impact
- 18.46