캐싱 가속화

캐싱 가속화 (Caching Acceleration)

이 페이지는 확산(Diffusion) 모델을 위한 캐싱 가속화 전략을 비교해서 설명해요. SGLang은 Diffusion Transformer(DiT) 모델을 위해 세 가지 상호 보완적인 캐싱 전략을 제공해요. 모두 중복 연산을 건너뛰어 디노이징 비용을 줄이지만, 작동하는 수준이 서로 달라요.

출처: 문서

본문

개요 (Overview)

SGLang은 세 가지 상호 보완적인 캐싱 접근 방식을 지원해요:

전략 (Strategy) 범위 (Scope) 메커니즘 (Mechanism) 가장 적합한 경우 (Best For)
Cache-DiT Block-level 개별 transformer 블록을 동적으로 건너뛰기 고급, 더 높은 속도 향상
TeaCache Timestep-level L1 유사도 기반으로 전체 디노이징 스텝 건너뛰기 단순, 내장형
Spectrum Timestep-level DiT 피처를 예측해 선택된 디노이징 스텝 건너뛰기 실험적, 모델 검증 튜닝

Cache-DiT

Cache-DiT는 DBCache, TaylorSeer 같은 고급 전략을 가진 블록 수준(block-level) 캐싱을 제공해요. 최대 1.69배 속도 향상을 달성할 수 있어요.

상세 구성은 Cache-DiT 문서를 참고해 주세요.

Note Cache-DiT는 현재 --use-fsdp-inference와 함께 사용할 수 없어요. Cache-DiT를 활성화할 때는 FSDP를 비활성화하세요. DiT 레이어 단위 offload는 호환돼요. 건너뛴 블록은 스트리밍되지 않고, 스킵 후 첫 레이어는 동기 로드될 수 있어요.

빠른 시작 (Quick Start)

SGLANG_CACHE_DIT_ENABLED=true \
sglang generate --model-path Qwen/Qwen-Image \
    --prompt "A beautiful sunset over the mountains"

핵심 기능 (Key Features)

  • DBCache: 잔차 차이(residual differences) 기반 동적 블록 수준 캐싱
  • TaylorSeer: 최적화된 캐싱을 위한 테일러 전개 기반 보정(calibration)
  • SCM: 추가 속도 향상을 위한 스텝 수준 계산 마스킹(Step-level computation masking)

TeaCache

TeaCache(시간 유사도 기반 캐싱, Temporal similarity-based caching)는 연속된 디노이징 스텝이 충분히 유사해서 계산 자체를 건너뛸 때를 감지해 확산 추론을 가속화해요.

상세 문서는 TeaCache를 참고해 주세요.

빠른 개요 (Quick Overview)

  • 타임스텝 간 변조된 입력(modulated inputs)의 L1 거리 추적
  • 누적 거리가 임계값보다 낮으면 캐시된 잔차 재사용
  • 지원되는 CFG 모델 패밀리를 위해 별도의 양/음 캐시(positive/negative caches) 사용

지원 모델 (Supported Models)

  • Wan2.1
  • Z-Image
  • Wan2.2: 계수(coefficients)가 아직 보정되지 않음. TeaCache를 활성화하면 수용되지만 현재는 no-op
  • HunyuanVideo: 아직 미지원

Flux와 Qwen 모델의 경우, CFG가 활성화되면 TeaCache가 자동으로 비활성화돼요.

Spectrum

Spectrum은 DiT 피처를 예측해 선택된 디노이징 스텝을 건너뛰어요. 근사(approximate) 방식이며 현재 선택된 네이티브 구현 경로에만 적용돼요.

지원 모델 패밀리, 제약, 요청 컨트롤은 Spectrum 가속화 문서를 참고해 주세요.

참고 자료 (References)

더 알아보기