본문 바로가기

AI Compiler framework

AICF Rich Feature Matrix Specification - 연결 그래프에 비트 표현을 통한 각 operator 정보 표현

1. 개요

연산 그래프를 Sparse Binary Adjacency Matrix 형태로 표현했음

기존 표현

A[i, j] = 1  if op_i → op_j (producer → consumer)

이는 연결 여부만 표현한다.

Rich Feature Matrix 는 이를 확장하여

A_rich[i, j] = bitmask

각 edge(연결) 에 대해 의미적 / 구조적 / 타입적 / 안정성 정보를 비트 단위로 인코딩한다.

이 행렬은 다음 목적을 가진다.

  • 패턴 기반 fusion 
  • 안전성 필터링
  • Layout-aware 최적화
  • Backward-safe 분석
  • Memory scheduling 판단
  • Algebraic graph matching

 

2. 설계 철학

2.1 Edge vs Node 속성 분리

Rich Feature Matrix 는 Edge Feature 만 표현한다.

  • Node 특성 -> 별도 diagonal selector S
  • Edge 특성 -> A_rich[i, j]

이 분리는다음을 보장

  • Node 의미론과 Edge 전이를 명확히 분리
  • 패턴 매칭을 선형 대수 연산으로 유지 가능
  • 확장 시 의미 충돌 방지

 

3. Bitmask 구조 (Bit Layout)

64-bit 공간을 4개의 주요 계층으로 분할하여 관리한다. ( 대략적으로 구성해 본 것 )

Bits 영역 주요 역할
00-15 Safety & Correctness 패턴 매칭 시 1차 필터링 (구조적 제약 조건)
16-31 Data Transition DType, Layout, Shape 변형 정보 (DType은 4bit Enum 활용)
32-47 Fusion Eligibility Optimizer Pass가 남기는 힌트 및 가능성 태그
48-63 Reserved & Versioning 향후 확장 및 스펙 버전 관리

 

3.1 Safety / Correctness (0-15)

Bit 이름 의미
0 E_SAFE_SINGLE_USE Producer의 Out-degree $\le 1$ (분기 없음)
1 E_NO_ALIAS 메모리 Alias(별칭) 관계 없음
2 E_CONTIGUOUS 데이터가 메모리상에 연속적으로 배치됨
4 E_INPLACE_OK Consumer가 Input을 Inplace로 덮어쓰기 가능
6 E_SIDE_EFFECT Randomness 또는 Atomic 연산 등 부수효과 존재

 

3.2 Transition (16-31)

3.2.1 DType (16-19): 4-bit Enum Packing

  • 0x1: F32, 0x2: F16, 0x3: BF16, 0x4: I32
  • 추출 방식: (A_rich >> 16) & 0xF

3.2.2 Layout / Shape (20-26)

Bit 이름 의미
20 L_TRANSPOSED View가 Transpose된 상태로 전달됨
21 L_STRIDED Non-unit stride 존재
22 L_BROADCASTED Implicit/Explicit 브로드캐스트 발생
24 L_REDUCED 특정 축에 대해 Reduction이 수행된 결과