모놀리식 통합형 (네 방식)
epilogue가 항상 커널 내부에 존재하며, compile-time 특수화로 제거 가능.
실행 과정
GEMM.forward(...) → 내부에서 epilogue::apply(...) 인라이닝 → if constexpr 로 bias/act/dropout 존재 시만 코드 유지 → 한 번의 커널 launch
특징
- gemm.cu 안에서 epilogue_fused.cuh 템플릿 포함.
- 컴파일 시 ActKind, HasBias, DoDropout 등 인스턴스 확정.
- 런타임 분기 없음, LTO로 epilogue 호출 완전 인라이닝.
장점
- 독립 모듈 단위에서도 최고 성능 / 최소 메모리 왕복.
- CUDA Graph Capture 완전 안전.
- 별도 디스패처 필요 없음 → 단일 binary만으로 실행 가능.
단점
- 조합 수 많아질수록 빌드 부하↑.
- 코드 수정 시 재빌드 필수.
- 각 모듈마다 epilogue 코드가 일부 포함(바이너리 중복).
'dev_AI_framework' 카테고리의 다른 글
| 정적, 동적 학습 루프로 분리한, sequential 및 graph_executor 관련 파일들의 구조 / 관계 / 실행 순서 (0) | 2025.10.28 |
|---|---|
| AI Model 의 정적, 동적 경로 조건 (0) | 2025.10.28 |
| epilogue - ep_apply (0) | 2025.10.20 |
| epilogue - epilogue.h (0) | 2025.10.20 |
| 정책화된 커널 내부 에필로그 호출 체계 policy-based epilogue invocation (0) | 2025.10.19 |