v06 ModelRunner Split

마지막 수정:

inferencenano-vllmmodel-runner

이 단계에서 engine core와 worker의 경계가 보이기 시작한다.

읽을 코드:

labs/nano-vllm/versions/v06_model_runner_split/run.py

Scheduler는 무엇을 실행할지 결정한다.

seqs, is_prefill = scheduler.schedule()

ModelRunner는 그것을 model input으로 바꾼다.

prepare_prefill(seqs)
prepare_decode(seqs)
run(seqs, is_prefill)

이 경계가 중요하다.

실제 vLLM이나 nano-vLLM에서는 이 boundary 뒤에 CUDA tensor, KV cache slot mapping, block table, attention backend, CUDA graph가 붙는다.

다음 문제

이제 원본 nano-vLLM 코드와 대응시킬 수 있다.

LLMEngine, Scheduler, BlockManager, ModelRunner가 각각 어떤 파일과 함수로 확장되는지 읽으면 된다.