vLLM Multi-GPU Scaling Map

마지막 수정:

inferencevllmmulti-gputensor-parallel

단일 GPU에서는 engine core가 하나의 worker에게 실행을 맡긴다고 생각하기 쉽다.

Multi-GPU가 되면 질문이 바뀐다.

worker는 몇 개인가?
각 worker는 같은 request를 나눠 계산하는가?
각 worker가 가진 model shard는 무엇인가?
collective communication은 어디서 발생하는가?
engine core는 parallel group을 얼마나 알아야 하는가?

Tensor parallelism에서는 여러 GPU가 같은 layer의 계산을 나눠 맡는다.

same request batch
  -> sharded model weights
  -> per-rank partial compute
  -> all-reduce / all-gather
  -> next layer

이 카드의 목표는 vLLM multi-GPU를 “GPU가 많아진다”가 아니라 component boundary가 확장되는 문제로 보는 것이다.

Engine core:
request scheduling과 global state

Distributed executor / worker group:
parallel workers 실행 관리

Each GPU worker:
rank-local model shard와 tensor 실행

확인

  • Multi-GPU에서 worker 하나가 전체 model을 모두 들고 있다고 가정하면 왜 틀릴 수 있는가?
  • Tensor parallel에서는 같은 request batch가 여러 rank에서 어떻게 처리되는가?
  • Engine core와 distributed executor의 책임을 나누는 이유는 무엇인가?