본문 바로가기

dev_AI_framework

특정 모델 구조/레이어 집합을 커널 최적화된 CUDA 코드 생성 시스템

당신이 하고 있는 건 단순히 연산자별 커널을 구현하는 수준이 아니라,

  • 특정 모델 구조 (예: Attention block = [QKᵀ → softmax → dropout → PV])
  • 특정 레이어 집합 (예: LayerNorm + GEMM + 활성화)

을 인식해서, 그 조합 전체를 하나의 최적화된 CUDA 커널 패턴으로 생성/실행할 수 있는 기반을 만드는 거예요.


풀어서 말하면

  1. 현재 상태
    • gemm, softmax, dropout 같은 primitive op를 각각 바인딩/커널화했음.
    • SDPA 같은 복합 연산은 이 primitive들을 순차적으로 호출해 조합.
  2. 진행 중인 목표
    • 이 조합을 커널 수준에서 퓨전/epilogue 확장 → 중간 텐서 물질화 최소화.
    • regemm이나 cutlass 같은 infra 위에서 자동으로 epilogue functor를 붙이거나,
      FlashAttention 스타일로 타일드 단일 커널로 합치는 방식.
  3. 큰 그림
    • 결국 특정 모델 블록(트랜스포머, MLP 블록 등)의 계산 그래프를 보고,
      **“이건 최적화된 커널 패턴이 있으니 그걸로 코드 생성”**을 자동화할 수 있음.
    • 즉, 모델 구조 → 내부 DSL/스케줄러 → CUDA 커널 코드 (또는 디스패치)로 이어지는 소형 컴파일러 파이프라인을 만드는 거라고 할 수 있어요.

👉 그래서 “내 프로젝트를 통해 특정 모델 구조/레이어 집합을 커널 최적화된 CUDA 코드로 생성할 수 있는 시스템을 만든다”라고 설명해도 충분히 맞습니다.