record_pinned_host_memory를 켜면 메모리 스냅샷에 핀드 호스트 세그먼트가 같이 남습니다 | DAKER 커뮤니티

핀드 호스트 스냅샷
설명용 생성 이미지입니다.

한 줄 요약
PyTorch 2.14부터 torch.cuda.memory._record_memory_history에 record_pinned_host_memory=True를 주면, 디바이스 할당뿐 아니라 핀드(페이지 고정) 호스트 할당도 스냅샷에 남습니다. host_segments·host_traces로 스테이징 버퍼가 프로세스 수명 동안 불어나는지 오늘 바로 볼 수 있습니다.

DataLoader·H2D 복사·CUDA 그래프에 묶인 핀드 버퍼는 한 번 잡고 오래 두는 경우가 많습니다. 디바이스만 보던 스냅샷으로는 그 누수가 안 보였습니다. 같은 워크로드를 기록 전후로 한 번씩만 돌려 호스트 쪽 증가분을 확인하십시오.

재현해 볼 실험 조건

  1. 기존처럼 디바이스만 기록한 스냅샷을 한 장 저장합니다.
  2. 같은 구간을 record_pinned_host_memory=True로 다시 기록하고, 필요하면 record_cuda=False로 호스트만 남깁니다.
  3. 스냅샷 JSON의 host_segments·host_traces 크기·개수·타임스탬프를 비교합니다. 웹 비주얼라이저는 아직 호스트를 그리지 않을 수 있으니 필드를 직접 읽습니다.

어제 다룬 메모리 풀·그래프 트리 복제와는 다른 축입니다. 오늘은 핀드 호스트 관측만 봅니다.

실무에서 바로 볼 포인트

관련 DAKER 학습

설명용 생성 이미지입니다. 동작은 로컬에서 핀드 기록 전후 스냅샷 필드를 비교해 확인하십시오.