본문 바로가기

AI Compiler Generator

현재 구현 기준 연산자 파일 내 핵심 속성 목록

역할 기준으로 크게 세 층으로 나눈다.

  • 정적 명세 : 연산자 자체를 설명하는 비교적 고정된 정보
  • 선택 입력 : 이후 primitive 추천, runtime path 선택, synthesis constraint 생성에 실제로 쓰일 수 있는 정보
  • 출력 표현 : 사람이 읽거나 도구가 보기 좋게 보여주기 위한 정보

 

전체 분류

1. 정적 명세 중심

  • name
  • computataion_structure
  • presesrvation_classes

2. 선택 입력 중심

  • possible_primitives
  • pipeline

3. 출력 표현 중심

  • summary

 

1. name

주 분류

정적 명세

이유

name 은 연산자의 식별자

연산자 프로필이 존재하는 한 거의 고정

  • reduction_sum
  • softmax
  • layernorm

 

 

2. computation_structures

이 필드는 이 연산이 어떤 계산 구조를 가지는지 설명한다.

  • reduction
  • summary_state
  • rescaled_streaming
  • weighted_aggregation

이 필드는 이후 선택 로직의 기반이 된다.

  • reduction 이 있으면 reduction primitve 후보를 추천할 수 있고
  • rescaled_streaming 이 있으면 streaming path 고려 가능
  • summary_state 가 있으면 compact state path 를 고려할 수 있다.

 

현재 예시

reduction_sum

  • reduction
  • summary_state

softmax

  • reduction
  • rescaled_streaming
  • summary_state
  • weighted_aggregation

layernorm

  • summary_state
  • reduction

 

3. preseration_classes

어떤 종류의 transformation 이 의미를 보존하는지를 정의한다.

  • order
  • representation
  • summary_state
  • rescaling
  • rematerialization

연산자 자체의 성질에 가깝다. 

softmax 는 특정 하드웨어에서만 rescaling 이 되는 게 아니라, 구조적으로 rescaling preservation 을 가진다.

 

이 필드는 단순 설명이 아니라 선택 가능 범위를 제한하는 legality boundary 다.

  • rescaling 이 없으면 rescaled path 는 허용되지 않는다.
  • summary_state 가 없으면 streaming compact-state path 는 정당화하기 어렵다
  • rematerialization 이 없으며 recompute path 를 쉽게 택할 수 없다.

 

현재 예시

reduction_sum

  • reduction
  • summary_state

softmax

  • reduction
  • rescaled_streaming
  • summary_state
  • weighted_aggregation

layernorm

  • summary_state
  • reduction

 

4. possible_primitives

이 필드는 이 연산에 대해 가능한 building block 후보가 무엇인가를 담는가.

  • warp_reduction
  • block_reduction
  • max_reduction
  • streaming_state_update
  • shared_memory_staging

실행 선택에 가까운 정보

  • 어떤 primitive 들이 후보군인지
  • 이 후보들 중 어떤 것을 조합할 수 있는지
  • 나중에 runtime 에서 어떤 realization path 를 구성할 수 있는지

이 연산에 대해 사용 가능한 실현 후보 집합이다.

 

현재 예시

reduction_sum

  • order
  • representation
  • summary_state
  • rematerialization

softmax

  • order
  • representation
  • summary_state
  • rescaling
  • rematerialization

layernorm

  • order
  • representation
  • summary_state
  • rematerialization