1. 한 문장 정의
IR 기반 AI 컴파일러는
모델 실행을 직접 수행하지 않고, 연산을 중간 표현 IR 로 추상화한 뒤 그 IR 을 최적화, 변환하여 특정 하드웨어에서 효율적으로 실행 가능한 실행 계획으로 컴파일하는 시스템
핵심은 실행 이전 단계에서 구조를 이해하고 바꾼다는 점
2. 두 상태 비교 IR 이 없는 시스템 VS IR 이 있는 AI 컴파일러
IR 이 없는 경우
- python 프레임워크가 op 를 즉시 실행
- backend 는 op 단위로 커널을 dispatch
- CUDA Graph 는 이미 정해진 실행 시퀀스를 캡처
- 최적화는 커널 내부 또는 수동 조합
장점
- 구현 단순
- 커널 / 런타임 디버깅에 유리
단점
- 연산 사이 관계를 모름
- 전체 그래프 관점의 최적화 불가
- 같은 연산이라도 shape / dtype 이 바뀌면 매번 새로운 캡처 / 실행 경로 필요
IR 이 있는 AI 컴파일러
- python 실행은 trace 단계에서만 사용
- 실행 경로는 IR 그래프로 고정
- 최적화는 IR 위에서 수행
- 실행은 IR - lowered plan - runtime
장점
- 연산 간 관계를 명시적으로 다룸
- fusion, reordering, memory planning 가능
- shape / dtype / 옵션별 specialization 및 캐시 가능
비용
- IR 설계 + lowering + runtime 플래너 필요
- 디버깅 난이도 증가
3. IR intermediate Representation 의 역할
IR 은 단순한 중간 데이터 구조가 아님,
IR 이 있으면 컴파일러는 다음 질문에 답할 수 있다.
- 이 연산은 누구의 출력을 쓰는가?
- 이 텐서는 언제 생성되고 언제 사라지는가?
- 이 연산들은 합쳐도 되는지?
- 어떤 커널 variant 가 가장 적합한지
- 이 실행 경로는 다시 쓸 수 있는지
IR = 실행을 설명하는 언어
4. IR 기반 AI 컴파일러의 최소 구성 요소
4.1 Trace / Graph Builder
- python 프레임워크 실행을 기록
- 즉시 실행하지 않고, 아래 정보로 IR Node 생성
- op_kind
- inputs / outputs
- attrs (eps, affine, transA )
- tensor metadata
결과 : 고정된 연산 그래프
4.2 IR Grpah
IR Graph 는 다음을 포함한다
IR Node
- 연산 종류
- 입력 텐서 ID / 출력 텐서 ID
- attribute set
- side-effect 여부
IR Tensor
- shape
- dtype
- layout / stride
- alias 정보
- lifetime
4.3 IR-level Optimization
IR 의 핵심
대표적인 예
- Op Fusion
- Eilmination
- Reordering
- Precisionpolicy
- Static path extrraction
4.4 Lowering ( IR - Execution Plan )
IR 을 실제 실행 가능한 형태로 변환
포함되는 작업
- op - backend kernel 매핑
- kernel variant 선택
- launch config 결정
- buffer allocation / reuse 계획
- CUDA Graph capture 계획 생성
'AI Compiler framework' 카테고리의 다른 글
| IR / Plan / PlanCache / GraphExec 각각의 역할 (0) | 2026.01.06 |
|---|---|
| AICF 현재 실행 구조와 IR 도입 시 변화 정리 (0) | 2026.01.05 |
| 딥러닝을 수식 그래프가 아닌 시간을 가진 실행 프로그램으로 (1) | 2026.01.02 |
| PR3: Torch Golden 과 1-Step Training 일치까지의 전체 과정 정리 (1) | 2025.12.30 |
| PR2 - Training Progress + Sequence Determinism (0) | 2025.12.30 |