본문 바로가기

AI Compiler framework

AICF Ops 문서화 설계 철학

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