본문 바로가기

AI Compiler framework

의미론적 제어를 목표로 한 AI Compiler - Introduce

왜 AI 모델은 고정된 그래프로 다뤄져 왔는가 - 왜 그래프로 표현되는가

대부분의 딥러닝 프레임워크에서 AI 모델은 연산 그래프로 표현된다. computation graph

이는 다음의 장점

  • 연산 간 의존성 표현
  • 자동 미분
  • 실행 순서의 결정

이는 어떤 순서로 계산되는가에 가까움, 

  • 연산의 수학적 의미는 커널 구현 안에 묻히고
  • 변형 가능, 불가능 구조가 구분되지 ㅇ낳고
  • 실행 가능, 제어 불가능

고정된 그래프가 선택된 이유

  • 동적 제어는 성능 예측을 어렵게 만들고
  • 실행 최적화는 정적인 구조를 전제로 하며
  • 하드웨어 친화적 실행을 위해선 결정성 필요

 

이 프로젝트의 관점

모델을 실행 가능한 대상으로 보는 것과 의미적으로 제어 가능한 대상으로 보는 것 사이의 간극

최적화 문제가 아닌, 표현과 구조의 문제

 

의미 단위로 모델을 다룬다는 것

  • 연산이 가지는 수학적 성질을 드러내고
  • 어떤 변형이 의미를 보존하는지 명시
  • 실행 이전 단계에서 구조를 제어할 수 있음을 의미

더 명시적인 IR 과 그 IR 을 해석하고 실행하는 구조가 필요

 

AI Compiler 의 접근

커널을 생성하거나 실행을 빠르게 만드는 도구가 아닌,

  • 연산의 의미단위 해석
  • 의미 보존한 채 구조 조합 변형
  • 최종적으로 실행 가능한 형태로 정제

이를 위해 시스템의 분리

  • kernel
  • ir
  • execution