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

한 줄 요약
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이 없으면 이 경로는 아예 비교 대상에 못 들어갑니다.
재현 조건
- PyTorch 2.14와 호환 CUTLASS DSL 패키지 환경을 준비합니다.
torch.compile에 max autotune을 켭니다.- GEMM 백엔드 목록에 NVGEMM을 포함합니다.
이 조건에서 Inductor는 NVGEMM 후보를 Triton·ATen과 함께 재고, 표현 가능한 epilogue는 커널 안으로 합칩니다. 표현하지 못하는 epilogue는 Triton 쪽으로 떨어져 기존 fusion을 유지합니다.
성능·해결 체크
- 저정밀·스케일 GEMM 경로도 pointwise 후처리가 epilogue로 들어갈 수 있습니다. 다만 일부 초저정밀 경로는 특정 GPU 세대 제약이 있습니다.
- autotune 시간이 늘어날 수 있으니, 벤치는 warm compile과 steady-state를 구분하십시오.
- 디스크 캐시가 있으면 재컴파일 비용이 줄어듭니다. 클린 환경과 캐시 환경을 섞어 보고하지 마십시오.
관련 DAKER 학습
설명용 생성 이미지입니다. 커널 이름은 프로파일러 로컬 결과로 확인하십시오.