본문 바로가기

AI Compiler framework

Layer 내부에서의 emit 정의 및 사용 방식의 변경, 사전 정의 op emitter 의 생성으로 lower_ir_cuda 의 기능 축소, 전체 로직 간편화

핵심은

  • Layer 는 의미 semantic 만 조립하고
  • 실제 emit 은 사전 정의된 op emitter 가 담당
  • backend 지식을 갖고 있고, Builder.emit 에 캐시까지 채워 넣을 수 있음

Layer 가 backend 를 모르는 것과 emit 단계에서 backend 정볼르 활용한 중복 제거를 동시 해결

 

1)  OpEmitter 레이어의 생성

레이어 / 역할 분리

  • Layer : 그래프를 어떤 의미로 구성할지 결정
  • OpEmitter : 특정 op 를 Builder 에 기록하는 표준 방식
  • Registry / ABI : OpEmitter 가 사용

Layer 는 다음과 같이 사용

emitters.adam_step(b, P, G, M, V, bc1, bc2, outP, outM, outV, lr=..., beta1=..., ...)