← 최신 논문
🤖 AI

AI-PROPELLER: Warehouse-Scale Interprocedural Code Layout Optimization with AlphaEvolve

AI-PROPELLER은 실제 하드웨어 실행을 활용하여 정밀한 보상 신호를 얻음으로써 대규모 웨어하우스 규모 애플리케이션에 대해 최초로 성공적인 미세 조정된 절차 간 코드 레이아웃 최적화를 달려 0.23%에서 1.6%의 성능 향상을 이끌어내는, Propeller 포스트 링크 옵티마이저를 진화시킨 에이전트 워크플로우인 Magellan을 소개합니다.

원저자: Chaitanya Mamatha Ananda, Rajiv Gupta, Mircea Trofin, Aiden Grossman, Sriraman Tallam, Xinliang David Li, Amir Yazdanbakhsh

게시일 2026-06-02
📖 4 분 읽기☕ 가벼운 읽기

원저자: Chaitanya Mamatha Ananda, Rajiv Gupta, Mircea Trofin, Aiden Grossman, Sriraman Tallam, Xinliang David Li, Amir Yazdanbakhsh

원본 논문은 CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) 라이선스로 제공됩니다. 이것은 아래 논문에 대한 AI 생성 설명입니다. 저자가 작성하거나 승인한 것이 아닙니다. 기술적 정확성을 위해서는 원본 논문을 참조하세요. 전체 면책 조항 읽기

당신에게 수백만 권의 책(함수)과 수십억 페이지의 코드 명령어가 담긴 거대하고 믿기지 않을 정도로 복잡한 도서관(컴퓨터 프로그램)이 있다고 상상해 보십시오. 수년 동안 사서들(최적화 도구)은 책을 찾기 쉽게 만들기 위해 책장에 책을 배치하는 작업을 해왔습니다.

기존 방식은 한 번에 책 한 권씩 정리하는 방식이었습니다. 만약 어떤 책에 100개의 장(chapter)이 있다면, 사서는 가장 인기 있는 장들이 서로 바로 옆에 오도록 그 장들을 재배치했습니다. 이것을 내부 프로시저(intraprocedural) 최적화라고 부릅니다. 이 방식은 도움이 되었지만, 큰 기회를 놓쳤습니다. 책 A의 가장 인기 있는 장 바로 다음에 책 B의 가장 인기 있는 장이 와야 할 수도 있기 때문입니다. 만약 이 두 책이 도서관 반대편에 있다면, 독자(컴퓨터 프로세서)는 다음 페이지를 넘기기 위해 방을 가로질러 달려가야 했고, 이는 시간과 에너지를 낭비하게 만들었습니다.

AI-PROPELLER는 이 문제를 해결하기 위해 한 번에 한 권의 책이 아니라, 전체 도서관을 한꺼번에 재배치하는 새로운, 매우 똑똑한 사서 시스템입니다.

이 시스템이 어떻게 작동하는지 간단한 개념으로 나누어 설명하겠습니다.

1. 문제점: "조합론적(Combinatorial)" 악몽

책 한 권을 재배치하는 것도 어렵습니다. 하지만 모든 인기 있는 페이지가 (설령 다른 책에 있더라도) 다음에 올 페이지와 바로 옆에 위치하도록 수백만 권의 책을 재배치하는 것은 인간의 두뇌나 전통적인 컴퓨터로는 풀 수 없는 거대한 수학적 문제입니다. 이는 마치 10만 명의 관중이 있는 경기장에서 모든 사람이 각기 다른 구역에 흩어져 있음에도 불구하고, 모두가 자신의 가장 친한 친구 옆에 앉고 싶어 하는 완벽한 좌석 배치를 찾는 것과 같습니다.

게 further, 기존의 사서들은 어디에 무엇을 둘지 결정할 때 "추측(정적 모델)"을 사용했습니다. 그들은 실제로 배치를 테스트하지 않고, 단지 무엇이 효과적일 것이라고 계산했을 뿐입니다.

2. 해결책: "AI 에이전트" (Magellan)

연구진은 Magellan이라 불리는 시스템을 사용했는데, 이는 지치지 않고 실험을 수행하는 로봇 팀처럼 작동합니다. 이 팀에는 두 명의 주요 작업자가 있습니다.

  • 설계자 (AlphaEvolve): 책을 배치하는 규칙을 쓰고 다시 쓰는 AI입니다. "만약 책 A를 세 부분으로 나누고 그 중간 부분을 책 B 옆에 둔다면 어떨까?"와 같은 새로운 아이디어를 시도합니다.
  • 조율사 (Vizier): 이러한 규칙들의 구체적인 숫자들을 미세 조정하는 도구입니다 (예: "책 사이의 거리를 얼마나 멀게 할 수 있는가?").

