Start Recording CUDAMemory History(StartRecordCUDAMemoryHistory)
이 노드는 PyTorch의 torch。
Start Record CUDA Memory History
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)
| 매개변수 이름 | 데이터 타입 | 필수 | 기본값 | 범위/옵션 | 설명 |
|---|---|---|---|---|---|
input | IO | 예 | - | - | 수신된 입력 데이터를 그대로 다운스트림 노드로 전달하여 워크플로의 연결성을 유지합니다. |
컨트롤 매개변수 (Parameters)
| 매개변수 이름 | 데이터 타입 | 필수 | 기본값 | 범위/옵션 | 설명 |
|---|---|---|---|---|---|
enabled | COMBO | 예 | all | "all", "state", "None" | 메모리 기록 범위를 제어합니다. 선택 가능한 값은 "all"(모든 메모리 이벤트 기록), "state"(할당된 메모리 정보만 기록) 또는 "None"(기록 비활성화)입니다. |
context | COMBO | 예 | all | "all", "state", "alloc", "None" | 호출 스택이 기록될 메모리 연산을 제어합니다. 선택 가능한 값은 "all"(모든 연산에 대해 기록), "alloc"(할당 호출에 대해 기록), "state"(할당된 메모리에 대해 기록) 또는 "None"(호출 스택 기록 안 함)입니다. |
stacks | COMBO | 예 | python | "python", "all" | 호출 스택 정보 기록의 상세 수준을 결정합니다. 선택 가능한 값은 "python"(Python/TorchScript/inductor 프레임워크만 기록) 또는 "all"(C++ 프레임워크도 함께 기록)입니다. |
max_entries | INT | 예 | 100000 | 1000 - 10000000 | 기록할 최대 항목 수입니다. |
Output 출력
| 매개변수 이름 | 데이터 타입 | 설명 |
|---|---|---|
| input | ANY | 수신된 입력 데이터를 그대로 다운스트림 노드로 전달하여 워크플로의 연결성을 유지합니다. |
사용 시나리오
복잡한 이미지 생성 또는 모델 추론 워크플로를 구축 중이고 메모리 누수가 존재할 것으로 의심되거나 메모리 사용 효율을 최적화하고 싶을 때, 이 노드를 워크플로의 시작 위치에 삽입할 수 있습니다. 그런 다음, 프로세스의 끝에서 EndRecordCUDAMemoryHistory 노드를 사용하여 기록을 중지하고 스냅샷 파일을 저장한 후, 분석 도구(예: torch.cuda.memory._snapshot())를 통해 상세한 메모리 이벤트 기록을 확인할 수 있습니다.
주의사항
이 노드는 실험적 기능에 속하며, 그 하위 API는 PyTorch 버전 업데이트에 따라 변경될 수 있습니다. 상세한 기록을 활성화(특히 stacks를 "all"로 설정)하면 일정한 런타임 성능 오버헤드가 발생할 수 있으며, 기록 정보를 저장하기 위해 추가 메모리를 소비할 수 있습니다.
Start Recording CUDAMemory History 노드 소스 코드 링크
Start Recording CUDAMemory History 노드는 ComfyUI-KJNodes 노드 패키지에서 제공됩니다.
댓글
GitHub로 로그인하고 토론에 참여하세요.