1. 시스템 목표
AICF V2는 다음 두 가지를 동시에 달성하는 것을 목표로 한다.
- 런타임 메모리 왕복 최소화
- 수학적으로 완전한 자동 미분 그래프 생성
이를 위해 단순 커널 퓨전이 아닌,
그래프 의미 보존 + 실행 최적화 + 합성 역전파 생성
을 하나의 통합 시스템으로 설계하였다.
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]
]
매칭은 다음을 만족해야 한다:
- 위상적으로 연속
- 비트 조건 충족
- 데이터 타입/레이아웃 일치
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이 아니다.
기존 프레임워크
Backward는 수동 구현
AICF V2
→ Composite Backward Graph 생성
즉,
Forward Fusion + 수학적 합성 Autograd 통합 설계
10. 결론
AICF V2는 다음을 달성했다:
- 문자열 기반 패턴 제거
- 비트마스크 기반 선언적 퓨전
- 합성 자동 미분
- backend 제약 반영 구조
- 학습 수렴 확인 (LR=1e-3)
이제 이 시스템은 단순 실험 수준이 아니라,
실제 AI Compiler 아키텍처로 확장 가능한 기반
을 갖춘 상태다.
'AI Compiler framework' 카테고리의 다른 글
| Plan Compiler ( Execution Planner Compiler ) (0) | 2026.03.05 |
|---|---|
| 기존 GPU 라이브러리 동작 구조 확인 - cuBLAS, cuDNN Autotune (0) | 2026.03.02 |
| GEMM Epilogue (Gemm + Bias (+ReLU)) 반영 및 수정 문서 (0) | 2026.02.28 |
| AICF IR Flag System 도입 문서 (0) | 2026.02.27 |
| Rich Matrix Optimizer Fusion 현 방식 요약 + 개선 로드맵 (0) | 2026.02.26 |