AI Sparkup

복잡한 AI 세상을 읽는 힘 ⚡

AI가 GPU 커널을 직접 최적화한다면? Apple 디바이스 성능 87% 향상의 비밀

지금까지 전문가만이 할 수 있던 GPU 커널 최적화를 AI가 자동으로 해결하면서 Apple 디바이스에서 PyTorch 성능을 87% 향상시키는 시대가 열렸습니다.

커널 최적화, 왜 이렇게 어려웠을까?

당신이 만든 AI 모델이 생각보다 느리게 돌아간다면? 그 원인은 GPU 커널에 있을 가능성이 높습니다.

GPU 커널은 쉽게 말해 ‘그래픽카드가 실제로 일하는 방식을 정의하는 코드’입니다. 마치 요리사에게 주는 레시피와 같죠. 같은 재료라도 레시피에 따라 맛이 천차만별인 것처럼, 같은 AI 모델도 커널에 따라 성능이 크게 달라집니다.

문제는 이 레시피를 잘 짜려면 엄청난 전문성이 필요하다는 것입니다. GPU 아키텍처를 속속들이 알아야 하고, 메모리 패턴을 최적화하고, 병렬 처리를 효율적으로 설계해야 합니다. 특히 Apple의 Metal 플랫폼은 CUDA에 비해 자료도 적고 전문가도 부족합니다.

AI를 활용한 자동 커널 최적화 비전
출처: Gimlet Labs – AI를 활용한 자동 커널 최적화 비전

그래서 대부분의 개발자들은 PyTorch가 제공하는 기본 커널을 그대로 사용합니다. 성능이 아쉬워도 손댈 방법이 없었거든요.

AI vs AI: 8개 모델의 커널 최적화 대결

Gimlet Labs는 흥미로운 실험을 했습니다. Claude, GPT, DeepSeek 등 8개의 최첨단 AI 모델에게 GPU 커널 최적화를 맡겨본 것이죠.

실험 대상은 KernelBench 데이터셋의 215개 PyTorch 모듈. 간단한 행렬 곱셈부터 복잡한 신경망 아키텍처까지 다양한 수준의 작업들이었습니다.

결과는? 놀라웠습니다.

각 AI 모델은 서로 다른 방식으로 최적화에 접근했습니다. GPT-5는 Mamba 2 모델에서 4.65배 성능 향상을 달성했고, o3는 한 작업에서 9000배(!) 향상을 기록했습니다. o3가 어떻게 이런 마법을 부렸을까요?

o3는 코드를 자세히 분석한 결과, 특정 설정에서는 결과가 항상 0이 된다는 것을 발견했습니다. 수학적으로 불필요한 계산을 모두 제거한 거죠. 이는 단순히 코드를 빠르게 만드는 것을 넘어, 알고리즘 자체의 비효율성을 찾아낸 것입니다.

혼자서는 안 되지만, 함께라면 가능하다

여기서 핵심 발견이 나옵니다. 어떤 AI 모델도 모든 문제에서 최고는 아니었습니다.

GPT-5가 전체적으로 가장 좋은 성능을 보였지만, 34%의 문제에서만 최고였습니다. 나머지 30%는 다른 모델들이 더 나은 해결책을 제시했죠.

이는 중요한 인사이트를 줍니다. AI 시대의 최적화는 ‘한 방’이 아니라 ‘협업’이라는 것입니다.

에이전트 스웜 아키텍처
출처: Gimlet Labs – 여러 AI 모델이 협력하는 에이전트 스웜 아키텍처

연구팀은 ‘에이전트 스웜’ 방식을 도입했습니다. 여러 AI 모델이 각자 최적화 솔루션을 제안하면, 감독 에이전트가 실제 성능을 테스트해서 가장 좋은 것을 선택하는 방식입니다.

결과? 단일 모델보다 훨씬 나은 성능을 보였습니다. 평균 31% 성능 향상, 레벨 2 문제에서는 42% 향상을 달성했습니다.

컨텍스트의 힘: 더 많은 정보, 더 나은 최적화

인간 커널 엔지니어라면 어떤 정보가 필요할까요? 다른 플랫폼의 최적화된 구현체와 성능 프로파일링 정보겠죠.

연구팀은 AI에게도 이런 정보를 제공했습니다:

  • CUDA 참조 구현 (이미 최적화된 코드)
  • Apple M4 칩의 실제 성능 프로파일링 데이터

