[SGLang] Diffusion JIT 커널 테스트 레이아웃 리팩터링 및 CI 트리거 정밀화
PR 링크: sgl-project/sglang#21385 상태: Merged | 변경: +22 / -12
들어가며
SGLang의 JIT 커널 테스트와 벤치마크는 python/sglang/jit_kernel/tests/와 benchmark/에 flat하게 배치되어 있었다. Diffusion 관련 커널이 늘어나면서 파일이 뒤섞이고, CI에서 모든 JIT 커널 변경이 multimodal_gen 테스트를 트리거하는 문제가 있었다.
이 PR은 diffusion 전용 테스트/벤치마크를 diffusion/ 서브폴더로 이동하고, CI 워크플로우의 path filter를 정밀하게 조정한다.
핵심 코드 분석
파일 이동
# Before
python/sglang/jit_kernel/tests/test_fused_norm_scale_shift.py
python/sglang/jit_kernel/benchmark/bench_fused_norm_scale_shift.py
# After
python/sglang/jit_kernel/tests/diffusion/test_fused_norm_scale_shift.py
python/sglang/jit_kernel/benchmark/diffusion/bench_fused_norm_scale_shift.py
CI 트리거 정밀화
Before:
# pr-test.yml - multimodal_gen 변경 감지
jit_kernel:
- "python/sglang/jit_kernel/**" # 모든 JIT 커널 변경이 트리거
After:
# diffusion 경로만 multimodal_gen 트리거
multimodal_gen:
- "python/sglang/jit_kernel/diffusion/**"
- "python/sglang/jit_kernel/tests/diffusion/**"
- "python/sglang/jit_kernel/benchmark/diffusion/**"
test suite runner의 재귀 glob 지원
Before:
files += glob.glob(os.path.join(jit_kernel_dir, "tests", "test_*.py"))
After:
files += glob.glob(
os.path.join(jit_kernel_dir, "tests", "**", "test_*.py"), recursive=True
)
왜 이게 좋은가
- CI 효율성: LLM 관련 JIT 커널 변경이 더 이상 불필요한 diffusion 테스트를 트리거하지 않는다.
- 확장 가능한 구조: 향후
attention/,quantization/등 다른 도메인의 JIT 커널 테스트도 서브폴더로 분리할 수 있는 패턴을 확립했다. - 기존 호환성 유지:
run_suite.py의 recursive glob으로 서브폴더 내 테스트가 자동 발견된다.
정리
테스트 파일 이동과 CI 트리거 조정이라는 단순한 작업이지만, 대규모 모노레포에서 CI 비용과 개발자 경험에 직접적인 영향을 미치는 중요한 인프라 개선이다.
참고 자료
이 글은 AI(Claude)의 도움을 받아 작성되었습니다. 코드 분석과 해석에서 오류가 있을 수 있으니, 정확한 내용은 원본 PR을 참고해주세요.
관련 포스트
PR Analysis 의 다른글
- 이전글 [triton] AMD 백엔드에 Concurrency Sanitizer(ConSan) 지원 추가
- 현재글 : [SGLang] Diffusion JIT 커널 테스트 레이아웃 리팩터링 및 CI 트리거 정밀화
- 다음글 [sglang] AMD/ROCm 시작 크래시 수정: CuteDSL KDA 커널 Lazy Import 적용
댓글