PyTorch 2.14 NVGEMM을 max_autotune GEMM 후보에 넣으면 epilogue fusion까지 한 커널로 갑니다 | DAKER 커뮤니티

GEMM 후보를 고릅니다
설명용 생성 이미지입니다.

한 줄 요약
PyTorch 2.14의 NVGEMM은 Inductor가 mm·addmm·scaled_mm 후보를 고를 때 Triton·ATen과 함께 경쟁하는 CuTeDSL 기반 GEMM 백엔드입니다. max_autotune 아래에서 max_autotune_gemm_backends에 NVGEMM을 넣어야 켜지며, bias·pointwise·reduction epilogue를 같은 커널에 붙일 수 있습니다.

행렬곱 뒤 activation을 따로 돌리고 있다면, 오늘은 커널이 몇 번 뜨는지부터 세어 보십시오. 후보에 NVGEMM이 없으면 이 경로는 아예 비교 대상에 못 들어갑니다.

재현 조건

  1. PyTorch 2.14와 호환 CUTLASS DSL 패키지 환경을 준비합니다.
  2. torch.compile에 max autotune을 켭니다.
  3. GEMM 백엔드 목록에 NVGEMM을 포함합니다.

이 조건에서 Inductor는 NVGEMM 후보를 Triton·ATen과 함께 재고, 표현 가능한 epilogue는 커널 안으로 합칩니다. 표현하지 못하는 epilogue는 Triton 쪽으로 떨어져 기존 fusion을 유지합니다.

성능·해결 체크

관련 DAKER 학습

설명용 생성 이미지입니다. 커널 이름은 프로파일러 로컬 결과로 확인하십시오.