Op 는 수학적 의미를 가진 객체이고, IR 은 그 의미를 보존하는 분해 표현, Lowering 은 의미 보존 조건 하에서의 재결합이다.
Op 문서 공통 템플릿 ( 의미론 중심 )
1. Meaning (수학적 정의 )
정의
- 수학적 함수 혹은 상태 전이로 op 를 정의
- 이 op 는 무엇을 계산하는가를 구현과 무관하게 명시
형식
y = f(x₁, x₂, … ; θ)
or
(S₀, x) → (S₁, y)
명시 항목
- 입력 / 출력 텐서 공간
- 파라미터 의미
- 전제 조건
해당 섹션에는 CUDA, kernel, f16 같은 단어가 나오지 않음
2. Decomposition ( 의미 보존 분해 )
목적
- op 를 의미가 명확한 primitive 연산들의 조합으로 분해
- 분해는 IR 에서의 rewriting rule 이다
f = p₁ ∘ p₂ ∘ … ∘ pₙ
primitive 예
- map
- reduce
- broadcast
- matmul
- affine transform
중요 포인트
- 왜 이 분해가 의미적으로 동등한지
- 선형성
- 결합 / 교환 법칙
- monotonicity
- normalization 정의
이렇게 쪼개도 의미가 유지된다.
3. Implementation Strategy ( 구현 전략 )
- 메모리 접근 패턴
- 병목 분류
- 알고리즘 선택 이유
항목
- 메모리 바운드 / 연산 바운드 / 리덕션 바운드
- 재사용 여부
- 선택한 알고리즘과 그 이유
의미를 구현하는 수단, 그 이상이 아님
4. Semantic Equivalence & Error Model ( 의미 동일성 )
정확히 동일해야 하는 것
- shape invariant
- NaN / Inf propagation 규칙
- 경계 조건
허용되는 차이
- FP 연산 순서로 인한 rounding error
- accumlate precision 차이
정의에 포함된 안정화
- substract max
- eps
- vlamping
5. Lowering & Fusion Rules ( 로워링 / 퓨전 )
분해의 역방향
- 언제 primitive 를 다시 붙일 수 있는가?
- 그 조건은 무엇인가?
명시 규칙
- fusion 가능 조건
- aliasing 없음
- 동일 stream
- shape / stride 조건
- fusion 불가 조건
- observable side-effect
- stateful op 경계
IR 관점 표현
- rewrite rule
- pattern + guard
6. Perf Evidence ( 성능 근거 )
마지막에 성능을 보여줌
- latency / bandwidth
- roofline 위치 변화
- ncu, metric
'AI Compiler framework' 카테고리의 다른 글
| 최소 의미 분해 단계 설정 - 왜 Kernel 코드 이하의 표현을 IR 로 사용하지 않는가 (0) | 2026.02.10 |
|---|---|
| AICF 챕터 구조 ( 의미론 기준 분류 ) (0) | 2026.02.10 |
| AI Compiler framework 설계 철학 재정리 (0) | 2026.02.09 |
| Notes on Semantic Interpretation of Training Execution (0) | 2026.02.09 |
| Dynamic Graph 에 대한 재정의와 핵심 분기점 (0) | 2026.02.09 |