prefer_cublaslt_grouped_gemm을 켜면 bf16 그룹 GEMM도 cuBLASLt 경로를 탑니다 | DAKER 커뮤니티
한 줄 요약
PyTorch 2.14는 Hopper·Blackwell에서 cuBLASLt 그룹 GEMM 백엔드를 제공합니다. float16 적격 부하는 기본으로 이 경로를 탈 수 있고, bfloat16은 torch.backends.cuda.matmul.prefer_cublaslt_grouped_gemm = True로 옵트인합니다. torch.compile과 CUDA Graph와도 같이 쓸 수 있습니다.
행렬과 leading dimension이 16바이트 정렬이 아니면 패딩·슬라이스가 필요할 수 있습니다. 오늘 실험은 “플래그 off/on + 같은 bf16 그룹 GEMM 모양”만 비교하고, 스텝 시간과 선택한 백엔드 흔적을 노트에 남깁니다.
재현해 볼 실험 조건
- CUDA 13.3 이상·Hopper 또는 Blackwell에서 같은 bf16 그룹 GEMM을 플래그 끄고 한 번, 켠 뒤 한 번 측정합니다.
- 정렬이 어긋난 모양은 16바이트에 맞게 패딩한 뒤 다시 측정해, 실패·폴백과 성공 경로를 구분합니다.
- 가능하면
torch.compile또는 CUDA Graph 캡처 안에서도 같은 플래그 전후를 한 번씩만 비교합니다.
어제 다룬 TunableOp 후보 수·핀드 호스트 스냅샷·워밍업 연장과는 다른 축입니다. 오늘은 그룹 GEMM 옵트인만 봅니다.
실무에서 바로 볼 포인트
- 전역 기본을 바꾸기 전에 핫 패스 그룹 GEMM 몇 개만 골라 bf16 옵트인 효과를 확인합니다.
- 정렬·패딩 비용을 무시하면 커널은 빨라져도 end-to-end가 안 나아질 수 있으니 복사 시간을 같이 적습니다.
- TunableOp·NVGEMM 실험과 겹치면 먼저 이 플래그만 분리해 기록합니다.
관련 DAKER 학습
설명용 생성 이미지입니다. 동작은 로컬에서 같은 bf16 그룹 GEMM을 플래그 전후로 비교해 확인하십시오.