리서치· 4 분 소요

24시간, 툴 콜 1,000번: 커널 최적화 사례 연구가 증명한 것

벤치마크는 에이전트의 단거리 전력 질주를 잽니다. Meta의 커널 최적화 연구는 마라톤을 쟀습니다. 그리고 진짜 흥미로운 숫자는 후자 쪽입니다.

#gpu-kernels#long-horizon#agentic-coding#triton

실험 설계

Meta는 Muse Spark 1.2가 GPU 커널을 반복적으로 최적화하는 능력을 테스트했습니다. 툴 콜 1,000회 이상, 최대 24시간에 이르는 실행이었습니다. Muse Code의 에이전트 환경 안에서 모델은 커널을 작성하고, 컴파일하고, 제공된 베이스라인과 비교해 프로파일링한 뒤, 그 프로파일링 데이터를 바탕으로 다시 시도합니다. 작성-컴파일-프로파일-개선으로 이어지는 촘촘한 루프를 꼬박 하루 동안 유지한 것입니다. 벤치마크 대상은 NVIDIA Hopper GPU 위의 KDA 및 MLA 어텐션 커널이었습니다.

이 테스트를 정직하게 만든 규칙이 하나 있습니다. FLA 같은 서드파티 커널 라이브러리의 import를 금지한 것입니다. 이미 빠른 기존 구현을 감싸 놓고 자기 공으로 삼는 일은 불가능했고, 에이전트는 진짜 커널 최적화 지식을 동원해 알고리즘을 Triton으로 직접 구현해야 했습니다.

에이전트가 실제로 만들어낸 것

결과물은 뻔한 수준이 아니었습니다. FLA의 Triton 구현을 베이스라인으로 삼은 KDA에서는, 청크 병렬(chunk-parallel) 준비 커널과 순차적 청크 간 스캔을 짝지으면서, 표준적인 퓨전·타일링에 더해 게이트된 누적 감쇠(gated cumulative decay)를 청크 중간점에서 재중심화하는 KDA 특화 기법까지 결합했습니다. 배치 크기 1, 헤드 64개, 시퀀스 길이 8192, 잠재 차원 512 조건의 PyTorch 레퍼런스와 비교한 MLA에서는, 공유 KV 잠재 표현을 K와 V로 동시에 재사용하는 2커널 Triton 파이프라인을 설계했습니다.

이런 최적화는 표면적인 루프 손질이 아니라, 알고리즘 구조를 이해한 전문가가 내놓을 법한 수준입니다. 그리고 에이전트는 실행이 이어지는 내내 베이스라인 대비 유의미한 개선을 계속 찾아냈습니다. 초반 한 번의 스퍼트 이후 정체되는 것이 아니라, 수백 번의 반복에 걸쳐 진전이 누적되었습니다.

진짜 헤드라인은 ’24시간’이다

커널을 20분 동안 개선할 수 있는 모델은 많습니다. 하지만 하루 종일 방향성 있는 진전을 유지하려면 대부분의 에이전트에 없는 인프라가 필요합니다. 하중을 견디는 축은 세 개입니다. 목표 조건화(goal conditioning)는 700번째 반복이 첫 번째 반복과 같은 목표를 겨냥하게 만드는데, 모델은 정확히 이것을 위해 훈련되었습니다. 컨텍스트 컴팩션은 하루치 히스토리에 익사하지 않으면서도 중요한 지식(어떤 전략이 실패했는지, 프로파일러가 뭐라고 했는지)을 유지합니다. 그리고 이벤트 로그는 런타임을 재시작해도 안전하게 만듭니다. 24시간이면 뭔가는 반드시 삐끗하기 마련이고, 23시간째의 기록을 날려버리는 크래시 하나면 실험 전체가 무의미해졌을 테니까요.

평범한 업무에는 어떤 의미인가

Hopper 커널을 최적화하는 팀은 드뭅니다. 하지만 이 과제의 형태, 즉 측정 가능한 목표를 향해 반복하고, 매 시도에서 배우고, 맥락의 끈을 놓치지 않는 일은 화려하진 않아도 흔한 엔지니어링 업무와 닮았습니다. 불안정한 테스트 스위트 잡기, 번들 크기 갈아내리기, 호출부 백 곳짜리 API 마이그레이션 같은 것들 말입니다. 이 사례 연구는 “돌려놓고 내일 확인한다”가 이제 실재하는 워크플로우라는 Meta의 증거입니다. 평가 방법론은 Meta 리서치 사이트에 공개되어 있고, 장기 실행 작업의 제품 쪽 이야기는 문서에서 시작할 수 있습니다.

계속 읽기