ir.hpp / ir.cpp
역할 : IR 컨테이너
- Node 리스트 : op kind + input value ids + outpus value ids + attrs
- value 리스트 : 각 텐서의 메타
- 여기서 중요한 포인트 : IR 은 보통 실제 data pointer 는 안 들고 형상 / 타입 / 연결 관계만 들고 있음
- 목표 : 이 모델 / 스텝을 어떤 op 들의 그래프로 표현하는 것
- op fusion / constant folding / scheduling / memory planning 같은 컴파일러 기능이 붙음
lowering.hpp / lowering.cpp
역할 : IR - RuntimeGraph 로 변환
- IR 은 추상적이고
- Runtime 실행 단위는 더 구체적
- lowering 은 그 추상 - 구체 변환기
- IR Node 를 실행 가능한 커맨드로 바꾸끼
- TensorDesc 의 data pointer 는 나중에 valueTable 로 채우게 설계
plan.hpp / plan.cpp
역할 : ExecutionPlan 정의
IR 을 그대로 실행하지 않고 실행에 필요한 정보만ㅇ 따로 묶은 것이 Plan
- GraphKey : dtype / shape / attrs / op sequence 등을 해시한 값
- nodes : 실행 순서대로 OpCall 목록
- 메모리 계획 : intermediate buffer 할당 계획 등
- IR : 의미 중심
- Plan 실행 중심 + 캐싱 중심
plan_cache
역할 : Plan - 결과 캐싱
같은 graphkey 로 반복 실행할 때 한 번 만들어둔 graphexec 를 재사용하려고
'AI Compiler framework' 카테고리의 다른 글
| Kernel Selection Algorithm, AI Compiler - Low-Level execution Planning (1) | 2026.01.06 |
|---|---|
| AI Compiler 처리 파이프라인 해석 (0) | 2026.01.06 |
| AICF 현재 실행 구조와 IR 도입 시 변화 정리 (0) | 2026.01.05 |
| IR 기반 AI 컴파일러란 (0) | 2026.01.05 |
| 딥러닝을 수식 그래프가 아닌 시간을 가진 실행 프로그램으로 (1) | 2026.01.02 |