LLM-Vectorizer: LLM-based Verified Loop Vectorizer

Fuente: arXiv
Guardado en:
Detalles Bibliográficos
Autores principales: Taneja, Jubi, Laird, Avery, Yan, Cong, Musuvathi, Madan, Lahiri, Shuvendu K.
Formato: Preprint
Publicado: 2024
Materias:
Acceso en línea:
Etiquetas: Agregar Etiqueta
Sin Etiquetas, Sea el primero en etiquetar este registro!
_version_ 1866917687469277184
author Taneja, Jubi
Laird, Avery
Yan, Cong
Musuvathi, Madan
Lahiri, Shuvendu K.
author_facet Taneja, Jubi
Laird, Avery
Yan, Cong
Musuvathi, Madan
Lahiri, Shuvendu K.
contents 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.
format Preprint
id arxiv_https___arxiv_org_abs_2406_04693
institution arXiv
publishDate 2024
record_format arxiv
spellingShingle LLM-Vectorizer: LLM-based Verified Loop Vectorizer
Taneja, Jubi
Laird, Avery
Yan, Cong
Musuvathi, Madan
Lahiri, Shuvendu K.
Software Engineering
Artificial Intelligence
Machine Learning
Performance
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.
title LLM-Vectorizer: LLM-based Verified Loop Vectorizer
topic Software Engineering
Artificial Intelligence
Machine Learning
Performance
url https://arxiv.org/abs/2406.04693