본문으로 건너뛰기
PyTorch조회 3

범용 내적 어텐션(GDPA): 실제 추천 시스템 학습 부하를 위한 커널 최적화

Meta는 실제 추천 시스템의 불규칙한 데이터 특성에 맞춰 FlashAttention-4를 개선한 GDPA 커널을 설계하여 NVIDIA B200에서 최대 2배의 성능 향상을 달성했다.

섹션별 상세

GDPA는 표준 어텐션의 소프트맥스를 GELU, SiLU 등 범용 활성화 함수로 대체하여 추천 시스템의 다양한 상호작용 패턴을 하나의 고성능 커널로 통합한다.
Self-attention, PMA, pFFN 구조가 GDPA로 통합되는 과정을 보여주는 다이어그램
Diagram추천 시스템에서 사용되는 다양한 어텐션 변형들이 공통적으로 두 개의 행렬 곱셈과 중간 활성화 함수 패턴을 공유함을 시각화한다. 이를 통해 GDPA 커널 하나로 여러 모듈을 통합 최적화할 수 있는 근거를 제시한다.
실제 운영 환경의 데이터는 짧고 비대칭적인 시퀀스와 가변적인 길이를 가지며, 이는 기존 LLM 중심 커널 설계와 성능 격차를 발생시키는 주요 원인이다.
실제 운영 데이터와 벤치마크 데이터 간의 커널 성능 격차를 보여주는 차트
Chart합성 데이터 기반 벤치마크와 달리 실제 데이터에서는 포워드 패스에서 2.6배, 백워드 패스에서 1.6배의 성능 저하가 발생함을 보여준다. 이는 기존 커널이 실제 데이터의 불규칙성을 제대로 처리하지 못하고 있음을 증명한다.
소프트맥스 보정 단계를 제거하고 워프(Warp) 구성을 최적화하여 레지스터 자원을 추가로 확보하고 파이프라인 효율을 높였다.
짧은 K/V 시퀀스에서 발생하는 오버헤드를 줄이기 위해 내부 루프가 아닌 외부 루프 수준에서 소프트웨어 파이프라이닝(SWP)을 적용하여 연산 중첩을 극대화했다.
루프 플래닝(Loop Flattening) 적용 전후의 워프 실행 타임라인 비교
Diagram내부 루프 파이프라이닝에서 발생하던 버블(유휴 시간)이 외부 루프 수준의 SWP 적용 후 크게 줄어드는 것을 보여준다. 특히 짧은 K/V 시퀀스에서 연산 효율이 어떻게 개선되는지 시각적으로 설명한다.
불규칙한(Jagged) 입력을 처리하기 위해 CPU에서 유효 타일을 미리 계산하고 지그재그 패턴으로 SM에 할당하는 새로운 로드 밸런싱 알고리즘을 도입했다.
지그재그 타일 스케줄링을 통한 SM 부하 분산 과정 설명도
Diagram불규칙한 입력으로 인해 발생한 SM 간의 작업량 불균형을 라운드 로빈과 지그재그 정렬 스케줄링을 통해 해결하는 과정을 보여준다. 최대/최소 부하 격차가 12:1에서 5:4 수준으로 좁혀지는 효과를 수치로 제시한다.
SFU(Special Function Unit) 병목을 해결하기 위해 tanh 기반 GELU 대신 ALU만 사용하는 6차 테일러 급수 근사법을 사용하여 연산 밀도를 높였다.
python
def gelu_taylor_approximation(x):
    # ALU-only Taylor expansion up to x^6
    # GELU(x) ≈ 1/2*x + 1/sqrt(2*pi)*x^2 - 1/(6*sqrt(2*pi))*x^4 + 1/(40*sqrt(2*pi))*x^6
    c1 = 0.5
    c2 = 0.3989422804  # 1/sqrt(2*pi)
    c4 = -0.0664903801 # 1/(6*sqrt(2*pi))
    c6 = 0.0099735570  # 1/(40*sqrt(2*pi))
    
    x2 = x * x
    x4 = x2 * x2
    x6 = x4 * x2
    return c1 * x + c2 * x2 + c4 * x4 + c6 * x6

SFU 병목을 피하기 위해 ALU 연산만으로 구성한 GELU의 6차 테일러 급수 근사 구현 예시

표준 tanh 기반 GELU와 6차 테일러 급수 근사 모델의 입력 범위별 출력 비교 그래프
Chart테일러 급수 근사가 특정 입력 범위 내에서 매우 정확함을 보여준다. 실제 모델에서는 RMSNorm을 통해 입력값이 이 범위 내로 제한되므로, 정확도 손실 없이 SFU 병목을 해결할 수 있음을 뒷받침한다.

용어 해설

범용 내적 어텐션(GDPA)
표준 어텐션의 소프트맥스(Softmax) 연산을 GELU, SiLU 등 다양한 활성화 함수로 대체한 구조이다. 추천 시스템 모델에서 서로 다른 데이터 간의 복잡한 상호작용을 효율적으로 모델링하기 위해 사용된다.
불규칙 텐서(Jagged Tensor)
배치 내의 각 시퀀스 길이가 서로 다른 형태의 데이터 구조이다. 실제 서비스 데이터에서 흔히 발생하며, GPU 연산 시 특정 유닛에 부하가 집중되거나 유휴 자원이 발생하는 부하 불균형의 주요 원인이 된다.
소프트웨어 파이프라이닝(Software Pipelining)
루프 내의 명령어들을 중첩시켜 하드웨어 자원의 유휴 시간을 최소화하는 최적화 기법이다. 메모리에서 데이터를 읽어오는 동안 이전 단계의 연산을 동시에 수행하여 전체 처리 속도를 높인다.
특수 함수 유닛(SFU)
지수(exp), 삼각함수 등 복잡한 초월 연산을 전담하는 GPU 내 하드웨어 유닛이다. 일반 연산 유닛(ALU)보다 수가 적어 복잡한 활성화 함수를 많이 사용하는 커널에서 성능 병목 지점이 되기 쉽다.
퍼시스턴트 커널(Persistent Kernel)
GPU의 스트리밍 멀티프로세서(SM) 자원을 미리 점유하고 커널 내부에서 작업을 스스로 스케줄링하는 방식이다. 커널 호출 오버헤드를 줄이고 동적인 작업 할당을 통해 하드웨어 활용률을 극대화한다.

기술

  • PyTorch
  • NVIDIA B200
  • Triton
  • CUTLASS
  • FlashAttention-4

활용 사례

  • 대규모 추천 시스템 학습
  • 불규칙한 시퀀스 데이터 처리
  • 고성능 어텐션 커널 구현
AI 분석 전체 내용 보기

AI 요약 · 북마크 · 개인 피드 설정 — 무료

출처 · 인용 안내

원문 발행 2026. 03. 19.수집 2026. 03. 19.출처 타입 RSS

인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.