Inductor reorder_for_locality_in_training으로 학습 그래프에서도 지역성 재배치를 켜 캐시 효율을 조율합니다 | DAKER 커뮤니티
한 줄 요약
PyTorch 2.14에서 Inductor의 reorder_for_locality를 학습 그래프에도 켤 수 있습니다. reorder_for_locality_in_training 설정을 켜면, 예전엔 추론에만 돌던 지역성 재배치를 학습 컴파일 그래프에서도 시험할 수 있습니다. 기본값은 꺼져 있습니다.
학습 루프를 torch.compile로 묶었을 때, 캐시 지역성이 아쉬운 구간이 있으면 오늘은 이 스위치만 따로 켜 보십시오. 기본 동작을 바꾸지 않으므로, 같은 모델·같은 배치에서 켜기 전후 스텝 시간과 메모리만 비교하면 됩니다. 참가자 노트에는 PyTorch 버전, 컴파일 모드, 설정 on/off, 스텝 시간 한 줄을 남깁니다.
재현해 볼 실험 조건
- 작은 학습 스텝을
torch.compile로 감싼 뒤, 기본 설정으로 몇 스텝을 돌려 기준 시간을 적습니다. - Inductor 설정에서
reorder_for_locality_in_training만 켠 뒤 같은 입력을 다시 돌립니다. - 두 실행의 스텝 시간·예약 메모리를 한 표로 비교하고, 효과가 없으면 설정을 다시 끕니다. 추론 전용 지역성 패스와 섞어 쓰지 마십시오.
simple_overlap은 집단통신과 연산을 겹치는 기본 재배치이고, 이번 글은 학습 그래프용 지역성 재배치 옵트인입니다. 실험이 끝나면 버전·모델 크기·on/off 결과를 고정해 두면 다음 참가자가 바로 따라올 수 있습니다.
실무에서 바로 볼 포인트
- 학습 컴파일에서 캐시 지역성이 병목일 때만 옵트인으로 켜십시오.
- 기본값 off이므로, 켠 뒤에는 반드시 끄기 전과 같은 조건으로 비교합니다.
- 통신-연산 겹침 실험과 한 번에 섞지 말고, 이번엔 지역성 스위치만 확인하십시오.
관련 DAKER 학습
설명용 생성 이미지입니다. 동작은 로컬에서 reorder_for_locality_in_training on/off 비교로 확인하십시오.