본문으로 건너뛰기

[vllm] 비동기 스케줄링 기본 활성화로 GPU 유휴 시간 제거

PR 링크: vllm-project/vllm#27614 상태: Merged | 변경: +31/-14

들어가며

vLLM의 비동기 스케줄링(async scheduling)이 기본값으로 활성화되었다. 이전에는 CPU에서 스케줄링이 완료된 후 GPU 실행이 시작되는 동기 방식이 기본이었다. 비동기 방식에서는 이전 스텝의 GPU 실행과 다음 스텝의 스케줄링이 동시에 진행되어 GPU 유휴 시간이 크게 줄어든다.

핵심 코드 분석

비동기 스케줄링의 핵심은 CPU 스케줄러가 GPU 모델 실행과 병렬로 동작하는 것이다. GPU가 현재 배치를 처리하는 동안, CPU는 다음 배치의 스케줄링을 미리 수행한다.

동기 방식:  [Schedule] -> [GPU Execute] -> [Schedule] -> [GPU Execute]
비동기 방식: [Schedule] -> [GPU Execute + Schedule] -> [GPU Execute + Schedule]

이 31줄의 변경은 기본값 플래그를 전환하고, 관련 테스트를 업데이트하는 것이 주 내용이다. 비동기 스케줄링 구현 자체는 이전 PR들에서 완성되었고, 충분한 안정성 검증 후 기본값으로 승격된 것이다.

왜 이게 좋은가

  1. 제로 코스트 최적화: 사용자가 아무 설정도 변경하지 않아도 자동으로 개선된 성능을 경험
  2. GPU 활용률 향상: 스케줄링 대기 시간이 GPU 실행 시간에 숨겨져 전체 throughput 증가
  3. 소규모 배치에서 효과 극대화: 배치가 작을수록 스케줄링 오버헤드의 비중이 커서 개선 효과가 크다
  4. NGram GPU 등 후속 최적화와 시너지: 비동기 스케줄링은 NGram GPU(#29184) 등과 호환되도록 설계

정리

기본값 변경이라는 단순한 형태이지만, 모든 vLLM 사용자에게 자동으로 적용되어 광범위한 영향을 미치는 PR이다. 충분한 테스트와 검증을 거친 후 기본 활성화된 점이 vLLM 프로젝트의 안정적인 롤아웃 전략을 잘 보여준다.

참고 자료


이 글은 AI(Claude)의 도움을 받아 작성되었습니다. 코드 분석 내용은 실제 PR diff를 기반으로 합니다.

댓글

관련 포스트

PR Analysis 의 다른글