3. 핵심 비결: 실제 환경 테스트 (추측하지 않음)

이것이 가장 중요한 부분입니다. AI는 새로운 배치가 좋은지 추측하는 대신, 실제로 도서관을 구축하고 테스트합니다.

  • AI는 코드의 새로운 배치를 만듭니다.
  • 이 프로그램을 실제 작동하는 바이너리(소프트프트웨어의 새 버전)로 컴파일합니다.
  • 이 새 버전을 실제 하드웨어에서 실행합니다.
  • 실제 성능 카운터(스톱워치와 연료 게이지 같은 것)를 사용하여 정확히 얼마나 빨리 실행되는지 측정합니다.

이를 통해 AI는 "보상 신호"를 얻습니다. 만약 새로운 배치가 더 빠르다면, AI는 금메달을 받고 더 많이 그렇게 하도록 학습합니다. 만약 더 느리다면, 그 실수를 피하도록 배웁니다. 통제된 환경 내의 실제 하드웨어에서 테스트했기 때문에, 결과는 단순히 이론적인 것이 아니라 믿을 수 없을 정도로 정밀합니다.

4. 결과: 작은 이득, 거대한 영향

이 논문은 LLVM Clang 컴파일러(다른 소프트웨어를 빌드하는 데 사용되는 도구)와 거대한 Google 검색 서비스와 같은 대규모의 실제 소프트웨어에서 이 시스템을 테스트했습니다.

  • Clang 컴파일러: 새로운 시스템은 속도를 1.6% 높였습니다.
  • Google 검색 서비스: 검색 서비스를 0.23% 더 빠르게 만들었습니다.

여러분은 "0.23%는 아무것도 아니지 않나?"라고 생각할 수도 있습니다. 하지만 거대한 데이터 센터의 세계에서 이것은 숨겨진 금광을 발견한 것과 같습니다. 매일 수십억 건의 검색에서 0.23%의 시간을 절약한다면, 수백만 달러의 전기 및 서버 비용을 아낄 수 있습니다. 이는 러너가 경주를 9.58초에 끝내느냐, 9.56초에 끝내느냐의 차이와 같습니다. 아주 미세한 차이지만 세계 기록과 2위의 차이를 가르는 결정적인 차이입니다.

5. 실제 작동 방식 ("분할" 기술)

논문은 AI가 발견한 특정 기술을 강조합니다.

  • 기존 방식: 만약 함수(코드 조각)에 "핫(hot, 자주 사용되는)" 부분과 "콜드(cold, 드물게 사용되는)" 부분이 있다면, 기존 시스템은 함수를 두 개로 나누었습니다: 핫한 부분은 한 선반에, 콜드한 부분은 다른 선반에 두는 식입니다.
  • AI-PROPELLER 방식: AI는 때때로 함수를 세 개 이상의 조각으로 나누어야 한다는 것을 깨달았습니다. AI는 함수 A의 특정 "핫"한 덩어리가 원래의 "책"이 무엇인지와 상관없이 함수 B의 "핫"한 덩어리 바로 옆에 배치되어야 한다는 것을 찾아냈습니다. 본질적으로 코드를 작고 정밀한 퍼즐 조각으로 자른 뒤, 가장 많이 사용되는 조각들이 항상 서로 맞닿아 있도록 재조립하는 것입니다.

요약

AI-PROPELLER는 함수 경계를 넘어 대규모 산업용 소프트웨어의 내부 코드를 재배치하는 데 AI를 성공적으로 사용한 첫 번째 시스템입니다. 이 시스템은 단순히 추측하는 것이 아니라, 직접 구축하고, 테스트하며, 실제 하드웨어로부터 배우고 학습합니다. 이를 통해 이미 "완벽하게 최적화되었다"고 여겨지는 소프트웨어에서 추가적인 성능(0.23% ~ 1.6%)을 짜냅니다. 이는 전체를 하나의 조각이 아닌 전체적인 그림으로 바라볼 때, 성숙한 시스템 안에서도 여전히 숨겨진 속도가 기다리고 있음을 증명합니다.

연구 분야의 논문에 파묻히고 계신가요?

연구 키워드에 맞는 최신 논문의 일일 다이제스트를 받아보세요 — 기술 요약 포함, 당신의 언어로.

Digest 사용해 보기 →