현재 이미
- tracing IR
- lowering list
- runtime trace 비교
- warmup + CUDA graph capture / replay
- TrainGraph 로 static IO
위 내용을 갖고 있음
단계 1 : IR 을 실행 가능한 형태로 만들기
- lower_to_backend_ops
- op 마다 inputs / outputs / value_ids 포함
- attrs + in-place 정보 포함
{"op":"gemm", "ins":[x_id, w_id], "outs":[y_id], "attrs":{"transB":True}}
이 단계가 끝나면
IR 최적화가 value graph 차원 상의 의미를 가짐
단계 2 : GraphExecutor 도입
python step_fn 없이도 IR 로 1 step 실행 가능
이 단계를 통해
- IR 을 최적화하면 실행이 바뀜
- dead code elimination / op fusion / constant folding 같은 게 효과가 생김
단계 3 : 최적화된 IR 을 캡처해서 replay
실행 주체는 IR, 성능은 CUDA Graph replay
- GraphExecutor 로 한 번 실행
- 그 실행을 backend.capture_begin ~ end 로 캡처
- 이후 replay
opt_ir → executable → (1회 실행으로 캡처) → replay 런타임
- 최적화된 IR 이 실제 실행이 되고
- CUDA Graph 의 이점
추후 backward 도 IR 로 가져와야 함
'AI Compiler framework' 카테고리의 다른 글
| AICF_fw / core 역할 문서 (0) | 2026.01.12 |
|---|---|
| IR 기반 실행 완료 (1) | 2026.01.11 |
| 현재 IR 상태 요약 - IR 기반 실행은 아님, 변화 필요 (0) | 2026.01.10 |
| 테스트 코드 내 임의 구현한 기능을 프레임 워크로 승격 ( validate, train_state, artifact ) (0) | 2026.01.09 |
| 각 파일 별 역할 재정리, 실행 과정 (0) | 2026.01.08 |