- compile_cuda 는 실행할 프로그램을 만드는 단계
- run_compiled 는 이미 만들어진 계획을 실제 텐서에 적용해 실행하는 단계
optimize_ir 는 자리를 미리 만들어둔 훅, 현재는 identity
전엔 run 이 다 했음
- feed bind + allocate
- lower
- op_call 루프
- outputs 반환
run 이 컴파일 + 런타임을 동시에 수행했음
지금 구조 ( compile / run 분리 )
compile_cuda 가 담당하는 것 = 컴파일러 역할
- optimize_ir(b) : IR 을 바꿀 수 있는 자리 ( 현재는 통과 )
- lower_ir_cuda(b, registry)
- IR kind - kind_id / schema (matching)
- attrrs(dict) - attr_blob(bytes) (ABI pack)
- LoweredOp 리스트 생성
- make_exec_plan_cuda(b, lowered)
- alias / inplace 같은 실행 의사 결정
- 결과 : CompiledProgram
즉 여기서 실행에 필요한 메타를 확정
run_compiled 가 담당하는 것 = 런타임 역할
- feed 를 slots에 꽂고
- 나머지 value 는 spec 으로 allocate
- plan.alias 를 적용해서 slots alias
- plan.lowered 를 op_call 순서대로 실행
- outputs 반환
확정된 Plan 을 그대로 재생
'AI Compiler framework' 카테고리의 다른 글
| AICF v2 - Online Accumulative Optimization 설계 문서 ( 여기서 Compiler 의 완성 ) (0) | 2026.01.31 |
|---|---|
| alias / inplace 에 대해... - 메모리 / 실행 전략에 관한 결정 (0) | 2026.01.31 |
| CudaExecutor.run - IR 을 실제 텐서 계산으로 바꾸는 과정 (0) | 2026.01.31 |
| emit - Layer 가 반드시 구현해야 하는 메서드 인터페이스 (0) | 2026.01.31 |
| aicf_v2 현재 구조 정리 (0) | 2026.01.30 |