torch.cuda.tunable.set_cublaslt_requested_algo_count로 후보를 늘리면 TunableOp가 나쁜 GEMM 휴리스틱을 다시 고릅니다 | DAKER 커뮤니티
한 줄 요약
PyTorch 2.14부터 TunableOp가 CUDA에서 cuBLASLt 휴리스틱 후보를 함께 고릅니다. torch.cuda.tunable.set_cublaslt_requested_algo_count 또는 환경 변수로 후보 수를 늘리면, 기본 cuBLAS 휴리스틱이 약한 GEMM 모양을 다시 측정해 캐시할 수 있습니다. 평균이 크게 오르지 않아도 모양별 편차가 클 때 오늘 바로 점검할 수 있습니다.
문제 모양이 보이면 TunableOp를 켠 뒤 후보 수를 올린 설정과 기본(후보 적음) 설정을 같은 입력으로 한 번씩만 비교하십시오. 노트에는 PyTorch 버전, GPU, dtype, m·n·k·leading dimension, 후보 수, 스텝 시간을 남깁니다.
재현해 볼 실험 조건
- 같은 GEMM 모양으로 TunableOp 끄기·켜기(기본 후보)를 각각 측정합니다.
set_cublaslt_requested_algo_count로 후보를 늘린 뒤 같은 모양을 다시 측정하고, 캐시에 남은 선택을 확인합니다.- 패딩된 leading dimension이 m·n·k와 같아지는 오프라인 튜닝 파일은 잘못된 모양으로 튜닝되지 않는지 한 번 더 점검합니다.
어제 다룬 컴파일 구간 메모리 풀·CUDA Graph Trees 복제·FFT bfloat16과는 다른 축입니다. 오늘은 TunableOp와 cuBLASLt 후보만 봅니다.
실무에서 바로 볼 포인트
- H100 등에서 평균은 비슷해도 모양별 배율이 크게 갈라질 수 있으니, 핫 패스 GEMM만 골라 후보를 늘립니다.
- 전역 기본값을 올리기보다 문제 모양에만 적용하고, 캐시·환경 변수를 재현 노트에 고정합니다.
- NVGEMM·에필로그 융합 후보와 겹치면 먼저 TunableOp 결과만 분리해 기록합니다.
관련 DAKER 학습
설명용 생성 이미지입니다. 동작은 로컬에서 같은 GEMM을 후보 수 전후로 비교해 확인하십시오.