문제는 Apple이 Metal 커널 프로파일링 정보를 프로그래밍 방식으로 쉽게 추출할 수 있게 해주지 않는다는 것이었습니다. 연구팀의 해결책? Xcode GUI를 자동으로 조작하는 스크립트를 만들어 스크린샷을 찍고, 이를 AI가 분석하도록 했습니다.

Xcode 프로파일링 스크린샷 분석
출처: Gimlet Labs – AI가 분석하는 Xcode 프로파일링 스크린샷

이런 추가 정보를 제공한 결과는? 성능 향상이 거의 3배로 늘어났습니다! 평균 1.31배에서 1.87배로 점프했죠.

흥미롭게도, 모든 상황에서 더 많은 정보가 항상 도움이 되는 것은 아니었습니다. 때로는 CUDA 참조 코드만 있을 때, 때로는 프로파일링 정보만 있을 때 더 좋은 결과가 나왔습니다. 심지어 아무 추가 정보 없이 순수하게 추론한 결과가 더 나은 경우도 있었죠.

레벨별로 보는 최적화 패턴

커널 복잡도에 따라 AI의 성능도 달랐습니다.

레벨 1 (기본 연산): 행렬 곱셈, 컨볼루션 같은 단순한 연산들. AI들이 비교적 쉽게 최적화했습니다.

레벨 2 (복합 연산): 여러 기본 연산을 조합한 작업들. 여기서 AI들이 가장 빛났습니다. 커널 융합(kernel fusion)을 통해 메모리 접근을 줄이고 오버헤드를 최소화하는 최적화를 잘 찾아냈죠.

레벨 3 (완전한 모델): AlexNet, VGG 같은 전체 모델 아키텍처. 여기서는 아직 개선의 여지가 많았습니다. 하지만 DeepSeek-R1이 VisionAttention 문제에서 18배 성능 향상을 달성하는 등 인상적인 결과도 있었습니다.

성능 향상의 실제 모습

전체 215개 문제에서 중간값(median) 성능 향상은 1.35배, 평균은 1.87배였습니다. 2개의 커널은 100배 이상 빨라졌고요.

성능 향상 분포도
출처: Gimlet Labs – AI 생성 커널의 성능 향상 분포 (215개 문제, 중간값 1.35배, 평균 1.87배)

흥미로운 점은 AI 커널이 항상 더 빠를 필요가 없다는 것입니다. 장시간 실행되는 워크로드에서는 여러 구현을 프로파일링해서 가장 좋은 것을 선택할 수 있습니다. AI 커널이 가끔 더 빠르기만 해도 충분히 가치가 있죠.

개발 패러다임의 변화

이 연구가 보여주는 가장 중요한 인사이트는 무엇일까요?

전문성의 민주화: 이제 GPU 커널 최적화 전문가가 아니어도 최적화된 성능을 얻을 수 있습니다.

즉시 최적화: 새로운 모델이 나오면 첫날부터 최적화된 커널을 얻을 수 있습니다.

자동화된 포팅: 한 플랫폼에서 다른 플랫폼으로 모델을 이식할 때도 AI가 최적화를 자동으로 처리할 수 있습니다.

물론 아직 한계도 있습니다. 가장 복잡한 최적화는 여전히 인간 전문가의 영역입니다. 하지만 AI가 80%의 최적화를 자동으로 처리해준다면, 인간은 정말 중요한 20%에 집중할 수 있겠죠.

미래를 엿보다

Gimlet Labs는 이것이 시작에 불과하다고 말합니다. 더 똑똑한 에이전트 스웜, 더 나은 컨텍스트 활용, 그리고 Metal뿐만 아니라 ROCm, CUDA, SYCL 등 다른 백엔드로의 확장을 계획하고 있습니다.

추론뿐만 아니라 훈련 워크로드 최적화도 목표입니다. 새로운 모델이 출시 첫날부터 모든 플랫폼에서 최적화된 성능을 보이는 세상이 머지않아 올 것 같습니다.

AI가 AI를 최적화하는 시대. 이제 개발자들은 복잡한 저수준 최적화 대신 더 창의적인 문제 해결에 집중할 수 있게 될 것입니다.


참고자료:


AI Sparkup 구독하기

최신 게시물 요약과 더 심층적인 정보를 이메일로 받아 보세요! (무료)

Comments