A high-throughput and memory-efficient inference and serving engine for LLMs
Mirrored from https://github.com/tduncan-lum/Nvidia-Optimization-Stack---VLLM.git
Synced Nov 9, 10:00 UTC
[Doc]: fixing multiple typos in diverse files (#33256)
Signed-off-by: Didier Durand <durand.didier@gmail.com> Signed-off-by: Didier Durand <2927957+didier-durand@users.noreply.github.com> Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Didier Durand committed
Jan 29, 2026 at 09:52 UTC
31b25f6516c8459c48d70bd3a57ed8dedf320b60
14 files changed
+20
-20
.buildkite/scripts/generate-nightly-index.py
+6
-6
@@ -112,7 +112,7 @@ def parse_from_filename(file: str) -> WheelFileInfo:
112
113
def generate_project_list(subdir_names: list[str], comment: str = "") -> str:
114
"""
115
- Generate project list HTML content linking to each project & variant sub-directory.
115
+ Generate project list HTML content linking to each project & variant subdirectory.
116
"""
117
href_tags = []
118
for name in sorted(subdir_names):
@@ -168,23 +168,23 @@ def generate_index_and_metadata(
168
comment (str | None): Optional comment to include in the generated HTML files.
169
170
First, parse all wheel files to extract metadata.
171
- We need to collect all wheel files for each variant, and generate an index for it (in a sub-directory).
171
+ We need to collect all wheel files for each variant, and generate an index for it (in a subdirectory).
172
The index for the default variant (if any) is generated in the root index directory.
173
174
If `default_variant` is provided, all wheels must have variant suffixes, and the default variant index
175
is purely a copy of the corresponding variant index, with only the links adjusted.
176
Otherwise, all wheels without variant suffixes are treated as the default variant.
177
178
- If `alias_to_default` is provided, an additional alias sub-directory is created, it has the same content
178
+ If `alias_to_default` is provided, an additional alias subdirectory is created, it has the same content
179
as the default variant index, but the links are adjusted accordingly.
180
181
Index directory structure:
182
index_base_dir/ (hosted at wheels.vllm.ai/{nightly,$commit,$version}/)
183
- index.html # project list, linking to "vllm/" and other packages, and all variant sub-directories
183
+ index.html # project list, linking to "vllm/" and other packages, and all variant subdirectories
184
vllm/
185
index.html # package index, pointing to actual files in wheel_base_dir (relative path)
186
metadata.json # machine-readable metadata for all wheels in this package
187
- cpu/ # cpu variant sub-directory
187
+ cpu/ # cpu variant subdirectory
188
index.html
189
vllm/
190
index.html
@@ -194,7 +194,7 @@ def generate_index_and_metadata(
194
vllm/
195
index.html
196
metadata.json
197
- cu130/ # cu130 variant sub-directory
197
+ cu130/ # cu130 variant subdirectory
198
index.html
199
vllm/
200
index.html
csrc/cpu/cpu_wna16.cpp
+1
-1
@@ -116,7 +116,7 @@ class Dequantizer4b {
116
scalar_vec_t output_vec_0(wb_0);
117
scalar_vec_t output_vec_1(wb_1);
118
119
- // AMX needs to interlave K elements to pack as 32 bits
119
+ // AMX needs to interleave K elements to pack as 32 bits
120
if constexpr (isa == ISA::AMX) {
121
vec_op::interleave_save(output_vec_0, output_vec_1, curr_weight);
122
} else {
csrc/cpu/torch_bindings.cpp
+1
-1
@@ -292,7 +292,7 @@ TORCH_LIBRARY_EXPAND(TORCH_EXTENSION_NAME, ops) {
292
"value_cache, Tensor(a3!) output, Tensor query_start_loc, Tensor "
293
"seq_lens, float scale, bool causal, Tensor? alibi_slopes, SymInt "
294
"sliding_window_left, SymInt sliding_window_right, Tensor block_table, "
295
- "float softcap, Tensor sheduler_metadata, Tensor? s_aux) -> ()",
295
+ "float softcap, Tensor scheduler_metadata, Tensor? s_aux) -> ()",
296
&cpu_attention_with_kv_cache);
297
298
// placeholders
docs/design/custom_op.md
+1
-1
@@ -28,7 +28,7 @@ Furthermore, vLLM decides whether to enable or disable a `CustomOp` based on `co
28
!!! note
29
Note that `all` and `none` cannot coexist in `compilation_config.custom_ops`.
30
31
-By default, if `compilation_config.backend == "inductor"` and `compilation_config.mode != CompilationMode.NONE`, a `none` will be appended into `compilation_config.custom_ops`, otherwise a `all` will be appended. In other words, this means `CustomOp` will be disabled in some platforms (i.e., those use `inductor` as dafault backend for `torch.compile`) when running with torch compile mode. In this case, Inductor generates (fused) Triton kernels for those disabled custom ops.
31
+By default, if `compilation_config.backend == "inductor"` and `compilation_config.mode != CompilationMode.NONE`, a `none` will be appended into `compilation_config.custom_ops`, otherwise a `all` will be appended. In other words, this means `CustomOp` will be disabled in some platforms (i.e., those use `inductor` as default backend for `torch.compile`) when running with torch compile mode. In this case, Inductor generates (fused) Triton kernels for those disabled custom ops.
32
33
!!! note
34
For multi-modal models, vLLM has enforced the enabling of some custom ops to use device-specific deep-optimized kernels for better performance in ViT part, such as `MMEncoderAttention` and `ApplyRotaryEmb`. We can also pass a `enforce_enable=True` param to the `__init__()` method of the `CustomOp` to enforce enable itself at object-level.
docs/design/debug_vllm_compile.md
+1
-1
@@ -211,7 +211,7 @@ LLM(model, compilation_config=CompilationConfig(
211
These modes are stricter and reduce or eliminate the need of dynamic shapes guarding, which can help isolate issues:
212
213
- `unbacked`: Uses unbacked symints which don't allow guards, making it easier to identify where guards are being incorrectly added
214
-- `backed_size_oblivious`: Uses a mode that is more strict about guarding.
214
+- `backed_size_oblivious`: Uses a mode that is stricter about guarding.
215
216
For more details on dynamic shapes modes, see [Dynamic shapes and vLLM guard dropping](torch_compile.md#dynamic-shapes-and-vllm-guard-dropping).
217
docs/design/plugin_system.md
+2
-2
@@ -100,7 +100,7 @@ Every plugin has three parts:
100
- `_enum`: This property is the device enumeration from [PlatformEnum][vllm.platforms.interface.PlatformEnum]. Usually, it should be `PlatformEnum.OOT`, which means the platform is out-of-tree.
101
- `device_type`: This property should return the type of the device which pytorch uses. For example, `"cpu"`, `"cuda"`, etc.
102
- `device_name`: This property is set the same as `device_type` usually. It's mainly used for logging purposes.
103
- - `check_and_update_config`: This function is called very early in the vLLM's initialization process. It's used for plugins to update the vllm configuration. For example, the block size, graph mode config, etc, can be updated in this function. The most important thing is that the **worker_cls** should be set in this function to let vLLM know which worker class to use for the worker process.
103
+ - `check_and_update_config`: This function is called very early in the vLLM's initialization process. It's used for plugins to update the vllm configuration. For example, the block size, graph mode config, etc., can be updated in this function. The most important thing is that the **worker_cls** should be set in this function to let vLLM know which worker class to use for the worker process.
104
- `get_attn_backend_cls`: This function should return the attention backend class's fully qualified name.
105
- `get_device_communicator_cls`: This function should return the device communicator class's fully qualified name.
106
@@ -126,7 +126,7 @@ Every plugin has three parts:
126
127
5. Implement the attention backend class `MyDummyAttention` in `my_dummy_attention.py`. The attention backend class should inherit from [AttentionBackend][vllm.v1.attention.backend.AttentionBackend]. It's used to calculate attentions with your device. Take `vllm.v1.attention.backends` as examples, it contains many attention backend implementations.
128
129
-6. Implement custom ops for high performance. Most ops can be ran by pytorch native implementation, while the performance may not be good. In this case, you can implement specific custom ops for your plugins. Currently, there are kinds of custom ops vLLM supports:
129
+6. Implement custom ops for high performance. Most ops can be run by pytorch native implementation, while the performance may not be good. In this case, you can implement specific custom ops for your plugins. Currently, there are kinds of custom ops vLLM supports:
130
131
- pytorch ops
132
there are 3 kinds of pytorch ops:
docs/models/pooling_models.md
+1
-1
@@ -327,7 +327,7 @@ curl -s http://localhost:8000/pooling -H "Content-Type: application/json" -d '{
327
}'
328
```
329
330
-Due to limitations in the the output schema, the output consists of a list of
330
+Due to limitations in the output schema, the output consists of a list of
331
token scores for each token for each input. This means that you'll have to call
332
`/tokenize` as well to be able to pair tokens with scores.
333
Refer to the tests in `tests/models/language/pooling/test_bge_m3.py` to see how
docs/serving/context_parallel_deployment.md
+1
-1
@@ -9,7 +9,7 @@ Context parallel mainly solves the problem of serving long context requests. As
9
10
During prefill, for a long request with `T` new tokens, we need to compute query/key/value tensors for these new tokens. Say we have `N` GPUs, we can split the request into `N` chunks, and each GPU computes one chunk of the query/key/value tensors.
11
12
-Depending on the use case, there're two possible strategies:
12
+Depending on the use case, there are two possible strategies:
13
14
1. Partial query, full key/value: If the request token length is moderately long (we can afford holding the full key/value tensors), and the goal is to accelerate the prefill (and amortize the computation time of the prefill across query tokens), then we can gather the key/value tensors from all GPUs and let each GPU compute the attention output corresponding to the query tokens of its chunk.
15
2. Partial query, partial key/value: If the request token length is too long, we cannot afford holding the full key/value tensors anymore, then we can only compute one chunk of query/key/value tensors for each GPU, and use techniques like [ring-attention](http://arxiv.org/abs/2310.01889) to send/recv key/value tensors chunk by chunk.
vllm/entrypoints/openai/responses/serving.py
+1
-1
@@ -693,7 +693,7 @@ class OpenAIServingResponses(OpenAIServing):
693
except ValueError as e:
694
return self.create_error_response(e)
695
696
- # NOTE: Implementation of stauts is still WIP, but for now
696
+ # NOTE: Implementation of status is still WIP, but for now
697
# we guarantee that if the status is not "completed", it is accurate.
698
# "completed" is implemented as the "catch-all" for now.
699
status: ResponseStatus = "completed"
vllm/model_executor/layers/fused_moe/shared_fused_moe.py
+1
-1
@@ -30,7 +30,7 @@ class SharedFusedMoE(FusedMoE):
30
31
# Disable shared expert overlap if:
32
# - we are using eplb with non-default backend, because of correctness issues
33
- # - we are using flashinfer with DP, since there nothint to gain
33
+ # - we are using flashinfer with DP, since there nothing to gain
34
# - we are using marlin kernels
35
backend = self.moe_parallel_config.all2all_backend
36
self.use_overlapped = (
vllm/model_executor/layers/quantization/kernels/scaled_mm/ScaledMMLinearKernel.py
+1
-1
@@ -22,7 +22,7 @@ class ScaledMMLinearLayerConfig:
22
23
@dataclass
24
class Int8ScaledMMLinearLayerConfig(ScaledMMLinearLayerConfig):
25
- # TODO: Chnage to QuantKey like FP8ScaledMMLinearLayerConfig
25
+ # TODO: Change to QuantKey like FP8ScaledMMLinearLayerConfig
26
is_static_input_scheme: bool
27
is_channelwise: bool
28
input_symmetric: bool
vllm/model_executor/layers/quantization/kernels/scaled_mm/__init__.py
+1
-1
@@ -119,7 +119,7 @@ def choose_scaled_mm_linear_kernel(
119
config (_KernelConfigT): Description of the linear layer
120
to be implemented.
121
possible_kernels (dict[PlatformEnum, list[_KernelT]]): A
122
- dictionary of platforms and their list list of possible kernels.
122
+ dictionary of platforms and their list of possible kernels.
123
compute_capability (Optional[int], optional): The compute capability of
124
the target device, if None uses `current_platform` to get the
125
compute capability. Defaults to None.
vllm/utils/system_utils.py
+1
-1
@@ -278,7 +278,7 @@ def find_loaded_library(lib_name: str) -> str | None:
278
According to according to https://man7.org/linux/man-pages/man5/proc_pid_maps.5.html,
279
the file `/proc/self/maps` contains the memory maps of the process, which includes the
280
shared libraries loaded by the process. We can use this file to find the path of the
281
- a loaded library.
281
+ loaded library.
282
""" # noqa
283
found_line = None
284
with open("/proc/self/maps") as f:
vllm/v1/core/sched/scheduler.py
+1
-1
@@ -1159,7 +1159,7 @@ class Scheduler(SchedulerInterface):
1159
break
1160
1161
# Calculate the number of embeddings to schedule in the current range
1162
- # of scheduled encoder placholder tokens.
1162
+ # of scheduled encoder placeholder tokens.
1163
start_idx_rel = max(0, num_computed_tokens - start_pos)
1164
end_idx_rel = min(
1165
num_encoder_tokens, num_computed_tokens + num_new_tokens - start_pos