본문 바로가기

dev_AI_framework

Graph Execution & Planning 과 CUDA Graph Capture & Stability 의 차이

이 둘은

무엇을 실행할지 / 어떻게 실행할지 vs 어떻게 안전하게, 결정론적으로 캡처, 재생할지 

의 관계

전체 맥락 요약

핵심 질문 “Python 모델을 그래프로 실행 가능하게 만드는 과정은?” “CUDA Graph 캡처/리플레이가 안전하고 결정론적이려면 무엇이 필요한가?”
초점 그래프의 논리적 구조와 실행 경로 (그래프 빌드 → 플랜 → 런타임) 캡처된 그래프의 GPU 실행 안정성/결정성 확보 (메모리, RNG, 스트림, NVTX 등)
주요 대상 Python 모델, DAG, Execution Plan, Graph Runtime CUDA 런타임 환경, Allocator, Stream, RNG, NVTX
주요 산출물 CapturePlan, ExecSchedule, GraphExec 캡처 안정성 컴포넌트 (Shim, Allocator, Replay Manager 등)
비유로 보면 “연극 대본과 무대 동선 짜기” “공연 장치가 안전하게 반복 동작하도록 만드는 기술 세트”
역할 단계 “무엇을 / 어떻게 실행할지” “그 실행을 캡처하고 반복할 때 안전하게 만드는 기반 기술”

 

1. Graph Execution & Planning

Python 모델을 정적 그래프로 변환하고, 그 그래프를 실행 가능한 스케줄로 만드는 것

Static Graph Builder : Python - DAG ( CapturePlan IR 생성 )

Dynamic Path Handling : Python 제어 흐름 flatten

Execution Planner : DAG - Stream/Event 기반 실행 스케줄

Graph Runtime : CapturePlan 과 Plan 을 실행

NVTX Profiler : Nsight 에서 캡처, 리플레이 타임라인 시각화

핵심 포인트

  • 그래프 자체를 만든다
  • Python 코드 - 정적 연산 그래프
  • 의존성, 토폴로지, 실행 순서를 분석해 GPU 실행 가능한 단위로 분해
  • CUDA Graph Capture 는 이 위에서 실행됨

그래프의 논리적/구조적 실행 파이프라인 설계에 집중

 

CUDA Graph Capture & Stability

CUDA 캡처가 실패하거나 비결정적으로 실행되지 않도록 런타임 환경을 안정화하는 것

Capture Guard / Shim : 캡처 중 불법 호출 차단

Graph Replay Manager : Capture 된 그래프를 반복 재생

Capture-Safe Allocator : 캡처 중 동적 메모리 호출 금지, 사전할당

RNG & Seed Manager : Dropout 등 RNG 연산의 결정론 보장

Stream Manager : 명시적 스트림/이벤트 관리

핵심 포인트

  • 그래프를 GPU 에서 안전하게 캡처하고 반복한다.
  • CUDA Graph 가 깨지지 않게 메모리 스트림 RNG 호스트 동기화를 제어
  • cudaGraphBegin / End 안에서 동적 호출 없이 완전한 비동기 실행 확보

즉 그래프 실행의 런타임 환경을 안전하게 고정하는 기반 계층

 

관계 요약 (한 줄로)

Graph Execution & Planning 은 “그래프를 구성하고 스케줄링하는 상위 논리층”
CUDA Graph Capture & Stability 는 “그 그래프가 CUDA 레벨에서 결정론적으로 재생되도록 보장하는 하위 런타임층”