이 둘은
무엇을 실행할지 / 어떻게 실행할지 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 레벨에서 결정론적으로 재생되도록 보장하는 하위 런타임층”
'dev_AI_framework' 카테고리의 다른 글
| 세 단계로 구분한 AI 개발자 ( ML 연구자, 커널 엔지니어, 컴파일러 엔지니어 ) (0) | 2025.10.29 |
|---|---|
| 지금까지 실행 파이프 라인 ( graph_capture, planner ... ) 향후 pattern matting 을 추가하기 위해 확인 (0) | 2025.10.29 |
| 단순 복붙, 각 부분 수정 필요함, 단 이는 최적화 단계에서, 일단 구현 먼저 다 하자 으쌰으쌰 (0) | 2025.10.28 |
| 정적, 동적 학습 루프로 분리한, sequential 및 graph_executor 관련 파일들의 구조 / 관계 / 실행 순서 (0) | 2025.10.28 |
| AI Model 의 정적, 동적 경로 조건 (0) | 2025.10.28 |