작은대학교

대학원 브리핑

GPU 커널을 캐묻는 다섯 AI, 컴파일러가 남긴 자리만 손본다

무엇을 한 연구인가

이 연구는 컴파일된 모델을 하나의 구조물로 다루는 다중 에이전트 시스템 KernelOPT를 제안합니다. 연구진은 PyTorch Inductor 같은 컴파일러가 만들어 낸 Triton 서브커널만을 최적화 대상으로 삼고, 프로파일링 정보를 활용하는 다섯 개의 LLM 에이전트를 동원해 후보를 탐색합니다. cuBLAS·cuDNN 같은 벤더 라이브러리 호출은 그대로 보존하며, 컴파일러가 내린 구조적 결정을 존중하는 방식으로 접근합니다. 최적화 과정에서 네 단계 검증 관문을 통과한 후보만 채택하고, 재조립된 모델 전체를 다시 확인합니다. 입력으로는 PyTorch nn.Module, 독립 Triton 커널, Helion 커널을 받습니다. [출처: arXiv:2609.30059v1]

초록이 말하는 것 전부

딥러닝의 학습과 추론 성능은 GPU 커널이 얼마나 효율적인지에 크게 좌우됩니다. PyTorch Inductor 같은 현대 컴파일러는 상위 수준 모델 코드에서 GPU 커널을 자동 생성하지만, 전문가가 손으로 작성한 구현에 비해 성능이 크게 뒤처지는 경우가 잦습니다. 최근 LLM을 활용한 커널 최적화 도구들은 독립적으로 떨어진 커널 하나를 다루는 데서는 이 격차를 좁혀 왔습니다. 그러나 이들은 컴파일된 모델을 블랙박스로 취급하는 경향이 있어, 컴파일러가 내린 구조적 결정을 존중하지 않고 개별 커널만 따로 최적화하며, 모델 전체 수준에서의 검증도 하지 않습니다. 이 연구는 이 지점을 문제로 삼습니다. 그래서 컴파일된 모델을 구조를 가진 산출물로 다루는 다중 에이전트 시스템을 내놓습니다. 벤더 라이브러리 호출은 건드리지 않고, 컴파일러가 생성한 Triton 서브커널에만 최적화를 집중합니다. 프로파일링을 길잡이로 삼는 다섯 개의 LLM 에이전트가 후보를 만들어 냅니다. 이 후보들은 정적 검증, 여러 시드에서의 정확성 확인, 모델 수준의 float64 대체 검증, 성능 관문이라는 네 겹의 검증 사슬을 통과해야 합니다. 이 사슬은 최적화 도중에 후보를 걸러 내는 역할과, 다시 꿰맨 모델을 끝에서 끝까지 확인하는 역할을 함께 합니다. 만약 어떤 후보도 네 관문을 모두 통과하지 못하면, 시스템은 컴파일러가 원래 내놓은 기준선을 그대로 유지합니다. 즉 성능을 얻지 못하더라도 정확성을 잃지 않는 쪽을 택하는 설계입니다. [출처: arXiv:2609.30059v1]

결과

KernelBench의 문제 250개를 대상으로 평가했습니다. torch.compile 대비 기하평균 속도 향상은 Level 1에서 1.40배, Level 2에서 1.15배, Level 3에서 1.07배였습니다. 문제 통과 수는 Level 1이 100개 중 51개, Level 2가 100개 중 31개, Level 3가 50개 중 12개였습니다. [출처: arXiv:2609.30059v1]

우리가 해석한다

이 논문의 진짜 승부수는 속도 숫자가 아니라 「어디를 건드리지 않는가」에 있습니다. 기존 LLM 커널 최적화 연구들은 대개 커널 하나를 떼어 놓고 더 빠르게 만드는 데 집중합니다. 그런데 실제 모델에서는 컴파일러가 이미 어느 부분을 벤더 라이브러리에 넘기고 어느 부분을 자체 생성 커널로 처리할지 결정해 두었습니다. 그 결정을 무시하고 아무 커널이나 손대면, 국소적으로는 빨라져도 전체 모델에서는 이득이 사라지거나 정확성이 깨질 수 있습니다. KernelOPT는 이 경계를 명시적으로 긋고, 자기가 손댈 수 있는 영역을 Triton 서브커널로 한정합니다. [연결] 이는 「최적화의 자유도」와 「안전성」을 맞바꾸는 설계 철학으로 읽힙니다. 네 겹 검증 사슬도 같은 맥락입니다. 특히 모델 수준 float64 대체 검증은 커널 단위 테스트로는 잡히지 않는 누적 오차를 걸러 내려는 장치로 보입니다. [연결] 실무적으로는 컴파일된 모델을 그대로 배포하면서 남는 성능을 짜내려는 팀에게 매력적입니다. 다만 Level이 올라갈수록 향상 폭이 줄어드는 패턴은, 복잡한 모델일수록 컴파일러가 이미 잘하고 있거나 반대로 손댈 여지가 줄어든다는 신호로 읽힙니다. [연결] 에이전트 수를 다섯으로 고정한 이유, 프로파일링을 어떻게 에이전트에게 먹이는지 같은 설계 세부는 이 초록만으로는 알 수 없어 후속 확인이 필요합니다.

이 논문으로 말할 수 없는 것

이 논문은 KernelBench 250문제라는 특정 벤치마크에서만 측정했습니다. 벤치마크 통과 수와 속도 향상은 실제 배포 환경에서의 체감 성능과 다를 수 있고, 측정된 속도가 곧 모델의 능력은 아닙니다. 비교 대상은 torch.compile 기준선이며, 다른 컴파일러나 다른 하드웨어 구성에서도 같은 경향이 나오는지는 밝히지 않았습니다. 에이전트가 사용한 LLM의 종류·크기·학습 데이터가 결과에 얼마나 기여했는지도 분리되지 않아, 시스템 설계의 공로인지 모델 성능의 공로인지 구분하기 어렵습니다. 또한 arXiv는 사전출판 서버로 동료심사를 거쳤다는 보장이 없습니다. [출처: arXiv:2609.30059v1]

남는 물음

컴파일러가 이미 잘하고 있는 영역을 건드리지 않는 것이 정말 최선일까요, 아니면 그 경계 자체를 다시 협상하는 것이 다음 돌파구일까요?

260927_09

← 대학원으로