본문 바로가기

AI Compiler framework

AICF V2: Bit-Pattern Driven Graph Fusion & Composite Autograd System

1. 시스템 목표

AICF V2는 다음 두 가지를 동시에 달성하는 것을 목표로 한다.

  1. 런타임 메모리 왕복 최소화
  2. 수학적으로 완전한 자동 미분 그래프 생성

이를 위해 단순 커널 퓨전이 아닌,

그래프 의미 보존 + 실행 최적화 + 합성 역전파 생성

을 하나의 통합 시스템으로 설계하였다.


2. 설계 철학

2.1 문자열 기반 매칭의 폐기

기존 프레임워크는 "gemm" → "bias_add" 같은 문자열 패턴에 의존한다.

문제점:

  • 확장성 부족
  • 의미 중복
  • 런타임 비용 증가
  • 타입/정밀도 조건 반영 어려움

AICF V2는 이를 완전히 제거하고,

비트 지문(Bit Fingerprint) 기반 연산 정의 체계

를 도입했다.


3. Core Architecture


3.1 OpFlags: 비트 지문 기반 연산자 정의

각 연산자는 64bit 플래그 집합을 가진다.

Static Flags (연산 본질)


IS_GEMM_LIKE 행렬 곱 기반
IS_ELEMENTWISE 원소 단위
IS_ACTIVATION 활성화 함수
HAS_PARAM 학습 파라미터 포함

 

Derived Flags (그래프 맥락)


SAFE_NODE 재배치 안전
DTYPE_F32 데이터 타입
LAYOUT_CONTIG contiguous

핵심 장점

  • 문자열 비교 제거
  • O(1) 비트 AND 매칭
  • 다중 조건 조합 가능
  • 백엔드 제약 조건 반영 가능

3.2 RichMatrixOptimizer

3.2.1 그래프 표현

그래프는 CSR 형태의 Adjacency Matrix로 표현된다.

 
row_ptr[]
col_indices[]
 

이 구조는:

  • 순방향 탐색 빠름
  • 재귀 패턴 매칭에 적합
  • GPU 친화적 구조

3.2.2 Bit-Sequence Matching

퓨전 규칙은 선언적으로 정의된다.

 
FUSION_PATTERNS = [
	[IS_GEMM_LIKE, IS_ELEMENTWISE, IS_ACTIVATION]
]
 

매칭은 다음을 만족해야 한다:

  1. 위상적으로 연속
  2. 비트 조건 충족
  3. 데이터 타입/레이아웃 일치

4. Gemm Epilogue Fusion 구현


4.1 Forward Fusion

대상 패턴

 
gemm → bias_add → relu
 

치환 전략

  • gemm 위치에 fused node 삽입
  • bias_add, relu → nop 처리
  • VID 연결성 유지
  • ExecPlan 안정성 유지

AttrBlob 설계

C++ 백엔드로 전달되는 바이너리:

 
struct {
	int transA;
	int transB;
	int relu_enable;
}​

Forward 의미가 완전히 캡슐화됨.


5. Composite Backward System

핵심 차별점은 여기다.

AICF V2는

“Fused node는 물리적으로 하나지만, 수학적으로는 여러 연산의 합성이다”

라는 원칙을 따른다.


5.1 역전파 수식 분해

Forward:

 
Y = ReLU( XW + b )
 

Backward:

 
dZ = dY * (Y > 0)
dW = X^T dZ
dX = dZ W^T
dB = reduce_sum(dZ)
 

5.2 구현 구조

1) ReLU Masking

  • relu_bwd 호출
  • 출력 layout = forward output과 동일
  • backend stride 제약 충족

2) Weight Gradients

  • 기존 gemm_bwd 재사용
  • dZ를 입력으로 주입

3) Bias Gradient

  • GemmEpilogueBwd 전용 커널
  • dZ 기반 reduce

5.3 중요한 설계 결정

✔ dZ는 항상 Forward 출력과 동일 레이아웃 유지

이것이 backend 제약 해결의 핵심이었다.

특히 현재 AICF 학습 루프에서:

  • bias grad ReduceSum에 dY_T(transpose)를 넘기지 않고
  • dY(contiguous)를 넘기도록 수정 시 전체 실행 안정

LR=1e-3에서 수렴 확인
LR=1e-2에서 NaN 발생 → 이는 옵티마이저/스케일 문제로 추정

즉,

그래프 수학적 정합성은 확보된 상태


6. 무결성 검증 결과

항목결과설명
패턴 매칭 Success 3연산 시퀀스 정확 탐색
노드 치환 Success VID 연결성 유지
Gradient 공유 Success dZ 공유로 정확성 확보
Backend 연동 Success kind_id, schema 주입 정상
학습 안정성 Partial LR 스케일에 민감

7. 성능적 의미

GEMM → Bias → ReLU의 경우

기존:

  • Global Memory write 2회
  • Kernel launch 3회

Fusion 후:

  • Global write 1회
  • Kernel launch 1회

대형 MLP에서 memory-bound 구간의 병목 제거 가능.


8. 향후 로드맵

8.1 Dead Code Elimination (DCE)

현재 nop 노드는 ExecPlan 단계에서 제거 예정.

설계 방향:

  • Build Graph는 불변성 유지
  • ExecPlan에서 Active Node만 linearize

8.2 In-place Memory Pass

가능한 연산:

  • relu_bwd
  • bias_add
  • elementwise ops

조건:

  • 입력 재사용 안전성 검증
  • SSA 위반 여부 확인

8.3 Pattern 확장

후보

  • GEMM + Bias + GELU
  • Conv + BatchNorm + ReLU
  • LayerNorm + Residual

9. 구조적 차별성

AICF V2의 핵심은 단순 fusion이 아니다.

기존 프레임워크

 
Pattern Match → Replace Node
Backward는 수동 구현
 

AICF V2

 
Bit-Match → Replace
→ Composite Backward Graph 생성
 

즉,

Forward Fusion + 수학적 합성 Autograd 통합 설계


10. 결론

AICF V2는 다음을 달성했다:

  • 문자열 기반 패턴 제거
  • 비트마스크 기반 선언적 퓨전
  • 합성 자동 미분
  • backend 제약 반영 구조
  • 학습 수렴 확인 (LR=1e-3)

이제 이 시스템은 단순 실험 수준이 아니라,

실제 AI Compiler 아키텍처로 확장 가능한 기반

을 갖춘 상태다.