ComFuse: 현대적 GPU 아키텍처를 위한 연산 집약적 커널과 메모리 집약적 서브그래프의 융합
요약
ComFuse는 현대적 GPU 아키텍처를 위해 연산 집약적 연산자와 메모리 집약적 서브그래프를 결합하는 새로운 자동화된 GPU 컴파일 시스템입니다. 기존 컴파일러의 경직된 융합 경계를 극복하여 연산과 메모리 작업을 동시에 실행함으로써 성능을 최적화합니다.
핵심 포인트
- 연산 집약적 연산자와 메모리 집약적 서브그래프의 융합 전략 제안
- 연산 뒤로 메모리 작업을 숨겨 데이터 재사용 및 실행 효율 극대화
- 연속적인 GEMM 패턴 융합 및 고수준 텐서 서브프로그램 자동 변환 지원
- TorchInductor 대비 post-norm 및 복잡한 시나리오에서 우수한 성능 입증
현대적인 딥러닝 워크로드(workloads)는 연산 집약적(compute-intensive) 연산자와 메모리 집약적(memory-intensive) 서브그래프(subgraphs)가 결합된 이기종 계산 그래프(heterogeneous computation graphs)로 구성되는 경우가 점점 늘어나고 있습니다. 기존의 딥러닝 컴파일러(compilers)는 일반적으로 이러한 연산자 클래스들을 별도로 최적화하며, 이는 연산자 간 최적화(cross-operator optimization)와 온칩 데이터 재사용(on-chip data reuse)을 제한하는 경직된 융합 경계(fusion boundaries)를 생성합니다. 우리는 다운스트림(downstream)의 메모리 집약적 연산들이 연산 집약적 연산자들과 동시에 실행될 수 있어, 연산 뒤로 그 실행을 숨길 수 있다는 점을 관찰했습니다. 그러나 이러한 기회를 자동으로 활용하는 것은 새로운 컴파일 과제를 제기합니다. 본 논문에서는 연산 집약적 연산자와 의존성이 풍부한 메모리 집약적 요소별 감소(elementwise-reduction) 서브그래프로 구성된 복잡한 그래프 구조를 위해 고성능 커널(kernels)을 생성하는 새로운 연산자 융합(operator fusion) 전략을 채택한 자동화된 GPU 컴파일 시스템인 ComFuse를 제안합니다. ComFuse는 더 나아가 연속적인 GEMM (B2BGEMM) 패턴의 융합을 지원하여, 더 복잡한 연산-메모리 상호작용 패턴으로 적용 범위를 확장합니다. 또한, 고수준 텐서 서브프로그램(high-level tensor subprograms)을 최적화된 융합 커널로 자동 변환(lowers)하여 수동 커널 엔지니어링의 필요성을 줄여줍니다. 실험 결과에 따르면, ComFuse가 생성한 융합 커널은 더 유연한 융합 패턴을 지원하는 동시에, post-norm 워크로드 및 다양한 복잡한 계산 시나리오 전반에서 TorchInductor가 생성한 커널보다 우수한 성능을 보여줍니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 arXiv cs.AR의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기