GPU 추론 가속 — 캐시·어텐션·커널로 최적화하기
GPU 추론 가속
같은 perf_infer_gpu_one 페이지는 GPU 추론을 위한 구체적인 기법들을 코드로 보여줘요. 어텐션 백엔드·캐시 전략·커널을 조합해 메모리와 속도를 잡는 방법이에요.
어텐션 백엔드
대안 어텐션은 메모리 트래픽을 줄여요. 예를 들어 FlashAttention은 어텐션을 타일링해 큰 중간 텐서를 피해 메모리를 줄여요.
model = AutoModelForCausalLM.from_pretrained(
"Qwen/Qwen3-0.6B", attn_implementation="flash_attention_2"
)
캐시 전략
캐싱은 매 토큰마다 과거 K/V를 재계산하는 대신 재사용해 생성을 빠르게 해요. 메모리 비용을 줄이기 위해 캐시를 CPU로 오프로드할 수도 있어요.
outputs = model.generate(**inputs, do_sample=False, max_new_tokens=50, cache_implementation="offloaded")
커널
커널은 연산을 퓨즈해 처리량을 올리고 메모리를 줄여요. Hub에서 최적화 커널을 설치 없이 로드할 수도 있어요.
model = AutoModelForCausalLM.from_pretrained(
"Qwen/Qwen3-0.6B", attn_implementation="kernels-community/flash-attn2"
)
정리
목표(속도 vs 메모리)에 맞춰 기법을 조합하는 게 핵심이에요. 이 문서는 그 조합을 코드로 시험해 볼 수 있는 출발점이에요.