본문 바로가기

AI Compiler Generator

기존 Properties 와 Motifs 의 구분

1. 왜 이 구분이 필요한가

현재 Property Atlas 는 스스로를 runtime transformation 을 허용한느 수학적 / 논리적 property 를 다루는 계층으로 정의하고 있고, 어떤 재배친, 분해, 병합, 타일링, 특수화가 의미 보존 아래에서 합법적인지 그 조건을 정리한다고 설명한다. 

핵심 원칙으로 

Property explains why. Transform explains what 을 내세운다.

 

즉 현재의 properties 는 연산의 모든 본질을 담는 공간이 아니라. 변환 가능성을 판정하는 legality layer 이다.

 

반면 motifs 는 그보다 한 단계 위에서, 서로 다른 operator 사이에 반복적으로 나타나는 구조적 공통 패턴을 다루는 계층으로 두는 것이 맞다.

이 둘을 분리하여 사용

 

2. 핵심 차이 

  • properties 는 왜 바꿔도 되는가를 설명한다
  • motifs 는 무엇이 공통 구조로 존재하는가를 설명한다.

properties 는 변환의 정당화

motifs 는 구조의 해석에 가깝다.

 

3. Properties 란 무엇인가

특정 transform 이나 lowering 이 의미 보존적으로 적용될 수 있는 최소 조건을 다루는 계층이다.

Algebraic Conditions for Legal Transformation 을 다루는 곳

대표 예시

  • order_rewritable
  • tile_composable
  • rematerializable
  • representation_invariant
  • precision_relalxable
  • associative_merge
  • local_accumulable

이런 이름들은 공통적으로 다음 질문에 답한다.

  • 이 연산은 reodrder 해도 되는가
  • tile 단위로 쪼개도 되는가
  • intermediate 를 저장하지 않고 다시 계산해도 되는가
  • 표현을 바꿔도 의미가 유지되는가

즉 properties 는 연산의 정체성을 설명하는 계층이 아니라.

연산에 대해 어떤 runtime/olowering action 이 합법적인지를 설명하는 계층이다.

 

4. Motifs 란 무엇인가

서로 다른 operator 들 사이에 반복적으로 나타나는 구조적 패턴을 정리하는 계층이다.

legality 조건이 아니라 연산들이 공유하는 더 근본적인 구조다.

  • mergeable_statistics
  • weighted_reduction
  • rescaled_accumulation
  • bounded_summary_state
  • streaming_normalization
  • coupled_numerator_denominator

어떤 변환이 허용되는가보다 먼저, 이 연산군이 어떤 형태의 상태, 요약, 결합 규칙, 스트리밍 구조를 갖는가를 설명한다.

softmax, layernorm, attentino 은 표면적으로 다른 operator 지만, motif 관점에서는 다음처럼 다시 볼 수 있다.

  • softmax - coupled_numerator_denominator, rescaled_accumulation
  • layernorm - mergeable_statistics, bounded_summary_state
  • attention - weighted_reduction, decomposable_score_value_flow

operator familty 의 공통 구조를 잡아내는 계층이다.