Glossar und Materialien
源码版本v0.25.1
Kernbegriffe
| Begriff | Englisch | Erläuterung |
|---|---|---|
| Engine-Parameter | EngineArgs | Alle Startparameter, deriviert VllmConfig. vllm/engine/arg_utils.py |
| Globale Konfiguration | VllmConfig | Aggregat aus Modell/Cache/Scheduling/Parallelitäts-Teilkonfigurationen. vllm/config/__init__.py |
| LLM-Offlineklasse | LLM | Synchrone Offline-Generierung, LLM.generate. vllm/entrypoints/llm.py |
| Asynchrone LLM | AsyncLLM | Asynchrone Implementierung von EngineClient, serverseitiger Einstieg. vllm/v1/engine/async_llm.py |
| LLM-Engine | LLMEngine | v1 dünne Hülle, add_request/step, delegiert an EngineCore. vllm/v1/engine/llm_engine.py |
| Engine-Kern | EngineCore | Eigentlicher Kern, kombiniert scheduler+worker+kv cache. vllm/v1/engine/core.py |
| Engine-Kern-Prozess | EngineCoreProc | ZMQ-Hintergrundprozess-Hülle, erbt von EngineCore. vllm/v1/engine/core.py |
| Engine-Client | EngineCoreClient | Inproc/MP/AsyncMP-Client-ABC. vllm/v1/engine/core_client.py |
| In-Process-Client | InprocClient | Startet keinen Prozess, ruft direkt step_fn auf. vllm/v1/engine/core_client.py |
| Multiprocess-Client | MPClient | Multiprocess synchron, kommuniziert über ZMQ. vllm/v1/engine/core_client.py |
| Scheduler | Scheduler | waiting/running-Warteschlangen, schedule, Preemption. vllm/v1/core/sched/scheduler.py |
| Request-Warteschlange | RequestQueue | FCFS / Priority, zwei Strategien. vllm/v1/core/sched/queue.py |
| Continuous Batching | Continuous Batching | Dynamisches Batch-Assembly pro Schritt, prefill und decode gemischt. vllm/v1/core/sched/scheduler.py |
| Preemption | Preemption | Tauscht bei VRAM-Mangel laufende Requests aus, um Platz für neue Requests zu schaffen. vllm/v1/core/sched/scheduler.py |
| Executor | Executor | UniProc/Multiproc/Ray in drei Ausprägungen. vllm/v1/executor/ |
| Ray Distributed Executor | RayDistributedExecutor | Node-übergreifende Ray-Cluster-Worker-Scheduling. vllm/v1/executor/ray_distributed_executor.py |
| Worker | Worker | Verteilte Umgebung + GPU-Ausführungseinheit. vllm/v1/worker/gpu_worker.py |
| ModelRunner | GPUModelRunner | execute_model, input_batch, cudagraph-Verwaltung. vllm/v1/worker/gpu_model_runner.py |
| Mikrobatch | ubatch | Innerhalb eines Schritts Requests weiter in Mikrobatches splitten, an cudagraph angepasst. vllm/v1/worker/gpu_model_runner.py |
| CUDA-Graph | cudagraph | Voraufgezeichnete Kernel-Sequenz, feste Shape, eliminiert Launch-Overhead. vllm/v1/worker/gpu_model_runner.py |
| Default Model Loader | DefaultModelLoader | Zieht Gewichte von HF/s3 etc., safetensors/pytorch-Formate. vllm/model_executor/model_loader/default_loader.py |
| Column-Parallel Linear | ColumnParallelLinear | Gewichte nach Output-Dimension gesplittet, nach forward all-gather oder vor RowParallel reduce. vllm/model_executor/layers/linear.py |
| QKV-Parallel Linear | QKVParallelLinear | Q/K/V gemeinsam nach Head gesplittet, vereinigt Projektionen für GQA/MQA. vllm/model_executor/layers/linear.py |
| Row-Parallel Linear | RowParallelLinear | Gewichte nach Input-Dimension gesplittet, nach forward all-reduce. vllm/model_executor/layers/linear.py |
| KV-Cache-Manager | KVCacheManager | Block-Allokation und Lebenszyklus, gruppenübergreifend. vllm/v1/core/kv_cache_manager.py |
| KV-Cache-Koordinator | KVCacheCoordinator | Hybrid/Unitary/NoPrefixCache in drei Ausprägungen. vllm/v1/core/kv_cache_coordinator.py |
| Block-Pool | BlockPool | PagedAttention-Block-Allokation + Prefix-Cache-LRU. vllm/v1/core/block_pool.py |
| PagedAttention | PagedAttention | KV-Cache nach Blocks gesplittet, vermeidet Fragmentierung zusammenhängenden Speichers. csrc/attention/ |
| Prefix-Caching | Prefix Caching | Wiederverwendung von KV-Blöcken mit gemeinsamem Prefix requestsübergreifend. vllm/v1/core/kv_cache_manager.py |
| Attention-Backend | AttentionBackend | FlashAttention/FlashInfer/Triton/MLA-Abstraktionslayer. vllm/v1/attention/backend.py |
| FlashAttention | FlashAttention | flash_attn-Kernel von Dao Labs, FA2/3/4 adaptiv. vllm/v1/attention/backends/flash_attn.py |
| FlashInfer | FlashInfer | Kernel des FlashInfer-Projekts, native Unterstützung für GQA/FP8/large page. vllm/v1/attention/backends/flashinfer.py |
| Triton | Triton | Reiner Python-Triton-Kernel, Fallback für fp32 und Rand-Quantisierung. vllm/v1/attention/backends/triton_attn.py |
| Latent Attention | MLA | Multi-head Latent Attention, DeepSeek-Serie, cached latent + RoPE. vllm/v1/attention/backends/mla/ |
| Sampler | Sampler | forward/sample, logits → Token. vllm/v1/sample/sampler.py |
| LogitsProcessor | LogitsProcessor | Logits-Transformations-Abstraktion vor dem Sampling, argmax-invariante Klassifikation. vllm/v1/sample/logits_processor/interface.py |
| Parallel State | parallel_state | TP/PP/DP-Kommunikationsgruppen, globales Singleton. vllm/distributed/parallel_state.py |
| GroupCoordinator | GroupCoordinator | ProcessGroup-Wrapper, hält CPU/device-Doppelgruppe. vllm/distributed/parallel_state.py |
| Tensor Parallelism | TP | Tensor Parallelism, Gewichte nach Dimension gesplittet, beim Forward all-reduce/all-gather. |
| Pipeline Parallelism | PP | Pipeline Parallelism, Modell nach Schichten auf mehrere GPUs gesplittet, Mikrobatch-Pipeline. |
Verzeichniskonventionen
- Quellcode:
vllm-project/vllm, Hauptcode invllm/(Python), CUDA-Kernel incsrc/. - v0.25 ist auf die v1-Architektur umgestellt:
vllm/v1/ist das Hauptfeld,vllm/engine/zumeist Alias. - Einstiegspunkte:
vllm/entrypoints/(llm.pyoffline,openai/server,cli/).
Offizielle Materialien
- vLLM offizielle Dokumentation
- vLLM Design-Dokumente
- GitHub-Repository (tag v0.25.1, Apache-2.0-Lizenz)
Quellcodeversion
Diese Seite pinnt die Quellcodeversion auf v0.25.1, Zeilennummern gelten für diesen Tag. Alle SrcLink zeigen auf github.com/vllm-project/vllm/blob/v0.25.1/<path>#Lxx-Lyy. Bei Versionswechsel VLLM_TAG in docs/.vitepress/site.ts ändern und dann npm run check:refs ausführen.