[논문 리뷰] Should AI Optimize Your Code? A Comparative Study of Classical Optimizing Compilers Versus Current Large Language Models
이 논문은 GPT-4.0 및 CodeLlama-70B와 같은 대규모 언어 모델(Langauge Models, LLMs)이 기존 최적화 컴파일러(CETUS, PLUTO, ROSE)보다 자동 코드 최적화에서 뛰어나지 못하는지 평가한다. 자동 검증 메커니즘(PCAOT)과 복잡한 최적화 패턴 20개를 포함한 새로운 병렬 컴퓨팅 챌린지 벤치마크(PCB) v1.0을 도입하여, CodeLlama-70B는 최대 2.1배의 성능 향상을 기록하고 GPT-4.0를 능가하지만, LLMs는 여전히 대규모 코드베이스에서 실패하며 정확성과 확장성 문제로 인해 컴파일러를 대체할 준비가 되어 있지 않다.
Traditional optimizing compilers have played an important role in adapting to the growing complexity of modern software systems. The need for efficient parallel programming in current architectures requires strong optimization techniques. The beginning of Large Language Models (LLMs) raises intriguing questions about the potential of these AI approaches to revolutionize code optimization methodologies. This work aims to answer an essential question for the compiler community: "Can AI-driven models revolutionize the way we approach code optimization?". To address this question, we present a comparative analysis between three classical optimizing compilers and two recent large language models, evaluating their respective abilities and limitations in optimizing code for maximum efficiency. In addition, we introduce a benchmark suite of challenging optimization patterns and an automatic mechanism for evaluating the performance and correctness of the code generated by LLMs. We used three different prompting strategies to evaluate the performance of the LLMs, Simple Instruction (IP), Detailed Instruction Prompting (DIP), and Chain of Thought (CoT). A key finding is that while LLMs have the potential to outperform current optimizing compilers, they often generate incorrect code on large code sizes, calling for automated verification methods. In addition, expressing a compiler strategy as part of the LLMs prompt substantially improves its overall performance. Our evaluation across three benchmark suites shows CodeLlama-70B as the superior LLM, capable of achieving speedups of up to x1.75. Additionally, CETUS is the best among the current optimizing compilers, achieving a maximum speedup of 1.67x. We also found substantial differences among the three prompting strategies.
연구 동기 및 목표
- 현대의 LLMs가 기존 최적화 컴파일러와 동등한 수준의 자동 최적화 도구(AOT)로서 병렬 코드 최적화에 효과적으로 기여할 수 있는지 평가하는 것.
- LLM이 생성한 코드에 대한 정확성 보장을 확보하기 위한 핵심 문제를 해결하기 위해 성능 및 정확성 검증을 자동화한 메커니즘(PCAOT)을 개발하는 것.
- AOT를 체계적으로 평가하고 비교하기 위해 복잡한 최적화 패턴 20개를 포함한 종합적인 벤치마크 세트(PCB v1.0)를 구축하는 것.
- 다양한 프롬프팅 전략—Chain of Thought (CoT) 및 Instruction Prompting (IP)—이 LLM 최적화 성능에 미치는 영향을 조사하는 것.
- AI 기반 코드 최적화 분야의 현재 최고 수준을 파악하고, LLMs가 기존 컴파일러를 대체할 수 없도록 막는 주요 제약 조건을 규명하는 것.
제안 방법
- AOT가 생성한 코드의 정확성과 성능을 모두 검증할 수 있는 자동화된 메커니즘인 PCAOT를 개발하여, 잘못된 최적화를 포함할 수 있는 안전한 평가를 가능하게 하였다.
- 실제 세계의 최적화 패턴을 타깃으로 삼는 병렬 컴퓨팅 챌린지 벤치마크(PCB) v1.0을 설계하였으며, 이는 복잡하고 최적화하기 어려운 코드 패턴 20개로 구성되어 있다.
- Chain of Thought (CoT) 및 Instruction Prompting (IP) 두 가지 프롬프팅 전략을 사용하여 최신의 두 LLMs—GPT-4.0 및 CodeLlama-70B—를 평가하였다.
- 실제 벤치마크인 NPB v3.3, POLYBENCHMARK v4.2 및 커스터마이징된 프로그램에서, 세 가지 기존 최적화 컴파일러—CETUS, PLUTO, ROSE—와 LLM 출력 결과를 비교하였다.
- 기본 성능 대비 상대적 성능 향상도를 측정하고, 자동 테스트 및 성능 저하 검사를 통해 정확성을 평가하여 최적화 성공 여부를 판단하였다.
- 모든 벤치마크에서 프롬프팅 방법의 효과성과 LLMs 및 컴파일러 간의 상대적 성능을 비교하기 위해 통계 분석을 수행하였다.

실험 결과
연구 질문
- RQ1GPT-4.0 및 CodeLlama-70B와 같은 LLMs가 병렬 프로그램의 자동 코드 최적화에서 기존 최적화 컴파일러를 능가할 수 있는가?
- RQ2Chain of Thought (CoT) 및 Instruction Prompting (IP)와 같은 다양한 프롬프팅 전략은 LLMs가 정확하고 효율적인 최적화 코드를 생성하도록 얼마나 효과적으로 이끌 수 있는가?
- RQ3실제 코드 최적화 과정에서 LLMs의 주요 실패 원인은 무엇이며, 특히 정확성과 확장성 측면에서 어떤 문제가 발생하는가?
- RQ4PCAOT와 같은 자동 검증 메커니즘은 LLM이 생성한 최적화에서 정확성을 얼마나 보장할 수 있으며, 이를 통해 위험한 최적화를 안전하게 탐색하는 데 어떻게 활용될 수 있는가?
- RQ5Loop에 함수 호출이 포함된 경우, 장벽 동기화를 처리하는 경우, 로드 불균형을 방지하기 위한 동적 스케줄링을 적용하는 경우와 같은 복잡하고 비트리비얼한 코드 패턴 최적화에서 LLMs와 컴파일러는 어떻게 비교되는가?
주요 결과
- CodeLlama-70B는 모든 도구 중에서 가장 높은 성능 향상을 기록하여 특정 벤치마크에서 최대 2.1배의 성능 향상을 달성했으며, GPT-4.0 및 모든 기존 컴파일러를 능가하였다.
- CETUS는 기존 컴파일러 중에서 가장 뛰어난 성능을 보였으며, 최대 1.9배의 성능 향상을 기록했고, PLUTO와 ROSE가 그 뒤를 이었다.
- LLMs는 배열 축소, 최외곽 루프 병렬화, 함수 호출을 포함한 루프 최적화와 같은 6개의 복잡한 패턴 중에서 둘러싸인 패턴 3개에서만 정확하게 최적화에 성공했으며, 성공률가 50% 이상을 기록하였다.
- 더 복잡한 패턴에서는 실패를 빚었으며, 이는 NOWAIT를 사용한 장벽 동기화 제거, 다중 병렬 루프 처리, 로드 불균형을 방지하기 위한 동적 스케줄링 적용 등이 포함되었다.
- Chain of Thought (CoT)와 Instruction Prompting (IP) 간에는 성능에 유의미한 차이가 없었으며, 일부 경우에서 CoT가 약간 더 열악한 성능을 보였다.
- 잠재력은 있지만, LLMs는 아직 기존 컴파일러를 대체할 준비가 되어 있지 않으며, 특히 20줄 이상의 대규모 프로그램에서 자주 잘못된 코드를 생성함으로써 정확성의 핵심적 한계를 드러내고 있다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.