Optimization Levels — 최적화 수준 -O0~O3
Optimization Levels
vLLM은 **최적화 레벨(-O0~-O3)**로 '시작 시간과 성능'을 맞바꾸도록 설계돼 있어요. 개발 중에는 빠르게 뜨고, 프로덕션에서는 최대 성능을 쓰라는 취지예요.
네 단계
-O0: 최적화 없음. 시작이 가장 빠르고 성능은 낮아요. 디버깅·초기 개발에 적합.-O1: 빠른 최적화. 간단한 컴파일·퓨전과 PIECEWISE CUDA graphs.-O2: 기본값. 추가 컴파일 범위, 추가 퓨전, FULL_AND_PIECEWISE CUDA graphs. 프로덕션 권장.-O3: 공격적. 현재는 -O2와 같고 향후 더 많은 실험적 최적화가 들어갈 수 있어요.
사용 예
# CLI
vllm serve RedHatAI/Llama-3.2-1B-FP8 -O1
from vllm.entrypoints.llm import LLM
llm = LLM(model="RedHatAI/Llama-3.2-1B-FP8", optimization_level=2) # -O2와 동일
튜닝 노브
최적화 레벨은 내부 플래그의 묶음이에요. -cc.mode, -cc.cudagraph_mode, -cc.pass_config.fuse_* 같은 플래그로 퓨전을 세밀하게 조절할 수 있고, 사용자가 직접 지정한 플래그가 레벨 기본값보다 우선해요.
문제 해결
- 시작이 너무 느리면
-O0/-O1. - 컴파일 에러는
debug_dump_path로 디버깅. - 프로덕션에선
-O2로.