KJNodes/memorygenerated

Start Recording CUDAMemory History(StartRecordCUDAMemoryHistory)

이 노드는 PyTorch의 torch。

Start Record CUDA Memory History

input
input
COMBO
enabled
all
context
all
stacks
all
max_entries
100000
KJNodes

Start Recording CUDAMemory History 노드는 CUDA 메모리 할당 및 해제 기록 추적을 시작합니다. 이 노드는 항상 실행됩니다, bypass 또는 mute 상태와 관계없이. 이는 진단 도구로, 사용자가 모델 실행 시 GPU 메모리 사용 상황을 심층적으로 이해하고, 향후 성능 분석 및 메모리 누수 조사를 위한 데이터 기반을 제공하는 것을 목표로 합니다. 이 노드는 일반적으로 완전한 기록 주기를 완료하기 위해 EndRecordCUDAMemoryHistory 노드와 쌍으로 사용됩니다.

노드 기능

이 노드는 PyTorch의 torch.cuda.memory._record_memory_history 인터페이스를 호출하여 핵심 기능을 구현합니다. 사용자는 기록 범위(enabled), 호출 스택 정보의 상세 수준(context 및 stacks) 및 기록 항목의 최대 수(max_entries)를 구성할 수 있습니다. 기록을 시작하기 전에 노드는 기록 데이터의 정확성을 보장하기 위해 캐시의 소프트 클리어 및 피크 메모리 통계 재설정 작업을 수행합니다.

노드 매개변수 설명 - Start Recording CUDAMemory History

연결 입력 (Inputs)

매개변수 이름데이터 타입필수기본값범위/옵션설명
inputIO--수신된 입력 데이터를 그대로 다운스트림 노드로 전달하여 워크플로의 연결성을 유지합니다.

컨트롤 매개변수 (Parameters)

매개변수 이름데이터 타입필수기본값범위/옵션설명
enabledCOMBOall"all", "state", "None"메모리 기록 범위를 제어합니다. 선택 가능한 값은 "all"(모든 메모리 이벤트 기록), "state"(할당된 메모리 정보만 기록) 또는 "None"(기록 비활성화)입니다.
contextCOMBOall"all", "state", "alloc", "None"호출 스택이 기록될 메모리 연산을 제어합니다. 선택 가능한 값은 "all"(모든 연산에 대해 기록), "alloc"(할당 호출에 대해 기록), "state"(할당된 메모리에 대해 기록) 또는 "None"(호출 스택 기록 안 함)입니다.
stacksCOMBOpython"python", "all"호출 스택 정보 기록의 상세 수준을 결정합니다. 선택 가능한 값은 "python"(Python/TorchScript/inductor 프레임워크만 기록) 또는 "all"(C++ 프레임워크도 함께 기록)입니다.
max_entriesINT1000001000 - 10000000기록할 최대 항목 수입니다.

Output 출력

매개변수 이름데이터 타입설명
inputANY수신된 입력 데이터를 그대로 다운스트림 노드로 전달하여 워크플로의 연결성을 유지합니다.

사용 시나리오

복잡한 이미지 생성 또는 모델 추론 워크플로를 구축 중이고 메모리 누수가 존재할 것으로 의심되거나 메모리 사용 효율을 최적화하고 싶을 때, 이 노드를 워크플로의 시작 위치에 삽입할 수 있습니다. 그런 다음, 프로세스의 끝에서 EndRecordCUDAMemoryHistory 노드를 사용하여 기록을 중지하고 스냅샷 파일을 저장한 후, 분석 도구(예: torch.cuda.memory._snapshot())를 통해 상세한 메모리 이벤트 기록을 확인할 수 있습니다.

주의사항

이 노드는 실험적 기능에 속하며, 그 하위 API는 PyTorch 버전 업데이트에 따라 변경될 수 있습니다. 상세한 기록을 활성화(특히 stacks"all"로 설정)하면 일정한 런타임 성능 오버헤드가 발생할 수 있으며, 기록 정보를 저장하기 위해 추가 메모리를 소비할 수 있습니다.

Start Recording CUDAMemory History 노드 소스 코드 링크

Start Recording CUDAMemory History 노드는 ComfyUI-KJNodes 노드 패키지에서 제공됩니다.

댓글

GitHub로 로그인하고 토론에 참여하세요.

댓글을 불러오는 중…