cudagraph_trees_generation_cloning을 user_visible로 켜면 세대 넘김에도 사용자 출력이 살아 있습니다 | DAKER 커뮤니티

그래프트리 복제
설명용 생성 이미지입니다.

한 줄 요약
Inductor CUDA Graph Trees에서 세대가 바뀌면, 이전 세대에 살아 있던 사용자 출력 텐서가 끊길 수 있습니다. PyTorch 2.14의 선택 설정 torch._inductor.config.triton.cudagraph_trees_generation_cloning = "user_visible"을 켜면 사용자에게 보이는 출력을 세대 넘김에도 복제·유지합니다. 긴 디코드·스트리밍처럼 그래프 트리를 여러 세대에 걸쳐 쓰는 경로에서 오늘 확인할 수 있습니다.

짧은 컴파일 모델을 reduce-overhead 또는 CUDA Graph Trees가 켜지는 모드로 올린 뒤, 세대를 넘기는 입력을 연속 실행하십시오. 기본값과 user_visible을 같은 시퀀스로 비교해, 이전 출력 참조가 유효한지·스텝 시간이 얼마나 바뀌는지 봅니다.

재현해 볼 실험 조건

  1. CUDA Graph Trees가 동작하는 설정으로 작은 모델을 컴파일하고, 세대를 넘기는 입력 시퀀스를 준비합니다.
  2. 기본 설정으로 N스텝을 돌리며, 이전 스텝 출력 텐서를 다음 스텝 입력·로깅에 다시 참조합니다.
  3. 같은 시퀀스에 cudagraph_trees_generation_cloning="user_visible"을 켠 뒤, 출력 유효성·복사 비용·스텝 시간을 비교합니다.

이전에 다룬 CUDA 그래프 while_loop 캡처·지역성 재배치와는 다른 축입니다. 오늘은 그래프 트리 세대와 사용자 출력 수명만 봅니다.

실무에서 바로 볼 포인트

관련 DAKER 학습

설명용 생성 이미지입니다. 동작은 로컬에서 세대 넘김 시퀀스를 기본값과 user_visible로 비교해 확인하십시오.