본문 바로가기

AI Compiler framework

graph capture 구현 이후 현재 상태 - 앞으로의 개발 방향

현재 capture-safe training loop 의 최소 폐회로 를 만든 단계, 보장 범위를 한 단계식 넓혀야 함

 

현재 상태

  • CUDA Grpah capture / replay 안정
  • out-buffer 기반 forward / backward / optimizer
  • 캡처 중 alloc 금지 강제
  • mse_grad 를 loss 로 정의한 학습 루프
x ──▶ model ──▶ y
                 │
t ─────────────▶ mse_grad ──▶ dY
                                   │
                            autograd.backward
                                   │
                              SGD.step

이 그래프가 완전히 닫힌 상태

 

확장 로드맵

mse_loss_forward 

  • loss 는 캡처 밖 torch 연산
  • 디버깅 / 검증에는 OK
  • 완전한 training graph 를 만들고 싶다면 forward loss 도 op 로 있어야 함

 

 

zero_grad / grad_reset op (중요)

  • autograd_backward ()
  • leaf grad 를 overwrite 하고 있어서 우연한 안전

하지만 grad 초기화가 필요해지는 순간이 존재

 

  • grad lifecycle 이 완전히 CUDA ops 로 닫히고
  • PyTorch-sie .zero_() 호출의 제거 가능
  • accumulate 모드 확장 가능

 

 

Optimizer 확장용 기본 eltwise op 세트  (핵심)

다른 optimzier 로 가려면 아래의 필요

최소 공통 op

mul, add, axpby, sqrt / rsqrt, eps_add

  • optimizer step 도 graph 안에 고정
  • 학습 전체가 graph replay

 

 

Optimizer state buffer pool ( 개념 확장 )

현재 bufferpool 은

  • activation
  • backward intermediate

까지만 관리

  • optimizer state 도 pool 로 관리

 

 

control op 

  • where
  • mask_fill
  • dropout ...