cudagraph_mark_warmup_incomplete를 호출하면 CUDA Graph Trees가 워밍업을 한 번 더 돕니다 | DAKER 커뮤니티
한 줄 요약
PyTorch 2.14에 torch.compiler.cudagraph_mark_warmup_incomplete가 있습니다. CUDA Graph Trees 경로에서 아직 모양이 덜 안정적일 때 호출하면, 라이브러리가 워밍업 반복을 한 번 더 돌리도록 요청할 수 있습니다. 조기 캡처로 깨지던 구간을 오늘 바로 다시 재현해 볼 수 있습니다.
torch.compile의 reduce-overhead·그래프 트리 모드에서는 워밍업이 끝난 뒤 캡처가 고정됩니다. 입력 경로·제어 흐름이 늦게 안정화되면 한 세대가 너무 일찍 굳을 수 있습니다. 같은 입력을 기본 워밍업과 마크 호출 뒤로 나눠 돌리십시오.
재현해 볼 실험 조건
- CUDA Graph Trees가 켜진 컴파일 모드로 짧은 스텝을 돌리고, 워밍업 직후 첫 캡처 세대를 기록합니다.
- 모양이 바뀌는 직전·직후에
cudagraph_mark_warmup_incomplete를 호출한 뒤, 추가 워밍업이 붙는지와 오류·스킵 사유를 비교합니다. - 어제 다룬
cudagraph_trees_generation_cloning=user_visible과 겹치면, 오늘은 워밍업 연장만 켜고 복제 설정은 기본으로 둡니다.
세대 복제·while_loop 캡처와는 다른 축입니다. 오늘은 워밍업을 한 번 더 요청하는 API만 봅니다.
실무에서 바로 볼 포인트
- 동적 배치·희소 경로처럼 초반 몇 스텝에만 모양이 흔들리는 모델에 먼저 적용합니다.
- 호출 위치를 재현 가능한 훅(스텝 경계)에 고정하고, 과다 호출로 워밍업이 끝나지 않는지 로그로 확인합니다.
- 재현 노트에 컴파일 모드, 디바이스, 마크 호출 시점, 캡처 세대 번호를 남깁니다.
관련 DAKER 학습
설명용 생성 이미지입니다. 동작은 로컬에서 마크 호출 전후 워밍업·캡처 로그를 비교해 확인하십시오.