vLLM Multi-GPU Scaling Map
마지막 수정:
단일 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의 책임을 나누는 이유는 무엇인가?